diff --git a/hauler_anl/filter.js b/hauler_anl/filter.js
index 2bddb5b..9d8ceb3 100644
--- a/hauler_anl/filter.js
+++ b/hauler_anl/filter.js
@@ -11,7 +11,7 @@ import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { Chip, Stack, Icon, IconButton, Box } from "@mui/material"; //Интерфейсные компоненты
import { APP_STYLES } from "../../../app.styles"; //Типовые стили
-import { formatDateRF } from "../../core/utils"; //Вспомогательные функции
+import { formatDateRF, formatDateTimeRF } from "../../core/utils"; //Вспомогательные функции
//---------
//Константы
@@ -81,6 +81,10 @@ const Filter = ({ filter, onFilterOpen }) => {
{filter.sCustomerDept ? (
) : null}
+ {filter.dDateKOAFrom ? (
+
+ ) : null}
+ {filter.dDateKOATo ? : null}
diff --git a/hauler_anl/filter_dialog.js b/hauler_anl/filter_dialog.js
index f5dcd3a..e82fe81 100644
--- a/hauler_anl/filter_dialog.js
+++ b/hauler_anl/filter_dialog.js
@@ -74,7 +74,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
//При очистке фильтра
const handleClear = () => {
- setFilter({ dDate: "", sCustomerDept: "" });
+ setFilter({ dDate: "", sCustomerDept: "", dDateKOAFrom: "", dDateKOATo: "" });
};
//При закрытии диалога без изменения фильтра
@@ -135,7 +135,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
{
/>
{
//Вспомогательные функции открытия раздела
- const { handleEquipRepairSheetsOpen } = useDictionary();
+ const { handleEquipRepairSheetsOpen, handleHaulerUnitsCardsOpen } = useDictionary();
//Собственное состояние - признак отображения фильтров
const [isFilterOpen, setIsFilterOpen] = useState(true);
@@ -209,6 +209,7 @@ const HaulerAnl = () => {
onOrderChanged={handleOrderChanged}
onFilterChanged={handleFilterChanged}
onPagesCountChanged={handlePagesCountChanged}
+ dataCellRender={prms => dataCellRender({ ...prms, showHaulerUnitsCards: handleHaulerUnitsCardsOpen })}
valueFormatter={prms => valueFormatter({ ...prms, onRepairSheetOpen: handleEquipRepairSheetsOpen })}
/>
) : null}
diff --git a/hauler_anl/hooks/dict_hooks.js b/hauler_anl/hooks/dict_hooks.js
index 335a826..f31d1c0 100644
--- a/hauler_anl/hooks/dict_hooks.js
+++ b/hauler_anl/hooks/dict_hooks.js
@@ -75,12 +75,27 @@ const useDictionary = () => {
[pOnlineShowDictionary]
);
+ //Отображение раздела "Картотека АТС"
+ const handleHaulerUnitsCardsOpen = useCallback(
+ async prms => {
+ pOnlineShowDictionary({
+ unitCode: "HaulerUnitsCards",
+ inputParameters: [{ name: "in_RN", value: prms.nRn }],
+ callBack: res => {
+ res.success ? prms.callBack(res) : null;
+ }
+ });
+ },
+ [pOnlineShowDictionary]
+ );
+
//Возвращаем функции открытия разделов
return {
handleInsDepartmentOpen,
handleEquipTypeWorksOpen,
handleEquipWorkKindsOpen,
- handleEquipRepairSheetsOpen
+ handleEquipRepairSheetsOpen,
+ handleHaulerUnitsCardsOpen
};
};
diff --git a/hauler_anl/hooks/hooks.js b/hauler_anl/hooks/hooks.js
index a1ad939..e9a95bb 100644
--- a/hauler_anl/hooks/hooks.js
+++ b/hauler_anl/hooks/hooks.js
@@ -164,7 +164,6 @@ const useTableATC = ({ storedArgs = {} }) => {
morePages: (data.XDATA_GRID.rows || []).length >= 10
}));
} catch (e) {
- console.log(e);
setDataGrid(pv => ({ ...pv, loaded: false, reload: false }));
}
};
diff --git a/hauler_anl/layouts.js b/hauler_anl/layouts.js
index 3d6520c..2ffd034 100644
--- a/hauler_anl/layouts.js
+++ b/hauler_anl/layouts.js
@@ -24,7 +24,14 @@ const SMASK_SEPARATE = "<|>";
//Формирование значения для колонки "Состояние"
const formatStateValue = (value, addText = false) => {
- const [text, icon] = value == 0 ? ["На линии", "done"] : value == 1 ? ["Ремонт", "build"] : ["Не определен", "question_mark"];
+ const [text, icon] =
+ value == 0
+ ? ["На линии", "done"]
+ : value == 1
+ ? ["Ремонт", "build"]
+ : value == 2
+ ? ["Есть повреждения", "construction"]
+ : ["Не определен", "question_mark"];
return (
{icon}
@@ -85,6 +92,23 @@ const formatRepairDocValue = (value, onRepairSheetOpen) => {
);
};
+//Формирование значения для колонки "Гос. Номер Тягача"
+const formatStateNumbTGValue = (row, columnDef, showHaulerUnitsCards) => {
+ return (
+ showHaulerUnitsCards({ nRn: row["NRN"] })}>
+ {row[columnDef.name]}
+
+ );
+};
+
+//Генерация представления ячейки c данными
+export const dataCellRender = ({ row, columnDef, showHaulerUnitsCards }) => {
+ switch (columnDef.name) {
+ case "SSTATE_NUMB_TG":
+ return { data: formatStateNumbTGValue(row, columnDef, showHaulerUnitsCards) };
+ }
+};
+
//Форматирование значений колонок
export const valueFormatter = ({ value, columnDef, onRepairSheetOpen }) => {
switch (columnDef.name) {
diff --git a/p8-panels.js b/p8-panels.js
index 5a7e5a0..abe7d17 100644
--- a/p8-panels.js
+++ b/p8-panels.js
@@ -818,7 +818,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Filter: () => (/* binding */ Filter)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Компонент: Фильтр отбора\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Типовые стили\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n FILTERS_STACK: {\n paddingBottom: \"5px\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL,\n overflowY: \"auto\",\n alignItems: \"flex-end\"\n },\n STACK_FILTER: {\n maxWidth: \"99vw\",\n alignItems: \"flex-end\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Элемент фильтра\nconst FilterItem = ({\n caption,\n value,\n onClick\n}) => {\n //При нажатии на элемент\n const handleClick = () => onClick ? onClick() : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"strong\", null, caption), value ? `:\\u00A0${value}` : null),\n variant: \"outlined\",\n onClick: handleClick\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst Filter = ({\n filter,\n onFilterOpen\n}) => {\n //При нажатии на элемент фильтра\n const handleClick = () => onFilterOpen && onFilterOpen();\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n p: 1,\n alignItems: \"center\",\n sx: STYLES.STACK_FILTER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"filter_alt\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, filter.dDate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"На дату\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDate),\n onClick: handleClick\n }) : null, filter.sCustomerDept ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Транспортный участок\",\n value: filter.sCustomerDept,\n onClick: handleClick\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nFilter.propTypes = {\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterOpen: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Filter: () => (/* binding */ Filter)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Компонент: Фильтр отбора\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Типовые стили\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n FILTERS_STACK: {\n paddingBottom: \"5px\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL,\n overflowY: \"auto\",\n alignItems: \"flex-end\"\n },\n STACK_FILTER: {\n maxWidth: \"99vw\",\n alignItems: \"flex-end\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Элемент фильтра\nconst FilterItem = ({\n caption,\n value,\n onClick\n}) => {\n //При нажатии на элемент\n const handleClick = () => onClick ? onClick() : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"strong\", null, caption), value ? `:\\u00A0${value}` : null),\n variant: \"outlined\",\n onClick: handleClick\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst Filter = ({\n filter,\n onFilterOpen\n}) => {\n //При нажатии на элемент фильтра\n const handleClick = () => onFilterOpen && onFilterOpen();\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n p: 1,\n alignItems: \"center\",\n sx: STYLES.STACK_FILTER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"filter_alt\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, filter.dDate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"На дату\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDate),\n onClick: handleClick\n }) : null, filter.sCustomerDept ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Транспортный участок\",\n value: filter.sCustomerDept,\n onClick: handleClick\n }) : null, filter.dDateKOAFrom ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"\\u041A\\u041E\\u0410 \\u0441\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateTimeRF)(filter.dDateKOAFrom),\n onClick: handleClick\n }) : null, filter.dDateKOATo ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"\\u041A\\u041E\\u0410 \\u043F\\u043E\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateTimeRF)(filter.dDateKOATo),\n onClick: handleClick\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nFilter.propTypes = {\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterOpen: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter.js?");
/***/ }),
@@ -829,7 +829,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FilterDialog: () => (/* binding */ FilterDialog)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Компонент: Диалоговое окно фильтра отбора\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Хуки открытий разделов\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"flex-end\"\n },\n CLOSE_BUTTON: {\n position: \"absolute\",\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500]\n },\n BOX_WITH_LEGEND: {\n border: \"1px solid #939393\",\n marginBottom: \"1px\"\n },\n LEGEND: {\n textAlign: \"left\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"На дату\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDate) && !isFiltersInit;\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\n isFiltersInit,\n onCancel,\n onOk\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ...initial\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleInsDepartmentOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useDictionary)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n\n //При изменении каталога фильтра\n const handleCustomerDeptSelect = () => handleInsDepartmentOpen({\n sCode: filter.sCustomerDept,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sCustomerDept: res.outParameters.out_CODE\n }));\n }\n });\n\n //При загрузке текущей даты\n const handleLoadCurrentDate = () => {\n //Определяем текущую дату\n const currentDate = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(new Date());\n //Устанавливаем\n setFilter(pv => ({\n ...pv,\n dDate: currentDate\n }));\n };\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDate: \"\",\n sCustomerDept: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = () => isActionAllow(filter) && onOk ? onOk(filter) : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: true,\n onClose: handleCancel,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0424\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043E\\u0442\\u0431\\u043E\\u0440\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: handleCancel,\n sx: STYLES.CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDate\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDate,\n onChange: handleValueChanged,\n label: \"\\u041D\\u0430 \\u0434\\u0430\\u0442\\u0443\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDate,\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `dDate currentDate`,\n onClick: handleLoadCurrentDate,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"refresh\")))\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"sCustomerDept\",\n value: filter.sCustomerDept,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0440\\u0430\\u043D\\u0441\\u043F\\u043E\\u0440\\u0442\\u043D\\u044B\\u0439 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\",\n variant: \"standard\",\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `sCustomerDept select`,\n onClick: handleCustomerDeptSelect,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"list\")))\n },\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: STYLES.LEGEND\n }, \"\\u0420\\u0430\\u0441\\u0447\\u0435\\u0442 \\u041A\\u041E\\u0410\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOAFrom\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOAFrom,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOATo\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOATo,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(filter),\n onClick: handleOK\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n onClick: handleClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(initial, isFiltersInit),\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object).isRequired,\n isFiltersInit: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter_dialog.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FilterDialog: () => (/* binding */ FilterDialog)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Компонент: Диалоговое окно фильтра отбора\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты\n //Хуки открытий разделов\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"flex-end\"\n },\n CLOSE_BUTTON: {\n position: \"absolute\",\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500]\n },\n BOX_WITH_LEGEND: {\n border: \"1px solid #939393\",\n marginBottom: \"1px\"\n },\n LEGEND: {\n textAlign: \"left\"\n }\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"На дату\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDate) && !isFiltersInit;\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\n isFiltersInit,\n onCancel,\n onOk\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ...initial\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleInsDepartmentOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useDictionary)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n\n //При изменении каталога фильтра\n const handleCustomerDeptSelect = () => handleInsDepartmentOpen({\n sCode: filter.sCustomerDept,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sCustomerDept: res.outParameters.out_CODE\n }));\n }\n });\n\n //При загрузке текущей даты\n const handleLoadCurrentDate = () => {\n //Определяем текущую дату\n const currentDate = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(new Date());\n //Устанавливаем\n setFilter(pv => ({\n ...pv,\n dDate: currentDate\n }));\n };\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDate: \"\",\n sCustomerDept: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = () => isActionAllow(filter) && onOk ? onOk(filter) : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n open: true,\n onClose: handleCancel,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0424\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043E\\u0442\\u0431\\u043E\\u0440\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: handleCancel,\n sx: STYLES.CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDate\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDate,\n onChange: handleValueChanged,\n label: \"\\u041D\\u0430 \\u0434\\u0430\\u0442\\u0443\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDate,\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `dDate currentDate`,\n onClick: handleLoadCurrentDate,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"refresh\")))\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"sCustomerDept\",\n value: filter.sCustomerDept,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0440\\u0430\\u043D\\u0441\\u043F\\u043E\\u0440\\u0442\\u043D\\u044B\\u0439 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\",\n variant: \"standard\",\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n \"aria-label\": `sCustomerDept select`,\n onClick: handleCustomerDeptSelect,\n edge: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"list\")))\n },\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: STYLES.LEGEND\n }, \"\\u0420\\u0430\\u0441\\u0447\\u0435\\u0442 \\u041A\\u041E\\u0410\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOAFrom\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOAFrom,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateKOATo\",\n type: \"datetime-local\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateKOATo,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(filter),\n onClick: handleOK\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n onClick: handleClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"text\",\n disabled: !isActionAllow(initial, isFiltersInit),\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object).isRequired,\n isFiltersInit: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/filter_dialog.js?");
/***/ }),
@@ -873,7 +873,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartCalcs: () => (/* binding */ useChartCalcs),\n/* harmony export */ useChartInfo: () => (/* binding */ useChartInfo),\n/* harmony export */ useTableATC: () => (/* binding */ useTableATC)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Пользовательские хуки: Хуки основных компонентов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика АТС\nconst useChartInfo = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartInfo, setChartInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartInfo(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_INFO\",\n args: {\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartInfo(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartInfo(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartInfo.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartInfo.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartInfo,\n handleReload\n };\n};\n\n//Хук графика КГТ/КОА\nconst useChartCalcs = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartCalcs, setChartCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartCalcs(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KGT_KOA\",\n args: {\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartCalcs(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n labels: chart.XCHART?.labels ? [...chart.XCHART.labels] : [],\n ...chart.XCHART\n }));\n } catch (e) {\n setChartCalcs(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartCalcs.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartCalcs.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartCalcs,\n handleReload\n };\n};\n\n//Хук таблицы АТС\nconst useTableATC = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.DATA_GRID_ATC\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.filters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n console.log(e);\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartCalcs: () => (/* binding */ useChartCalcs),\n/* harmony export */ useChartInfo: () => (/* binding */ useChartInfo),\n/* harmony export */ useTableATC: () => (/* binding */ useTableATC)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Пользовательские хуки: Хуки основных компонентов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика АТС\nconst useChartInfo = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartInfo, setChartInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartInfo(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_INFO\",\n args: {\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartInfo(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartInfo(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartInfo.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartInfo.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartInfo,\n handleReload\n };\n};\n\n//Хук графика КГТ/КОА\nconst useChartCalcs = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartCalcs, setChartCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartCalcs(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KGT_KOA\",\n args: {\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n NSTATE: storedArgs.nState\n },\n respArg: \"COUT\"\n });\n setChartCalcs(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n labels: chart.XCHART?.labels ? [...chart.XCHART.labels] : [],\n ...chart.XCHART\n }));\n } catch (e) {\n setChartCalcs(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartCalcs.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartCalcs.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartCalcs,\n handleReload\n };\n};\n\n//Хук таблицы АТС\nconst useTableATC = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.DATA_GRID_ATC\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.filters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1,\n DDATE: storedArgs.dDate ? new Date(storedArgs.dDate) : null,\n DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null,\n DDATE_KOA_TO: storedArgs.dDateKOATo ? new Date(storedArgs.dDateKOATo) : null,\n SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment,\n NSTATE: storedArgs.nState\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/hooks.js?");
/***/ }),
@@ -895,7 +895,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dataCellRender: () => (/* binding */ dataCellRender),\n/* harmony export */ formatFilterValues: () => (/* binding */ formatFilterValues),\n/* harmony export */ valueFormatter: () => (/* binding */ valueFormatter)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Дополнительная разметка и вёрстка клиентских элементов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Маска разделителя\nconst SMASK_SEPARATE = \"<|>\";\n\n//-----------\n//Тело модуля\n//-----------\n\n//Формирование значения для колонки \"Состояние\"\nconst formatStateValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"На линии\", \"done\"] : value == 1 ? [\"Ремонт\", \"build\"] : [\"Не определен\", \"question_mark\"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"row\",\n gap: 0.5,\n alignItems: \"center\",\n justifyContent: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n title: text\n }, icon), addText == true ? text : null);\n};\n\n//Формирование списка значений\nconst formatListValue = value => {\n //Считываем массив значений\n const listValues = (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.hasValue)(value) ? value.split(SMASK_SEPARATE) : [];\n //Формируем список значений\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, listValues.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"column\",\n gap: 0.5,\n alignItems: \"flex-start\",\n justifyContent: \"center\"\n }, listValues.map((el, index) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n variant: \"body2\",\n key: index\n }, `${el}`);\n })) : null);\n};\n\n//Формирование значения для колонки \"Документ ремонта\"\nconst formatRepairDocValue = (value, onRepairSheetOpen) => {\n //Считываем массив документов\n const listDocs = (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.hasValue)(value) ? value.split(SMASK_SEPARATE) : [];\n //Формируем список документов с ссылкой\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, listDocs.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"column\",\n gap: 0.5,\n alignItems: \"flex-start\",\n justifyContent: \"center\"\n }, listDocs.map((el, index) => {\n //Считываем рег. номер\n const rn = el.match(/<(.*?)>/)[1];\n //Считываем информацию о документе\n const docInfo = el.replace(`<${rn}>`, \"\");\n //Формируем ссылку на документ\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n component: \"button\",\n align: \"left\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onRepairSheetOpen({\n nRn: rn\n }),\n key: index\n }, docInfo);\n })) : null);\n};\n\n//Формирование значения для колонки \"Гос. Номер Тягача\"\nconst formatStateNumbTGValue = (row, columnDef, showHaulerUnitsCards) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => showHaulerUnitsCards({\n nRn: row[\"NRN\"]\n })\n }, row[columnDef.name]);\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef,\n showHaulerUnitsCards\n}) => {\n switch (columnDef.name) {\n case \"SSTATE_NUMB_TG\":\n return {\n data: formatStateNumbTGValue(row, columnDef, showHaulerUnitsCards)\n };\n }\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef,\n onRepairSheetOpen\n}) => {\n switch (columnDef.name) {\n case \"NSTATE\":\n return formatStateValue(value, false);\n case \"SDAMTYPE_NAME\":\n return formatListValue(value);\n case \"SEQDAMCTRL_NOTE\":\n return formatListValue(value);\n case \"SDRIVER\":\n return formatListValue(value);\n case \"SREPAIR_DOC\":\n return formatRepairDocValue(value, onRepairSheetOpen);\n }\n return value;\n};\n\n//Форматирование фильтров панелей для фильтров таблицы\nconst formatFilterValues = filter => {\n return [{\n name: \"DDATE\",\n from: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDate),\n to: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDate)\n }, {\n name: \"SCUSTOMERDEPT_FILTER\",\n from: filter.sCustomerDept,\n to: \"\"\n }];\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/layouts.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dataCellRender: () => (/* binding */ dataCellRender),\n/* harmony export */ formatFilterValues: () => (/* binding */ formatFilterValues),\n/* harmony export */ valueFormatter: () => (/* binding */ valueFormatter)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Дополнительная разметка и вёрстка клиентских элементов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Маска разделителя\nconst SMASK_SEPARATE = \"<|>\";\n\n//-----------\n//Тело модуля\n//-----------\n\n//Формирование значения для колонки \"Состояние\"\nconst formatStateValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"На линии\", \"done\"] : value == 1 ? [\"Ремонт\", \"build\"] : value == 2 ? [\"Есть повреждения\", \"construction\"] : [\"Не определен\", \"question_mark\"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"row\",\n gap: 0.5,\n alignItems: \"center\",\n justifyContent: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n title: text\n }, icon), addText == true ? text : null);\n};\n\n//Формирование списка значений\nconst formatListValue = value => {\n //Считываем массив значений\n const listValues = (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.hasValue)(value) ? value.split(SMASK_SEPARATE) : [];\n //Формируем список значений\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, listValues.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"column\",\n gap: 0.5,\n alignItems: \"flex-start\",\n justifyContent: \"center\"\n }, listValues.map((el, index) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n variant: \"body2\",\n key: index\n }, `${el}`);\n })) : null);\n};\n\n//Формирование значения для колонки \"Документ ремонта\"\nconst formatRepairDocValue = (value, onRepairSheetOpen) => {\n //Считываем массив документов\n const listDocs = (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.hasValue)(value) ? value.split(SMASK_SEPARATE) : [];\n //Формируем список документов с ссылкой\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, listDocs.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"column\",\n gap: 0.5,\n alignItems: \"flex-start\",\n justifyContent: \"center\"\n }, listDocs.map((el, index) => {\n //Считываем рег. номер\n const rn = el.match(/<(.*?)>/)[1];\n //Считываем информацию о документе\n const docInfo = el.replace(`<${rn}>`, \"\");\n //Формируем ссылку на документ\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n component: \"button\",\n align: \"left\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onRepairSheetOpen({\n nRn: rn\n }),\n key: index\n }, docInfo);\n })) : null);\n};\n\n//Формирование значения для колонки \"Гос. Номер Тягача\"\nconst formatStateNumbTGValue = (row, columnDef, showHaulerUnitsCards) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => showHaulerUnitsCards({\n nRn: row[\"NRN\"]\n })\n }, row[columnDef.name]);\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef,\n showHaulerUnitsCards\n}) => {\n switch (columnDef.name) {\n case \"SSTATE_NUMB_TG\":\n return {\n data: formatStateNumbTGValue(row, columnDef, showHaulerUnitsCards)\n };\n }\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef,\n onRepairSheetOpen\n}) => {\n switch (columnDef.name) {\n case \"NSTATE\":\n return formatStateValue(value, false);\n case \"SDAMTYPE_NAME\":\n return formatListValue(value);\n case \"SEQDAMCTRL_NOTE\":\n return formatListValue(value);\n case \"SDRIVER\":\n return formatListValue(value);\n case \"SREPAIR_DOC\":\n return formatRepairDocValue(value, onRepairSheetOpen);\n }\n return value;\n};\n\n//Форматирование фильтров панелей для фильтров таблицы\nconst formatFilterValues = filter => {\n return [{\n name: \"DDATE\",\n from: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDate),\n to: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDate)\n }, {\n name: \"SCUSTOMERDEPT_FILTER\",\n from: filter.sCustomerDept,\n to: \"\"\n }];\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/layouts.js?");
/***/ }),
@@ -4326,7 +4326,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartSpendings: () => (/* binding */ useChartSpendings),\n/* harmony export */ useChartStatuses: () => (/* binding */ useChartStatuses),\n/* harmony export */ useTableRepairs: () => (/* binding */ useTableRepairs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\n Пользовательские хуки: Хуки основных компонентов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика статусов\nconst useChartStatuses = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartStatuses, setChartStatuses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartStatuses(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.CHART_STATUSES\",\n args: {\n DDATE_FROM: storedArgs.dDateBegin ? new Date(storedArgs.dDateBegin) : null,\n DDATE_TO: storedArgs.dDateEnd ? new Date(storedArgs.dDateEnd) : null,\n SINS_DEPARTMENT: storedArgs.sCustomerDept,\n SEQTYPEWRK: storedArgs.sWorkType,\n SEQWRKKIND: storedArgs.sWorkKind,\n NSTATE: storedArgs.nState,\n NTYPESPEND: storedArgs.nType\n },\n respArg: \"COUT\"\n });\n setChartStatuses(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartStatuses(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartStatuses.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartStatuses.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartStatuses,\n handleReload\n };\n};\n\n//Хук графика трудовых затрат\nconst useChartSpendings = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartSpendings, setChartSpendings] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartSpendings(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.CHART_SPENDINGS\",\n args: {\n DDATE_FROM: storedArgs.dDateBegin ? new Date(storedArgs.dDateBegin) : null,\n DDATE_TO: storedArgs.dDateEnd ? new Date(storedArgs.dDateEnd) : null,\n SINS_DEPARTMENT: storedArgs.sCustomerDept,\n SEQTYPEWRK: storedArgs.sWorkType,\n SEQWRKKIND: storedArgs.sWorkKind,\n NSTATE: storedArgs.nState,\n NTYPESPEND: storedArgs.nType\n },\n respArg: \"COUT\"\n });\n setChartSpendings(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartSpendings(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartSpendings.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartSpendings.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartSpendings,\n handleReload\n };\n};\n\n//Хук таблицы ремотных ведомостей\nconst useTableRepairs = ({\n storedArgs = []\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.DATA_GRID\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)([...dataGrid.filters, ...storedArgs], {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n console.log(e);\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useChartSpendings: () => (/* binding */ useChartSpendings),\n/* harmony export */ useChartStatuses: () => (/* binding */ useChartStatuses),\n/* harmony export */ useTableRepairs: () => (/* binding */ useTableRepairs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\n Пользовательские хуки: Хуки основных компонентов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук графика статусов\nconst useChartStatuses = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartStatuses, setChartStatuses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartStatuses(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.CHART_STATUSES\",\n args: {\n DDATE_FROM: storedArgs.dDateBegin ? new Date(storedArgs.dDateBegin) : null,\n DDATE_TO: storedArgs.dDateEnd ? new Date(storedArgs.dDateEnd) : null,\n SINS_DEPARTMENT: storedArgs.sCustomerDept,\n SEQTYPEWRK: storedArgs.sWorkType,\n SEQWRKKIND: storedArgs.sWorkKind,\n NSTATE: storedArgs.nState,\n NTYPESPEND: storedArgs.nType\n },\n respArg: \"COUT\"\n });\n setChartStatuses(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartStatuses(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartStatuses.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartStatuses.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartStatuses,\n handleReload\n };\n};\n\n//Хук графика трудовых затрат\nconst useChartSpendings = ({\n storedArgs = {}\n}) => {\n //Собственное состояние - график\n const [chartSpendings, setChartSpendings] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n reload: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При необходимости перезагрузки графика\n const handleReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setChartSpendings(pv => ({\n ...pv,\n reload: true\n })), []);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadChart = async () => {\n try {\n const chart = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.CHART_SPENDINGS\",\n args: {\n DDATE_FROM: storedArgs.dDateBegin ? new Date(storedArgs.dDateBegin) : null,\n DDATE_TO: storedArgs.dDateEnd ? new Date(storedArgs.dDateEnd) : null,\n SINS_DEPARTMENT: storedArgs.sCustomerDept,\n SEQTYPEWRK: storedArgs.sWorkType,\n SEQWRKKIND: storedArgs.sWorkKind,\n NSTATE: storedArgs.nState,\n NTYPESPEND: storedArgs.nType\n },\n respArg: \"COUT\"\n });\n setChartSpendings(pv => ({\n ...pv,\n loaded: true,\n reload: false,\n ...chart.XCHART\n }));\n } catch (e) {\n setChartSpendings(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (chartSpendings.reload) loadChart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chartSpendings.reload, executeStored]);\n\n //Возвращаем график\n return {\n chartSpendings,\n handleReload\n };\n};\n\n//Хук таблицы ремотных ведомостей\nconst useTableRepairs = ({\n storedArgs = []\n}) => {\n //Собственное состояние - таблица\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n filters: [],\n orders: null,\n pageNumber: 1,\n morePages: true,\n reloading: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n filters\n }) => setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reloading: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reloading: true\n }));\n\n //При необходимости перезагрузки таблицы\n const handleReload = () => setDataGrid(pv => ({\n ...pv,\n pageNumber: 1,\n reloading: true\n }));\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных графика с сервера\n const loadDataGrid = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.DATA_GRID\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)([...dataGrid.filters, ...storedArgs], {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: 10,\n NINCLUDE_DEF: dataGrid.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DDOCDATE\", \"DDATEFACT_BEG\", \"DDATEFACT_END\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef || [],\n rows: pv.pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...(pv.rows || []), ...(data.XDATA_GRID.rows || [])],\n dataLoaded: true,\n reloading: false,\n morePages: (data.XDATA_GRID.rows || []).length >= 10\n }));\n } catch (e) {\n setDataGrid(pv => ({\n ...pv,\n loaded: false,\n reload: false\n }));\n }\n };\n //При необходимости перезагрузить\n if (dataGrid.reloading) loadDataGrid();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataGrid.reloading, executeStored]);\n\n //Возвращаем график\n return {\n dataGrid,\n handleReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/hooks.js?");
/***/ }),
diff --git a/repair_anl_atc/hooks/hooks.js b/repair_anl_atc/hooks/hooks.js
index 8863a70..fc239ec 100644
--- a/repair_anl_atc/hooks/hooks.js
+++ b/repair_anl_atc/hooks/hooks.js
@@ -162,7 +162,6 @@ const useTableRepairs = ({ storedArgs = [] }) => {
morePages: (data.XDATA_GRID.rows || []).length >= 10
}));
} catch (e) {
- console.log(e);
setDataGrid(pv => ({ ...pv, loaded: false, reload: false }));
}
};
diff --git a/repair_anl_atc/layouts.js b/repair_anl_atc/layouts.js
index a6f6db2..192cbed 100644
--- a/repair_anl_atc/layouts.js
+++ b/repair_anl_atc/layouts.js
@@ -39,7 +39,6 @@ const formatStateValue = (value, addText = false) => {
//Формирование значения для колонки "Номер документа"
const formatNumbValue = (row, columnDef, showEquipRepairSheets) => {
- console.log(columnDef.name);
return (
showEquipRepairSheets({ nRn: row["NRN"] })}>
{row[columnDef.name]}