diff --git a/hauler_anl/filter.js b/hauler_anl/filter.js index 9d8ceb3..5879432 100644 --- a/hauler_anl/filter.js +++ b/hauler_anl/filter.js @@ -79,7 +79,11 @@ const Filter = ({ filter, onFilterOpen }) => { {filter.dDate ? : null} {filter.sCustomerDept ? ( - + ) : null} {filter.dDateKOAFrom ? ( diff --git a/hauler_anl/filter_dialog.js b/hauler_anl/filter_dialog.js index e82fe81..13f53c7 100644 --- a/hauler_anl/filter_dialog.js +++ b/hauler_anl/filter_dialog.js @@ -10,7 +10,7 @@ import React, { useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Dialog, DialogTitle, IconButton, Icon, DialogContent, DialogActions, Button, Box, TextField, InputAdornment } from "@mui/material"; //Интерфейсные компоненты -import { useDictionary } from "./hooks/dict_hooks"; //Хуки открытий разделов +import { useDictionary, useProcedures } from "./hooks/dict_hooks"; //Хуки открытий разделов import { hasValue, formatDateJSONDateOnly } from "../../core/utils"; //Вспомогательные функции //--------- @@ -52,15 +52,20 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => { //Вспомогательные функции открытия раздела const { handleInsDepartmentOpen } = useDictionary(); + //Вспомогательные функции + const { handleInsDepartmentNameGet } = useProcedures(); + //Отработка воода значения в фильтр - const handleValueChanged = e => setFilter(pv => ({ ...pv, [e.target.name]: e.target.value })); + const handleValueChanged = e => { + setFilter(pv => ({ ...pv, [e.target.name]: e.target.value, ...(e.target.name === "sCustomerDept" ? { sCustomerDeptName: "" } : {}) })); + }; //При изменении каталога фильтра const handleCustomerDeptSelect = () => handleInsDepartmentOpen({ sCode: filter.sCustomerDept, callBack: res => { - setFilter(pv => ({ ...pv, sCustomerDept: res.outParameters.out_CODE })); + setFilter(pv => ({ ...pv, sCustomerDept: res.outParameters.out_CODE, sCustomerDeptName: res.outParameters.out_NAME })); } }); @@ -74,14 +79,25 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => { //При очистке фильтра const handleClear = () => { - setFilter({ dDate: "", sCustomerDept: "", dDateKOAFrom: "", dDateKOATo: "" }); + setFilter({ dDate: "", sCustomerDept: "", sCustomerDeptName: "", dDateKOAFrom: "", dDateKOATo: "" }); }; //При закрытии диалога без изменения фильтра const handleCancel = () => (isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null); //При закрытии диалога с изменением фильтра - const handleOK = () => (isActionAllow(filter) && onOk ? onOk(filter) : null); + const handleOK = async () => { + let filterRes = { ...filter }; + //Если наименование подразделения пустое + if (!filterRes.sCustomerDeptName) { + //Если мнемокоды подразделений совпадают + filterRes.sCustomerDeptName = + filterRes.sCustomerDept === initial.sCustomerDept + ? initial.sCustomerDeptName + : await handleInsDepartmentNameGet({ code: filterRes.sCustomerDept }); + } + isActionAllow(filterRes) && onOk ? onOk(filterRes) : null; + }; //Генерация содержимого return ( diff --git a/hauler_anl/hooks/dict_hooks.js b/hauler_anl/hooks/dict_hooks.js index f31d1c0..9962654 100644 --- a/hauler_anl/hooks/dict_hooks.js +++ b/hauler_anl/hooks/dict_hooks.js @@ -9,6 +9,7 @@ import { useContext, useCallback } from "react"; //Классы React import { ApplicationСtx } from "../../../context/application"; //Контекст приложения +import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером //----------- //Тело модуля @@ -17,7 +18,7 @@ import { ApplicationСtx } from "../../../context/application"; //Контекс //Состояние открытия разделов const useDictionary = () => { //Подключение к контексту приложения - const { pOnlineShowDictionary } = useContext(ApplicationСtx); + const { pOnlineShowDictionary, pOnlineShowUnit } = useContext(ApplicationСtx); //Отображение раздела "Штатные подразделения" const handleInsDepartmentOpen = useCallback( @@ -64,29 +65,40 @@ const useDictionary = () => { //Отображение раздела "Ремонтные ведомости" const handleEquipRepairSheetsOpen = useCallback( async prms => { - pOnlineShowDictionary({ + // pOnlineShowDictionary({ + // unitCode: "EquipRepairSheets", + // inputParameters: [{ name: "in_RN", value: prms.nRn }], + // callBack: res => { + // res.success ? prms.callBack(res) : null; + // } + // }); + + pOnlineShowUnit({ unitCode: "EquipRepairSheets", inputParameters: [{ name: "in_RN", value: prms.nRn }], - callBack: res => { - res.success ? prms.callBack(res) : null; - } + modal: false }); }, - [pOnlineShowDictionary] + [pOnlineShowUnit] ); //Отображение раздела "Картотека АТС" const handleHaulerUnitsCardsOpen = useCallback( async prms => { - pOnlineShowDictionary({ + // pOnlineShowDictionary({ + // unitCode: "HaulerUnitsCards", + // inputParameters: [{ name: "in_RN", value: prms.nRn }], + // callBack: res => { + // res.success ? prms.callBack(res) : null; + // } + // }); + pOnlineShowUnit({ unitCode: "HaulerUnitsCards", inputParameters: [{ name: "in_RN", value: prms.nRn }], - callBack: res => { - res.success ? prms.callBack(res) : null; - } + modal: false }); }, - [pOnlineShowDictionary] + [pOnlineShowUnit] ); //Возвращаем функции открытия разделов @@ -99,8 +111,31 @@ const useDictionary = () => { }; }; +//Состояние дополнительных общих процедур +const useProcedures = () => { + //Подключение к контексту взаимодействия с сервером + const { executeStored } = useContext(BackEndСtx); + + //Считывание наименования подразделения по мнемокоду + const handleInsDepartmentNameGet = useCallback( + async prms => { + //Считываем наименование подразделения + const departmentName = await executeStored({ + stored: "UDO_PKG_P8PANELS_HAULER_ANL.GET_INS_DEPARTMENT_NAME", + args: { SCODE: prms.code } + }); + //Возвращаем наименование подразделения + return departmentName.SNAME; + }, + [executeStored] + ); + + //Возвращаем дополнительные функции + return { handleInsDepartmentNameGet }; +}; + //---------------- //Интерфейс модуля //---------------- -export { useDictionary }; +export { useDictionary, useProcedures }; diff --git a/hauler_anl/hooks/filter_hooks.js b/hauler_anl/hooks/filter_hooks.js index 2b51bc2..8a6aad3 100644 --- a/hauler_anl/hooks/filter_hooks.js +++ b/hauler_anl/hooks/filter_hooks.js @@ -22,6 +22,7 @@ const useFilters = () => { loaded: false, dDate: "", sCustomerDept: "", + sCustomerDeptName: "", dDateKOAFrom: "", dDateKOATo: "" }); diff --git a/hauler_anl/hooks/hooks.js b/hauler_anl/hooks/hooks.js index e9a95bb..8074f0f 100644 --- a/hauler_anl/hooks/hooks.js +++ b/hauler_anl/hooks/hooks.js @@ -75,7 +75,7 @@ const useChartCalcs = ({ storedArgs = {} }) => { const loadChart = async () => { try { const chart = await executeStored({ - stored: "UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KGT_KOA", + stored: "UDO_PKG_P8PANELS_HAULER_ANL.CHART_ATC_KTG_KOA", args: { SDEPARTMENT: storedArgs.sCustomerDept || storedArgs.sDepartment, DDATE_KOA_FROM: storedArgs.dDateKOAFrom ? new Date(storedArgs.dDateKOAFrom) : null, diff --git a/p8-panels.js b/p8-panels.js index abe7d17..ff7d56b 100644 --- a/p8-panels.js +++ b/p8-panels.js @@ -807,7 +807,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 */ ChartFilter: () => (/* binding */ ChartFilter)\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 _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//Графики\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Считывание наименования состояния\nconst getStateName = state => {\n return state === 0 ? \"На линии\" : state === 1 ? \"Ремонт\" : \"Не определено\";\n};\n\n//Элемент фильтра\nconst FilterItem = ({\n field,\n caption,\n value,\n onDelete\n}) => {\n //При удалении фильтра\n const handleDelete = () => onDelete ? onDelete(field) : 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 onDelete: handleDelete\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n field: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onDelete: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst ChartFilter = ({\n chartName,\n filter,\n onFilterChange\n}) => {\n //При удалении фильтра\n const handleDelete = field => onFilterChange && onFilterChange({\n chartName,\n filter: {\n ...filter,\n [field]: null\n }\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_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, chartName === CHART_NAMES.info ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nState\",\n caption: \"Готовность\",\n value: getStateName(filter.nState),\n onDelete: handleDelete\n }) : null : chartName === CHART_NAMES.calcs ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"sDepartment\",\n caption: \"Подразделение\",\n value: filter.sDepartment,\n onDelete: handleDelete\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nChartFilter.propTypes = {\n chartName: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterChange: (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/chart_filter.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChartFilter: () => (/* binding */ ChartFilter)\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 _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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Компонент: Фильтр отбора\r\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//Графики\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Считывание наименования состояния\nconst getStateName = state => {\n return state === 0 ? \"На линии\" : state === 1 ? \"Ремонт\" : \"Не определено\";\n};\n\n//Элемент фильтра\nconst FilterItem = ({\n field,\n caption,\n value,\n onDelete\n}) => {\n //При удалении фильтра\n const handleDelete = () => onDelete ? onDelete(field) : 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 onDelete: handleDelete\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n field: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onDelete: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst ChartFilter = ({\n chartName,\n filter,\n onFilterChange\n}) => {\n //При удалении фильтра\n const handleDelete = field => onFilterChange && onFilterChange({\n chartName,\n filter: {\n ...filter,\n [field]: null\n }\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_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, chartName === CHART_NAMES.info ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nState\",\n caption: \"Готовность\",\n value: getStateName(filter.nState),\n onDelete: handleDelete\n }) : null : chartName === CHART_NAMES.calcs ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"sDepartment\",\n caption: \"Подразделение\",\n value: filter.sDepartment,\n onDelete: handleDelete\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nChartFilter.propTypes = {\n chartName: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterChange: (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/chart_filter.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, 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?"); +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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Компонент: Фильтр отбора\r\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.sCustomerDeptName} (${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 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?"); +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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Компонент: Диалоговое окно фильтра отбора\r\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 {\n handleInsDepartmentNameGet\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useProcedures)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => {\n setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value,\n ...(e.target.name === \"sCustomerDept\" ? {\n sCustomerDeptName: \"\"\n } : {})\n }));\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 sCustomerDeptName: res.outParameters.out_NAME\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 sCustomerDeptName: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = async () => {\n let filterRes = {\n ...filter\n };\n //Если наименование подразделения пустое\n if (!filterRes.sCustomerDeptName) {\n //Если мнемокоды подразделений совпадают\n filterRes.sCustomerDeptName = filterRes.sCustomerDept === initial.sCustomerDept ? initial.sCustomerDeptName : await handleInsDepartmentNameGet({\n code: filterRes.sCustomerDept\n });\n }\n isActionAllow(filterRes) && onOk ? onOk(filterRes) : null;\n };\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?"); /***/ }), @@ -840,7 +840,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 */ HaulerAnl: () => (/* binding */ HaulerAnl)\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_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/hauler_anl/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/hauler_anl/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/hauler_anl/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/hauler_anl/hooks/hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layouts */ \"./app/panels/hauler_anl/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/hauler_anl/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Панель мониторинга: Корневая панель гаражки\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n //Вспомогательные функции верстки\n //Фильтр графика\n //Вспомогательные функции\n //Хуки для открытия раздела\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель гаражки\nconst HaulerAnl = () => {\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__.useDictionary)();\n\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры информации\n const [filterInfo, setFilterInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры расчетов\n const [filterCalcs, setFilterCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sDepartment: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterInfo.nState,\n sDepartment: filterCalcs.sDepartment\n };\n }, [filterValues, filterInfo, filterCalcs]);\n\n //Состояние графика информации АТС\n const {\n chartInfo,\n handleReload: handleChartInfoReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartInfo)({\n storedArgs: allFilters\n });\n\n //Состояние графика расчетов\n const {\n chartCalcs,\n handleReload: handleChartCalcsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartCalcs)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableATCReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableATC)({\n storedArgs: allFilters\n });\n\n //При изменении фильтра в диалоге\n const handleFilterOk = async filter => {\n //Обновляем фильтры\n await handleFilterChange({\n filter\n });\n //Если указан общий и внутренний фильтр по подразделению\n if (filter.sCustomerDept && filterCalcs.sDepartment) {\n //Очищаем внутренний\n setFilterCalcs({\n sDepartment: null,\n ignoreReload: true\n });\n }\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Информация АТС\"\n const handleChartInfoClick = ({\n item\n }) => {\n setFilterInfo({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика расчетов\n const handleChartCalcsClick = ({\n item\n }) => {\n //Если подразделение не соответствует текущему\n if (item.SCODE !== filterCalcs.sDepartment && !filterValues.sCustomerDept) setFilterCalcs({\n sDepartment: item.SCODE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Информация АТС\"\n if (chartName === CHART_NAMES.info) {\n setFilterInfo({\n ...filter\n });\n }\n //При изменении фильтров графика расчетов\n if (chartName === CHART_NAMES.calcs) setFilterCalcs({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartInfoReload();\n handleChartCalcsReload();\n handleTableATCReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.info,\n filter: filterInfo,\n onFilterChange: handleChartFilterChange\n }) : null, chartInfo.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartInfo, {\n style: STYLES.CHART,\n onClick: handleChartInfoClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.calcs,\n filter: filterCalcs,\n onFilterChange: handleChartFilterChange\n }) : null, chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartCalcs, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartCalcsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.dataCellRender)({\n ...prms,\n showHaulerUnitsCards: handleHaulerUnitsCardsOpen\n }),\n valueFormatter: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.valueFormatter)({\n ...prms,\n onRepairSheetOpen: handleEquipRepairSheetsOpen\n })\n })) : null)), chartInfo.loaded && chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hauler_anl.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HaulerAnl: () => (/* binding */ HaulerAnl)\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_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/hauler_anl/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/hauler_anl/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/hauler_anl/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/hauler_anl/hooks/hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layouts */ \"./app/panels/hauler_anl/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/hauler_anl/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/hauler_anl/hooks/dict_hooks.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Панель мониторинга: Корневая панель гаражки\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n //Вспомогательные функции верстки\n //Фильтр графика\n //Вспомогательные функции\n //Хуки для открытия раздела\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n info: \"INFO\",\n calcs: \"CALCS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель гаражки\nconst HaulerAnl = () => {\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_13__.useDictionary)();\n\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры информации\n const [filterInfo, setFilterInfo] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры расчетов\n const [filterCalcs, setFilterCalcs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sDepartment: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterInfo.nState,\n sDepartment: filterCalcs.sDepartment\n };\n }, [filterValues, filterInfo, filterCalcs]);\n\n //Состояние графика информации АТС\n const {\n chartInfo,\n handleReload: handleChartInfoReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartInfo)({\n storedArgs: allFilters\n });\n\n //Состояние графика расчетов\n const {\n chartCalcs,\n handleReload: handleChartCalcsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartCalcs)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableATCReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableATC)({\n storedArgs: allFilters\n });\n\n //При изменении фильтра в диалоге\n const handleFilterOk = async filter => {\n //Обновляем фильтры\n await handleFilterChange({\n filter\n });\n //Если указан общий и внутренний фильтр по подразделению\n if (filter.sCustomerDept && filterCalcs.sDepartment) {\n //Очищаем внутренний\n setFilterCalcs({\n sDepartment: null,\n ignoreReload: true\n });\n }\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Информация АТС\"\n const handleChartInfoClick = ({\n item\n }) => {\n setFilterInfo({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика расчетов\n const handleChartCalcsClick = ({\n item\n }) => {\n //Если подразделение не соответствует текущему\n if (item.SCODE !== filterCalcs.sDepartment && !filterValues.sCustomerDept) setFilterCalcs({\n sDepartment: item.SCODE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Информация АТС\"\n if (chartName === CHART_NAMES.info) {\n setFilterInfo({\n ...filter\n });\n }\n //При изменении фильтров графика расчетов\n if (chartName === CHART_NAMES.calcs) setFilterCalcs({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartInfoReload();\n handleChartCalcsReload();\n handleTableATCReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.info,\n filter: filterInfo,\n onFilterChange: handleChartFilterChange\n }) : null, chartInfo.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartInfo, {\n style: STYLES.CHART,\n onClick: handleChartInfoClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_11__.ChartFilter, {\n chartName: CHART_NAMES.calcs,\n filter: filterCalcs,\n onFilterChange: handleChartFilterChange\n }) : null, chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartCalcs, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartCalcsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterInfo.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_12__.hasValue)(filterCalcs.sDepartment))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.dataCellRender)({\n ...prms,\n showHaulerUnitsCards: handleHaulerUnitsCardsOpen\n }),\n valueFormatter: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_10__.valueFormatter)({\n ...prms,\n onRepairSheetOpen: handleEquipRepairSheetsOpen\n })\n })) : null)), chartInfo.loaded && chartCalcs.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hauler_anl.js?"); /***/ }), @@ -851,7 +851,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 */ useDictionary: () => (/* binding */ useDictionary)\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_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Пользовательские хуки: Хуки открытия разделов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст приложения\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useDictionary = () => {\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Отображение раздела \"Штатные подразделения\"\n const handleInsDepartmentOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"INS_DEPARTMENT\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Типовые работы по техническому обслуживанию и ремонту\"\n const handleEquipTypeWorksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipTypeWorks\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Виды работ по техническому обслуживанию и ремонту\"\n const handleEquipWorkKindsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipWorkKinds\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Ремонтные ведомости\"\n const handleEquipRepairSheetsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Картотека АТС\"\n const handleHaulerUnitsCardsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"HaulerUnitsCards\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Возвращаем функции открытия разделов\n return {\n handleInsDepartmentOpen,\n handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen,\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/dict_hooks.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useDictionary: () => (/* binding */ useDictionary),\n/* harmony export */ useProcedures: () => (/* binding */ useProcedures)\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_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Пользовательские хуки: Хуки открытия разделов\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст приложения\n //Контекст взаимодействия с сервером\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useDictionary = () => {\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary,\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Отображение раздела \"Штатные подразделения\"\n const handleInsDepartmentOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"INS_DEPARTMENT\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Типовые работы по техническому обслуживанию и ремонту\"\n const handleEquipTypeWorksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipTypeWorks\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Виды работ по техническому обслуживанию и ремонту\"\n const handleEquipWorkKindsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipWorkKinds\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Ремонтные ведомости\"\n const handleEquipRepairSheetsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n // pOnlineShowDictionary({\n // unitCode: \"EquipRepairSheets\",\n // inputParameters: [{ name: \"in_RN\", value: prms.nRn }],\n // callBack: res => {\n // res.success ? prms.callBack(res) : null;\n // }\n // });\n\n pOnlineShowUnit({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n modal: false\n });\n }, [pOnlineShowUnit]);\n\n //Отображение раздела \"Картотека АТС\"\n const handleHaulerUnitsCardsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n // pOnlineShowDictionary({\n // unitCode: \"HaulerUnitsCards\",\n // inputParameters: [{ name: \"in_RN\", value: prms.nRn }],\n // callBack: res => {\n // res.success ? prms.callBack(res) : null;\n // }\n // });\n pOnlineShowUnit({\n unitCode: \"HaulerUnitsCards\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n modal: false\n });\n }, [pOnlineShowUnit]);\n\n //Возвращаем функции открытия разделов\n return {\n handleInsDepartmentOpen,\n handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen,\n handleEquipRepairSheetsOpen,\n handleHaulerUnitsCardsOpen\n };\n};\n\n//Состояние дополнительных общих процедур\nconst useProcedures = () => {\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_2__[\"BackEndСtx\"]);\n\n //Считывание наименования подразделения по мнемокоду\n const handleInsDepartmentNameGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n //Считываем наименование подразделения\n const departmentName = await executeStored({\n stored: \"UDO_PKG_P8PANELS_HAULER_ANL.GET_INS_DEPARTMENT_NAME\",\n args: {\n SCODE: prms.code\n }\n });\n //Возвращаем наименование подразделения\n return departmentName.SNAME;\n }, [executeStored]);\n\n //Возвращаем дополнительные функции\n return {\n handleInsDepartmentNameGet\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/dict_hooks.js?"); /***/ }), @@ -862,7 +862,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 */ useFilters: () => (/* binding */ useFilters)\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//Состояние открытия разделов\nconst useFilters = () => {\n //Собственное состояние - общие значения фильтров\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n dDate: \"\",\n sCustomerDept: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n\n //Собственное состояние - признак загрузки настроек\n const [isFiltersLoaded, setIsFiltersLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - признак инициализации\n const [filtersInit, setFiltersInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\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 handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n filter\n }) => {\n //Формируем новые фильтры\n const newFilters = {\n ...filterValues,\n ...filter\n };\n\n //Если фильтры изменились - обновим их\n if (JSON.stringify(filterValues) != JSON.stringify(newFilters)) {\n await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_SET\",\n args: {\n SPANEL: \"hauler_anl\",\n CSETTINGS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(newFilters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n setFilterValues({\n ...newFilters\n });\n }\n\n //Это не инициализация\n filtersInit ? setFiltersInit(false) : false;\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, filtersInit]);\n\n //При загрузке панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка настроек с сервера\n const loadSettings = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_GET\",\n args: {\n SPANEL: \"hauler_anl\"\n },\n respArg: \"COUT\"\n });\n //Если есть настройки - указываем\n if (data) setFilterValues({\n ...data\n });\n } finally {\n setIsFiltersLoaded(true);\n }\n };\n if (!isFiltersLoaded) loadSettings();\n }, [executeStored, isFiltersLoaded]);\n\n //Возвращаем функции открытия разделов\n return [filterValues, isFiltersLoaded, filtersInit, handleChange];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/filter_hooks.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useFilters: () => (/* binding */ useFilters)\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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Пользовательские хуки: Хуки фильтров\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n //Вспомогательные функции\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useFilters = () => {\n //Собственное состояние - общие значения фильтров\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n dDate: \"\",\n sCustomerDept: \"\",\n sCustomerDeptName: \"\",\n dDateKOAFrom: \"\",\n dDateKOATo: \"\"\n });\n\n //Собственное состояние - признак загрузки настроек\n const [isFiltersLoaded, setIsFiltersLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - признак инициализации\n const [filtersInit, setFiltersInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\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 handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n filter\n }) => {\n //Формируем новые фильтры\n const newFilters = {\n ...filterValues,\n ...filter\n };\n\n //Если фильтры изменились - обновим их\n if (JSON.stringify(filterValues) != JSON.stringify(newFilters)) {\n await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_SET\",\n args: {\n SPANEL: \"hauler_anl\",\n CSETTINGS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(newFilters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n setFilterValues({\n ...newFilters\n });\n }\n\n //Это не инициализация\n filtersInit ? setFiltersInit(false) : false;\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, filtersInit]);\n\n //При загрузке панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка настроек с сервера\n const loadSettings = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_GET\",\n args: {\n SPANEL: \"hauler_anl\"\n },\n respArg: \"COUT\"\n });\n //Если есть настройки - указываем\n if (data) setFilterValues({\n ...data\n });\n } finally {\n setIsFiltersLoaded(true);\n }\n };\n if (!isFiltersLoaded) loadSettings();\n }, [executeStored, isFiltersLoaded]);\n\n //Возвращаем функции открытия разделов\n return [filterValues, isFiltersLoaded, filtersInit, handleChange];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/hooks/filter_hooks.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 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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Пользовательские хуки: Хуки основных компонентов\r\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_KTG_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?"); /***/ }), @@ -884,7 +884,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 */ RootClass: () => (/* binding */ RootClass)\n/* harmony export */ });\n/* harmony import */ var _hauler_anl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hauler_anl */ \"./app/panels/hauler_anl/hauler_anl.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\n Панель мониторинга: Точка входа\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Корневая панель гаражки\n\n//----------------\n//Интерфейс модуля\n//----------------\n\nconst RootClass = _hauler_anl__WEBPACK_IMPORTED_MODULE_0__.HaulerAnl;\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RootClass: () => (/* binding */ RootClass)\n/* harmony export */ });\n/* harmony import */ var _hauler_anl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hauler_anl */ \"./app/panels/hauler_anl/hauler_anl.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Панель мониторинга: Точка входа\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Корневая панель гаражки\n\n//----------------\n//Интерфейс модуля\n//----------------\n\nconst RootClass = _hauler_anl__WEBPACK_IMPORTED_MODULE_0__.HaulerAnl;\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/hauler_anl/index.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\"] : 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?"); +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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Гаражка\r\n Дополнительная разметка и вёрстка клиентских элементов\r\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?"); /***/ }), @@ -4271,7 +4271,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 */ ChartFilter: () => (/* binding */ ChartFilter)\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 _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//Графики\nconst CHART_NAMES = {\n repairs: \"REPAIRS\",\n spendings: \"SPENDINGS\"\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Считывание наименования состояния\nconst getStateName = state => {\n return state === 0 ? \"Не завершенные\" : \"Завершенные\";\n};\n\n//Считывание типа затрат\nconst getTypeSpendings = type => {\n return type === 0 ? \"Внутренние\" : \"Внешние\";\n};\n\n//Элемент фильтра\nconst FilterItem = ({\n field,\n caption,\n value,\n onDelete\n}) => {\n //При удалении фильтра\n const handleDelete = () => onDelete ? onDelete(field) : 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 onDelete: handleDelete\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n field: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onDelete: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst ChartFilter = ({\n chartName,\n filter,\n onFilterChange\n}) => {\n //При удалении фильтра\n const handleDelete = field => onFilterChange && onFilterChange({\n chartName,\n filter: {\n ...filter,\n [field]: null\n }\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_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, chartName === CHART_NAMES.repairs ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nState\",\n caption: \"Состояние\",\n value: getStateName(filter.nState),\n onDelete: handleDelete\n }) : null : chartName === CHART_NAMES.spendings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nType\",\n caption: \"Тип затрат\",\n value: getTypeSpendings(filter.nType),\n onDelete: handleDelete\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nChartFilter.propTypes = {\n chartName: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterChange: (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/repair_anl_atc/chart_filter.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChartFilter: () => (/* binding */ ChartFilter)\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 _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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Компонент: Фильтр отбора\r\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//Графики\nconst CHART_NAMES = {\n repairs: \"REPAIRS\",\n spendings: \"SPENDINGS\"\n};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Считывание наименования состояния\nconst getStateName = state => {\n return state === 0 ? \"Не завершенные\" : \"Завершенные\";\n};\n\n//Считывание типа затрат\nconst getTypeSpendings = type => {\n return type === 0 ? \"Внутренние\" : \"Внешние\";\n};\n\n//Элемент фильтра\nconst FilterItem = ({\n field,\n caption,\n value,\n onDelete\n}) => {\n //При удалении фильтра\n const handleDelete = () => onDelete ? onDelete(field) : 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 onDelete: handleDelete\n });\n};\n\n//Контроль свойств компонента - Элемент фильтра\nFilterItem.propTypes = {\n field: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().any),\n onDelete: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Фильтр отбора\nconst ChartFilter = ({\n chartName,\n filter,\n onFilterChange\n}) => {\n //При удалении фильтра\n const handleDelete = field => onFilterChange && onFilterChange({\n chartName,\n filter: {\n ...filter,\n [field]: null\n }\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_4__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n alignItems: \"center\",\n sx: STYLES.FILTERS_STACK\n }, chartName === CHART_NAMES.repairs ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nState\",\n caption: \"Состояние\",\n value: getStateName(filter.nState),\n onDelete: handleDelete\n }) : null : chartName === CHART_NAMES.spendings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n field: \"nType\",\n caption: \"Тип затрат\",\n value: getTypeSpendings(filter.nType),\n onDelete: handleDelete\n }) : null))));\n};\n\n//Контроль свойств компонента - Фильтр отбора\nChartFilter.propTypes = {\n chartName: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,\n onFilterChange: (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/repair_anl_atc/chart_filter.js?"); /***/ }), @@ -4282,7 +4282,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.dDateBegin ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Дата с\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDateBegin),\n onClick: handleClick\n }) : null, filter.dDateEnd ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Дата по\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDateEnd),\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.sWorkType ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Типовая работа\",\n value: filter.sWorkType,\n onClick: handleClick\n }) : null, filter.sWorkKind ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Вид типовых работ\",\n value: filter.sWorkKind,\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/repair_anl_atc/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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Компонент: Фильтр отбора\r\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.dDateBegin ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Дата с\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDateBegin),\n onClick: handleClick\n }) : null, filter.dDateEnd ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Дата по\",\n value: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(filter.dDateEnd),\n onClick: handleClick\n }) : null, filter.sCustomerDept ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Транспортный участок\",\n value: `${filter.sCustomerDeptName} (${filter.sCustomerDept})`,\n onClick: handleClick\n }) : null, filter.sWorkType ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Типовая работа\",\n value: filter.sWorkType,\n onClick: handleClick\n }) : null, filter.sWorkKind ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FilterItem, {\n caption: \"Вид типовых работ\",\n value: filter.sWorkKind,\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/repair_anl_atc/filter.js?"); /***/ }), @@ -4293,7 +4293,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/repair_anl_atc/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};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"Дата с\" и \"Дата по\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDateBegin) && (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDateEnd) && !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 handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen\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 handleTypeWorkSelect = () => handleEquipTypeWorksOpen({\n sCode: filter.sWorkType,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sWorkType: res.outParameters.out_CODE\n }));\n }\n });\n\n //При изменении вида типовых работ\n const handleWorkKindSelect = () => handleEquipWorkKindsOpen({\n sCode: filter.sWorkKind,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sWorkKind: res.outParameters.out_CODE\n }));\n }\n });\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDateBegin: \"\",\n dDateEnd: \"\",\n sCustomerDept: \"\",\n sWorkType: \"\",\n sWorkKind: \"\"\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: \"dDateBegin\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateBegin,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDateBegin\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateEnd\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateEnd,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDateEnd\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_9__[\"default\"], {\n name: \"sWorkType\",\n value: filter.sWorkType,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0438\\u043F\\u043E\\u0432\\u0430\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\",\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\": `sWorkType select`,\n onClick: handleTypeWorkSelect,\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_9__[\"default\"], {\n name: \"sWorkKind\",\n value: filter.sWorkKind,\n onChange: handleValueChanged,\n label: \"\\u0412\\u0438\\u0434 \\u0442\\u0438\\u043F\\u043E\\u0432\\u044B\\u0445 \\u0440\\u0430\\u0431\\u043E\\u0442\",\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\": `sWorkKind select`,\n onClick: handleWorkKindSelect,\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_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/repair_anl_atc/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/repair_anl_atc/hooks/dict_hooks.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Компонент: Диалоговое окно фильтра отбора\r\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};\n\n//--------------------------\n//Вспомогательные компоненты\n//--------------------------\n\n//Проверка возможности выполнения действия\nconst isActionAllow = (filter, isFiltersInit = false) => {\n //Если указана \"Дата с\" и \"Дата по\", а также это не инициализация\n return (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDateBegin) && (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.dDateEnd) && !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 handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useDictionary)();\n\n //Вспомогательные функции\n const {\n handleInsDepartmentNameGet\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_1__.useProcedures)();\n\n //Отработка воода значения в фильтр\n const handleValueChanged = e => {\n setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.value,\n ...(e.target.name === \"sCustomerDept\" ? {\n sCustomerDeptName: \"\"\n } : {})\n }));\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 sCustomerDeptName: res.outParameters.out_NAME\n }));\n }\n });\n\n //При изменении типовой работы\n const handleTypeWorkSelect = () => handleEquipTypeWorksOpen({\n sCode: filter.sWorkType,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sWorkType: res.outParameters.out_CODE\n }));\n }\n });\n\n //При изменении вида типовых работ\n const handleWorkKindSelect = () => handleEquipWorkKindsOpen({\n sCode: filter.sWorkKind,\n callBack: res => {\n setFilter(pv => ({\n ...pv,\n sWorkKind: res.outParameters.out_CODE\n }));\n }\n });\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n dDateBegin: \"\",\n dDateEnd: \"\",\n sCustomerDept: \"\",\n sCustomerDeptName: \"\",\n sWorkType: \"\",\n sWorkKind: \"\"\n });\n };\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null;\n\n //При закрытии диалога с изменением фильтра\n const handleOK = async () => {\n let filterRes = {\n ...filter\n };\n //Если наименование подразделения пустое\n if (!filterRes.sCustomerDeptName) {\n //Если мнемокоды подразделений совпадают\n filterRes.sCustomerDeptName = filterRes.sCustomerDept === initial.sCustomerDept ? initial.sCustomerDeptName : await handleInsDepartmentNameGet({\n code: filterRes.sCustomerDept\n });\n }\n isActionAllow(filterRes) && onOk ? onOk(filterRes) : null;\n };\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: \"dDateBegin\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateBegin,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u0441\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDateBegin\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"dDateEnd\",\n type: \"date\",\n InputLabelProps: {\n shrink: true\n },\n value: filter.dDateEnd,\n onChange: handleValueChanged,\n label: \"\\u0414\\u0430\\u0442\\u0430 \\u043F\\u043E\",\n variant: \"standard\",\n fullWidth: true,\n required: true,\n error: !filter.dDateEnd\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_9__[\"default\"], {\n name: \"sWorkType\",\n value: filter.sWorkType,\n onChange: handleValueChanged,\n label: \"\\u0422\\u0438\\u043F\\u043E\\u0432\\u0430\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\",\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\": `sWorkType select`,\n onClick: handleTypeWorkSelect,\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_9__[\"default\"], {\n name: \"sWorkKind\",\n value: filter.sWorkKind,\n onChange: handleValueChanged,\n label: \"\\u0412\\u0438\\u0434 \\u0442\\u0438\\u043F\\u043E\\u0432\\u044B\\u0445 \\u0440\\u0430\\u0431\\u043E\\u0442\",\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\": `sWorkKind select`,\n onClick: handleWorkKindSelect,\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_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/repair_anl_atc/filter_dialog.js?"); /***/ }), @@ -4304,7 +4304,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 */ useDictionary: () => (/* binding */ useDictionary)\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_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\n Пользовательские хуки: Хуки открытия разделов\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст приложения\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useDictionary = () => {\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Отображение раздела \"Штатные подразделения\"\n const handleInsDepartmentOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"INS_DEPARTMENT\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Типовые работы по техническому обслуживанию и ремонту\"\n const handleEquipTypeWorksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipTypeWorks\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Виды работ по техническому обслуживанию и ремонту\"\n const handleEquipWorkKindsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipWorkKinds\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Ремонтные ведомости\"\n const handleEquipRepairSheetsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Возвращаем функции открытия разделов\n return {\n handleInsDepartmentOpen,\n handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen,\n handleEquipRepairSheetsOpen\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/dict_hooks.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useDictionary: () => (/* binding */ useDictionary),\n/* harmony export */ useProcedures: () => (/* binding */ useProcedures)\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_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Пользовательские хуки: Хуки открытия разделов\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст приложения\n //Контекст взаимодействия с сервером\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useDictionary = () => {\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary,\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Отображение раздела \"Штатные подразделения\"\n const handleInsDepartmentOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"INS_DEPARTMENT\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Типовые работы по техническому обслуживанию и ремонту\"\n const handleEquipTypeWorksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipTypeWorks\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Виды работ по техническому обслуживанию и ремонту\"\n const handleEquipWorkKindsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EquipWorkKinds\",\n inputParameters: [{\n name: \"in_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Ремонтные ведомости\"\n const handleEquipRepairSheetsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n // pOnlineShowDictionary({\n // unitCode: \"EquipRepairSheets\",\n // inputParameters: [{ name: \"in_RN\", value: prms.nRn }],\n // callBack: res => {\n // res.success ? prms.callBack(res) : null;\n // }\n // });\n\n pOnlineShowUnit({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_RN\",\n value: prms.nRn\n }],\n modal: false\n });\n }, [pOnlineShowUnit]);\n\n //Возвращаем функции открытия разделов\n return {\n handleInsDepartmentOpen,\n handleEquipTypeWorksOpen,\n handleEquipWorkKindsOpen,\n handleEquipRepairSheetsOpen\n };\n};\n\n//Состояние дополнительных общих процедур\nconst useProcedures = () => {\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_2__[\"BackEndСtx\"]);\n\n //Считывание наименования подразделения по мнемокоду\n const handleInsDepartmentNameGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n //Считываем наименование подразделения\n const departmentName = await executeStored({\n stored: \"UDO_PKG_P8PANELS_RPR_ANL.GET_INS_DEPARTMENT_NAME\",\n args: {\n SCODE: prms.code\n }\n });\n //Возвращаем наименование подразделения\n return departmentName.SNAME;\n }, [executeStored]);\n\n //Возвращаем дополнительные функции\n return {\n handleInsDepartmentNameGet\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/dict_hooks.js?"); /***/ }), @@ -4315,7 +4315,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 */ useFilters: () => (/* binding */ useFilters)\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//Состояние открытия разделов\nconst useFilters = () => {\n //Собственное состояние - общие значения фильтров\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n dDateBegin: \"\",\n dDateEnd: \"\",\n sCustomerDept: \"\",\n sWorkType: \"\",\n sWorkKind: \"\"\n });\n\n //Собственное состояние - признак загрузки настроек\n const [isFiltersLoaded, setIsFiltersLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - признак инициализации\n const [filtersInit, setFiltersInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\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 handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n filter\n }) => {\n //Формируем новые фильтры\n const newFilters = {\n ...filterValues,\n ...filter\n };\n\n //Если фильтры изменились - обновим их\n if (JSON.stringify(filterValues) != JSON.stringify(newFilters)) {\n await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_SET\",\n args: {\n SPANEL: \"repair_anl_atc\",\n CSETTINGS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(newFilters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n setFilterValues({\n ...newFilters\n });\n }\n\n //Это не инициализация\n filtersInit ? setFiltersInit(false) : false;\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, filtersInit]);\n\n //При загрузке панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка настроек с сервера\n const loadSettings = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_GET\",\n args: {\n SPANEL: \"repair_anl_atc\"\n },\n respArg: \"COUT\"\n });\n //Если есть настройки - указываем\n if (data) setFilterValues({\n ...data\n });\n } finally {\n setIsFiltersLoaded(true);\n }\n };\n if (!isFiltersLoaded) loadSettings();\n }, [executeStored, isFiltersLoaded]);\n\n //Возвращаем функции открытия разделов\n return [filterValues, isFiltersLoaded, filtersInit, handleChange];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/filter_hooks.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useFilters: () => (/* binding */ useFilters)\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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Пользовательские хуки: Хуки фильтров\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n //Вспомогательные функции\n\n//-----------\n//Тело модуля\n//-----------\n\n//Состояние открытия разделов\nconst useFilters = () => {\n //Собственное состояние - общие значения фильтров\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n dDateBegin: \"\",\n dDateEnd: \"\",\n sCustomerDept: \"\",\n sCustomerDeptName: \"\",\n sWorkType: \"\",\n sWorkKind: \"\"\n });\n\n //Собственное состояние - признак загрузки настроек\n const [isFiltersLoaded, setIsFiltersLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - признак инициализации\n const [filtersInit, setFiltersInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\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 handleChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n filter\n }) => {\n //Формируем новые фильтры\n const newFilters = {\n ...filterValues,\n ...filter\n };\n\n //Если фильтры изменились - обновим их\n if (JSON.stringify(filterValues) != JSON.stringify(newFilters)) {\n await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_SET\",\n args: {\n SPANEL: \"repair_anl_atc\",\n CSETTINGS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(newFilters, {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n setFilterValues({\n ...newFilters\n });\n }\n\n //Это не инициализация\n filtersInit ? setFiltersInit(false) : false;\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, filtersInit]);\n\n //При загрузке панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка настроек с сервера\n const loadSettings = async () => {\n try {\n const data = await executeStored({\n stored: \"UDO_PKG_P8PANELS_USETTINGS.SETTINGS_GET\",\n args: {\n SPANEL: \"repair_anl_atc\"\n },\n respArg: \"COUT\"\n });\n //Если есть настройки - указываем\n if (data) setFilterValues({\n ...data\n });\n } finally {\n setIsFiltersLoaded(true);\n }\n };\n if (!isFiltersLoaded) loadSettings();\n }, [executeStored, isFiltersLoaded]);\n\n //Возвращаем функции открытия разделов\n return [filterValues, isFiltersLoaded, filtersInit, handleChange];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/hooks/filter_hooks.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 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/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Пользовательские хуки: Хуки основных компонентов\r\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?"); /***/ }), @@ -4337,7 +4337,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 */ RootClass: () => (/* binding */ RootClass)\n/* harmony export */ });\n/* harmony import */ var _repair_anl_atc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./repair_anl_atc */ \"./app/panels/repair_anl_atc/repair_anl_atc.js\");\n/*\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\n Панель мониторинга: Точка входа\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Корневая панель аналитики по ремонтам АТС\n\n//----------------\n//Интерфейс модуля\n//----------------\n\nconst RootClass = _repair_anl_atc__WEBPACK_IMPORTED_MODULE_0__.RepairAnlATC;\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RootClass: () => (/* binding */ RootClass)\n/* harmony export */ });\n/* harmony import */ var _repair_anl_atc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./repair_anl_atc */ \"./app/panels/repair_anl_atc/repair_anl_atc.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Панель мониторинга: Точка входа\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Корневая панель аналитики по ремонтам АТС\n\n//----------------\n//Интерфейс модуля\n//----------------\n\nconst RootClass = _repair_anl_atc__WEBPACK_IMPORTED_MODULE_0__.RepairAnlATC;\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/index.js?"); /***/ }), @@ -4348,7 +4348,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/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//-----------\n//Тело модуля\n//-----------\n\n//Формирование значения для колонки \"Состояние\"\nconst formatStateValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"Не утвержден\", \"clear\"] : value == 2 ? [\"Утвержден\", \"done\"] : value == 3 ? [\"Закрыт\", \"lock_outlined\"] : [\"Не определен\", \"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 formatNumbValue = (row, columnDef, showEquipRepairSheets) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => showEquipRepairSheets({\n nRn: row[\"NRN\"]\n })\n }, row[columnDef.name]);\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef,\n showEquipRepairSheets\n}) => {\n switch (columnDef.name) {\n case \"SNUMB\":\n return {\n data: formatNumbValue(row, columnDef, showEquipRepairSheets)\n };\n }\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NSTATE\":\n return formatStateValue(value, false);\n }\n return value;\n};\n\n//Форматирование фильтров панелей для фильтров таблицы\nconst formatFilterValues = filter => {\n return [{\n name: \"DDATEBEGIN_FILTER\",\n from: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDateBegin),\n to: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDateEnd)\n }, {\n name: \"SCUSTOMERDEPT_FILTER\",\n from: filter.sCustomerDept,\n to: \"\"\n }, {\n name: \"SWORKTYPE_FILTER\",\n from: filter.sWorkType,\n to: \"\"\n }, {\n name: \"SWORKKIND_FILTER\",\n from: filter.sWorkKind,\n to: \"\"\n }, {\n name: \"NSTATE_FILTER\",\n from: filter.nState,\n to: \"\"\n }, {\n name: \"NTYPESPEND_FILTER\",\n from: filter.nType,\n to: \"\"\n }];\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/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/Link/Link.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Дополнительная разметка и вёрстка клиентских элементов\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Формирование значения для колонки \"Состояние\"\nconst formatStateValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"Не утвержден\", \"clear\"] : value == 2 ? [\"Утвержден\", \"done\"] : value == 3 ? [\"Закрыт\", \"lock_outlined\"] : [\"Не определен\", \"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 formatNumbValue = (row, columnDef, showEquipRepairSheets) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => showEquipRepairSheets({\n nRn: row[\"NRN\"]\n })\n }, row[columnDef.name]);\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef,\n showEquipRepairSheets\n}) => {\n switch (columnDef.name) {\n case \"SNUMB\":\n return {\n data: formatNumbValue(row, columnDef, showEquipRepairSheets)\n };\n }\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NSTATE\":\n return formatStateValue(value, false);\n }\n return value;\n};\n\n//Форматирование фильтров панелей для фильтров таблицы\nconst formatFilterValues = filter => {\n return [{\n name: \"DDATEBEGIN_FILTER\",\n from: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDateBegin),\n to: (0,_core_utils__WEBPACK_IMPORTED_MODULE_1__.formatDateRF)(filter.dDateEnd)\n }, {\n name: \"SCUSTOMERDEPT_FILTER\",\n from: filter.sCustomerDept,\n to: \"\"\n }, {\n name: \"SWORKTYPE_FILTER\",\n from: filter.sWorkType,\n to: \"\"\n }, {\n name: \"SWORKKIND_FILTER\",\n from: filter.sWorkKind,\n to: \"\"\n }, {\n name: \"NSTATE_FILTER\",\n from: filter.nState,\n to: \"\"\n }, {\n name: \"NTYPESPEND_FILTER\",\n from: filter.nType,\n to: \"\"\n }];\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/layouts.js?"); /***/ }), @@ -4359,7 +4359,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 */ RepairAnlATC: () => (/* binding */ RepairAnlATC)\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_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/repair_anl_atc/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/repair_anl_atc/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/repair_anl_atc/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/repair_anl_atc/hooks/hooks.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/repair_anl_atc/hooks/dict_hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./layouts */ \"./app/panels/repair_anl_atc/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/repair_anl_atc/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\n Панель мониторинга: Корневая панель аналитики по ремонтам АТС\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n\n\n\n\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n repairs: \"REPAIRS\",\n spendings: \"SPENDINGS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель аналитики по ремонтам АТС\nconst RepairAnlATC = () => {\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры ремонтов\n const [filterRepairs, setFilterRepairs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры затрат\n const [filterSpendings, setFilterSpendings] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nType: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterRepairs.nState,\n nType: filterSpendings.nType\n };\n }, [filterRepairs.nState, filterSpendings.nType, filterValues]);\n\n //Состояние графика статусов\n const {\n chartStatuses,\n handleReload: handleChartStatusesReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartStatuses)({\n storedArgs: allFilters\n });\n\n //Состояние графика трудовых затрат\n const {\n chartSpendings,\n handleReload: handleChartSpendingsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartSpendings)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableRepairsReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableRepairs)({\n storedArgs: (0,_layouts__WEBPACK_IMPORTED_MODULE_11__.formatFilterValues)(allFilters)\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_10__.useDictionary)();\n\n //При изменении фильтра в диалоге\n const handleFilterOk = filter => {\n //Обновляем фильтры\n handleFilterChange({\n filter\n });\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Ремонты\"\n const handleChartStatusesClick = ({\n item\n }) => {\n setFilterRepairs({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика \"Трудовые затраты\"\n const handleChartSpendingsClick = ({\n item\n }) => {\n //Если тип не соответствует текущему\n if (item.NTYPE !== filterSpendings.nType) setFilterSpendings({\n nType: item.NTYPE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Ремонты\"\n if (chartName === CHART_NAMES.repairs) {\n setFilterRepairs({\n ...filter\n });\n }\n //При изменении фильтров графика \"Трудовые затраты\"\n if (chartName === CHART_NAMES.spendings) setFilterSpendings({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartStatusesReload();\n handleChartSpendingsReload();\n handleTableRepairsReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterRepairs.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_12__.ChartFilter, {\n chartName: CHART_NAMES.repairs,\n filter: filterRepairs,\n onFilterChange: handleChartFilterChange\n }) : null, chartStatuses.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartStatuses, {\n style: STYLES.CHART,\n onClick: handleChartStatusesClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterSpendings.nType) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_12__.ChartFilter, {\n chartName: CHART_NAMES.spendings,\n filter: filterSpendings,\n onFilterChange: handleChartFilterChange\n }) : null, chartSpendings.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartSpendings, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartSpendingsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterRepairs.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterSpendings.nType))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_11__.dataCellRender)({\n ...prms,\n showEquipRepairSheets: handleEquipRepairSheetsOpen\n }),\n valueFormatter: _layouts__WEBPACK_IMPORTED_MODULE_11__.valueFormatter\n })) : null)), chartStatuses.loaded && chartSpendings.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/repair_anl_atc.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RepairAnlATC: () => (/* binding */ RepairAnlATC)\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_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_chart */ \"./app/components/p8p_chart.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/repair_anl_atc/filter_dialog.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./app/panels/repair_anl_atc/filter.js\");\n/* harmony import */ var _hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./hooks/filter_hooks */ \"./app/panels/repair_anl_atc/hooks/filter_hooks.js\");\n/* harmony import */ var _hooks_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks/hooks */ \"./app/panels/repair_anl_atc/hooks/hooks.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks/dict_hooks */ \"./app/panels/repair_anl_atc/hooks/dict_hooks.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./layouts */ \"./app/panels/repair_anl_atc/layouts.js\");\n/* harmony import */ var _chart_filter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./chart_filter */ \"./app/panels/repair_anl_atc/chart_filter.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/*\r\n Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС\r\n Панель мониторинга: Корневая панель аналитики по ремонтам АТС\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные компоненты\n //Заголовок страницы\n //График\n //Типовые стили\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Диалог фильтра\n //Фильтры\n //Хуки фильтров\n\n\n\n\n\n\n//---------\n//Константы\n//---------\n\n//Высота графиков\nconst CHART_HEIGHT = \"300px\";\n\n//Стили\nconst STYLES = {\n TABLE_PROJECTS: (showCharts, morePages, filters, isChartsFiltered) => ({\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_1__.APP_BAR_HEIGHT} - ${showCharts ? CHART_HEIGHT : \"0px\"} - ${morePages ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_MORE_HEIGHT : \"0px\"} - ${filters ? _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_FILTERS_HEIGHT : \"0px\"} - ${showCharts && isChartsFiltered ? \"53px\" : \"0px\"} - 90px)`,\n maxWidth: `calc(100vw - 16px)`,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_STYLES.SCROLL\n }),\n CHART: {\n maxHeight: CHART_HEIGHT,\n display: \"flex\",\n justifyContent: \"center\"\n },\n CHART_PAPER: {\n height: \"100%\",\n paddingBottom: \"5px\"\n },\n CHART_FAB: {\n position: \"absolute\",\n top: 80,\n left: 16\n }\n};\n\n//Графики страницы\nconst CHART_NAMES = {\n repairs: \"REPAIRS\",\n spendings: \"SPENDINGS\"\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель аналитики по ремонтам АТС\nconst RepairAnlATC = () => {\n //Собственное состояние - признак отображения фильтров\n const [isFilterOpen, setIsFilterOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Состояния графиков\n const [showCharts, setShowCharts] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - общие фильтры\n const [filterValues, isFiltersLoaded, filtersInit, handleFilterChange] = (0,_hooks_filter_hooks__WEBPACK_IMPORTED_MODULE_8__.useFilters)();\n\n //Собственное состояние - фильтры ремонтов\n const [filterRepairs, setFilterRepairs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nState: null\n });\n\n //Собственное состояние - фильтры затрат\n const [filterSpendings, setFilterSpendings] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n nType: null\n });\n\n //Общие фильтры панели\n const allFilters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return {\n ...filterValues,\n nState: filterRepairs.nState,\n nType: filterSpendings.nType\n };\n }, [filterRepairs.nState, filterSpendings.nType, filterValues]);\n\n //Состояние графика статусов\n const {\n chartStatuses,\n handleReload: handleChartStatusesReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartStatuses)({\n storedArgs: allFilters\n });\n\n //Состояние графика трудовых затрат\n const {\n chartSpendings,\n handleReload: handleChartSpendingsReload\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useChartSpendings)({\n storedArgs: allFilters\n });\n\n //Состояние таблицы ремонтных ведомостей\n const {\n dataGrid,\n handleReload: handleTableRepairsReload,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged\n } = (0,_hooks_hooks__WEBPACK_IMPORTED_MODULE_9__.useTableRepairs)({\n storedArgs: (0,_layouts__WEBPACK_IMPORTED_MODULE_11__.formatFilterValues)(allFilters)\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleEquipRepairSheetsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_10__.useDictionary)();\n\n //При изменении фильтра в диалоге\n const handleFilterOk = filter => {\n //Обновляем фильтры\n handleFilterChange({\n filter\n });\n //Закрываем диалог фильтра\n setIsFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setIsFilterOpen(false);\n\n //При открытии диалога фильтра\n const handleFilterDialogOpen = () => setIsFilterOpen(true);\n\n //При нажатии на элемент графика \"Ремонты\"\n const handleChartStatusesClick = ({\n item\n }) => {\n setFilterRepairs({\n nState: item.NSTATE\n });\n };\n\n //При нажатии на элемент графика \"Трудовые затраты\"\n const handleChartSpendingsClick = ({\n item\n }) => {\n //Если тип не соответствует текущему\n if (item.NTYPE !== filterSpendings.nType) setFilterSpendings({\n nType: item.NTYPE\n });\n };\n\n //При изменении фильтра графика\n const handleChartFilterChange = ({\n chartName,\n filter\n }) => {\n //При изменении фильтров графика \"Ремонты\"\n if (chartName === CHART_NAMES.repairs) {\n setFilterRepairs({\n ...filter\n });\n }\n //При изменении фильтров графика \"Трудовые затраты\"\n if (chartName === CHART_NAMES.spendings) setFilterSpendings({\n ...filter\n });\n };\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если фильтр установлен\n if (!filtersInit) {\n handleChartStatusesReload();\n handleChartSpendingsReload();\n handleTableRepairsReload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allFilters, filtersInit]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1\n }, !filtersInit ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_7__.Filter, {\n filter: filterValues,\n onFilterOpen: handleFilterDialogOpen\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n container: true,\n spacing: 1\n }, showCharts ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterRepairs.nState) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_12__.ChartFilter, {\n chartName: CHART_NAMES.repairs,\n filter: filterRepairs,\n onFilterChange: handleChartFilterChange\n }) : null, chartStatuses.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartStatuses, {\n style: STYLES.CHART,\n onClick: handleChartStatusesClick,\n legendPosition: \"top\"\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 6\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n elevation: 3,\n sx: STYLES.CHART_PAPER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterSpendings.nType) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_chart_filter__WEBPACK_IMPORTED_MODULE_12__.ChartFilter, {\n chartName: CHART_NAMES.spendings,\n filter: filterSpendings,\n onFilterChange: handleChartFilterChange\n }) : null, chartSpendings.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_chart__WEBPACK_IMPORTED_MODULE_2__.P8PChart, _extends({}, chartSpendings, {\n style: STYLES.CHART,\n options: {\n scales: {\n x: {\n stacked: true\n },\n y: {\n stacked: true\n }\n }\n },\n legendPosition: \"top\",\n onClick: handleChartSpendingsClick\n })) : null))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n item: true,\n xs: 12\n }, dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_GRID_CONFIG_PROPS, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n sx: STYLES.TABLE_PROJECTS(showCharts, dataGrid.morePages, (dataGrid.filters || []).length > 0, (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterRepairs.nState) || (0,_core_utils__WEBPACK_IMPORTED_MODULE_13__.hasValue)(filterSpendings.nType))\n },\n filtersInitial: dataGrid.filters,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_11__.dataCellRender)({\n ...prms,\n showEquipRepairSheets: handleEquipRepairSheetsOpen\n }),\n valueFormatter: _layouts__WEBPACK_IMPORTED_MODULE_11__.valueFormatter\n })) : null)), chartStatuses.loaded && chartSpendings.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n size: \"small\",\n color: \"secondary\",\n sx: STYLES.CHART_FAB,\n onClick: () => setShowCharts(!showCharts)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, showCharts ? \"expand_less\" : \"expand_more\")) : null, isFilterOpen && isFiltersLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_6__.FilterDialog, {\n initial: filterValues,\n isFiltersInit: filtersInit,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/repair_anl_atc/repair_anl_atc.js?"); /***/ }), diff --git a/p8panels.config b/p8panels.config index 87719cb..4fba77d 100644 --- a/p8panels.config +++ b/p8panels.config @@ -16,8 +16,8 @@ - - + + @@ -36,6 +36,12 @@ + + + + + + { {filter.dDateBegin ? : null} {filter.dDateEnd ? : null} {filter.sCustomerDept ? ( - + ) : null} {filter.sWorkType ? : null} {filter.sWorkKind ? : null} diff --git a/repair_anl_atc/filter_dialog.js b/repair_anl_atc/filter_dialog.js index 5716055..c5ba930 100644 --- a/repair_anl_atc/filter_dialog.js +++ b/repair_anl_atc/filter_dialog.js @@ -10,7 +10,7 @@ import React, { useState } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента import { Dialog, DialogTitle, IconButton, Icon, DialogContent, DialogActions, Button, Box, TextField, InputAdornment } from "@mui/material"; //Интерфейсные компоненты -import { useDictionary } from "./hooks/dict_hooks"; //Хуки открытий разделов +import { useDictionary, useProcedures } from "./hooks/dict_hooks"; //Хуки открытий разделов import { hasValue } from "../../core/utils"; //Вспомогательные функции //--------- @@ -50,15 +50,20 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => { //Вспомогательные функции открытия раздела const { handleInsDepartmentOpen, handleEquipTypeWorksOpen, handleEquipWorkKindsOpen } = useDictionary(); + //Вспомогательные функции + const { handleInsDepartmentNameGet } = useProcedures(); + //Отработка воода значения в фильтр - const handleValueChanged = e => setFilter(pv => ({ ...pv, [e.target.name]: e.target.value })); + const handleValueChanged = e => { + setFilter(pv => ({ ...pv, [e.target.name]: e.target.value, ...(e.target.name === "sCustomerDept" ? { sCustomerDeptName: "" } : {}) })); + }; //При изменении каталога фильтра const handleCustomerDeptSelect = () => handleInsDepartmentOpen({ sCode: filter.sCustomerDept, callBack: res => { - setFilter(pv => ({ ...pv, sCustomerDept: res.outParameters.out_CODE })); + setFilter(pv => ({ ...pv, sCustomerDept: res.outParameters.out_CODE, sCustomerDeptName: res.outParameters.out_NAME })); } }); @@ -82,14 +87,25 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => { //При очистке фильтра const handleClear = () => { - setFilter({ dDateBegin: "", dDateEnd: "", sCustomerDept: "", sWorkType: "", sWorkKind: "" }); + setFilter({ dDateBegin: "", dDateEnd: "", sCustomerDept: "", sCustomerDeptName: "", sWorkType: "", sWorkKind: "" }); }; //При закрытии диалога без изменения фильтра const handleCancel = () => (isActionAllow(initial, isFiltersInit) ? onCancel && onCancel() : null); //При закрытии диалога с изменением фильтра - const handleOK = () => (isActionAllow(filter) && onOk ? onOk(filter) : null); + const handleOK = async () => { + let filterRes = { ...filter }; + //Если наименование подразделения пустое + if (!filterRes.sCustomerDeptName) { + //Если мнемокоды подразделений совпадают + filterRes.sCustomerDeptName = + filterRes.sCustomerDept === initial.sCustomerDept + ? initial.sCustomerDeptName + : await handleInsDepartmentNameGet({ code: filterRes.sCustomerDept }); + } + isActionAllow(filterRes) && onOk ? onOk(filterRes) : null; + }; //Генерация содержимого return ( diff --git a/repair_anl_atc/hooks/dict_hooks.js b/repair_anl_atc/hooks/dict_hooks.js index c9f4846..53b3db7 100644 --- a/repair_anl_atc/hooks/dict_hooks.js +++ b/repair_anl_atc/hooks/dict_hooks.js @@ -9,6 +9,7 @@ import { useContext, useCallback } from "react"; //Классы React import { ApplicationСtx } from "../../../context/application"; //Контекст приложения +import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером //----------- //Тело модуля @@ -17,7 +18,7 @@ import { ApplicationСtx } from "../../../context/application"; //Контекс //Состояние открытия разделов const useDictionary = () => { //Подключение к контексту приложения - const { pOnlineShowDictionary } = useContext(ApplicationСtx); + const { pOnlineShowDictionary, pOnlineShowUnit } = useContext(ApplicationСtx); //Отображение раздела "Штатные подразделения" const handleInsDepartmentOpen = useCallback( @@ -64,15 +65,21 @@ const useDictionary = () => { //Отображение раздела "Ремонтные ведомости" const handleEquipRepairSheetsOpen = useCallback( async prms => { - pOnlineShowDictionary({ + // pOnlineShowDictionary({ + // unitCode: "EquipRepairSheets", + // inputParameters: [{ name: "in_RN", value: prms.nRn }], + // callBack: res => { + // res.success ? prms.callBack(res) : null; + // } + // }); + + pOnlineShowUnit({ unitCode: "EquipRepairSheets", inputParameters: [{ name: "in_RN", value: prms.nRn }], - callBack: res => { - res.success ? prms.callBack(res) : null; - } + modal: false }); }, - [pOnlineShowDictionary] + [pOnlineShowUnit] ); //Возвращаем функции открытия разделов @@ -84,8 +91,31 @@ const useDictionary = () => { }; }; +//Состояние дополнительных общих процедур +const useProcedures = () => { + //Подключение к контексту взаимодействия с сервером + const { executeStored } = useContext(BackEndСtx); + + //Считывание наименования подразделения по мнемокоду + const handleInsDepartmentNameGet = useCallback( + async prms => { + //Считываем наименование подразделения + const departmentName = await executeStored({ + stored: "UDO_PKG_P8PANELS_RPR_ANL.GET_INS_DEPARTMENT_NAME", + args: { SCODE: prms.code } + }); + //Возвращаем наименование подразделения + return departmentName.SNAME; + }, + [executeStored] + ); + + //Возвращаем дополнительные функции + return { handleInsDepartmentNameGet }; +}; + //---------------- //Интерфейс модуля //---------------- -export { useDictionary }; +export { useDictionary, useProcedures }; diff --git a/repair_anl_atc/hooks/filter_hooks.js b/repair_anl_atc/hooks/filter_hooks.js index 3f564ee..5664218 100644 --- a/repair_anl_atc/hooks/filter_hooks.js +++ b/repair_anl_atc/hooks/filter_hooks.js @@ -23,6 +23,7 @@ const useFilters = () => { dDateBegin: "", dDateEnd: "", sCustomerDept: "", + sCustomerDeptName: "", sWorkType: "", sWorkKind: "" });