diff --git a/dist/p8-panels.js b/dist/p8-panels.js
index 9b9a4f6..d0f7c66 100644
--- a/dist/p8-panels.js
+++ b/dist/p8-panels.js
@@ -49,7 +49,150 @@ 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 */ App: () => (/* binding */ App)\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_9__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _components_p8p_app_error_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/p8p_app_error_page */ \"./app/components/p8p_app_error_page.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/p8p_panels_menu */ \"./app/components/p8p_panels_menu.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../app.text */ \"./app.text.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./config_wrapper */ \"./app/config_wrapper.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//Обработка ошибок роутинга\nconst RouterError = ({\n homePath\n}) => {\n //Подключение к контексту навигации\n const {\n navigateTo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Извлечем ошибку роутинга\n const routeError = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_8__.useRouteError)();\n\n //Отработка нажатия на кнопку навигации\n const handleNavigate = () => navigateTo({\n path: `${homePath.startsWith(\"/\") ? \"\" : \"/\"}${homePath}`\n });\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_error_page__WEBPACK_IMPORTED_MODULE_3__.P8PAppErrorPage, {\n errorMessage: _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS_HTTP[routeError.status] ? _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS_HTTP[routeError.status] : _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS.DEFAULT,\n onNavigate: handleNavigate,\n navigateCaption: _app_text__WEBPACK_IMPORTED_MODULE_6__.BUTTONS.NAVIGATE_HOME\n });\n};\n\n//Контроль свойств - обработка ошибок роутинга\nRouterError.propTypes = {\n homePath: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired\n};\n\n//Главное меню приложения\nconst MainMenu = ({\n panels = []\n} = {}) => {\n //Подключение к контексту навигации\n const {\n navigatePanel,\n isNavigationSearch,\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Подключение к контексту приложения\n const {\n configUrlBase,\n pOnlineShowTab\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Получим параметры запроса из адресной строки\n const qS = isNavigationSearch() ? getNavigationSearch() : null;\n\n //Отработка действия навигации элемента меню\n const handleItemNavigate = (panel, newTab) => newTab ? pOnlineShowTab({\n id: panel.name,\n url: `${configUrlBase}${panel.url}`,\n caption: panel.caption\n }) : navigatePanel(panel);\n\n //Генерация содержимого\n return qS?.mode === \"DESKTOP\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8PPanelsMenuDesktop, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_PANELS_MENU_GRID_CONFIG_PROPS, {\n group: qS?.group,\n panels: panels,\n onItemNavigate: panel => handleItemNavigate(panel, true)\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8PPanelsMenuGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_PANELS_MENU_GRID_CONFIG_PROPS, {\n panels: panels,\n onItemNavigate: panel => handleItemNavigate(panel, false)\n }));\n};\n\n//Контроль свойств - главное меню приложения\nMainMenu.propTypes = {\n panels: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE).isRequired\n};\n\n//Рабочее пространство панели\nconst Workspace = ({\n panels = [],\n selectedPanel,\n children\n} = {}) => {\n //Подключение к контексту навигации\n const {\n navigateRoot,\n navigatePanel\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Подключение к контексту приложения\n const {\n appState\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Отработка действия навигации домой\n const handleHomeNavigate = () => navigateRoot();\n\n //Отработка действия навигации элемента меню\n const handleItemNavigate = panel => navigatePanel(panel);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_4__.P8PAppWorkspace, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_APP_WORKSPACE_CONFIG_PROPS, {\n panels: panels,\n selectedPanel: selectedPanel,\n caption: appState.appBarTitle,\n onHomeNavigate: handleHomeNavigate,\n onItemNavigate: handleItemNavigate\n }), children);\n};\n\n//Контроль свойств - главное меню приложения\nWorkspace.propTypes = {\n panels: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE).isRequired,\n selectedPanel: _components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().element)\n};\n\n//Обёртывание элемента в контекст навигации\nconst wrapNavigationContext = children => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationContext, null, children);\n\n//-----------\n//Тело модуля\n//-----------\n\n//Приложение\nconst App = () => {\n //Собственное состояние\n const [routes, setRoutes] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Подключение к контексту приложения\n const {\n appState\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Инициализация роутера\n const content = routes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_10__.RouterProvider, {\n router: (0,react_router_dom__WEBPACK_IMPORTED_MODULE_10__.createHashRouter)(routes)\n }) : null;\n\n //При изменении состояния загрузки панелей\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (appState.panelsLoaded) {\n //Сборка \"веток\" для панелей\n let routes = [{\n path: (0,_context_navigation__WEBPACK_IMPORTED_MODULE_2__.getRootLocation)(),\n element: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MainMenu, {\n panels: appState.panels\n })),\n errorElement: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterError, {\n homePath: (0,_context_navigation__WEBPACK_IMPORTED_MODULE_2__.getRootLocation)()\n }))\n }];\n for (const panel of appState.panels) {\n // eslint-disable-next-line no-undef\n const p = __webpack_require__(\"./app/panels sync recursive ^\\\\.\\\\/.*$\")(`./${panel.path}`);\n routes.push({\n path: `${panel.url}/*`,\n element: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Workspace, {\n panels: appState.panels,\n selectedPanel: panel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(p.RootClass, null))),\n errorElement: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterError, {\n homePath: panel.url\n }))\n });\n }\n setRoutes(routes);\n }\n }, [appState.panels, appState.panelsLoaded]);\n\n //Генерация содержимого\n return content;\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/app.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ App: () => (/* binding */ App)\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_9__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _components_p8p_app_error_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/p8p_app_error_page */ \"./app/components/p8p_app_error_page.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/p8p_panels_menu */ \"./app/components/p8p_panels_menu.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../app.text */ \"./app.text.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./config_wrapper */ \"./app/config_wrapper.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//Обработка ошибок роутинга\nconst RouterError = ({\n homePath\n}) => {\n //Подключение к контексту навигации\n const {\n navigateTo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Извлечем ошибку роутинга\n const routeError = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_8__.useRouteError)();\n\n //Отработка нажатия на кнопку навигации\n const handleNavigate = () => navigateTo({\n path: `${homePath.startsWith(\"/\") ? \"\" : \"/\"}${homePath}`\n });\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_error_page__WEBPACK_IMPORTED_MODULE_3__.P8PAppErrorPage, {\n errorMessage: _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS_HTTP[routeError.status] ? _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS_HTTP[routeError.status] : _app_text__WEBPACK_IMPORTED_MODULE_6__.ERRORS.DEFAULT,\n onNavigate: handleNavigate,\n navigateCaption: _app_text__WEBPACK_IMPORTED_MODULE_6__.BUTTONS.NAVIGATE_HOME\n });\n};\n\n//Контроль свойств - обработка ошибок роутинга\nRouterError.propTypes = {\n homePath: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired\n};\n\n//Главное меню приложения\nconst MainMenu = ({\n panels = []\n} = {}) => {\n //Подключение к контексту навигации\n const {\n navigatePanel,\n isNavigationSearch,\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Подключение к контексту приложения\n const {\n configUrlBase,\n pOnlineShowTab\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Получим параметры запроса из адресной строки\n const qS = isNavigationSearch() ? getNavigationSearch() : null;\n\n //Отработка действия навигации элемента меню\n const handleItemNavigate = (panel, newTab) => newTab ? pOnlineShowTab({\n id: panel.name,\n url: `${configUrlBase}${panel.url}`,\n caption: panel.caption\n }) : navigatePanel(panel);\n\n //Генерация содержимого\n return qS?.mode === \"DESKTOP\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8PPanelsMenuDesktop, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_PANELS_MENU_GRID_CONFIG_PROPS, {\n group: qS?.group,\n panels: panels,\n onItemNavigate: panel => handleItemNavigate(panel, true)\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8PPanelsMenuGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_PANELS_MENU_GRID_CONFIG_PROPS, {\n panels: panels,\n onItemNavigate: panel => handleItemNavigate(panel, false)\n }));\n};\n\n//Контроль свойств - главное меню приложения\nMainMenu.propTypes = {\n panels: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE).isRequired\n};\n\n//Рабочее пространство панели\nconst Workspace = ({\n panels = [],\n selectedPanel,\n children\n} = {}) => {\n //Подключение к контексту навигации\n const {\n navigateRoot,\n navigatePanel\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //Подключение к контексту приложения\n const {\n appState\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Отработка действия навигации домой\n const handleHomeNavigate = () => navigateRoot();\n\n //Отработка действия навигации элемента меню\n const handleItemNavigate = panel => navigatePanel(panel);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_4__.P8PAppWorkspace, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_7__.P8P_APP_WORKSPACE_CONFIG_PROPS, {\n panels: panels,\n selectedPanel: selectedPanel,\n caption: appState.appBarTitle,\n onHomeNavigate: handleHomeNavigate,\n onItemNavigate: handleItemNavigate\n }), children);\n};\n\n//Контроль свойств - главное меню приложения\nWorkspace.propTypes = {\n panels: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf(_components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE).isRequired,\n selectedPanel: _components_p8p_panels_menu__WEBPACK_IMPORTED_MODULE_5__.P8P_PANELS_MENU_PANEL_SHAPE,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().element)\n};\n\n//Обёртывание элемента в контекст навигации\nconst wrapNavigationContext = children => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationContext, null, children);\n\n//-----------\n//Тело модуля\n//-----------\n\n//Приложение\nconst App = () => {\n //Собственное состояние\n const [routes, setRoutes] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Подключение к контексту приложения\n const {\n appState\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Инициализация роутера\n const content = routes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_10__.RouterProvider, {\n router: (0,react_router_dom__WEBPACK_IMPORTED_MODULE_10__.createHashRouter)(routes)\n }) : null;\n\n //При изменении состояния загрузки панелей\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (appState.panelsLoaded) {\n //Сборка \"веток\" для панелей\n let routes = [{\n path: (0,_context_navigation__WEBPACK_IMPORTED_MODULE_2__.getRootLocation)(),\n element: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MainMenu, {\n panels: appState.panels\n })),\n errorElement: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterError, {\n homePath: (0,_context_navigation__WEBPACK_IMPORTED_MODULE_2__.getRootLocation)()\n }))\n }];\n for (const panel of appState.panels) {\n // eslint-disable-next-line no-undef\n const p = __webpack_require__(\"./app/panels sync recursive ^\\\\.\\\\/.*$\")(`./${panel.path}`);\n routes.push({\n path: `${panel.url}/*`,\n element: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Workspace, {\n panels: appState.panels,\n selectedPanel: panel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(p.RootClass, null))),\n errorElement: wrapNavigationContext( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterError, {\n homePath: panel.url\n }))\n });\n }\n setRoutes(routes);\n }\n }, [appState.panels, appState.panelsLoaded]);\n\n //Генерация содержимого\n return content;\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/app.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_actions.js":
+/*!***********************************************!*\
+ !*** ./app/components/editors/p8p_actions.js ***!
+ \***********************************************/
+/***/ ((__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 */ P8PActions: () => (/* binding */ P8PActions)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _p8p_component_action_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_component_action/editor */ \"./app/components/editors/p8p_component_action/editor.js\");\n/* harmony import */ var _p8p_chip_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_chip_list */ \"./app/components/editors/p8p_chip_list.js\");\n/* harmony import */ var _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_component_action/common */ \"./app/components/editors/p8p_component_action/common.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//Вспомогательные функции и компоненты\n//------------------------------------\n\nconst getActionChipText = (type, params) => {\n //Определяем от типа\n switch (type) {\n //Открыть раздел\n case _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_TYPE.openUnit.code:\n return params.unitName;\n //Открыть панель\n case _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_TYPE.openPanel.code:\n return params.panelValue.value;\n //Установить переменную\n case _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_TYPE.setVariable.code:\n return params.reduce((prev, cur) => [...prev, cur.variableSource], []).join(\", \");\n //Для всех остальных\n default:\n return \"Не определен\";\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Действия\nconst P8PActions = ({\n actions = _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CAS_INITIAL,\n valueProviders = {},\n areas = [],\n valueTypes = [],\n onChange = null\n} = {}) => {\n //Собственное состояние - редактор действий\n const [actionEditor, setActionEditor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n display: false,\n index: null\n });\n\n //При изменении действий\n const handleActionsChange = actions => onChange && onChange(actions);\n\n //При добавлении действия\n const handleActionAdd = () => setActionEditor({\n display: true,\n index: null\n });\n\n //При нажатии на действие\n const handleActionClick = i => setActionEditor({\n display: true,\n index: i\n });\n\n //При удалении действия\n const handleActionDelete = i => {\n const newActions = [...actions];\n newActions.splice(i, 1);\n handleActionsChange(newActions);\n };\n\n //При отмене сохранения изменений действия\n const handleActionCancel = () => setActionEditor({\n display: false,\n index: null\n });\n\n //При сохранении изменений действия\n const handleActionSave = action => {\n const newActions = [...actions];\n actionEditor.index == null ? newActions.push({\n ...action\n }) : newActions[actionEditor.index] = {\n ...action\n };\n handleActionsChange(newActions);\n setActionEditor({\n display: false,\n index: null\n });\n };\n\n //Определяем структуру действий для отображения\n const actionChips = actions.map(item => {\n //Собираем текст действия\n let text = getActionChipText(item.type, item.params);\n //Формируем структуру для отображения карточки действия\n return {\n text: text,\n title: text,\n icon: _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_TYPE[item.type]?.icon,\n iconTitle: _p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_TYPE[item.type]?.name\n };\n });\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, actionEditor.display && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_component_action_editor__WEBPACK_IMPORTED_MODULE_1__.P8PCAEditor, {\n areas: areas,\n valueTypes: valueTypes,\n action: actionEditor.index !== null ? {\n ...actions[actionEditor.index]\n } : null,\n onCancel: handleActionCancel,\n onOk: handleActionSave,\n valueProviders: valueProviders\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_chip_list__WEBPACK_IMPORTED_MODULE_2__.P8PChipList, {\n items: actionChips,\n onClick: handleActionClick,\n onDelete: handleActionDelete\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"add\"),\n onClick: handleActionAdd\n }, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\"));\n};\n\n//Контроль свойств компонента - действия\nP8PActions.propTypes = {\n actions: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf(_p8p_component_action_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CA_SHAPE),\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object),\n areas: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().array),\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().array),\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_actions.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_chip_list.js":
+/*!*************************************************!*\
+ !*** ./app/components/editors/p8p_chip_list.js ***!
+ \*************************************************/
+/***/ ((__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 */ P8PChipList: () => (/* binding */ P8PChipList)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _p8p_editors_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_editors_common */ \"./app/components/editors/p8p_editors_common.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//Стили\nconst STYLES = {\n CHIP_ITEM: {\n ..._p8p_editors_common__WEBPACK_IMPORTED_MODULE_1__.STYLES.CHIP(true, false)\n },\n STACK_ITEM: {\n alignItems: \"center\"\n },\n TYPOGRAPHY_INFO: {\n overflow: \"hidden\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Список элементов\nconst P8PChipList = ({\n items,\n labelRender,\n onClick,\n onDelete\n}) => {\n //При нажатии на элемент\n const handleClick = index => onClick && onClick(index);\n\n //При удалении элемента\n const handleDelete = index => onDelete && onDelete(index);\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, Array.isArray(items) && items.length > 0 && items.map((item, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: i,\n label: labelRender ? labelRender(item) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n sx: STYLES.STACK_ITEM\n }, item.icon ? /*#__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_4__[\"default\"], {\n sx: {\n color: \"grey\"\n },\n title: item?.iconTitle\n }, item.icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n variant: \"body2\"\n }, \"-\")) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n variant: \"body2\",\n title: item?.title,\n sx: STYLES.TYPOGRAPHY_INFO\n }, item.text)),\n variant: \"outlined\",\n onClick: onClick && !item.disableClick ? () => handleClick(i) : null,\n onDelete: onDelete && !item.disableDelete ? () => handleDelete(i) : null,\n deleteIcon: item.deleteIcon ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, item.deleteIcon) : null,\n sx: STYLES.CHIP_ITEM\n })));\n};\n\n//Контроль свойств - список элементов\nP8PChipList.propTypes = {\n items: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().array),\n labelRender: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func),\n onDelete: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_chip_list.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/common.js":
+/*!***************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/common.js ***!
+ \***************************************************************/
+/***/ ((__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 */ P8P_CAS_INITIAL: () => (/* binding */ P8P_CAS_INITIAL),\n/* harmony export */ P8P_CA_DEF_TYPE_VALUE: () => (/* binding */ P8P_CA_DEF_TYPE_VALUE),\n/* harmony export */ P8P_CA_DEF_VALUE_TYPES: () => (/* binding */ P8P_CA_DEF_VALUE_TYPES),\n/* harmony export */ P8P_CA_INITIAL: () => (/* binding */ P8P_CA_INITIAL),\n/* harmony export */ P8P_CA_INPUT_PARAM_INITIAL: () => (/* binding */ P8P_CA_INPUT_PARAM_INITIAL),\n/* harmony export */ P8P_CA_OBJECT_SOURCE_FIELDS: () => (/* binding */ P8P_CA_OBJECT_SOURCE_FIELDS),\n/* harmony export */ P8P_CA_OBJECT_VALUE_SHAPE: () => (/* binding */ P8P_CA_OBJECT_VALUE_SHAPE),\n/* harmony export */ P8P_CA_OPEN_PANEL_INITIAL: () => (/* binding */ P8P_CA_OPEN_PANEL_INITIAL),\n/* harmony export */ P8P_CA_OPEN_PANEL_PARAMS_SHAPE: () => (/* binding */ P8P_CA_OPEN_PANEL_PARAMS_SHAPE),\n/* harmony export */ P8P_CA_OPEN_UNIT_INITIAL: () => (/* binding */ P8P_CA_OPEN_UNIT_INITIAL),\n/* harmony export */ P8P_CA_OPEN_UNIT_PARAMS_SHAPE: () => (/* binding */ P8P_CA_OPEN_UNIT_PARAMS_SHAPE),\n/* harmony export */ P8P_CA_SHAPE: () => (/* binding */ P8P_CA_SHAPE),\n/* harmony export */ P8P_CA_SOURCE_FIELDS: () => (/* binding */ P8P_CA_SOURCE_FIELDS),\n/* harmony export */ P8P_CA_TYPE: () => (/* binding */ P8P_CA_TYPE),\n/* harmony export */ P8P_CA_VARIABLE_LINK_INITIAL: () => (/* binding */ P8P_CA_VARIABLE_LINK_INITIAL),\n/* harmony export */ P8P_CA_VARIABLE_LINK_SHAPE: () => (/* binding */ P8P_CA_VARIABLE_LINK_SHAPE)\n/* harmony export */ });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы компонента \"Редактор действия\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Контроль свойств компонента\n\n//---------\n//Константы\n//---------\n\n//Значения типа по умолчанию\nconst P8P_CA_DEF_TYPE_VALUE = {\n TEXT_VALUE: \"Значение\",\n VARIABLE: \"Переменная\"\n};\n\n//Типы значений по умолчанию\nconst P8P_CA_DEF_VALUE_TYPES = [...Object.values(P8P_CA_DEF_TYPE_VALUE)];\n\n//Типы действия\nconst P8P_CA_TYPE = {\n openUnit: {\n code: \"openUnit\",\n name: \"Открыть раздел\",\n icon: \"article\"\n },\n openPanel: {\n code: \"openPanel\",\n name: \"Открыть панель\",\n icon: \"storage\"\n },\n setVariable: {\n code: \"setVariable\",\n name: \"Установить переменную\",\n icon: \"mediation\"\n }\n};\n\n//Список полей связываемых с проводником значений\nconst P8P_CA_SOURCE_FIELDS = [\"variableSource\"];\n\n//Список полей хранящих объект типа {\"Тип\", \"Значение\"}, где может храниться связь с проводником значений\nconst P8P_CA_OBJECT_SOURCE_FIELDS = [\"resultValue\", \"tabValue\", \"panelValue\"];\n\n//Структура значения с типом\nconst P8P_CA_OBJECT_VALUE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n type: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n value: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n});\n\n//Структура входных параметров метода вызова\nconst P8P_CA_INPUT_PARAM_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n parameter: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n inputParameter: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n resultValue: P8P_CA_OBJECT_VALUE_SHAPE\n});\n\n//Структура параметров действия \"Открыть раздел\"\nconst P8P_CA_OPEN_UNIT_PARAMS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n unitCode: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n unitName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n showMethod: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n showMethodName: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n inputParams: prop_types__WEBPACK_IMPORTED_MODULE_0___default().arrayOf(P8P_CA_INPUT_PARAM_SHAPE),\n modal: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool)\n});\n\n//Структура параметров действия \"Открыть панель\"\nconst P8P_CA_OPEN_PANEL_PARAMS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n tabValue: P8P_CA_OBJECT_VALUE_SHAPE,\n panelValue: P8P_CA_OBJECT_VALUE_SHAPE\n});\n\n//Структура связи переменной действия \"Установить переменную\"\nconst P8P_CA_VARIABLE_LINK_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n variableSource: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n resultValue: P8P_CA_OBJECT_VALUE_SHAPE\n});\n\n//Структура действия\nconst P8P_CA_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n type: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOf(Object.keys(P8P_CA_TYPE)).isRequired,\n area: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n element: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n params: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([P8P_CA_OPEN_UNIT_PARAMS_SHAPE, P8P_CA_OPEN_PANEL_PARAMS_SHAPE, prop_types__WEBPACK_IMPORTED_MODULE_0___default().arrayOf(P8P_CA_VARIABLE_LINK_SHAPE)])\n});\n\n//Начальное состояние объекта значения с типом\nconst P8P_CA_OBJECT_VALUE_INITIAL = {\n type: P8P_CA_DEF_TYPE_VALUE.TEXT_VALUE,\n value: \"\"\n};\n\n//Начальное состояние входного параметра метода вызова\nconst P8P_CA_INPUT_PARAM_INITIAL = {\n parameter: \"\",\n inputParameter: \"\",\n resultValue: {\n ...P8P_CA_OBJECT_VALUE_INITIAL\n }\n};\n\n//Начальное состояние параметров действия \"Открыть раздел\"\nconst P8P_CA_OPEN_UNIT_INITIAL = {\n unitCode: \"\",\n unitName: \"\",\n showMethod: \"\",\n showMethodName: \"\",\n inputParams: [],\n modal: true\n};\n\n//Начальное состояние параметров действия \"Открыть панель\"\nconst P8P_CA_OPEN_PANEL_INITIAL = {\n tabValue: {\n ...P8P_CA_OBJECT_VALUE_INITIAL\n },\n panelValue: {\n ...P8P_CA_OBJECT_VALUE_INITIAL\n }\n};\n\n//Начальное состояние параметра связи действия \"Установить переменную\"\nconst P8P_CA_VARIABLE_LINK_INITIAL = {\n variableSource: \"\",\n resultValue: {\n ...P8P_CA_OBJECT_VALUE_INITIAL\n }\n};\n\n//Начальное состояние действия\nconst P8P_CA_INITIAL = {\n type: P8P_CA_TYPE.openUnit.code,\n area: \"\",\n element: \"\",\n params: {\n ...P8P_CA_OPEN_UNIT_INITIAL\n }\n};\n\n//Начальное состояние действий\nconst P8P_CAS_INITIAL = [];\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/common.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/config_panel_open.js":
+/*!**************************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/config_panel_open.js ***!
+ \**************************************************************************/
+/***/ ((__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 */ P8PCAPanelOpenOptions: () => (/* binding */ P8PCAPanelOpenOptions)\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_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.js\");\n/* harmony import */ var _field_with_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./field_with_type */ \"./app/components/editors/p8p_component_action/field_with_type.js\");\n/* harmony import */ var _panels_panels_editor_components_panels_manager_panels_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../panels/panels_editor/components/panels_manager/panels_manager */ \"./app/panels/panels_editor/components/panels_manager/panels_manager.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//Стили\nconst STYLES = {\n CONTAINER_UNIT: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n },\n BOX_SETTINGS: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"15px\"\n }\n};\n\n//Ключ значений о странице\nconst SPROP_TAB = \"tabValue\";\n//Ключа значений о панели\nconst SPROP_PANEL = \"panelValue\";\n\n//-----------\n//Тело модуля\n//-----------\n\n//Редактор действия \"Открыть панель\"\nconst P8PCAPanelOpenOptions = ({\n panel,\n valueTypes,\n isValues,\n onStateChange,\n onValueSourceMenuClick\n}) => {\n //Собственное состояние - Отображение менеджера панелей\n const [openPanelsManager, setOpenPanelsManager] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //При открытии менеджера панелей\n const handlePanelsManagerOpen = () => setOpenPanelsManager(true);\n\n //При закрытии менеджера панелей\n const handlePanelsManagerClose = () => setOpenPanelsManager(false);\n\n //При выборе панели в менеджере панелей\n const handlePanelSelect = selectedPanel => {\n //Устанавливаем мнемокод выбранной панели\n onStateChange({\n ...panel,\n panelValue: {\n ...panel.panelValue,\n value: selectedPanel.code\n }\n });\n //Закрываем менеджер панелей\n handlePanelsManagerClose();\n };\n\n //При изменении типа значения\n const handleValueTypeChange = (value, keyProp) => onStateChange({\n [keyProp]: {\n type: value,\n value: \"\"\n }\n });\n\n //При изменении значения\n const handleValueChange = (value, keyProp) => onStateChange({\n [keyProp]: {\n ...panel[keyProp],\n value: value\n }\n });\n\n //При очистке значения\n const handleClearValueClick = keyProp => onStateChange({\n [keyProp]: {\n ...panel[keyProp],\n value: \"\"\n }\n });\n\n //При изменении переменной\n const handleValueSourceChange = (valueSource, keyProp) => onStateChange({\n [keyProp]: {\n ...panel[keyProp],\n value: valueSource\n }\n });\n\n //При нажатии на выбор переменной\n const handleValueSourceSelect = (e, keyProp) => isValues ? onValueSourceMenuClick && onValueSourceMenuClick(e, valueSource => {\n handleValueSourceChange(valueSource, keyProp);\n }) : null;\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.CONTAINER_UNIT\n }, openPanelsManager && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panels_panels_editor_components_panels_manager_panels_manager__WEBPACK_IMPORTED_MODULE_3__.PanelsManager, {\n current: panel.panelValue.value,\n isEditable: false,\n onPanelSelect: handlePanelSelect,\n onCancel: handlePanelsManagerClose\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.BOX_SETTINGS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_field_with_type__WEBPACK_IMPORTED_MODULE_2__.P8PCAFieldWithType, {\n valueTypes: valueTypes,\n name: SPROP_TAB,\n valueLabel: \"Наименование вкладки\",\n groupLabel: \"Настройки вкладки\",\n item: panel.tabValue,\n isValueReadOnly: panel.tabValue.type === _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE,\n onTypeChange: e => handleValueTypeChange(e.target.value, SPROP_TAB),\n onValueChange: e => handleValueChange(e.target.value, SPROP_TAB),\n endAdornments: [{\n icon: \"clear\",\n onClick: () => handleClearValueClick(SPROP_TAB),\n isDisabled: false\n }, {\n icon: \"settings_ethernet\",\n onClick: e => handleValueSourceSelect(e, SPROP_TAB),\n isDisabled: panel.tabValue.type !== _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE\n }]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_field_with_type__WEBPACK_IMPORTED_MODULE_2__.P8PCAFieldWithType, {\n valueTypes: valueTypes,\n name: SPROP_PANEL,\n valueLabel: \"Панель\",\n groupLabel: \"Настройки панели\",\n item: panel.panelValue,\n isValueReadOnly: panel.panelValue.type === _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE,\n onTypeChange: e => handleValueTypeChange(e.target.value, SPROP_PANEL),\n onValueChange: e => handleValueChange(e.target.value, SPROP_PANEL),\n endAdornments: [{\n icon: \"clear\",\n onClick: () => handleClearValueClick(SPROP_PANEL),\n isDisabled: false\n }, {\n icon: \"list\",\n onClick: handlePanelsManagerOpen,\n isDisabled: panel.panelValue.type === _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE\n }, {\n icon: \"settings_ethernet\",\n onClick: e => handleValueSourceSelect(e, SPROP_PANEL),\n isDisabled: panel.panelValue.type !== _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE\n }]\n })));\n};\n\n//Контроль свойств - редактор действия \"Открыть панель\"\nP8PCAPanelOpenOptions.propTypes = {\n panel: _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_OPEN_PANEL_PARAMS_SHAPE,\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().array),\n isValues: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool).isRequired,\n onStateChange: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired,\n onValueSourceMenuClick: (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/components/editors/p8p_component_action/config_panel_open.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/config_unit_open.js":
+/*!*************************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/config_unit_open.js ***!
+ \*************************************************************************/
+/***/ ((__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 */ P8PCAUnitOpenOptions: () => (/* binding */ P8PCAUnitOpenOptions)\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_12__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.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 _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.js\");\n/* harmony import */ var _field_with_type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./field_with_type */ \"./app/components/editors/p8p_component_action/field_with_type.js\");\n/* harmony import */ var _table_prop_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./table_prop_values */ \"./app/components/editors/p8p_component_action/table_prop_values.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 STYLES = {\n CONTAINER_UNIT: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Редактор действия \"Открыть раздел\"\nconst P8PCAUnitOpenOptions = ({\n unit,\n valueTypes,\n isValues,\n onStateChange,\n onValueSourceMenuClick\n}) => {\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //При изменении параметра открытия\n const handleModalChange = () => onStateChange({\n modal: !unit.modal\n });\n\n //При нажатии на очистку раздела\n const handleClearUnitClick = () => onStateChange({\n unitCode: \"\",\n unitName: \"\",\n showMethod: \"\"\n });\n\n //При нажатии на выбор раздела\n const handleSelectUnitClick = () => {\n pOnlineShowDictionary({\n unitCode: \"Units\",\n showMethod: \"methods\",\n inputParameters: [{\n name: \"pos_unit_name\",\n value: unit.unitName\n }, {\n name: \"pos_method_name\",\n value: unit.showMethodName\n }],\n callBack: res => res.success && onStateChange({\n unitCode: res.outParameters.unit_code,\n unitName: res.outParameters.unit_name,\n showMethod: res.outParameters.method_code,\n showMethodName: res.outParameters.method_name\n })\n });\n };\n\n //При добавлении связи входного параметра\n const handleInputParameAdd = () => {\n onStateChange({\n inputParams: [...unit.inputParams, {\n ..._common__WEBPACK_IMPORTED_MODULE_2__.P8P_CA_INPUT_PARAM_INITIAL\n }]\n });\n };\n\n //При удалении связи входного параметра\n const handleInputParamDelete = index => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Удаляем по индексу\n newInputParams.splice(index, 1);\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При очистке входного параметра\n const handleClearInputParameterClick = index => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index][\"parameter\"] = \"\";\n newInputParams[index][\"inputParameter\"] = \"\";\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При нажатии на выбор параметра метода вызова\n const handleSelectUnitParameterClick = index => {\n unit.unitCode && unit.showMethod && pOnlineShowDictionary({\n unitCode: \"UnitParams\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_UNITCODE\",\n value: unit.unitCode\n }, {\n name: \"in_PARENT_METHOD_CODE\",\n value: unit.showMethod\n }, {\n name: \"in_PARAMNAME\",\n value: unit.inputParams[index].parameter\n }],\n callBack: res => {\n if (res.success) {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index][\"parameter\"] = res.outParameters.out_PARAMNAME;\n newInputParams[index][\"inputParameter\"] = res.outParameters.out_IN_CODE;\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n }\n }\n });\n };\n\n //При изменении типа значения входного параметра\n const handleInputParamValueTypeChange = (value, index) => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index].resultValue = {\n ...newInputParams[index].resultValue,\n type: value,\n value: \"\"\n };\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При очистке значения параметра\n const handleClearInputParamValueClick = index => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index].resultValue = {\n ...newInputParams[index].resultValue,\n value: \"\"\n };\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При изменении значения входного параметра\n const handleInputParamValueChange = (value, index) => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index].resultValue = {\n ...newInputParams[index].resultValue,\n value: value\n };\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При связывании значения входного параметра с переменной\n const handleInputParamValueSourceChange = (valueSource, index) => {\n //Копируем связываемые переменные\n let newInputParams = [...unit.inputParams];\n //Очищаем значение по индексу\n newInputParams[index].resultValue = {\n ...newInputParams[index].resultValue,\n value: valueSource\n };\n //Устанавливаем новый массив\n onStateChange({\n inputParams: [...newInputParams]\n });\n };\n\n //При нажатии на выбор переменной\n const handleValueSourceSelect = (e, index) => isValues ? onValueSourceMenuClick && onValueSourceMenuClick(e, valueSource => {\n handleInputParamValueSourceChange(valueSource, index);\n }) : null;\n\n //Рендер отображения колонки свойства\n const handlePropertyCellRender = (item, index) => {\n //Значение первой колонки\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n id: `parameter_${index}`,\n InputLabelProps: {\n shrink: true\n },\n type: \"text\",\n variant: \"standard\",\n value: item.parameter,\n name: \"parameter\",\n fullWidth: true,\n InputProps: {\n readOnly: true,\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: () => handleClearInputParameterClick(index)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: () => handleSelectUnitParameterClick(index),\n disabled: !unit.showMethodName\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"list\")))\n }\n });\n };\n\n //Рендер отображения колонки значения\n const handleValueCellRender = (item, index) => {\n //Формирование представления колонки значения\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_field_with_type__WEBPACK_IMPORTED_MODULE_3__.P8PCAFieldWithType, {\n valueTypes: valueTypes,\n name: `inputValue_${index}`,\n item: item.resultValue,\n isValueReadOnly: item.resultValue.type === _common__WEBPACK_IMPORTED_MODULE_2__.P8P_CA_DEF_TYPE_VALUE.VARIABLE,\n onTypeChange: e => handleInputParamValueTypeChange(e.target.value, index),\n onValueChange: e => handleInputParamValueChange(e.target.value, index),\n endAdornments: [{\n icon: \"clear\",\n onClick: () => handleClearInputParamValueClick(index),\n isDisabled: false\n }, {\n icon: \"settings_ethernet\",\n onClick: e => handleValueSourceSelect(e, index),\n isDisabled: item.resultValue.type !== _common__WEBPACK_IMPORTED_MODULE_2__.P8P_CA_DEF_TYPE_VALUE.VARIABLE\n }]\n });\n };\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.CONTAINER_UNIT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: unit.unitName,\n label: \"Раздел\",\n InputLabelProps: {\n shrink: unit.unitName ? true : false\n },\n InputProps: {\n readOnly: true,\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleClearUnitClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleSelectUnitClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"list\")))\n },\n required: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: unit.showMethodName,\n label: \"Метод вызова\",\n InputLabelProps: {\n shrink: unit.showMethodName ? true : false\n },\n InputProps: {\n readOnly: true\n },\n required: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_table_prop_values__WEBPACK_IMPORTED_MODULE_4__.P8PCATablePropValues, {\n name: \"Входные параметры\",\n items: unit.inputParams,\n propertyCellName: \"Входной параметр\",\n valueCellName: \"Значение\",\n onPropertyCellRender: (item, index) => handlePropertyCellRender(item, index),\n onValueCellRender: (item, index) => handleValueCellRender(item, index),\n onAddRow: handleInputParameAdd,\n onRowDelete: index => handleInputParamDelete(index)\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n checked: unit.modal,\n onChange: handleModalChange\n }),\n label: \"\\u041E\\u0442\\u043A\\u0440\\u044B\\u0432\\u0430\\u0442\\u044C \\u043C\\u043E\\u0434\\u0430\\u043B\\u044C\\u043D\\u043E\"\n }));\n};\n\n//Контроль свойств - редактор действия \"Открыть раздел\"\nP8PCAUnitOpenOptions.propTypes = {\n unit: _common__WEBPACK_IMPORTED_MODULE_2__.P8P_CA_OPEN_UNIT_PARAMS_SHAPE,\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().array),\n isValues: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().bool).isRequired,\n onStateChange: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func).isRequired,\n onValueSourceMenuClick: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/config_unit_open.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/config_var_set.js":
+/*!***********************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/config_var_set.js ***!
+ \***********************************************************************/
+/***/ ((__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 */ P8PCAVarSetOptions: () => (/* binding */ P8PCAVarSetOptions)\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_8__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.js\");\n/* harmony import */ var _field_with_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./field_with_type */ \"./app/components/editors/p8p_component_action/field_with_type.js\");\n/* harmony import */ var _table_prop_values__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./table_prop_values */ \"./app/components/editors/p8p_component_action/table_prop_values.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//Тело модуля\n//-----------\n\n//Редактор действия \"Установить переменную\"\nconst P8PCAVarSetOptions = ({\n variables,\n valueTypes,\n isValues,\n onStateChange,\n onValueSourceMenuClick\n}) => {\n //При добавлении связи переменной\n const handleVariableAdd = () => {\n onStateChange([...variables, {\n ..._common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_VARIABLE_LINK_INITIAL\n }]);\n };\n\n //При удалении связи переменной\n const handleVariableDelete = index => {\n //Копируем связываемые переменные\n let newVariables = [...variables];\n //Удаляем по индексу\n newVariables.splice(index, 1);\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При очистке значения переменной\n const handleClearVariableClick = index => {\n //Копируем текущее состояние связываемых переменных\n let newParams = [...variables];\n //Очищаем значения у элемента по индексу\n newParams[index].variableSource = \"\";\n //Устанавливаем новый массив\n onStateChange([...newParams]);\n };\n\n //При связывании переменной\n const handleVariablesSourceChange = (valueSource, index) => {\n //Копируем связываемые переменные\n let newVariables = [...variables];\n //Очищаем значение по индексу\n newVariables[index].variableSource = valueSource;\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При изменении типа значения\n const handleResultValueTypeChange = (value, index) => {\n //Копируем связываемые переменные\n let newVariables = [...variables];\n //Очищаем значение по индексу\n newVariables[index].resultValue = {\n ...newVariables[index].resultValue,\n type: value,\n value: \"\"\n };\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При очистке значения\n const handleClearResultValueClick = index => {\n //Копируем текущее состояние связываемых переменных\n let newVariables = [...variables];\n //Очищаем значения у элемента по индексу\n newVariables[index].resultValue = {\n ...newVariables[index].resultValue,\n value: \"\"\n };\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При ручном изменении значения\n const handleResultValueChange = (value, index) => {\n //Копируем связываемые переменные\n let newVariables = [...variables];\n //Очищаем значение по индексу\n newVariables[index].resultValue = {\n ...newVariables[index].resultValue,\n value: value\n };\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При связывании значения\n const handleResultValueSourceChange = (valueSource, index) => {\n //Копируем связываемые переменные\n let newVariables = [...variables];\n //Очищаем значение по индексу\n newVariables[index].resultValue = {\n ...newVariables[index].resultValue,\n value: valueSource\n };\n //Устанавливаем новый массив\n onStateChange([...newVariables]);\n };\n\n //При нажатии на выбор переменной (значение)\n const handleValueSourceSelect = (e, index) => isValues ? onValueSourceMenuClick && onValueSourceMenuClick(e, valueSource => {\n handleResultValueSourceChange(valueSource, index);\n }) : null;\n\n //При нажатии на выбор переменной (переменная)\n const handleVariableSourceSelect = (e, index) => isValues ? onValueSourceMenuClick && onValueSourceMenuClick(e, valueSource => {\n handleVariablesSourceChange(valueSource, index);\n }) : null;\n\n //Рендер отображения колонки свойства\n const handlePropertyCellRender = (item, index) => {\n //Формирование представления колонки свойства\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n id: `variableSource_${index}`,\n InputLabelProps: {\n shrink: true\n },\n type: \"text\",\n variant: \"standard\",\n value: item.variableSource,\n name: \"variableSource\",\n fullWidth: true,\n InputProps: {\n readOnly: true,\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onClick: () => handleClearVariableClick(index)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"clear\")), isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onClick: e => handleVariableSourceSelect(e, index)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"settings_ethernet\")))\n }\n });\n };\n\n //Рендер отображения колонки значения\n const handleValueCellRender = (item, index) => {\n //Формирование представления колонки значения\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_field_with_type__WEBPACK_IMPORTED_MODULE_2__.P8PCAFieldWithType, {\n valueTypes: valueTypes,\n name: `resultValue_${index}`,\n item: item.resultValue,\n isValueReadOnly: item.resultValue.type === _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE,\n onTypeChange: e => handleResultValueTypeChange(e.target.value, index),\n onValueChange: e => handleResultValueChange(e.target.value, index),\n endAdornments: [{\n icon: \"clear\",\n onClick: () => handleClearResultValueClick(index),\n isDisabled: false\n }, {\n icon: \"settings_ethernet\",\n onClick: e => handleValueSourceSelect(e, index),\n isDisabled: item.resultValue.type !== _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE\n }]\n });\n };\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_table_prop_values__WEBPACK_IMPORTED_MODULE_3__.P8PCATablePropValues, {\n name: \"Список параметров\",\n items: variables,\n propertyCellName: \"Переменная\",\n valueCellName: \"Значение\",\n onPropertyCellRender: (item, index) => handlePropertyCellRender(item, index),\n onValueCellRender: (item, index) => handleValueCellRender(item, index),\n onAddRow: handleVariableAdd,\n onRowDelete: index => handleVariableDelete(index)\n });\n};\n\n//Контроль свойств - редактор действия \"Установить переменную\"\nP8PCAVarSetOptions.propTypes = {\n variables: prop_types__WEBPACK_IMPORTED_MODULE_8___default().arrayOf(_common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_VARIABLE_LINK_SHAPE),\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().array),\n isValues: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool).isRequired,\n onStateChange: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired,\n onValueSourceMenuClick: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/config_var_set.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/editor.js":
+/*!***************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/editor.js ***!
+ \***************************************************************/
+/***/ ((__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 */ P8PCAEditor: () => (/* binding */ P8PCAEditor)\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_17__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControl/FormControl.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputLabel/InputLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Select/Select.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_config_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../p8p_config_dialog */ \"./app/components/editors/p8p_config_dialog.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.js\");\n/* harmony import */ var _config_unit_open__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config_unit_open */ \"./app/components/editors/p8p_component_action/config_unit_open.js\");\n/* harmony import */ var _config_panel_open__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./config_panel_open */ \"./app/components/editors/p8p_component_action/config_panel_open.js\");\n/* harmony import */ var _config_var_set__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./config_var_set */ \"./app/components/editors/p8p_component_action/config_var_set.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./util */ \"./app/components/editors/p8p_component_action/util.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//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\",\n minWidth: \"300px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Редактор действия\nconst P8PCAEditor = ({\n areas = [],\n valueTypes = [],\n action = null,\n onOk = null,\n onCancel = null,\n valueProviders = {}\n}) => {\n //Собственное состояние - признак инициализиации\n const [init, setInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - параметры действия\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n\n //Собственное состояние - доступные типы значений компонента\n const [availableValueTypes, setAvailableValueTypes] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - доступные области компонента\n const [availableAreas, setAvailableAreas] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - доступность поля \"Элемент\"\n const [hasElement, setHasElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - элемент привязки меню выбора источника\n const [valueProvidersMenuAnchorEl, setValueProvidersMenuAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n target: null,\n onChange: null\n });\n\n //Открытие/сокрытие меню выбора источника\n const toggleValueProvidersMenu = (target, onChange) => setValueProvidersMenuAnchorEl(target instanceof Element ? {\n target,\n onChange\n } : {\n target: null,\n onChange: null\n });\n\n //При отображении меню связывания значения с поставщиком данных\n const handleValueSourceLinkMenuClick = (e, onChange) => setValueProvidersMenuAnchorEl({\n target: e.currentTarget,\n onChange\n });\n\n //При закрытии редактора с сохранением\n const handleOk = () => onOk && onOk({\n ...state\n });\n\n //При закрытии редактора с отменой\n const handleCancel = () => onCancel && onCancel();\n\n //При изменении типа действия\n const handleTypeChange = e => {\n //Иницилизируем параметры типа\n let newParams = (0,_util__WEBPACK_IMPORTED_MODULE_8__.getActionTypeParams)(e.target.value);\n //Изменяем тип действия с изменение структуры параметров\n setState(pv => ({\n ...pv,\n type: e.target.value,\n params: Array.isArray(newParams) ? [...newParams] : {\n ...newParams\n }\n }));\n };\n\n //При ручном изменении общего параметра действия\n const handleChange = e => setState(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n\n //При изменении области действия\n const handleAreaChange = e => {\n //Устанавливаем значение\n setState(pv => ({\n ...pv,\n [e.target.name]: e.target.value,\n name: \"\"\n }));\n //Устанавливаем доступность \"Элемент\"\n setHasElement(availableAreas.find(item => item.area === e.target.value).hasElement);\n };\n\n //При изменении полей параметров действия\n const handleParamsChange = params => {\n setState(pv => ({\n ...pv,\n params: {\n ...pv.params,\n ...params\n }\n }));\n };\n\n //При изменении переменных параметров действия \"Установить переменную\"\n const handleVariablesParamsChange = variables => {\n setState(pv => ({\n ...pv,\n params: [...variables]\n }));\n };\n\n //Список значений\n const values = Object.keys(valueProviders);\n\n //Наличие значений\n const isValues = values && values.length > 0 ? true : false;\n\n //Меню привязки к поставщикам значений\n const valueProvidersMenu = isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n anchorEl: valueProvidersMenuAnchorEl.target,\n open: Boolean(valueProvidersMenuAnchorEl.target),\n onClose: toggleValueProvidersMenu\n }, values.map((value, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n key: i,\n onClick: () => {\n //Выполняем выбор параметра\n valueProvidersMenuAnchorEl.onChange(value);\n //Закрываем меню выбора переменной\n toggleValueProvidersMenu();\n }\n }, value)));\n\n //При инициализации действия\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если это иницализация\n if (init) {\n //Если это открытие действия - берем его параметры, иначе - инициализируем изначальными\n const initAction = action ? action : {\n ..._common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_INITIAL,\n area: areas[0].area,\n params: {\n ..._common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_OPEN_UNIT_INITIAL,\n inputParams: [{\n ..._common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_INPUT_PARAM_INITIAL\n }]\n }\n };\n //Устанавливаем параметры действия\n setState((0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.deepCopyObject)(initAction));\n //Заполняем доступные области\n setAvailableAreas([...areas]);\n //Определяем доступность \"Элемент\"\n setHasElement(areas.find(item => item.area === initAction.area)?.hasElement || false);\n //Заполняем доступные типы значений\n setAvailableValueTypes([..._common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_DEF_VALUE_TYPES, ...valueTypes]);\n //Сбрасываем признак инициализации\n setInit(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [init]);\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !init ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_config_dialog__WEBPACK_IMPORTED_MODULE_2__.P8PConfigDialog, {\n title: `${action ? _app_text__WEBPACK_IMPORTED_MODULE_1__.TITLES.UPDATE : _app_text__WEBPACK_IMPORTED_MODULE_1__.TITLES.INSERT} действия`,\n onOk: handleOk,\n onCancel: handleCancel,\n width: \"xl\",\n okDisabled: (0,_util__WEBPACK_IMPORTED_MODULE_8__.isActionOkDisabled)(state)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, valueProvidersMenu, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.CONTAINER\n }, availableAreas.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n variant: \"standard\",\n fullWidth: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n id: \"areaLabel-label\"\n }, \"\\u041E\\u0431\\u043B\\u0430\\u0441\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n name: \"area\",\n value: state.area,\n labelId: \"area-label\",\n label: \"Область\",\n onChange: handleAreaChange\n }, availableAreas.map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n value: item.area,\n key: index\n }, item.name)))) : null, hasElement && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: state.element,\n label: \"Элемент\",\n name: \"element\",\n onChange: handleChange\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n variant: \"standard\",\n fullWidth: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n id: \"type-label\"\n }, \"\\u0422\\u0438\\u043F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n name: \"type\",\n value: state.type,\n labelId: \"type-label\",\n label: \"Тип\",\n onChange: handleTypeChange\n }, Object.keys(_common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE).map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n value: _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE[item].code,\n key: index\n }, _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE[item].name))))), state.type === _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE.openUnit.code && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_config_unit_open__WEBPACK_IMPORTED_MODULE_5__.P8PCAUnitOpenOptions, {\n unit: state.params,\n valueTypes: availableValueTypes,\n isValues: isValues,\n onStateChange: handleParamsChange,\n onValueSourceMenuClick: handleValueSourceLinkMenuClick\n }), state.type === _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE.openPanel.code && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_config_panel_open__WEBPACK_IMPORTED_MODULE_6__.P8PCAPanelOpenOptions, {\n panel: state.params,\n valueTypes: availableValueTypes,\n isValues: isValues,\n onStateChange: handleParamsChange,\n onValueSourceMenuClick: handleValueSourceLinkMenuClick\n }), state.type === _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_TYPE.setVariable.code && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_config_var_set__WEBPACK_IMPORTED_MODULE_7__.P8PCAVarSetOptions, {\n variables: state.params,\n valueTypes: availableValueTypes,\n isValues: isValues,\n onStateChange: handleVariablesParamsChange,\n onValueSourceMenuClick: handleValueSourceLinkMenuClick\n }))) : null);\n};\n\n//Контроль свойств - Редактор условия\nP8PCAEditor.propTypes = {\n areas: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().array),\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().array),\n action: _common__WEBPACK_IMPORTED_MODULE_4__.P8P_CA_SHAPE,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().func).isRequired,\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().func).isRequired,\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/editor.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/field_with_type.js":
+/*!************************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/field_with_type.js ***!
+ \************************************************************************/
+/***/ ((__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 */ P8PCAFieldWithType: () => (/* binding */ P8PCAFieldWithType)\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_11__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormLabel/FormLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControl/FormControl.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Select/Select.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.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//Стили\nconst STYLES = {\n CONTAINER: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\",\n alignItems: \"center\"\n },\n LEGEND_SETTINGS: {\n paddingTop: \"10px\",\n marginBottom: \"-5px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Поле с выбором типа значения\nconst P8PCAFieldWithType = ({\n valueTypes,\n item,\n name,\n valueLabel = null,\n groupLabel = null,\n isValueReadOnly = false,\n onTypeChange,\n onValueChange = null,\n endAdornments = []\n}) => {\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.CONTAINER\n }, groupLabel ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n component: \"legend\",\n sx: STYLES.LEGEND_SETTINGS\n }, groupLabel) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n variant: \"standard\",\n fullWidth: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n name: `${name}_type`,\n value: item.type,\n labelId: `${name}-type-label`,\n onChange: onTypeChange,\n fullWidth: true\n }, valueTypes.map((type, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n value: type,\n key: index\n }, type)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n id: `${name}_value`,\n InputLabelProps: {\n shrink: true\n },\n type: \"text\",\n variant: \"standard\",\n value: item.value,\n name: `${name}`,\n label: valueLabel,\n onChange: e => {\n onValueChange && onValueChange(e);\n },\n fullWidth: true,\n InputProps: {\n readOnly: isValueReadOnly,\n endAdornment: endAdornments.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n position: \"end\"\n }, endAdornments.map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n onClick: e => item.onClick(e),\n key: index,\n disabled: item.isDisabled\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, item.icon)))) : null\n }\n }));\n};\n\n//Контроль свойств - поле с выбором типа значения\nP8PCAFieldWithType.propTypes = {\n valueTypes: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().array).isRequired,\n item: _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_OBJECT_VALUE_SHAPE.isRequired,\n name: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string).isRequired,\n valueLabel: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),\n groupLabel: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),\n isValueReadOnly: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool),\n onTypeChange: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func).isRequired,\n onValueChange: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func),\n endAdornments: prop_types__WEBPACK_IMPORTED_MODULE_11___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_11___default().object))\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/field_with_type.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/table_prop_values.js":
+/*!**************************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/table_prop_values.js ***!
+ \**************************************************************************/
+/***/ ((__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 */ P8PCATablePropValues: () => (/* binding */ P8PCATablePropValues)\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_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableContainer/TableContainer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Table/Table.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableHead/TableHead.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableRow/TableRow.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableCell/TableCell.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableBody/TableBody.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../app.styles */ \"./app.styles.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//Стили\nconst STYLES = {\n CONTAINER_VARIABLES: {\n maxHeight: \"240px\",\n overflow: \"auto\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n },\n BOX_VARIABLES_INFO: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingTop: \"10px\"\n },\n TABLE_HEAD_CELL_PROPERTY: {\n width: \"45%\",\n padding: \"8px\"\n },\n TABLE_HEAD_CELL_VALUE: {\n width: \"45%\",\n padding: \"8px\"\n },\n TABLE_HEAD_CELL_DELETE: {\n width: \"10%\",\n padding: \"8px\"\n },\n TABLE_VARIABLES: {\n maxWidth: \"700px\",\n minWidth: \"700px\"\n },\n TABLE_ROW_VARIABLES: {\n \"&:last-child td, &:last-child th\": {\n border: 0\n }\n },\n TABLE_CELL_VARIABLES: {\n padding: \"8px 16px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица значений свойств действия\nconst P8PCATablePropValues = ({\n name,\n items,\n propertyCellName,\n valueCellName,\n onPropertyCellRender,\n onValueCellRender,\n onAddRow,\n onRowDelete\n}) => {\n //Формирование представления\n return /*#__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_2__[\"default\"], {\n sx: STYLES.BOX_VARIABLES_INFO\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n pl: 1\n }, name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: onAddRow\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"add\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n component: _mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n sx: STYLES.CONTAINER_VARIABLES\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TABLE_VARIABLES,\n \"aria-label\": \"simple table\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_HEAD_CELL_PROPERTY\n }, propertyCellName), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_HEAD_CELL_VALUE\n }, valueCellName), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_HEAD_CELL_DELETE\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, Array.isArray(items) && items.map((item, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n key: i,\n sx: STYLES.TABLE_ROW_VARIABLES\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_CELL_VARIABLES\n }, onPropertyCellRender ? onPropertyCellRender(item, i) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_CELL_VARIABLES\n }, onValueCellRender ? onValueCellRender(item, i) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n align: \"center\",\n sx: STYLES.TABLE_CELL_VARIABLES\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onRowDelete(i)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"clear\")))))))));\n};\n\n//Контроль свойств - таблица значений свойств действия\nP8PCATablePropValues.propTypes = {\n name: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),\n items: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().array),\n propertyCellName: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),\n valueCellName: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),\n onPropertyCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onValueCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onAddRow: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),\n onRowDelete: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/table_prop_values.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_action/util.js":
+/*!*************************************************************!*\
+ !*** ./app/components/editors/p8p_component_action/util.js ***!
+ \*************************************************************/
+/***/ ((__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 */ getActionTypeParams: () => (/* binding */ getActionTypeParams),\n/* harmony export */ getActionsVariables: () => (/* binding */ getActionsVariables),\n/* harmony export */ getHandlersByActions: () => (/* binding */ getHandlersByActions),\n/* harmony export */ isActionOkDisabled: () => (/* binding */ isActionOkDisabled)\n/* harmony export */ });\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_action/common.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Вспомогательные ресурсы компонента \"Редактор действия\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Вспомогательные функции\n //Общие ресурсы действий\n\n//---------\n//Константы\n//---------\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Доступность сохранения настроек действия\nconst isActionOkDisabled = action => {\n //Если область или тип не указаны\n if (!action.area || !action.type) return true;\n //Исходим от типа\n switch (action.type) {\n //Открыть раздел\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openUnit.code:\n return !action.params.unitCode || !action.params.showMethod;\n //Открыть панель\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openPanel.code:\n return !action.params.tabValue.type || !action.params.tabValue.value || !action.params.panelValue.type || !action.params.panelValue.value;\n //Установить переменную\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.setVariable.code:\n return action.params.length === 0 || action.params.some(item => !item.variableSource);\n //Для всех остальных\n default:\n return false;\n }\n};\n\n//Считывание параметров типа действия\nconst getActionTypeParams = type => {\n //Определяем от типа\n switch (type) {\n //Открыть раздел\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openUnit.code:\n return {\n ..._common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_OPEN_UNIT_INITIAL,\n inputParams: [{\n ..._common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_INPUT_PARAM_INITIAL\n }]\n };\n //Открыть панель\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openPanel.code:\n return {\n ..._common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_OPEN_PANEL_INITIAL\n };\n //Установить переменную\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.setVariable.code:\n return [{\n ..._common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_VARIABLE_LINK_INITIAL\n }];\n //Для всех остальных\n default:\n return {};\n }\n};\n\n//Определение значения действия по типу\nconst getActionValueByType = (type, value, values, prms = {}, getCustomTypeValue = null) => {\n //Исходим от типа действия\n switch (type) {\n //Значение (стандартное)\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.TEXT_VALUE:\n return value;\n //Переменная (стандартное)\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE:\n return values[value];\n //Кастомный тип\n default:\n return getCustomTypeValue ? getCustomTypeValue({\n type,\n value,\n values,\n prms\n }) : null;\n }\n};\n\n//Определения функции действия\nconst getActionFunction = (item, onOpenUnit, configUrlBase, onOpenPanel, onProviderChange, getCustomTypeValue = null) => {\n //Выполняем исходя из типа действия\n switch (item.type) {\n //Открыть раздел\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openUnit.code:\n {\n return ({\n event,\n values,\n prms\n }) => {\n onOpenUnit({\n unitCode: item.params.unitCode,\n showMethod: item.params.showMethod,\n inputParameters: item.params.inputParams.reduce((prev, cur) => cur.inputParameter ? [...prev, {\n name: cur.inputParameter,\n value: getActionValueByType(cur.resultValue.type, cur.resultValue.value, values, prms, getCustomTypeValue)\n }] : [...prev], []),\n modal: item.params.modal\n });\n event?.stopPropagation && event.stopPropagation();\n };\n }\n //Открыть панель\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.openPanel.code:\n {\n return ({\n event,\n values,\n prms\n }) => {\n onOpenPanel({\n id: (0,_core_utils__WEBPACK_IMPORTED_MODULE_0__.genUID)(),\n url: `${configUrlBase}panels_editor?SCODE=${getActionValueByType(item.params.panelValue.type, item.params.panelValue.value, values, prms, getCustomTypeValue)}`,\n caption: getActionValueByType(item.params.tabValue.type, item.params.tabValue.value, values, prms, getCustomTypeValue) || \"Редактор панелей\"\n });\n event?.stopPropagation && event.stopPropagation();\n };\n }\n //Установить переменную\n case _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_TYPE.setVariable.code:\n {\n //Устанавливаем новые значения проводников\n return ({\n event,\n values,\n prms\n }) => {\n //Собираем объект новых значений проводников\n let changedValues = item.params.reduce((prev, cur) => ({\n ...prev,\n ...{\n [cur.variableSource]: getActionValueByType(cur.resultValue.type, cur.resultValue.value, values, prms, getCustomTypeValue)\n }\n }), {});\n onProviderChange({\n ...changedValues\n });\n event?.stopPropagation && event.stopPropagation();\n };\n }\n }\n};\n\n//Выполнение действий компонента\nconst getHandlersByActions = (actions, onOpenUnit, configUrlBase, onOpenPanel, onProviderChange, getCustomTypeValue = null) => {\n //Инициализируем обработчики\n const handlers = actions.reduce((prev, cur) => {\n //Ключ обработчика\n let key = `${cur.area}.${cur.element}`;\n //Если уже был добавлен - не добавляем, иначе добавляем\n return !prev[key] ? {\n ...prev,\n [key]: {\n area: cur.area,\n element: cur.element,\n fn: null\n }\n } : {\n ...prev\n };\n }, {});\n //Обходим уникальные обработчики\n for (const handler in handlers) {\n //Считываем действия области\n let areaActions = actions.filter(item => item.area === handlers[handler].area && item.element === handlers[handler].element);\n //Собираем массив обработчиков области\n let areaFunctions = areaActions.reduce((fns, action) => [...fns, getActionFunction(action, onOpenUnit, configUrlBase, onOpenPanel, onProviderChange, getCustomTypeValue)], []);\n //Устанавливаем области последовательный вызов обработчиков\n handlers[handler].fn = ({\n event,\n values,\n prms\n }) => {\n areaFunctions.map(fn => fn({\n event,\n values,\n prms\n }));\n };\n }\n //Возвращаем обработчики\n return handlers;\n};\n\n//Считывание всех связанных переменных рекурсивно\nconst getActionsVariablesRecursive = (objValue, propName = null) => {\n //Если это значение\n if (!(typeof objValue === \"object\") && !Array.isArray(objValue)) {\n //Если поле из списка хранящих ссылку - берем его\n return _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_SOURCE_FIELDS.includes(propName) && objValue ? [objValue] : [];\n }\n //Если это объект хранящий тип и значение - может хранить ссылку на переменную\n if (_common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_OBJECT_SOURCE_FIELDS.includes(propName)) {\n //Если тип \"Переменная\" - указываем значение\n return objValue?.type === _common__WEBPACK_IMPORTED_MODULE_1__.P8P_CA_DEF_TYPE_VALUE.VARIABLE && objValue?.value ? [objValue.value] : [];\n }\n //Если это массив\n if (Array.isArray(objValue)) {\n return objValue.reduce((prev, cur) => [...prev, ...getActionsVariablesRecursive(cur)], []);\n } else {\n //Если это объект\n return Object.keys(objValue).reduce((prev, cur) => [...prev, ...getActionsVariablesRecursive(objValue[cur], cur)], []);\n }\n};\n\n//Считывание всех связанных переменных действий\nconst getActionsVariables = actions => {\n //Считываем связанные переменные действий рекурсивно\n return getActionsVariablesRecursive(actions);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_action/util.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_condition/common.js":
+/*!******************************************************************!*\
+ !*** ./app/components/editors/p8p_component_condition/common.js ***!
+ \******************************************************************/
+/***/ ((__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 */ P8P_CCS_INITIAL: () => (/* binding */ P8P_CCS_INITIAL),\n/* harmony export */ P8P_CC_FIELD_PRM_SHAPE: () => (/* binding */ P8P_CC_FIELD_PRM_SHAPE),\n/* harmony export */ P8P_CC_FIELD_SHAPE: () => (/* binding */ P8P_CC_FIELD_SHAPE),\n/* harmony export */ P8P_CC_INITIAL: () => (/* binding */ P8P_CC_INITIAL),\n/* harmony export */ P8P_CC_OPERATORS: () => (/* binding */ P8P_CC_OPERATORS),\n/* harmony export */ P8P_CC_SHAPE: () => (/* binding */ P8P_CC_SHAPE)\n/* harmony export */ });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы компонента \"Редактор условия\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Контроль свойств компонента\n\n//---------\n//Константы\n//---------\n\n//Доступные операторы условия\nconst P8P_CC_OPERATORS = [{\n name: \"==\",\n value: \"equal\"\n}, {\n name: \"!=\",\n value: \"notEqual\"\n}, {\n name: \"<=\",\n value: \"lessEqual\"\n}, {\n name: \"<\",\n value: \"less\"\n}, {\n name: \">=\",\n value: \"greaterEqual\"\n}, {\n name: \">\",\n value: \"greater\"\n}, {\n name: \"in\",\n value: \"in\"\n}];\n\n//Структура параметра поля условия\nconst P8P_CC_FIELD_PRM_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,\n hasElement: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n icon: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n});\n\n//Структура поля условия\nconst P8P_CC_FIELD_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired\n});\n\n//Структура оператора условия\nconst P8P_CC_OPERATOR_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired\n});\n\n//Структура условия\nconst P8P_CC_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n condField: P8P_CC_FIELD_SHAPE.isRequired,\n condOperator: P8P_CC_OPERATOR_SHAPE.isRequired,\n condElement: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n //Пока\n condValue: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,\n resField: P8P_CC_FIELD_SHAPE.isRequired,\n resElement: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n //Пока\n resValue: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired\n});\n\n//Начальное состояние поля условия\nconst P8P_CC_FIELD_INITIAL = {\n name: \"\",\n value: \"\"\n};\n\n//Начальное состояние условия\nconst P8P_CC_INITIAL = {\n condField: {\n ...P8P_CC_FIELD_INITIAL\n },\n condOperator: {\n ...P8P_CC_OPERATORS[0]\n },\n condElement: \"\",\n condValue: \"\",\n resField: {\n ...P8P_CC_FIELD_INITIAL\n },\n resElement: \"\",\n resValue: \"\"\n};\n\n//Начальное состояние условий\nconst P8P_CCS_INITIAL = [];\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_condition/common.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_condition/editor.js":
+/*!******************************************************************!*\
+ !*** ./app/components/editors/p8p_component_condition/editor.js ***!
+ \******************************************************************/
+/***/ ((__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 */ P8PCCEditor: () => (/* binding */ P8PCCEditor)\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_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControl/FormControl.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputLabel/InputLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Select/Select.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_config_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../p8p_config_dialog */ \"./app/components/editors/p8p_config_dialog.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common */ \"./app/components/editors/p8p_component_condition/common.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util */ \"./app/components/editors/p8p_component_condition/util.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\n//Стили\nconst STYLES = {\n BOX_COND_GROUP: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"10px\",\n paddingBottom: \"10px\"\n },\n BOX_COND_ELEMENT: width => ({\n minWidth: width\n })\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Редактор условия\nconst P8PCCEditor = ({\n condition = null,\n onOk = null,\n onCancel = null,\n condFields = [],\n resFields = []\n}) => {\n //Собственное состояние - признак инициализиации\n const [init, setInit] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - параметры элемента формы\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n\n //При закрытии редактора с сохранением\n const handleOk = () => onOk && onOk({\n ...state\n });\n\n //Собственное состояние - доступность поля \"Элемент условия\"\n const [hasCondElement, setHasCondElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - доступность поля \"Элемент результата\"\n const [hasResElement, setHasResElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //При закрытии редактора с отменой\n const handleCancel = () => onCancel && onCancel();\n\n //При изменении параметра элемента\n const handleChange = e => setState(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n\n //При изменении поля условия\n const handleCondFieldChange = e => {\n //Считываем нужный элемент\n const newCondField = condFields.find(item => item.name === e.target.value);\n //Обновляем поле (объект)\n setState(pv => ({\n ...pv,\n [e.target.name]: {\n name: newCondField.name,\n value: newCondField.value\n }\n }));\n //Определяем доступность поля \"Элемент условия\"\n setHasCondElement(newCondField?.hasElement || false);\n };\n\n //При изменении поля результата\n const handleResFieldChange = e => {\n //Считываем нужный элемент\n const newResField = resFields.find(item => item.name === e.target.value);\n //Обновляем поле результата\n setState(pv => ({\n ...pv,\n [e.target.name]: {\n name: newResField.name,\n value: newResField.value\n }\n }));\n //Определяем доступность поля \"Элемент результата\"\n setHasResElement(newResField?.hasElement || false);\n };\n\n //При изменении оператора условия\n const handleOperatorChange = e => {\n //Считываем нужный элемент\n const newOperator = _common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_OPERATORS.find(item => item.name === e.target.value);\n //Обновляем оператор\n setState(pv => ({\n ...pv,\n [e.target.name]: {\n ...newOperator\n }\n }));\n };\n\n //При инициализации условия\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если это иницализация\n if (init) {\n //Если это открытие условия - берем его параметры, иначе - инициализируем изначальными\n const initCondition = condition ? condition : {\n ..._common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_INITIAL,\n condField: {\n name: condFields[0].name,\n value: condFields[0].value\n },\n resField: {\n name: resFields[0].name,\n value: resFields[0].value\n }\n };\n //Устанавливаем параметры действия\n setState((0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.deepCopyObject)(initCondition));\n //Определяем доступность \"Элемент условия\"\n setHasCondElement(condFields.find(item => item.name === initCondition.condField.name)?.hasElement || false);\n //Определяем доступность \"Элемент результата\"\n setHasResElement(resFields.find(item => item.name === initCondition.resField.name)?.hasElement || false);\n //Сбрасываем признак инициализации\n setInit(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [init]);\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !init ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_config_dialog__WEBPACK_IMPORTED_MODULE_2__.P8PConfigDialog, {\n title: `${condition ? _app_text__WEBPACK_IMPORTED_MODULE_1__.TITLES.UPDATE : _app_text__WEBPACK_IMPORTED_MODULE_1__.TITLES.INSERT} условия`,\n onOk: handleOk,\n onCancel: handleCancel,\n okDisabled: (0,_util__WEBPACK_IMPORTED_MODULE_5__.isConditionOkDisabled)(state)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, /*#__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_7__[\"default\"], {\n sx: STYLES.BOX_COND_GROUP\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n variant: \"standard\",\n sx: STYLES.BOX_COND_ELEMENT(\"160px\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n id: \"condField-label\"\n }, \"\\u041F\\u043E\\u043B\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n name: \"condField\",\n value: state.condField.name,\n labelId: \"condField-label\",\n label: \"Поле\",\n onChange: handleCondFieldChange\n }, condFields.map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n value: item.name,\n key: index\n }, item.name)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n variant: \"standard\",\n sx: STYLES.BOX_COND_ELEMENT(\"70px\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n id: \"condOperator-label\"\n }, \"\\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u043E\\u0440\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n name: \"condOperator\",\n value: state.condOperator.name,\n labelId: \"condOperator-label\",\n label: \"Оператор\",\n onChange: handleOperatorChange\n }, _common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_OPERATORS.map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n value: item.name,\n key: index\n }, item.name)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n InputLabelProps: {\n shrink: true\n },\n type: \"text\",\n variant: \"standard\",\n value: state.condValue,\n label: \"Значение\",\n name: \"condValue\",\n onChange: handleChange,\n sx: STYLES.BOX_COND_ELEMENT(\"160px\")\n })), hasCondElement ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n InputLabelProps: {\n shrink: true\n },\n sx: {\n pb: 1.25\n },\n type: \"text\",\n variant: \"standard\",\n value: state.condElement,\n label: \"Элемент условия\",\n name: \"condElement\",\n onChange: handleChange,\n fullWidth: true\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n sx: STYLES.BOX_COND_GROUP\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n variant: \"standard\",\n sx: STYLES.BOX_COND_ELEMENT(\"160px\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n id: \"resField-label\"\n }, \"\\u041F\\u043E\\u043B\\u0435 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n name: \"resField\",\n value: state.resField.name,\n labelId: \"resField-label\",\n label: \"Поле результата\",\n onChange: handleResFieldChange\n }, resFields.map((item, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n value: item.name,\n key: index\n }, item.name)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n InputLabelProps: {\n shrink: true\n },\n type: \"text\",\n variant: \"standard\",\n value: state.resValue,\n label: \"Результат\",\n name: \"resValue\",\n onChange: handleChange,\n fullWidth: true\n })), hasResElement ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n InputLabelProps: {\n shrink: true\n },\n sx: {\n pb: 1.25\n },\n type: \"text\",\n variant: \"standard\",\n value: state.resElement,\n label: \"Элемент результата\",\n name: \"resElement\",\n onChange: handleChange,\n fullWidth: true\n }) : null))) : null);\n};\n\n//Контроль свойств - Редактор условия\nP8PCCEditor.propTypes = {\n condition: _common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_SHAPE,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func).isRequired,\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func).isRequired,\n condFields: prop_types__WEBPACK_IMPORTED_MODULE_13___default().arrayOf(_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_FIELD_PRM_SHAPE).isRequired,\n resFields: prop_types__WEBPACK_IMPORTED_MODULE_13___default().arrayOf(_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_FIELD_PRM_SHAPE).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_condition/editor.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_component_condition/util.js":
+/*!****************************************************************!*\
+ !*** ./app/components/editors/p8p_component_condition/util.js ***!
+ \****************************************************************/
+/***/ ((__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 */ getConditionsValues: () => (/* binding */ getConditionsValues),\n/* harmony export */ isConditionOkDisabled: () => (/* binding */ isConditionOkDisabled),\n/* harmony export */ loadConditionsToObject: () => (/* binding */ loadConditionsToObject)\n/* harmony export */ });\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Вспомогательные ресурсы компонента \"Редактор условия\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n//---------\n//Константы\n//---------\n\n//Функции операторов условий\nconst P8P_CC_OPERATOR_FUNC = {\n equal: (objValue, value) => objValue == value,\n notEqual: (objValue, value) => objValue != value,\n lessEqual: (objValue, value) => objValue <= value,\n less: (objValue, value) => objValue < value,\n greaterEqual: (objValue, value) => objValue >= value,\n greater: (objValue, value) => objValue > value,\n in: (objValue, value) => value.split(\",\").map(item => item.trim()).includes(objValue + \"\")\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Загрузка условий в объект\nconst loadConditionsToObject = (obj, conditions) => {\n //Инициализируем новый объект\n let newObj = {\n ...obj\n };\n //Инициализируем функцию оператора\n let operatorFunc;\n //Если изначальный индикатор загружен\n if (Object.keys(newObj).length !== 0) {\n //Обходим условия\n conditions.map(item => {\n //Функция оператора\n operatorFunc = P8P_CC_OPERATOR_FUNC[item.condOperator.value];\n //Проверяем условие\n if (operatorFunc && operatorFunc(newObj[item.condField.value], item.condValue)) {\n //Устанавливаем поле в новое значение\n newObj[item.resField.value] = item.resValue;\n }\n });\n }\n //Возвращаем новый объект\n return newObj;\n};\n\n//Считывание результатов условия\nconst getConditionsValues = (obj, conditions, element = \"\") => {\n //Инициализируем функцию оператора\n let operatorFunc;\n //Инициализируем значение поля\n let condFieldValue = \"\";\n //Инициализируем результат\n let resObject = {};\n //Обходим условия\n conditions.map(item => {\n //Определяем значение поля условия\n condFieldValue = item.condElement ? obj[item.condElement] : obj[item.condField.value];\n //Функция оператора\n operatorFunc = P8P_CC_OPERATOR_FUNC[item.condOperator.value];\n //Проверяем условие\n if (operatorFunc && operatorFunc(condFieldValue, item.condValue)) {\n //Если в условии нет элемента результата или он равен текущему элементу\n if (!item.resElement || element && item.resElement === element) {\n resObject[item.resField.value] = item.resValue;\n }\n }\n });\n //Возвращаем новый объект\n return resObject;\n};\n\n//Доступность сохранения настроек условия\nconst isConditionOkDisabled = condition => !condition.condField.value || !condition.condOperator.value || !condition.resField.value ? true : false;\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_condition/util.js?");
/***/ }),
@@ -64,6 +207,28 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ }),
+/***/ "./app/components/editors/p8p_component_settings.js":
+/*!**********************************************************!*\
+ !*** ./app/components/editors/p8p_component_settings.js ***!
+ \**********************************************************/
+/***/ ((__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 */ P8P_COMPONENT_SETTINGS_PATHS: () => (/* binding */ P8P_COMPONENT_SETTINGS_PATHS),\n/* harmony export */ P8P_COMPONENT_SETTINGS_RESP_ARGS: () => (/* binding */ P8P_COMPONENT_SETTINGS_RESP_ARGS)\n/* harmony export */ });\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Компонент: Дополнительные настройки источников\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n//---------\n//Константы\n//---------\n\n//Наименование параметра данных компонента, полученных с сервера\nconst P8P_COMPONENT_SETTINGS_RESP_ARGS = {\n INDICATOR: \"XINDICATOR\",\n CHART: \"XCHART\",\n TABLE: \"XDATA_GRID\"\n};\n\n//Наименование путей компонента\nconst P8P_COMPONENT_SETTINGS_PATHS = {\n INDICATOR: \"indicator\",\n CHART: \"chart\",\n TABLE: \"table\",\n FORM: \"form\"\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_component_settings.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_conditions.js":
+/*!**************************************************!*\
+ !*** ./app/components/editors/p8p_conditions.js ***!
+ \**************************************************/
+/***/ ((__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 */ P8PConditions: () => (/* binding */ P8PConditions)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _p8p_component_condition_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_component_condition/editor */ \"./app/components/editors/p8p_component_condition/editor.js\");\n/* harmony import */ var _p8p_chip_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_chip_list */ \"./app/components/editors/p8p_chip_list.js\");\n/* harmony import */ var _p8p_component_condition_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_component_condition/common */ \"./app/components/editors/p8p_component_condition/common.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//Тело модуля\n//-----------\n\n//Условия\nconst P8PConditions = ({\n conditions = _p8p_component_condition_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CCS_INITIAL,\n condFields,\n resFields,\n onChange = null\n} = {}) => {\n //Собственное состояние - редактор условий\n const [conditionEditor, setConditionEditor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n display: false,\n index: null\n });\n\n //При изменении условий\n const handleConditionsChange = conditions => onChange && onChange(conditions);\n\n //При добавлении нового условия\n const handleConditionAdd = () => setConditionEditor({\n display: true,\n index: null\n });\n\n //При нажатии на условие\n const handleConditionClick = i => setConditionEditor({\n display: true,\n index: i\n });\n\n //При удалении условия\n const handleConditionDelete = i => {\n const newConditions = [...conditions];\n newConditions.splice(i, 1);\n handleConditionsChange(newConditions);\n };\n\n //При отмене сохранения изменений условия\n const handleConditionCancel = () => setConditionEditor({\n display: false,\n index: null\n });\n\n //При сохранении изменений условия\n const handleConditionSave = condition => {\n const newConditions = [...conditions];\n conditionEditor.index == null ? newConditions.push({\n ...condition\n }) : newConditions[conditionEditor.index] = {\n ...condition\n };\n handleConditionsChange(newConditions);\n setConditionEditor({\n display: false,\n index: null\n });\n };\n\n //Определяем структуру условий для отображения\n const conditionChips = conditions.map(item => {\n //Собираем текст условия\n let text = `${item.condField.name} ${item.condOperator.name} ${item.condValue}`;\n //Считываем поле результата\n let resField = resFields.find(field => field.name === item.resField.name);\n //Формируем структуру для отображения карточки действия\n return {\n text: text,\n title: text,\n icon: resField?.icon,\n iconTitle: resField?.name\n };\n });\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, conditionEditor.display && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_component_condition_editor__WEBPACK_IMPORTED_MODULE_1__.P8PCCEditor, {\n condition: conditionEditor.index !== null ? {\n ...conditions[conditionEditor.index]\n } : null,\n onCancel: handleConditionCancel,\n onOk: handleConditionSave,\n condFields: condFields,\n resFields: resFields\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_chip_list__WEBPACK_IMPORTED_MODULE_2__.P8PChipList, {\n items: conditionChips,\n onClick: handleConditionClick,\n onDelete: handleConditionDelete\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"add\"),\n onClick: handleConditionAdd\n }, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u0443\\u0441\\u043B\\u043E\\u0432\\u0438\\u0435\"));\n};\n\n//Контроль свойств компонента - условия\nP8PConditions.propTypes = {\n conditions: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf(_p8p_component_condition_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_SHAPE),\n condFields: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf(_p8p_component_condition_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_FIELD_PRM_SHAPE).isRequired,\n resFields: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf(_p8p_component_condition_common__WEBPACK_IMPORTED_MODULE_3__.P8P_CC_FIELD_PRM_SHAPE).isRequired,\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_conditions.js?");
+
+/***/ }),
+
/***/ "./app/components/editors/p8p_config_dialog.js":
/*!*****************************************************!*\
!*** ./app/components/editors/p8p_config_dialog.js ***!
@@ -71,7 +236,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 */ P8PConfigDialog: () => (/* binding */ P8PConfigDialog)\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_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _p8p_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../p8p_dialog */ \"./app/components/p8p_dialog.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 P8PConfigDialog = ({\n title,\n children,\n onOk,\n onCancel\n}) => {\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_dialog__WEBPACK_IMPORTED_MODULE_1__.P8PDialog, {\n title: title,\n onOk: onOk,\n onCancel: onCancel\n }, children);\n};\n\n//Контроль свойств компонента - Диалог настройки\nP8PConfigDialog.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().node), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().node))]),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_config_dialog.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PConfigDialog: () => (/* binding */ P8PConfigDialog)\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_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _p8p_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../p8p_dialog */ \"./app/components/p8p_dialog.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 P8PConfigDialog = ({\n title,\n children,\n width,\n onOk,\n onCancel,\n okDisabled = false\n}) => {\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_dialog__WEBPACK_IMPORTED_MODULE_1__.P8PDialog, {\n title: title,\n onOk: onOk,\n onCancel: onCancel,\n width: width,\n okDisabled: okDisabled\n }, children);\n};\n\n//Контроль свойств компонента - Диалог настройки\nP8PConfigDialog.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().node), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().node))]),\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(Object.values(_p8p_dialog__WEBPACK_IMPORTED_MODULE_1__.P8P_DIALOG_WIDTH)),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n okDisabled: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_config_dialog.js?");
/***/ }),
@@ -82,7 +247,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 */ P8PDataSource: () => (/* binding */ P8PDataSource)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActionArea/CardActionArea.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActions/CardActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_editors_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_editors_common */ \"./app/components/editors/p8p_editors_common.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.js\");\n/* harmony import */ var _p8p_data_source_config_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./p8p_data_source_config_dialog */ \"./app/components/editors/p8p_data_source_config_dialog.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 P8PDataSource = ({\n dataSource = null,\n valueProviders = {},\n onChange = null\n} = {}) => {\n //Собственное состояние - отображение диалога настройки\n const [configDlg, setConfigDlg] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Уведомление родителя о смене настроек источника данных\n const notifyChange = settings => onChange && onChange(settings);\n\n //При нажатии на настройку источника данных\n const handleSetup = () => setConfigDlg(true);\n\n //При нажатии на настройку источника данных\n const handleSetupOk = dataSource => {\n setConfigDlg(false);\n notifyChange(dataSource);\n };\n\n //При нажатии на настройку источника данных\n const handleSetupCancel = () => setConfigDlg(false);\n\n //При удалении настроек источника данных\n const handleDelete = () => notifyChange({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_SOURCE_INITIAL\n });\n\n //Расчет флага \"настроенности\"\n const configured = dataSource?.type ? true : false;\n\n //Список аргументов\n const args = configured && dataSource.arguments.map((argument, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n key: i,\n label: `:${argument.name} = ${argument.valueSource || argument.value || \"NULL\"}`,\n variant: \"outlined\",\n sx: _p8p_editors_common__WEBPACK_IMPORTED_MODULE_2__.STYLES.CHIP(true)\n }));\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, configDlg && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_data_source_config_dialog__WEBPACK_IMPORTED_MODULE_4__.P8PDataSourceConfigDialog, {\n dataSource: dataSource,\n valueProviders: valueProviders,\n onOk: handleSetupOk,\n onCancel: handleSetupCancel\n }), configured && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n variant: \"outlined\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleSetup\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n variant: \"subtitle1\",\n noWrap: true\n }, dataSource.type === _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_SOURCE_TYPE.USER_PROC ? dataSource.userProc : _app_text__WEBPACK_IMPORTED_MODULE_1__.TEXTS.UNNAMED_SOURCE), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n variant: \"caption\",\n color: \"text.secondary\",\n noWrap: true\n }, _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_SOURCE_TYPE_NAME[dataSource.type] || _app_text__WEBPACK_IMPORTED_MODULE_1__.TEXTS.UNKNOWN_SOURCE_TYPE), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n direction: \"column\",\n spacing: 1,\n pt: 2\n }, args))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n onClick: handleDelete\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, \"delete\")))), !configured && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, \"build\"),\n onClick: handleSetup\n }, _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.CONFIG));\n};\n\n//Контроль свойств компонента - Источник данных\nP8PDataSource.propTypes = {\n dataSource: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_3__.P8P_DATA_SOURCE_SHAPE,\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().object),\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PDataSource: () => (/* binding */ P8PDataSource)\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_14__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActionArea/CardActionArea.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActions/CardActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.js\");\n/* harmony import */ var _p8p_data_source_config_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_data_source_config_dialog */ \"./app/components/editors/p8p_data_source_config_dialog.js\");\n/* harmony import */ var _p8p_chip_list__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./p8p_chip_list */ \"./app/components/editors/p8p_chip_list.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 P8PDataSource = ({\n dataSource = null,\n valueProviders = {},\n onChange = null\n} = {}) => {\n //Собственное состояние - отображение диалога настройки\n const [configDlg, setConfigDlg] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Уведомление родителя о смене настроек источника данных\n const notifyChange = settings => onChange && onChange(settings);\n\n //При нажатии на настройку источника данных\n const handleSetup = () => setConfigDlg(true);\n\n //При нажатии на настройку источника данных\n const handleSetupOk = dataSource => {\n setConfigDlg(false);\n notifyChange(dataSource);\n };\n\n //При нажатии на настройку источника данных\n const handleSetupCancel = () => setConfigDlg(false);\n\n //При удалении настроек источника данных\n const handleDelete = () => notifyChange({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_SOURCE_INITIAL\n });\n\n //Расчет флага \"настроенности\"\n const configured = dataSource?.type ? true : false;\n\n //Структура параметров для отображения\n const argChips = configured && dataSource.arguments.map(argument => ({\n text: `:${argument.name} = ${argument.valueSource || argument.value || \"NULL\"}`\n }));\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, configDlg && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_data_source_config_dialog__WEBPACK_IMPORTED_MODULE_3__.P8PDataSourceConfigDialog, {\n dataSource: dataSource,\n valueProviders: valueProviders,\n onOk: handleSetupOk,\n onCancel: handleSetupCancel\n }), configured && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n variant: \"outlined\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onClick: handleSetup\n }, /*#__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 variant: \"subtitle1\",\n noWrap: true\n }, dataSource.type === _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_SOURCE_TYPE.USER_PROC ? dataSource.userProc : _app_text__WEBPACK_IMPORTED_MODULE_1__.TEXTS.UNNAMED_SOURCE), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n variant: \"caption\",\n color: \"text.secondary\",\n noWrap: true\n }, _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_SOURCE_TYPE_NAME[dataSource.type] || _app_text__WEBPACK_IMPORTED_MODULE_1__.TEXTS.UNKNOWN_SOURCE_TYPE), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n direction: \"column\",\n spacing: 1,\n pt: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_chip_list__WEBPACK_IMPORTED_MODULE_4__.P8PChipList, {\n items: argChips\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n onClick: handleDelete\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"delete\")))), !configured && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"build\"),\n onClick: handleSetup\n }, _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.CONFIG));\n};\n\n//Контроль свойств компонента - Источник данных\nP8PDataSource.propTypes = {\n dataSource: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_SOURCE_SHAPE,\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source.js?");
/***/ }),
@@ -93,7 +258,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 */ P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE: () => (/* binding */ P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE),\n/* harmony export */ P8P_DATA_SOURCE_ARGUMENT_INITIAL: () => (/* binding */ P8P_DATA_SOURCE_ARGUMENT_INITIAL),\n/* harmony export */ P8P_DATA_SOURCE_INITIAL: () => (/* binding */ P8P_DATA_SOURCE_INITIAL),\n/* harmony export */ P8P_DATA_SOURCE_SHAPE: () => (/* binding */ P8P_DATA_SOURCE_SHAPE),\n/* harmony export */ P8P_DATA_SOURCE_TYPE: () => (/* binding */ P8P_DATA_SOURCE_TYPE),\n/* harmony export */ P8P_DATA_SOURCE_TYPE_NAME: () => (/* binding */ P8P_DATA_SOURCE_TYPE_NAME)\n/* harmony export */ });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _core_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/client */ \"./app/core/client.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы компонента \"Источник данных\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Контроль свойств компонента\n //Клиент БД\n //Общие текстовые ресурсы\n\n//---------\n//Константы\n//---------\n\n//Типы даных аргументов\nconst P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE = {\n STR: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_STR,\n NUMB: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_NUMB,\n DATE: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_DATE\n};\n\n//Структура аргумента источника данных\nconst P8P_DATA_SOURCE_ARGUMENT_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n dataType: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(Object.values(P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE)),\n req: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().any),\n valueSource: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)\n});\n\n//Начальное состояние аргумента источника данных\nconst P8P_DATA_SOURCE_ARGUMENT_INITIAL = {\n name: \"\",\n caption: \"\",\n dataType: \"\",\n req: false,\n value: \"\",\n valueSource: \"\"\n};\n\n//Типы источников данных\nconst P8P_DATA_SOURCE_TYPE = {\n USER_PROC: \"USER_PROC\",\n QUERY: \"QUERY\"\n};\n\n//Типы источников данных (наименования)\nconst P8P_DATA_SOURCE_TYPE_NAME = {\n [P8P_DATA_SOURCE_TYPE.USER_PROC]: _app_text__WEBPACK_IMPORTED_MODULE_1__.CAPTIONS.USER_PROC,\n [P8P_DATA_SOURCE_TYPE.QUERY]: _app_text__WEBPACK_IMPORTED_MODULE_1__.CAPTIONS.QUERY\n};\n\n//Структура источника данных\nconst P8P_DATA_SOURCE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n type: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([...Object.values(P8P_DATA_SOURCE_TYPE), \"\"]),\n userProc: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n stored: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n respArg: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n arguments: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_DATA_SOURCE_ARGUMENT_SHAPE)\n});\n\n//Начальное состояние истоника данных\nconst P8P_DATA_SOURCE_INITIAL = {\n type: \"\",\n userProc: \"\",\n stored: \"\",\n respArg: \"\",\n arguments: []\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_common.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE: () => (/* binding */ P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE),\n/* harmony export */ P8P_DATA_SOURCE_ARGUMENT_INITIAL: () => (/* binding */ P8P_DATA_SOURCE_ARGUMENT_INITIAL),\n/* harmony export */ P8P_DATA_SOURCE_INITIAL: () => (/* binding */ P8P_DATA_SOURCE_INITIAL),\n/* harmony export */ P8P_DATA_SOURCE_SHAPE: () => (/* binding */ P8P_DATA_SOURCE_SHAPE),\n/* harmony export */ P8P_DATA_SOURCE_TYPE: () => (/* binding */ P8P_DATA_SOURCE_TYPE),\n/* harmony export */ P8P_DATA_SOURCE_TYPE_NAME: () => (/* binding */ P8P_DATA_SOURCE_TYPE_NAME)\n/* harmony export */ });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _core_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core/client */ \"./app/core/client.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы компонента \"Источник данных\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Контроль свойств компонента\n //Клиент БД\n //Общие текстовые ресурсы\n\n//---------\n//Константы\n//---------\n\n//Типы даных аргументов\nconst P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE = {\n STR: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_STR,\n NUMB: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_NUMB,\n DATE: _core_client__WEBPACK_IMPORTED_MODULE_0__[\"default\"].SERV_DATA_TYPE_DATE\n};\n\n//Структура аргумента источника данных\nconst P8P_DATA_SOURCE_ARGUMENT_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n dataType: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf(Object.values(P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE)),\n req: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool).isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().any),\n valueSource: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)\n});\n\n//Начальное состояние аргумента источника данных\nconst P8P_DATA_SOURCE_ARGUMENT_INITIAL = {\n name: \"\",\n caption: \"\",\n dataType: \"\",\n req: false,\n value: \"\",\n valueSource: \"\"\n};\n\n//Типы источников данных\nconst P8P_DATA_SOURCE_TYPE = {\n USER_PROC: \"USER_PROC\",\n QUERY: \"QUERY\"\n};\n\n//Типы источников данных (наименования)\nconst P8P_DATA_SOURCE_TYPE_NAME = {\n [P8P_DATA_SOURCE_TYPE.USER_PROC]: _app_text__WEBPACK_IMPORTED_MODULE_1__.CAPTIONS.USER_PROC,\n [P8P_DATA_SOURCE_TYPE.QUERY]: _app_text__WEBPACK_IMPORTED_MODULE_1__.CAPTIONS.QUERY\n};\n\n//Структура источника данных\nconst P8P_DATA_SOURCE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n type: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOf([...Object.values(P8P_DATA_SOURCE_TYPE), \"\"]),\n userProc: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n stored: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n respArg: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n arguments: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_DATA_SOURCE_ARGUMENT_SHAPE)\n});\n\n//Начальное состояние истоника данных\nconst P8P_DATA_SOURCE_INITIAL = {\n type: \"\",\n userProc: \"\",\n query: \"\",\n stored: \"\",\n respArg: \"\",\n arguments: []\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_common.js?");
/***/ }),
@@ -104,7 +269,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 */ P8PDataSourceConfigDialog: () => (/* binding */ P8PDataSourceConfigDialog)\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_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.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/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_config_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_config_dialog */ \"./app/components/editors/p8p_config_dialog.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.js\");\n/* harmony import */ var _p8p_data_source_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./p8p_data_source_hooks */ \"./app/components/editors/p8p_data_source_hooks.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\n//Диалог настройки источника данных\nconst P8PDataSourceConfigDialog = ({\n dataSource = null,\n valueProviders = {},\n onOk = null,\n onCancel = null\n} = {}) => {\n //Собственное состояние - параметры элемента формы\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_INITIAL,\n ...dataSource\n });\n\n //Собственное состояние - флаги обновление данных\n const [refresh, setRefresh] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n userProcDesc: 0\n });\n\n //Собственное состояние - элемент привязки меню выбора источника\n const [valueProvidersMenuAnchorEl, setValueProvidersMenuAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Описание выбранной пользовательской процедуры\n const [userProcDesc] = (0,_p8p_data_source_hooks__WEBPACK_IMPORTED_MODULE_5__.useUserProcDesc)({\n code: state.userProc,\n refresh: refresh.userProcDesc\n });\n\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 setArgumentValueSource = (index, value, valueSource) => setState(pv => ({\n ...pv,\n arguments: pv.arguments.map((argument, i) => ({\n ...argument,\n ...(i == index ? {\n value,\n valueSource\n } : {})\n }))\n }));\n\n //Открытие/сокрытие меню выбора источника\n const toggleValueProvidersMenu = target => setValueProvidersMenuAnchorEl(target instanceof Element ? target : null);\n\n //При нажатии на очистку наименования пользовательской процедуры\n const handleUserProcClearClick = () => setState({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_INITIAL\n });\n\n //При нажатии на выбор пользовательской процедуры в качестве источника данных\n const handleUserProcSelectClick = () => {\n pOnlineShowDictionary({\n unitCode: \"UserProcedures\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_CODE\",\n value: state.userProc\n }],\n callBack: res => {\n if (res.success) {\n setState(pv => ({\n ...pv,\n type: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_TYPE.USER_PROC,\n userProc: res.outParameters.out_CODE\n }));\n setRefresh(pv => ({\n ...pv,\n userProcDesc: pv.userProcDesc + 1\n }));\n }\n }\n });\n };\n\n //При закрытии дилога с сохранением\n const handleOk = () => onOk && onOk({\n ...state\n });\n\n //При закртии диалога отменой\n const handleCancel = () => onCancel && onCancel();\n\n //При очистке значения/связывания аргумента\n const handleArgumentClearClick = index => setArgumentValueSource(index, \"\", \"\");\n\n //При отображении меню связывания аргумента с поставщиком данных\n const handleArgumentLinkMenuClick = e => setValueProvidersMenuAnchorEl(e.currentTarget);\n\n //При выборе элемента меню связывания аргумента с поставщиком данных\n const handleArgumentLinkClick = valueSource => {\n setArgumentValueSource(valueProvidersMenuAnchorEl.id, \"\", valueSource);\n toggleValueProvidersMenu();\n };\n\n //При вводе значения аргумента\n const handleArgumentChange = (index, value) => setArgumentValueSource(index, value, \"\");\n\n //При изменении описания пользовательской процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (userProcDesc) setState(pv => ({\n ...pv,\n stored: userProcDesc?.stored?.name,\n respArg: userProcDesc?.stored?.respArg,\n arguments: (userProcDesc?.arguments || []).map(argument => ({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_ARGUMENT_INITIAL,\n ...argument\n }))\n }));\n }, [userProcDesc]);\n\n //Список значений\n const values = Object.keys(valueProviders).reduce((res, key) => [...res, ...Object.keys(valueProviders[key])], []);\n\n //Наличие значений\n const isValues = values && values.length > 0 ? true : false;\n\n //Меню привязки к поставщикам значений\n const valueProvidersMenu = isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n anchorEl: valueProvidersMenuAnchorEl,\n open: Boolean(valueProvidersMenuAnchorEl),\n onClose: toggleValueProvidersMenu\n }, values.map((value, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n key: i,\n onClick: () => handleArgumentLinkClick(value)\n }, value)));\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_config_dialog__WEBPACK_IMPORTED_MODULE_3__.P8PConfigDialog, {\n title: _app_text__WEBPACK_IMPORTED_MODULE_2__.TITLES.DATA_SOURCE_CONFIG,\n onOk: handleOk,\n onCancel: handleCancel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, valueProvidersMenu, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: state.userProc,\n label: _app_text__WEBPACK_IMPORTED_MODULE_2__.CAPTIONS.USER_PROC,\n InputLabelProps: {\n shrink: true\n },\n InputProps: {\n readOnly: true,\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_11__[\"default\"], {\n onClick: handleUserProcClearClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n onClick: handleUserProcSelectClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"list\")))\n }\n }), Array.isArray(state?.arguments) && state.arguments.map((argument, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n key: i,\n type: \"text\",\n variant: \"standard\",\n value: argument.value || argument.valueSource,\n label: argument.caption,\n onChange: e => handleArgumentChange(i, e.target.value),\n InputLabelProps: {\n shrink: true\n },\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_11__[\"default\"], {\n onClick: () => handleArgumentClearClick(i)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"clear\")), isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n id: i,\n onClick: handleArgumentLinkMenuClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"settings_ethernet\")))\n }\n }))));\n};\n\n//Контроль свойств компонента - Диалог настройки источника данных\nP8PDataSourceConfigDialog.propTypes = {\n dataSource: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_SHAPE,\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object),\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/components/editors/p8p_data_source_config_dialog.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PDataSourceConfigDialog: () => (/* binding */ P8PDataSourceConfigDialog)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputAdornment/InputAdornment.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _p8p_config_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_config_dialog */ \"./app/components/editors/p8p_config_dialog.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.js\");\n/* harmony import */ var _p8p_data_source_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./p8p_data_source_hooks */ \"./app/components/editors/p8p_data_source_hooks.js\");\n/* harmony import */ var _p8p_data_source_query_selector__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./p8p_data_source_query_selector */ \"./app/components/editors/p8p_data_source_query_selector.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_7__ = __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//Тело модуля\n//-----------\n\n//Диалог настройки источника данных\nconst P8PDataSourceConfigDialog = ({\n dataSource = null,\n valueProviders = {},\n onOk = null,\n onCancel = null\n} = {}) => {\n //Собственное состояние - параметры элемента формы\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_INITIAL,\n ...dataSource\n });\n\n //Собственное состояние - флаги обновление данных\n const [refresh, setRefresh] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n userProcDesc: 0\n });\n\n //Собственное состояние - элемент привязки меню выбора источника\n const [valueProvidersMenuAnchorEl, setValueProvidersMenuAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Описание выбранной пользовательской процедуры\n const [userProcDesc] = (0,_p8p_data_source_hooks__WEBPACK_IMPORTED_MODULE_5__.useUserProcDesc)({\n code: state.userProc,\n refresh: refresh.userProcDesc\n });\n\n //Собственное состояние - отображение диалога выбора запроса\n const [openQuerySelector, setOpenQuerySelector] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - доступность полей выбора источника\n const [disabledFields, setDisabledFields] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n query: false,\n userProc: false\n });\n\n //Подключение к контексту приложения\n const {\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Установка значения/привязки аргумента\n const setArgumentValueSource = (index, value, valueSource) => setState(pv => ({\n ...pv,\n arguments: pv.arguments.map((argument, i) => ({\n ...argument,\n ...(i == index ? {\n value,\n valueSource\n } : {})\n }))\n }));\n\n //Открытие/сокрытие меню выбора источника\n const toggleValueProvidersMenu = target => setValueProvidersMenuAnchorEl(target instanceof Element ? target : null);\n\n //При нажатии на очистку наименования пользовательской процедуры\n const handleUserProcClearClick = () => setState({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_INITIAL\n });\n\n //При нажатии на выбор пользовательской процедуры в качестве источника данных\n const handleUserProcSelectClick = () => {\n pOnlineShowDictionary({\n unitCode: \"UserProcedures\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_CODE\",\n value: state.userProc\n }],\n callBack: res => {\n if (res.success) {\n setState(pv => ({\n ...pv,\n type: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_TYPE.USER_PROC,\n userProc: res.outParameters.out_CODE\n }));\n setRefresh(pv => ({\n ...pv,\n userProcDesc: pv.userProcDesc + 1\n }));\n }\n }\n });\n };\n\n //При закрытии дилога с сохранением\n const handleOk = () => onOk && onOk({\n ...state\n });\n\n //При закртии диалога отменой\n const handleCancel = () => onCancel && onCancel();\n\n //При очистке значения/связывания аргумента\n const handleArgumentClearClick = index => setArgumentValueSource(index, \"\", \"\");\n\n //При отображении меню связывания аргумента с поставщиком данных\n const handleArgumentLinkMenuClick = e => setValueProvidersMenuAnchorEl(e.currentTarget);\n\n //При выборе элемента меню связывания аргумента с поставщиком данных\n const handleArgumentLinkClick = valueSource => {\n setArgumentValueSource(valueProvidersMenuAnchorEl.id, \"\", valueSource);\n toggleValueProvidersMenu();\n };\n\n //При вводе значения аргумента\n const handleArgumentChange = (index, value) => setArgumentValueSource(index, value, \"\");\n\n //Открытие диалога выбора запроса\n const handleOpenQuerySelector = () => setOpenQuerySelector(true);\n\n //Закрытие диалога выбора запроса\n const handleCancelQuerySelector = () => setOpenQuerySelector(false);\n\n //При нажатии на очистку мнемокода запроса\n const handleQueryClearClick = () => setState({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_INITIAL\n });\n\n //При нажатии на выбор запроса в качестве источника данных\n const handleQuerySelectClick = query => {\n setState(pv => ({\n ...pv,\n type: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_TYPE.QUERY,\n query: query.code\n }));\n handleCancelQuerySelector();\n };\n\n //При изменении описания пользовательской процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (userProcDesc) setState(pv => ({\n ...pv,\n stored: userProcDesc?.stored?.name,\n respArg: userProcDesc?.stored?.respArg,\n arguments: (userProcDesc?.arguments || []).map(argument => ({\n ..._p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_ARGUMENT_INITIAL,\n ...argument\n }))\n }));\n }, [userProcDesc]);\n\n //При изменении источника\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n /*\r\n Если выбран запрос - блокируем выбор процедуры\r\n Если выбрана процедура - блокируем выбор запроса\r\n Ничего не выбрано - доступны все варианты\r\n */\n (0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.query) ? setDisabledFields({\n query: false,\n userProc: true\n }) : (0,_core_utils__WEBPACK_IMPORTED_MODULE_7__.hasValue)(state.userProc) ? setDisabledFields({\n query: true,\n userProc: false\n }) : setDisabledFields({\n query: false,\n userProc: false\n });\n }, [state.query, state.userProc]);\n\n //Список значений\n const values = Object.keys(valueProviders);\n\n //Наличие значений\n const isValues = values && values.length > 0 ? true : false;\n\n //Меню привязки к поставщикам значений\n const valueProvidersMenu = isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n anchorEl: valueProvidersMenuAnchorEl,\n open: Boolean(valueProvidersMenuAnchorEl),\n onClose: toggleValueProvidersMenu\n }, values.map((value, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n key: i,\n onClick: () => handleArgumentLinkClick(value)\n }, value)));\n\n //Доступность сохранения настройки источника данных\n const okDisabled = !state.query && !state.userProc ? true : false;\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, openQuerySelector ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_data_source_query_selector__WEBPACK_IMPORTED_MODULE_6__.P8PDataSourceQuerySelector, {\n current: state.query,\n onSelect: handleQuerySelectClick,\n onCancel: handleCancelQuerySelector\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_config_dialog__WEBPACK_IMPORTED_MODULE_3__.P8PConfigDialog, {\n title: _app_text__WEBPACK_IMPORTED_MODULE_2__.TITLES.DATA_SOURCE_CONFIG,\n onOk: handleOk,\n onCancel: handleCancel,\n okDisabled: okDisabled\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, valueProvidersMenu, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: state.query,\n label: _app_text__WEBPACK_IMPORTED_MODULE_2__.CAPTIONS.QUERY,\n InputLabelProps: {\n shrink: true\n },\n InputProps: {\n readOnly: true,\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleQueryClearClick,\n disabled: disabledFields.query\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleOpenQuerySelector,\n disabled: disabledFields.query\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"list\")))\n },\n disabled: disabledFields.query\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n type: \"text\",\n variant: \"standard\",\n value: state.userProc,\n label: _app_text__WEBPACK_IMPORTED_MODULE_2__.CAPTIONS.USER_PROC,\n InputLabelProps: {\n shrink: true\n },\n InputProps: {\n readOnly: true,\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleUserProcClearClick,\n disabled: disabledFields.userProc\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleUserProcSelectClick,\n disabled: disabledFields.userProc\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"list\")))\n },\n disabled: disabledFields.userProc\n }), Array.isArray(state?.arguments) && state.arguments.map((argument, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n key: i,\n type: \"text\",\n variant: \"standard\",\n value: argument.value || argument.valueSource,\n label: argument.caption,\n onChange: e => handleArgumentChange(i, e.target.value),\n InputLabelProps: {\n shrink: true\n },\n InputProps: {\n endAdornment: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n position: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: () => handleArgumentClearClick(i)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"clear\")), isValues && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n id: i,\n onClick: handleArgumentLinkMenuClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, \"settings_ethernet\")))\n }\n })))));\n};\n\n//Контроль свойств компонента - Диалог настройки источника данных\nP8PDataSourceConfigDialog.propTypes = {\n dataSource: _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_SOURCE_SHAPE,\n valueProviders: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().object),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_config_dialog.js?");
/***/ }),
@@ -115,7 +280,18 @@ 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 */ useDataSource: () => (/* binding */ useDataSource),\n/* harmony export */ useUserProcDesc: () => (/* binding */ useUserProcDesc)\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 _core_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/client */ \"./app/core/client.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.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//Описание пользовательской процедуры\nconst useUserProcDesc = ({\n code,\n refresh\n}) => {\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - данные\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_4__[\"BackEndСtx\"]);\n\n //При необходимости обновить данные компонента\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных с сервера\n const loadData = async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored: \"PKG_P8PANELS_PE.USERPROCS_DESC\",\n args: {\n SCODE: code\n },\n respArg: \"COUT\",\n isArray: name => name === \"arguments\",\n loader: false\n });\n setData(data?.XUSERPROC || null);\n } finally {\n setLoading(false);\n }\n };\n //Если надо обновить и есть для чего получать данные\n if (refresh > 0) if (code) loadData();else setData(null);\n }, [refresh, code, executeStored]);\n\n //Возвращаем интерфейс хука\n return [data, isLoading];\n};\n\n//Получение данных из источника\nconst useDataSource = ({\n dataSource,\n values\n}) => {\n //Контроллер для прерывания запросов\n const abortController = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Собственное состояние - параметры исполнения\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n stored: null,\n storedArgs: [],\n respArg: null,\n reqSet: false\n });\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - данные\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false\n });\n\n //Собственное состояние - ошибка получения данных\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_4__[\"BackEndСtx\"]);\n\n //При необходимости обновить данные\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных с сервера\n const loadData = async () => {\n try {\n setLoading(true);\n abortController.current?.abort?.();\n abortController.current = new AbortController();\n const data = await executeStored({\n stored: state.stored,\n args: {\n ...(state.storedArgs ? state.storedArgs : {})\n },\n respArg: state.respArg,\n loader: false,\n signal: abortController.current.signal,\n showErrorMessage: false\n });\n setError(null);\n setData({\n ...data,\n init: true\n });\n } catch (e) {\n if (e.message !== _core_client__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_ABORTED) {\n setError((0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.formatErrorMessage)(e.message).text);\n setData({\n init: false\n });\n }\n } finally {\n setLoading(false);\n }\n };\n if (state.reqSet) {\n if (state.stored) loadData();\n } else setData({\n init: false\n });\n return () => abortController.current?.abort?.();\n }, [state.stored, state.storedArgs, state.respArg, state.reqSet, executeStored]);\n\n //При изменении свойств\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setState(pv => {\n if (dataSource?.type == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_TYPE.USER_PROC) {\n const {\n stored,\n respArg\n } = dataSource;\n let reqSet = true;\n const storedArgs = {};\n dataSource.arguments.forEach(argument => {\n let v = argument.valueSource ? values[argument.valueSource] : argument.value;\n storedArgs[argument.name] = argument.dataType == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE.NUMB ? isNaN(parseFloat(v)) ? null : parseFloat(v) : argument.dataType == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE.DATE ? new Date(v) : String(v === undefined ? \"\" : v);\n if (argument.req === true && [undefined, null, \"\"].includes(storedArgs[argument.name])) reqSet = false;\n });\n if (pv.stored != stored || pv.respArg != respArg || JSON.stringify(pv.storedArgs) != JSON.stringify(storedArgs)) {\n if (!reqSet) {\n setError(_app_text__WEBPACK_IMPORTED_MODULE_2__.ERRORS.DATA_SOURCE_NO_REQ_ARGS);\n setData({\n init: false\n });\n }\n return {\n stored,\n respArg,\n storedArgs,\n reqSet\n };\n } else return pv;\n } else return pv;\n });\n }, [dataSource, values]);\n\n //Возвращаем интерфейс хука\n return [data, error, isLoading];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useComponentHandlers: () => (/* binding */ useComponentHandlers),\n/* harmony export */ useConditions: () => (/* binding */ useConditions),\n/* harmony export */ useDataSource: () => (/* binding */ useDataSource),\n/* harmony export */ useUserProcDesc: () => (/* binding */ useUserProcDesc)\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 _core_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core/client */ \"./app/core/client.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./p8p_data_source_common */ \"./app/components/editors/p8p_data_source_common.js\");\n/* harmony import */ var _p8p_component_condition_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./p8p_component_condition/util */ \"./app/components/editors/p8p_component_condition/util.js\");\n/* harmony import */ var _p8p_component_action_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./p8p_component_action/util */ \"./app/components/editors/p8p_component_action/util.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.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//-----------\n\n//Описание пользовательской процедуры\nconst useUserProcDesc = ({\n code,\n refresh\n}) => {\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - данные\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_4__.BackEndCtx);\n\n //При необходимости обновить данные компонента\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных с сервера\n const loadData = async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored: \"PKG_P8PANELS_PE.USERPROCS_DESC\",\n args: {\n SCODE: code\n },\n respArg: \"COUT\",\n isArray: name => name === \"arguments\",\n loader: false\n });\n setData(data?.XUSERPROC || null);\n } finally {\n setLoading(false);\n }\n };\n //Если надо обновить и есть для чего получать данные\n if (refresh > 0) if (code) loadData();else setData(null);\n }, [refresh, code, executeStored]);\n\n //Возвращаем интерфейс хука\n return [data, isLoading];\n};\n\n//Получение данных из источника\nconst useDataSource = ({\n dataSource,\n values,\n componentRespArg = \"\"\n}) => {\n //Контроллер для прерывания запросов\n const abortController = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Собственное состояние - параметры исполнения\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n stored: null,\n storedArgs: [],\n respArg: null,\n reqSet: false\n });\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - данные\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n componentData: {},\n init: false\n });\n\n //Собственное состояние - ошибка получения данных\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Собственное состояние - наличие настроек\n const [haveConfing, setHaveConfig] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - наличие данных\n const [haveData, setHaveData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_4__.BackEndCtx);\n\n //При необходимости обновление информации о наличии данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setHaveData(data.init === true && !error ? true : false);\n }, [data.init, error]);\n\n //При необходимости обновить данные\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка данных с сервера\n const loadData = async () => {\n try {\n setLoading(true);\n abortController.current?.abort?.();\n abortController.current = new AbortController();\n const data = await executeStored({\n stored: state.stored,\n args: {\n ...(state.storedArgs ? state.storedArgs : {})\n },\n respArg: state.respArg,\n loader: false,\n signal: abortController.current.signal,\n showErrorMessage: false\n });\n setError(null);\n setData({\n componentData: {\n ...data[componentRespArg]\n },\n init: true\n });\n } catch (e) {\n if (e.message !== _core_client__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_ABORTED) {\n setError((0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.formatErrorMessage)(e.message).text);\n setData({\n componentData: {},\n init: false\n });\n }\n } finally {\n setLoading(false);\n }\n };\n if (state.reqSet) {\n if (state.stored) loadData();\n } else setData({\n componentData: {},\n init: false\n });\n return () => abortController.current?.abort?.();\n }, [state.stored, state.storedArgs, state.respArg, state.reqSet, executeStored, componentRespArg]);\n\n //При изменении свойств\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Устанавливаем признак наличия настроек\n setHaveConfig(dataSource?.stored ? true : false);\n //Устанавливаем параметры исполнения\n setState(pv => {\n if (dataSource?.type == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_TYPE.USER_PROC) {\n const {\n stored,\n respArg\n } = dataSource;\n let reqSet = true;\n const storedArgs = {};\n dataSource.arguments.forEach(argument => {\n let v = argument.valueSource ? values[argument.valueSource] : argument.value;\n storedArgs[argument.name] = argument.dataType == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE.NUMB ? isNaN(parseFloat(v)) ? null : parseFloat(v) : argument.dataType == _p8p_data_source_common__WEBPACK_IMPORTED_MODULE_5__.P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE.DATE ? new Date(v) : String(v === undefined ? \"\" : v);\n if (argument.req === true && [undefined, null, \"\"].includes(storedArgs[argument.name])) reqSet = false;\n });\n if (pv.stored != stored || pv.respArg != respArg || JSON.stringify(pv.storedArgs) != JSON.stringify(storedArgs)) {\n if (!reqSet) {\n setError(_app_text__WEBPACK_IMPORTED_MODULE_2__.ERRORS.DATA_SOURCE_NO_REQ_ARGS);\n setData({\n componentData: {},\n init: false\n });\n }\n return {\n stored,\n respArg,\n storedArgs,\n reqSet\n };\n } else return pv;\n } else return pv;\n });\n }, [dataSource, values]);\n\n //Возвращаем интерфейс хука\n return [data.componentData, error, haveConfing, haveData, isLoading];\n};\n\n//Изменение данных компонента с учетом условий\nconst useConditions = ({\n componentData,\n conditions\n}) => {\n //Собственное состояние - текущие условия компонента\n const [currentConditions, setCurrentConditions] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - данные\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n\n //При обновлении условий компонента\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если условия изменились\n if (JSON.stringify(currentConditions) != JSON.stringify(conditions)) {\n //Устанавливаем новые условия\n setCurrentConditions(conditions);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conditions]);\n\n //При обновлении данных или условий компонента\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если есть текущие условия\n if (currentConditions.length !== 0) {\n //Устанавливаем данные с учетом условий\n setData({\n ...componentData,\n ...(0,_p8p_component_condition_util__WEBPACK_IMPORTED_MODULE_6__.getConditionsValues)(componentData, currentConditions)\n });\n } else {\n //Оставляем данные компонента\n setData({\n ...componentData\n });\n }\n }, [currentConditions, componentData]);\n\n //Возвращаем интерфейс хука\n return [data];\n};\n\n//Получение обработчиков компонента\nconst useComponentHandlers = ({\n actions = [],\n onValuesChange = null,\n getCustomTypeValue = null\n}) => {\n //Контроллер для текущего состояния действий\n const currentActions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)([]);\n\n //Собственное состояние - обработчики компонента\n const [handlers, setHandlers] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n\n //Подключение к контексту приложения\n const {\n configUrlBase,\n pOnlineShowTab,\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_8__.ApplicationCtx);\n\n //При необходимости обновления информации об обработчиках\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменились действия или параметры\n if (JSON.stringify(currentActions.current) != JSON.stringify(actions)) {\n //Считываем обработчики компонента\n setHandlers((0,_p8p_component_action_util__WEBPACK_IMPORTED_MODULE_7__.getHandlersByActions)(actions, pOnlineShowUnit, configUrlBase, pOnlineShowTab, onValuesChange, getCustomTypeValue));\n //Устанавливаем контроллер текущих действий\n currentActions.current = actions;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actions]);\n\n //Возвращаем интерфейс хука\n return [handlers];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_hooks.js?");
+
+/***/ }),
+
+/***/ "./app/components/editors/p8p_data_source_query_selector.js":
+/*!******************************************************************!*\
+ !*** ./app/components/editors/p8p_data_source_query_selector.js ***!
+ \******************************************************************/
+/***/ ((__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 */ P8PDataSourceQuerySelector: () => (/* binding */ P8PDataSourceQuerySelector)\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_8__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _p8p_config_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_config_dialog */ \"./app/components/editors/p8p_config_dialog.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//Стили\nconst STYLES = {\n LIST: {\n height: \"500px\",\n width: \"360px\",\n bgcolor: \"background.paper\",\n overflowY: \"auto\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Диалог выбора записи редактора запросов\nconst P8PDataSourceQuerySelector = ({\n current = null,\n onSelect,\n onCancel\n}) => {\n //!!! НА РЕАЛИЗАЦИИ\n const test = [{\n code: \"TestCode\",\n name: \"TestName\"\n }];\n //При выборе элемента списка\n const handleSelectClick = query => {\n onSelect && onSelect(query);\n };\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_config_dialog__WEBPACK_IMPORTED_MODULE_1__.P8PConfigDialog, {\n title: \"Запросы\",\n onCancel: onCancel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.LIST\n }, test.map((query, i) => {\n const selected = query.code === current;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => handleSelectClick(query),\n selected: selected\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n primary: query.code,\n secondaryTypographyProps: {\n component: \"div\"\n },\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n variant: \"caption\"\n }, `${query.code}, ${query.name}`))\n })));\n })));\n};\n\n//Контроль свойств компонента - Диалог выбора записи редактора запросов\nP8PDataSourceQuerySelector.propTypes = {\n current: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),\n onSelect: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired,\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_data_source_query_selector.js?");
/***/ }),
@@ -126,7 +302,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 */ P8PEditorBox: () => (/* binding */ P8PEditorBox)\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_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.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_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 _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Компонент: Контейнер редактора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n //Общие текстовые ресурсы\n\n//-----------\n//Тело модуля\n//-----------\n\n//Контейнер редактора\nconst P8PEditorBox = ({\n title,\n children,\n onSave\n}) => {\n //При нажатии на \"Сохранить\"\n const handleSaveClick = (closeEditor = false) => onSave && onSave(closeEditor);\n\n //Флаг отображения кнопок сохранения\n const showSaveBar = onSave ? true : false;\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, children), showSaveBar && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n justifyContent: \"right\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onClick: () => handleSaveClick(false),\n title: _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.APPLY\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"done\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onClick: () => handleSaveClick(true),\n title: _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.SAVE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"done_all\"))));\n};\n\n//Контроль свойств компонента - Контейнер редактора\nP8PEditorBox.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().node), prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_7___default().node))]),\n onSave: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editor_box.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PEditorBox: () => (/* binding */ P8PEditorBox)\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_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.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_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 _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Компонент: Контейнер редактора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n //Общие текстовые ресурсы\n\n//-----------\n//Тело модуля\n//-----------\n\n//Контейнер редактора\nconst P8PEditorBox = ({\n title,\n children,\n onSave,\n allowClose = true\n}) => {\n //При нажатии на \"Сохранить\"\n const handleSaveClick = (closeEditor = false) => onSave && onSave(closeEditor);\n\n //Флаг отображения кнопок сохранения\n const showSaveBar = onSave ? true : false;\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"column\",\n spacing: 1\n }, children), showSaveBar && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n direction: \"row\",\n justifyContent: \"right\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onClick: () => handleSaveClick(false),\n title: _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.APPLY\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"done\")), allowClose ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onClick: () => handleSaveClick(true),\n title: _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.SAVE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, \"done_all\")) : null));\n};\n\n//Контроль свойств компонента - Контейнер редактора\nP8PEditorBox.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().node), prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_7___default().node))]),\n onSave: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),\n allowClose: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editor_box.js?");
/***/ }),
@@ -148,7 +324,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 */ P8PEditorToolBar: () => (/* binding */ P8PEditorToolBar)\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_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\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/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Компонент: Панель инструментов редактора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n\n//---------\n//Константы\n//---------\n\n//Структура элемента панели инструментов редактора\nconst P8P_EDITOR_TOOL_BAR_ITEM_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({\n icon: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,\n disabled: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//Панель инструментов редактора\nconst P8PEditorToolBar = ({\n items = []\n}) => {\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"row\",\n p: 1\n }, items.map((item, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: i,\n onClick: item.onClick,\n title: item.title,\n disabled: item?.disabled === true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, item.icon))));\n};\n\n//Контроль свойств компонента - Панель инструментов редактора\nP8PEditorToolBar.propTypes = {\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(P8P_EDITOR_TOOL_BAR_ITEM_SHAPE)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editor_toolbar.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PEditorToolBar: () => (/* binding */ P8PEditorToolBar)\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_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\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/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Компонент: Панель инструментов редактора\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n\n//---------\n//Константы\n//---------\n\n//Структура элемента панели инструментов редактора\nconst P8P_EDITOR_TOOL_BAR_ITEM_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({\n icon: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,\n disabled: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func).isRequired,\n customRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//Панель инструментов редактора\nconst P8PEditorToolBar = ({\n items = []\n}) => {\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n direction: \"row\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n container: true,\n columns: items.length\n }, items.map((item, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n item: true,\n size: {\n xs: 2,\n sm: 4,\n md: 4\n },\n key: i\n }, item.customRenderer ? item.customRenderer({\n icon: item.icon,\n title: item.title,\n disabled: item?.disabled === true,\n onClick: item.onClick\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: item.onClick,\n title: item.title,\n disabled: item?.disabled === true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, item.icon))))));\n};\n\n//Контроль свойств компонента - Панель инструментов редактора\nP8PEditorToolBar.propTypes = {\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(P8P_EDITOR_TOOL_BAR_ITEM_SHAPE)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editor_toolbar.js?");
/***/ }),
@@ -159,7 +335,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 */ STYLES: () => (/* binding */ STYLES)\n/* harmony export */ });\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы редакторов\r\n*/\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CHIP: (fullWidth = false, multiLine = false) => ({\n ...(multiLine ? {\n height: \"auto\"\n } : {}),\n \"& .MuiChip-label\": {\n ...(multiLine ? {\n display: \"block\",\n whiteSpace: \"normal\"\n } : {}),\n ...(fullWidth ? {\n width: \"100%\"\n } : {})\n }\n })\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editors_common.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ STYLES: () => (/* binding */ STYLES),\n/* harmony export */ isElementNameCorrect: () => (/* binding */ isElementNameCorrect)\n/* harmony export */ });\n/*\r\n Парус 8 - Панели мониторинга - Редакторы панелей\r\n Общие ресурсы редакторов\r\n*/\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CHIP: (fullWidth = false, multiLine = false) => ({\n ...(multiLine ? {\n height: \"auto\"\n } : {}),\n \"& .MuiChip-label\": {\n ...(multiLine ? {\n display: \"block\",\n whiteSpace: \"normal\"\n } : {}),\n ...(fullWidth ? {\n width: \"100%\"\n } : {})\n }\n })\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Проверка корректности наименования элемента формы\nconst isElementNameCorrect = elementName => {\n return new RegExp(/^[\\w\\d_]*$/).test(elementName);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/editors/p8p_editors_common.js?");
/***/ }),
@@ -181,7 +357,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 */ P8PAppInlineError: () => (/* binding */ P8PAppInlineError),\n/* harmony export */ P8PAppInlineInfo: () => (/* binding */ P8PAppInlineInfo),\n/* harmony export */ P8PAppInlineMessage: () => (/* binding */ P8PAppInlineMessage),\n/* harmony export */ P8PAppInlineWarn: () => (/* binding */ P8PAppInlineWarn),\n/* harmony export */ P8PAppMessage: () => (/* binding */ P8PAppMessage),\n/* harmony export */ P8PAppMessageErr: () => (/* binding */ P8PAppMessageErr),\n/* harmony export */ P8PAppMessageInfo: () => (/* binding */ P8PAppMessageInfo),\n/* harmony export */ P8PAppMessageWarn: () => (/* binding */ P8PAppMessageWarn),\n/* harmony export */ P8PHintDialog: () => (/* binding */ P8PHintDialog),\n/* harmony export */ P8P_APP_MESSAGE_VARIANT: () => (/* binding */ P8P_APP_MESSAGE_VARIANT)\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_9__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material/Dialog */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material/DialogTitle */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material/DialogContent */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material_DialogContentText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material/DialogContentText */ \"./node_modules/@mui/material/DialogContentText/DialogContentText.js\");\n/* harmony import */ var _mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material/DialogActions */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material_Typography__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material/Typography */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material/Button */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material_Container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material/Container */ \"./node_modules/@mui/material/Container/Container.js\");\n/* harmony import */ var _mui_material_Box__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material/Box */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../app.text */ \"./app.text.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../app.styles */ \"./app.styles.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 //базовый класс диалога Material UI\n //Заголовок диалога\n //Содержимое диалога\n //Текст содержимого диалога\n //Область действий диалога\n //Текст\n //Кнопки\n //Контейнер\n //Обёртка\n //Типовые текстовые ресурсы и константы\n //Типовые стили\n\n//---------\n//Константы\n//---------\n\n//Варианты исполнения\nconst P8P_APP_MESSAGE_VARIANT = {\n INFO: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO,\n WARN: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN,\n ERR: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR\n};\n\n//Стили\nconst STYLES = {\n DEFAULT: {\n wordBreak: \"break-word\"\n },\n INFO: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n }\n },\n WARN: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n }\n },\n ERR: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor\n }\n },\n INLINE_MESSAGE: {\n with: \"100%\",\n textAlign: \"center\"\n },\n FULL_ERROR_TEXT_BUTTON: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Сообщение\nconst P8PAppMessage = ({\n variant,\n title,\n titleText,\n cancelBtn,\n onCancel,\n cancelBtnCaption,\n okBtn,\n onOk,\n okBtnCaption,\n open,\n text,\n fullErrorText,\n showErrMoreCaption,\n hideErrMoreCaption\n}) => {\n //Состояние подробной информации об ошибке\n const [showFullErrorText, setShowFullErrorText] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подбор стиля и ресурсов\n let style = STYLES.INFO;\n switch (variant) {\n case P8P_APP_MESSAGE_VARIANT.INFO:\n {\n style = STYLES.INFO;\n break;\n }\n case P8P_APP_MESSAGE_VARIANT.WARN:\n {\n style = STYLES.WARN;\n break;\n }\n case P8P_APP_MESSAGE_VARIANT.ERR:\n {\n style = STYLES.ERR;\n break;\n }\n }\n\n //Заголовок\n let titlePart;\n if (title && titleText) titlePart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n style: {\n ...style.DEFAULT,\n ...style.titleText\n }\n }, titleText);\n\n //Кнопка Отмена\n let cancelBtnPart;\n if (cancelBtn && cancelBtnCaption && variant === P8P_APP_MESSAGE_VARIANT.WARN) cancelBtnPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onCancel ? onCancel() : null\n }, cancelBtnCaption);\n\n //Кнопка OK\n let okBtnPart;\n if (okBtn && okBtnCaption) okBtnPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onOk ? onOk() : null,\n autoFocus: true\n }, okBtnCaption);\n\n //Кнопка Подробнее\n let fullErrorTextBtn;\n if (fullErrorText && showErrMoreCaption && hideErrMoreCaption && variant === P8P_APP_MESSAGE_VARIANT.ERR) fullErrorTextBtn = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => setShowFullErrorText(!showFullErrorText),\n sx: STYLES.FULL_ERROR_TEXT_BUTTON,\n autoFocus: true\n }, !showFullErrorText ? showErrMoreCaption : hideErrMoreCaption);\n\n //Все действия\n let actionsPart;\n if (cancelBtnPart || okBtnPart) actionsPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, fullErrorTextBtn, okBtnPart, cancelBtnPart);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: open || false,\n onClose: () => onCancel ? onCancel() : null\n }, titlePart, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContentText__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n style: style.bodyText\n }, !showFullErrorText ? text : fullErrorText)), actionsPart);\n};\n\n//Контроль свойств - Сообщение\nP8PAppMessage.propTypes = {\n variant: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n titleText: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n cancelBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n okBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n open: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n text: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n fullErrorText: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n showErrMoreCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n hideErrMoreCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string)\n};\n\n//Встроенное сообщение\nconst P8PAppInlineMessage = ({\n variant,\n text,\n okBtn,\n onOk,\n okBtnCaption\n}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Container__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n style: STYLES.INLINE_MESSAGE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Box__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n color: variant === P8P_APP_MESSAGE_VARIANT.ERR ? _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor : variant === P8P_APP_MESSAGE_VARIANT.WARN ? _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor : _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n }, text), okBtn && okBtnCaption ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Box__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n pt: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onOk ? onOk() : null,\n autoFocus: true\n }, okBtnCaption)) : null));\n};\n\n//Контроль свойств - Встроенное сообщение\nP8PAppInlineMessage.propTypes = {\n variant: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n text: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n okBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string)\n};\n\n//Формирование типового сообщения\nconst buildVariantMessage = (props, variant) => {\n //Извлекаем необходимые свойства\n let {\n open,\n titleText\n } = props;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PAppMessage, _extends({}, props, {\n variant: variant,\n open: open === undefined ? true : open,\n title: titleText ? true : false,\n okBtn: true\n }));\n};\n\n//Формирование типового встроенного сообщения\nconst buildVariantInlineMessage = (props, variant) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PAppInlineMessage, _extends({}, props, {\n variant: variant\n }));\n};\n\n//Сообщение об ошибке\nconst P8PAppMessageErr = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.ERR);\n\n//Сообщение предупреждения\nconst P8PAppMessageWarn = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.WARN);\n\n//Сообщение информации\nconst P8PAppMessageInfo = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.INFO);\n\n//Встраиваемое сообщение об ошибке\nconst P8PAppInlineError = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.ERR);\n\n//Встраиваемое cообщение предупреждения\nconst P8PAppInlineWarn = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.WARN);\n\n//Встраиваемое сообщение информации\nconst P8PAppInlineInfo = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.INFO);\n\n//Диалог подсказки\nconst P8PHintDialog = ({\n title,\n hint,\n onOk\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: true,\n onClose: () => onOk ? onOk() : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: hint\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onOk ? onOk() : null\n }, _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.OK)));\n};\n\n//Контроль свойств - Диалог подсказки\nP8PHintDialog.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n hint: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_app_message.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PAppInlineError: () => (/* binding */ P8PAppInlineError),\n/* harmony export */ P8PAppInlineInfo: () => (/* binding */ P8PAppInlineInfo),\n/* harmony export */ P8PAppInlineMessage: () => (/* binding */ P8PAppInlineMessage),\n/* harmony export */ P8PAppInlineWarn: () => (/* binding */ P8PAppInlineWarn),\n/* harmony export */ P8PAppMessage: () => (/* binding */ P8PAppMessage),\n/* harmony export */ P8PAppMessageErr: () => (/* binding */ P8PAppMessageErr),\n/* harmony export */ P8PAppMessageInfo: () => (/* binding */ P8PAppMessageInfo),\n/* harmony export */ P8PAppMessageWarn: () => (/* binding */ P8PAppMessageWarn),\n/* harmony export */ P8PHintDialog: () => (/* binding */ P8PHintDialog),\n/* harmony export */ P8P_APP_MESSAGE_VARIANT: () => (/* binding */ P8P_APP_MESSAGE_VARIANT)\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_9__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material/Dialog */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material/DialogTitle */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material/DialogContent */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material_DialogContentText__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material/DialogContentText */ \"./node_modules/@mui/material/DialogContentText/DialogContentText.js\");\n/* harmony import */ var _mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material/DialogActions */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material_Typography__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material/Typography */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material/Button */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material_Container__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material/Container */ \"./node_modules/@mui/material/Container/Container.js\");\n/* harmony import */ var _mui_material_Box__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material/Box */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../app.text */ \"./app.text.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../app.styles */ \"./app.styles.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 //базовый класс диалога Material UI\n //Заголовок диалога\n //Содержимое диалога\n //Текст содержимого диалога\n //Область действий диалога\n //Текст\n //Кнопки\n //Контейнер\n //Обёртка\n //Типовые текстовые ресурсы и константы\n //Типовые стили\n\n//---------\n//Константы\n//---------\n\n//Варианты исполнения\nconst P8P_APP_MESSAGE_VARIANT = {\n INFO: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO,\n WARN: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN,\n ERR: _app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR\n};\n\n//Стили\nconst STYLES = {\n DEFAULT: {\n wordBreak: \"break-word\"\n },\n INFO: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n }\n },\n WARN: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n }\n },\n ERR: {\n titleText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor\n },\n bodyText: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor\n }\n },\n INLINE_MESSAGE: {\n with: \"100%\",\n textAlign: \"center\"\n },\n FULL_ERROR_TEXT_BUTTON: {\n color: _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Сообщение\nconst P8PAppMessage = ({\n variant,\n title,\n titleText,\n cancelBtn,\n onCancel,\n cancelBtnCaption,\n okBtn,\n onOk,\n okBtnCaption,\n open,\n text,\n fullErrorText,\n showErrMoreCaption,\n hideErrMoreCaption\n}) => {\n //Состояние подробной информации об ошибке\n const [showFullErrorText, setShowFullErrorText] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подбор стиля и ресурсов\n let style = STYLES.INFO;\n switch (variant) {\n case P8P_APP_MESSAGE_VARIANT.INFO:\n {\n style = STYLES.INFO;\n break;\n }\n case P8P_APP_MESSAGE_VARIANT.WARN:\n {\n style = STYLES.WARN;\n break;\n }\n case P8P_APP_MESSAGE_VARIANT.ERR:\n {\n style = STYLES.ERR;\n break;\n }\n }\n\n //Заголовок\n let titlePart;\n if (title && titleText) titlePart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n style: {\n ...style.DEFAULT,\n ...style.titleText\n }\n }, titleText);\n\n //Кнопка Отмена\n let cancelBtnPart;\n if (cancelBtn && cancelBtnCaption && variant === P8P_APP_MESSAGE_VARIANT.WARN) cancelBtnPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onCancel ? onCancel() : null\n }, cancelBtnCaption);\n\n //Кнопка OK\n let okBtnPart;\n if (okBtn && okBtnCaption) okBtnPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onOk ? onOk() : null,\n autoFocus: true\n }, okBtnCaption);\n\n //Кнопка Подробнее\n let fullErrorTextBtn;\n if (fullErrorText && showErrMoreCaption && hideErrMoreCaption && variant === P8P_APP_MESSAGE_VARIANT.ERR) fullErrorTextBtn = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => setShowFullErrorText(!showFullErrorText),\n sx: STYLES.FULL_ERROR_TEXT_BUTTON,\n autoFocus: true\n }, !showFullErrorText ? showErrMoreCaption : hideErrMoreCaption);\n\n //Все действия\n let actionsPart;\n if (cancelBtnPart || okBtnPart) actionsPart = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, fullErrorTextBtn, okBtnPart, cancelBtnPart);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: open || false,\n onClose: () => onCancel ? onCancel() : null\n }, titlePart, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContentText__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n style: style.bodyText\n }, !showFullErrorText ? text : fullErrorText)), actionsPart);\n};\n\n//Контроль свойств - Сообщение\nP8PAppMessage.propTypes = {\n variant: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n titleText: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n cancelBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n okBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n open: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n text: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n fullErrorText: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n showErrMoreCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n hideErrMoreCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string)\n};\n\n//Встроенное сообщение\nconst P8PAppInlineMessage = ({\n variant,\n text,\n okBtn,\n onOk,\n okBtnCaption\n}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Container__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n style: STYLES.INLINE_MESSAGE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Box__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n color: variant === P8P_APP_MESSAGE_VARIANT.ERR ? _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.ERR].contrColor : variant === P8P_APP_MESSAGE_VARIANT.WARN ? _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.WARN].contrColor : _app_styles__WEBPACK_IMPORTED_MODULE_2__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_1__.STATE.INFO].contrColor\n }, text), okBtn && okBtnCaption ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Box__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n pt: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onOk ? onOk() : null,\n autoFocus: true\n }, okBtnCaption)) : null));\n};\n\n//Контроль свойств - Встроенное сообщение\nP8PAppInlineMessage.propTypes = {\n variant: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n text: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n okBtn: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string)\n};\n\n//Формирование типового сообщения\nconst buildVariantMessage = (props, variant) => {\n //Извлекаем необходимые свойства\n let {\n open,\n titleText\n } = props;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PAppMessage, _extends({}, props, {\n variant: variant,\n open: open === undefined ? true : open,\n title: titleText ? true : false,\n okBtn: true\n }));\n};\n\n//Формирование типового встроенного сообщения\nconst buildVariantInlineMessage = (props, variant) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PAppInlineMessage, _extends({}, props, {\n variant: variant\n }));\n};\n\n//Сообщение об ошибке\nconst P8PAppMessageErr = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.ERR);\n\n//Сообщение предупреждения\nconst P8PAppMessageWarn = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.WARN);\n\n//Сообщение информации\nconst P8PAppMessageInfo = props => buildVariantMessage(props, P8P_APP_MESSAGE_VARIANT.INFO);\n\n//Встраиваемое сообщение об ошибке\nconst P8PAppInlineError = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.ERR);\n\n//Встраиваемое cообщение предупреждения\nconst P8PAppInlineWarn = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.WARN);\n\n//Встраиваемое сообщение информации\nconst P8PAppInlineInfo = props => buildVariantInlineMessage(props, P8P_APP_MESSAGE_VARIANT.INFO);\n\n//Диалог подсказки\nconst P8PHintDialog = ({\n title,\n hint,\n onOk\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Dialog__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: true,\n onClose: e => onOk ? onOk(e) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogContent__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: hint\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_DialogActions__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material_Button__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: e => onOk ? onOk(e) : null\n }, _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.OK)));\n};\n\n//Контроль свойств - Диалог подсказки\nP8PHintDialog.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n hint: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_app_message.js?");
/***/ }),
@@ -214,7 +390,18 @@ 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 */ P8PChart: () => (/* binding */ P8PChart),\n/* harmony export */ P8P_CHART_TYPE: () => (/* binding */ P8P_CHART_TYPE)\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_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var chart_js_auto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js/auto */ \"./node_modules/chart.js/auto/auto.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 P8P_CHART_TYPE = {\n BAR: \"bar\",\n LINE: \"line\",\n PIE: \"pie\",\n DOUGHNUT: \"doughnut\"\n};\n\n//Структура элемента набора данных\nconst P8P_CHART_DATASET_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n label: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n borderColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n backgroundColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string))]),\n data: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().number)),\n items: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().object))\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//График\nconst P8PChart = ({\n type,\n title,\n legendPosition,\n options = {},\n labels = [],\n datasets = [],\n onClick,\n style\n}) => {\n //Ссылки на DOM\n const chartCanvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const chartRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Обработка нажатия на элемент графика\n const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => {\n const bar = chartRef.current.getElementsAtEventForMode(e, \"nearest\", {\n intersect: true\n }, true)[0];\n if (onClick && bar) onClick({\n datasetIndex: bar.datasetIndex,\n itemIndex: bar.index,\n item: chartRef.current.data.datasets[bar.datasetIndex].items ? chartRef.current.data.datasets[bar.datasetIndex].items[bar.index] : null\n });\n }, [onClick]);\n\n //При подключении к старнице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!chartRef.current) {\n const ctx = chartCanvasRef.current.getContext(\"2d\");\n chartRef.current = new chart_js_auto__WEBPACK_IMPORTED_MODULE_1__[\"default\"](ctx, {\n type,\n data: {\n labels: [...labels],\n datasets: [...datasets]\n },\n options: {\n ...options,\n ...{\n responsive: true,\n plugins: {\n legend: {\n display: legendPosition ? true : false,\n position: legendPosition\n },\n title: {\n display: title ? true : false,\n text: title\n }\n }\n },\n onClick: handleClick\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При обновлении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (chartRef.current) {\n chartRef.current.data.labels = [...labels];\n chartRef.current.data.datasets = [...datasets];\n chartRef.current.options.onClick = handleClick;\n chartRef.current.update();\n }\n }, [datasets, labels, handleClick]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...style\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"canvas\", {\n ref: chartCanvasRef\n }));\n};\n\n//Контроль свойств - График\nP8PChart.propTypes = {\n type: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n legendPosition: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n options: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n labels: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)),\n datasets: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_CHART_DATASET_SHAPE),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_chart.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PChart: () => (/* binding */ P8PChart),\n/* harmony export */ P8P_CHART_TYPE: () => (/* binding */ P8P_CHART_TYPE),\n/* harmony export */ useP8PChart: () => (/* reexport safe */ _p8p_chart_hooks__WEBPACK_IMPORTED_MODULE_2__.useP8PChart)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var chart_js_auto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js/auto */ \"./node_modules/chart.js/auto/auto.js\");\n/* harmony import */ var _p8p_chart_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_chart_hooks */ \"./app/components/p8p_chart_hooks.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//Виды графиков\nconst P8P_CHART_TYPE = {\n BAR: \"bar\",\n LINE: \"line\",\n PIE: \"pie\",\n DOUGHNUT: \"doughnut\"\n};\n\n//Структура элемента набора данных\nconst P8P_CHART_DATASET_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n borderColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string))]),\n backgroundColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string))]),\n data: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)),\n items: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().object))\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//График\nconst P8PChart = ({\n type,\n title,\n legendPosition,\n options = {},\n labels = [],\n datasets = [],\n onClick,\n style\n}) => {\n //Ссылки на DOM\n const chartCanvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const chartRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Обработка нажатия на элемент графика\n const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => {\n const bar = chartRef.current.getElementsAtEventForMode(e, \"nearest\", {\n intersect: true\n }, true)[0];\n if (onClick && bar) onClick({\n datasetIndex: bar.datasetIndex,\n itemIndex: bar.index,\n item: chartRef.current.data.datasets[bar.datasetIndex].items ? chartRef.current.data.datasets[bar.datasetIndex].items[bar.index] : null\n });\n }, [onClick]);\n\n //При подключении к старнице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!chartRef.current) {\n const ctx = chartCanvasRef.current.getContext(\"2d\");\n chartRef.current = new chart_js_auto__WEBPACK_IMPORTED_MODULE_1__[\"default\"](ctx, {\n type,\n data: {\n labels: [...labels],\n datasets: [...datasets]\n },\n options: {\n ...options,\n ...{\n responsive: true,\n plugins: {\n legend: {\n display: legendPosition ? true : false,\n position: legendPosition\n },\n title: {\n display: title ? true : false,\n text: title\n }\n }\n },\n onClick: handleClick\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При обновлении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (chartRef.current) {\n chartRef.current.data.labels = [...labels];\n chartRef.current.data.datasets = [...datasets];\n chartRef.current.options.onClick = handleClick;\n chartRef.current.update();\n }\n }, [datasets, labels, handleClick]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...style\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"canvas\", {\n ref: chartCanvasRef\n }));\n};\n\n//Контроль свойств - График\nP8PChart.propTypes = {\n type: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n legendPosition: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n options: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n labels: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)),\n datasets: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CHART_DATASET_SHAPE),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n style: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_chart.js?");
+
+/***/ }),
+
+/***/ "./app/components/p8p_chart_hooks.js":
+/*!*******************************************!*\
+ !*** ./app/components/p8p_chart_hooks.js ***!
+ \*******************************************/
+/***/ ((__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 */ useP8PChart: () => (/* binding */ useP8PChart)\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/*\r\n Парус 8 - Панели мониторинга\r\n Хуки для графиков\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n//---------\n//Константы\n//---------\n\n//Константы - значения по умолчанию\nconst RESP_ARG_DEF = \"COUT\"; //Имя параметра, содержащего информацию о графике\nconst CHART_NODE_NAME_DEF = \"XCHART\"; //Наименование узла, содержащего информацию о графике\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для P8PChart\nconst useP8PChart = ({\n stored,\n respArg = RESP_ARG_DEF,\n contentNodeName = CHART_NODE_NAME_DEF,\n storedArgs = {},\n executeStoredArgs = {},\n allowDataLoad = () => true\n}) => {\n //Собственное состояние - график\n const [chart, setChart] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n type: null,\n title: null,\n legendPosition: null,\n labels: [],\n datasets: []\n });\n\n //Собственное состояние - признак загрузки данных\n const [isDataLoaded, setIsDataLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - необходимость обновления данных\n const [reload, setReload] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - дополнительные агрументы\n const refStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(storedArgs);\n\n //Собственное состояние - дополнительные параметры вызова процедуры\n const refExecuteStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(executeStoredArgs);\n\n //Признак допустимости обновления данных\n const isAllowDataLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return allowDataLoad();\n }, [allowDataLoad]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n isRespErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Загрузка данных графика с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n respArg,\n args: {\n ...refStoredArgs.current\n },\n ...refExecuteStoredArgs.current\n });\n setChart(pv => ({\n ...pv,\n ...data[contentNodeName]\n }));\n //Устанавливаем признак загрузки данных с учетом возможных ошибок\n setIsDataLoaded(!isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setLoading(false);\n setReload(false);\n }\n }, [contentNodeName, executeStored, isRespErr, respArg, stored]);\n\n //При необходимости обновления графика\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setReload(true);\n }, []);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [isLoading]);\n\n //При изменение дополнительных параметров процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refStoredArgs.current, storedArgs)) {\n //Устанавливаем новые дополнительные параметры\n refStoredArgs.current = storedArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [storedArgs, isArgsChanged]);\n\n //При изменение дополнительных параметров вызова процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refExecuteStoredArgs.current, executeStoredArgs)) {\n //Устанавливаем новые дополнительные параметры\n refExecuteStoredArgs.current = executeStoredArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [executeStoredArgs, isArgsChanged]);\n\n //При необходимости обновить данные графика\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если необходимо перезагрузить данные и это допустимо\n if (isAllowDataLoad && reload) {\n loadData();\n }\n }, [isAllowDataLoad, reload, loadData]);\n\n //Возвращаем данные графика\n return {\n chart,\n isDataLoaded,\n isLoading,\n doReload\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_chart_hooks.js?");
/***/ }),
@@ -225,7 +412,18 @@ 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 */ P8PCyclogram: () => (/* binding */ P8PCyclogram)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.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/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __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//Уровни масштаба\nconst P8P_CYCLOGRAM_ZOOM = [0.2, 0.4, 0.7, 1, 1.5, 2, 2.5];\n\n//Параметры элементов циклограммы\nconst NDEFAULT_LINE_HEIGHT = 20;\nconst NDEFAULT_HEADER_HEIGHT = 35;\n\n//Высота заголовка\nconst TITLE_HEIGHT = \"44px\";\n\n//Высота панели масштабирования\nconst ZOOM_HEIGHT = \"56px\";\n\n//Стили\nconst STYLES = {\n CYCLOGRAM_TITLE: {\n height: TITLE_HEIGHT\n },\n CYCLOGRAM_ZOOM: {\n height: ZOOM_HEIGHT\n },\n HEADER_COLUMN: {\n fontSize: \"12px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"pre\",\n textAlign: \"center\",\n lineHeight: \"3\",\n padding: \"0px 5px\"\n },\n CYCLOGRAM_BOX: (noData, title, zoomBar) => ({\n position: \"relative\",\n overflow: \"auto\",\n padding: \"0px 8px\",\n height: `calc(100% - ${zoomBar ? ZOOM_HEIGHT : \"0px\"} - ${title ? TITLE_HEIGHT : \"0px\"})`,\n display: noData ? \"none\" : \"\"\n }),\n GRID_ROW: index => index % 2 === 0 ? {\n backgroundColor: \"#ffffff\"\n } : {\n backgroundColor: \"#f5f5f5\"\n },\n GROUP_HEADER_BOX: {\n border: \"1px solid\",\n backgroundColor: \"#ebebeb\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n GROUP_HEADER: {\n fontSize: \"14px\",\n textAlign: \"center\",\n wordWrap: \"break-word\"\n },\n TASK_EDITOR_CONTENT: {\n minWidth: 400,\n overflowX: \"auto\"\n },\n TASK_EDITOR_LIST: {\n width: \"100%\",\n minWidth: 300,\n maxWidth: 700,\n bgcolor: \"background.paper\"\n },\n TASK_BOX: (lineHeight, bgColor, textColor, highlightColor) => ({\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: bgColor ? bgColor : \"#b4b9bf\",\n ...(textColor ? {\n color: textColor\n } : {}),\n height: lineHeight,\n \"&:hover\": {\n ...(highlightColor ? {\n backgroundColor: `${highlightColor} !important`,\n filter: \"brightness(1) !important\"\n } : {\n filter: \"brightness(1.25) !important\"\n }),\n cursor: \"pointer !important\"\n }\n }),\n TASK: lineHeight => {\n const availableLines = Math.floor(lineHeight / 18);\n return {\n width: \"100%\",\n fontSize: \"12px\",\n overflowWrap: \"break-word\",\n wordBreak: \"break-all\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n lineHeight: \"18px\",\n maxHeight: lineHeight,\n WebkitLineClamp: availableLines < 1 ? 1 : availableLines,\n WebkitBoxOrient: \"vertical\"\n };\n }\n};\n\n//Структура колонки\nconst P8P_CYCLOGRAM_COLUMN_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired\n});\n\n//Структура группы\nconst P8P_CYCLOGRAM_GROUP_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n height: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n width: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired\n});\n\n//Структура задачи\nconst P8P_CYCLOGRAM_TASK_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n rn: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n fullName: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n lineNumb: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n group: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n highlightColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n\n//Структура динамического атрибута задачи\nconst P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired\n});\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Определение сдвига для максимальной ширины колонок\nconst getShift = (columns, currentColumnsMaxWidth, maxCyclogramWidth) => {\n //Определяем доступное пространство для расширения\n let maxWidthDiff = maxCyclogramWidth - currentColumnsMaxWidth;\n //Инициализируем значение сдвига\n let shift = 1;\n //Если доступно больше ширины и есть пространство для расширения\n if (maxCyclogramWidth > currentColumnsMaxWidth && maxCyclogramWidth - maxWidthDiff > columns.length) {\n //Определяем доступный сдвиг колонок\n shift = maxCyclogramWidth / currentColumnsMaxWidth;\n }\n //Возвращаем сдвиг\n return shift;\n};\n\n//Формирование стилей для группы\nconst getGroupStyles = (indexGrp, highlightColor) => {\n return `.main .TaskGrp${indexGrp}:hover .TaskGrp${indexGrp} {\n ${highlightColor ? `background: ${highlightColor};` : `filter: brightness(1.15);`}\n }\n .main:has(.TaskGrp${indexGrp}:hover) .TaskGrpHeader${indexGrp} {\n display: block;\n }\n `;\n //cursor: pointer;\n};\n\n//Фон строк таблицы\nconst P8PCyclogramRowsGrid = ({\n rows,\n maxWidth,\n lineHeight\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, rows.map((el, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: \"0\",\n y: NDEFAULT_HEADER_HEIGHT + index * lineHeight,\n width: maxWidth,\n height: lineHeight,\n key: index\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.GRID_ROW(index),\n height: lineHeight\n }))));\n};\n\n//Контроль свойств - Фон строк таблицы\nP8PCyclogramRowsGrid.propTypes = {\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired\n};\n\n//Линии строк таблицы\nconst P8PCyclogramRowsLines = ({\n rows,\n maxWidth,\n lineHeight\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, rows.map((el, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: \"0\",\n y1: NDEFAULT_HEADER_HEIGHT + lineHeight + index * lineHeight,\n x2: maxWidth,\n y2: NDEFAULT_HEADER_HEIGHT + lineHeight + index * lineHeight,\n key: index\n })));\n};\n\n//Контроль свойств - Линии строк таблицы\nP8PCyclogramRowsLines.propTypes = {\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired\n};\n\n//Линии колонок таблицы\nconst P8PCyclogramColumnsLines = ({\n columns,\n shift,\n y1,\n y2\n}) => {\n //Инициализируем старт текущей колонки\n let prevColumnEnd = 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, columns.map((column, index) => {\n //Аккумулируем окончание последней колонки с учетом сдвига\n prevColumnEnd = index !== 0 ? prevColumnEnd + (columns[index - 1].end - columns[index - 1].start) * shift : 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: prevColumnEnd,\n y1: y1,\n x2: prevColumnEnd,\n y2: y2,\n stroke: \"#e0e0e0\",\n key: index\n });\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: prevColumnEnd + (columns[columns.length - 1].end - columns[columns.length - 1].start) * shift,\n y1: y1,\n x2: prevColumnEnd + (columns[columns.length - 1].end - columns[columns.length - 1].start) * shift,\n y2: y2,\n stroke: \"#e0e0e0\"\n }));\n};\n\n//Контроль свойств - Линии колонок таблицы\nP8PCyclogramColumnsLines.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n y1: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n y2: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired\n};\n\n//Фон таблицы циклограммы\nconst P8PCyclogramGrid = ({\n tasks,\n columns,\n shift,\n maxWidth,\n maxHeight,\n lineHeight\n}) => {\n //Формируем массив строк исходя из максимального значения строки задачи\n const rows = Array.from(Array(Math.max(...tasks.map(o => o.lineNumb)) + 1).keys());\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"grid\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: maxWidth,\n height: maxHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramRowsGrid, {\n rows: rows,\n maxWidth: maxWidth,\n lineHeight: lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramRowsLines, {\n rows: rows,\n maxWidth: maxWidth,\n lineHeight: lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramColumnsLines, {\n columns: columns,\n shift: shift,\n y1: NDEFAULT_HEADER_HEIGHT,\n y2: maxHeight\n }));\n};\n\n//Контроль свойств - Фон таблицы циклограммы\nP8PCyclogramGrid.propTypes = {\n tasks: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired\n};\n\n//Колонка заголовка циклограммы\nconst P8PCyclogramHeaderColumn = ({\n column,\n start,\n shift,\n columnRenderer\n}) => {\n //Рассчитываем ширину колонки\n const columnWidth = column.end - column.start;\n //Формируем собственное отображение, если требуется\n const customView = columnRenderer ? columnRenderer({\n column\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: start,\n y: \"0\",\n width: columnWidth * shift,\n height: NDEFAULT_HEADER_HEIGHT\n }, customView ? customView : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: {\n ...STYLES.HEADER_COLUMN,\n height: NDEFAULT_HEADER_HEIGHT\n },\n title: column.name\n }, column.name)));\n};\n\n//Контроль свойств - Колонка заголовка циклограммы\nP8PCyclogramHeaderColumn.propTypes = {\n column: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lastElement: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Заголовок циклограммы\nconst P8PCyclogramHeader = ({\n columns,\n shift,\n maxWidth,\n maxHeight,\n columnRenderer,\n headerBlock\n}) => {\n //Инициализируем старт текущей колонки\n let prevColumnEnd = 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"header\",\n ref: headerBlock\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: maxWidth,\n height: NDEFAULT_HEADER_HEIGHT,\n fill: \"#ffffff\",\n stroke: \"#e0e0e0\",\n strokeWidth: \"1.4\"\n }), columns.map((column, index) => {\n //Аккумулируем окончание последней колонки с учетом сдвига\n prevColumnEnd = index !== 0 ? prevColumnEnd + (columns[index - 1].end - columns[index - 1].start) * shift : 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramHeaderColumn, {\n column: column,\n shift: shift,\n start: prevColumnEnd,\n maxHeight: maxHeight,\n lastElement: columns.length - 1 === index,\n columnRenderer: columnRenderer,\n key: index\n });\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"columnsDividers\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramColumnsLines, {\n columns: columns,\n shift: shift,\n y1: 0,\n y2: NDEFAULT_HEADER_HEIGHT\n })));\n};\n\n//Контроль свойств - Заголовок циклограммы\nP8PCyclogramHeader.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n headerBlock: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)\n};\n\n//Задача циклограммы\nconst P8PCyclogramTask = ({\n task,\n indexGrp,\n shift,\n lineHeight,\n openTaskEditor,\n taskRenderer\n}) => {\n //Рассчитываем ширину задачи\n const width = task.end !== 0 ? (task.end - task.start) * shift : 0;\n //Формируем собственное отображение, если требуется\n const customView = taskRenderer ? taskRenderer({\n task,\n taskHeight: lineHeight,\n taskWidth: width\n }) || {} : {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: task.start !== 0 ? task.start * shift : 0,\n y: NDEFAULT_HEADER_HEIGHT + task.lineNumb * lineHeight,\n width: width,\n height: lineHeight\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({\n className: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(indexGrp) ? `TaskGrp${indexGrp}` : null,\n sx: {\n ...STYLES.TASK_BOX(lineHeight, task.bgColor, task.textColor, task.highlightColor),\n ...customView.taskStyle\n }\n }, customView.taskProps, {\n onClick: () => openTaskEditor(task)\n }), customView.data ? customView.data : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TASK(lineHeight),\n title: task.name\n }, task.name)));\n};\n\n//Контроль свойств - Группы циклограммы\nP8PCyclogramTask.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n indexGrp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n openTaskEditor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Основная информация циклограммы\nconst P8PCyclogramMain = ({\n columns,\n groups,\n tasks,\n shift,\n lineHeight,\n maxWidth,\n maxHeight,\n openTaskEditor,\n groupHeaderRenderer,\n taskRenderer,\n columnRenderer,\n headerBlock\n}) => {\n //Инициализируем коллекцию тасков с группами\n const tasksWithGroup = tasks.filter(task => (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task.groupName));\n //Инициализируем коллекцию тасков без групп\n const tasksWithoutGroup = tasks.filter(task => !(0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task.groupName));\n //Инициализируем коллекцию отображаемых групп\n const visibleGroups = groups ? groups.filter(group => group.visible) : [];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"main\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"tasks\"\n }, visibleGroups.length !== 0 ? visibleGroups.map((grp, indexGrp) => {\n //Считываем задачи группы\n let groupTasks = tasksWithGroup.filter(task => task.groupName === grp.name);\n //Если по данной группе нет тасков - ничего не выводим\n if (groupTasks.length === 0) {\n return null;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: `TaskGrp${indexGrp}`,\n key: indexGrp\n }, groupTasks.map((task, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTask, {\n task: task,\n indexGrp: indexGrp,\n shift: shift,\n lineHeight: lineHeight,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n key: index\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"style\", null, getGroupStyles(indexGrp, grp.highlightColor)));\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: `TasksWithoutGroups`\n }, tasksWithoutGroup.map((task, index) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTask, {\n task: task,\n shift: shift,\n lineHeight: lineHeight,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n key: index\n });\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramHeader, {\n columns: columns,\n shift: shift,\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n columnRenderer: columnRenderer,\n headerBlock: headerBlock\n }), visibleGroups.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"groups\"\n }, visibleGroups.map((grp, indexGrp) => {\n //Инициализируем параметры группы\n let defaultView = null;\n let customView = null;\n let groupHeaderX = 0;\n let groupHeaderY = 0;\n let groupTasks = tasksWithGroup.filter(task => task.groupName === grp.name);\n //Если по данной группе нет тасков - ничего не выводим\n if (groupTasks.length === 0) {\n return null;\n }\n //Если требуется отображать заголовок группы\n if (grp.visible) {\n //Формируем отображение по умолчанию\n defaultView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: {\n ...STYLES.GROUP_HEADER_BOX,\n height: grp.height\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: {\n ...STYLES.GROUP_HEADER,\n maxWidth: grp.width,\n maxHeight: grp.height\n }\n }, grp.name));\n //Формируем собственное отображение, если требуется\n customView = groupHeaderRenderer ? groupHeaderRenderer({\n group: grp\n }) : null;\n //Рассчитываем координаты заголовка группы\n groupHeaderX = Math.min(...groupTasks.map(o => o.start)) * shift;\n groupHeaderY = NDEFAULT_HEADER_HEIGHT + Math.min(...groupTasks.map(o => o.lineNumb)) * lineHeight - grp.height - 5;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: groupHeaderX,\n y: groupHeaderY,\n width: grp.width,\n height: grp.height,\n className: `TaskGrpHeader${indexGrp}`,\n display: \"none\",\n key: indexGrp\n }, customView ? customView : defaultView);\n })) : null);\n};\n\n//Контроль свойств - Основная информация циклограммы\nP8PCyclogramMain.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n groups: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n tasks: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n openTaskEditor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n groupHeaderRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n headerBlock: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)\n};\n\n//Редактор задачи\nconst P8PCyclogramTaskEditor = ({\n task,\n taskAttributes,\n onOk,\n onCancel,\n taskAttributeRenderer,\n taskDialogRenderer,\n nameCaption,\n okBtnCaption,\n cancelBtnCaption\n}) => {\n //Собственное состояние\n const [state] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n start: task.start,\n end: task.end\n });\n\n //Отображаемые атрибуты\n const dispTaskAttributes = Array.isArray(taskAttributes) && taskAttributes.length > 0 ? taskAttributes.filter(attr => attr.visible && (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task[attr.name])) : [];\n\n //При сохранении\n const handleOk = () => onOk && state.start && state.end ? onOk() : null;\n\n //При отмене\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n open: true,\n onClose: handleCancel\n }, taskDialogRenderer ? taskDialogRenderer({\n task,\n taskAttributes,\n close: handleCancel\n }) : /*#__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_7__[\"default\"], {\n sx: STYLES.TASK_EDITOR_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.TASK_EDITOR_LIST\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n primary: nameCaption,\n secondary: task.fullName\n })), dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n component: \"li\"\n }) : null, dispTaskAttributes.length > 0 ? dispTaskAttributes.map((attr, i) => {\n const defaultView = task[attr.name];\n const customView = taskAttributeRenderer ? taskAttributeRenderer({\n task,\n attribute: attr\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n primary: attr.caption,\n secondaryTypographyProps: {\n component: \"span\"\n },\n secondary: customView ? customView : defaultView\n })), i < dispTaskAttributes.length - 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n component: \"li\"\n }) : null);\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleOk\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleCancel\n }, cancelBtnCaption))));\n};\n\n//Контроль свойств - Редактор задачи\nP8PCyclogramTaskEditor.propTypes = {\n task: P8P_CYCLOGRAM_TASK_SHAPE,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n nameCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n};\n\n//Циклограмма\nconst P8PCyclogram = ({\n containerStyle,\n lineHeight,\n title,\n titleStyle,\n onTitleClick,\n zoomBar,\n zoom,\n columns,\n columnRenderer,\n groups,\n groupHeaderRenderer,\n tasks,\n taskRenderer,\n taskAttributes,\n taskAttributeRenderer,\n taskDialogRenderer,\n noDataFoundText,\n nameTaskEditorCaption,\n okTaskEditorBtnCaption,\n cancelTaskEditorBtnCaption\n}) => {\n //Хук основного блока (для последующего определения доступной ширины)\n const mainBlock = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n //Хук для заголовка таблицы\n const headerBlock = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n noData: true,\n loaded: false,\n lineHeight: NDEFAULT_LINE_HEIGHT,\n maxWidth: 0,\n maxHeight: 0,\n shift: 0,\n zoom: P8P_CYCLOGRAM_ZOOM.includes(zoom) ? zoom : 1,\n tasks: [],\n editTask: null\n });\n\n //Обновление масштаба циклограммы\n const handleZoomChange = direction => {\n //Считываем текущий индекс\n const currentIndex = P8P_CYCLOGRAM_ZOOM.indexOf(state.zoom);\n setState(pv => ({\n ...pv,\n zoom: currentIndex + direction !== P8P_CYCLOGRAM_ZOOM.length && currentIndex + direction !== -1 ? P8P_CYCLOGRAM_ZOOM[currentIndex + direction] : pv.zoom\n }));\n };\n\n //Открытие редактора задачи\n const openTaskEditor = task => setState(pv => ({\n ...pv,\n editTask: {\n ...task\n }\n }));\n\n //При сохранении задачи в редакторе\n const handleTaskEditorSave = () => {\n setState(pv => ({\n ...pv,\n editTask: null\n }));\n };\n\n //При закрытии редактора задачи без сохранения\n const handleTaskEditorCancel = () => setState(pv => ({\n ...pv,\n editTask: null\n }));\n\n //При скролле блока\n const handleScroll = e => {\n //Изменяем позицию заголовка таблицы относительно скролла\n headerBlock.current.setAttribute(\"transform\", \"translate(0,\" + e.currentTarget.scrollTop + \")\");\n };\n\n //При изменении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если есть колонки и задачи\n if (Array.isArray(columns) && columns.length > 0 && Array.isArray(tasks) && tasks.length > 0) {\n //Определяем текущую максимальную ширину колонок\n let currentColumnsMaxWidth = Math.max(...columns.map(o => o.end));\n //Определяем доступный сдвиг для ширины колонок (16 - паддинг по бокам)\n let columnShift = getShift(columns, currentColumnsMaxWidth, mainBlock.current.offsetWidth - 16) * state.zoom;\n //Устанавливаем значения исходя из колонок/задач\n setState(pv => ({\n ...pv,\n loaded: true,\n lineHeight: lineHeight ? lineHeight : NDEFAULT_LINE_HEIGHT,\n maxWidth: columnShift !== 0 ? currentColumnsMaxWidth * columnShift : currentColumnsMaxWidth,\n maxHeight: NDEFAULT_HEADER_HEIGHT + (Math.max(...tasks.map(o => o.lineNumb)) + 1) * (lineHeight ? lineHeight : NDEFAULT_LINE_HEIGHT),\n shift: columnShift,\n tasks: tasks,\n noData: false\n }));\n } else {\n //Устанавливаем значения исходя из колонок/задач\n setState(pv => ({\n ...pv,\n noData: true\n }));\n }\n }, [columns, lineHeight, state.zoom, tasks]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: mainBlock,\n style: {\n ...(containerStyle ? containerStyle : {})\n }\n }, state.noData ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }) : null, state.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n p: 1,\n sx: {\n ...STYLES.CYCLOGRAM_TITLE,\n ...(titleStyle ? titleStyle : {})\n },\n align: \"center\",\n color: \"textSecondary\",\n variant: \"subtitle1\"\n }, onTitleClick ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onTitleClick()\n }, title) : title) : null, zoomBar ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n p: 1,\n sx: STYLES.CYCLOGRAM_ZOOM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n onClick: () => handleZoomChange(1),\n disabled: state.zoom == P8P_CYCLOGRAM_ZOOM[P8P_CYCLOGRAM_ZOOM.length - 1]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], null, \"zoom_in\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n onClick: () => handleZoomChange(-1),\n disabled: state.zoom == P8P_CYCLOGRAM_ZOOM[0]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], null, \"zoom_out\"))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"scroll\",\n sx: STYLES.CYCLOGRAM_BOX(state.noData, title, zoomBar),\n onScroll: handleScroll\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n id: \"cyclogram\",\n width: state.maxWidth,\n height: state.maxHeight\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramGrid, {\n tasks: state.tasks,\n columns: columns,\n shift: state.shift,\n maxWidth: state.maxWidth,\n maxHeight: state.maxHeight,\n lineHeight: state.lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramMain, {\n columns: columns,\n groups: groups,\n tasks: state.tasks,\n shift: state.shift,\n lineHeight: state.lineHeight,\n maxWidth: state.maxWidth,\n maxHeight: state.maxHeight,\n groupHeaderRenderer: groupHeaderRenderer,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n columnRenderer: columnRenderer,\n headerBlock: headerBlock\n })))) : null, state.editTask ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTaskEditor, {\n task: state.editTask,\n taskAttributes: taskAttributes,\n onOk: handleTaskEditorSave,\n onCancel: handleTaskEditorCancel,\n taskAttributeRenderer: taskAttributeRenderer,\n taskDialogRenderer: taskDialogRenderer,\n nameCaption: nameTaskEditorCaption,\n okBtnCaption: okTaskEditorBtnCaption,\n cancelBtnCaption: cancelTaskEditorBtnCaption\n }) : null));\n};\n\n//Контроль свойств - Циклограмма\nP8PCyclogram.propTypes = {\n containerStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n titleStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n onTitleClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n zoomBar: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n zoom: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n columns: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CYCLOGRAM_COLUMN_SHAPE).isRequired,\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n groups: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CYCLOGRAM_GROUP_SHAPE),\n groupHeaderRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n tasks: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CYCLOGRAM_TASK_SHAPE).isRequired,\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n nameTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_cyclogram.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PCyclogram: () => (/* binding */ P8PCyclogram),\n/* harmony export */ useP8PCyclogram: () => (/* reexport safe */ _p8p_cyclogram_hooks__WEBPACK_IMPORTED_MODULE_3__.useP8PCyclogram)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _p8p_cyclogram_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_cyclogram_hooks */ \"./app/components/p8p_cyclogram_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//Уровни масштаба\nconst P8P_CYCLOGRAM_ZOOM = [0.2, 0.4, 0.7, 1, 1.5, 2, 2.5];\n\n//Параметры элементов циклограммы\nconst NDEFAULT_LINE_HEIGHT = 20;\nconst NDEFAULT_HEADER_HEIGHT = 35;\n\n//Высота заголовка\nconst TITLE_HEIGHT = \"44px\";\n\n//Высота панели масштабирования\nconst ZOOM_HEIGHT = \"56px\";\n\n//Стили\nconst STYLES = {\n CYCLOGRAM_TITLE: {\n height: TITLE_HEIGHT\n },\n CYCLOGRAM_ZOOM: {\n height: ZOOM_HEIGHT\n },\n HEADER_COLUMN: {\n fontSize: \"12px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"pre\",\n textAlign: \"center\",\n lineHeight: \"3\",\n padding: \"0px 5px\"\n },\n CYCLOGRAM_BOX: (noData, title, zoomBar) => ({\n position: \"relative\",\n overflow: \"auto\",\n padding: \"0px 8px\",\n height: `calc(100% - ${zoomBar ? ZOOM_HEIGHT : \"0px\"} - ${title ? TITLE_HEIGHT : \"0px\"})`,\n display: noData ? \"none\" : \"\"\n }),\n GRID_ROW: index => index % 2 === 0 ? {\n backgroundColor: \"#ffffff\"\n } : {\n backgroundColor: \"#f5f5f5\"\n },\n GROUP_HEADER_BOX: {\n border: \"1px solid\",\n backgroundColor: \"#ebebeb\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n GROUP_HEADER: {\n fontSize: \"14px\",\n textAlign: \"center\",\n wordWrap: \"break-word\"\n },\n TASK_EDITOR_CONTENT: {\n minWidth: 400,\n overflowX: \"auto\"\n },\n TASK_EDITOR_LIST: {\n width: \"100%\",\n minWidth: 300,\n maxWidth: 700,\n bgcolor: \"background.paper\"\n },\n TASK_BOX: (lineHeight, bgColor, textColor, highlightColor) => ({\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: bgColor ? bgColor : \"#b4b9bf\",\n ...(textColor ? {\n color: textColor\n } : {}),\n height: lineHeight,\n \"&:hover\": {\n ...(highlightColor ? {\n backgroundColor: `${highlightColor} !important`,\n filter: \"brightness(1) !important\"\n } : {\n filter: \"brightness(1.25) !important\"\n }),\n cursor: \"pointer !important\"\n }\n }),\n TASK: lineHeight => {\n const availableLines = Math.floor(lineHeight / 18);\n return {\n width: \"100%\",\n fontSize: \"12px\",\n overflowWrap: \"break-word\",\n wordBreak: \"break-all\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n lineHeight: \"18px\",\n maxHeight: lineHeight,\n WebkitLineClamp: availableLines < 1 ? 1 : availableLines,\n WebkitBoxOrient: \"vertical\"\n };\n }\n};\n\n//Структура колонки\nconst P8P_CYCLOGRAM_COLUMN_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired\n});\n\n//Структура группы\nconst P8P_CYCLOGRAM_GROUP_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n height: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n width: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool).isRequired\n});\n\n//Структура задачи\nconst P8P_CYCLOGRAM_TASK_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n id: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n rn: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n name: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n fullName: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n lineNumb: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n group: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n highlightColor: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string)\n});\n\n//Структура динамического атрибута задачи\nconst P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool).isRequired\n});\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Определение сдвига для максимальной ширины колонок\nconst getShift = (columns, currentColumnsMaxWidth, maxCyclogramWidth) => {\n //Определяем доступное пространство для расширения\n let maxWidthDiff = maxCyclogramWidth - currentColumnsMaxWidth;\n //Инициализируем значение сдвига\n let shift = 1;\n //Если доступно больше ширины и есть пространство для расширения\n if (maxCyclogramWidth > currentColumnsMaxWidth && maxCyclogramWidth - maxWidthDiff > columns.length) {\n //Определяем доступный сдвиг колонок\n shift = maxCyclogramWidth / currentColumnsMaxWidth;\n }\n //Возвращаем сдвиг\n return shift;\n};\n\n//Формирование стилей для группы\nconst getGroupStyles = (indexGrp, highlightColor) => {\n return `.main .TaskGrp${indexGrp}:hover .TaskGrp${indexGrp} {\n ${highlightColor ? `background: ${highlightColor};` : `filter: brightness(1.15);`}\n }\n .main:has(.TaskGrp${indexGrp}:hover) .TaskGrpHeader${indexGrp} {\n display: block;\n }\n `;\n //cursor: pointer;\n};\n\n//Фон строк таблицы\nconst P8PCyclogramRowsGrid = ({\n rows,\n maxWidth,\n lineHeight\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, rows.map((el, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: \"0\",\n y: NDEFAULT_HEADER_HEIGHT + index * lineHeight,\n width: maxWidth,\n height: lineHeight,\n key: index\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.GRID_ROW(index),\n height: lineHeight\n }))));\n};\n\n//Контроль свойств - Фон строк таблицы\nP8PCyclogramRowsGrid.propTypes = {\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired\n};\n\n//Линии строк таблицы\nconst P8PCyclogramRowsLines = ({\n rows,\n maxWidth,\n lineHeight\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, rows.map((el, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: \"0\",\n y1: NDEFAULT_HEADER_HEIGHT + lineHeight + index * lineHeight,\n x2: maxWidth,\n y2: NDEFAULT_HEADER_HEIGHT + lineHeight + index * lineHeight,\n key: index\n })));\n};\n\n//Контроль свойств - Линии строк таблицы\nP8PCyclogramRowsLines.propTypes = {\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired\n};\n\n//Линии колонок таблицы\nconst P8PCyclogramColumnsLines = ({\n columns,\n shift,\n y1,\n y2\n}) => {\n //Инициализируем старт текущей колонки\n let prevColumnEnd = 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", null, columns.map((column, index) => {\n //Аккумулируем окончание последней колонки с учетом сдвига\n prevColumnEnd = index !== 0 ? prevColumnEnd + (columns[index - 1].end - columns[index - 1].start) * shift : 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: prevColumnEnd,\n y1: y1,\n x2: prevColumnEnd,\n y2: y2,\n stroke: \"#e0e0e0\",\n key: index\n });\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"line\", {\n x1: prevColumnEnd + (columns[columns.length - 1].end - columns[columns.length - 1].start) * shift,\n y1: y1,\n x2: prevColumnEnd + (columns[columns.length - 1].end - columns[columns.length - 1].start) * shift,\n y2: y2,\n stroke: \"#e0e0e0\"\n }));\n};\n\n//Контроль свойств - Линии колонок таблицы\nP8PCyclogramColumnsLines.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n y1: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n y2: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired\n};\n\n//Фон таблицы циклограммы\nconst P8PCyclogramGrid = ({\n tasks,\n columns,\n shift,\n maxWidth,\n maxHeight,\n lineHeight\n}) => {\n //Формируем массив строк исходя из максимального значения строки задачи\n const rows = Array.from(Array(Math.max(...tasks.map(o => o.lineNumb)) + 1).keys());\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"grid\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: maxWidth,\n height: maxHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramRowsGrid, {\n rows: rows,\n maxWidth: maxWidth,\n lineHeight: lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramRowsLines, {\n rows: rows,\n maxWidth: maxWidth,\n lineHeight: lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramColumnsLines, {\n columns: columns,\n shift: shift,\n y1: NDEFAULT_HEADER_HEIGHT,\n y2: maxHeight\n }));\n};\n\n//Контроль свойств - Фон таблицы циклограммы\nP8PCyclogramGrid.propTypes = {\n tasks: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired\n};\n\n//Колонка заголовка циклограммы\nconst P8PCyclogramHeaderColumn = ({\n column,\n start,\n shift,\n columnRenderer\n}) => {\n //Рассчитываем ширину колонки\n const columnWidth = column.end - column.start;\n //Формируем собственное отображение, если требуется\n const customView = columnRenderer ? columnRenderer({\n column\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: start,\n y: \"0\",\n width: columnWidth * shift,\n height: NDEFAULT_HEADER_HEIGHT\n }, customView ? customView : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n sx: {\n ...STYLES.HEADER_COLUMN,\n height: NDEFAULT_HEADER_HEIGHT\n },\n title: column.name\n }, column.name)));\n};\n\n//Контроль свойств - Колонка заголовка циклограммы\nP8PCyclogramHeaderColumn.propTypes = {\n column: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lastElement: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func)\n};\n\n//Заголовок циклограммы\nconst P8PCyclogramHeader = ({\n columns,\n shift,\n maxWidth,\n maxHeight,\n columnRenderer,\n headerBlock\n}) => {\n //Инициализируем старт текущей колонки\n let prevColumnEnd = 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"header\",\n ref: headerBlock\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: maxWidth,\n height: NDEFAULT_HEADER_HEIGHT,\n fill: \"#ffffff\",\n stroke: \"#e0e0e0\",\n strokeWidth: \"1.4\"\n }), columns.map((column, index) => {\n //Аккумулируем окончание последней колонки с учетом сдвига\n prevColumnEnd = index !== 0 ? prevColumnEnd + (columns[index - 1].end - columns[index - 1].start) * shift : 0;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramHeaderColumn, {\n column: column,\n shift: shift,\n start: prevColumnEnd,\n maxHeight: maxHeight,\n lastElement: columns.length - 1 === index,\n columnRenderer: columnRenderer,\n key: index\n });\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"columnsDividers\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramColumnsLines, {\n columns: columns,\n shift: shift,\n y1: 0,\n y2: NDEFAULT_HEADER_HEIGHT\n })));\n};\n\n//Контроль свойств - Заголовок циклограммы\nP8PCyclogramHeader.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n headerBlock: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object)\n};\n\n//Задача циклограммы\nconst P8PCyclogramTask = ({\n task,\n indexGrp,\n shift,\n lineHeight,\n openTaskEditor,\n taskRenderer\n}) => {\n //Рассчитываем ширину задачи\n const width = task.end !== 0 ? (task.end - task.start) * shift : 0;\n //Формируем собственное отображение, если требуется\n const customView = taskRenderer ? taskRenderer({\n task,\n taskHeight: lineHeight,\n taskWidth: width\n }) || {} : {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: task.start !== 0 ? task.start * shift : 0,\n y: NDEFAULT_HEADER_HEIGHT + task.lineNumb * lineHeight,\n width: width,\n height: lineHeight\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _extends({\n className: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(indexGrp) ? `TaskGrp${indexGrp}` : null,\n sx: {\n ...STYLES.TASK_BOX(lineHeight, task.bgColor, task.textColor, task.highlightColor),\n ...customView.taskStyle\n }\n }, customView.taskProps, {\n onClick: () => openTaskEditor(task)\n }), customView.data ? customView.data : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n sx: STYLES.TASK(lineHeight),\n title: task.name\n }, task.name)));\n};\n\n//Контроль свойств - Группы циклограммы\nP8PCyclogramTask.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object).isRequired,\n indexGrp: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n openTaskEditor: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func).isRequired,\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func)\n};\n\n//Основная информация циклограммы\nconst P8PCyclogramMain = ({\n columns,\n groups,\n tasks,\n shift,\n lineHeight,\n maxWidth,\n maxHeight,\n openTaskEditor,\n groupHeaderRenderer,\n taskRenderer,\n columnRenderer,\n headerBlock\n}) => {\n //Инициализируем коллекцию тасков с группами\n const tasksWithGroup = tasks.filter(task => (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task.groupName));\n //Инициализируем коллекцию тасков без групп\n const tasksWithoutGroup = tasks.filter(task => !(0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task.groupName));\n //Инициализируем коллекцию отображаемых групп\n const visibleGroups = groups ? groups.filter(group => group.visible) : [];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"main\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"tasks\"\n }, visibleGroups.length !== 0 ? visibleGroups.map((grp, indexGrp) => {\n //Считываем задачи группы\n let groupTasks = tasksWithGroup.filter(task => task.groupName === grp.name);\n //Если по данной группе нет тасков - ничего не выводим\n if (groupTasks.length === 0) {\n return null;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: `TaskGrp${indexGrp}`,\n key: indexGrp\n }, groupTasks.map((task, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTask, {\n task: task,\n indexGrp: indexGrp,\n shift: shift,\n lineHeight: lineHeight,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n key: index\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"style\", null, getGroupStyles(indexGrp, grp.highlightColor)));\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: `TasksWithoutGroups`\n }, tasksWithoutGroup.map((task, index) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTask, {\n task: task,\n shift: shift,\n lineHeight: lineHeight,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n key: index\n });\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramHeader, {\n columns: columns,\n shift: shift,\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n columnRenderer: columnRenderer,\n headerBlock: headerBlock\n }), visibleGroups.length !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n className: \"groups\"\n }, visibleGroups.map((grp, indexGrp) => {\n //Инициализируем параметры группы\n let defaultView = null;\n let customView = null;\n let groupHeaderX = 0;\n let groupHeaderY = 0;\n let groupTasks = tasksWithGroup.filter(task => task.groupName === grp.name);\n //Если по данной группе нет тасков - ничего не выводим\n if (groupTasks.length === 0) {\n return null;\n }\n //Если требуется отображать заголовок группы\n if (grp.visible) {\n //Формируем отображение по умолчанию\n defaultView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: {\n ...STYLES.GROUP_HEADER_BOX,\n height: grp.height\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n sx: {\n ...STYLES.GROUP_HEADER,\n maxWidth: grp.width,\n maxHeight: grp.height\n }\n }, grp.name));\n //Формируем собственное отображение, если требуется\n customView = groupHeaderRenderer ? groupHeaderRenderer({\n group: grp\n }) : null;\n //Рассчитываем координаты заголовка группы\n groupHeaderX = Math.min(...groupTasks.map(o => o.start)) * shift;\n groupHeaderY = NDEFAULT_HEADER_HEIGHT + Math.min(...groupTasks.map(o => o.lineNumb)) * lineHeight - grp.height - 5;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"foreignObject\", {\n x: groupHeaderX,\n y: groupHeaderY,\n width: grp.width,\n height: grp.height,\n className: `TaskGrpHeader${indexGrp}`,\n display: \"none\",\n key: indexGrp\n }, customView ? customView : defaultView);\n })) : null);\n};\n\n//Контроль свойств - Основная информация циклограммы\nP8PCyclogramMain.propTypes = {\n columns: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n groups: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array),\n tasks: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array).isRequired,\n shift: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxWidth: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n maxHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number).isRequired,\n openTaskEditor: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func).isRequired,\n groupHeaderRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n headerBlock: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object)\n};\n\n//Редактор задачи\nconst P8PCyclogramTaskEditor = ({\n task,\n taskAttributes,\n onOk,\n onCancel,\n taskAttributeRenderer,\n taskDialogRenderer,\n nameCaption,\n okBtnCaption,\n cancelBtnCaption\n}) => {\n //Собственное состояние\n const [state] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n start: task.start,\n end: task.end\n });\n\n //Отображаемые атрибуты\n const dispTaskAttributes = Array.isArray(taskAttributes) && taskAttributes.length > 0 ? taskAttributes.filter(attr => attr.visible && (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.hasValue)(task[attr.name])) : [];\n\n //При сохранении\n const handleOk = () => onOk && state.start && state.end ? onOk() : null;\n\n //При отмене\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n open: true,\n onClose: handleCancel\n }, taskDialogRenderer ? taskDialogRenderer({\n task,\n taskAttributes,\n close: handleCancel\n }) : /*#__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_8__[\"default\"], {\n sx: STYLES.TASK_EDITOR_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.TASK_EDITOR_LIST\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n primary: nameCaption,\n secondary: task.fullName\n })), dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"li\"\n }) : null, dispTaskAttributes.length > 0 ? dispTaskAttributes.map((attr, i) => {\n const defaultView = task[attr.name];\n const customView = taskAttributeRenderer ? taskAttributeRenderer({\n task,\n attribute: attr\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n primary: attr.caption,\n secondaryTypographyProps: {\n component: \"span\"\n },\n secondary: customView ? customView : defaultView\n })), i < dispTaskAttributes.length - 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"li\"\n }) : null);\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: handleOk\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: handleCancel\n }, cancelBtnCaption))));\n};\n\n//Контроль свойств - Редактор задачи\nP8PCyclogramTaskEditor.propTypes = {\n task: P8P_CYCLOGRAM_TASK_SHAPE,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n nameCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n};\n\n//Циклограмма\nconst P8PCyclogram = ({\n containerStyle,\n lineHeight,\n title,\n titleStyle,\n onTitleClick,\n zoomBar,\n zoom,\n columns,\n columnRenderer,\n groups,\n groupHeaderRenderer,\n tasks,\n taskRenderer,\n taskAttributes,\n taskAttributeRenderer,\n taskDialogRenderer,\n noDataFoundText,\n nameTaskEditorCaption,\n okTaskEditorBtnCaption,\n cancelTaskEditorBtnCaption\n}) => {\n //Хук основного блока (для последующего определения доступной ширины)\n const mainBlock = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n //Хук для заголовка таблицы\n const headerBlock = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n noData: true,\n loaded: false,\n lineHeight: NDEFAULT_LINE_HEIGHT,\n maxWidth: 0,\n maxHeight: 0,\n shift: 0,\n zoom: P8P_CYCLOGRAM_ZOOM.includes(zoom) ? zoom : 1,\n tasks: [],\n editTask: null\n });\n\n //Обновление масштаба циклограммы\n const handleZoomChange = direction => {\n //Считываем текущий индекс\n const currentIndex = P8P_CYCLOGRAM_ZOOM.indexOf(state.zoom);\n setState(pv => ({\n ...pv,\n zoom: currentIndex + direction !== P8P_CYCLOGRAM_ZOOM.length && currentIndex + direction !== -1 ? P8P_CYCLOGRAM_ZOOM[currentIndex + direction] : pv.zoom\n }));\n };\n\n //Открытие редактора задачи\n const openTaskEditor = task => setState(pv => ({\n ...pv,\n editTask: {\n ...task\n }\n }));\n\n //При сохранении задачи в редакторе\n const handleTaskEditorSave = () => {\n setState(pv => ({\n ...pv,\n editTask: null\n }));\n };\n\n //При закрытии редактора задачи без сохранения\n const handleTaskEditorCancel = () => setState(pv => ({\n ...pv,\n editTask: null\n }));\n\n //При скролле блока\n const handleScroll = e => {\n //Изменяем позицию заголовка таблицы относительно скролла\n headerBlock.current.setAttribute(\"transform\", \"translate(0,\" + e.currentTarget.scrollTop + \")\");\n };\n\n //При изменении данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если есть колонки и задачи\n if (Array.isArray(columns) && columns.length > 0 && Array.isArray(tasks) && tasks.length > 0) {\n //Определяем текущую максимальную ширину колонок\n let currentColumnsMaxWidth = Math.max(...columns.map(o => o.end));\n //Определяем доступный сдвиг для ширины колонок (16 - паддинг по бокам)\n let columnShift = getShift(columns, currentColumnsMaxWidth, mainBlock.current.offsetWidth - 16) * state.zoom;\n //Устанавливаем значения исходя из колонок/задач\n setState(pv => ({\n ...pv,\n loaded: true,\n lineHeight: lineHeight ? lineHeight : NDEFAULT_LINE_HEIGHT,\n maxWidth: columnShift !== 0 ? currentColumnsMaxWidth * columnShift : currentColumnsMaxWidth,\n maxHeight: NDEFAULT_HEADER_HEIGHT + (Math.max(...tasks.map(o => o.lineNumb)) + 1) * (lineHeight ? lineHeight : NDEFAULT_LINE_HEIGHT),\n shift: columnShift,\n tasks: tasks,\n noData: false\n }));\n } else {\n //Устанавливаем значения исходя из колонок/задач\n setState(pv => ({\n ...pv,\n noData: true\n }));\n }\n }, [columns, lineHeight, state.zoom, tasks]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: mainBlock,\n style: {\n ...(containerStyle ? containerStyle : {})\n }\n }, state.noData ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }) : null, state.loaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n p: 1,\n sx: {\n ...STYLES.CYCLOGRAM_TITLE,\n ...(titleStyle ? titleStyle : {})\n },\n align: \"center\",\n color: \"textSecondary\",\n variant: \"subtitle1\"\n }, onTitleClick ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onTitleClick()\n }, title) : title) : null, zoomBar ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n p: 1,\n sx: STYLES.CYCLOGRAM_ZOOM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n onClick: () => handleZoomChange(1),\n disabled: state.zoom == P8P_CYCLOGRAM_ZOOM[P8P_CYCLOGRAM_ZOOM.length - 1]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, \"zoom_in\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n onClick: () => handleZoomChange(-1),\n disabled: state.zoom == P8P_CYCLOGRAM_ZOOM[0]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, \"zoom_out\"))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"scroll\",\n sx: STYLES.CYCLOGRAM_BOX(state.noData, title, zoomBar),\n onScroll: handleScroll\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n id: \"cyclogram\",\n width: state.maxWidth,\n height: state.maxHeight\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramGrid, {\n tasks: state.tasks,\n columns: columns,\n shift: state.shift,\n maxWidth: state.maxWidth,\n maxHeight: state.maxHeight,\n lineHeight: state.lineHeight\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramMain, {\n columns: columns,\n groups: groups,\n tasks: state.tasks,\n shift: state.shift,\n lineHeight: state.lineHeight,\n maxWidth: state.maxWidth,\n maxHeight: state.maxHeight,\n groupHeaderRenderer: groupHeaderRenderer,\n openTaskEditor: openTaskEditor,\n taskRenderer: taskRenderer,\n columnRenderer: columnRenderer,\n headerBlock: headerBlock\n })))) : null, state.editTask ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PCyclogramTaskEditor, {\n task: state.editTask,\n taskAttributes: taskAttributes,\n onOk: handleTaskEditorSave,\n onCancel: handleTaskEditorCancel,\n taskAttributeRenderer: taskAttributeRenderer,\n taskDialogRenderer: taskDialogRenderer,\n nameCaption: nameTaskEditorCaption,\n okBtnCaption: okTaskEditorBtnCaption,\n cancelBtnCaption: cancelTaskEditorBtnCaption\n }) : null));\n};\n\n//Контроль свойств - Циклограмма\nP8PCyclogram.propTypes = {\n containerStyle: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n lineHeight: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n titleStyle: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n onTitleClick: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n zoomBar: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),\n zoom: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),\n columns: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(P8P_CYCLOGRAM_COLUMN_SHAPE).isRequired,\n columnRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n groups: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(P8P_CYCLOGRAM_GROUP_SHAPE),\n groupHeaderRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n tasks: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(P8P_CYCLOGRAM_TASK_SHAPE).isRequired,\n taskRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(P8P_CYCLOGRAM_TASK_ATTRIBUTE_SHAPE),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n nameTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n okTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n cancelTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_cyclogram.js?");
+
+/***/ }),
+
+/***/ "./app/components/p8p_cyclogram_hooks.js":
+/*!***********************************************!*\
+ !*** ./app/components/p8p_cyclogram_hooks.js ***!
+ \***********************************************/
+/***/ ((__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 */ useP8PCyclogram: () => (/* binding */ useP8PCyclogram)\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 RESP_ARG_DEF = \"COUT\"; //Имя параметра, содержащего информацию о циклограмме\nconst CG_NODE_NAME_DEF = \"XCYCLOGRAM\"; //Наименование узла, содержащего информацию о циклограмме\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для P8PCyclogram\nconst useP8PCyclogram = ({\n stored,\n respArg = RESP_ARG_DEF,\n contentNodeName = CG_NODE_NAME_DEF,\n storedArgs = {},\n executeStoredArgs = {},\n allowDataLoad = () => true\n}) => {\n //Собственное состояние - циклограмма\n const [cyclogram, setCyclogram] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n columns: [],\n groups: [],\n tasks: [],\n taskAttributes: [],\n title: null,\n lineHeight: 0,\n zoom: 1,\n zoomBar: true\n });\n\n //Собственное состояние - признак загрузки данных\n const [isDataLoaded, setIsDataLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - необходимость обновления данных\n const [reload, setReload] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - дополнительные агрументы\n const refStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(storedArgs);\n\n //Собственное состояние - дополнительные параметры вызова процедуры\n const refExecuteStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(executeStoredArgs);\n\n //Признак допустимости обновления данных\n const isAllowDataLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return allowDataLoad();\n }, [allowDataLoad]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n isRespErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Загрузка данных циклограммы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n args: {\n ...refStoredArgs.current\n },\n attributeValueProcessor: (name, val) => [\"ddate_start\", \"ddate_end\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(val) : val,\n respArg,\n ...refExecuteStoredArgs.current\n });\n setCyclogram(pv => ({\n ...pv,\n ...data[contentNodeName]\n }));\n //Устанавливаем признак загрузки данных с учетом возможных ошибок\n setIsDataLoaded(!isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setLoading(false);\n setReload(false);\n }\n }, [contentNodeName, executeStored, isRespErr, respArg, stored]);\n\n //При необходимости обновления циклограммы\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setReload(true);\n }, []);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [isLoading]);\n\n //При изменение дополнительных параметров процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refStoredArgs.current, storedArgs)) {\n //Устанавливаем новые дополнительные параметры\n refStoredArgs.current = storedArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [storedArgs, isArgsChanged]);\n\n //При изменение дополнительных параметров вызова процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refExecuteStoredArgs.current, executeStoredArgs)) {\n //Устанавливаем новые дополнительные параметры\n refExecuteStoredArgs.current = executeStoredArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [executeStoredArgs, isArgsChanged]);\n\n //При необходимости обновить данные циклограммы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (isAllowDataLoad && reload) {\n loadData();\n }\n }, [isAllowDataLoad, reload, loadData]);\n\n //Возвращаем данные циклограммы\n return {\n cyclogram,\n isDataLoaded,\n isLoading,\n doReload\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_cyclogram_hooks.js?");
/***/ }),
@@ -236,7 +434,18 @@ 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 */ P8PDataGrid: () => (/* binding */ P8PDataGrid),\n/* harmony export */ P8P_DATA_GRID_DATA_TYPE: () => (/* binding */ P8P_DATA_GRID_DATA_TYPE),\n/* harmony export */ P8P_DATA_GRID_FILTERS_HEIGHT: () => (/* binding */ P8P_DATA_GRID_FILTERS_HEIGHT),\n/* harmony export */ P8P_DATA_GRID_FILTER_SHAPE: () => (/* binding */ P8P_DATA_GRID_FILTER_SHAPE),\n/* harmony export */ P8P_DATA_GRID_MORE_HEIGHT: () => (/* binding */ P8P_DATA_GRID_MORE_HEIGHT),\n/* harmony export */ P8P_DATA_GRID_SIZE: () => (/* binding */ P8P_DATA_GRID_SIZE)\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_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _p8p_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_table */ \"./app/components/p8p_table.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 P8P_DATA_GRID_SIZE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_SIZE;\n\n//Типы данных\nconst P8P_DATA_GRID_DATA_TYPE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_DATA_TYPE;\n\n//Формат фильтра\nconst P8P_DATA_GRID_FILTER_SHAPE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_FILTER_SHAPE;\n\n//Высота кнопки догрузки данных\nconst P8P_DATA_GRID_MORE_HEIGHT = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_MORE_HEIGHT;\n\n//Высота фильтров таблицы\nconst P8P_DATA_GRID_FILTERS_HEIGHT = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_FILTERS_HEIGHT;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица данных\nconst P8PDataGrid = ({\n style = {},\n tableStyle = {},\n columnsDef = [],\n filtersInitial,\n groups = [],\n rows = [],\n size,\n fixedHeader = false,\n fixedColumns = 0,\n morePages = false,\n reloading = false,\n expandable,\n orderAscMenuItemCaption,\n orderDescMenuItemCaption,\n filterMenuItemCaption,\n valueFilterCaption,\n valueFromFilterCaption,\n valueToFilterCaption,\n okFilterBtnCaption,\n clearFilterBtnCaption,\n cancelFilterBtnCaption,\n morePagesBtnCaption,\n morePagesBtnProps,\n noDataFoundText,\n headCellRender,\n dataCellRender,\n groupCellRender,\n rowExpandRender,\n valueFormatter,\n containerComponent,\n containerComponentProps,\n onOrderChanged,\n onFilterChanged,\n onPagesCountChanged,\n objectsCopier\n}) => {\n //Собственное состояние - сортировки\n const [orders, setOrders] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - фильтры\n const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(filtersInitial || []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n columnName,\n direction\n }) => {\n let newOrders = objectsCopier(orders);\n const curOrder = newOrders.find(o => o.name == columnName);\n if (direction == null && curOrder) newOrders.splice(newOrders.indexOf(curOrder), 1);\n if (direction != null && !curOrder) newOrders.push({\n name: columnName,\n direction\n });\n if (direction != null && curOrder) curOrder.direction = direction;\n setOrders(newOrders);\n if (onOrderChanged) onOrderChanged({\n orders: newOrders\n });\n };\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n columnName,\n from,\n to\n }) => {\n let newFilters = objectsCopier(filters);\n let curFilter = newFilters.find(f => f.name == columnName);\n if (from == null && to == null && curFilter) newFilters.splice(newFilters.indexOf(curFilter), 1);\n if ((from != null || to != null) && !curFilter) newFilters.push({\n name: columnName,\n from,\n to\n });\n if ((from != null || to != null) && curFilter) {\n curFilter.from = from;\n curFilter.to = to;\n }\n setFilters(newFilters);\n if (onFilterChanged) onFilterChanged({\n filters: newFilters\n });\n };\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => {\n if (onPagesCountChanged) onPagesCountChanged();\n };\n\n //При изменении списка установленных извне фильтров\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setFilters(filtersInitial || []);\n }, [filtersInitial]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8PTable, {\n style: style,\n tableStyle: tableStyle,\n columnsDef: columnsDef,\n groups: groups,\n rows: rows,\n orders: orders,\n filters: filters,\n size: size || P8P_DATA_GRID_SIZE.MEDIUM,\n fixedHeader: fixedHeader,\n fixedColumns: fixedColumns,\n morePages: morePages,\n reloading: reloading,\n expandable: expandable,\n orderAscMenuItemCaption: orderAscMenuItemCaption,\n orderDescMenuItemCaption: orderDescMenuItemCaption,\n filterMenuItemCaption: filterMenuItemCaption,\n valueFilterCaption: valueFilterCaption,\n valueFromFilterCaption: valueFromFilterCaption,\n valueToFilterCaption: valueToFilterCaption,\n okFilterBtnCaption: okFilterBtnCaption,\n clearFilterBtnCaption: clearFilterBtnCaption,\n cancelFilterBtnCaption: cancelFilterBtnCaption,\n morePagesBtnCaption: morePagesBtnCaption,\n noDataFoundText: noDataFoundText,\n headCellRender: headCellRender,\n dataCellRender: dataCellRender,\n groupCellRender: groupCellRender,\n rowExpandRender: rowExpandRender,\n valueFormatter: valueFormatter,\n objectsCopier: objectsCopier,\n containerComponent: containerComponent,\n containerComponentProps: containerComponentProps,\n morePagesBtnProps: morePagesBtnProps,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged\n });\n};\n\n//Контроль свойств - Таблица данных\nP8PDataGrid.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n tableStyle: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n columnsDef: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array),\n filtersInitial: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_DATA_GRID_FILTER_SHAPE),\n groups: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array),\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array),\n size: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n fixedHeader: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n fixedColumns: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),\n morePages: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n reloading: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n orderAscMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n orderDescMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n filterMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n valueFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n valueFromFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n valueToFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n okFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n clearFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n cancelFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n morePagesBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n morePagesBtnProps: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n headCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n dataCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n groupCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n rowExpandRender: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n containerComponent: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().elementType), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)]),\n containerComponentProps: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n onOrderChanged: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onFilterChanged: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onPagesCountChanged: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n objectsCopier: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_data_grid.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PDataGrid: () => (/* binding */ P8PDataGrid),\n/* harmony export */ P8P_DATA_GRID_DATA_TYPE: () => (/* binding */ P8P_DATA_GRID_DATA_TYPE),\n/* harmony export */ P8P_DATA_GRID_FILTERS_HEIGHT: () => (/* binding */ P8P_DATA_GRID_FILTERS_HEIGHT),\n/* harmony export */ P8P_DATA_GRID_FILTER_SHAPE: () => (/* binding */ P8P_DATA_GRID_FILTER_SHAPE),\n/* harmony export */ P8P_DATA_GRID_MORE_HEIGHT: () => (/* binding */ P8P_DATA_GRID_MORE_HEIGHT),\n/* harmony export */ P8P_DATA_GRID_PAGINATOR_ALIGN: () => (/* binding */ P8P_DATA_GRID_PAGINATOR_ALIGN),\n/* harmony export */ P8P_DATA_GRID_PAGINATOR_POSITION: () => (/* binding */ P8P_DATA_GRID_PAGINATOR_POSITION),\n/* harmony export */ P8P_DATA_GRID_SIZE: () => (/* binding */ P8P_DATA_GRID_SIZE),\n/* harmony export */ useP8PDataGrid: () => (/* reexport safe */ _p8p_data_grid_hooks__WEBPACK_IMPORTED_MODULE_2__.useP8PDataGrid)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _p8p_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_table */ \"./app/components/p8p_table.js\");\n/* harmony import */ var _p8p_data_grid_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_data_grid_hooks */ \"./app/components/p8p_data_grid_hooks.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//Размеры отступов\nconst P8P_DATA_GRID_SIZE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_SIZE;\n\n//Типы данных\nconst P8P_DATA_GRID_DATA_TYPE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_DATA_TYPE;\n\n//Формат фильтра\nconst P8P_DATA_GRID_FILTER_SHAPE = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_FILTER_SHAPE;\n\n//Высота кнопки догрузки данных\nconst P8P_DATA_GRID_MORE_HEIGHT = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_MORE_HEIGHT;\n\n//Высота фильтров таблицы\nconst P8P_DATA_GRID_FILTERS_HEIGHT = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_FILTERS_HEIGHT;\n\n//Размещение области страниц по вертикали\nconst P8P_DATA_GRID_PAGINATOR_ALIGN = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_PAGINATOR_ALIGN;\n\n//Размещение области страниц по горизонтали\nconst P8P_DATA_GRID_PAGINATOR_POSITION = _p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8P_TABLE_PAGINATOR_POSITION;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица данных\nconst P8PDataGrid = ({\n style = {},\n tableStyle = {},\n columnsDef = [],\n filtersInitial,\n groups = [],\n rows = [],\n size,\n pageNumber = 1,\n pagesCount = 0,\n pagesAlign = P8P_DATA_GRID_PAGINATOR_ALIGN.RIGHT,\n pagesPosition = P8P_DATA_GRID_PAGINATOR_POSITION.BOTTOM,\n fixedHeader = false,\n fixedColumns = 0,\n morePages = false,\n reloading = false,\n expandable,\n orderAscMenuItemCaption,\n orderDescMenuItemCaption,\n filterMenuItemCaption,\n valueFilterCaption,\n valueFromFilterCaption,\n valueToFilterCaption,\n okFilterBtnCaption,\n clearFilterBtnCaption,\n cancelFilterBtnCaption,\n morePagesBtnCaption,\n morePagesBtnProps,\n noDataFoundText,\n headCellRender,\n dataCellRender,\n groupCellRender,\n rowExpandRender,\n valueFormatter,\n containerComponent,\n containerComponentProps,\n onOrderChanged,\n onFilterChanged,\n onPagesCountChanged,\n onPageChanged,\n objectsCopier\n}) => {\n //Собственное состояние - сортировки\n const [orders, setOrders] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - фильтры\n const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(filtersInitial || []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n columnName,\n direction\n }) => {\n let newOrders = objectsCopier(orders);\n const curOrder = newOrders.find(o => o.name == columnName);\n if (direction == null && curOrder) newOrders.splice(newOrders.indexOf(curOrder), 1);\n if (direction != null && !curOrder) newOrders.push({\n name: columnName,\n direction\n });\n if (direction != null && curOrder) curOrder.direction = direction;\n setOrders(newOrders);\n if (onOrderChanged) onOrderChanged({\n orders: newOrders\n });\n };\n\n //При изменении состояния фильтра\n const handleFilterChanged = ({\n columnName,\n from,\n to\n }) => {\n let newFilters = objectsCopier(filters);\n let curFilter = newFilters.find(f => f.name == columnName);\n if (from == null && to == null && curFilter) newFilters.splice(newFilters.indexOf(curFilter), 1);\n if ((from != null || to != null) && !curFilter) newFilters.push({\n name: columnName,\n from,\n to\n });\n if ((from != null || to != null) && curFilter) {\n curFilter.from = from;\n curFilter.to = to;\n }\n setFilters(newFilters);\n if (onFilterChanged) onFilterChanged({\n filters: newFilters\n });\n };\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => {\n if (onPagesCountChanged) onPagesCountChanged();\n };\n\n //При изменении номера страницы\n const handlePageChange = ({\n page\n }) => onPageChanged && onPageChanged({\n page\n });\n\n //При изменении списка установленных извне фильтров\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setFilters(filtersInitial || []);\n }, [filtersInitial]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_table__WEBPACK_IMPORTED_MODULE_1__.P8PTable, {\n style: style,\n tableStyle: tableStyle,\n columnsDef: columnsDef,\n groups: groups,\n rows: rows,\n orders: orders,\n filters: filters,\n size: size || P8P_DATA_GRID_SIZE.MEDIUM,\n pageNumber: pageNumber,\n pagesCount: pagesCount,\n pagesAlign: pagesAlign,\n pagesPosition: pagesPosition,\n fixedHeader: fixedHeader,\n fixedColumns: fixedColumns,\n morePages: morePages,\n reloading: reloading,\n expandable: expandable,\n orderAscMenuItemCaption: orderAscMenuItemCaption,\n orderDescMenuItemCaption: orderDescMenuItemCaption,\n filterMenuItemCaption: filterMenuItemCaption,\n valueFilterCaption: valueFilterCaption,\n valueFromFilterCaption: valueFromFilterCaption,\n valueToFilterCaption: valueToFilterCaption,\n okFilterBtnCaption: okFilterBtnCaption,\n clearFilterBtnCaption: clearFilterBtnCaption,\n cancelFilterBtnCaption: cancelFilterBtnCaption,\n morePagesBtnCaption: morePagesBtnCaption,\n noDataFoundText: noDataFoundText,\n headCellRender: headCellRender,\n dataCellRender: dataCellRender,\n groupCellRender: groupCellRender,\n rowExpandRender: rowExpandRender,\n valueFormatter: valueFormatter,\n objectsCopier: objectsCopier,\n containerComponent: containerComponent,\n containerComponentProps: containerComponentProps,\n morePagesBtnProps: morePagesBtnProps,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n onPagesCountChanged: handlePagesCountChanged,\n onPageChanged: handlePageChange\n });\n};\n\n//Контроль свойств - Таблица данных\nP8PDataGrid.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n tableStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n columnsDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n filtersInitial: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_DATA_GRID_FILTER_SHAPE),\n groups: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n size: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n pageNumber: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n pagesCount: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n pagesAlign: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n pagesPosition: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n fixedHeader: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n fixedColumns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n morePages: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n reloading: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n orderAscMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n orderDescMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n filterMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFromFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n clearFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n headCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n dataCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n groupCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n rowExpandRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n containerComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)]),\n containerComponentProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n onOrderChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onFilterChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onPagesCountChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onPageChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n objectsCopier: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_data_grid.js?");
+
+/***/ }),
+
+/***/ "./app/components/p8p_data_grid_hooks.js":
+/*!***********************************************!*\
+ !*** ./app/components/p8p_data_grid_hooks.js ***!
+ \***********************************************/
+/***/ ((__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 */ useP8PDataGrid: () => (/* binding */ useP8PDataGrid)\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 DG_PAGE_SIZE_DEF = 10; //Размер страницы\nconst DG_NODE_NAME_DEF = \"XDATA_GRID\"; //Наименование узла, содержащего информацию о таблице\nconst FILTERS_NODE_NAME_DEF = \"filters\"; //Наименование узла отборов\nconst ORDERS_NODE_NAME_DEF = \"orders\"; //Наименование узла сортировок\nconst RESP_ARG_DEF = \"COUT\"; //Имя параметра, содержащего информацию о таблице\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для P8PDataGrid\nconst useP8PDataGrid = ({\n stored,\n respArg = RESP_ARG_DEF,\n contentNodeName = DG_NODE_NAME_DEF,\n filtersNodeName = FILTERS_NODE_NAME_DEF,\n ordersNodeName = ORDERS_NODE_NAME_DEF,\n pageSize = DG_PAGE_SIZE_DEF,\n reloadDef = false,\n initFilters = [],\n initOrders = [],\n storedArgs = {},\n executeStoredArgs = {},\n allowDataLoad = () => true\n}) => {\n //Собственное состояние - таблица данных\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n columnsDef: [],\n groups: [],\n rows: [],\n filters: Array.isArray(initFilters) ? [...initFilters] : [],\n orders: Array.isArray(initOrders) ? [...initOrders] : [],\n pageNumber: 1,\n pagesAlign: null,\n pagesPosition: null,\n pagesCount: 0,\n fixedColumns: 0,\n fixedHeader: false,\n morePages: true\n });\n\n //Собственное состояние - признак загрузки данных\n const [isDataLoaded, setIsDataLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - необходимость обновления данных\n const [reload, setReload] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - дополнительные параметры процедуры\n const refStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(storedArgs);\n\n //Собственное состояние - дополнительные параметры вызова процедуры\n const refExecuteStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(executeStoredArgs);\n\n //Признак допустимости обновления данных\n const isAllowDataLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return allowDataLoad();\n }, [allowDataLoad]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB,\n isRespErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(dataGrid.filters, {\n arrayNodeName: filtersNodeName\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: ordersNodeName\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: dataGrid.pageNumber,\n NPAGE_SIZE: pageSize,\n NINCLUDE_DEF: reloadDef ? 1 : dataGrid.dataLoaded ? 0 : 1,\n ...refStoredArgs.current\n },\n respArg,\n ...refExecuteStoredArgs.current\n });\n setDataGrid(pv => ({\n ...pv,\n ...data[contentNodeName],\n columnsDef: data[contentNodeName].columnsDef ? [...data[contentNodeName].columnsDef] : pv.columnsDef || [],\n rows: data[contentNodeName].pagesCount > 0 || pv.pageNumber == 1 ? [...(data[contentNodeName].rows || [])] : [...(pv.rows || []), ...(data[contentNodeName].rows || [])],\n groups: data[contentNodeName].groups ? data[contentNodeName].pagesCount > 0 || pv.pageNumber == 1 ? [...(data[contentNodeName].groups || [])] : [...(pv.groups || []), ...data[contentNodeName].groups.filter(g => !pv.groups.find(pg => pg.name == g.name))] : [...(pv.groups || [])],\n morePages: data[contentNodeName].morePages && (data[contentNodeName].rows || []).length >= pageSize\n }));\n //Устанавливаем признак загрузки данных с учетом возможных ошибок\n setIsDataLoaded(!isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setLoading(false);\n setReload(false);\n }\n }, [SERV_DATA_TYPE_CLOB, contentNodeName, dataGrid.dataLoaded, dataGrid.filters, dataGrid.orders, dataGrid.pageNumber, executeStored, filtersNodeName, isRespErr, ordersNodeName, pageSize, reloadDef, respArg, stored]);\n\n //При изменении состояния фильтра\n const handleFilterChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n filters\n }) => {\n setDataGrid(pv => ({\n ...pv,\n filters: [...filters],\n pageNumber: 1\n }));\n setReload(true);\n }, []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n orders\n }) => {\n setDataGrid(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1\n }));\n setReload(true);\n }, []);\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setDataGrid(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1\n }));\n setReload(true);\n }, []);\n\n //При изменении страницы отображения\n const handlePageChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n page\n }) => {\n setDataGrid(pv => ({\n ...pv,\n pageNumber: page\n }));\n setReload(true);\n }, []);\n\n //При необходимости обновления таблицы\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n returnOnFirstPage = false\n }) => {\n //Если это не страничный вывод или установлен признак возврата на первую страницу\n if (dataGrid.pagesCount <= 0 || returnOnFirstPage) {\n setDataGrid(pv => ({\n ...pv,\n pageNumber: 1\n }));\n }\n setReload(true);\n }, [dataGrid.pagesCount]);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [isLoading]);\n\n //При изменение дополнительных параметров процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refStoredArgs.current, storedArgs)) {\n //Устанавливаем новые дополнительные параметры\n refStoredArgs.current = storedArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [storedArgs, isArgsChanged]);\n\n //При изменение дополнительных параметров вызова процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refExecuteStoredArgs.current, executeStoredArgs)) {\n //Устанавливаем новые дополнительные параметры\n refExecuteStoredArgs.current = executeStoredArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [executeStoredArgs, isArgsChanged]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (isAllowDataLoad && reload) {\n loadData();\n }\n }, [isAllowDataLoad, reload, loadData]);\n\n //Возвращаем данные таблицы\n return {\n dataGrid,\n isDataLoaded,\n isLoading,\n handleFilterChanged,\n handleOrderChanged,\n handlePagesCountChanged,\n handlePageChange,\n doReload\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_data_grid_hooks.js?");
/***/ }),
@@ -269,7 +478,18 @@ 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 */ P8PGantt: () => (/* binding */ P8PGantt),\n/* harmony export */ P8P_GANTT_TASK_ATTRIBUTE_SHAPE: () => (/* binding */ P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n/* harmony export */ P8P_GANTT_TASK_COLOR_SHAPE: () => (/* binding */ P8P_GANTT_TASK_COLOR_SHAPE),\n/* harmony export */ P8P_GANTT_TASK_SHAPE: () => (/* binding */ P8P_GANTT_TASK_SHAPE),\n/* harmony export */ taskLegendDesc: () => (/* binding */ taskLegendDesc)\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_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.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/Slider/Slider.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 _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.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//Уровни масштаба\nconst P8P_GANTT_ZOOM = [0, 1, 2, 3, 4, 5];\n\n//Уровни масштаба (строковые наименования в терминах библиотеки)\nconst P8P_GANTT_ZOOM_VIEW_MODES = {\n 0: \"Quarter Day\",\n 1: \"Half Day\",\n 2: \"Day\",\n 3: \"Week\",\n 4: \"Month\",\n 5: \"Year\"\n};\n\n//Структура задачи\nconst P8P_GANTT_TASK_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n id: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n rn: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number).isRequired,\n numb: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n name: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n fullName: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n progress: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),\n dependencies: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().array),\n readOnly: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n readOnlyDates: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n readOnlyProgress: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n bgProgressColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)\n});\n\n//Структура динамического атрибута задачи\nconst P8P_GANTT_TASK_ATTRIBUTE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool).isRequired\n});\n\n//Структура описания цвета задачи\nconst P8P_GANTT_TASK_COLOR_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n bgProgressColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n desc: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired\n});\n\n//Высота заголовка\nconst TITLE_HEIGHT = \"44px\";\n\n//Высота панели масштабирования\nconst ZOOM_HEIGHT = \"56px\";\n\n//Стили\nconst STYLES = {\n TASK_EDITOR_CONTENT: {\n minWidth: 400,\n overflowX: \"auto\"\n },\n TASK_EDITOR_LIST: {\n width: \"100%\",\n minWidth: 300,\n maxWidth: 700,\n bgcolor: \"background.paper\"\n },\n GANTT_TITLE: {\n height: TITLE_HEIGHT\n },\n GANTT_ZOOM: {\n height: ZOOM_HEIGHT\n },\n GANTT: (noData, title, zoomBar) => ({\n height: `calc(100% - ${zoomBar ? ZOOM_HEIGHT : \"0px\"} - ${title ? TITLE_HEIGHT : \"0px\"})`,\n display: noData ? \"none\" : \"\"\n })\n};\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Проверка существования значения\nconst hasValue = value => typeof value !== \"undefined\" && value !== null && value !== \"\";\n\n//Формирование описания для легенды\nconst taskLegendDesc = ({\n task,\n taskColors\n}) => {\n if (Array.isArray(taskColors) && taskColors.length > 0) {\n const colorDesc = taskColors.find(color => task.bgColor === color.bgColor && task.textColor === color.textColor && task.bgProgressColor === color.bgProgressColor);\n if (colorDesc) return {\n text: colorDesc.desc,\n style: {\n ...(colorDesc.bgProgressColor ? {\n background: `linear-gradient(to right, ${colorDesc.bgProgressColor} ,${colorDesc.bgColor ? colorDesc.bgColor : \"transparent\"})`\n } : colorDesc.bgColor ? {\n backgroundColor: colorDesc.bgColor\n } : {}),\n ...(colorDesc.textColor ? {\n color: colorDesc.textColor\n } : {})\n }\n };else return null;\n } else return null;\n};\n\n//Редактор задачи\nconst P8PGanttTaskEditor = ({\n task,\n taskAttributes,\n taskColors,\n onOk,\n onCancel,\n taskAttributeRenderer,\n taskDialogRenderer,\n taskDialogProps,\n numbCaption,\n nameCaption,\n startCaption,\n endCaption,\n progressCaption,\n legendCaption,\n okBtnCaption,\n cancelBtnCaption\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n start: task.start,\n end: task.end,\n progress: task.progress\n });\n\n //Отображаемые атрибуты\n const dispTaskAttributes = Array.isArray(taskAttributes) && taskAttributes.length > 0 ? taskAttributes.filter(attr => attr.visible && hasValue(task[attr.name])) : [];\n\n //При сохранении\n const handleOk = () => onOk && state.start && state.end ? onOk({\n task,\n start: state.start,\n end: state.end,\n progress: state.progress\n }) : null;\n\n //При отмене\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //При изменении сроков\n const handlePeriodChanged = e => setState(prev => ({\n ...prev,\n [e.target.name]: e.target.value\n }));\n\n //При изменении прогресса\n const handleProgressChanged = (e, newValue) => setState(prev => ({\n ...prev,\n progress: newValue\n }));\n\n //Описание легенды для задачи\n const legendDesc = taskLegendDesc({\n task,\n taskColors\n });\n let legend = legendDesc ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n secondaryTypographyProps: {\n p: 1,\n sx: legendDesc.style\n },\n primary: legendCaption,\n secondary: legendDesc.text\n }) : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({\n open: true,\n onClose: handleCancel\n }, taskDialogProps ? taskDialogProps : {}), taskDialogRenderer ? taskDialogRenderer({\n task,\n taskAttributes,\n taskColors,\n close: handleCancel\n }) : /*#__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_5__[\"default\"], {\n sx: STYLES.TASK_EDITOR_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n sx: STYLES.TASK_EDITOR_LIST\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n primary: numbCaption,\n secondary: task.numb\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n primary: nameCaption,\n secondary: task.fullName\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: startCaption,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n error: !state.start,\n disabled: task.readOnly === true || task.readOnlyDates === true,\n name: \"start\",\n fullWidth: true,\n required: true,\n InputLabelProps: {\n shrink: true\n },\n type: \"date\",\n value: state.start,\n onChange: handlePeriodChanged,\n variant: \"standard\",\n size: \"small\",\n margin: \"normal\"\n })\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: endCaption,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n error: !state.end,\n disabled: task.readOnly === true || task.readOnlyDates === true,\n name: \"end\",\n fullWidth: true,\n required: true,\n InputLabelProps: {\n shrink: true\n },\n type: \"date\",\n value: state.end,\n onChange: handlePeriodChanged,\n variant: \"standard\",\n size: \"small\",\n margin: \"normal\"\n })\n })), hasValue(task.progress) || legend || dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }) : null, hasValue(task.progress) ? /*#__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_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: `${progressCaption}${task.readOnly === true || task.readOnlyProgress === true ? ` (${task.progress}%)` : \"\"}`,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n disabled: task.readOnly === true || task.readOnlyProgress === true,\n defaultValue: task.progress,\n valueLabelDisplay: \"auto\",\n onChange: handleProgressChanged\n })\n })), legend || dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }) : null) : null, legend ? /*#__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_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, legend), dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }) : null) : null, dispTaskAttributes.length > 0 ? dispTaskAttributes.map((attr, i) => {\n const defaultView = task[attr.name];\n const customView = taskAttributeRenderer ? taskAttributeRenderer({\n task,\n attribute: attr\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n primary: attr.caption,\n secondaryTypographyProps: {\n component: \"span\"\n },\n secondary: customView ? customView : defaultView\n })), i < dispTaskAttributes.length - 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"li\"\n }) : null);\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n disabled: !state.start || !state.end || task.readOnly,\n onClick: handleOk\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n onClick: handleCancel\n }, cancelBtnCaption))));\n};\n\n//Контроль свойств - Редактор задачи\nP8PGanttTaskEditor.propTypes = {\n task: P8P_GANTT_TASK_SHAPE,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n taskColors: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_GANTT_TASK_COLOR_SHAPE),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskDialogProps: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n numbCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n nameCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n startCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n endCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n progressCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n legendCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Диаграмма Ганта\nconst P8PGantt = ({\n containerStyle,\n title,\n titleStyle,\n onTitleClick,\n zoomBar,\n readOnly,\n readOnlyDates,\n readOnlyProgress,\n zoom,\n tasks,\n taskAttributes,\n taskColors,\n onTaskDatesChange,\n onTaskProgressChange,\n taskAttributeRenderer,\n taskDialogRenderer,\n taskDialogProps,\n noDataFoundText,\n numbTaskEditorCaption,\n nameTaskEditorCaption,\n startTaskEditorCaption,\n endTaskEditorCaption,\n progressTaskEditorCaption,\n legendTaskEditorCaption,\n okTaskEditorBtnCaption,\n cancelTaskEditorBtnCaption\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n noData: true,\n gantt: null,\n zoom: P8P_GANTT_ZOOM.includes(zoom) ? zoom : 3,\n editTask: null\n });\n\n //Ссылки на DOM\n const svgContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Отображение диаграммы\n const showGantt = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n if (!state.gantt) {\n // eslint-disable-next-line no-undef\n const gantt = new Gantt(\"#__gantt__\", tasks, {\n view_mode: P8P_GANTT_ZOOM_VIEW_MODES[state.zoom],\n date_format: \"YYYY-MM-DD\",\n language: \"ru\",\n readOnly,\n readOnlyDates,\n readOnlyProgress,\n on_date_change: (task, start, end, isMain) => onTaskDatesChange ? onTaskDatesChange({\n task,\n start,\n end,\n isMain\n }) : null,\n on_progress_change: (task, progress) => onTaskProgressChange ? onTaskProgressChange({\n task,\n progress\n }) : null,\n on_click: openTaskEditor\n });\n setState(pv => ({\n ...pv,\n gantt,\n noData: false\n }));\n } else {\n state.gantt.refresh(tasks);\n setState(pv => ({\n ...pv,\n noData: false\n }));\n }\n }, [state.gantt, state.zoom, readOnly, readOnlyDates, readOnlyProgress, tasks, onTaskDatesChange, onTaskProgressChange]);\n\n //Обновление масштаба диаграммы\n const handleZoomChange = direction => setState(pv => ({\n ...pv,\n zoom: pv.zoom + direction < 0 ? 0 : pv.zoom + direction >= P8P_GANTT_ZOOM.length ? P8P_GANTT_ZOOM.length - 1 : pv.zoom + direction\n }));\n\n //Открытие редактора задачи\n const openTaskEditor = task => setState(pv => ({\n ...pv,\n editTask: {\n ...task\n }\n }));\n\n //При сохранении задачи в редакторе\n const handleTaskEditorSave = ({\n task,\n start,\n end,\n progress\n }) => {\n setState(pv => ({\n ...pv,\n editTask: null\n }));\n if (onTaskDatesChange && (task.start != start || task.end != end)) onTaskDatesChange({\n task,\n start,\n end,\n isMain: true\n });\n if (onTaskProgressChange && task.progress != progress) onTaskProgressChange({\n task,\n progress\n });\n };\n\n //При закрытии редактора задачи без сохранения\n const handleTaskEditorCancel = () => setState(pv => ({\n ...pv,\n editTask: null\n }));\n\n //При изменении масштаба\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (state.gantt) state.gantt.change_view_mode(P8P_GANTT_ZOOM_VIEW_MODES[state.zoom]);\n }, [state.gantt, state.zoom]);\n\n //При изменении списка задач\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (Array.isArray(tasks) && tasks.length > 0) showGantt();else setState(pv => ({\n ...pv,\n noData: true\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tasks]);\n\n //При подключении компонента к старице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n svgContainerRef.current.children[0].classList.add(\"scroll\");\n }, []);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...(containerStyle ? containerStyle : {})\n }\n }, state.gantt && state.noData ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }) : null, state.gantt && !state.noData && title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n p: 1,\n sx: {\n ...STYLES.GANTT_TITLE,\n ...(titleStyle ? titleStyle : {})\n },\n align: \"center\",\n color: \"textSecondary\",\n variant: \"subtitle1\"\n }, onTitleClick ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onTitleClick()\n }, title) : title) : null, state.gantt && !state.noData && zoomBar ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n p: 1,\n sx: STYLES.GANTT_ZOOM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n onClick: () => handleZoomChange(-1),\n disabled: state.zoom == 0\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, \"zoom_in\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n onClick: () => handleZoomChange(1),\n disabled: state.zoom == P8P_GANTT_ZOOM.length - 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, \"zoom_out\"))) : null, state.editTask ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PGanttTaskEditor, {\n task: state.editTask,\n taskAttributes: taskAttributes,\n taskColors: taskColors,\n onOk: handleTaskEditorSave,\n onCancel: handleTaskEditorCancel,\n taskAttributeRenderer: taskAttributeRenderer,\n taskDialogRenderer: taskDialogRenderer,\n taskDialogProps: taskDialogProps,\n numbCaption: numbTaskEditorCaption,\n nameCaption: nameTaskEditorCaption,\n startCaption: startTaskEditorCaption,\n endCaption: endTaskEditorCaption,\n progressCaption: progressTaskEditorCaption,\n legendCaption: legendTaskEditorCaption,\n okBtnCaption: okTaskEditorBtnCaption,\n cancelBtnCaption: cancelTaskEditorBtnCaption\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.GANTT(state.noData, title, zoomBar),\n ref: svgContainerRef\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n id: \"__gantt__\",\n width: \"100%\"\n })));\n};\n\n//Контроль свойств - Диаграмма Ганта\nP8PGantt.propTypes = {\n containerStyle: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n titleStyle: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n onTitleClick: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n zoomBar: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n readOnly: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n readOnlyDates: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n readOnlyProgress: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n zoom: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),\n tasks: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_GANTT_TASK_SHAPE).isRequired,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n taskColors: prop_types__WEBPACK_IMPORTED_MODULE_2___default().arrayOf(P8P_GANTT_TASK_COLOR_SHAPE),\n onTaskDatesChange: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n onTaskProgressChange: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n taskDialogProps: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n numbTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n nameTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n startTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n endTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n progressTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n legendTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n okTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,\n cancelTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_gantt.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PGantt: () => (/* binding */ P8PGantt),\n/* harmony export */ P8P_GANTT_TASK_ATTRIBUTE_SHAPE: () => (/* binding */ P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n/* harmony export */ P8P_GANTT_TASK_COLOR_SHAPE: () => (/* binding */ P8P_GANTT_TASK_COLOR_SHAPE),\n/* harmony export */ P8P_GANTT_TASK_SHAPE: () => (/* binding */ P8P_GANTT_TASK_SHAPE),\n/* harmony export */ taskLegendDesc: () => (/* binding */ taskLegendDesc),\n/* harmony export */ useP8PGantt: () => (/* reexport safe */ _p8p_gantt_hooks__WEBPACK_IMPORTED_MODULE_2__.useP8PGantt)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Slider/Slider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.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 _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _p8p_gantt_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_gantt_hooks */ \"./app/components/p8p_gantt_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//Уровни масштаба\nconst P8P_GANTT_ZOOM = [0, 1, 2, 3, 4, 5];\n\n//Уровни масштаба (строковые наименования в терминах библиотеки)\nconst P8P_GANTT_ZOOM_VIEW_MODES = {\n 0: \"Quarter Day\",\n 1: \"Half Day\",\n 2: \"Day\",\n 3: \"Week\",\n 4: \"Month\",\n 5: \"Year\"\n};\n\n//Структура задачи\nconst P8P_GANTT_TASK_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n rn: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,\n numb: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n fullName: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n start: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n end: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n progress: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n dependencies: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n readOnly: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n readOnlyDates: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n readOnlyProgress: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n bgProgressColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n\n//Структура динамического атрибута задачи\nconst P8P_GANTT_TASK_ATTRIBUTE_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired\n});\n\n//Структура описания цвета задачи\nconst P8P_GANTT_TASK_COLOR_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n bgColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n textColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n bgProgressColor: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n desc: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n});\n\n//Высота заголовка\nconst TITLE_HEIGHT = \"44px\";\n\n//Высота панели масштабирования\nconst ZOOM_HEIGHT = \"56px\";\n\n//Стили\nconst STYLES = {\n TASK_EDITOR_CONTENT: {\n minWidth: 400,\n overflowX: \"auto\"\n },\n TASK_EDITOR_LIST: {\n width: \"100%\",\n minWidth: 300,\n maxWidth: 700,\n bgcolor: \"background.paper\"\n },\n GANTT_TITLE: {\n height: TITLE_HEIGHT\n },\n GANTT_ZOOM: {\n height: ZOOM_HEIGHT\n },\n GANTT: (noData, title, zoomBar) => ({\n height: `calc(100% - ${zoomBar ? ZOOM_HEIGHT : \"0px\"} - ${title ? TITLE_HEIGHT : \"0px\"})`,\n display: noData ? \"none\" : \"\"\n })\n};\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Проверка существования значения\nconst hasValue = value => typeof value !== \"undefined\" && value !== null && value !== \"\";\n\n//Формирование описания для легенды\nconst taskLegendDesc = ({\n task,\n taskColors\n}) => {\n if (Array.isArray(taskColors) && taskColors.length > 0) {\n const colorDesc = taskColors.find(color => task.bgColor === color.bgColor && task.textColor === color.textColor && task.bgProgressColor === color.bgProgressColor);\n if (colorDesc) return {\n text: colorDesc.desc,\n style: {\n ...(colorDesc.bgProgressColor ? {\n background: `linear-gradient(to right, ${colorDesc.bgProgressColor} ,${colorDesc.bgColor ? colorDesc.bgColor : \"transparent\"})`\n } : colorDesc.bgColor ? {\n backgroundColor: colorDesc.bgColor\n } : {}),\n ...(colorDesc.textColor ? {\n color: colorDesc.textColor\n } : {})\n }\n };else return null;\n } else return null;\n};\n\n//Редактор задачи\nconst P8PGanttTaskEditor = ({\n task,\n taskAttributes,\n taskColors,\n onOk,\n onCancel,\n taskAttributeRenderer,\n taskDialogRenderer,\n taskDialogProps,\n numbCaption,\n nameCaption,\n startCaption,\n endCaption,\n progressCaption,\n legendCaption,\n okBtnCaption,\n cancelBtnCaption\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n start: task.start,\n end: task.end,\n progress: task.progress\n });\n\n //Отображаемые атрибуты\n const dispTaskAttributes = Array.isArray(taskAttributes) && taskAttributes.length > 0 ? taskAttributes.filter(attr => attr.visible && hasValue(task[attr.name])) : [];\n\n //При сохранении\n const handleOk = () => onOk && state.start && state.end ? onOk({\n task,\n start: state.start,\n end: state.end,\n progress: state.progress\n }) : null;\n\n //При отмене\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //При изменении сроков\n const handlePeriodChanged = e => setState(prev => ({\n ...prev,\n [e.target.name]: e.target.value\n }));\n\n //При изменении прогресса\n const handleProgressChanged = (e, newValue) => setState(prev => ({\n ...prev,\n progress: newValue\n }));\n\n //Описание легенды для задачи\n const legendDesc = taskLegendDesc({\n task,\n taskColors\n });\n let legend = legendDesc ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n secondaryTypographyProps: {\n p: 1,\n sx: legendDesc.style\n },\n primary: legendCaption,\n secondary: legendDesc.text\n }) : null;\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _extends({\n open: true,\n onClose: handleCancel\n }, taskDialogProps ? taskDialogProps : {}), taskDialogRenderer ? taskDialogRenderer({\n task,\n taskAttributes,\n taskColors,\n close: handleCancel\n }) : /*#__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_6__[\"default\"], {\n sx: STYLES.TASK_EDITOR_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n sx: STYLES.TASK_EDITOR_LIST\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n primary: numbCaption,\n secondary: task.numb\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n primary: nameCaption,\n secondary: task.fullName\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: startCaption,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n error: !state.start,\n disabled: task.readOnly === true || task.readOnlyDates === true,\n name: \"start\",\n fullWidth: true,\n required: true,\n InputLabelProps: {\n shrink: true\n },\n type: \"date\",\n value: state.start,\n onChange: handlePeriodChanged,\n variant: \"standard\",\n size: \"small\",\n margin: \"normal\"\n })\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: endCaption,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n error: !state.end,\n disabled: task.readOnly === true || task.readOnlyDates === true,\n name: \"end\",\n fullWidth: true,\n required: true,\n InputLabelProps: {\n shrink: true\n },\n type: \"date\",\n value: state.end,\n onChange: handlePeriodChanged,\n variant: \"standard\",\n size: \"small\",\n margin: \"normal\"\n })\n })), hasValue(task.progress) || legend || dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }) : null, hasValue(task.progress) ? /*#__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_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n secondaryTypographyProps: {\n component: \"span\"\n },\n primary: `${progressCaption}${task.readOnly === true || task.readOnlyProgress === true ? ` (${task.progress}%)` : \"\"}`,\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n disabled: task.readOnly === true || task.readOnlyProgress === true,\n defaultValue: task.progress,\n valueLabelDisplay: \"auto\",\n onChange: handleProgressChanged\n })\n })), legend || dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }) : null) : null, legend ? /*#__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_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, legend), dispTaskAttributes.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }) : null) : null, dispTaskAttributes.length > 0 ? dispTaskAttributes.map((attr, i) => {\n const defaultView = task[attr.name];\n const customView = taskAttributeRenderer ? taskAttributeRenderer({\n task,\n attribute: attr\n }) : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n alignItems: \"flex-start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n primary: attr.caption,\n secondaryTypographyProps: {\n component: \"span\"\n },\n secondary: customView ? customView : defaultView\n })), i < dispTaskAttributes.length - 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n component: \"li\"\n }) : null);\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n disabled: !state.start || !state.end || task.readOnly,\n onClick: handleOk\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handleCancel\n }, cancelBtnCaption))));\n};\n\n//Контроль свойств - Редактор задачи\nP8PGanttTaskEditor.propTypes = {\n task: P8P_GANTT_TASK_SHAPE,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n taskColors: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_GANTT_TASK_COLOR_SHAPE),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n numbCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n nameCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n startCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n endCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n progressCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n legendCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Диаграмма Ганта\nconst P8PGantt = ({\n containerStyle,\n title,\n titleStyle,\n onTitleClick,\n zoomBar,\n readOnly,\n readOnlyDates,\n readOnlyProgress,\n zoom,\n tasks,\n taskAttributes,\n taskColors,\n onTaskDatesChange,\n onTaskProgressChange,\n taskAttributeRenderer,\n taskDialogRenderer,\n taskDialogProps,\n noDataFoundText,\n numbTaskEditorCaption,\n nameTaskEditorCaption,\n startTaskEditorCaption,\n endTaskEditorCaption,\n progressTaskEditorCaption,\n legendTaskEditorCaption,\n okTaskEditorBtnCaption,\n cancelTaskEditorBtnCaption\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n noData: true,\n gantt: null,\n zoom: P8P_GANTT_ZOOM.includes(zoom) ? zoom : 3,\n editTask: null\n });\n\n //Ссылки на DOM\n const svgContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n //Отображение диаграммы\n const showGantt = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n if (!state.gantt) {\n // eslint-disable-next-line no-undef\n const gantt = new Gantt(\"#__gantt__\", tasks, {\n view_mode: P8P_GANTT_ZOOM_VIEW_MODES[state.zoom],\n date_format: \"YYYY-MM-DD\",\n language: \"ru\",\n readOnly,\n readOnlyDates,\n readOnlyProgress,\n on_date_change: (task, start, end, isMain) => onTaskDatesChange ? onTaskDatesChange({\n task,\n start,\n end,\n isMain\n }) : null,\n on_progress_change: (task, progress) => onTaskProgressChange ? onTaskProgressChange({\n task,\n progress\n }) : null,\n on_click: openTaskEditor\n });\n setState(pv => ({\n ...pv,\n gantt,\n noData: false\n }));\n } else {\n state.gantt.refresh(tasks);\n setState(pv => ({\n ...pv,\n noData: false\n }));\n }\n }, [state.gantt, state.zoom, readOnly, readOnlyDates, readOnlyProgress, tasks, onTaskDatesChange, onTaskProgressChange]);\n\n //Обновление масштаба диаграммы\n const handleZoomChange = direction => setState(pv => ({\n ...pv,\n zoom: pv.zoom + direction < 0 ? 0 : pv.zoom + direction >= P8P_GANTT_ZOOM.length ? P8P_GANTT_ZOOM.length - 1 : pv.zoom + direction\n }));\n\n //Открытие редактора задачи\n const openTaskEditor = task => setState(pv => ({\n ...pv,\n editTask: {\n ...task\n }\n }));\n\n //При сохранении задачи в редакторе\n const handleTaskEditorSave = ({\n task,\n start,\n end,\n progress\n }) => {\n setState(pv => ({\n ...pv,\n editTask: null\n }));\n if (onTaskDatesChange && (task.start != start || task.end != end)) onTaskDatesChange({\n task,\n start,\n end,\n isMain: true\n });\n if (onTaskProgressChange && task.progress != progress) onTaskProgressChange({\n task,\n progress\n });\n };\n\n //При закрытии редактора задачи без сохранения\n const handleTaskEditorCancel = () => setState(pv => ({\n ...pv,\n editTask: null\n }));\n\n //При изменении масштаба\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (state.gantt) state.gantt.change_view_mode(P8P_GANTT_ZOOM_VIEW_MODES[state.zoom]);\n }, [state.gantt, state.zoom]);\n\n //При изменении списка задач\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (Array.isArray(tasks) && tasks.length > 0) showGantt();else setState(pv => ({\n ...pv,\n noData: true\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tasks]);\n\n //При подключении компонента к старице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n svgContainerRef.current.children[0].classList.add(\"scroll\");\n }, []);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...(containerStyle ? containerStyle : {})\n }\n }, state.gantt && state.noData ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }) : null, state.gantt && !state.noData && title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n p: 1,\n sx: {\n ...STYLES.GANTT_TITLE,\n ...(titleStyle ? titleStyle : {})\n },\n align: \"center\",\n color: \"textSecondary\",\n variant: \"subtitle1\"\n }, onTitleClick ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n underline: \"hover\",\n onClick: () => onTitleClick()\n }, title) : title) : null, state.gantt && !state.noData && zoomBar ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n p: 1,\n sx: STYLES.GANTT_ZOOM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n onClick: () => handleZoomChange(-1),\n disabled: state.zoom == 0\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, \"zoom_in\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n onClick: () => handleZoomChange(1),\n disabled: state.zoom == P8P_GANTT_ZOOM.length - 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, \"zoom_out\"))) : null, state.editTask ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PGanttTaskEditor, {\n task: state.editTask,\n taskAttributes: taskAttributes,\n taskColors: taskColors,\n onOk: handleTaskEditorSave,\n onCancel: handleTaskEditorCancel,\n taskAttributeRenderer: taskAttributeRenderer,\n taskDialogRenderer: taskDialogRenderer,\n taskDialogProps: taskDialogProps,\n numbCaption: numbTaskEditorCaption,\n nameCaption: nameTaskEditorCaption,\n startCaption: startTaskEditorCaption,\n endCaption: endTaskEditorCaption,\n progressCaption: progressTaskEditorCaption,\n legendCaption: legendTaskEditorCaption,\n okBtnCaption: okTaskEditorBtnCaption,\n cancelBtnCaption: cancelTaskEditorBtnCaption\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.GANTT(state.noData, title, zoomBar),\n ref: svgContainerRef\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n id: \"__gantt__\",\n width: \"100%\"\n })));\n};\n\n//Контроль свойств - Диаграмма Ганта\nP8PGantt.propTypes = {\n containerStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n titleStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n onTitleClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n zoomBar: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n readOnly: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n readOnlyDates: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n readOnlyProgress: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n zoom: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n tasks: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_GANTT_TASK_SHAPE).isRequired,\n taskAttributes: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_GANTT_TASK_ATTRIBUTE_SHAPE),\n taskColors: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_GANTT_TASK_COLOR_SHAPE),\n onTaskDatesChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onTaskProgressChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskAttributeRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogRenderer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n taskDialogProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n numbTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n nameTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n startTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n endTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n progressTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n legendTaskEditorCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelTaskEditorBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_gantt.js?");
+
+/***/ }),
+
+/***/ "./app/components/p8p_gantt_hooks.js":
+/*!*******************************************!*\
+ !*** ./app/components/p8p_gantt_hooks.js ***!
+ \*******************************************/
+/***/ ((__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 */ useP8PGantt: () => (/* binding */ useP8PGantt)\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 RESP_ARG_DEF = \"COUT\"; //Имя параметра, содержащего информацию о диаграмме ганта\nconst GANTT_NODE_NAME_DEF = \"XGANTT\"; //Наименование узла, содержащего информацию о диаграмме ганта\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для P8PGantt\nconst useP8PGantt = ({\n stored,\n respArg = RESP_ARG_DEF,\n contentNodeName = GANTT_NODE_NAME_DEF,\n storedArgs = {},\n executeStoredArgs = {},\n allowDataLoad = () => true\n}) => {\n //Собственное состояние - диаграмма ганта\n const [gantt, setGantt] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n title: null,\n zoom: null,\n zoomBar: null,\n readOnly: false,\n readOnlyDates: false,\n readOnlyProgress: false,\n taskAttributes: [],\n tasks: [],\n taskColors: []\n });\n\n //Собственное состояние - признак загрузки данных\n const [isDataLoaded, setIsDataLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - необходимость обновления данных\n const [reload, setReload] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - дополнительные агрументы\n const refStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(storedArgs);\n\n //Собственное состояние - дополнительные параметры вызова процедуры\n const refExecuteStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(executeStoredArgs);\n\n //Признак допустимости обновления данных\n const isAllowDataLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return allowDataLoad();\n }, [allowDataLoad]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n isRespErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Загрузка данных диаграммы ганта с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n args: {\n ...refStoredArgs.current\n },\n attributeValueProcessor: (name, val) => name == \"numb\" ? undefined : [\"start\", \"end\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateJSONDateOnly)(val) : val,\n respArg,\n ...refExecuteStoredArgs.current\n });\n setGantt(pv => ({\n ...pv,\n ...data[contentNodeName]\n }));\n //Устанавливаем признак загрузки данных с учетом возможных ошибок\n setIsDataLoaded(!isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setLoading(false);\n setReload(false);\n }\n }, [contentNodeName, executeStored, isRespErr, respArg, stored]);\n\n //При необходимости обновления диаграммы ганта\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setReload(true);\n }, []);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [isLoading]);\n\n //При изменение дополнительных параметров процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refStoredArgs.current, storedArgs)) {\n //Устанавливаем новые дополнительные параметры\n refStoredArgs.current = storedArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [storedArgs, isArgsChanged]);\n\n //При изменение дополнительных параметров вызова процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refExecuteStoredArgs.current, executeStoredArgs)) {\n //Устанавливаем новые дополнительные параметры\n refExecuteStoredArgs.current = executeStoredArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [executeStoredArgs, isArgsChanged]);\n\n //При необходимости обновить данные диаграммы ганта\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если необходимо перезагрузить данные и это допустимо\n if (isAllowDataLoad && reload) {\n loadData();\n }\n }, [isAllowDataLoad, reload, loadData]);\n\n //Возвращаем данные диаграммы ганта\n return {\n gantt,\n isDataLoaded,\n isLoading,\n doReload\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_gantt_hooks.js?");
/***/ }),
@@ -280,7 +500,18 @@ 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 */ P8PIndicator: () => (/* binding */ P8PIndicator),\n/* harmony export */ P8P_INDICATOR_STATE: () => (/* binding */ P8P_INDICATOR_STATE),\n/* harmony export */ P8P_INDICATOR_VARIANT: () => (/* binding */ P8P_INDICATOR_VARIANT)\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_9__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\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/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../app.text */ \"./app.text.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../app.styles */ \"./app.styles.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Компонент: Индикатор\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n //Диалог подсказки\n //Типовые текстовые ресурсы и константы\n //Типовые стили\n\n//---------\n//Константы\n//---------\n\n//Варианты исполнения\n\nconst P8P_INDICATOR_VARIANT = {\n ELEVATION: \"elevation\",\n OUTLINED: \"outlined\"\n};\n\n//Состояния\nconst P8P_INDICATOR_STATE = {\n UNDEFINED: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.UNDEFINED,\n OK: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK,\n WARN: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN,\n ERR: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR\n};\n//Цвета заливки\nconst BG_COLOR = {\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK].color,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR].color,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN].color\n};\n\n//Цвета текста и иконок\nconst COLOR = {\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK].contrColor,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR].contrColor,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN].contrColor\n};\n\n//Стили\nconst STYLES = {\n CONTAINER: (state, clickable, userColor, userBackgroundColor) => ({\n padding: \"10px\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n ...getBackgroundColor(state, userBackgroundColor),\n ...getColor(state, userColor),\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n ...(clickable ? {\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS.HOVER.color\n },\n \"&:active\": {\n backgroundColor: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS.ACTIVE.color\n }\n } : {})\n }),\n ICON: (state, userColor) => ({\n fontSize: \"50px\",\n ...getColor(state, userColor)\n }),\n HINT_ICON: (state, userColor) => ({\n fontSize: \"1rem\",\n ...getColor(state, userColor)\n }),\n VALUE_CAPTION_STACK: {\n containerType: \"inline-size\",\n width: \"100%\",\n overflow: \"hidden\"\n },\n CAPTION_TYPOGRAPHY: {\n width: \"99cqw\"\n }\n};\n\n//-----------------------\n//Вспомогательные функции\n//-----------------------\n\n//Подбор цвета заливки\nconst getBackgroundColor = (state, userColor) => userColor ? {\n backgroundColor: userColor\n} : BG_COLOR[state] ? {\n backgroundColor: BG_COLOR[state]\n} : {};\n\n//Подбор цвета текста\nconst getColor = (state, userColor) => userColor ? {\n color: userColor\n} : COLOR[state] ? {\n color: COLOR[state]\n} : {};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Индикатор\nconst P8PIndicator = ({\n caption,\n value,\n icon = null,\n state = _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.UNDEFINED,\n square = false,\n elevation = 3,\n variant = P8P_INDICATOR_VARIANT.ELEVATION,\n hint = null,\n onClick = null,\n backgroundColor = null,\n color = null\n} = {}) => {\n //Собственное состояние - отображение окна подсказки\n const [showHint, setShowHint] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //При нажатии на индикатор\n const handleClick = () => onClick && !showHint ? onClick() : null;\n\n //При нажатии на кнопку получения подсказки\n const handleHintClick = e => {\n setShowHint(true);\n e.stopPropagation();\n };\n\n //При нажатии на кнопку закрытия подсказки\n const handleHintClose = () => setShowHint(false);\n\n //Представление текста значения индикатора\n const valueTextView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n variant: \"h4\"\n }, [undefined, null, \"\"].includes(value) ? _app_text__WEBPACK_IMPORTED_MODULE_2__.TEXTS.NO_DATA_FOUND_SHORT : value);\n\n //Представление текста подписи индикатора\n const captionView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n align: \"left\",\n noWrap: true,\n sx: STYLES.CAPTION_TYPOGRAPHY,\n title: caption\n }, caption);\n\n //Представление подписи индикатора\n const valueView = hint ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, showHint && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PHintDialog, {\n title: caption,\n hint: hint,\n onOk: handleHintClose\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n alignItems: \"start\"\n }, valueTextView, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onClick: handleHintClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n sx: STYLES.HINT_ICON(state, color)\n }, \"help_outline\")))) : valueTextView;\n\n //Флаг активности индикатора\n const clickable = onClick ? true : false;\n\n //Представление\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n elevation: variant === P8P_INDICATOR_VARIANT.ELEVATION ? elevation : 0,\n sx: STYLES.CONTAINER(state, clickable, color, backgroundColor),\n square: square,\n variant: variant,\n onClick: handleClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"column\",\n alignItems: \"start\",\n pr: 2,\n sx: STYLES.VALUE_CAPTION_STACK\n }, valueView, captionView), icon ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n sx: STYLES.ICON(state, color)\n }, icon) : null));\n};\n\n//Контроль свойств - Индикатор\nP8PIndicator.propTypes = {\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,\n value: prop_types__WEBPACK_IMPORTED_MODULE_9___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_9___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_9___default().number)]),\n icon: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n state: prop_types__WEBPACK_IMPORTED_MODULE_9___default().oneOf(Object.values(P8P_INDICATOR_STATE)),\n square: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),\n elevation: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().number),\n variant: prop_types__WEBPACK_IMPORTED_MODULE_9___default().oneOf(Object.values(P8P_INDICATOR_VARIANT)),\n hint: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func),\n backgroundColor: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),\n color: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_indicator.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PIndicator: () => (/* binding */ P8PIndicator),\n/* harmony export */ P8P_INDICATOR_STATE: () => (/* binding */ P8P_INDICATOR_STATE),\n/* harmony export */ P8P_INDICATOR_VARIANT: () => (/* binding */ P8P_INDICATOR_VARIANT),\n/* harmony export */ useP8PIndicator: () => (/* reexport safe */ _p8p_indicator_hooks__WEBPACK_IMPORTED_MODULE_4__.useP8PIndicator)\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_10__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.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 _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../app.text */ \"./app.text.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _p8p_indicator_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./p8p_indicator_hooks */ \"./app/components/p8p_indicator_hooks.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Компонент: Индикатор\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные компоненты MUI\n //Диалог подсказки\n //Типовые текстовые ресурсы и константы\n //Типовые стили\n //Хук для индикатора\n\n//---------\n//Константы\n//---------\n\n//Варианты исполнения\n\nconst P8P_INDICATOR_VARIANT = {\n ELEVATION: \"elevation\",\n OUTLINED: \"outlined\"\n};\n\n//Состояния\nconst P8P_INDICATOR_STATE = {\n UNDEFINED: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.UNDEFINED,\n OK: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK,\n WARN: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN,\n ERR: _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR\n};\n//Цвета заливки\nconst BG_COLOR = {\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK].color,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR].color,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN].color\n};\n\n//Цвета текста и иконок\nconst COLOR = {\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.OK].contrColor,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.ERR].contrColor,\n [_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN]: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS[_app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.WARN].contrColor\n};\n\n//Стили\nconst STYLES = {\n CONTAINER: (state, clickable, userColor, userBackgroundColor) => ({\n padding: \"10px\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n ...getBackgroundColor(state, userBackgroundColor),\n ...getColor(state, userColor),\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n ...(clickable ? {\n cursor: \"pointer\",\n \"&:hover\": {\n filter: \"brightness(0.92) !important\"\n },\n \"&:active\": {\n backgroundColor: _app_styles__WEBPACK_IMPORTED_MODULE_3__.APP_COLORS.ACTIVE.color\n }\n } : {})\n }),\n ICON: (state, userColor) => ({\n fontSize: \"50px\",\n ...getColor(state, userColor)\n }),\n HINT_ICON: (state, userColor) => ({\n fontSize: \"1rem\",\n ...getColor(state, userColor)\n }),\n VALUE_CAPTION_STACK: {\n containerType: \"inline-size\",\n width: \"100%\",\n overflow: \"hidden\"\n },\n CAPTION_TYPOGRAPHY: clickable => ({\n width: \"99cqw\",\n ...(clickable ? {\n cursor: \"pointer\"\n } : {})\n }),\n VALUE_TYPOGRAPHY: clickable => ({\n ...(clickable ? {\n cursor: \"pointer\"\n } : {})\n })\n};\n\n//-----------------------\n//Вспомогательные функции\n//-----------------------\n\n//Подбор цвета заливки\nconst getBackgroundColor = (state, userColor) => userColor ? {\n backgroundColor: userColor\n} : BG_COLOR[state] ? {\n backgroundColor: BG_COLOR[state]\n} : {};\n\n//Подбор цвета текста\nconst getColor = (state, userColor) => userColor ? {\n color: userColor\n} : COLOR[state] ? {\n color: COLOR[state]\n} : {};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Индикатор\nconst P8PIndicator = ({\n caption,\n value,\n icon = null,\n state = _app_text__WEBPACK_IMPORTED_MODULE_2__.STATE.UNDEFINED,\n square = false,\n elevation = 3,\n variant = P8P_INDICATOR_VARIANT.ELEVATION,\n hint = null,\n onClick = null,\n onValueClick = null,\n onCaptionClick = null,\n backgroundColor = null,\n color = null\n} = {}) => {\n //Собственное состояние - отображение окна подсказки\n const [showHint, setShowHint] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //При нажатии на индикатор\n const handleClick = () => onClick && !showHint ? onClick() : null;\n\n //При нажатии на кнопку получения подсказки\n const handleHintClick = e => {\n setShowHint(true);\n e.stopPropagation();\n };\n\n //При нажатии на кнопку закрытия подсказки\n const handleHintClose = e => {\n setShowHint(false);\n e.stopPropagation();\n };\n\n //При нажатии на заголовок\n const handleCaptionClick = event => {\n //Если есть функция нажатия на заголовок\n onCaptionClick && onCaptionClick(event);\n };\n\n //При нажатии на значение\n const handleValueClick = event => {\n //Если есть функция нажатия на заголовок\n onValueClick && onValueClick(event);\n };\n\n //Представление текста значения индикатора\n const valueTextView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n variant: \"h4\",\n sx: STYLES.VALUE_TYPOGRAPHY(onValueClick ? true : false),\n onClick: handleValueClick\n }, [undefined, null, \"\"].includes(value) ? _app_text__WEBPACK_IMPORTED_MODULE_2__.TEXTS.NO_DATA_FOUND_SHORT : value);\n\n //Представление текста подписи индикатора\n const captionView = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n align: \"left\",\n noWrap: true,\n sx: STYLES.CAPTION_TYPOGRAPHY(onCaptionClick ? true : false),\n title: caption,\n onClick: handleCaptionClick\n }, caption);\n\n //Представление подписи индикатора\n const valueView = hint ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, showHint && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PHintDialog, {\n title: caption,\n hint: hint,\n onOk: handleHintClose\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n direction: \"row\",\n alignItems: \"start\"\n }, valueTextView, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n onClick: handleHintClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.HINT_ICON(state, color)\n }, \"help_outline\")))) : valueTextView;\n\n //Флаг активности индикатора\n const clickable = onClick ? true : false;\n\n //Представление\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n elevation: variant === P8P_INDICATOR_VARIANT.ELEVATION ? elevation : 0,\n sx: STYLES.CONTAINER(state, clickable, color, backgroundColor),\n square: square,\n variant: variant,\n onClick: handleClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n direction: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n direction: \"column\",\n alignItems: \"start\",\n pr: 2,\n sx: STYLES.VALUE_CAPTION_STACK\n }, valueView, captionView), icon ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.ICON(state, color)\n }, icon) : null));\n};\n\n//Контроль свойств - Индикатор\nP8PIndicator.propTypes = {\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,\n value: prop_types__WEBPACK_IMPORTED_MODULE_10___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_10___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_10___default().number)]),\n icon: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),\n state: prop_types__WEBPACK_IMPORTED_MODULE_10___default().oneOf(Object.values(P8P_INDICATOR_STATE)),\n square: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),\n elevation: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().number),\n variant: prop_types__WEBPACK_IMPORTED_MODULE_10___default().oneOf(Object.values(P8P_INDICATOR_VARIANT)),\n hint: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),\n onValueClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),\n onCaptionClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),\n backgroundColor: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),\n color: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_indicator.js?");
+
+/***/ }),
+
+/***/ "./app/components/p8p_indicator_hooks.js":
+/*!***********************************************!*\
+ !*** ./app/components/p8p_indicator_hooks.js ***!
+ \***********************************************/
+/***/ ((__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 */ useP8PIndicator: () => (/* binding */ useP8PIndicator)\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 _p8p_indicator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_indicator */ \"./app/components/p8p_indicator.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 RESP_ARG_DEF = \"COUT\"; //Имя параметра, содержащего информацию об индикаторе\nconst INDICATOR_NODE_NAME_DEF = \"XINDICATOR\"; //Наименование узла, содержащего информацию об индикаторе\nconst ELEVATION_DEF = 3; //Высота парения\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для P8PIndicator\nconst useP8PIndicator = ({\n stored,\n respArg = RESP_ARG_DEF,\n contentNodeName = INDICATOR_NODE_NAME_DEF,\n storedArgs = {},\n executeStoredArgs = {},\n allowDataLoad = () => true\n}) => {\n //Собственное состояние - индикатор\n const [indicator, setIndicator] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n caption: null,\n value: null,\n icon: null,\n state: _p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.UNDEFINED,\n square: false,\n elevation: ELEVATION_DEF,\n variant: _p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_VARIANT.ELEVATION,\n hint: null,\n backgroundColor: null,\n color: null\n });\n\n //Собственное состояние - признак загрузки данных\n const [isDataLoaded, setIsDataLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - необходимость обновления данных\n const [reload, setReload] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Собственное состояние - дополнительные агрументы\n const refStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(storedArgs);\n\n //Собственное состояние - дополнительные параметры вызова процедуры\n const refExecuteStoredArgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(executeStoredArgs);\n\n //Признак допустимости обновления данных\n const isAllowDataLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return allowDataLoad();\n }, [allowDataLoad]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n isRespErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Загрузка данных индикатора с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n respArg,\n args: {\n ...refStoredArgs.current\n },\n ...refExecuteStoredArgs.current\n });\n setIndicator(pv => ({\n ...pv,\n ...data[contentNodeName]\n }));\n //Устанавливаем признак загрузки данных с учетом возможных ошибок\n setIsDataLoaded(!isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setLoading(false);\n setReload(false);\n }\n }, [contentNodeName, executeStored, isRespErr, respArg, stored]);\n\n //При необходимости обновления индикатора\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setReload(true);\n }, []);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [isLoading]);\n\n //При изменение дополнительных параметров процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refStoredArgs.current, storedArgs)) {\n //Устанавливаем новые дополнительные параметры\n refStoredArgs.current = storedArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [storedArgs, isArgsChanged]);\n\n //При изменение дополнительных параметров вызова процедуры\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если параметры изменились\n if (isArgsChanged(refExecuteStoredArgs.current, executeStoredArgs)) {\n //Устанавливаем новые дополнительные параметры\n refExecuteStoredArgs.current = executeStoredArgs;\n //При изменении дополнительных параметров необходимо перезагрузить данные\n setReload(true);\n }\n }, [executeStoredArgs, isArgsChanged]);\n\n //При необходимости обновить данные индикатора\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если необходимо перезагрузить данные и это допустимо\n if (isAllowDataLoad && reload) {\n loadData();\n }\n }, [isAllowDataLoad, reload, loadData]);\n\n //Возвращаем данные индикатора\n return {\n indicator,\n isDataLoaded,\n isLoading,\n doReload\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_indicator_hooks.js?");
/***/ }),
@@ -324,7 +555,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 */ P8PTable: () => (/* binding */ P8PTable),\n/* harmony export */ P8P_TABLE_DATA_TYPE: () => (/* binding */ P8P_TABLE_DATA_TYPE),\n/* harmony export */ P8P_TABLE_FILTERS_HEIGHT: () => (/* binding */ P8P_TABLE_FILTERS_HEIGHT),\n/* harmony export */ P8P_TABLE_FILTER_SHAPE: () => (/* binding */ P8P_TABLE_FILTER_SHAPE),\n/* harmony export */ P8P_TABLE_MORE_HEIGHT: () => (/* binding */ P8P_TABLE_MORE_HEIGHT),\n/* harmony export */ P8P_TABLE_SIZE: () => (/* binding */ P8P_TABLE_SIZE)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.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/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableCell/TableCell.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableContainer/TableContainer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Table/Table.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableHead/TableHead.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableRow/TableRow.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableBody/TableBody.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Container/Container.js\");\n/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material/styles */ \"./node_modules/@mui/material/styles/useTheme.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_table_reducer */ \"./app/components/p8p_table_reducer.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 //Взаимодействие со стилями MUI\n //Встраиваемое сообщение об ошибке\n //Редьюсер состояния\n\n//---------\n//Константы\n//---------\n\n//Размеры отступов\nconst P8P_TABLE_SIZE = {\n SMALL: \"small\",\n MEDIUM: \"medium\"\n};\n\n//Типы данных\nconst P8P_TABLE_DATA_TYPE = {\n STR: \"STR\",\n NUMB: \"NUMB\",\n DATE: \"DATE\"\n};\n\n//Направления сортировки\nconst P8P_TABLE_COLUMN_ORDER_DIRECTIONS = {\n ASC: \"ASC\",\n DESC: \"DESC\"\n};\n\n//Действия панели инструментов столбца\nconst P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS = {\n ORDER_TOGGLE: \"ORDER_TOGGLE\",\n FILTER_TOGGLE: \"FILTER_TOGGLE\",\n EXPAND_TOGGLE: \"EXPAND_TOGGLE\"\n};\n\n//Действия меню столбца\nconst P8P_TABLE_COLUMN_MENU_ACTIONS = {\n ORDER_ASC: \"ORDER_ASC\",\n ORDER_DESC: \"ORDER_DESC\",\n FILTER: \"FILTER\"\n};\n\n//Структура элемента описания фильтра\nconst P8P_TABLE_FILTER_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n from: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n to: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any)\n});\n\n//Высота кнопки догрузки данных\nconst P8P_TABLE_MORE_HEIGHT = \"49px\";\n\n//Высота фильтров таблицы\nconst P8P_TABLE_FILTERS_HEIGHT = \"48px\";\n\n//Стили\nconst STYLES = {\n TABLE: {},\n TABLE_HEAD_STICKY: {\n position: \"sticky\",\n top: 0,\n zIndex: 1000\n },\n TABLE_HEAD_CELL_STICKY: (theme, left) => ({\n position: \"sticky\",\n left,\n backgroundColor: theme.palette.background.default,\n zIndex: 1000\n }),\n TABLE_ROW: {\n \"&:last-child td, &:last-child th\": {\n border: 0\n }\n },\n TABLE_CELL_STICKY: (theme, left) => ({\n position: \"sticky\",\n left,\n backgroundColor: theme.palette.background.default,\n zIndex: 500\n }),\n TABLE_CELL_EXPAND_CONTROL: {\n minWidth: \"60px\",\n maxWidth: \"60px\"\n },\n TABLE_CELL_EXPAND_CONTAINER: {\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: 0,\n paddingRight: 0\n },\n TABLE_CELL_GROUP_HEADER: {\n backgroundColor: \"lightgray\"\n },\n TABLE_CELL_GROUP_HEADER_STICKY: {\n position: \"sticky\",\n left: 0\n },\n TABLE_COLUMN_STACK: {\n alignItems: \"center\"\n },\n TABLE_COLUMN_MENU_ITEM_ICON: {\n paddingRight: \"10px\"\n },\n FILTER_CHIP: {\n alignItems: \"center\"\n },\n MORE_BUTTON_CONTAINER: {\n with: \"100%\",\n textAlign: \"center\",\n padding: \"5px\"\n }\n};\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Панель инструментов столбца (левая)\nconst P8PTableColumnToolBarLeft = ({\n columnDef,\n onItemClick\n}) => {\n //Кнопка развёртывания/свёртывания\n let expButton = null;\n if (columnDef.expandable) expButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.EXPAND_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, columnDef.expanded ? \"indeterminate_check_box\" : \"add_box\"));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, expButton);\n};\n\n//Контроль свойств - Панель инструментов столбца (левая)\nP8PTableColumnToolBarLeft.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Панель инструментов столбца (правая)\nconst P8PTableColumnToolBarRight = ({\n columnDef,\n orders,\n filters,\n onItemClick\n}) => {\n //Кнопка сортировки\n const order = orders.find(o => o.name == columnDef.name);\n let orderButton = null;\n if (order) orderButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.ORDER_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, order.direction === P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC ? \"arrow_upward\" : \"arrow_downward\"));\n\n //Кнопка фильтрации\n const filter = filters.find(f => f.name == columnDef.name);\n let filterButton = null;\n if ((0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter?.from) || (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter?.to)) filterButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.FILTER_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"filter_alt\"));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, orderButton, filterButton);\n};\n\n//Контроль свойств - Панель инструментов столбца (правая)\nP8PTableColumnToolBarRight.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n orders: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n filters: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Меню столбца\nconst P8PTableColumnMenu = ({\n columnDef,\n orderAscItemCaption,\n orderDescItemCaption,\n filterItemCaption,\n onItemClick\n}) => {\n //Собственное состояние\n const [anchorEl, setAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Флаг отображения\n const open = Boolean(anchorEl);\n\n //По нажатию на открытие меню\n const handleMenuButtonClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n //По нажатию на пункт меню\n const handleMenuItemClick = (event, index, action, columnName) => {\n if (onItemClick) onItemClick(action, columnName);\n setAnchorEl(null);\n };\n\n //При закрытии меню\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n //Формирование списка элементов меню в зависимости от описания колонки таблицы\n const menuItems = [];\n if (columnDef.order === true) {\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"orderAsc\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_ASC, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"arrow_upward\"), orderAscItemCaption));\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"orderDesc\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_DESC, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"arrow_downward\"), orderDescItemCaption));\n }\n if (columnDef.filter === true) {\n if (menuItems.length > 0) menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n key: \"divider\",\n sx: {\n my: 0.5\n }\n }));\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"filter\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.FILTER, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"filter_alt\"), filterItemCaption));\n }\n\n //Генерация содержимого\n return menuItems.length > 0 ? /*#__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_4__[\"default\"], {\n id: `${columnDef.name}_menu_button`,\n \"aria-haspopup\": \"true\",\n onClick: handleMenuButtonClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"more_vert\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n id: `${columnDef.name}_menu`,\n anchorEl: anchorEl,\n open: open,\n onClose: handleMenuClose\n }, menuItems)) : null;\n};\n\n//Контроль свойств - Меню столбца\nP8PTableColumnMenu.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n orderAscItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n orderDescItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n filterItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Диалог фильтра\nconst P8PTableColumnFilterDialog = ({\n columnDef,\n from,\n to,\n valueCaption,\n valueFromCaption,\n valueToCaption,\n okBtnCaption,\n clearBtnCaption,\n cancelBtnCaption,\n valueFormatter,\n onOk,\n onClear,\n onCancel\n}) => {\n //Собственное состояние - значения с-по\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n from,\n to\n });\n\n //Отработка воода значения в фильтр\n const handleFilterTextFieldChanged = e => {\n setFilterValues(prev => ({\n ...prev,\n [e.target.name]: e.target.value\n }));\n };\n\n //Элементы ввода значений фильтра\n let inputs = null;\n if (Array.isArray(columnDef.values) && columnDef.values.length > 0) {\n inputs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"from\",\n fullWidth: true,\n select: true,\n label: valueCaption,\n variant: \"standard\",\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged\n }, columnDef.values.map((v, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: i,\n value: v\n }, valueFormatter ? valueFormatter({\n value: v,\n columnDef\n }) : v)));\n } else {\n switch (columnDef.dataType) {\n case P8P_TABLE_DATA_TYPE.STR:\n {\n inputs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"from\",\n fullWidth: true,\n InputLabelProps: {\n shrink: true\n },\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged,\n label: valueCaption,\n variant: \"standard\"\n });\n break;\n }\n case P8P_TABLE_DATA_TYPE.NUMB:\n case P8P_TABLE_DATA_TYPE.DATE:\n {\n inputs = /*#__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_9__[\"default\"], {\n name: \"from\",\n InputLabelProps: {\n shrink: true\n },\n type: columnDef.dataType == P8P_TABLE_DATA_TYPE.NUMB ? \"number\" : \"date\",\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged,\n label: valueFromCaption,\n variant: \"standard\"\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"to\",\n InputLabelProps: {\n shrink: true\n },\n type: columnDef.dataType == P8P_TABLE_DATA_TYPE.NUMB ? \"number\" : \"date\",\n value: filterValues.to,\n onChange: handleFilterTextFieldChanged,\n label: valueToCaption,\n variant: \"standard\"\n }));\n break;\n }\n }\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n open: true,\n \"aria-labelledby\": \"filter-dialog-title\",\n \"aria-describedby\": \"filter-dialog-description\",\n onClose: () => onCancel ? onCancel(columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n id: \"filter-dialog-title\"\n }, columnDef.caption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, inputs), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onOk ? onOk(columnDef.name, filterValues.from, filterValues.to) : null\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onClear ? onClear(columnDef.name) : null,\n variant: \"secondary\"\n }, clearBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onCancel ? onCancel(columnDef.name) : null\n }, cancelBtnCaption)));\n};\n\n//Контроль свойств - Диалог фильтра\nP8PTableColumnFilterDialog.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n from: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n to: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n valueCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFromCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n clearBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onClear: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Сводный фильтр\nconst P8PTableFiltersChips = ({\n filters,\n columnsDef,\n valueFromCaption,\n valueToCaption,\n onFilterChipClick,\n onFilterChipDelete,\n valueFormatter\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n p: 1\n }, filters.map((filter, i) => {\n const columnDef = columnsDef.find(columnDef => columnDef.name == filter.name);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n key: i,\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n sx: STYLES.FILTER_CHIP\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"strong\", null, columnDef.caption), \":\\xA0\", (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.from) && !columnDef.values && columnDef.dataType != P8P_TABLE_DATA_TYPE.STR ? `${valueFromCaption.toLowerCase()} ` : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.from) ? valueFormatter ? valueFormatter({\n value: filter.from,\n columnDef\n }) : filter.from : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.to) && !columnDef.values && columnDef.dataType != P8P_TABLE_DATA_TYPE.STR ? ` ${valueToCaption.toLowerCase()} ` : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.to) ? valueFormatter ? valueFormatter({\n value: filter.to,\n columnDef\n }) : filter.to : null),\n variant: \"outlined\",\n onClick: () => onFilterChipClick ? onFilterChipClick(columnDef.name) : null,\n onDelete: () => onFilterChipDelete ? onFilterChipDelete(columnDef.name) : null\n });\n }));\n};\n\n//Контроль свойств - Сводный фильтр\nP8PTableFiltersChips.propTypes = {\n filters: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n columnsDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n valueFromCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n onFilterChipClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onFilterChipDelete: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица\nconst P8PTable = ({\n style = {},\n tableStyle = {},\n columnsDef = [],\n groups = [],\n rows = [],\n orders,\n filters,\n size,\n fixedHeader = false,\n fixedColumns = 0,\n morePages = false,\n reloading = false,\n expandable,\n orderAscMenuItemCaption,\n orderDescMenuItemCaption,\n filterMenuItemCaption,\n valueFilterCaption,\n valueFromFilterCaption,\n valueToFilterCaption,\n okFilterBtnCaption,\n clearFilterBtnCaption,\n cancelFilterBtnCaption,\n morePagesBtnCaption,\n morePagesBtnProps,\n noDataFoundText,\n headCellRender,\n dataCellRender,\n groupCellRender,\n rowExpandRender,\n valueFormatter,\n onOrderChanged,\n onFilterChanged,\n onPagesCountChanged,\n objectsCopier,\n containerComponent,\n containerComponentProps\n}) => {\n //Собственное состояние - описание заголовка\n const [header, dispatchHeaderAction] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.p8pTableReducer, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.HEADER_INITIAL_STATE)());\n\n //Собственное состояние - фильтруемая колонка\n const [filterColumn, setFilterColumn] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Собственное состояние - развёрнутые строки\n const [expanded, setExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n\n //Собственное состояния - развёрнутые группы\n const [expandedGroups, setExpandedGroups] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Array.isArray(groups) && groups.length > 0 ? Object.assign({}, ...groups.map(g => ({\n [g.name]: g.expanded\n }))) : {});\n\n //Собственное состояние - колонка с отображаемой подсказкой\n const [displayHintColumn, setDisplayHintColumn] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Стили\n const theme = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_17__[\"default\"])();\n\n //Описание фильтруемой колонки\n const filterColumnDef = filterColumn ? columnsDef.find(columnDef => columnDef.name == filterColumn) || null : null;\n\n //Описание колонки с отображаемой подсказкой\n const displayHintColumnDef = displayHintColumn ? columnsDef.find(columnDef => columnDef.name == displayHintColumn) || null : null;\n\n //Значения фильтра фильтруемой колонки\n const [filterColumnFrom, filterColumnTo] = filterColumn ? (() => {\n const filter = filters.find(filter => filter.name == filterColumn);\n return filter ? [filter.from == null ? \"\" : filter.from, filter.to == null ? \"\" : filter.to] : [\"\", \"\"];\n })() : [\"\", \"\"];\n\n //Формирование заголовка таблицы\n const setHeader = ({\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n }) => dispatchHeaderAction({\n type: _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.P8P_TABLE_AT.SET_HEADER,\n payload: {\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n }\n });\n\n //Сворачивание/разворачивание уровня заголовка таблицы\n const toggleHeaderExpand = ({\n columnName,\n objectsCopier\n }) => dispatchHeaderAction({\n type: _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.P8P_TABLE_AT.TOGGLE_HEADER_EXPAND,\n payload: {\n columnName,\n expandable,\n fixedColumns,\n objectsCopier\n }\n });\n\n //Выравнивание в зависимости от типа данных\n const getAlignByDataType = ({\n dataType,\n hasChild\n }) => dataType === P8P_TABLE_DATA_TYPE.DATE || hasChild ? \"center\" : dataType === P8P_TABLE_DATA_TYPE.NUMB ? \"right\" : \"left\";\n\n //Упорядочение содержимого в зависимости от типа данных\n const getJustifyContentByDataType = ({\n dataType,\n hasChild\n }) => dataType === P8P_TABLE_DATA_TYPE.DATE || hasChild ? \"center\" : dataType === P8P_TABLE_DATA_TYPE.NUMB ? \"flex-end\" : \"flex-start\";\n\n //Отработка нажатия на элемент пункта меню\n const handleToolBarItemClick = (action, columnName) => {\n switch (action) {\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.ORDER_TOGGLE:\n {\n const colOrder = orders.find(o => o.name == columnName);\n const newDirection = colOrder?.direction == P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC ? P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC : colOrder?.direction == P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC ? null : P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC;\n if (onOrderChanged) onOrderChanged({\n columnName,\n direction: newDirection\n });\n break;\n }\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.FILTER_TOGGLE:\n setFilterColumn(columnName);\n break;\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.EXPAND_TOGGLE:\n toggleHeaderExpand({\n columnName,\n objectsCopier\n });\n break;\n }\n };\n\n //Отработка нажатия на пункты меню\n const handleMenuItemClick = (action, columnName) => {\n switch (action) {\n case P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_ASC:\n onOrderChanged({\n columnName,\n direction: P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC\n });\n break;\n case P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_DESC:\n onOrderChanged({\n columnName,\n direction: P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC\n });\n break;\n case P8P_TABLE_COLUMN_MENU_ACTIONS.FILTER:\n setFilterColumn(columnName);\n break;\n }\n };\n\n //Отработка ввода значения фильтра колонки\n const handleFilterOk = (columnName, from, to) => {\n if (onFilterChanged) onFilterChanged({\n columnName,\n from: from === \"\" ? null : from,\n to: to === \"\" ? null : to\n });\n setFilterColumn(null);\n };\n\n //Отработка очистки значения фильтра колонки\n const handleFilterClear = columnName => {\n if (onFilterChanged) onFilterChanged({\n columnName,\n from: null,\n to: null\n });\n setFilterColumn(null);\n };\n\n //Отработка отмены ввода значения фильтра колонки\n const handleFilterCancel = () => {\n setFilterColumn(null);\n };\n\n //Отработка нажатия на элемент сводного фильтра\n const handleFilterChipClick = columnName => setFilterColumn(columnName);\n\n //Отработка удаления элемента сводного фильтра\n const handleFilterChipDelete = columnName => onFilterChanged ? onFilterChanged({\n columnName,\n from: null,\n to: null\n }) : null;\n\n //Отработка нажатия на кнопку догрузки страницы\n const handleMorePagesBtnClick = () => {\n if (onPagesCountChanged) onPagesCountChanged();\n };\n\n //Отработка нажатия на элемент отображения подсказки по колонке\n const handleColumnShowHintClick = columnName => setDisplayHintColumn(columnName);\n\n //Отработка сокрытия подсказки по колонке\n const handleHintOk = () => setDisplayHintColumn(null);\n\n //Отработка нажатия на кнопку раскрытия элемента\n const handleExpandClick = rowIndex => {\n if (expanded[rowIndex] === true) setExpanded(pv => {\n let res = {\n ...pv\n };\n delete res[rowIndex];\n return res;\n });else setExpanded(pv => ({\n ...pv,\n [rowIndex]: true\n }));\n };\n\n //При перезагрузке данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (reloading) setExpanded({});\n }, [reloading]);\n\n //При изменении описания колонок\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setHeader({\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n });\n }, [columnsDef, expandable, fixedColumns, objectsCopier]);\n\n //Генерация заголовка группы\n const renderGroupCell = group => {\n let customRender = {};\n if (groupCellRender) customRender = groupCellRender({\n columnsDef: header.columnsDef,\n group\n }) || {};\n return header.displayDataColumns.map((columnDef, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `group-header-cell-${i}`\n }, customRender.cellProps, {\n sx: {\n ...STYLES.TABLE_CELL_GROUP_HEADER,\n ...customRender.cellStyle,\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(i == 0 && fixedColumns ? STYLES.TABLE_CELL_GROUP_HEADER_STICKY : {})\n },\n colSpan: expandable && rowExpandRender ? 2 : 1\n }), i == 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n sx: STYLES.TABLE_COLUMN_STACK\n }, group.expandable ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => {\n setExpandedGroups(pv => ({\n ...pv,\n ...{\n [group.name]: !pv[group.name]\n }\n }));\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, expandedGroups[group.name] ? \"indeterminate_check_box\" : \"add_box\")) : null, customRender.data ? customRender.data : group.caption) : null));\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...(style || {})\n }\n }, displayHintColumn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PHintDialog, {\n title: displayHintColumnDef.caption,\n hint: displayHintColumnDef.hint,\n onOk: handleHintOk\n }) : null, filterColumn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnFilterDialog, {\n columnDef: filterColumnDef,\n from: filterColumnFrom,\n to: filterColumnTo,\n valueCaption: valueFilterCaption,\n valueFromCaption: valueFromFilterCaption,\n valueToCaption: valueToFilterCaption,\n okBtnCaption: okFilterBtnCaption,\n clearBtnCaption: clearFilterBtnCaption,\n cancelBtnCaption: cancelFilterBtnCaption,\n valueFormatter: valueFormatter,\n onOk: handleFilterOk,\n onClear: handleFilterClear,\n onCancel: handleFilterCancel\n }) : null, Array.isArray(filters) && filters.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableFiltersChips, {\n filters: filters,\n columnsDef: columnsDef,\n valueFromCaption: valueFromFilterCaption,\n valueToCaption: valueToFilterCaption,\n onFilterChipClick: handleFilterChipClick,\n onFilterChipDelete: handleFilterChipDelete,\n valueFormatter: valueFormatter\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], _extends({\n component: containerComponent ? containerComponent : _mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"]\n }, containerComponentProps ? containerComponentProps : {}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n stickyHeader: fixedHeader,\n sx: {\n ...STYLES.TABLE,\n ...(tableStyle || {})\n },\n size: size || P8P_TABLE_SIZE.MEDIUM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n sx: fixedHeader ? STYLES.TABLE_HEAD_STICKY : {}\n }, header.displayLevels.map((level, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: level\n }, expandable && rowExpandRender && i == 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n key: \"head-cell-expand-control\",\n align: \"center\",\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTROL,\n ...(fixedColumns ? STYLES.TABLE_HEAD_CELL_STICKY(theme, 0) : {})\n },\n rowSpan: header.displayLevelsColumns[level][0].rowSpan\n }) : null, header.displayLevelsColumns[level].map((columnDef, j) => {\n let customRender = {};\n if (headCellRender) customRender = headCellRender({\n columnDef\n }) || {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `head-cell-${j}`,\n align: getAlignByDataType(columnDef),\n sx: {\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(columnDef.fixed ? STYLES.TABLE_HEAD_CELL_STICKY(theme, columnDef.fixedLeft) : {}),\n ...customRender.cellStyle\n },\n rowSpan: columnDef.rowSpan,\n colSpan: columnDef.colSpan\n }, customRender.cellProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], _extends({\n direction: \"row\",\n justifyContent: getJustifyContentByDataType(columnDef),\n sx: {\n ...STYLES.TABLE_COLUMN_STACK,\n ...customRender.stackStyle\n }\n }, customRender.stackProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnToolBarLeft, {\n columnDef: columnDef,\n onItemClick: handleToolBarItemClick\n }), customRender.data ? customRender.data : columnDef.hint ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => handleColumnShowHintClick(columnDef.name)\n }, columnDef.caption) : columnDef.caption, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnToolBarRight, {\n columnDef: columnDef,\n orders: orders,\n filters: filters,\n onItemClick: handleToolBarItemClick\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnMenu, {\n columnDef: columnDef,\n orderAscItemCaption: orderAscMenuItemCaption,\n orderDescItemCaption: orderDescMenuItemCaption,\n filterItemCaption: filterMenuItemCaption,\n onItemClick: handleMenuItemClick\n })));\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_25__[\"default\"], null, rows.length > 0 ? (Array.isArray(groups) && groups.length > 0 ? groups : [{}]).map((group, g) => {\n const rowsView = rows.map((row, i) => !group?.name || group?.name == row.groupName ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: `data-${i}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: `data-row-${i}`,\n sx: STYLES.TABLE_ROW\n }, expandable && rowExpandRender ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n key: `data-cell-expand-control-${i}`,\n align: \"center\",\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTROL,\n ...(fixedColumns ? STYLES.TABLE_CELL_STICKY(theme, 0) : {})\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => handleExpandClick(i)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, expanded[i] === true ? \"keyboard_arrow_down\" : \"keyboard_arrow_right\"))) : null, header.displayDataColumns.map((columnDef, j) => {\n let customRender = {};\n if (dataCellRender) customRender = dataCellRender({\n row,\n columnDef\n }) || {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `data-cell-${j}`,\n align: getAlignByDataType(columnDef),\n sx: {\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(columnDef.fixed ? STYLES.TABLE_CELL_STICKY(theme, columnDef.fixedLeft) : {}),\n ...customRender.cellStyle\n }\n }, customRender.cellProps), customRender.data ? customRender.data : valueFormatter ? valueFormatter({\n value: row[columnDef.name],\n columnDef\n }) : row[columnDef.name]);\n })), expandable && rowExpandRender && expanded[i] === true ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: `data-row-expand-${i}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTAINER,\n ...(fixedColumns ? STYLES.TABLE_CELL_STICKY(theme, 0) : {})\n },\n colSpan: fixedColumns ? header.displayFixedColumnsCount + 1 : header.displayDataColumnsCount\n }, rowExpandRender({\n columnsDef,\n row\n }))) : null) : null);\n return !group?.name ? rowsView : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: `group-${g}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: `group-header-${g}`\n }, renderGroupCell(group)), !group.expandable || expandedGroups[group.name] === true ? rowsView : null);\n }) : noDataFoundText && !reloading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n colSpan: header.displayDataColumnsCount\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }))) : null))), morePages ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n style: STYLES.MORE_BUTTON_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], _extends({\n fullWidth: true,\n onClick: handleMorePagesBtnClick\n }, morePagesBtnProps ? morePagesBtnProps : {}), morePagesBtnCaption)) : null);\n};\n\n//Контроль свойств - Таблица\nP8PTable.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n tableStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n columnsDef: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n order: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n dataType: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n values: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n parent: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n width: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n })).isRequired,\n groups: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired\n })),\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n orders: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n direction: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n })).isRequired,\n filters: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_TABLE_FILTER_SHAPE).isRequired,\n size: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n fixedHeader: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n fixedColumns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n morePages: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n reloading: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n orderAscMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n orderDescMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n filterMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFromFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n clearFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n headCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n dataCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n groupCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n rowExpandRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onOrderChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onFilterChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onPagesCountChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n objectsCopier: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n containerComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)]),\n containerComponentProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_table.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8PTable: () => (/* binding */ P8PTable),\n/* harmony export */ P8P_TABLE_DATA_TYPE: () => (/* binding */ P8P_TABLE_DATA_TYPE),\n/* harmony export */ P8P_TABLE_FILTERS_HEIGHT: () => (/* binding */ P8P_TABLE_FILTERS_HEIGHT),\n/* harmony export */ P8P_TABLE_FILTER_SHAPE: () => (/* binding */ P8P_TABLE_FILTER_SHAPE),\n/* harmony export */ P8P_TABLE_MORE_HEIGHT: () => (/* binding */ P8P_TABLE_MORE_HEIGHT),\n/* harmony export */ P8P_TABLE_PAGINATOR_ALIGN: () => (/* binding */ P8P_TABLE_PAGINATOR_ALIGN),\n/* harmony export */ P8P_TABLE_PAGINATOR_POSITION: () => (/* binding */ P8P_TABLE_PAGINATOR_POSITION),\n/* harmony export */ P8P_TABLE_SIZE: () => (/* binding */ P8P_TABLE_SIZE)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.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/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Chip/Chip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableCell/TableCell.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Pagination/Pagination.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableContainer/TableContainer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Table/Table.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableHead/TableHead.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableRow/TableRow.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TableBody/TableBody.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Container/Container.js\");\n/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material/styles */ \"./node_modules/@mui/material/styles/useTheme.js\");\n/* harmony import */ var _p8p_app_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8p_table_reducer */ \"./app/components/p8p_table_reducer.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 //Взаимодействие со стилями MUI\n //Встраиваемое сообщение об ошибке\n //Редьюсер состояния\n\n//---------\n//Константы\n//---------\n\n//Размеры отступов\nconst P8P_TABLE_SIZE = {\n SMALL: \"small\",\n MEDIUM: \"medium\"\n};\n\n//Типы данных\nconst P8P_TABLE_DATA_TYPE = {\n STR: \"STR\",\n NUMB: \"NUMB\",\n DATE: \"DATE\"\n};\n\n//Направления сортировки\nconst P8P_TABLE_COLUMN_ORDER_DIRECTIONS = {\n ASC: \"ASC\",\n DESC: \"DESC\"\n};\n\n//Действия панели инструментов столбца\nconst P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS = {\n ORDER_TOGGLE: \"ORDER_TOGGLE\",\n FILTER_TOGGLE: \"FILTER_TOGGLE\",\n EXPAND_TOGGLE: \"EXPAND_TOGGLE\"\n};\n\n//Действия меню столбца\nconst P8P_TABLE_COLUMN_MENU_ACTIONS = {\n ORDER_ASC: \"ORDER_ASC\",\n ORDER_DESC: \"ORDER_DESC\",\n FILTER: \"FILTER\"\n};\n\n//Структура элемента описания фильтра\nconst P8P_TABLE_FILTER_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n from: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n to: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any)\n});\n\n//Размещение области страниц по вертикали\nconst P8P_TABLE_PAGINATOR_ALIGN = {\n LEFT: \"left\",\n RIGHT: \"right\",\n CENTER: \"center\"\n};\n\n//Размещение области страниц по горизонтали\nconst P8P_TABLE_PAGINATOR_POSITION = {\n TOP: \"top\",\n BOTTOM: \"bottom\",\n BOTH: \"both\"\n};\n\n//Высота кнопки догрузки данных\nconst P8P_TABLE_MORE_HEIGHT = \"49px\";\n\n//Высота фильтров таблицы\nconst P8P_TABLE_FILTERS_HEIGHT = \"48px\";\n\n//Стили\nconst STYLES = {\n TABLE: {},\n TABLE_HEAD_STICKY: {\n position: \"sticky\",\n top: 0,\n zIndex: 1000\n },\n TABLE_HEAD_CELL_STICKY: (theme, left) => ({\n position: \"sticky\",\n left,\n backgroundColor: theme.palette.background.default,\n zIndex: 1000\n }),\n TABLE_ROW: {\n \"&:last-child td, &:last-child th\": {\n border: 0\n }\n },\n TABLE_CELL_STICKY: (theme, left) => ({\n position: \"sticky\",\n left,\n backgroundColor: theme.palette.background.default,\n zIndex: 500\n }),\n TABLE_CELL_EXPAND_CONTROL: {\n minWidth: \"60px\",\n maxWidth: \"60px\"\n },\n TABLE_CELL_EXPAND_CONTAINER: {\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: 0,\n paddingRight: 0\n },\n TABLE_CELL_GROUP_HEADER: {\n backgroundColor: \"lightgray\"\n },\n TABLE_CELL_GROUP_HEADER_STICKY: {\n position: \"sticky\",\n left: 0\n },\n TABLE_COLUMN_STACK: {\n alignItems: \"center\"\n },\n TABLE_COLUMN_MENU_ITEM_ICON: {\n paddingRight: \"10px\"\n },\n FILTER_CHIP: {\n alignItems: \"center\"\n },\n PAGINATION: (pagesAlign, position) => ({\n display: \"flex\",\n justifyContent: pagesAlign === P8P_TABLE_PAGINATOR_ALIGN.LEFT ? \"flex-start\" : pagesAlign === P8P_TABLE_PAGINATOR_ALIGN.CENTER ? \"space-around\" : \"flex-end\",\n ...(position === P8P_TABLE_PAGINATOR_POSITION.TOP ? {\n paddingBottom: \"10px\"\n } : {\n paddingTop: \"10px\"\n })\n }),\n MORE_BUTTON_CONTAINER: {\n with: \"100%\",\n textAlign: \"center\",\n padding: \"5px\"\n }\n};\n\n//--------------------------------\n//Вспомогательные классы и функции\n//--------------------------------\n\n//Панель инструментов столбца (левая)\nconst P8PTableColumnToolBarLeft = ({\n columnDef,\n onItemClick\n}) => {\n //Кнопка развёртывания/свёртывания\n let expButton = null;\n if (columnDef.expandable) expButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.EXPAND_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, columnDef.expanded ? \"indeterminate_check_box\" : \"add_box\"));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, expButton);\n};\n\n//Контроль свойств - Панель инструментов столбца (левая)\nP8PTableColumnToolBarLeft.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Панель инструментов столбца (правая)\nconst P8PTableColumnToolBarRight = ({\n columnDef,\n orders,\n filters,\n onItemClick\n}) => {\n //Кнопка сортировки\n const order = orders.find(o => o.name == columnDef.name);\n let orderButton = null;\n if (order) orderButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.ORDER_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, order.direction === P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC ? \"arrow_upward\" : \"arrow_downward\"));\n\n //Кнопка фильтрации\n const filter = filters.find(f => f.name == columnDef.name);\n let filterButton = null;\n if ((0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter?.from) || (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter?.to)) filterButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => onItemClick ? onItemClick(P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.FILTER_TOGGLE, columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"filter_alt\"));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, orderButton, filterButton);\n};\n\n//Контроль свойств - Панель инструментов столбца (правая)\nP8PTableColumnToolBarRight.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n orders: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n filters: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Меню столбца\nconst P8PTableColumnMenu = ({\n columnDef,\n orderAscItemCaption,\n orderDescItemCaption,\n filterItemCaption,\n onItemClick\n}) => {\n //Собственное состояние\n const [anchorEl, setAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Флаг отображения\n const open = Boolean(anchorEl);\n\n //По нажатию на открытие меню\n const handleMenuButtonClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n //По нажатию на пункт меню\n const handleMenuItemClick = (event, index, action, columnName) => {\n if (onItemClick) onItemClick(action, columnName);\n setAnchorEl(null);\n };\n\n //При закрытии меню\n const handleMenuClose = () => {\n setAnchorEl(null);\n };\n\n //Формирование списка элементов меню в зависимости от описания колонки таблицы\n const menuItems = [];\n if (columnDef.order === true) {\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"orderAsc\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_ASC, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"arrow_upward\"), orderAscItemCaption));\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"orderDesc\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_DESC, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"arrow_downward\"), orderDescItemCaption));\n }\n if (columnDef.filter === true) {\n if (menuItems.length > 0) menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n key: \"divider\",\n sx: {\n my: 0.5\n }\n }));\n menuItems.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: \"filter\",\n onClick: (event, index) => handleMenuItemClick(event, index, P8P_TABLE_COLUMN_MENU_ACTIONS.FILTER, columnDef.name)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.TABLE_COLUMN_MENU_ITEM_ICON\n }, \"filter_alt\"), filterItemCaption));\n }\n\n //Генерация содержимого\n return menuItems.length > 0 ? /*#__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_4__[\"default\"], {\n id: `${columnDef.name}_menu_button`,\n \"aria-haspopup\": \"true\",\n onClick: handleMenuButtonClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, \"more_vert\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n id: `${columnDef.name}_menu`,\n anchorEl: anchorEl,\n open: open,\n onClose: handleMenuClose\n }, menuItems)) : null;\n};\n\n//Контроль свойств - Меню столбца\nP8PTableColumnMenu.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n orderAscItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n orderDescItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n filterItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n onItemClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Диалог фильтра\nconst P8PTableColumnFilterDialog = ({\n columnDef,\n from,\n to,\n valueCaption,\n valueFromCaption,\n valueToCaption,\n okBtnCaption,\n clearBtnCaption,\n cancelBtnCaption,\n valueFormatter,\n onOk,\n onClear,\n onCancel\n}) => {\n //Собственное состояние - значения с-по\n const [filterValues, setFilterValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n from,\n to\n });\n\n //Отработка воода значения в фильтр\n const handleFilterTextFieldChanged = e => {\n setFilterValues(prev => ({\n ...prev,\n [e.target.name]: e.target.value\n }));\n };\n\n //Элементы ввода значений фильтра\n let inputs = null;\n if (Array.isArray(columnDef.values) && columnDef.values.length > 0) {\n inputs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"from\",\n fullWidth: true,\n select: true,\n label: valueCaption,\n variant: \"standard\",\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged\n }, columnDef.values.map((v, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n key: i,\n value: v\n }, valueFormatter ? valueFormatter({\n value: v,\n columnDef\n }) : v)));\n } else {\n switch (columnDef.dataType) {\n case P8P_TABLE_DATA_TYPE.STR:\n {\n inputs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"from\",\n fullWidth: true,\n InputLabelProps: {\n shrink: true\n },\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged,\n label: valueCaption,\n variant: \"standard\"\n });\n break;\n }\n case P8P_TABLE_DATA_TYPE.NUMB:\n case P8P_TABLE_DATA_TYPE.DATE:\n {\n inputs = /*#__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_9__[\"default\"], {\n name: \"from\",\n InputLabelProps: {\n shrink: true\n },\n type: columnDef.dataType == P8P_TABLE_DATA_TYPE.NUMB ? \"number\" : \"date\",\n value: filterValues.from,\n onChange: handleFilterTextFieldChanged,\n label: valueFromCaption,\n variant: \"standard\"\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n name: \"to\",\n InputLabelProps: {\n shrink: true\n },\n type: columnDef.dataType == P8P_TABLE_DATA_TYPE.NUMB ? \"number\" : \"date\",\n value: filterValues.to,\n onChange: handleFilterTextFieldChanged,\n label: valueToCaption,\n variant: \"standard\"\n }));\n break;\n }\n }\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n open: true,\n \"aria-labelledby\": \"filter-dialog-title\",\n \"aria-describedby\": \"filter-dialog-description\",\n onClose: () => onCancel ? onCancel(columnDef.name) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n id: \"filter-dialog-title\"\n }, columnDef.caption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, inputs), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onOk ? onOk(columnDef.name, filterValues.from, filterValues.to) : null\n }, okBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onClear ? onClear(columnDef.name) : null,\n variant: \"secondary\"\n }, clearBtnCaption), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => onCancel ? onCancel(columnDef.name) : null\n }, cancelBtnCaption)));\n};\n\n//Контроль свойств - Диалог фильтра\nP8PTableColumnFilterDialog.propTypes = {\n columnDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object).isRequired,\n from: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n to: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().any),\n valueCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFromCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n clearBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onClear: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//Сводный фильтр\nconst P8PTableFiltersChips = ({\n filters,\n columnsDef,\n valueFromCaption,\n valueToCaption,\n onFilterChipClick,\n onFilterChipDelete,\n valueFormatter\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n spacing: 1,\n p: 1\n }, filters.map((filter, i) => {\n const columnDef = columnsDef.find(columnDef => columnDef.name == filter.name);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n key: i,\n label: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n sx: STYLES.FILTER_CHIP\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"strong\", null, columnDef.caption), \":\\xA0\", (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.from) && !columnDef.values && columnDef.dataType != P8P_TABLE_DATA_TYPE.STR ? `${valueFromCaption.toLowerCase()} ` : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.from) ? valueFormatter ? valueFormatter({\n value: filter.from,\n columnDef\n }) : filter.from : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.to) && !columnDef.values && columnDef.dataType != P8P_TABLE_DATA_TYPE.STR ? ` ${valueToCaption.toLowerCase()} ` : null, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.hasValue)(filter.to) ? valueFormatter ? valueFormatter({\n value: filter.to,\n columnDef\n }) : filter.to : null),\n variant: \"outlined\",\n onClick: () => onFilterChipClick ? onFilterChipClick(columnDef.name) : null,\n onDelete: () => onFilterChipDelete ? onFilterChipDelete(columnDef.name) : null\n });\n }));\n};\n\n//Контроль свойств - Сводный фильтр\nP8PTableFiltersChips.propTypes = {\n filters: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n columnsDef: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n valueFromCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n onFilterChipClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onFilterChipDelete: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица\nconst P8PTable = ({\n style = {},\n tableStyle = {},\n columnsDef = [],\n groups = [],\n rows = [],\n orders,\n filters,\n size,\n pageNumber = 1,\n pagesCount = 0,\n pagesAlign = P8P_TABLE_PAGINATOR_ALIGN.RIGHT,\n pagesPosition = P8P_TABLE_PAGINATOR_POSITION.BOTTOM,\n fixedHeader = false,\n fixedColumns = 0,\n morePages = false,\n reloading = false,\n expandable,\n orderAscMenuItemCaption,\n orderDescMenuItemCaption,\n filterMenuItemCaption,\n valueFilterCaption,\n valueFromFilterCaption,\n valueToFilterCaption,\n okFilterBtnCaption,\n clearFilterBtnCaption,\n cancelFilterBtnCaption,\n morePagesBtnCaption,\n morePagesBtnProps,\n noDataFoundText,\n headCellRender,\n dataCellRender,\n groupCellRender,\n rowExpandRender,\n valueFormatter,\n onOrderChanged,\n onFilterChanged,\n onPagesCountChanged,\n onPageChanged,\n objectsCopier,\n containerComponent,\n containerComponentProps\n}) => {\n //Собственное состояние - описание заголовка\n const [header, dispatchHeaderAction] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.p8pTableReducer, (0,_p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.HEADER_INITIAL_STATE)());\n\n //Собственное состояние - фильтруемая колонка\n const [filterColumn, setFilterColumn] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Собственное состояние - развёрнутые строки\n const [expanded, setExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});\n\n //Собственное состояния - развёрнутые группы\n const [expandedGroups, setExpandedGroups] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Array.isArray(groups) && groups.length > 0 ? Object.assign({}, ...groups.map(g => ({\n [g.name]: g.expanded\n }))) : {});\n\n //Собственное состояние - колонка с отображаемой подсказкой\n const [displayHintColumn, setDisplayHintColumn] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n\n //Стили\n const theme = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_17__[\"default\"])();\n\n //Описание фильтруемой колонки\n const filterColumnDef = filterColumn ? columnsDef.find(columnDef => columnDef.name == filterColumn) || null : null;\n\n //Описание колонки с отображаемой подсказкой\n const displayHintColumnDef = displayHintColumn ? columnsDef.find(columnDef => columnDef.name == displayHintColumn) || null : null;\n\n //Значения фильтра фильтруемой колонки\n const [filterColumnFrom, filterColumnTo] = filterColumn ? (() => {\n const filter = filters.find(filter => filter.name == filterColumn);\n return filter ? [filter.from == null ? \"\" : filter.from, filter.to == null ? \"\" : filter.to] : [\"\", \"\"];\n })() : [\"\", \"\"];\n\n //Формирование заголовка таблицы\n const setHeader = ({\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n }) => dispatchHeaderAction({\n type: _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.P8P_TABLE_AT.SET_HEADER,\n payload: {\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n }\n });\n\n //Сворачивание/разворачивание уровня заголовка таблицы\n const toggleHeaderExpand = ({\n columnName,\n objectsCopier\n }) => dispatchHeaderAction({\n type: _p8p_table_reducer__WEBPACK_IMPORTED_MODULE_2__.P8P_TABLE_AT.TOGGLE_HEADER_EXPAND,\n payload: {\n columnName,\n expandable,\n fixedColumns,\n objectsCopier\n }\n });\n\n //Выравнивание в зависимости от типа данных\n const getAlignByDataType = ({\n dataType,\n hasChild\n }) => dataType === P8P_TABLE_DATA_TYPE.DATE || hasChild ? \"center\" : dataType === P8P_TABLE_DATA_TYPE.NUMB ? \"right\" : \"left\";\n\n //Упорядочение содержимого в зависимости от типа данных\n const getJustifyContentByDataType = ({\n dataType,\n hasChild\n }) => dataType === P8P_TABLE_DATA_TYPE.DATE || hasChild ? \"center\" : dataType === P8P_TABLE_DATA_TYPE.NUMB ? \"flex-end\" : \"flex-start\";\n\n //Отработка нажатия на элемент пункта меню\n const handleToolBarItemClick = (action, columnName) => {\n switch (action) {\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.ORDER_TOGGLE:\n {\n const colOrder = orders.find(o => o.name == columnName);\n const newDirection = colOrder?.direction == P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC ? P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC : colOrder?.direction == P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC ? null : P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC;\n if (onOrderChanged) onOrderChanged({\n columnName,\n direction: newDirection\n });\n break;\n }\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.FILTER_TOGGLE:\n setFilterColumn(columnName);\n break;\n case P8P_TABLE_COLUMN_TOOL_BAR_ACTIONS.EXPAND_TOGGLE:\n toggleHeaderExpand({\n columnName,\n objectsCopier\n });\n break;\n }\n };\n\n //Отработка нажатия на пункты меню\n const handleMenuItemClick = (action, columnName) => {\n switch (action) {\n case P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_ASC:\n onOrderChanged({\n columnName,\n direction: P8P_TABLE_COLUMN_ORDER_DIRECTIONS.ASC\n });\n break;\n case P8P_TABLE_COLUMN_MENU_ACTIONS.ORDER_DESC:\n onOrderChanged({\n columnName,\n direction: P8P_TABLE_COLUMN_ORDER_DIRECTIONS.DESC\n });\n break;\n case P8P_TABLE_COLUMN_MENU_ACTIONS.FILTER:\n setFilterColumn(columnName);\n break;\n }\n };\n\n //Отработка ввода значения фильтра колонки\n const handleFilterOk = (columnName, from, to) => {\n if (onFilterChanged) onFilterChanged({\n columnName,\n from: from === \"\" ? null : from,\n to: to === \"\" ? null : to\n });\n setFilterColumn(null);\n };\n\n //Отработка очистки значения фильтра колонки\n const handleFilterClear = columnName => {\n if (onFilterChanged) onFilterChanged({\n columnName,\n from: null,\n to: null\n });\n setFilterColumn(null);\n };\n\n //Отработка отмены ввода значения фильтра колонки\n const handleFilterCancel = () => {\n setFilterColumn(null);\n };\n\n //Отработка нажатия на элемент сводного фильтра\n const handleFilterChipClick = columnName => setFilterColumn(columnName);\n\n //Отработка удаления элемента сводного фильтра\n const handleFilterChipDelete = columnName => onFilterChanged ? onFilterChanged({\n columnName,\n from: null,\n to: null\n }) : null;\n\n //Отработка нажатия на кнопку догрузки страницы\n const handleMorePagesBtnClick = () => {\n if (onPagesCountChanged) onPagesCountChanged();\n };\n\n //Отработка нажатия на элемент отображения подсказки по колонке\n const handleColumnShowHintClick = columnName => setDisplayHintColumn(columnName);\n\n //Отработка сокрытия подсказки по колонке\n const handleHintOk = () => setDisplayHintColumn(null);\n\n //Отработка нажатия на кнопку раскрытия элемента\n const handleExpandClick = rowIndex => {\n if (expanded[rowIndex] === true) setExpanded(pv => {\n let res = {\n ...pv\n };\n delete res[rowIndex];\n return res;\n });else setExpanded(pv => ({\n ...pv,\n [rowIndex]: true\n }));\n };\n\n //Отработка изменения страницы\n const handlePageChange = (e, page) => onPageChanged && onPageChanged({\n page\n });\n\n //При перезагрузке данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (reloading) setExpanded({});\n }, [reloading]);\n\n //При изменении описания колонок\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setHeader({\n columnsDef,\n expandable,\n fixedColumns,\n objectsCopier\n });\n }, [columnsDef, expandable, fixedColumns, objectsCopier]);\n\n //Генерация заголовка группы\n const renderGroupCell = group => {\n let customRender = {};\n if (groupCellRender) customRender = groupCellRender({\n columnsDef: header.columnsDef,\n group\n }) || {};\n return header.displayDataColumns.map((columnDef, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `group-header-cell-${i}`\n }, customRender.cellProps, {\n sx: {\n ...STYLES.TABLE_CELL_GROUP_HEADER,\n ...customRender.cellStyle,\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(i == 0 && fixedColumns ? STYLES.TABLE_CELL_GROUP_HEADER_STICKY : {})\n },\n colSpan: expandable && rowExpandRender ? 2 : 1\n }), i == 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n direction: \"row\",\n sx: STYLES.TABLE_COLUMN_STACK\n }, group.expandable ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => {\n setExpandedGroups(pv => ({\n ...pv,\n ...{\n [group.name]: !pv[group.name]\n }\n }));\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, expandedGroups[group.name] ? \"indeterminate_check_box\" : \"add_box\")) : null, customRender.data ? customRender.data : group.caption) : null));\n };\n\n //Генерация области страниц\n const renderPagination = position => {\n //Признак отображения в конкретной области\n const isVisible = [position === P8P_TABLE_PAGINATOR_POSITION.TOP ? P8P_TABLE_PAGINATOR_POSITION.TOP : P8P_TABLE_PAGINATOR_POSITION.BOTTOM, P8P_TABLE_PAGINATOR_POSITION.BOTH].includes(pagesPosition);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, pagesCount && pagesCount > 0 && isVisible ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n sx: STYLES.PAGINATION(pagesAlign, position),\n count: pagesCount,\n defaultPage: 1,\n page: pageNumber,\n size: \"medium\",\n onChange: handlePageChange\n }) : null);\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n ...(style || {})\n }\n }, displayHintColumn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PHintDialog, {\n title: displayHintColumnDef.caption,\n hint: displayHintColumnDef.hint,\n onOk: handleHintOk\n }) : null, filterColumn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnFilterDialog, {\n columnDef: filterColumnDef,\n from: filterColumnFrom,\n to: filterColumnTo,\n valueCaption: valueFilterCaption,\n valueFromCaption: valueFromFilterCaption,\n valueToCaption: valueToFilterCaption,\n okBtnCaption: okFilterBtnCaption,\n clearBtnCaption: clearFilterBtnCaption,\n cancelBtnCaption: cancelFilterBtnCaption,\n valueFormatter: valueFormatter,\n onOk: handleFilterOk,\n onClear: handleFilterClear,\n onCancel: handleFilterCancel\n }) : null, Array.isArray(filters) && filters.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableFiltersChips, {\n filters: filters,\n columnsDef: columnsDef,\n valueFromCaption: valueFromFilterCaption,\n valueToCaption: valueToFilterCaption,\n onFilterChipClick: handleFilterChipClick,\n onFilterChipDelete: handleFilterChipDelete,\n valueFormatter: valueFormatter\n }) : null, renderPagination(P8P_TABLE_PAGINATOR_POSITION.TOP), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], _extends({\n component: containerComponent ? containerComponent : _mui_material__WEBPACK_IMPORTED_MODULE_21__[\"default\"]\n }, containerComponentProps ? containerComponentProps : {}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n stickyHeader: fixedHeader,\n sx: {\n ...STYLES.TABLE,\n ...(tableStyle || {})\n },\n size: size || P8P_TABLE_SIZE.MEDIUM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n sx: fixedHeader ? STYLES.TABLE_HEAD_STICKY : {}\n }, header.displayLevels.map((level, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: level\n }, expandable && rowExpandRender && i == 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n key: \"head-cell-expand-control\",\n align: \"center\",\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTROL,\n ...(fixedColumns ? STYLES.TABLE_HEAD_CELL_STICKY(theme, 0) : {})\n },\n rowSpan: header.displayLevelsColumns[level][0].rowSpan\n }) : null, header.displayLevelsColumns[level].map((columnDef, j) => {\n let customRender = {};\n if (headCellRender) customRender = headCellRender({\n columnDef\n }) || {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `head-cell-${j}`,\n align: getAlignByDataType(columnDef),\n sx: {\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(columnDef.fixed ? STYLES.TABLE_HEAD_CELL_STICKY(theme, columnDef.fixedLeft) : {}),\n ...customRender.cellStyle\n },\n rowSpan: columnDef.rowSpan,\n colSpan: columnDef.colSpan\n }, customRender.cellProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], _extends({\n direction: \"row\",\n justifyContent: getJustifyContentByDataType(columnDef),\n sx: {\n ...STYLES.TABLE_COLUMN_STACK,\n ...customRender.stackStyle\n }\n }, customRender.stackProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnToolBarLeft, {\n columnDef: columnDef,\n onItemClick: handleToolBarItemClick\n }), customRender.data ? customRender.data : columnDef.hint ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => handleColumnShowHintClick(columnDef.name)\n }, columnDef.caption) : columnDef.caption, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnToolBarRight, {\n columnDef: columnDef,\n orders: orders,\n filters: filters,\n onItemClick: handleToolBarItemClick\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(P8PTableColumnMenu, {\n columnDef: columnDef,\n orderAscItemCaption: orderAscMenuItemCaption,\n orderDescItemCaption: orderDescMenuItemCaption,\n filterItemCaption: filterMenuItemCaption,\n onItemClick: handleMenuItemClick\n })));\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], null, rows.length > 0 ? (Array.isArray(groups) && groups.length > 0 ? groups : [{}]).map((group, g) => {\n const rowsView = rows.map((row, i) => !group?.name || group?.name == row.groupName ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: `data-${i}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: `data-row-${i}`,\n sx: STYLES.TABLE_ROW\n }, expandable && rowExpandRender ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n key: `data-cell-expand-control-${i}`,\n align: \"center\",\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTROL,\n ...(fixedColumns ? STYLES.TABLE_CELL_STICKY(theme, 0) : {})\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onClick: () => handleExpandClick(i)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null, expanded[i] === true ? \"keyboard_arrow_down\" : \"keyboard_arrow_right\"))) : null, header.displayDataColumns.map((columnDef, j) => {\n let customRender = {};\n if (dataCellRender) customRender = dataCellRender({\n row,\n columnDef\n }) || {};\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _extends({\n key: `data-cell-${j}`,\n align: getAlignByDataType(columnDef),\n sx: {\n ...(columnDef.width ? {\n minWidth: columnDef.width,\n maxWidth: columnDef.width\n } : {}),\n ...(columnDef.fixed ? STYLES.TABLE_CELL_STICKY(theme, columnDef.fixedLeft) : {}),\n ...customRender.cellStyle\n }\n }, customRender.cellProps), customRender.data ? customRender.data : valueFormatter ? valueFormatter({\n value: row[columnDef.name],\n columnDef\n }) : row[columnDef.name]);\n })), expandable && rowExpandRender && expanded[i] === true ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: `data-row-expand-${i}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: {\n ...STYLES.TABLE_CELL_EXPAND_CONTAINER,\n ...(fixedColumns ? STYLES.TABLE_CELL_STICKY(theme, 0) : {})\n },\n colSpan: fixedColumns ? header.displayFixedColumnsCount + 1 : header.displayDataColumnsCount\n }, rowExpandRender({\n columnsDef,\n row\n }))) : null) : null);\n return !group?.name ? rowsView : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), {\n key: `group-${g}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: `group-header-${g}`\n }, renderGroupCell(group)), !group.expandable || expandedGroups[group.name] === true ? rowsView : null);\n }) : noDataFoundText && !reloading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n colSpan: header.displayDataColumnsCount\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_p8p_app_message__WEBPACK_IMPORTED_MODULE_1__.P8PAppInlineError, {\n text: noDataFoundText\n }))) : null))), renderPagination(P8P_TABLE_PAGINATOR_POSITION.BOTTOM), morePages && (!pagesCount || pagesCount <= 0) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n style: STYLES.MORE_BUTTON_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], _extends({\n fullWidth: true,\n onClick: handleMorePagesBtnClick\n }, morePagesBtnProps ? morePagesBtnProps : {}), morePagesBtnCaption)) : null);\n};\n\n//Контроль свойств - Таблица\nP8PTable.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n tableStyle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n columnsDef: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n order: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n dataType: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n visible: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n values: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),\n parent: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n width: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n })).isRequired,\n groups: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n caption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,\n expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired\n })),\n rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array).isRequired,\n orders: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n direction: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired\n })).isRequired,\n filters: prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf(P8P_TABLE_FILTER_SHAPE).isRequired,\n size: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n pageNumber: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n pagesCount: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n pagesAlign: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n pagesPosition: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n fixedHeader: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n fixedColumns: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n morePages: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n reloading: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n expandable: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n orderAscMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n orderDescMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n filterMenuItemCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueFromFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n valueToFilterCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n okFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n clearFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n cancelFilterBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnCaption: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n morePagesBtnProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n noDataFoundText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n headCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n dataCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n groupCellRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n rowExpandRender: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n valueFormatter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onOrderChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onFilterChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onPagesCountChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n onPageChanged: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n objectsCopier: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n containerComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)]),\n containerComponentProps: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_table.js?");
/***/ }),
@@ -357,7 +588,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 */ ApplicationContext: () => (/* binding */ ApplicationContext),\n/* harmony export */ \"ApplicationСtx\": () => (/* binding */ ApplicationСtx)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _application_reducer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./application_reducer */ \"./app/context/application_reducer.js\");\n/* harmony import */ var _messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backend */ \"./app/context/backend.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Приложение\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Редьюсер состояния\n //Контекст отображения сообщений\n //Контекст взаимодействия с сервером\n\n//---------\n//Константы\n//---------\n\n//Клиентский API \"ПАРУС 8 Онлайн\"\nconst P8O_API = window.top?.parus?.clientApi;\n\n//Структура объекта с описанием ошибок\nconst APPLICATION_CONTEXT_ERRORS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n P8O_API_UNAVAILABLE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n P8O_API_UNSUPPORTED: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст приложения\nconst ApplicationСtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста приложения\nconst ApplicationContext = ({\n errors,\n displaySizeGetter,\n guidGenerator,\n config,\n children\n}) => {\n //Подключим редьюсер состояния\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_application_reducer__WEBPACK_IMPORTED_MODULE_1__.applicationReducer, (0,_application_reducer__WEBPACK_IMPORTED_MODULE_1__.INITIAL_STATE)(displaySizeGetter));\n\n //Подключение к контексту взаимодействия с сервером\n const {\n getConfig,\n getRespPayload\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_backend__WEBPACK_IMPORTED_MODULE_3__[\"BackEndСtx\"]);\n\n //Подключение к контексту отображения сообщений\n const {\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_messaging__WEBPACK_IMPORTED_MODULE_2__[\"MessagingСtx\"]);\n\n //Установка флага инициализированности приложения\n const setInitialized = () => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_INITIALIZED\n });\n\n //Установка текущего размера экрана\n const setDisplaySize = displaySize => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_DISPLAY_SIZE,\n payload: displaySize\n });\n\n //Установка базового URL приложения\n const setUrlBase = urlBase => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_URL_BASE,\n payload: urlBase\n });\n\n //Установка списка панелей\n const setPanels = panels => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.LOAD_PANELS,\n payload: panels\n });\n\n //Установка заголовка в шапке приложения\n const setAppBarTitle = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(appBarTitle => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_APP_BAR_TITLE,\n payload: appBarTitle\n }), []);\n\n //Поиск раздела по имени\n const findPanelByName = name => state.panels.find(panel => panel.name == name);\n\n //Отображение закладки \"ПАРУС 8 Онлайн\" с указанным URL\n const pOnlineShowTab = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n id,\n url,\n caption,\n onClose\n }) => {\n if (P8O_API) {\n const _id = id || guidGenerator();\n P8O_API.ui.openTab({\n id: _id,\n url,\n caption,\n onClose: () => onClose ? onClose(_id) : null\n });\n return _id;\n } else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, guidGenerator, errors.P8O_API_UNAVAILABLE]);\n\n //Отображение раздела \"ПАРУС 8 Онлайн\"\n const pOnlineShowUnit = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n showMethod = \"main\",\n inputParameters,\n modal = true\n }) => {\n if (P8O_API) modal ? P8O_API.fn.openDocumentModal({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }) : P8O_API.fn.openDocument ? P8O_API.fn.openDocument({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }) : showMsgErr(errors.P8O_API_UNSUPPORTED);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED]);\n\n //Отображение документа \"ПАРУС 8 Онлайн\"\n const pOnlineShowDocument = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n document,\n showMethod = \"main\",\n inRnParameter = \"in_RN\",\n modal = true\n }) => {\n if (P8O_API) modal ? P8O_API.fn.openDocumentModal({\n unitcode: unitCode,\n method: showMethod,\n inputParameters: [{\n name: inRnParameter,\n value: document\n }]\n }) : P8O_API.fn.openDocument ? P8O_API.fn.openDocument({\n unitcode: unitCode,\n method: showMethod,\n inputParameters: [{\n name: inRnParameter,\n value: document\n }]\n }) : showMsgErr(errors.P8O_API_UNSUPPORTED);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED]);\n\n //Отображение словаря \"ПАРУС 8 Онлайн\"\n const pOnlineShowDictionary = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n showMethod = \"main\",\n inputParameters,\n callBack\n }) => {\n if (P8O_API) P8O_API.fn.openDictionary({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }, res => callBack ? callBack(res) : null);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Исполнение пользовательской процедуры \"ПАРУС 8 Онлайн\"\n const pOnlineUserProcedure = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n code,\n inputParameters,\n callBack\n }) => {\n if (P8O_API) P8O_API.fn.performUserProcedureSync({\n code,\n inputParameters\n }, res => callBack ? callBack(res) : null);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Исполнение пользовательского отчёта \"ПАРУС 8 Онлайн\"\n const pOnlineUserReport = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n code,\n inputParameters\n }) => {\n if (P8O_API) P8O_API.fn.performUserReport({\n code,\n inputParameters\n });else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Получение количества записей на странице\n const configSystemPageSize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => config.SYSTEM.PAGE_SIZE, [config.SYSTEM.PAGE_SIZE]);\n\n //Получение базового URL приложения\n const configUrlBase = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => state.urlBase, [state.urlBase]);\n\n //Инициализация приложения\n const initApp = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Читаем конфигурацию с сервера\n let res = await getConfig();\n //Сохраняем базовый URL приложения\n setUrlBase(getRespPayload(res)?.Panels?.urlBase);\n //Сохраняем список панелей\n setPanels(getRespPayload(res)?.Panels?.Panel);\n //Установим флаг завершения инициализации\n setInitialized();\n }, [getConfig, getRespPayload]);\n\n //Обработка подключения контекста к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!state.initialized) {\n //Слушаем изменение размеров окна\n window.addEventListener(\"resize\", () => {\n if (displaySizeGetter) setDisplaySize(displaySizeGetter());\n });\n //Инициализируем приложение\n initApp();\n }\n }, [state.initialized, initApp, displaySizeGetter]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ApplicationСtx.Provider, {\n value: {\n setAppBarTitle,\n findPanelByName,\n pOnlineShowTab,\n pOnlineShowUnit,\n pOnlineShowDocument,\n pOnlineShowDictionary,\n pOnlineUserProcedure,\n pOnlineUserReport,\n configSystemPageSize,\n configUrlBase,\n appState: state\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста приложения\nApplicationContext.propTypes = {\n errors: APPLICATION_CONTEXT_ERRORS_SHAPE.isRequired,\n displaySizeGetter: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n guidGenerator: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func).isRequired,\n config: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/application.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ApplicationContext: () => (/* binding */ ApplicationContext),\n/* harmony export */ ApplicationCtx: () => (/* binding */ ApplicationCtx)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _application_reducer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./application_reducer */ \"./app/context/application_reducer.js\");\n/* harmony import */ var _messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backend */ \"./app/context/backend.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Приложение\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Редьюсер состояния\n //Контекст отображения сообщений\n //Контекст взаимодействия с сервером\n\n//---------\n//Константы\n//---------\n\n//Клиентский API \"ПАРУС 8 Онлайн\"\nconst P8O_API = window.top?.parus?.clientApi;\n\n//Структура объекта с описанием ошибок\nconst APPLICATION_CONTEXT_ERRORS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n P8O_API_UNAVAILABLE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n P8O_API_UNSUPPORTED: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст приложения\nconst ApplicationCtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста приложения\nconst ApplicationContext = ({\n errors,\n displaySizeGetter,\n guidGenerator,\n config,\n children\n}) => {\n //Подключим редьюсер состояния\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_application_reducer__WEBPACK_IMPORTED_MODULE_1__.applicationReducer, (0,_application_reducer__WEBPACK_IMPORTED_MODULE_1__.INITIAL_STATE)(displaySizeGetter));\n\n //Подключение к контексту взаимодействия с сервером\n const {\n getConfig,\n getRespPayload\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_backend__WEBPACK_IMPORTED_MODULE_3__.BackEndCtx);\n\n //Подключение к контексту отображения сообщений\n const {\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_messaging__WEBPACK_IMPORTED_MODULE_2__.MessagingCtx);\n\n //Установка флага инициализированности приложения\n const setInitialized = () => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_INITIALIZED\n });\n\n //Установка текущего размера экрана\n const setDisplaySize = displaySize => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_DISPLAY_SIZE,\n payload: displaySize\n });\n\n //Установка базового URL приложения\n const setUrlBase = urlBase => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_URL_BASE,\n payload: urlBase\n });\n\n //Установка списка панелей\n const setPanels = panels => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.LOAD_PANELS,\n payload: panels\n });\n\n //Установка заголовка в шапке приложения\n const setAppBarTitle = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(appBarTitle => dispatch({\n type: _application_reducer__WEBPACK_IMPORTED_MODULE_1__.APP_AT.SET_APP_BAR_TITLE,\n payload: appBarTitle\n }), []);\n\n //Поиск раздела по имени\n const findPanelByName = name => state.panels.find(panel => panel.name == name);\n\n //Отображение закладки \"ПАРУС 8 Онлайн\" с указанным URL\n const pOnlineShowTab = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n id,\n url,\n caption,\n onClose\n }) => {\n if (P8O_API) {\n const _id = id || guidGenerator();\n P8O_API.ui.openTab({\n id: _id,\n url,\n caption,\n onClose: () => onClose ? onClose(_id) : null\n });\n return _id;\n } else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, guidGenerator, errors.P8O_API_UNAVAILABLE]);\n\n //Отображение раздела \"ПАРУС 8 Онлайн\"\n const pOnlineShowUnit = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n showMethod = \"main\",\n inputParameters,\n modal = true\n }) => {\n if (P8O_API) modal ? P8O_API.fn.openDocumentModal({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }) : P8O_API.fn.openDocument ? P8O_API.fn.openDocument({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }) : showMsgErr(errors.P8O_API_UNSUPPORTED);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED]);\n\n //Отображение документа \"ПАРУС 8 Онлайн\"\n const pOnlineShowDocument = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n document,\n showMethod = \"main\",\n inRnParameter = \"in_RN\",\n modal = true\n }) => {\n if (P8O_API) modal ? P8O_API.fn.openDocumentModal({\n unitcode: unitCode,\n method: showMethod,\n inputParameters: [{\n name: inRnParameter,\n value: document\n }]\n }) : P8O_API.fn.openDocument ? P8O_API.fn.openDocument({\n unitcode: unitCode,\n method: showMethod,\n inputParameters: [{\n name: inRnParameter,\n value: document\n }]\n }) : showMsgErr(errors.P8O_API_UNSUPPORTED);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED]);\n\n //Отображение словаря \"ПАРУС 8 Онлайн\"\n const pOnlineShowDictionary = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n unitCode,\n showMethod = \"main\",\n inputParameters,\n callBack\n }) => {\n if (P8O_API) P8O_API.fn.openDictionary({\n unitcode: unitCode,\n method: showMethod,\n inputParameters\n }, res => callBack ? callBack(res) : null);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Исполнение пользовательской процедуры \"ПАРУС 8 Онлайн\"\n const pOnlineUserProcedure = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n code,\n inputParameters,\n callBack\n }) => {\n if (P8O_API) P8O_API.fn.performUserProcedureSync({\n code,\n inputParameters\n }, res => callBack ? callBack(res) : null);else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Исполнение пользовательского отчёта \"ПАРУС 8 Онлайн\"\n const pOnlineUserReport = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n code,\n inputParameters\n }) => {\n if (P8O_API) P8O_API.fn.performUserReport({\n code,\n inputParameters\n });else showMsgErr(errors.P8O_API_UNAVAILABLE);\n }, [showMsgErr, errors.P8O_API_UNAVAILABLE]);\n\n //Получение количества записей на странице\n const configSystemPageSize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => config.SYSTEM.PAGE_SIZE, [config.SYSTEM.PAGE_SIZE]);\n\n //Получение базового URL приложения\n const configUrlBase = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => state.urlBase, [state.urlBase]);\n\n //Инициализация приложения\n const initApp = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Читаем конфигурацию с сервера\n let res = await getConfig();\n //Сохраняем базовый URL приложения\n setUrlBase(getRespPayload(res)?.Panels?.urlBase);\n //Сохраняем список панелей\n setPanels(getRespPayload(res)?.Panels?.Panel);\n //Установим флаг завершения инициализации\n setInitialized();\n }, [getConfig, getRespPayload]);\n\n //Обработка подключения контекста к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!state.initialized) {\n //Слушаем изменение размеров окна\n window.addEventListener(\"resize\", () => {\n if (displaySizeGetter) setDisplaySize(displaySizeGetter());\n });\n //Инициализируем приложение\n initApp();\n }\n }, [state.initialized, initApp, displaySizeGetter]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ApplicationCtx.Provider, {\n value: {\n setAppBarTitle,\n findPanelByName,\n pOnlineShowTab,\n pOnlineShowUnit,\n pOnlineShowDocument,\n pOnlineShowDictionary,\n pOnlineUserProcedure,\n pOnlineUserReport,\n configSystemPageSize,\n configUrlBase,\n appState: state\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста приложения\nApplicationContext.propTypes = {\n errors: APPLICATION_CONTEXT_ERRORS_SHAPE.isRequired,\n displaySizeGetter: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n guidGenerator: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func).isRequired,\n config: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object).isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/application.js?");
/***/ }),
@@ -379,7 +610,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 */ BackEndContext: () => (/* binding */ BackEndContext),\n/* harmony export */ \"BackEndСtx\": () => (/* binding */ BackEndСtx)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./messaging */ \"./app/context/messaging.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 Контекст: Взаимодействие с серверным API\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Контекст сообщений\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Структура объекта клиента\nconst BACKEND_CONTEXT_CLIENT_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n SERV_DATA_TYPE_STR: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_NUMB: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_DATE: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_CLOB: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n isRespErr: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getRespErrMessage: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getRespPayload: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n executeStored: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getConfig: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст взаимодействия с серверным API\nconst BackEndСtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста взаимодействия с серверным API\nconst BackEndContext = ({\n client,\n children\n}) => {\n //Подключение к контексту сообщений\n const {\n showLoader,\n hideLoader,\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_messaging__WEBPACK_IMPORTED_MODULE_1__[\"MessagingСtx\"]);\n\n //Проверка ответа на наличие ошибки\n const isRespErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.isRespErr(resp), [client]);\n\n //Извлечение ошибки из ответа\n const getRespErrMessage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.getRespErrMessage(resp), [client]);\n\n //Извлечение полезного содержимого из ответа\n const getRespPayload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.getRespPayload(resp), [client]);\n\n //Запуск хранимой процедуры\n const executeStored = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n stored,\n args,\n respArg,\n isArray,\n tagValueProcessor,\n attributeValueProcessor,\n loader = true,\n loaderMessage = \"\",\n throwError = true,\n showErrorMessage = true,\n fullResponse = false,\n spreadOutArguments = true,\n signal = null\n } = {}) => {\n try {\n if (loader !== false) showLoader(loaderMessage);\n let result = await client.executeStored({\n stored,\n args,\n respArg,\n isArray,\n tagValueProcessor,\n attributeValueProcessor,\n throwError,\n spreadOutArguments,\n signal\n });\n if (fullResponse === true || isRespErr(result)) return result;else return result.XPAYLOAD;\n } catch (e) {\n if (showErrorMessage) {\n //Разбираем текст ошибки\n let errMsg = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatErrorMessage)(e.message);\n //Отображаем ошибку\n showMsgErr(errMsg.text, null, errMsg.fullErrorText);\n }\n throw e;\n } finally {\n if (loader !== false) hideLoader();\n }\n }, [showLoader, hideLoader, isRespErr, showMsgErr, client]);\n\n //Загрузка настроек панелей\n const getConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n loader = true,\n loaderMessage = \"\",\n throwError = true,\n showErrorMessage = true\n } = {}) => {\n try {\n if (loader !== false) showLoader(loaderMessage);\n let result = await client.getConfig({\n throwError\n });\n return result;\n } catch (e) {\n if (showErrorMessage) showMsgErr(e.message);\n throw e;\n } finally {\n if (loader !== false) hideLoader();\n }\n }, [showLoader, hideLoader, showMsgErr, client]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(BackEndСtx.Provider, {\n value: {\n SERV_DATA_TYPE_STR: client.SERV_DATA_TYPE_STR,\n SERV_DATA_TYPE_NUMB: client.SERV_DATA_TYPE_NUMB,\n SERV_DATA_TYPE_DATE: client.SERV_DATA_TYPE_DATE,\n SERV_DATA_TYPE_CLOB: client.SERV_DATA_TYPE_CLOB,\n isRespErr,\n getRespErrMessage,\n getRespPayload,\n executeStored,\n getConfig\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста взаимодействия с серверным API\nBackEndContext.propTypes = {\n client: BACKEND_CONTEXT_CLIENT_SHAPE.isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/backend.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BackEndContext: () => (/* binding */ BackEndContext),\n/* harmony export */ BackEndCtx: () => (/* binding */ BackEndCtx)\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_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./messaging */ \"./app/context/messaging.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 Контекст: Взаимодействие с серверным API\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Контекст сообщений\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Структура объекта клиента\nconst BACKEND_CONTEXT_CLIENT_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({\n SERV_DATA_TYPE_STR: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_NUMB: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_DATE: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n SERV_DATA_TYPE_CLOB: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,\n isRespErr: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getRespErrMessage: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getRespPayload: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n executeStored: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,\n getConfig: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст взаимодействия с серверным API\nconst BackEndCtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста взаимодействия с серверным API\nconst BackEndContext = ({\n client,\n children\n}) => {\n //Подключение к контексту сообщений\n const {\n showLoader,\n hideLoader,\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_messaging__WEBPACK_IMPORTED_MODULE_1__.MessagingCtx);\n\n //Проверка ответа на наличие ошибки\n const isRespErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.isRespErr(resp), [client]);\n\n //Извлечение ошибки из ответа\n const getRespErrMessage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.getRespErrMessage(resp), [client]);\n\n //Извлечение полезного содержимого из ответа\n const getRespPayload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(resp => client.getRespPayload(resp), [client]);\n\n //Запуск хранимой процедуры\n const executeStored = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n stored,\n args,\n respArg,\n isArray,\n tagValueProcessor,\n attributeValueProcessor,\n loader = true,\n loaderMessage = \"\",\n throwError = true,\n showErrorMessage = true,\n fullResponse = false,\n spreadOutArguments = true,\n signal = null\n } = {}) => {\n try {\n if (loader !== false) showLoader(loaderMessage);\n let result = await client.executeStored({\n stored,\n args,\n respArg,\n isArray,\n tagValueProcessor,\n attributeValueProcessor,\n throwError,\n spreadOutArguments,\n signal\n });\n if (fullResponse === true || isRespErr(result)) return result;else return result.XPAYLOAD;\n } catch (e) {\n if (showErrorMessage) {\n //Разбираем текст ошибки\n let errMsg = (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatErrorMessage)(e.message);\n //Отображаем ошибку\n showMsgErr(errMsg.text, null, errMsg.fullErrorText);\n }\n throw e;\n } finally {\n if (loader !== false) hideLoader();\n }\n }, [showLoader, hideLoader, isRespErr, showMsgErr, client]);\n\n //Загрузка настроек панелей\n const getConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n loader = true,\n loaderMessage = \"\",\n throwError = true,\n showErrorMessage = true\n } = {}) => {\n try {\n if (loader !== false) showLoader(loaderMessage);\n let result = await client.getConfig({\n throwError\n });\n return result;\n } catch (e) {\n if (showErrorMessage) showMsgErr(e.message);\n throw e;\n } finally {\n if (loader !== false) hideLoader();\n }\n }, [showLoader, hideLoader, showMsgErr, client]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(BackEndCtx.Provider, {\n value: {\n SERV_DATA_TYPE_STR: client.SERV_DATA_TYPE_STR,\n SERV_DATA_TYPE_NUMB: client.SERV_DATA_TYPE_NUMB,\n SERV_DATA_TYPE_DATE: client.SERV_DATA_TYPE_DATE,\n SERV_DATA_TYPE_CLOB: client.SERV_DATA_TYPE_CLOB,\n isRespErr,\n getRespErrMessage,\n getRespPayload,\n executeStored,\n getConfig\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста взаимодействия с серверным API\nBackEndContext.propTypes = {\n client: BACKEND_CONTEXT_CLIENT_SHAPE.isRequired,\n children: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/backend.js?");
/***/ }),
@@ -390,7 +621,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 */ MessagingContext: () => (/* binding */ MessagingContext),\n/* harmony export */ \"MessagingСtx\": () => (/* binding */ MessagingСtx)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_p8p_app_progress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/p8p_app_progress */ \"./app/components/p8p_app_progress.js\");\n/* harmony import */ var _components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./messaging_reducer */ \"./app/context/messaging_reducer.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Сообщения\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Индикатор процесса\n //Диалог сообщения\n //Редьюсер состояния\n\n//---------\n//Константы\n//---------\n\n//Структура объекта с описанием типовых заголовков\nconst MESSAGING_CONTEXT_TITLES_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n ERR: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n WARN: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n INFO: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//Структура объекта с описанием типовых текстов\nconst MESSAGING_CONTEXT_TEXTS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n LOADING: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//Структура объекта с описанием типовых кнопок\nconst MESSAGING_CONTEXT_BUTTONS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n CLOSE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n OK: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n CANCEL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n DETAIL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n HIDE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст сообщений\nconst MessagingСtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста сообщений\nconst MessagingContext = ({\n titles,\n texts,\n buttons,\n children\n}) => {\n //Подключим редьюсер состояния\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.messagingReducer, _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.INITIAL_STATE);\n\n //Отображение загрузчика\n const showLoader = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(message => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.SHOW_LOADER,\n payload: message\n }), []);\n\n //Сокрытие загрузчика\n const hideLoader = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.HIDE_LOADER\n }), []);\n\n //Отображение сообщения\n const showMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((type, text, msgOnOk = null, msgOnCancel = null, fullErrorText = null) => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.SHOW_MSG,\n payload: {\n type,\n text,\n msgOnOk,\n msgOnCancel,\n fullErrorText\n }\n }), []);\n\n //Отображение сообщения - ошибка\n const showMsgErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null, fullErrorText = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR, text, msgOnOk, null, fullErrorText), [showMsg]);\n\n //Отображение сообщения - информация\n const showMsgInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.INFO, text, msgOnOk), [showMsg]);\n\n //Отображение сообщения - предупреждение\n const showMsgWarn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null, msgOnCancel = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN, text, msgOnOk, msgOnCancel), [showMsg]);\n\n //Сокрытие сообщения\n const hideMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((cancel = false) => {\n dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.HIDE_MSG\n });\n if (!cancel && state.msgOnOk) state.msgOnOk();\n if (cancel && state.msgOnCancel) state.msgOnCancel();\n }, [state]);\n\n //Отработка нажатия на \"ОК\" в сообщении\n const handleMessageOkClick = () => {\n hideMsg(false);\n };\n\n //Отработка нажатия на \"Отмена\" в сообщении\n const handleMessageCancelClick = () => {\n hideMsg(true);\n };\n\n //Встраиваемое сообщение\n const InlineMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineMessage)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение об ошибке\n const InlineMsgErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineError)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение с информацией\n const InlineMsgInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineInfo)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение с предупреждением\n const InlineMsgWarn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineWarn)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MessagingСtx.Provider, {\n value: {\n MSG_TYPE: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE,\n showLoader,\n hideLoader,\n showMsg,\n showMsgErr,\n showMsgInfo,\n showMsgWarn,\n hideMsg,\n InlineMsg,\n InlineMsgErr,\n InlineMsgInfo,\n InlineMsgWarn,\n msgState: state\n }\n }, state.loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_progress__WEBPACK_IMPORTED_MODULE_1__.P8PAppProgress, {\n open: true,\n text: state.loadingMessage || texts.LOADING\n }) : null, state.msg ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppMessage, {\n open: true,\n variant: state.msgType,\n text: state.msgText,\n fullErrorText: state.msgFullErrorText,\n title: true,\n titleText: state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR ? titles.ERR : state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN ? titles.WARN : titles.INFO,\n okBtn: true,\n onOk: handleMessageOkClick,\n okBtnCaption: [_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR, _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.INFO].includes(state.msgType) ? buttons.CLOSE : buttons.OK,\n cancelBtn: state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN,\n onCancel: handleMessageCancelClick,\n cancelBtnCaption: buttons.CANCEL,\n showErrMoreCaption: buttons.DETAIL,\n hideErrMoreCaption: buttons.HIDE\n }) : null, children);\n};\n\n//Контроль свойств - Провайдер контекста сообщений\nMessagingContext.propTypes = {\n titles: MESSAGING_CONTEXT_TITLES_SHAPE,\n texts: MESSAGING_CONTEXT_TEXTS_SHAPE,\n buttons: MESSAGING_CONTEXT_BUTTONS_SHAPE,\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/messaging.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MessagingContext: () => (/* binding */ MessagingContext),\n/* harmony export */ MessagingCtx: () => (/* binding */ MessagingCtx)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_p8p_app_progress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/p8p_app_progress */ \"./app/components/p8p_app_progress.js\");\n/* harmony import */ var _components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/p8p_app_message */ \"./app/components/p8p_app_message.js\");\n/* harmony import */ var _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./messaging_reducer */ \"./app/context/messaging_reducer.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Сообщения\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Индикатор процесса\n //Диалог сообщения\n //Редьюсер состояния\n\n//---------\n//Константы\n//---------\n\n//Структура объекта с описанием типовых заголовков\nconst MESSAGING_CONTEXT_TITLES_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n ERR: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n WARN: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n INFO: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//Структура объекта с описанием типовых текстов\nconst MESSAGING_CONTEXT_TEXTS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n LOADING: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//Структура объекта с описанием типовых кнопок\nconst MESSAGING_CONTEXT_BUTTONS_SHAPE = prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({\n CLOSE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n OK: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n CANCEL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n DETAIL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n HIDE: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n});\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Контекст сообщений\nconst MessagingCtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста сообщений\nconst MessagingContext = ({\n titles,\n texts,\n buttons,\n children\n}) => {\n //Подключим редьюсер состояния\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.messagingReducer, _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.INITIAL_STATE);\n\n //Отображение загрузчика\n const showLoader = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(message => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.SHOW_LOADER,\n payload: message\n }), []);\n\n //Сокрытие загрузчика\n const hideLoader = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.HIDE_LOADER\n }), []);\n\n //Отображение сообщения\n const showMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((type, text, msgOnOk = null, msgOnCancel = null, fullErrorText = null) => dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.SHOW_MSG,\n payload: {\n type,\n text,\n msgOnOk,\n msgOnCancel,\n fullErrorText\n }\n }), []);\n\n //Отображение сообщения - ошибка\n const showMsgErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null, fullErrorText = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR, text, msgOnOk, null, fullErrorText), [showMsg]);\n\n //Отображение сообщения - информация\n const showMsgInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.INFO, text, msgOnOk), [showMsg]);\n\n //Отображение сообщения - предупреждение\n const showMsgWarn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((text, msgOnOk = null, msgOnCancel = null) => showMsg(_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN, text, msgOnOk, msgOnCancel), [showMsg]);\n\n //Сокрытие сообщения\n const hideMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((cancel = false) => {\n dispatch({\n type: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_AT.HIDE_MSG\n });\n if (!cancel && state.msgOnOk) state.msgOnOk();\n if (cancel && state.msgOnCancel) state.msgOnCancel();\n }, [state]);\n\n //Отработка нажатия на \"ОК\" в сообщении\n const handleMessageOkClick = () => {\n hideMsg(false);\n };\n\n //Отработка нажатия на \"Отмена\" в сообщении\n const handleMessageCancelClick = () => {\n hideMsg(true);\n };\n\n //Встраиваемое сообщение\n const InlineMsg = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineMessage)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение об ошибке\n const InlineMsgErr = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineError)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение с информацией\n const InlineMsgInfo = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineInfo)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Встраиваемое сообщение с предупреждением\n const InlineMsgWarn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(props => (0,_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppInlineWarn)({\n okBtn: true,\n okBtnCaption: buttons.OK,\n ...props\n }), [buttons.OK]);\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MessagingCtx.Provider, {\n value: {\n MSG_TYPE: _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE,\n showLoader,\n hideLoader,\n showMsg,\n showMsgErr,\n showMsgInfo,\n showMsgWarn,\n hideMsg,\n InlineMsg,\n InlineMsgErr,\n InlineMsgInfo,\n InlineMsgWarn,\n msgState: state\n }\n }, state.loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_progress__WEBPACK_IMPORTED_MODULE_1__.P8PAppProgress, {\n open: true,\n text: state.loadingMessage || texts.LOADING\n }) : null, state.msg ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_app_message__WEBPACK_IMPORTED_MODULE_2__.P8PAppMessage, {\n open: true,\n variant: state.msgType,\n text: state.msgText,\n fullErrorText: state.msgFullErrorText,\n title: true,\n titleText: state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR ? titles.ERR : state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN ? titles.WARN : titles.INFO,\n okBtn: true,\n onOk: handleMessageOkClick,\n okBtnCaption: [_messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.ERR, _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.INFO].includes(state.msgType) ? buttons.CLOSE : buttons.OK,\n cancelBtn: state.msgType == _messaging_reducer__WEBPACK_IMPORTED_MODULE_3__.MSG_TYPE.WARN,\n onCancel: handleMessageCancelClick,\n cancelBtnCaption: buttons.CANCEL,\n showErrMoreCaption: buttons.DETAIL,\n hideErrMoreCaption: buttons.HIDE\n }) : null, children);\n};\n\n//Контроль свойств - Провайдер контекста сообщений\nMessagingContext.propTypes = {\n titles: MESSAGING_CONTEXT_TITLES_SHAPE,\n texts: MESSAGING_CONTEXT_TEXTS_SHAPE,\n buttons: MESSAGING_CONTEXT_BUTTONS_SHAPE,\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/messaging.js?");
/***/ }),
@@ -412,7 +643,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 */ NavigationContext: () => (/* binding */ NavigationContext),\n/* harmony export */ NavigationCtx: () => (/* binding */ NavigationCtx),\n/* harmony export */ getRootLocation: () => (/* binding */ getRootLocation)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router/dist/index.js\");\n/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! query-string */ \"./node_modules/query-string/index.js\");\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Навигация\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Роутер приложения\n //Работа со строкой запроса\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Типовые пути\nconst PATHS = {\n ROOT: \"/\" //Корень приложения\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Получение корневого пути\nconst getRootLocation = () => PATHS.ROOT;\n\n//Контекст навигации\nconst NavigationCtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста навигации\nconst NavigationContext = ({\n children\n}) => {\n //Подключение к объекту роутера для управления навигацией\n const location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useLocation)();\n\n //Подключение к объекту роутера для управления навигацией\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useNavigate)();\n\n //Подключение к контексту приложения\n const {\n findPanelByName,\n setAppBarTitle\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Проверка наличия параметров запроса\n const isNavigationSearch = () => location.search ? true : false;\n\n //Считываение параметров запроса\n const getNavigationSearch = () => query_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"].parse(location.search);\n\n //Проверка наличия параметров запроса (передаваемых через состояние)\n const isNavigationState = () => location.state ? true : false;\n\n //Считываение параметров запроса (передаваемых через состояние)\n const getNavigationState = () => isNavigationState() ? JSON.parse(location.state) : null;\n\n //Обновление текущей страницы\n const refresh = () => window.location.reload();\n\n //Возврат на предыдущую страницу\n const navigateBack = () => navigate(-1);\n\n //Переход к адресу внутри приложения\n const navigateTo = ({\n path,\n search,\n state,\n replace = false\n }) => {\n //Если указано куда переходить\n if (path) {\n //Сброс кастомного заголовка\n setAppBarTitle(\"\");\n //Переходим к адресу\n if (state) navigate(path, {\n state: JSON.stringify(state),\n replace\n });else navigate({\n pathname: path,\n search: query_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"].stringify(search),\n replace\n });\n //Флаг успешного перехода\n return true;\n }\n //Переход не состоялся\n else return false;\n };\n\n //Переход к домашней страничке\n const navigateRoot = state => navigateTo({\n path: getRootLocation(),\n state\n });\n\n //Переход к панели\n const navigatePanel = (panel, state) => {\n if (panel) {\n let path = getRootLocation();\n path = !path.endsWith(\"/\") && !panel.url.startsWith(\"/\") ? `${path}/${panel.url}` : `${path}${panel.url}`;\n navigateTo({\n path,\n state\n });\n } else return false;\n };\n\n //Переход к панели по наименованию\n const navigatePanelByName = (name, state) => navigatePanel(findPanelByName(name), state);\n\n //Переход к произвольному адресу\n const navigateURL = url => {\n window.open(url, \"_self\");\n };\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NavigationCtx.Provider, {\n value: {\n getNavigationSearch,\n isNavigationSearch,\n getNavigationState,\n isNavigationState,\n refresh,\n navigateTo,\n navigateBack,\n navigateRoot,\n navigatePanel,\n navigatePanelByName,\n navigateURL\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста навигации\nNavigationContext.propTypes = {\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/navigation.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NavigationContext: () => (/* binding */ NavigationContext),\n/* harmony export */ NavigationCtx: () => (/* binding */ NavigationCtx),\n/* harmony export */ getRootLocation: () => (/* binding */ getRootLocation)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router/dist/index.js\");\n/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! query-string */ \"./node_modules/query-string/index.js\");\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга\r\n Контекст: Навигация\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //ReactJS\n //Контроль свойств компонента\n //Роутер приложения\n //Работа со строкой запроса\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Типовые пути\nconst PATHS = {\n ROOT: \"/\" //Корень приложения\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Получение корневого пути\nconst getRootLocation = () => PATHS.ROOT;\n\n//Контекст навигации\nconst NavigationCtx = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)();\n\n//Провайдер контекста навигации\nconst NavigationContext = ({\n children\n}) => {\n //Подключение к объекту роутера для управления навигацией\n const location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useLocation)();\n\n //Подключение к объекту роутера для управления навигацией\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useNavigate)();\n\n //Подключение к контексту приложения\n const {\n findPanelByName,\n setAppBarTitle\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Проверка наличия параметров запроса\n const isNavigationSearch = () => location.search ? true : false;\n\n //Считываение параметров запроса\n const getNavigationSearch = () => query_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"].parse(location.search);\n\n //Проверка наличия параметров запроса (передаваемых через состояние)\n const isNavigationState = () => location.state ? true : false;\n\n //Считываение параметров запроса (передаваемых через состояние)\n const getNavigationState = () => isNavigationState() ? JSON.parse(location.state) : null;\n\n //Обновление текущей страницы\n const refresh = () => window.location.reload();\n\n //Возврат на предыдущую страницу\n const navigateBack = () => navigate(-1);\n\n //Переход к адресу внутри приложения\n const navigateTo = ({\n path,\n search,\n state,\n replace = false\n }) => {\n //Если указано куда переходить\n if (path) {\n //Сброс кастомного заголовка\n setAppBarTitle(\"\");\n //Переходим к адресу\n if (state) navigate(path, {\n state: JSON.stringify(state),\n replace\n });else navigate({\n pathname: path,\n search: query_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"].stringify(search),\n replace\n });\n //Флаг успешного перехода\n return true;\n }\n //Переход не состоялся\n else return false;\n };\n\n //Переход к домашней страничке\n const navigateRoot = state => navigateTo({\n path: getRootLocation(),\n state\n });\n\n //Переход к панели\n const navigatePanel = (panel, state) => {\n if (panel) {\n let path = getRootLocation();\n path = !path.endsWith(\"/\") && !panel.url.startsWith(\"/\") ? `${path}/${panel.url}` : `${path}${panel.url}`;\n navigateTo({\n path,\n state\n });\n } else return false;\n };\n\n //Переход к панели по наименованию\n const navigatePanelByName = (name, state) => navigatePanel(findPanelByName(name), state);\n\n //Переход к произвольному адресу\n const navigateURL = url => {\n window.open(url, \"_self\");\n };\n\n //Вернём компонент провайдера\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NavigationCtx.Provider, {\n value: {\n getNavigationSearch,\n isNavigationSearch,\n getNavigationState,\n isNavigationState,\n refresh,\n navigateTo,\n navigateBack,\n navigateRoot,\n navigatePanel,\n navigatePanelByName,\n navigateURL\n }\n }, children);\n};\n\n//Контроль свойств - Провайдер контекста навигации\nNavigationContext.propTypes = {\n children: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node)])\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/context/navigation.js?");
/***/ }),
@@ -434,7 +665,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 */ deepCopyObject: () => (/* binding */ deepCopyObject),\n/* harmony export */ formatDateJSONDateOnly: () => (/* binding */ formatDateJSONDateOnly),\n/* harmony export */ formatDateRF: () => (/* binding */ formatDateRF),\n/* harmony export */ formatDateTimeRF: () => (/* binding */ formatDateTimeRF),\n/* harmony export */ formatErrorMessage: () => (/* binding */ formatErrorMessage),\n/* harmony export */ formatNumberRFCurrency: () => (/* binding */ formatNumberRFCurrency),\n/* harmony export */ genGUID: () => (/* binding */ genGUID),\n/* harmony export */ getDisplaySize: () => (/* binding */ getDisplaySize),\n/* harmony export */ hasValue: () => (/* binding */ hasValue),\n/* harmony export */ object2Base64XML: () => (/* binding */ object2Base64XML),\n/* harmony export */ object2XML: () => (/* binding */ object2XML),\n/* harmony export */ xml2JSON: () => (/* binding */ xml2JSON)\n/* harmony export */ });\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-xml-parser */ \"./node_modules/fast-xml-parser/src/fxp.js\");\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__);\n/*\r\n Парус 8 - Панели мониторинга\r\n Ядро: Вспомогательные функции\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Конвертация XML в JSON и JSON в XML\n //Работа с датами\n\n//---------\n//Константы\n//---------\n\n//Коды типовых размеров экранов\nconst DISPLAY_SIZE_CODE = {\n XS: \"XS\",\n //eXtra Small - супер маленький экран\n SM: \"SM\",\n //Small - маленький экран\n MD: \"MD\",\n //Middle - средний экран\n LG: \"LG\" //Large - большой экран\n};\n\n//Типовые размеры экранов\nconst DISPLAY_SIZE = {\n [DISPLAY_SIZE_CODE.XS]: {\n WIDTH_FROM: 0,\n WIDTH_TO: 767\n },\n //eXtra Small - супер маленький экран < 768px\n [DISPLAY_SIZE_CODE.SM]: {\n WIDTH_FROM: 768,\n WIDTH_TO: 991\n },\n //Small - маленький экран >= 768px\n [DISPLAY_SIZE_CODE.MD]: {\n WIDTH_FROM: 992,\n WIDTH_TO: 1199\n },\n //Middle - средний экран >= 992px\n [DISPLAY_SIZE_CODE.LG]: {\n WIDTH_FROM: 1200,\n WIDTH_TO: 1000000\n } //Large - большой экран >= 1200px\n};\n\n//Типовые пути конвертации в массив (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_PATHS = [\"XRESPOND.XPAYLOAD.XOUT_ARGUMENTS\", \"XRESPOND.XPAYLOAD.XDATA_GRID.rows\", \"XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef\", \"XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef.values\", \"XRESPOND.XPAYLOAD.XDATA_GRID.groups\", \"XRESPOND.XPAYLOAD.XGANTT.taskAttributes\", \"XRESPOND.XPAYLOAD.XGANTT.taskColors\", \"XRESPOND.XPAYLOAD.XGANTT.tasks\", \"XRESPOND.XPAYLOAD.XGANTT.tasks.dependencies\", \"XRESPOND.XPAYLOAD.XCHART.labels\", \"XRESPOND.XPAYLOAD.XCHART.datasets\", \"XRESPOND.XPAYLOAD.XCHART.datasets.data\", \"XRESPOND.XPAYLOAD.XCHART.datasets.items\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.taskAttributes\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.columns\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.groups\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.tasks\"];\n\n//Типовые шаблоны конвертации в массив (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_PATH_PATTERNS = [/(.*)XDATA_GRID.rows$/, /(.*)XDATA_GRID.columnsDef$/, /(.*)XDATA_GRID.columnsDef.values$/, /(.*)XDATA_GRID.groups$/, /(.*)XGANTT.taskAttributes$/, /(.*)XGANTT.taskColors$/, /(.*)XGANTT.tasks$/, /(.*)XGANTT.tasks.dependencies$/, /(.*)XCHART.labels$/, /(.*)XCHART.datasets$/, /(.*)XCHART.datasets.data$/, /(.*)XCHART.datasets.items$/, /(.*)XCYCLOGRAM.taskAttributes$/, /(.*)XCYCLOGRAM.columns$/, /(.*)XCYCLOGRAM.groups$/, /(.*)XCYCLOGRAM.tasks$/];\n\n//Типовой постфикс тега для массива (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_POSTFIX = \"__SYSTEM__ARRAY__\";\n\n//Типовые шаблоны конвертации значения атрибута в строку (при переводе XML -> JSON)\nconst XML_ATTR_ALWAYS_STR_PATH_PATTERNS = [/(.*)XDATA_GRID.columnsDef.name$/, /(.*)XDATA_GRID.columnsDef.caption$/, /(.*)XDATA_GRID.columnsDef.parent$/, /(.*)XDATA_GRID.groups.name$/, /(.*)XDATA_GRID.groups.caption$/, /(.*)XCYCLOGRAM.columns.name$/, /(.*)XCYCLOGRAM.groups.name$/];\n\n//-----------\n//Тело модуля\n//-----------\n\n//Проверка существования значения\nconst hasValue = value => typeof value !== \"undefined\" && value !== null && value !== \"\";\n\n//Проверка типа устройства\nconst getDisplaySize = () => {\n let res = DISPLAY_SIZE_CODE.MD;\n Object.keys(DISPLAY_SIZE).map(dspl => {\n if (window.innerWidth >= DISPLAY_SIZE[dspl].WIDTH_FROM && window.innerWidth <= DISPLAY_SIZE[dspl].WIDTH_TO) res = dspl;\n });\n return res;\n};\n\n//Глубокое копирование объекта\nconst deepCopyObject = obj => structuredClone ? structuredClone(obj) : JSON.parse(JSON.stringify(obj));\n\n//Конвертация объекта в Base64 XML\nconst object2XML = (obj, builderOptions) => {\n const builder = new fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__.XMLBuilder(builderOptions);\n return builder.build(obj);\n};\n\n//Конвертация объекта в Base64 XML\nconst object2Base64XML = (obj, builderOptions) => btoa(unescape(encodeURIComponent(object2XML(obj, builderOptions))));\n\n//Конвертация XML в JSON\nconst xml2JSON = ({\n xmlDoc,\n isArray,\n transformTagName,\n tagValueProcessor,\n attributeValueProcessor,\n useDefaultPatterns = true\n}) => {\n return new Promise((resolve, reject) => {\n try {\n let opts = {\n ignoreDeclaration: true,\n ignoreAttributes: false,\n parseAttributeValue: true,\n attributeNamePrefix: \"\"\n };\n if (useDefaultPatterns) {\n opts.isArray = (name, jPath, isLeafNode, isAttribute) => XML_ALWAYS_ARRAY_PATHS.indexOf(jPath) !== -1 || XML_ALWAYS_ARRAY_PATH_PATTERNS.some(pattern => pattern.test(jPath)) || jPath.endsWith(XML_ALWAYS_ARRAY_POSTFIX) || (isArray ? isArray(name, jPath, isLeafNode, isAttribute) : undefined);\n opts.attributeValueProcessor = (name, val, jPath) => XML_ATTR_ALWAYS_STR_PATH_PATTERNS.some(pattern => pattern.test(`${jPath}.${name}`)) ? undefined : attributeValueProcessor ? attributeValueProcessor(name, val, jPath) : val;\n } else {\n if (isArray) opts.isArray = isArray;\n if (attributeValueProcessor) opts.attributeValueProcessor = attributeValueProcessor;\n }\n if (transformTagName) opts.transformTagName = transformTagName;\n if (tagValueProcessor) opts.tagValueProcessor = tagValueProcessor;\n const parser = new fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__.XMLParser(opts);\n resolve(parser.parse(xmlDoc));\n } catch (e) {\n reject(e);\n }\n });\n};\n\n//Форматирование даты в формат РФ\nconst formatDateRF = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"DD.MM.YYYY\") : null;\n\n//Форматирование даты и времени в формат РФ\nconst formatDateTimeRF = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"DD.MM.YYYY HH:mm:ss\") : null;\n\n//Форматирование даты в формат JSON (только дата, без времени)\nconst formatDateJSONDateOnly = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"YYYY-MM-DD\") : null;\n\n//Форматирование числа в \"Денежном\" формате РФ\nconst formatNumberRFCurrency = value => hasValue(value) ? new Intl.NumberFormat(\"ru-RU\", {\n minimumFractionDigits: 2\n}).format(value) : null;\n\n//Форматирование текста ошибки\nconst formatErrorMessage = errorMsg => {\n //Инициализируем текст заголовка ошибки\n let text = \"\";\n //Пробуем извлечь заголовок текста ошибки\n try {\n //Если это ошибка Oracle\n if (errorMsg.match(/^ORA-/)) {\n //Считываем первую строку с заголовочным текстом ошибки\n text = errorMsg.match(/^.*(?=(\\nORA-))/)[0];\n //Убираем лишнюю информацию и пробелы\n text = text.replace(/ORA-\\d*:/g, \"\").trim();\n }\n //Если это ошибка PG\n if (errorMsg.match(/^SQL Error/)) {\n //Считываем первую строку с заголовочным текстом ошибки\n text = errorMsg.match(/.*(?=(\\n.*Where)|(.*Where))/)[0];\n //Убираем лишнюю информацию и пробелы\n text = text.replace(/SQL Error \\[\\d*\\]: ERROR:/g, \"\").trim();\n }\n } catch {\n //Если произошла ошибка - оставляем полный текст ошибки\n text = errorMsg;\n }\n //Возвращаем результат\n return {\n text: text || errorMsg,\n fullErrorText: text ? errorMsg : null\n };\n};\n\n//Формирование уникального идентификатора\nconst genGUID = () => \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/core/utils.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deepCopyObject: () => (/* binding */ deepCopyObject),\n/* harmony export */ formatDateJSONDateOnly: () => (/* binding */ formatDateJSONDateOnly),\n/* harmony export */ formatDateRF: () => (/* binding */ formatDateRF),\n/* harmony export */ formatDateTimeRF: () => (/* binding */ formatDateTimeRF),\n/* harmony export */ formatErrorMessage: () => (/* binding */ formatErrorMessage),\n/* harmony export */ formatNumberRFCurrency: () => (/* binding */ formatNumberRFCurrency),\n/* harmony export */ genGUID: () => (/* binding */ genGUID),\n/* harmony export */ genUID: () => (/* binding */ genUID),\n/* harmony export */ getDisplaySize: () => (/* binding */ getDisplaySize),\n/* harmony export */ hasValue: () => (/* binding */ hasValue),\n/* harmony export */ object2Base64XML: () => (/* binding */ object2Base64XML),\n/* harmony export */ object2XML: () => (/* binding */ object2XML),\n/* harmony export */ xml2JSON: () => (/* binding */ xml2JSON)\n/* harmony export */ });\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-xml-parser */ \"./node_modules/fast-xml-parser/src/fxp.js\");\n/* harmony import */ var fast_xml_parser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__);\n/*\r\n Парус 8 - Панели мониторинга\r\n Ядро: Вспомогательные функции\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Конвертация XML в JSON и JSON в XML\n //Работа с датами\n\n//---------\n//Константы\n//---------\n\n//Коды типовых размеров экранов\nconst DISPLAY_SIZE_CODE = {\n XS: \"XS\",\n //eXtra Small - супер маленький экран\n SM: \"SM\",\n //Small - маленький экран\n MD: \"MD\",\n //Middle - средний экран\n LG: \"LG\" //Large - большой экран\n};\n\n//Типовые размеры экранов\nconst DISPLAY_SIZE = {\n [DISPLAY_SIZE_CODE.XS]: {\n WIDTH_FROM: 0,\n WIDTH_TO: 767\n },\n //eXtra Small - супер маленький экран < 768px\n [DISPLAY_SIZE_CODE.SM]: {\n WIDTH_FROM: 768,\n WIDTH_TO: 991\n },\n //Small - маленький экран >= 768px\n [DISPLAY_SIZE_CODE.MD]: {\n WIDTH_FROM: 992,\n WIDTH_TO: 1199\n },\n //Middle - средний экран >= 992px\n [DISPLAY_SIZE_CODE.LG]: {\n WIDTH_FROM: 1200,\n WIDTH_TO: 1000000\n } //Large - большой экран >= 1200px\n};\n\n//Типовые пути конвертации в массив (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_PATHS = [\"XRESPOND.XPAYLOAD.XOUT_ARGUMENTS\", \"XRESPOND.XPAYLOAD.XDATA_GRID.rows\", \"XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef\", \"XRESPOND.XPAYLOAD.XDATA_GRID.columnsDef.values\", \"XRESPOND.XPAYLOAD.XDATA_GRID.groups\", \"XRESPOND.XPAYLOAD.XGANTT.taskAttributes\", \"XRESPOND.XPAYLOAD.XGANTT.taskColors\", \"XRESPOND.XPAYLOAD.XGANTT.tasks\", \"XRESPOND.XPAYLOAD.XGANTT.tasks.dependencies\", \"XRESPOND.XPAYLOAD.XCHART.labels\", \"XRESPOND.XPAYLOAD.XCHART.datasets\", \"XRESPOND.XPAYLOAD.XCHART.datasets.data\", \"XRESPOND.XPAYLOAD.XCHART.datasets.items\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.taskAttributes\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.columns\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.groups\", \"XRESPOND.XPAYLOAD.XCYCLOGRAM.tasks\"];\n\n//Типовые шаблоны конвертации в массив (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_PATH_PATTERNS = [/(.*)XDATA_GRID.rows$/, /(.*)XDATA_GRID.columnsDef$/, /(.*)XDATA_GRID.columnsDef.values$/, /(.*)XDATA_GRID.groups$/, /(.*)XGANTT.taskAttributes$/, /(.*)XGANTT.taskColors$/, /(.*)XGANTT.tasks$/, /(.*)XGANTT.tasks.dependencies$/, /(.*)XCHART.labels$/, /(.*)XCHART.datasets$/, /(.*)XCHART.datasets.data$/, /(.*)XCHART.datasets.items$/, /(.*)XCYCLOGRAM.taskAttributes$/, /(.*)XCYCLOGRAM.columns$/, /(.*)XCYCLOGRAM.groups$/, /(.*)XCYCLOGRAM.tasks$/];\n\n//Типовой постфикс тега для массива (при переводе XML -> JSON)\nconst XML_ALWAYS_ARRAY_POSTFIX = \"__SYSTEM__ARRAY__\";\n\n//Типовые шаблоны конвертации значения атрибута в строку (при переводе XML -> JSON)\nconst XML_ATTR_ALWAYS_STR_PATH_PATTERNS = [/(.*)XDATA_GRID.columnsDef.name$/, /(.*)XDATA_GRID.columnsDef.caption$/, /(.*)XDATA_GRID.columnsDef.parent$/, /(.*)XDATA_GRID.groups.name$/, /(.*)XDATA_GRID.groups.caption$/, /(.*)XCYCLOGRAM.columns.name$/, /(.*)XCYCLOGRAM.groups.name$/];\n\n//-----------\n//Тело модуля\n//-----------\n\n//Проверка существования значения\nconst hasValue = value => typeof value !== \"undefined\" && value !== null && value !== \"\";\n\n//Проверка типа устройства\nconst getDisplaySize = () => {\n let res = DISPLAY_SIZE_CODE.MD;\n Object.keys(DISPLAY_SIZE).map(dspl => {\n if (window.innerWidth >= DISPLAY_SIZE[dspl].WIDTH_FROM && window.innerWidth <= DISPLAY_SIZE[dspl].WIDTH_TO) res = dspl;\n });\n return res;\n};\n\n//Глубокое копирование объекта\nconst deepCopyObject = obj => structuredClone ? structuredClone(obj) : JSON.parse(JSON.stringify(obj));\n\n//Конвертация объекта в Base64 XML\nconst object2XML = (obj, builderOptions) => {\n const builder = new fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__.XMLBuilder(builderOptions);\n return builder.build(obj);\n};\n\n//Конвертация объекта в Base64 XML\nconst object2Base64XML = (obj, builderOptions) => btoa(unescape(encodeURIComponent(object2XML(obj, builderOptions))));\n\n//Конвертация XML в JSON\nconst xml2JSON = ({\n xmlDoc,\n isArray,\n transformTagName,\n tagValueProcessor,\n attributeValueProcessor,\n useDefaultPatterns = true\n}) => {\n return new Promise((resolve, reject) => {\n try {\n let opts = {\n ignoreDeclaration: true,\n ignoreAttributes: false,\n parseAttributeValue: true,\n attributeNamePrefix: \"\"\n };\n if (useDefaultPatterns) {\n opts.isArray = (name, jPath, isLeafNode, isAttribute) => XML_ALWAYS_ARRAY_PATHS.indexOf(jPath) !== -1 || XML_ALWAYS_ARRAY_PATH_PATTERNS.some(pattern => pattern.test(jPath)) || jPath.endsWith(XML_ALWAYS_ARRAY_POSTFIX) || (isArray ? isArray(name, jPath, isLeafNode, isAttribute) : undefined);\n opts.attributeValueProcessor = (name, val, jPath) => XML_ATTR_ALWAYS_STR_PATH_PATTERNS.some(pattern => pattern.test(`${jPath}.${name}`)) ? undefined : attributeValueProcessor ? attributeValueProcessor(name, val, jPath) : val;\n } else {\n if (isArray) opts.isArray = isArray;\n if (attributeValueProcessor) opts.attributeValueProcessor = attributeValueProcessor;\n }\n if (transformTagName) opts.transformTagName = transformTagName;\n if (tagValueProcessor) opts.tagValueProcessor = tagValueProcessor;\n const parser = new fast_xml_parser__WEBPACK_IMPORTED_MODULE_0__.XMLParser(opts);\n resolve(parser.parse(xmlDoc));\n } catch (e) {\n reject(e);\n }\n });\n};\n\n//Форматирование даты в формат РФ\nconst formatDateRF = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"DD.MM.YYYY\") : null;\n\n//Форматирование даты и времени в формат РФ\nconst formatDateTimeRF = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"DD.MM.YYYY HH:mm:ss\") : null;\n\n//Форматирование даты в формат JSON (только дата, без времени)\nconst formatDateJSONDateOnly = value => value ? dayjs__WEBPACK_IMPORTED_MODULE_1___default()(value).format(\"YYYY-MM-DD\") : null;\n\n//Форматирование числа в \"Денежном\" формате РФ\nconst formatNumberRFCurrency = value => hasValue(value) ? new Intl.NumberFormat(\"ru-RU\", {\n minimumFractionDigits: 2\n}).format(value) : null;\n\n//Форматирование текста ошибки\nconst formatErrorMessage = errorMsg => {\n //Инициализируем текст заголовка ошибки\n let text = \"\";\n //Пробуем извлечь заголовок текста ошибки\n try {\n //Если это ошибка Oracle\n if (errorMsg.match(/^ORA-/)) {\n //Считываем первую строку с заголовочным текстом ошибки\n text = errorMsg.match(/^.*(?=(\\nORA-))/)[0];\n //Убираем лишнюю информацию и пробелы\n text = text.replace(/ORA-\\d*:/g, \"\").trim();\n }\n //Если это ошибка PG\n if (errorMsg.match(/^SQL Error/)) {\n //Считываем первую строку с заголовочным текстом ошибки\n text = errorMsg.match(/.*(?=(\\n.*Where)|(.*Where))/)[0];\n //Убираем лишнюю информацию и пробелы\n text = text.replace(/SQL Error \\[\\d*\\]: ERROR:/g, \"\").trim();\n }\n } catch {\n //Если произошла ошибка - оставляем полный текст ошибки\n text = errorMsg;\n }\n //Возвращаем результат\n return {\n text: text || errorMsg,\n fullErrorText: text ? errorMsg : null\n };\n};\n\n//Формирование уникального идентификатора\nconst genGUID = () => \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));\n\n//Формироваеие уникального идентификатора по текущему времени\nconst genUID = prefix => prefix ? `${prefix}_${Date.now()}` : `${Date.now()}`;\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/core/utils.js?");
/***/ }),
@@ -455,7 +686,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
\***********************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-eval("var map = {\n\t\"./clnt_task_board\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/clnt_task_board\": \"./app/panels/clnt_task_board/clnt_task_board.js\",\n\t\"./clnt_task_board/clnt_task_board.js\": \"./app/panels/clnt_task_board/clnt_task_board.js\",\n\t\"./clnt_task_board/components/custom_input_field\": \"./app/panels/clnt_task_board/components/custom_input_field.js\",\n\t\"./clnt_task_board/components/custom_input_field.js\": \"./app/panels/clnt_task_board/components/custom_input_field.js\",\n\t\"./clnt_task_board/components/filter_dialog\": \"./app/panels/clnt_task_board/components/filter_dialog.js\",\n\t\"./clnt_task_board/components/filter_dialog.js\": \"./app/panels/clnt_task_board/components/filter_dialog.js\",\n\t\"./clnt_task_board/components/note_dialog\": \"./app/panels/clnt_task_board/components/note_dialog.js\",\n\t\"./clnt_task_board/components/note_dialog.js\": \"./app/panels/clnt_task_board/components/note_dialog.js\",\n\t\"./clnt_task_board/components/settings_dialog\": \"./app/panels/clnt_task_board/components/settings_dialog.js\",\n\t\"./clnt_task_board/components/settings_dialog.js\": \"./app/panels/clnt_task_board/components/settings_dialog.js\",\n\t\"./clnt_task_board/components/status_card\": \"./app/panels/clnt_task_board/components/status_card.js\",\n\t\"./clnt_task_board/components/status_card.js\": \"./app/panels/clnt_task_board/components/status_card.js\",\n\t\"./clnt_task_board/components/status_card_settings\": \"./app/panels/clnt_task_board/components/status_card_settings.js\",\n\t\"./clnt_task_board/components/status_card_settings.js\": \"./app/panels/clnt_task_board/components/status_card_settings.js\",\n\t\"./clnt_task_board/components/task_card\": \"./app/panels/clnt_task_board/components/task_card.js\",\n\t\"./clnt_task_board/components/task_card.js\": \"./app/panels/clnt_task_board/components/task_card.js\",\n\t\"./clnt_task_board/components/task_form\": \"./app/panels/clnt_task_board/components/task_form.js\",\n\t\"./clnt_task_board/components/task_form.js\": \"./app/panels/clnt_task_board/components/task_form.js\",\n\t\"./clnt_task_board/components/task_form_tab_executor\": \"./app/panels/clnt_task_board/components/task_form_tab_executor.js\",\n\t\"./clnt_task_board/components/task_form_tab_executor.js\": \"./app/panels/clnt_task_board/components/task_form_tab_executor.js\",\n\t\"./clnt_task_board/components/task_form_tab_info\": \"./app/panels/clnt_task_board/components/task_form_tab_info.js\",\n\t\"./clnt_task_board/components/task_form_tab_info.js\": \"./app/panels/clnt_task_board/components/task_form_tab_info.js\",\n\t\"./clnt_task_board/components/task_form_tab_props\": \"./app/panels/clnt_task_board/components/task_form_tab_props.js\",\n\t\"./clnt_task_board/components/task_form_tab_props.js\": \"./app/panels/clnt_task_board/components/task_form_tab_props.js\",\n\t\"./clnt_task_board/filter\": \"./app/panels/clnt_task_board/filter.js\",\n\t\"./clnt_task_board/filter.js\": \"./app/panels/clnt_task_board/filter.js\",\n\t\"./clnt_task_board/hooks/dict_hooks\": \"./app/panels/clnt_task_board/hooks/dict_hooks.js\",\n\t\"./clnt_task_board/hooks/dict_hooks.js\": \"./app/panels/clnt_task_board/hooks/dict_hooks.js\",\n\t\"./clnt_task_board/hooks/filter_hooks\": \"./app/panels/clnt_task_board/hooks/filter_hooks.js\",\n\t\"./clnt_task_board/hooks/filter_hooks.js\": \"./app/panels/clnt_task_board/hooks/filter_hooks.js\",\n\t\"./clnt_task_board/hooks/hooks\": \"./app/panels/clnt_task_board/hooks/hooks.js\",\n\t\"./clnt_task_board/hooks/hooks.js\": \"./app/panels/clnt_task_board/hooks/hooks.js\",\n\t\"./clnt_task_board/hooks/task_dialog_hooks\": \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\",\n\t\"./clnt_task_board/hooks/task_dialog_hooks.js\": \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\",\n\t\"./clnt_task_board/hooks/tasks_hooks\": \"./app/panels/clnt_task_board/hooks/tasks_hooks.js\",\n\t\"./clnt_task_board/hooks/tasks_hooks.js\": \"./app/panels/clnt_task_board/hooks/tasks_hooks.js\",\n\t\"./clnt_task_board/index\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/index.js\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/layouts\": \"./app/panels/clnt_task_board/layouts.js\",\n\t\"./clnt_task_board/layouts.js\": \"./app/panels/clnt_task_board/layouts.js\",\n\t\"./clnt_task_board/styles\": \"./app/panels/clnt_task_board/styles.js\",\n\t\"./clnt_task_board/styles.js\": \"./app/panels/clnt_task_board/styles.js\",\n\t\"./clnt_task_board/task_dialog\": \"./app/panels/clnt_task_board/task_dialog.js\",\n\t\"./clnt_task_board/task_dialog.js\": \"./app/panels/clnt_task_board/task_dialog.js\",\n\t\"./dummy\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/dummy\": \"./app/panels/dummy/dummy.js\",\n\t\"./dummy/dummy.js\": \"./app/panels/dummy/dummy.js\",\n\t\"./dummy/index\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/index.js\": \"./app/panels/dummy/index.js\",\n\t\"./eqs_prfrm\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/eqs_prfrm\": \"./app/panels/eqs_prfrm/eqs_prfrm.js\",\n\t\"./eqs_prfrm/eqs_prfrm.js\": \"./app/panels/eqs_prfrm/eqs_prfrm.js\",\n\t\"./eqs_prfrm/filter\": \"./app/panels/eqs_prfrm/filter.js\",\n\t\"./eqs_prfrm/filter.js\": \"./app/panels/eqs_prfrm/filter.js\",\n\t\"./eqs_prfrm/filter_dialog\": \"./app/panels/eqs_prfrm/filter_dialog.js\",\n\t\"./eqs_prfrm/filter_dialog.js\": \"./app/panels/eqs_prfrm/filter_dialog.js\",\n\t\"./eqs_prfrm/filter_input_field\": \"./app/panels/eqs_prfrm/filter_input_field.js\",\n\t\"./eqs_prfrm/filter_input_field.js\": \"./app/panels/eqs_prfrm/filter_input_field.js\",\n\t\"./eqs_prfrm/hooks\": \"./app/panels/eqs_prfrm/hooks.js\",\n\t\"./eqs_prfrm/hooks.js\": \"./app/panels/eqs_prfrm/hooks.js\",\n\t\"./eqs_prfrm/index\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/index.js\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/layouts\": \"./app/panels/eqs_prfrm/layouts.js\",\n\t\"./eqs_prfrm/layouts.js\": \"./app/panels/eqs_prfrm/layouts.js\",\n\t\"./mech_rec_assembly_mon\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/components/plan_detail\": \"./app/panels/mech_rec_assembly_mon/components/plan_detail.js\",\n\t\"./mech_rec_assembly_mon/components/plan_detail.js\": \"./app/panels/mech_rec_assembly_mon/components/plan_detail.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list\": \"./app/panels/mech_rec_assembly_mon/components/plans_list.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list.js\": \"./app/panels/mech_rec_assembly_mon/components/plans_list.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list_item\": \"./app/panels/mech_rec_assembly_mon/components/plans_list_item.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list_item.js\": \"./app/panels/mech_rec_assembly_mon/components/plans_list_item.js\",\n\t\"./mech_rec_assembly_mon/components/progress_box\": \"./app/panels/mech_rec_assembly_mon/components/progress_box.js\",\n\t\"./mech_rec_assembly_mon/components/progress_box.js\": \"./app/panels/mech_rec_assembly_mon/components/progress_box.js\",\n\t\"./mech_rec_assembly_mon/hooks\": \"./app/panels/mech_rec_assembly_mon/hooks.js\",\n\t\"./mech_rec_assembly_mon/hooks.js\": \"./app/panels/mech_rec_assembly_mon/hooks.js\",\n\t\"./mech_rec_assembly_mon/index\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/index.js\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/mech_rec_assembly_mon\": \"./app/panels/mech_rec_assembly_mon/mech_rec_assembly_mon.js\",\n\t\"./mech_rec_assembly_mon/mech_rec_assembly_mon.js\": \"./app/panels/mech_rec_assembly_mon/mech_rec_assembly_mon.js\",\n\t\"./mech_rec_assembly_mon/styles/themes\": \"./app/panels/mech_rec_assembly_mon/styles/themes.js\",\n\t\"./mech_rec_assembly_mon/styles/themes.js\": \"./app/panels/mech_rec_assembly_mon/styles/themes.js\",\n\t\"./mech_rec_cost_jobs_manage\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/fcjobssp\": \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\",\n\t\"./mech_rec_cost_jobs_manage/fcjobssp.js\": \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\",\n\t\"./mech_rec_cost_jobs_manage/hooks\": \"./app/panels/mech_rec_cost_jobs_manage/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage/hooks.js\": \"./app/panels/mech_rec_cost_jobs_manage/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage/index\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/index.js\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage\": \"./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\",\n\t\"./mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\": \"./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\",\n\t\"./mech_rec_cost_jobs_manage_mp\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/hooks\": \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/hooks.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/index\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/index.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp\": \"./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/worker_include_dialog\": \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\",\n\t\"./mech_rec_cost_prod_plans\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/backend_dg\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/backend_dg.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcroutlst\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcroutlst.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/goodparties\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/goodparties.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/goodparties.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/goodparties.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/incomefromdeps\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\",\n\t\"./mech_rec_cost_prod_plans/hooks\": \"./app/panels/mech_rec_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_cost_prod_plans/hooks.js\": \"./app/panels/mech_rec_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_cost_prod_plans/index\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/index.js\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/mech_rec_cost_prod_plans\": \"./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\",\n\t\"./mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\": \"./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\",\n\t\"./mech_rec_dept_cost_jobs\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/components/filter\": \"./app/panels/mech_rec_dept_cost_jobs/components/filter.js\",\n\t\"./mech_rec_dept_cost_jobs/components/filter.js\": \"./app/panels/mech_rec_dept_cost_jobs/components/filter.js\",\n\t\"./mech_rec_dept_cost_jobs/components/ins_department_dg\": \"./app/panels/mech_rec_dept_cost_jobs/components/ins_department_dg.js\",\n\t\"./mech_rec_dept_cost_jobs/components/ins_department_dg.js\": \"./app/panels/mech_rec_dept_cost_jobs/components/ins_department_dg.js\",\n\t\"./mech_rec_dept_cost_jobs/hooks\": \"./app/panels/mech_rec_dept_cost_jobs/hooks.js\",\n\t\"./mech_rec_dept_cost_jobs/hooks.js\": \"./app/panels/mech_rec_dept_cost_jobs/hooks.js\",\n\t\"./mech_rec_dept_cost_jobs/index\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/index.js\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs\": \"./app/panels/mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\",\n\t\"./mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\": \"./app/panels/mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\",\n\t\"./mech_rec_dept_cost_prod_plans\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlst\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlst.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlstsp\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlstsp.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\",\n\t\"./mech_rec_dept_cost_prod_plans/hooks\": \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_dept_cost_prod_plans/hooks.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_dept_cost_prod_plans/incomefromdeps\": \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\",\n\t\"./mech_rec_dept_cost_prod_plans/incomefromdeps.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\",\n\t\"./mech_rec_dept_cost_prod_plans/index\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/index.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans\": \"./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\",\n\t\"./mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\",\n\t\"./mech_rec_help\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/img/1_1.png\": \"./app/panels/mech_rec_help/img/1_1.png\",\n\t\"./mech_rec_help/img/1_2.png\": \"./app/panels/mech_rec_help/img/1_2.png\",\n\t\"./mech_rec_help/img/1_3.png\": \"./app/panels/mech_rec_help/img/1_3.png\",\n\t\"./mech_rec_help/img/1_4.png\": \"./app/panels/mech_rec_help/img/1_4.png\",\n\t\"./mech_rec_help/img/1_5.png\": \"./app/panels/mech_rec_help/img/1_5.png\",\n\t\"./mech_rec_help/img/21_1.png\": \"./app/panels/mech_rec_help/img/21_1.png\",\n\t\"./mech_rec_help/img/21_2.png\": \"./app/panels/mech_rec_help/img/21_2.png\",\n\t\"./mech_rec_help/img/21_3.png\": \"./app/panels/mech_rec_help/img/21_3.png\",\n\t\"./mech_rec_help/img/2_1.png\": \"./app/panels/mech_rec_help/img/2_1.png\",\n\t\"./mech_rec_help/img/2_2.png\": \"./app/panels/mech_rec_help/img/2_2.png\",\n\t\"./mech_rec_help/img/2_3.png\": \"./app/panels/mech_rec_help/img/2_3.png\",\n\t\"./mech_rec_help/img/2_4.png\": \"./app/panels/mech_rec_help/img/2_4.png\",\n\t\"./mech_rec_help/img/2_5.png\": \"./app/panels/mech_rec_help/img/2_5.png\",\n\t\"./mech_rec_help/img/31_1.png\": \"./app/panels/mech_rec_help/img/31_1.png\",\n\t\"./mech_rec_help/img/31_10.png\": \"./app/panels/mech_rec_help/img/31_10.png\",\n\t\"./mech_rec_help/img/31_2.png\": \"./app/panels/mech_rec_help/img/31_2.png\",\n\t\"./mech_rec_help/img/31_3.png\": \"./app/panels/mech_rec_help/img/31_3.png\",\n\t\"./mech_rec_help/img/31_4.png\": \"./app/panels/mech_rec_help/img/31_4.png\",\n\t\"./mech_rec_help/img/31_5.png\": \"./app/panels/mech_rec_help/img/31_5.png\",\n\t\"./mech_rec_help/img/31_6.png\": \"./app/panels/mech_rec_help/img/31_6.png\",\n\t\"./mech_rec_help/img/31_7.png\": \"./app/panels/mech_rec_help/img/31_7.png\",\n\t\"./mech_rec_help/img/31_8.png\": \"./app/panels/mech_rec_help/img/31_8.png\",\n\t\"./mech_rec_help/img/31_9.png\": \"./app/panels/mech_rec_help/img/31_9.png\",\n\t\"./mech_rec_help/img/32_1.png\": \"./app/panels/mech_rec_help/img/32_1.png\",\n\t\"./mech_rec_help/img/32_2.png\": \"./app/panels/mech_rec_help/img/32_2.png\",\n\t\"./mech_rec_help/img/32_3.png\": \"./app/panels/mech_rec_help/img/32_3.png\",\n\t\"./mech_rec_help/img/33_1.png\": \"./app/panels/mech_rec_help/img/33_1.png\",\n\t\"./mech_rec_help/img/33_2.png\": \"./app/panels/mech_rec_help/img/33_2.png\",\n\t\"./mech_rec_help/img/33_3.png\": \"./app/panels/mech_rec_help/img/33_3.png\",\n\t\"./mech_rec_help/img/33_4.png\": \"./app/panels/mech_rec_help/img/33_4.png\",\n\t\"./mech_rec_help/img/34_1.png\": \"./app/panels/mech_rec_help/img/34_1.png\",\n\t\"./mech_rec_help/img/34_2.png\": \"./app/panels/mech_rec_help/img/34_2.png\",\n\t\"./mech_rec_help/img/34_3.png\": \"./app/panels/mech_rec_help/img/34_3.png\",\n\t\"./mech_rec_help/img/34_4.png\": \"./app/panels/mech_rec_help/img/34_4.png\",\n\t\"./mech_rec_help/img/34_5.png\": \"./app/panels/mech_rec_help/img/34_5.png\",\n\t\"./mech_rec_help/img/34_6.png\": \"./app/panels/mech_rec_help/img/34_6.png\",\n\t\"./mech_rec_help/img/34_7.png\": \"./app/panels/mech_rec_help/img/34_7.png\",\n\t\"./mech_rec_help/img/34_8.png\": \"./app/panels/mech_rec_help/img/34_8.png\",\n\t\"./mech_rec_help/img/35_1.png\": \"./app/panels/mech_rec_help/img/35_1.png\",\n\t\"./mech_rec_help/img/3_1.png\": \"./app/panels/mech_rec_help/img/3_1.png\",\n\t\"./mech_rec_help/img/410_1.png\": \"./app/panels/mech_rec_help/img/410_1.png\",\n\t\"./mech_rec_help/img/410_2.png\": \"./app/panels/mech_rec_help/img/410_2.png\",\n\t\"./mech_rec_help/img/410_3.png\": \"./app/panels/mech_rec_help/img/410_3.png\",\n\t\"./mech_rec_help/img/410_4.png\": \"./app/panels/mech_rec_help/img/410_4.png\",\n\t\"./mech_rec_help/img/410_5.png\": \"./app/panels/mech_rec_help/img/410_5.png\",\n\t\"./mech_rec_help/img/410_6.png\": \"./app/panels/mech_rec_help/img/410_6.png\",\n\t\"./mech_rec_help/img/410_7.png\": \"./app/panels/mech_rec_help/img/410_7.png\",\n\t\"./mech_rec_help/img/411_1.png\": \"./app/panels/mech_rec_help/img/411_1.png\",\n\t\"./mech_rec_help/img/411_2.png\": \"./app/panels/mech_rec_help/img/411_2.png\",\n\t\"./mech_rec_help/img/411_3.png\": \"./app/panels/mech_rec_help/img/411_3.png\",\n\t\"./mech_rec_help/img/411_4.png\": \"./app/panels/mech_rec_help/img/411_4.png\",\n\t\"./mech_rec_help/img/412_1.png\": \"./app/panels/mech_rec_help/img/412_1.png\",\n\t\"./mech_rec_help/img/412_2.png\": \"./app/panels/mech_rec_help/img/412_2.png\",\n\t\"./mech_rec_help/img/412_3.png\": \"./app/panels/mech_rec_help/img/412_3.png\",\n\t\"./mech_rec_help/img/412_4.png\": \"./app/panels/mech_rec_help/img/412_4.png\",\n\t\"./mech_rec_help/img/413_1.png\": \"./app/panels/mech_rec_help/img/413_1.png\",\n\t\"./mech_rec_help/img/413_2.png\": \"./app/panels/mech_rec_help/img/413_2.png\",\n\t\"./mech_rec_help/img/413_3.png\": \"./app/panels/mech_rec_help/img/413_3.png\",\n\t\"./mech_rec_help/img/413_4.png\": \"./app/panels/mech_rec_help/img/413_4.png\",\n\t\"./mech_rec_help/img/413_5.png\": \"./app/panels/mech_rec_help/img/413_5.png\",\n\t\"./mech_rec_help/img/414_1.png\": \"./app/panels/mech_rec_help/img/414_1.png\",\n\t\"./mech_rec_help/img/414_2.png\": \"./app/panels/mech_rec_help/img/414_2.png\",\n\t\"./mech_rec_help/img/414_3.png\": \"./app/panels/mech_rec_help/img/414_3.png\",\n\t\"./mech_rec_help/img/41_1.png\": \"./app/panels/mech_rec_help/img/41_1.png\",\n\t\"./mech_rec_help/img/41_10.png\": \"./app/panels/mech_rec_help/img/41_10.png\",\n\t\"./mech_rec_help/img/41_11.png\": \"./app/panels/mech_rec_help/img/41_11.png\",\n\t\"./mech_rec_help/img/41_12.png\": \"./app/panels/mech_rec_help/img/41_12.png\",\n\t\"./mech_rec_help/img/41_2.png\": \"./app/panels/mech_rec_help/img/41_2.png\",\n\t\"./mech_rec_help/img/41_3.png\": \"./app/panels/mech_rec_help/img/41_3.png\",\n\t\"./mech_rec_help/img/41_4.png\": \"./app/panels/mech_rec_help/img/41_4.png\",\n\t\"./mech_rec_help/img/41_5.png\": \"./app/panels/mech_rec_help/img/41_5.png\",\n\t\"./mech_rec_help/img/41_6.png\": \"./app/panels/mech_rec_help/img/41_6.png\",\n\t\"./mech_rec_help/img/41_7.png\": \"./app/panels/mech_rec_help/img/41_7.png\",\n\t\"./mech_rec_help/img/41_8.png\": \"./app/panels/mech_rec_help/img/41_8.png\",\n\t\"./mech_rec_help/img/41_9.png\": \"./app/panels/mech_rec_help/img/41_9.png\",\n\t\"./mech_rec_help/img/42_1.png\": \"./app/panels/mech_rec_help/img/42_1.png\",\n\t\"./mech_rec_help/img/42_2.png\": \"./app/panels/mech_rec_help/img/42_2.png\",\n\t\"./mech_rec_help/img/42_3.png\": \"./app/panels/mech_rec_help/img/42_3.png\",\n\t\"./mech_rec_help/img/42_4.png\": \"./app/panels/mech_rec_help/img/42_4.png\",\n\t\"./mech_rec_help/img/43_1.png\": \"./app/panels/mech_rec_help/img/43_1.png\",\n\t\"./mech_rec_help/img/43_2.png\": \"./app/panels/mech_rec_help/img/43_2.png\",\n\t\"./mech_rec_help/img/43_3.png\": \"./app/panels/mech_rec_help/img/43_3.png\",\n\t\"./mech_rec_help/img/43_4.png\": \"./app/panels/mech_rec_help/img/43_4.png\",\n\t\"./mech_rec_help/img/43_5.png\": \"./app/panels/mech_rec_help/img/43_5.png\",\n\t\"./mech_rec_help/img/43_6.png\": \"./app/panels/mech_rec_help/img/43_6.png\",\n\t\"./mech_rec_help/img/43_7.png\": \"./app/panels/mech_rec_help/img/43_7.png\",\n\t\"./mech_rec_help/img/43_8.png\": \"./app/panels/mech_rec_help/img/43_8.png\",\n\t\"./mech_rec_help/img/44_1.png\": \"./app/panels/mech_rec_help/img/44_1.png\",\n\t\"./mech_rec_help/img/44_10.png\": \"./app/panels/mech_rec_help/img/44_10.png\",\n\t\"./mech_rec_help/img/44_2.png\": \"./app/panels/mech_rec_help/img/44_2.png\",\n\t\"./mech_rec_help/img/44_3.png\": \"./app/panels/mech_rec_help/img/44_3.png\",\n\t\"./mech_rec_help/img/44_4.png\": \"./app/panels/mech_rec_help/img/44_4.png\",\n\t\"./mech_rec_help/img/44_5.png\": \"./app/panels/mech_rec_help/img/44_5.png\",\n\t\"./mech_rec_help/img/44_6.png\": \"./app/panels/mech_rec_help/img/44_6.png\",\n\t\"./mech_rec_help/img/44_7.png\": \"./app/panels/mech_rec_help/img/44_7.png\",\n\t\"./mech_rec_help/img/44_8.png\": \"./app/panels/mech_rec_help/img/44_8.png\",\n\t\"./mech_rec_help/img/44_9.png\": \"./app/panels/mech_rec_help/img/44_9.png\",\n\t\"./mech_rec_help/img/45_1.png\": \"./app/panels/mech_rec_help/img/45_1.png\",\n\t\"./mech_rec_help/img/45_10.png\": \"./app/panels/mech_rec_help/img/45_10.png\",\n\t\"./mech_rec_help/img/45_2.png\": \"./app/panels/mech_rec_help/img/45_2.png\",\n\t\"./mech_rec_help/img/45_3.png\": \"./app/panels/mech_rec_help/img/45_3.png\",\n\t\"./mech_rec_help/img/45_4.png\": \"./app/panels/mech_rec_help/img/45_4.png\",\n\t\"./mech_rec_help/img/45_5.png\": \"./app/panels/mech_rec_help/img/45_5.png\",\n\t\"./mech_rec_help/img/45_6.png\": \"./app/panels/mech_rec_help/img/45_6.png\",\n\t\"./mech_rec_help/img/45_7.png\": \"./app/panels/mech_rec_help/img/45_7.png\",\n\t\"./mech_rec_help/img/45_8.png\": \"./app/panels/mech_rec_help/img/45_8.png\",\n\t\"./mech_rec_help/img/45_9.png\": \"./app/panels/mech_rec_help/img/45_9.png\",\n\t\"./mech_rec_help/img/46_1.png\": \"./app/panels/mech_rec_help/img/46_1.png\",\n\t\"./mech_rec_help/img/46_2.png\": \"./app/panels/mech_rec_help/img/46_2.png\",\n\t\"./mech_rec_help/img/46_3.png\": \"./app/panels/mech_rec_help/img/46_3.png\",\n\t\"./mech_rec_help/img/46_4.png\": \"./app/panels/mech_rec_help/img/46_4.png\",\n\t\"./mech_rec_help/img/46_5.png\": \"./app/panels/mech_rec_help/img/46_5.png\",\n\t\"./mech_rec_help/img/46_6.png\": \"./app/panels/mech_rec_help/img/46_6.png\",\n\t\"./mech_rec_help/img/47_1.png\": \"./app/panels/mech_rec_help/img/47_1.png\",\n\t\"./mech_rec_help/img/47_10.png\": \"./app/panels/mech_rec_help/img/47_10.png\",\n\t\"./mech_rec_help/img/47_11.png\": \"./app/panels/mech_rec_help/img/47_11.png\",\n\t\"./mech_rec_help/img/47_12.png\": \"./app/panels/mech_rec_help/img/47_12.png\",\n\t\"./mech_rec_help/img/47_2.png\": \"./app/panels/mech_rec_help/img/47_2.png\",\n\t\"./mech_rec_help/img/47_3.png\": \"./app/panels/mech_rec_help/img/47_3.png\",\n\t\"./mech_rec_help/img/47_4.png\": \"./app/panels/mech_rec_help/img/47_4.png\",\n\t\"./mech_rec_help/img/47_5.png\": \"./app/panels/mech_rec_help/img/47_5.png\",\n\t\"./mech_rec_help/img/47_6.png\": \"./app/panels/mech_rec_help/img/47_6.png\",\n\t\"./mech_rec_help/img/47_7.png\": \"./app/panels/mech_rec_help/img/47_7.png\",\n\t\"./mech_rec_help/img/47_8.png\": \"./app/panels/mech_rec_help/img/47_8.png\",\n\t\"./mech_rec_help/img/47_9.png\": \"./app/panels/mech_rec_help/img/47_9.png\",\n\t\"./mech_rec_help/img/48_1.png\": \"./app/panels/mech_rec_help/img/48_1.png\",\n\t\"./mech_rec_help/img/48_2.png\": \"./app/panels/mech_rec_help/img/48_2.png\",\n\t\"./mech_rec_help/img/48_3.png\": \"./app/panels/mech_rec_help/img/48_3.png\",\n\t\"./mech_rec_help/img/48_4.png\": \"./app/panels/mech_rec_help/img/48_4.png\",\n\t\"./mech_rec_help/img/49_1.png\": \"./app/panels/mech_rec_help/img/49_1.png\",\n\t\"./mech_rec_help/img/49_2.png\": \"./app/panels/mech_rec_help/img/49_2.png\",\n\t\"./mech_rec_help/img/49_3.png\": \"./app/panels/mech_rec_help/img/49_3.png\",\n\t\"./mech_rec_help/img/add1_1.png\": \"./app/panels/mech_rec_help/img/add1_1.png\",\n\t\"./mech_rec_help/img/add1_2.png\": \"./app/panels/mech_rec_help/img/add1_2.png\",\n\t\"./mech_rec_help/img/add1_3.png\": \"./app/panels/mech_rec_help/img/add1_3.png\",\n\t\"./mech_rec_help/img/add1_4.png\": \"./app/panels/mech_rec_help/img/add1_4.png\",\n\t\"./mech_rec_help/img/add1_5.png\": \"./app/panels/mech_rec_help/img/add1_5.png\",\n\t\"./mech_rec_help/img/add1_6.png\": \"./app/panels/mech_rec_help/img/add1_6.png\",\n\t\"./mech_rec_help/img/add1_7.png\": \"./app/panels/mech_rec_help/img/add1_7.png\",\n\t\"./mech_rec_help/img/add1_8.png\": \"./app/panels/mech_rec_help/img/add1_8.png\",\n\t\"./mech_rec_help/img/add1_9.png\": \"./app/panels/mech_rec_help/img/add1_9.png\",\n\t\"./mech_rec_help/index\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/index.js\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/mech_rec_help\": \"./app/panels/mech_rec_help/mech_rec_help.js\",\n\t\"./mech_rec_help/mech_rec_help.js\": \"./app/panels/mech_rec_help/mech_rec_help.js\",\n\t\"./panels_editor\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/component_editor\": \"./app/panels/panels_editor/component_editor.js\",\n\t\"./panels_editor/component_editor.js\": \"./app/panels/panels_editor/component_editor.js\",\n\t\"./panels_editor/component_view\": \"./app/panels/panels_editor/component_view.js\",\n\t\"./panels_editor/component_view.js\": \"./app/panels/panels_editor/component_view.js\",\n\t\"./panels_editor/components/chart/editor\": \"./app/panels/panels_editor/components/chart/editor.js\",\n\t\"./panels_editor/components/chart/editor.js\": \"./app/panels/panels_editor/components/chart/editor.js\",\n\t\"./panels_editor/components/chart/view\": \"./app/panels/panels_editor/components/chart/view.js\",\n\t\"./panels_editor/components/chart/view.js\": \"./app/panels/panels_editor/components/chart/view.js\",\n\t\"./panels_editor/components/components\": \"./app/panels/panels_editor/components/components.js\",\n\t\"./panels_editor/components/components.js\": \"./app/panels/panels_editor/components/components.js\",\n\t\"./panels_editor/components/components_hooks\": \"./app/panels/panels_editor/components/components_hooks.js\",\n\t\"./panels_editor/components/components_hooks.js\": \"./app/panels/panels_editor/components/components_hooks.js\",\n\t\"./panels_editor/components/form/common\": \"./app/panels/panels_editor/components/form/common.js\",\n\t\"./panels_editor/components/form/common.js\": \"./app/panels/panels_editor/components/form/common.js\",\n\t\"./panels_editor/components/form/editor\": \"./app/panels/panels_editor/components/form/editor.js\",\n\t\"./panels_editor/components/form/editor.js\": \"./app/panels/panels_editor/components/form/editor.js\",\n\t\"./panels_editor/components/form/view\": \"./app/panels/panels_editor/components/form/view.js\",\n\t\"./panels_editor/components/form/view.js\": \"./app/panels/panels_editor/components/form/view.js\",\n\t\"./panels_editor/components/indicator/editor\": \"./app/panels/panels_editor/components/indicator/editor.js\",\n\t\"./panels_editor/components/indicator/editor.js\": \"./app/panels/panels_editor/components/indicator/editor.js\",\n\t\"./panels_editor/components/indicator/view\": \"./app/panels/panels_editor/components/indicator/view.js\",\n\t\"./panels_editor/components/indicator/view.js\": \"./app/panels/panels_editor/components/indicator/view.js\",\n\t\"./panels_editor/components/table/editor\": \"./app/panels/panels_editor/components/table/editor.js\",\n\t\"./panels_editor/components/table/editor.js\": \"./app/panels/panels_editor/components/table/editor.js\",\n\t\"./panels_editor/components/table/view\": \"./app/panels/panels_editor/components/table/view.js\",\n\t\"./panels_editor/components/table/view.js\": \"./app/panels/panels_editor/components/table/view.js\",\n\t\"./panels_editor/index\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/index.js\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/layout_item\": \"./app/panels/panels_editor/layout_item.js\",\n\t\"./panels_editor/layout_item.js\": \"./app/panels/panels_editor/layout_item.js\",\n\t\"./panels_editor/panels_editor\": \"./app/panels/panels_editor/panels_editor.js\",\n\t\"./panels_editor/panels_editor.css\": \"./app/panels/panels_editor/panels_editor.css\",\n\t\"./panels_editor/panels_editor.js\": \"./app/panels/panels_editor/panels_editor.js\",\n\t\"./prj_fin\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/index\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/index.js\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/layouts\": \"./app/panels/prj_fin/layouts.js\",\n\t\"./prj_fin/layouts.js\": \"./app/panels/prj_fin/layouts.js\",\n\t\"./prj_fin/prj_fin\": \"./app/panels/prj_fin/prj_fin.js\",\n\t\"./prj_fin/prj_fin.js\": \"./app/panels/prj_fin/prj_fin.js\",\n\t\"./prj_fin/projects\": \"./app/panels/prj_fin/projects.js\",\n\t\"./prj_fin/projects.js\": \"./app/panels/prj_fin/projects.js\",\n\t\"./prj_fin/stage_arts\": \"./app/panels/prj_fin/stage_arts.js\",\n\t\"./prj_fin/stage_arts.js\": \"./app/panels/prj_fin/stage_arts.js\",\n\t\"./prj_fin/stage_contracts\": \"./app/panels/prj_fin/stage_contracts.js\",\n\t\"./prj_fin/stage_contracts.js\": \"./app/panels/prj_fin/stage_contracts.js\",\n\t\"./prj_fin/stages\": \"./app/panels/prj_fin/stages.js\",\n\t\"./prj_fin/stages.js\": \"./app/panels/prj_fin/stages.js\",\n\t\"./prj_graph\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/index\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/index.js\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/layouts\": \"./app/panels/prj_graph/layouts.js\",\n\t\"./prj_graph/layouts.js\": \"./app/panels/prj_graph/layouts.js\",\n\t\"./prj_graph/prj_graph\": \"./app/panels/prj_graph/prj_graph.js\",\n\t\"./prj_graph/prj_graph.js\": \"./app/panels/prj_graph/prj_graph.js\",\n\t\"./prj_help\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/img/21_1.png\": \"./app/panels/prj_help/img/21_1.png\",\n\t\"./prj_help/img/21_2.png\": \"./app/panels/prj_help/img/21_2.png\",\n\t\"./prj_help/img/21_3.png\": \"./app/panels/prj_help/img/21_3.png\",\n\t\"./prj_help/img/21_4.png\": \"./app/panels/prj_help/img/21_4.png\",\n\t\"./prj_help/img/21_5.png\": \"./app/panels/prj_help/img/21_5.png\",\n\t\"./prj_help/img/22_1.png\": \"./app/panels/prj_help/img/22_1.png\",\n\t\"./prj_help/img/22_2.png\": \"./app/panels/prj_help/img/22_2.png\",\n\t\"./prj_help/img/22_3.png\": \"./app/panels/prj_help/img/22_3.png\",\n\t\"./prj_help/img/23_1.png\": \"./app/panels/prj_help/img/23_1.png\",\n\t\"./prj_help/img/23_2.png\": \"./app/panels/prj_help/img/23_2.png\",\n\t\"./prj_help/img/24_1.png\": \"./app/panels/prj_help/img/24_1.png\",\n\t\"./prj_help/img/24_2.png\": \"./app/panels/prj_help/img/24_2.png\",\n\t\"./prj_help/img/24_3.png\": \"./app/panels/prj_help/img/24_3.png\",\n\t\"./prj_help/img/24_4.png\": \"./app/panels/prj_help/img/24_4.png\",\n\t\"./prj_help/img/24_5.png\": \"./app/panels/prj_help/img/24_5.png\",\n\t\"./prj_help/img/3_1.png\": \"./app/panels/prj_help/img/3_1.png\",\n\t\"./prj_help/img/3_2.png\": \"./app/panels/prj_help/img/3_2.png\",\n\t\"./prj_help/img/3_3.png\": \"./app/panels/prj_help/img/3_3.png\",\n\t\"./prj_help/img/3_4.png\": \"./app/panels/prj_help/img/3_4.png\",\n\t\"./prj_help/img/3_5.png\": \"./app/panels/prj_help/img/3_5.png\",\n\t\"./prj_help/img/3_6.png\": \"./app/panels/prj_help/img/3_6.png\",\n\t\"./prj_help/img/41_1.png\": \"./app/panels/prj_help/img/41_1.png\",\n\t\"./prj_help/img/41_2.png\": \"./app/panels/prj_help/img/41_2.png\",\n\t\"./prj_help/img/42_1.png\": \"./app/panels/prj_help/img/42_1.png\",\n\t\"./prj_help/img/42_2.png\": \"./app/panels/prj_help/img/42_2.png\",\n\t\"./prj_help/img/43_1.png\": \"./app/panels/prj_help/img/43_1.png\",\n\t\"./prj_help/img/43_2.png\": \"./app/panels/prj_help/img/43_2.png\",\n\t\"./prj_help/img/43_3.png\": \"./app/panels/prj_help/img/43_3.png\",\n\t\"./prj_help/img/43_4.png\": \"./app/panels/prj_help/img/43_4.png\",\n\t\"./prj_help/img/44_1.png\": \"./app/panels/prj_help/img/44_1.png\",\n\t\"./prj_help/img/44_2.png\": \"./app/panels/prj_help/img/44_2.png\",\n\t\"./prj_help/img/44_3.png\": \"./app/panels/prj_help/img/44_3.png\",\n\t\"./prj_help/img/44_4.png\": \"./app/panels/prj_help/img/44_4.png\",\n\t\"./prj_help/img/45_1.png\": \"./app/panels/prj_help/img/45_1.png\",\n\t\"./prj_help/img/46_1.png\": \"./app/panels/prj_help/img/46_1.png\",\n\t\"./prj_help/img/47_1.png\": \"./app/panels/prj_help/img/47_1.png\",\n\t\"./prj_help/img/71_1.png\": \"./app/panels/prj_help/img/71_1.png\",\n\t\"./prj_help/img/72_1.png\": \"./app/panels/prj_help/img/72_1.png\",\n\t\"./prj_help/img/72_2.png\": \"./app/panels/prj_help/img/72_2.png\",\n\t\"./prj_help/img/72_3.png\": \"./app/panels/prj_help/img/72_3.png\",\n\t\"./prj_help/img/74_1.png\": \"./app/panels/prj_help/img/74_1.png\",\n\t\"./prj_help/index\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/index.js\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/prj_help\": \"./app/panels/prj_help/prj_help.js\",\n\t\"./prj_help/prj_help.js\": \"./app/panels/prj_help/prj_help.js\",\n\t\"./prj_info\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/filter\": \"./app/panels/prj_info/filter.js\",\n\t\"./prj_info/filter.js\": \"./app/panels/prj_info/filter.js\",\n\t\"./prj_info/filter_dialog\": \"./app/panels/prj_info/filter_dialog.js\",\n\t\"./prj_info/filter_dialog.js\": \"./app/panels/prj_info/filter_dialog.js\",\n\t\"./prj_info/index\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/index.js\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/layouts\": \"./app/panels/prj_info/layouts.js\",\n\t\"./prj_info/layouts.js\": \"./app/panels/prj_info/layouts.js\",\n\t\"./prj_info/prj_info\": \"./app/panels/prj_info/prj_info.js\",\n\t\"./prj_info/prj_info.js\": \"./app/panels/prj_info/prj_info.js\",\n\t\"./prj_info/projects\": \"./app/panels/prj_info/projects.js\",\n\t\"./prj_info/projects.js\": \"./app/panels/prj_info/projects.js\",\n\t\"./prj_info/projects_hooks\": \"./app/panels/prj_info/projects_hooks.js\",\n\t\"./prj_info/projects_hooks.js\": \"./app/panels/prj_info/projects_hooks.js\",\n\t\"./prj_info/projects_layouts\": \"./app/panels/prj_info/projects_layouts.js\",\n\t\"./prj_info/projects_layouts.js\": \"./app/panels/prj_info/projects_layouts.js\",\n\t\"./prj_info/stage_detail\": \"./app/panels/prj_info/stage_detail.js\",\n\t\"./prj_info/stage_detail.js\": \"./app/panels/prj_info/stage_detail.js\",\n\t\"./prj_info/stage_detail_hooks\": \"./app/panels/prj_info/stage_detail_hooks.js\",\n\t\"./prj_info/stage_detail_hooks.js\": \"./app/panels/prj_info/stage_detail_hooks.js\",\n\t\"./prj_info/stage_detail_layouts\": \"./app/panels/prj_info/stage_detail_layouts.js\",\n\t\"./prj_info/stage_detail_layouts.js\": \"./app/panels/prj_info/stage_detail_layouts.js\",\n\t\"./prj_info/stages\": \"./app/panels/prj_info/stages.js\",\n\t\"./prj_info/stages.js\": \"./app/panels/prj_info/stages.js\",\n\t\"./prj_info/stages_hooks\": \"./app/panels/prj_info/stages_hooks.js\",\n\t\"./prj_info/stages_hooks.js\": \"./app/panels/prj_info/stages_hooks.js\",\n\t\"./prj_info/stages_layouts\": \"./app/panels/prj_info/stages_layouts.js\",\n\t\"./prj_info/stages_layouts.js\": \"./app/panels/prj_info/stages_layouts.js\",\n\t\"./prj_jobs\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/index\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/index.js\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/lab_fact_rpt_dtl\": \"./app/panels/prj_jobs/lab_fact_rpt_dtl.js\",\n\t\"./prj_jobs/lab_fact_rpt_dtl.js\": \"./app/panels/prj_jobs/lab_fact_rpt_dtl.js\",\n\t\"./prj_jobs/lab_plan_fot_dtl\": \"./app/panels/prj_jobs/lab_plan_fot_dtl.js\",\n\t\"./prj_jobs/lab_plan_fot_dtl.js\": \"./app/panels/prj_jobs/lab_plan_fot_dtl.js\",\n\t\"./prj_jobs/lab_plan_jobs_dtl\": \"./app/panels/prj_jobs/lab_plan_jobs_dtl.js\",\n\t\"./prj_jobs/lab_plan_jobs_dtl.js\": \"./app/panels/prj_jobs/lab_plan_jobs_dtl.js\",\n\t\"./prj_jobs/layouts\": \"./app/panels/prj_jobs/layouts.js\",\n\t\"./prj_jobs/layouts.js\": \"./app/panels/prj_jobs/layouts.js\",\n\t\"./prj_jobs/prj_jobs\": \"./app/panels/prj_jobs/prj_jobs.js\",\n\t\"./prj_jobs/prj_jobs.js\": \"./app/panels/prj_jobs/prj_jobs.js\",\n\t\"./prj_jobs/res_mon\": \"./app/panels/prj_jobs/res_mon.js\",\n\t\"./prj_jobs/res_mon.js\": \"./app/panels/prj_jobs/res_mon.js\",\n\t\"./query_editor\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/common\": \"./app/panels/query_editor/common.js\",\n\t\"./query_editor/common.js\": \"./app/panels/query_editor/common.js\",\n\t\"./query_editor/components/argument/argument\": \"./app/panels/query_editor/components/argument/argument.js\",\n\t\"./query_editor/components/argument/argument.js\": \"./app/panels/query_editor/components/argument/argument.js\",\n\t\"./query_editor/components/attribute/attribute\": \"./app/panels/query_editor/components/attribute/attribute.js\",\n\t\"./query_editor/components/attribute/attribute.js\": \"./app/panels/query_editor/components/attribute/attribute.js\",\n\t\"./query_editor/components/entity/entity\": \"./app/panels/query_editor/components/entity/entity.js\",\n\t\"./query_editor/components/entity/entity.js\": \"./app/panels/query_editor/components/entity/entity.js\",\n\t\"./query_editor/components/inspector/inspector\": \"./app/panels/query_editor/components/inspector/inspector.js\",\n\t\"./query_editor/components/inspector/inspector.js\": \"./app/panels/query_editor/components/inspector/inspector.js\",\n\t\"./query_editor/components/inspector_query_area/hooks\": \"./app/panels/query_editor/components/inspector_query_area/hooks.js\",\n\t\"./query_editor/components/inspector_query_area/hooks.js\": \"./app/panels/query_editor/components/inspector_query_area/hooks.js\",\n\t\"./query_editor/components/inspector_query_area/inspector_query_area\": \"./app/panels/query_editor/components/inspector_query_area/inspector_query_area.js\",\n\t\"./query_editor/components/inspector_query_area/inspector_query_area.js\": \"./app/panels/query_editor/components/inspector_query_area/inspector_query_area.js\",\n\t\"./query_editor/components/inspector_query_args/arg_iu_dialog\": \"./app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/arg_iu_dialog.js\": \"./app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/args_list\": \"./app/panels/query_editor/components/inspector_query_args/args_list.js\",\n\t\"./query_editor/components/inspector_query_args/args_list.js\": \"./app/panels/query_editor/components/inspector_query_args/args_list.js\",\n\t\"./query_editor/components/inspector_query_args/hooks\": \"./app/panels/query_editor/components/inspector_query_args/hooks.js\",\n\t\"./query_editor/components/inspector_query_args/hooks.js\": \"./app/panels/query_editor/components/inspector_query_args/hooks.js\",\n\t\"./query_editor/components/inspector_query_args/inspector_query_args\": \"./app/panels/query_editor/components/inspector_query_args/inspector_query_args.js\",\n\t\"./query_editor/components/inspector_query_args/inspector_query_args.js\": \"./app/panels/query_editor/components/inspector_query_args/inspector_query_args.js\",\n\t\"./query_editor/components/inspector_query_args/query_args_dialog\": \"./app/panels/query_editor/components/inspector_query_args/query_args_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/query_args_dialog.js\": \"./app/panels/query_editor/components/inspector_query_args/query_args_dialog.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_component_select_button\": \"./app/panels/query_editor/components/inspector_query_cond/cond_component_select_button.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_component_select_button.js\": \"./app/panels/query_editor/components/inspector_query_cond/cond_component_select_button.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_operation_buttons\": \"./app/panels/query_editor/components/inspector_query_cond/cond_operation_buttons.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_operation_buttons.js\": \"./app/panels/query_editor/components/inspector_query_cond/cond_operation_buttons.js\",\n\t\"./query_editor/components/inspector_query_cond/hooks\": \"./app/panels/query_editor/components/inspector_query_cond/hooks.js\",\n\t\"./query_editor/components/inspector_query_cond/hooks.js\": \"./app/panels/query_editor/components/inspector_query_cond/hooks.js\",\n\t\"./query_editor/components/inspector_query_cond/inspector_query_cond\": \"./app/panels/query_editor/components/inspector_query_cond/inspector_query_cond.js\",\n\t\"./query_editor/components/inspector_query_cond/inspector_query_cond.js\": \"./app/panels/query_editor/components/inspector_query_cond/inspector_query_cond.js\",\n\t\"./query_editor/components/inspector_query_cond/query_cond_dialog\": \"./app/panels/query_editor/components/inspector_query_cond/query_cond_dialog.js\",\n\t\"./query_editor/components/inspector_query_cond/query_cond_dialog.js\": \"./app/panels/query_editor/components/inspector_query_cond/query_cond_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attr_setup_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/attr_setup_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attr_setup_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/attr_setup_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attrs_list\": \"./app/panels/query_editor/components/inspector_query_ents/attrs_list.js\",\n\t\"./query_editor/components/inspector_query_ents/attrs_list.js\": \"./app/panels/query_editor/components/inspector_query_ents/attrs_list.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_add_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/entity_add_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_add_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/entity_add_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_attrs_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/entity_attrs_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_attrs_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/entity_attrs_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/ents_list\": \"./app/panels/query_editor/components/inspector_query_ents/ents_list.js\",\n\t\"./query_editor/components/inspector_query_ents/ents_list.js\": \"./app/panels/query_editor/components/inspector_query_ents/ents_list.js\",\n\t\"./query_editor/components/inspector_query_ents/hooks\": \"./app/panels/query_editor/components/inspector_query_ents/hooks.js\",\n\t\"./query_editor/components/inspector_query_ents/hooks.js\": \"./app/panels/query_editor/components/inspector_query_ents/hooks.js\",\n\t\"./query_editor/components/inspector_query_ents/inspector_query_ents\": \"./app/panels/query_editor/components/inspector_query_ents/inspector_query_ents.js\",\n\t\"./query_editor/components/inspector_query_ents/inspector_query_ents.js\": \"./app/panels/query_editor/components/inspector_query_ents/inspector_query_ents.js\",\n\t\"./query_editor/components/inspector_query_rls/hooks\": \"./app/panels/query_editor/components/inspector_query_rls/hooks.js\",\n\t\"./query_editor/components/inspector_query_rls/hooks.js\": \"./app/panels/query_editor/components/inspector_query_rls/hooks.js\",\n\t\"./query_editor/components/inspector_query_rls/inspector_query_rls\": \"./app/panels/query_editor/components/inspector_query_rls/inspector_query_rls.js\",\n\t\"./query_editor/components/inspector_query_rls/inspector_query_rls.js\": \"./app/panels/query_editor/components/inspector_query_rls/inspector_query_rls.js\",\n\t\"./query_editor/components/queries_manager/hooks\": \"./app/panels/query_editor/components/queries_manager/hooks.js\",\n\t\"./query_editor/components/queries_manager/hooks.js\": \"./app/panels/query_editor/components/queries_manager/hooks.js\",\n\t\"./query_editor/components/queries_manager/queries_list\": \"./app/panels/query_editor/components/queries_manager/queries_list.js\",\n\t\"./query_editor/components/queries_manager/queries_list.js\": \"./app/panels/query_editor/components/queries_manager/queries_list.js\",\n\t\"./query_editor/components/queries_manager/queries_manager\": \"./app/panels/query_editor/components/queries_manager/queries_manager.js\",\n\t\"./query_editor/components/queries_manager/queries_manager.js\": \"./app/panels/query_editor/components/queries_manager/queries_manager.js\",\n\t\"./query_editor/components/queries_manager/query_iu_dialog\": \"./app/panels/query_editor/components/queries_manager/query_iu_dialog.js\",\n\t\"./query_editor/components/queries_manager/query_iu_dialog.js\": \"./app/panels/query_editor/components/queries_manager/query_iu_dialog.js\",\n\t\"./query_editor/components/query_diagram/query_diagram\": \"./app/panels/query_editor/components/query_diagram/query_diagram.js\",\n\t\"./query_editor/components/query_diagram/query_diagram.css\": \"./app/panels/query_editor/components/query_diagram/query_diagram.css\",\n\t\"./query_editor/components/query_diagram/query_diagram.js\": \"./app/panels/query_editor/components/query_diagram/query_diagram.js\",\n\t\"./query_editor/components/relation/relation\": \"./app/panels/query_editor/components/relation/relation.js\",\n\t\"./query_editor/components/relation/relation.js\": \"./app/panels/query_editor/components/relation/relation.js\",\n\t\"./query_editor/hooks\": \"./app/panels/query_editor/hooks.js\",\n\t\"./query_editor/hooks.js\": \"./app/panels/query_editor/hooks.js\",\n\t\"./query_editor/index\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/index.js\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/query_editor\": \"./app/panels/query_editor/query_editor.js\",\n\t\"./query_editor/query_editor.js\": \"./app/panels/query_editor/query_editor.js\",\n\t\"./rrp_conf_editor\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/common\": \"./app/panels/rrp_conf_editor/common.js\",\n\t\"./rrp_conf_editor/common.js\": \"./app/panels/rrp_conf_editor/common.js\",\n\t\"./rrp_conf_editor/components/action_message\": \"./app/panels/rrp_conf_editor/components/action_message.js\",\n\t\"./rrp_conf_editor/components/action_message.js\": \"./app/panels/rrp_conf_editor/components/action_message.js\",\n\t\"./rrp_conf_editor/components/dialog_help\": \"./app/panels/rrp_conf_editor/components/dialog_help.js\",\n\t\"./rrp_conf_editor/components/dialog_help.js\": \"./app/panels/rrp_conf_editor/components/dialog_help.js\",\n\t\"./rrp_conf_editor/components/dialog_mark_iu\": \"./app/panels/rrp_conf_editor/components/dialog_mark_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_mark_iu.js\": \"./app/panels/rrp_conf_editor/components/dialog_mark_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_order\": \"./app/panels/rrp_conf_editor/components/dialog_order.js\",\n\t\"./rrp_conf_editor/components/dialog_order.js\": \"./app/panels/rrp_conf_editor/components/dialog_order.js\",\n\t\"./rrp_conf_editor/components/dialog_section_iu\": \"./app/panels/rrp_conf_editor/components/dialog_section_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_section_iu.js\": \"./app/panels/rrp_conf_editor/components/dialog_section_iu.js\",\n\t\"./rrp_conf_editor/components/mark_card\": \"./app/panels/rrp_conf_editor/components/mark_card.js\",\n\t\"./rrp_conf_editor/components/mark_card.js\": \"./app/panels/rrp_conf_editor/components/mark_card.js\",\n\t\"./rrp_conf_editor/components/mark_card_toolbar\": \"./app/panels/rrp_conf_editor/components/mark_card_toolbar.js\",\n\t\"./rrp_conf_editor/components/mark_card_toolbar.js\": \"./app/panels/rrp_conf_editor/components/mark_card_toolbar.js\",\n\t\"./rrp_conf_editor/components/mark_cn_list\": \"./app/panels/rrp_conf_editor/components/mark_cn_list.js\",\n\t\"./rrp_conf_editor/components/mark_cn_list.js\": \"./app/panels/rrp_conf_editor/components/mark_cn_list.js\",\n\t\"./rrp_conf_editor/components/marks\": \"./app/panels/rrp_conf_editor/components/marks.js\",\n\t\"./rrp_conf_editor/components/marks.js\": \"./app/panels/rrp_conf_editor/components/marks.js\",\n\t\"./rrp_conf_editor/components/marks_toolbar\": \"./app/panels/rrp_conf_editor/components/marks_toolbar.js\",\n\t\"./rrp_conf_editor/components/marks_toolbar.js\": \"./app/panels/rrp_conf_editor/components/marks_toolbar.js\",\n\t\"./rrp_conf_editor/components/section\": \"./app/panels/rrp_conf_editor/components/section.js\",\n\t\"./rrp_conf_editor/components/section.js\": \"./app/panels/rrp_conf_editor/components/section.js\",\n\t\"./rrp_conf_editor/components/section_tab\": \"./app/panels/rrp_conf_editor/components/section_tab.js\",\n\t\"./rrp_conf_editor/components/section_tab.js\": \"./app/panels/rrp_conf_editor/components/section_tab.js\",\n\t\"./rrp_conf_editor/components/sections\": \"./app/panels/rrp_conf_editor/components/sections.js\",\n\t\"./rrp_conf_editor/components/sections.js\": \"./app/panels/rrp_conf_editor/components/sections.js\",\n\t\"./rrp_conf_editor/hooks\": \"./app/panels/rrp_conf_editor/hooks.js\",\n\t\"./rrp_conf_editor/hooks.js\": \"./app/panels/rrp_conf_editor/hooks.js\",\n\t\"./rrp_conf_editor/index\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/index.js\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/layouts\": \"./app/panels/rrp_conf_editor/layouts.js\",\n\t\"./rrp_conf_editor/layouts.js\": \"./app/panels/rrp_conf_editor/layouts.js\",\n\t\"./rrp_conf_editor/rrp_conf_editor\": \"./app/panels/rrp_conf_editor/rrp_conf_editor.js\",\n\t\"./rrp_conf_editor/rrp_conf_editor.js\": \"./app/panels/rrp_conf_editor/rrp_conf_editor.js\",\n\t\"./samples\": \"./app/panels/samples/index.js\",\n\t\"./samples/\": \"./app/panels/samples/index.js\",\n\t\"./samples/chart\": \"./app/panels/samples/chart.js\",\n\t\"./samples/chart.js\": \"./app/panels/samples/chart.js\",\n\t\"./samples/cyclogram\": \"./app/panels/samples/cyclogram.js\",\n\t\"./samples/cyclogram.js\": \"./app/panels/samples/cyclogram.js\",\n\t\"./samples/data_grid\": \"./app/panels/samples/data_grid.js\",\n\t\"./samples/data_grid.js\": \"./app/panels/samples/data_grid.js\",\n\t\"./samples/gantt\": \"./app/panels/samples/gantt.js\",\n\t\"./samples/gantt.js\": \"./app/panels/samples/gantt.js\",\n\t\"./samples/index\": \"./app/panels/samples/index.js\",\n\t\"./samples/index.js\": \"./app/panels/samples/index.js\",\n\t\"./samples/indicator\": \"./app/panels/samples/indicator.js\",\n\t\"./samples/indicator.js\": \"./app/panels/samples/indicator.js\",\n\t\"./samples/loader\": \"./app/panels/samples/loader.js\",\n\t\"./samples/loader.js\": \"./app/panels/samples/loader.js\",\n\t\"./samples/messages\": \"./app/panels/samples/messages.js\",\n\t\"./samples/messages.js\": \"./app/panels/samples/messages.js\",\n\t\"./samples/mui\": \"./app/panels/samples/mui.js\",\n\t\"./samples/mui.js\": \"./app/panels/samples/mui.js\",\n\t\"./samples/p8online\": \"./app/panels/samples/p8online.js\",\n\t\"./samples/p8online.js\": \"./app/panels/samples/p8online.js\",\n\t\"./samples/samples\": \"./app/panels/samples/samples.js\",\n\t\"./samples/samples.js\": \"./app/panels/samples/samples.js\",\n\t\"./samples/svg\": \"./app/panels/samples/svg.js\",\n\t\"./samples/svg.js\": \"./app/panels/samples/svg.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./app/panels sync recursive ^\\\\.\\\\/.*$\";\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/_sync_^\\.\\/.*$?");
+eval("var map = {\n\t\"./clnt_task_board\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/clnt_task_board\": \"./app/panels/clnt_task_board/clnt_task_board.js\",\n\t\"./clnt_task_board/clnt_task_board.js\": \"./app/panels/clnt_task_board/clnt_task_board.js\",\n\t\"./clnt_task_board/components/custom_input_field\": \"./app/panels/clnt_task_board/components/custom_input_field.js\",\n\t\"./clnt_task_board/components/custom_input_field.js\": \"./app/panels/clnt_task_board/components/custom_input_field.js\",\n\t\"./clnt_task_board/components/filter_dialog\": \"./app/panels/clnt_task_board/components/filter_dialog.js\",\n\t\"./clnt_task_board/components/filter_dialog.js\": \"./app/panels/clnt_task_board/components/filter_dialog.js\",\n\t\"./clnt_task_board/components/note_dialog\": \"./app/panels/clnt_task_board/components/note_dialog.js\",\n\t\"./clnt_task_board/components/note_dialog.js\": \"./app/panels/clnt_task_board/components/note_dialog.js\",\n\t\"./clnt_task_board/components/settings_dialog\": \"./app/panels/clnt_task_board/components/settings_dialog.js\",\n\t\"./clnt_task_board/components/settings_dialog.js\": \"./app/panels/clnt_task_board/components/settings_dialog.js\",\n\t\"./clnt_task_board/components/status_card\": \"./app/panels/clnt_task_board/components/status_card.js\",\n\t\"./clnt_task_board/components/status_card.js\": \"./app/panels/clnt_task_board/components/status_card.js\",\n\t\"./clnt_task_board/components/status_card_settings\": \"./app/panels/clnt_task_board/components/status_card_settings.js\",\n\t\"./clnt_task_board/components/status_card_settings.js\": \"./app/panels/clnt_task_board/components/status_card_settings.js\",\n\t\"./clnt_task_board/components/task_card\": \"./app/panels/clnt_task_board/components/task_card.js\",\n\t\"./clnt_task_board/components/task_card.js\": \"./app/panels/clnt_task_board/components/task_card.js\",\n\t\"./clnt_task_board/components/task_form\": \"./app/panels/clnt_task_board/components/task_form.js\",\n\t\"./clnt_task_board/components/task_form.js\": \"./app/panels/clnt_task_board/components/task_form.js\",\n\t\"./clnt_task_board/components/task_form_tab_executor\": \"./app/panels/clnt_task_board/components/task_form_tab_executor.js\",\n\t\"./clnt_task_board/components/task_form_tab_executor.js\": \"./app/panels/clnt_task_board/components/task_form_tab_executor.js\",\n\t\"./clnt_task_board/components/task_form_tab_info\": \"./app/panels/clnt_task_board/components/task_form_tab_info.js\",\n\t\"./clnt_task_board/components/task_form_tab_info.js\": \"./app/panels/clnt_task_board/components/task_form_tab_info.js\",\n\t\"./clnt_task_board/components/task_form_tab_props\": \"./app/panels/clnt_task_board/components/task_form_tab_props.js\",\n\t\"./clnt_task_board/components/task_form_tab_props.js\": \"./app/panels/clnt_task_board/components/task_form_tab_props.js\",\n\t\"./clnt_task_board/filter\": \"./app/panels/clnt_task_board/filter.js\",\n\t\"./clnt_task_board/filter.js\": \"./app/panels/clnt_task_board/filter.js\",\n\t\"./clnt_task_board/hooks/dict_hooks\": \"./app/panels/clnt_task_board/hooks/dict_hooks.js\",\n\t\"./clnt_task_board/hooks/dict_hooks.js\": \"./app/panels/clnt_task_board/hooks/dict_hooks.js\",\n\t\"./clnt_task_board/hooks/filter_hooks\": \"./app/panels/clnt_task_board/hooks/filter_hooks.js\",\n\t\"./clnt_task_board/hooks/filter_hooks.js\": \"./app/panels/clnt_task_board/hooks/filter_hooks.js\",\n\t\"./clnt_task_board/hooks/hooks\": \"./app/panels/clnt_task_board/hooks/hooks.js\",\n\t\"./clnt_task_board/hooks/hooks.js\": \"./app/panels/clnt_task_board/hooks/hooks.js\",\n\t\"./clnt_task_board/hooks/task_dialog_hooks\": \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\",\n\t\"./clnt_task_board/hooks/task_dialog_hooks.js\": \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\",\n\t\"./clnt_task_board/hooks/tasks_hooks\": \"./app/panels/clnt_task_board/hooks/tasks_hooks.js\",\n\t\"./clnt_task_board/hooks/tasks_hooks.js\": \"./app/panels/clnt_task_board/hooks/tasks_hooks.js\",\n\t\"./clnt_task_board/index\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/index.js\": \"./app/panels/clnt_task_board/index.js\",\n\t\"./clnt_task_board/layouts\": \"./app/panels/clnt_task_board/layouts.js\",\n\t\"./clnt_task_board/layouts.js\": \"./app/panels/clnt_task_board/layouts.js\",\n\t\"./clnt_task_board/styles\": \"./app/panels/clnt_task_board/styles.js\",\n\t\"./clnt_task_board/styles.js\": \"./app/panels/clnt_task_board/styles.js\",\n\t\"./clnt_task_board/task_dialog\": \"./app/panels/clnt_task_board/task_dialog.js\",\n\t\"./clnt_task_board/task_dialog.js\": \"./app/panels/clnt_task_board/task_dialog.js\",\n\t\"./dummy\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/dummy\": \"./app/panels/dummy/dummy.js\",\n\t\"./dummy/dummy.js\": \"./app/panels/dummy/dummy.js\",\n\t\"./dummy/index\": \"./app/panels/dummy/index.js\",\n\t\"./dummy/index.js\": \"./app/panels/dummy/index.js\",\n\t\"./eqs_prfrm\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/eqs_prfrm\": \"./app/panels/eqs_prfrm/eqs_prfrm.js\",\n\t\"./eqs_prfrm/eqs_prfrm.js\": \"./app/panels/eqs_prfrm/eqs_prfrm.js\",\n\t\"./eqs_prfrm/filter\": \"./app/panels/eqs_prfrm/filter.js\",\n\t\"./eqs_prfrm/filter.js\": \"./app/panels/eqs_prfrm/filter.js\",\n\t\"./eqs_prfrm/filter_dialog\": \"./app/panels/eqs_prfrm/filter_dialog.js\",\n\t\"./eqs_prfrm/filter_dialog.js\": \"./app/panels/eqs_prfrm/filter_dialog.js\",\n\t\"./eqs_prfrm/filter_input_field\": \"./app/panels/eqs_prfrm/filter_input_field.js\",\n\t\"./eqs_prfrm/filter_input_field.js\": \"./app/panels/eqs_prfrm/filter_input_field.js\",\n\t\"./eqs_prfrm/hooks\": \"./app/panels/eqs_prfrm/hooks.js\",\n\t\"./eqs_prfrm/hooks.js\": \"./app/panels/eqs_prfrm/hooks.js\",\n\t\"./eqs_prfrm/index\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/index.js\": \"./app/panels/eqs_prfrm/index.js\",\n\t\"./eqs_prfrm/layouts\": \"./app/panels/eqs_prfrm/layouts.js\",\n\t\"./eqs_prfrm/layouts.js\": \"./app/panels/eqs_prfrm/layouts.js\",\n\t\"./mech_rec_assembly_mon\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/components/plan_detail\": \"./app/panels/mech_rec_assembly_mon/components/plan_detail.js\",\n\t\"./mech_rec_assembly_mon/components/plan_detail.js\": \"./app/panels/mech_rec_assembly_mon/components/plan_detail.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list\": \"./app/panels/mech_rec_assembly_mon/components/plans_list.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list.js\": \"./app/panels/mech_rec_assembly_mon/components/plans_list.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list_item\": \"./app/panels/mech_rec_assembly_mon/components/plans_list_item.js\",\n\t\"./mech_rec_assembly_mon/components/plans_list_item.js\": \"./app/panels/mech_rec_assembly_mon/components/plans_list_item.js\",\n\t\"./mech_rec_assembly_mon/components/progress_box\": \"./app/panels/mech_rec_assembly_mon/components/progress_box.js\",\n\t\"./mech_rec_assembly_mon/components/progress_box.js\": \"./app/panels/mech_rec_assembly_mon/components/progress_box.js\",\n\t\"./mech_rec_assembly_mon/hooks\": \"./app/panels/mech_rec_assembly_mon/hooks.js\",\n\t\"./mech_rec_assembly_mon/hooks.js\": \"./app/panels/mech_rec_assembly_mon/hooks.js\",\n\t\"./mech_rec_assembly_mon/index\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/index.js\": \"./app/panels/mech_rec_assembly_mon/index.js\",\n\t\"./mech_rec_assembly_mon/mech_rec_assembly_mon\": \"./app/panels/mech_rec_assembly_mon/mech_rec_assembly_mon.js\",\n\t\"./mech_rec_assembly_mon/mech_rec_assembly_mon.js\": \"./app/panels/mech_rec_assembly_mon/mech_rec_assembly_mon.js\",\n\t\"./mech_rec_assembly_mon/styles/themes\": \"./app/panels/mech_rec_assembly_mon/styles/themes.js\",\n\t\"./mech_rec_assembly_mon/styles/themes.js\": \"./app/panels/mech_rec_assembly_mon/styles/themes.js\",\n\t\"./mech_rec_cost_jobs_manage\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/fcjobssp\": \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\",\n\t\"./mech_rec_cost_jobs_manage/fcjobssp.js\": \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\",\n\t\"./mech_rec_cost_jobs_manage/hooks\": \"./app/panels/mech_rec_cost_jobs_manage/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage/hooks.js\": \"./app/panels/mech_rec_cost_jobs_manage/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage/index\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/index.js\": \"./app/panels/mech_rec_cost_jobs_manage/index.js\",\n\t\"./mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage\": \"./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\",\n\t\"./mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\": \"./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js\",\n\t\"./mech_rec_cost_jobs_manage_mp\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/hooks\": \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/hooks.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/index\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/index.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/index.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp\": \"./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/mech_rec_cost_jobs_manage_mp.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/worker_include_dialog\": \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\",\n\t\"./mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\": \"./app/panels/mech_rec_cost_jobs_manage_mp/worker_include_dialog.js\",\n\t\"./mech_rec_cost_prod_plans\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/backend_dg\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/backend_dg.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcdeliverylistsp.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcroutlst\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/fcroutlst.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/goodparties\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/goodparties.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/goodparties.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/goodparties.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/incomefromdeps\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\",\n\t\"./mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\": \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.js\",\n\t\"./mech_rec_cost_prod_plans/hooks\": \"./app/panels/mech_rec_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_cost_prod_plans/hooks.js\": \"./app/panels/mech_rec_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_cost_prod_plans/index\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/index.js\": \"./app/panels/mech_rec_cost_prod_plans/index.js\",\n\t\"./mech_rec_cost_prod_plans/mech_rec_cost_prod_plans\": \"./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\",\n\t\"./mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\": \"./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js\",\n\t\"./mech_rec_dept_cost_jobs\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/components/filter\": \"./app/panels/mech_rec_dept_cost_jobs/components/filter.js\",\n\t\"./mech_rec_dept_cost_jobs/components/filter.js\": \"./app/panels/mech_rec_dept_cost_jobs/components/filter.js\",\n\t\"./mech_rec_dept_cost_jobs/components/ins_department_dg\": \"./app/panels/mech_rec_dept_cost_jobs/components/ins_department_dg.js\",\n\t\"./mech_rec_dept_cost_jobs/components/ins_department_dg.js\": \"./app/panels/mech_rec_dept_cost_jobs/components/ins_department_dg.js\",\n\t\"./mech_rec_dept_cost_jobs/hooks\": \"./app/panels/mech_rec_dept_cost_jobs/hooks.js\",\n\t\"./mech_rec_dept_cost_jobs/hooks.js\": \"./app/panels/mech_rec_dept_cost_jobs/hooks.js\",\n\t\"./mech_rec_dept_cost_jobs/index\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/index.js\": \"./app/panels/mech_rec_dept_cost_jobs/index.js\",\n\t\"./mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs\": \"./app/panels/mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\",\n\t\"./mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\": \"./app/panels/mech_rec_dept_cost_jobs/mech_rec_dept_cost_jobs.js\",\n\t\"./mech_rec_dept_cost_prod_plans\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlst\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlst.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlstsp\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\",\n\t\"./mech_rec_dept_cost_prod_plans/fcroutlstsp.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\",\n\t\"./mech_rec_dept_cost_prod_plans/hooks\": \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_dept_cost_prod_plans/hooks.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.js\",\n\t\"./mech_rec_dept_cost_prod_plans/incomefromdeps\": \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\",\n\t\"./mech_rec_dept_cost_prod_plans/incomefromdeps.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\",\n\t\"./mech_rec_dept_cost_prod_plans/index\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/index.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/index.js\",\n\t\"./mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans\": \"./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\",\n\t\"./mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\": \"./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js\",\n\t\"./mech_rec_help\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/img/1_1.png\": \"./app/panels/mech_rec_help/img/1_1.png\",\n\t\"./mech_rec_help/img/1_2.png\": \"./app/panels/mech_rec_help/img/1_2.png\",\n\t\"./mech_rec_help/img/1_3.png\": \"./app/panels/mech_rec_help/img/1_3.png\",\n\t\"./mech_rec_help/img/1_4.png\": \"./app/panels/mech_rec_help/img/1_4.png\",\n\t\"./mech_rec_help/img/1_5.png\": \"./app/panels/mech_rec_help/img/1_5.png\",\n\t\"./mech_rec_help/img/21_1.png\": \"./app/panels/mech_rec_help/img/21_1.png\",\n\t\"./mech_rec_help/img/21_2.png\": \"./app/panels/mech_rec_help/img/21_2.png\",\n\t\"./mech_rec_help/img/21_3.png\": \"./app/panels/mech_rec_help/img/21_3.png\",\n\t\"./mech_rec_help/img/2_1.png\": \"./app/panels/mech_rec_help/img/2_1.png\",\n\t\"./mech_rec_help/img/2_2.png\": \"./app/panels/mech_rec_help/img/2_2.png\",\n\t\"./mech_rec_help/img/2_3.png\": \"./app/panels/mech_rec_help/img/2_3.png\",\n\t\"./mech_rec_help/img/2_4.png\": \"./app/panels/mech_rec_help/img/2_4.png\",\n\t\"./mech_rec_help/img/2_5.png\": \"./app/panels/mech_rec_help/img/2_5.png\",\n\t\"./mech_rec_help/img/31_1.png\": \"./app/panels/mech_rec_help/img/31_1.png\",\n\t\"./mech_rec_help/img/31_10.png\": \"./app/panels/mech_rec_help/img/31_10.png\",\n\t\"./mech_rec_help/img/31_2.png\": \"./app/panels/mech_rec_help/img/31_2.png\",\n\t\"./mech_rec_help/img/31_3.png\": \"./app/panels/mech_rec_help/img/31_3.png\",\n\t\"./mech_rec_help/img/31_4.png\": \"./app/panels/mech_rec_help/img/31_4.png\",\n\t\"./mech_rec_help/img/31_5.png\": \"./app/panels/mech_rec_help/img/31_5.png\",\n\t\"./mech_rec_help/img/31_6.png\": \"./app/panels/mech_rec_help/img/31_6.png\",\n\t\"./mech_rec_help/img/31_7.png\": \"./app/panels/mech_rec_help/img/31_7.png\",\n\t\"./mech_rec_help/img/31_8.png\": \"./app/panels/mech_rec_help/img/31_8.png\",\n\t\"./mech_rec_help/img/31_9.png\": \"./app/panels/mech_rec_help/img/31_9.png\",\n\t\"./mech_rec_help/img/32_1.png\": \"./app/panels/mech_rec_help/img/32_1.png\",\n\t\"./mech_rec_help/img/32_2.png\": \"./app/panels/mech_rec_help/img/32_2.png\",\n\t\"./mech_rec_help/img/32_3.png\": \"./app/panels/mech_rec_help/img/32_3.png\",\n\t\"./mech_rec_help/img/33_1.png\": \"./app/panels/mech_rec_help/img/33_1.png\",\n\t\"./mech_rec_help/img/33_2.png\": \"./app/panels/mech_rec_help/img/33_2.png\",\n\t\"./mech_rec_help/img/33_3.png\": \"./app/panels/mech_rec_help/img/33_3.png\",\n\t\"./mech_rec_help/img/33_4.png\": \"./app/panels/mech_rec_help/img/33_4.png\",\n\t\"./mech_rec_help/img/34_1.png\": \"./app/panels/mech_rec_help/img/34_1.png\",\n\t\"./mech_rec_help/img/34_2.png\": \"./app/panels/mech_rec_help/img/34_2.png\",\n\t\"./mech_rec_help/img/34_3.png\": \"./app/panels/mech_rec_help/img/34_3.png\",\n\t\"./mech_rec_help/img/34_4.png\": \"./app/panels/mech_rec_help/img/34_4.png\",\n\t\"./mech_rec_help/img/34_5.png\": \"./app/panels/mech_rec_help/img/34_5.png\",\n\t\"./mech_rec_help/img/34_6.png\": \"./app/panels/mech_rec_help/img/34_6.png\",\n\t\"./mech_rec_help/img/34_7.png\": \"./app/panels/mech_rec_help/img/34_7.png\",\n\t\"./mech_rec_help/img/34_8.png\": \"./app/panels/mech_rec_help/img/34_8.png\",\n\t\"./mech_rec_help/img/35_1.png\": \"./app/panels/mech_rec_help/img/35_1.png\",\n\t\"./mech_rec_help/img/3_1.png\": \"./app/panels/mech_rec_help/img/3_1.png\",\n\t\"./mech_rec_help/img/410_1.png\": \"./app/panels/mech_rec_help/img/410_1.png\",\n\t\"./mech_rec_help/img/410_2.png\": \"./app/panels/mech_rec_help/img/410_2.png\",\n\t\"./mech_rec_help/img/410_3.png\": \"./app/panels/mech_rec_help/img/410_3.png\",\n\t\"./mech_rec_help/img/410_4.png\": \"./app/panels/mech_rec_help/img/410_4.png\",\n\t\"./mech_rec_help/img/410_5.png\": \"./app/panels/mech_rec_help/img/410_5.png\",\n\t\"./mech_rec_help/img/410_6.png\": \"./app/panels/mech_rec_help/img/410_6.png\",\n\t\"./mech_rec_help/img/410_7.png\": \"./app/panels/mech_rec_help/img/410_7.png\",\n\t\"./mech_rec_help/img/411_1.png\": \"./app/panels/mech_rec_help/img/411_1.png\",\n\t\"./mech_rec_help/img/411_2.png\": \"./app/panels/mech_rec_help/img/411_2.png\",\n\t\"./mech_rec_help/img/411_3.png\": \"./app/panels/mech_rec_help/img/411_3.png\",\n\t\"./mech_rec_help/img/411_4.png\": \"./app/panels/mech_rec_help/img/411_4.png\",\n\t\"./mech_rec_help/img/412_1.png\": \"./app/panels/mech_rec_help/img/412_1.png\",\n\t\"./mech_rec_help/img/412_2.png\": \"./app/panels/mech_rec_help/img/412_2.png\",\n\t\"./mech_rec_help/img/412_3.png\": \"./app/panels/mech_rec_help/img/412_3.png\",\n\t\"./mech_rec_help/img/412_4.png\": \"./app/panels/mech_rec_help/img/412_4.png\",\n\t\"./mech_rec_help/img/413_1.png\": \"./app/panels/mech_rec_help/img/413_1.png\",\n\t\"./mech_rec_help/img/413_2.png\": \"./app/panels/mech_rec_help/img/413_2.png\",\n\t\"./mech_rec_help/img/413_3.png\": \"./app/panels/mech_rec_help/img/413_3.png\",\n\t\"./mech_rec_help/img/413_4.png\": \"./app/panels/mech_rec_help/img/413_4.png\",\n\t\"./mech_rec_help/img/413_5.png\": \"./app/panels/mech_rec_help/img/413_5.png\",\n\t\"./mech_rec_help/img/414_1.png\": \"./app/panels/mech_rec_help/img/414_1.png\",\n\t\"./mech_rec_help/img/414_2.png\": \"./app/panels/mech_rec_help/img/414_2.png\",\n\t\"./mech_rec_help/img/414_3.png\": \"./app/panels/mech_rec_help/img/414_3.png\",\n\t\"./mech_rec_help/img/41_1.png\": \"./app/panels/mech_rec_help/img/41_1.png\",\n\t\"./mech_rec_help/img/41_10.png\": \"./app/panels/mech_rec_help/img/41_10.png\",\n\t\"./mech_rec_help/img/41_11.png\": \"./app/panels/mech_rec_help/img/41_11.png\",\n\t\"./mech_rec_help/img/41_12.png\": \"./app/panels/mech_rec_help/img/41_12.png\",\n\t\"./mech_rec_help/img/41_2.png\": \"./app/panels/mech_rec_help/img/41_2.png\",\n\t\"./mech_rec_help/img/41_3.png\": \"./app/panels/mech_rec_help/img/41_3.png\",\n\t\"./mech_rec_help/img/41_4.png\": \"./app/panels/mech_rec_help/img/41_4.png\",\n\t\"./mech_rec_help/img/41_5.png\": \"./app/panels/mech_rec_help/img/41_5.png\",\n\t\"./mech_rec_help/img/41_6.png\": \"./app/panels/mech_rec_help/img/41_6.png\",\n\t\"./mech_rec_help/img/41_7.png\": \"./app/panels/mech_rec_help/img/41_7.png\",\n\t\"./mech_rec_help/img/41_8.png\": \"./app/panels/mech_rec_help/img/41_8.png\",\n\t\"./mech_rec_help/img/41_9.png\": \"./app/panels/mech_rec_help/img/41_9.png\",\n\t\"./mech_rec_help/img/42_1.png\": \"./app/panels/mech_rec_help/img/42_1.png\",\n\t\"./mech_rec_help/img/42_2.png\": \"./app/panels/mech_rec_help/img/42_2.png\",\n\t\"./mech_rec_help/img/42_3.png\": \"./app/panels/mech_rec_help/img/42_3.png\",\n\t\"./mech_rec_help/img/42_4.png\": \"./app/panels/mech_rec_help/img/42_4.png\",\n\t\"./mech_rec_help/img/43_1.png\": \"./app/panels/mech_rec_help/img/43_1.png\",\n\t\"./mech_rec_help/img/43_2.png\": \"./app/panels/mech_rec_help/img/43_2.png\",\n\t\"./mech_rec_help/img/43_3.png\": \"./app/panels/mech_rec_help/img/43_3.png\",\n\t\"./mech_rec_help/img/43_4.png\": \"./app/panels/mech_rec_help/img/43_4.png\",\n\t\"./mech_rec_help/img/43_5.png\": \"./app/panels/mech_rec_help/img/43_5.png\",\n\t\"./mech_rec_help/img/43_6.png\": \"./app/panels/mech_rec_help/img/43_6.png\",\n\t\"./mech_rec_help/img/43_7.png\": \"./app/panels/mech_rec_help/img/43_7.png\",\n\t\"./mech_rec_help/img/43_8.png\": \"./app/panels/mech_rec_help/img/43_8.png\",\n\t\"./mech_rec_help/img/44_1.png\": \"./app/panels/mech_rec_help/img/44_1.png\",\n\t\"./mech_rec_help/img/44_10.png\": \"./app/panels/mech_rec_help/img/44_10.png\",\n\t\"./mech_rec_help/img/44_2.png\": \"./app/panels/mech_rec_help/img/44_2.png\",\n\t\"./mech_rec_help/img/44_3.png\": \"./app/panels/mech_rec_help/img/44_3.png\",\n\t\"./mech_rec_help/img/44_4.png\": \"./app/panels/mech_rec_help/img/44_4.png\",\n\t\"./mech_rec_help/img/44_5.png\": \"./app/panels/mech_rec_help/img/44_5.png\",\n\t\"./mech_rec_help/img/44_6.png\": \"./app/panels/mech_rec_help/img/44_6.png\",\n\t\"./mech_rec_help/img/44_7.png\": \"./app/panels/mech_rec_help/img/44_7.png\",\n\t\"./mech_rec_help/img/44_8.png\": \"./app/panels/mech_rec_help/img/44_8.png\",\n\t\"./mech_rec_help/img/44_9.png\": \"./app/panels/mech_rec_help/img/44_9.png\",\n\t\"./mech_rec_help/img/45_1.png\": \"./app/panels/mech_rec_help/img/45_1.png\",\n\t\"./mech_rec_help/img/45_10.png\": \"./app/panels/mech_rec_help/img/45_10.png\",\n\t\"./mech_rec_help/img/45_2.png\": \"./app/panels/mech_rec_help/img/45_2.png\",\n\t\"./mech_rec_help/img/45_3.png\": \"./app/panels/mech_rec_help/img/45_3.png\",\n\t\"./mech_rec_help/img/45_4.png\": \"./app/panels/mech_rec_help/img/45_4.png\",\n\t\"./mech_rec_help/img/45_5.png\": \"./app/panels/mech_rec_help/img/45_5.png\",\n\t\"./mech_rec_help/img/45_6.png\": \"./app/panels/mech_rec_help/img/45_6.png\",\n\t\"./mech_rec_help/img/45_7.png\": \"./app/panels/mech_rec_help/img/45_7.png\",\n\t\"./mech_rec_help/img/45_8.png\": \"./app/panels/mech_rec_help/img/45_8.png\",\n\t\"./mech_rec_help/img/45_9.png\": \"./app/panels/mech_rec_help/img/45_9.png\",\n\t\"./mech_rec_help/img/46_1.png\": \"./app/panels/mech_rec_help/img/46_1.png\",\n\t\"./mech_rec_help/img/46_2.png\": \"./app/panels/mech_rec_help/img/46_2.png\",\n\t\"./mech_rec_help/img/46_3.png\": \"./app/panels/mech_rec_help/img/46_3.png\",\n\t\"./mech_rec_help/img/46_4.png\": \"./app/panels/mech_rec_help/img/46_4.png\",\n\t\"./mech_rec_help/img/46_5.png\": \"./app/panels/mech_rec_help/img/46_5.png\",\n\t\"./mech_rec_help/img/46_6.png\": \"./app/panels/mech_rec_help/img/46_6.png\",\n\t\"./mech_rec_help/img/47_1.png\": \"./app/panels/mech_rec_help/img/47_1.png\",\n\t\"./mech_rec_help/img/47_10.png\": \"./app/panels/mech_rec_help/img/47_10.png\",\n\t\"./mech_rec_help/img/47_11.png\": \"./app/panels/mech_rec_help/img/47_11.png\",\n\t\"./mech_rec_help/img/47_12.png\": \"./app/panels/mech_rec_help/img/47_12.png\",\n\t\"./mech_rec_help/img/47_2.png\": \"./app/panels/mech_rec_help/img/47_2.png\",\n\t\"./mech_rec_help/img/47_3.png\": \"./app/panels/mech_rec_help/img/47_3.png\",\n\t\"./mech_rec_help/img/47_4.png\": \"./app/panels/mech_rec_help/img/47_4.png\",\n\t\"./mech_rec_help/img/47_5.png\": \"./app/panels/mech_rec_help/img/47_5.png\",\n\t\"./mech_rec_help/img/47_6.png\": \"./app/panels/mech_rec_help/img/47_6.png\",\n\t\"./mech_rec_help/img/47_7.png\": \"./app/panels/mech_rec_help/img/47_7.png\",\n\t\"./mech_rec_help/img/47_8.png\": \"./app/panels/mech_rec_help/img/47_8.png\",\n\t\"./mech_rec_help/img/47_9.png\": \"./app/panels/mech_rec_help/img/47_9.png\",\n\t\"./mech_rec_help/img/48_1.png\": \"./app/panels/mech_rec_help/img/48_1.png\",\n\t\"./mech_rec_help/img/48_2.png\": \"./app/panels/mech_rec_help/img/48_2.png\",\n\t\"./mech_rec_help/img/48_3.png\": \"./app/panels/mech_rec_help/img/48_3.png\",\n\t\"./mech_rec_help/img/48_4.png\": \"./app/panels/mech_rec_help/img/48_4.png\",\n\t\"./mech_rec_help/img/49_1.png\": \"./app/panels/mech_rec_help/img/49_1.png\",\n\t\"./mech_rec_help/img/49_2.png\": \"./app/panels/mech_rec_help/img/49_2.png\",\n\t\"./mech_rec_help/img/49_3.png\": \"./app/panels/mech_rec_help/img/49_3.png\",\n\t\"./mech_rec_help/img/add1_1.png\": \"./app/panels/mech_rec_help/img/add1_1.png\",\n\t\"./mech_rec_help/img/add1_2.png\": \"./app/panels/mech_rec_help/img/add1_2.png\",\n\t\"./mech_rec_help/img/add1_3.png\": \"./app/panels/mech_rec_help/img/add1_3.png\",\n\t\"./mech_rec_help/img/add1_4.png\": \"./app/panels/mech_rec_help/img/add1_4.png\",\n\t\"./mech_rec_help/img/add1_5.png\": \"./app/panels/mech_rec_help/img/add1_5.png\",\n\t\"./mech_rec_help/img/add1_6.png\": \"./app/panels/mech_rec_help/img/add1_6.png\",\n\t\"./mech_rec_help/img/add1_7.png\": \"./app/panels/mech_rec_help/img/add1_7.png\",\n\t\"./mech_rec_help/img/add1_8.png\": \"./app/panels/mech_rec_help/img/add1_8.png\",\n\t\"./mech_rec_help/img/add1_9.png\": \"./app/panels/mech_rec_help/img/add1_9.png\",\n\t\"./mech_rec_help/index\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/index.js\": \"./app/panels/mech_rec_help/index.js\",\n\t\"./mech_rec_help/mech_rec_help\": \"./app/panels/mech_rec_help/mech_rec_help.js\",\n\t\"./mech_rec_help/mech_rec_help.js\": \"./app/panels/mech_rec_help/mech_rec_help.js\",\n\t\"./panels_editor\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/component_editor\": \"./app/panels/panels_editor/component_editor.js\",\n\t\"./panels_editor/component_editor.js\": \"./app/panels/panels_editor/component_editor.js\",\n\t\"./panels_editor/component_view\": \"./app/panels/panels_editor/component_view.js\",\n\t\"./panels_editor/component_view.js\": \"./app/panels/panels_editor/component_view.js\",\n\t\"./panels_editor/components/chart/action\": \"./app/panels/panels_editor/components/chart/action.js\",\n\t\"./panels_editor/components/chart/action.js\": \"./app/panels/panels_editor/components/chart/action.js\",\n\t\"./panels_editor/components/chart/editor\": \"./app/panels/panels_editor/components/chart/editor.js\",\n\t\"./panels_editor/components/chart/editor.js\": \"./app/panels/panels_editor/components/chart/editor.js\",\n\t\"./panels_editor/components/chart/view\": \"./app/panels/panels_editor/components/chart/view.js\",\n\t\"./panels_editor/components/chart/view.js\": \"./app/panels/panels_editor/components/chart/view.js\",\n\t\"./panels_editor/components/components\": \"./app/panels/panels_editor/components/components.js\",\n\t\"./panels_editor/components/components.js\": \"./app/panels/panels_editor/components/components.js\",\n\t\"./panels_editor/components/components_hooks\": \"./app/panels/panels_editor/components/components_hooks.js\",\n\t\"./panels_editor/components/components_hooks.js\": \"./app/panels/panels_editor/components/components_hooks.js\",\n\t\"./panels_editor/components/form/common\": \"./app/panels/panels_editor/components/form/common.js\",\n\t\"./panels_editor/components/form/common.js\": \"./app/panels/panels_editor/components/form/common.js\",\n\t\"./panels_editor/components/form/editor\": \"./app/panels/panels_editor/components/form/editor.js\",\n\t\"./panels_editor/components/form/editor.js\": \"./app/panels/panels_editor/components/form/editor.js\",\n\t\"./panels_editor/components/form/view\": \"./app/panels/panels_editor/components/form/view.js\",\n\t\"./panels_editor/components/form/view.js\": \"./app/panels/panels_editor/components/form/view.js\",\n\t\"./panels_editor/components/indicator/action\": \"./app/panels/panels_editor/components/indicator/action.js\",\n\t\"./panels_editor/components/indicator/action.js\": \"./app/panels/panels_editor/components/indicator/action.js\",\n\t\"./panels_editor/components/indicator/conditions\": \"./app/panels/panels_editor/components/indicator/conditions.js\",\n\t\"./panels_editor/components/indicator/conditions.js\": \"./app/panels/panels_editor/components/indicator/conditions.js\",\n\t\"./panels_editor/components/indicator/editor\": \"./app/panels/panels_editor/components/indicator/editor.js\",\n\t\"./panels_editor/components/indicator/editor.js\": \"./app/panels/panels_editor/components/indicator/editor.js\",\n\t\"./panels_editor/components/indicator/view\": \"./app/panels/panels_editor/components/indicator/view.js\",\n\t\"./panels_editor/components/indicator/view.js\": \"./app/panels/panels_editor/components/indicator/view.js\",\n\t\"./panels_editor/components/panels_manager/panel_iu_dialog\": \"./app/panels/panels_editor/components/panels_manager/panel_iu_dialog.js\",\n\t\"./panels_editor/components/panels_manager/panel_iu_dialog.js\": \"./app/panels/panels_editor/components/panels_manager/panel_iu_dialog.js\",\n\t\"./panels_editor/components/panels_manager/panels_list\": \"./app/panels/panels_editor/components/panels_manager/panels_list.js\",\n\t\"./panels_editor/components/panels_manager/panels_list.js\": \"./app/panels/panels_editor/components/panels_manager/panels_list.js\",\n\t\"./panels_editor/components/panels_manager/panels_manager\": \"./app/panels/panels_editor/components/panels_manager/panels_manager.js\",\n\t\"./panels_editor/components/panels_manager/panels_manager.js\": \"./app/panels/panels_editor/components/panels_manager/panels_manager.js\",\n\t\"./panels_editor/components/table/action\": \"./app/panels/panels_editor/components/table/action.js\",\n\t\"./panels_editor/components/table/action.js\": \"./app/panels/panels_editor/components/table/action.js\",\n\t\"./panels_editor/components/table/conditions\": \"./app/panels/panels_editor/components/table/conditions.js\",\n\t\"./panels_editor/components/table/conditions.js\": \"./app/panels/panels_editor/components/table/conditions.js\",\n\t\"./panels_editor/components/table/editor\": \"./app/panels/panels_editor/components/table/editor.js\",\n\t\"./panels_editor/components/table/editor.js\": \"./app/panels/panels_editor/components/table/editor.js\",\n\t\"./panels_editor/components/table/view\": \"./app/panels/panels_editor/components/table/view.js\",\n\t\"./panels_editor/components/table/view.js\": \"./app/panels/panels_editor/components/table/view.js\",\n\t\"./panels_editor/index\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/index.js\": \"./app/panels/panels_editor/index.js\",\n\t\"./panels_editor/layout_item\": \"./app/panels/panels_editor/layout_item.js\",\n\t\"./panels_editor/layout_item.js\": \"./app/panels/panels_editor/layout_item.js\",\n\t\"./panels_editor/layouts\": \"./app/panels/panels_editor/layouts.js\",\n\t\"./panels_editor/layouts.js\": \"./app/panels/panels_editor/layouts.js\",\n\t\"./panels_editor/panel_editor\": \"./app/panels/panels_editor/panel_editor.js\",\n\t\"./panels_editor/panel_editor.js\": \"./app/panels/panels_editor/panel_editor.js\",\n\t\"./panels_editor/panel_props_editor\": \"./app/panels/panels_editor/panel_props_editor.js\",\n\t\"./panels_editor/panel_props_editor.js\": \"./app/panels/panels_editor/panel_props_editor.js\",\n\t\"./panels_editor/panel_variable_list\": \"./app/panels/panels_editor/panel_variable_list.js\",\n\t\"./panels_editor/panel_variable_list.js\": \"./app/panels/panels_editor/panel_variable_list.js\",\n\t\"./panels_editor/panels_editor\": \"./app/panels/panels_editor/panels_editor.js\",\n\t\"./panels_editor/panels_editor.css\": \"./app/panels/panels_editor/panels_editor.css\",\n\t\"./panels_editor/panels_editor.js\": \"./app/panels/panels_editor/panels_editor.js\",\n\t\"./prj_fin\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/index\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/index.js\": \"./app/panels/prj_fin/index.js\",\n\t\"./prj_fin/layouts\": \"./app/panels/prj_fin/layouts.js\",\n\t\"./prj_fin/layouts.js\": \"./app/panels/prj_fin/layouts.js\",\n\t\"./prj_fin/prj_fin\": \"./app/panels/prj_fin/prj_fin.js\",\n\t\"./prj_fin/prj_fin.js\": \"./app/panels/prj_fin/prj_fin.js\",\n\t\"./prj_fin/projects\": \"./app/panels/prj_fin/projects.js\",\n\t\"./prj_fin/projects.js\": \"./app/panels/prj_fin/projects.js\",\n\t\"./prj_fin/stage_arts\": \"./app/panels/prj_fin/stage_arts.js\",\n\t\"./prj_fin/stage_arts.js\": \"./app/panels/prj_fin/stage_arts.js\",\n\t\"./prj_fin/stage_contracts\": \"./app/panels/prj_fin/stage_contracts.js\",\n\t\"./prj_fin/stage_contracts.js\": \"./app/panels/prj_fin/stage_contracts.js\",\n\t\"./prj_fin/stages\": \"./app/panels/prj_fin/stages.js\",\n\t\"./prj_fin/stages.js\": \"./app/panels/prj_fin/stages.js\",\n\t\"./prj_graph\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/index\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/index.js\": \"./app/panels/prj_graph/index.js\",\n\t\"./prj_graph/layouts\": \"./app/panels/prj_graph/layouts.js\",\n\t\"./prj_graph/layouts.js\": \"./app/panels/prj_graph/layouts.js\",\n\t\"./prj_graph/prj_graph\": \"./app/panels/prj_graph/prj_graph.js\",\n\t\"./prj_graph/prj_graph.js\": \"./app/panels/prj_graph/prj_graph.js\",\n\t\"./prj_help\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/img/21_1.png\": \"./app/panels/prj_help/img/21_1.png\",\n\t\"./prj_help/img/21_2.png\": \"./app/panels/prj_help/img/21_2.png\",\n\t\"./prj_help/img/21_3.png\": \"./app/panels/prj_help/img/21_3.png\",\n\t\"./prj_help/img/21_4.png\": \"./app/panels/prj_help/img/21_4.png\",\n\t\"./prj_help/img/21_5.png\": \"./app/panels/prj_help/img/21_5.png\",\n\t\"./prj_help/img/22_1.png\": \"./app/panels/prj_help/img/22_1.png\",\n\t\"./prj_help/img/22_2.png\": \"./app/panels/prj_help/img/22_2.png\",\n\t\"./prj_help/img/22_3.png\": \"./app/panels/prj_help/img/22_3.png\",\n\t\"./prj_help/img/23_1.png\": \"./app/panels/prj_help/img/23_1.png\",\n\t\"./prj_help/img/23_2.png\": \"./app/panels/prj_help/img/23_2.png\",\n\t\"./prj_help/img/24_1.png\": \"./app/panels/prj_help/img/24_1.png\",\n\t\"./prj_help/img/24_2.png\": \"./app/panels/prj_help/img/24_2.png\",\n\t\"./prj_help/img/24_3.png\": \"./app/panels/prj_help/img/24_3.png\",\n\t\"./prj_help/img/24_4.png\": \"./app/panels/prj_help/img/24_4.png\",\n\t\"./prj_help/img/24_5.png\": \"./app/panels/prj_help/img/24_5.png\",\n\t\"./prj_help/img/3_1.png\": \"./app/panels/prj_help/img/3_1.png\",\n\t\"./prj_help/img/3_2.png\": \"./app/panels/prj_help/img/3_2.png\",\n\t\"./prj_help/img/3_3.png\": \"./app/panels/prj_help/img/3_3.png\",\n\t\"./prj_help/img/3_4.png\": \"./app/panels/prj_help/img/3_4.png\",\n\t\"./prj_help/img/3_5.png\": \"./app/panels/prj_help/img/3_5.png\",\n\t\"./prj_help/img/3_6.png\": \"./app/panels/prj_help/img/3_6.png\",\n\t\"./prj_help/img/41_1.png\": \"./app/panels/prj_help/img/41_1.png\",\n\t\"./prj_help/img/41_2.png\": \"./app/panels/prj_help/img/41_2.png\",\n\t\"./prj_help/img/42_1.png\": \"./app/panels/prj_help/img/42_1.png\",\n\t\"./prj_help/img/42_2.png\": \"./app/panels/prj_help/img/42_2.png\",\n\t\"./prj_help/img/43_1.png\": \"./app/panels/prj_help/img/43_1.png\",\n\t\"./prj_help/img/43_2.png\": \"./app/panels/prj_help/img/43_2.png\",\n\t\"./prj_help/img/43_3.png\": \"./app/panels/prj_help/img/43_3.png\",\n\t\"./prj_help/img/43_4.png\": \"./app/panels/prj_help/img/43_4.png\",\n\t\"./prj_help/img/44_1.png\": \"./app/panels/prj_help/img/44_1.png\",\n\t\"./prj_help/img/44_2.png\": \"./app/panels/prj_help/img/44_2.png\",\n\t\"./prj_help/img/44_3.png\": \"./app/panels/prj_help/img/44_3.png\",\n\t\"./prj_help/img/44_4.png\": \"./app/panels/prj_help/img/44_4.png\",\n\t\"./prj_help/img/45_1.png\": \"./app/panels/prj_help/img/45_1.png\",\n\t\"./prj_help/img/46_1.png\": \"./app/panels/prj_help/img/46_1.png\",\n\t\"./prj_help/img/47_1.png\": \"./app/panels/prj_help/img/47_1.png\",\n\t\"./prj_help/img/71_1.png\": \"./app/panels/prj_help/img/71_1.png\",\n\t\"./prj_help/img/72_1.png\": \"./app/panels/prj_help/img/72_1.png\",\n\t\"./prj_help/img/72_2.png\": \"./app/panels/prj_help/img/72_2.png\",\n\t\"./prj_help/img/72_3.png\": \"./app/panels/prj_help/img/72_3.png\",\n\t\"./prj_help/img/74_1.png\": \"./app/panels/prj_help/img/74_1.png\",\n\t\"./prj_help/index\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/index.js\": \"./app/panels/prj_help/index.js\",\n\t\"./prj_help/prj_help\": \"./app/panels/prj_help/prj_help.js\",\n\t\"./prj_help/prj_help.js\": \"./app/panels/prj_help/prj_help.js\",\n\t\"./prj_info\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/filter\": \"./app/panels/prj_info/filter.js\",\n\t\"./prj_info/filter.js\": \"./app/panels/prj_info/filter.js\",\n\t\"./prj_info/filter_dialog\": \"./app/panels/prj_info/filter_dialog.js\",\n\t\"./prj_info/filter_dialog.js\": \"./app/panels/prj_info/filter_dialog.js\",\n\t\"./prj_info/index\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/index.js\": \"./app/panels/prj_info/index.js\",\n\t\"./prj_info/layouts\": \"./app/panels/prj_info/layouts.js\",\n\t\"./prj_info/layouts.js\": \"./app/panels/prj_info/layouts.js\",\n\t\"./prj_info/prj_info\": \"./app/panels/prj_info/prj_info.js\",\n\t\"./prj_info/prj_info.js\": \"./app/panels/prj_info/prj_info.js\",\n\t\"./prj_info/projects\": \"./app/panels/prj_info/projects.js\",\n\t\"./prj_info/projects.js\": \"./app/panels/prj_info/projects.js\",\n\t\"./prj_info/projects_hooks\": \"./app/panels/prj_info/projects_hooks.js\",\n\t\"./prj_info/projects_hooks.js\": \"./app/panels/prj_info/projects_hooks.js\",\n\t\"./prj_info/projects_layouts\": \"./app/panels/prj_info/projects_layouts.js\",\n\t\"./prj_info/projects_layouts.js\": \"./app/panels/prj_info/projects_layouts.js\",\n\t\"./prj_info/stage_detail\": \"./app/panels/prj_info/stage_detail.js\",\n\t\"./prj_info/stage_detail.js\": \"./app/panels/prj_info/stage_detail.js\",\n\t\"./prj_info/stage_detail_hooks\": \"./app/panels/prj_info/stage_detail_hooks.js\",\n\t\"./prj_info/stage_detail_hooks.js\": \"./app/panels/prj_info/stage_detail_hooks.js\",\n\t\"./prj_info/stage_detail_layouts\": \"./app/panels/prj_info/stage_detail_layouts.js\",\n\t\"./prj_info/stage_detail_layouts.js\": \"./app/panels/prj_info/stage_detail_layouts.js\",\n\t\"./prj_info/stages\": \"./app/panels/prj_info/stages.js\",\n\t\"./prj_info/stages.js\": \"./app/panels/prj_info/stages.js\",\n\t\"./prj_info/stages_hooks\": \"./app/panels/prj_info/stages_hooks.js\",\n\t\"./prj_info/stages_hooks.js\": \"./app/panels/prj_info/stages_hooks.js\",\n\t\"./prj_info/stages_layouts\": \"./app/panels/prj_info/stages_layouts.js\",\n\t\"./prj_info/stages_layouts.js\": \"./app/panels/prj_info/stages_layouts.js\",\n\t\"./prj_jobs\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/index\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/index.js\": \"./app/panels/prj_jobs/index.js\",\n\t\"./prj_jobs/lab_fact_rpt_dtl\": \"./app/panels/prj_jobs/lab_fact_rpt_dtl.js\",\n\t\"./prj_jobs/lab_fact_rpt_dtl.js\": \"./app/panels/prj_jobs/lab_fact_rpt_dtl.js\",\n\t\"./prj_jobs/lab_plan_fot_dtl\": \"./app/panels/prj_jobs/lab_plan_fot_dtl.js\",\n\t\"./prj_jobs/lab_plan_fot_dtl.js\": \"./app/panels/prj_jobs/lab_plan_fot_dtl.js\",\n\t\"./prj_jobs/lab_plan_jobs_dtl\": \"./app/panels/prj_jobs/lab_plan_jobs_dtl.js\",\n\t\"./prj_jobs/lab_plan_jobs_dtl.js\": \"./app/panels/prj_jobs/lab_plan_jobs_dtl.js\",\n\t\"./prj_jobs/layouts\": \"./app/panels/prj_jobs/layouts.js\",\n\t\"./prj_jobs/layouts.js\": \"./app/panels/prj_jobs/layouts.js\",\n\t\"./prj_jobs/prj_jobs\": \"./app/panels/prj_jobs/prj_jobs.js\",\n\t\"./prj_jobs/prj_jobs.js\": \"./app/panels/prj_jobs/prj_jobs.js\",\n\t\"./prj_jobs/res_mon\": \"./app/panels/prj_jobs/res_mon.js\",\n\t\"./prj_jobs/res_mon.js\": \"./app/panels/prj_jobs/res_mon.js\",\n\t\"./query_editor\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/common\": \"./app/panels/query_editor/common.js\",\n\t\"./query_editor/common.js\": \"./app/panels/query_editor/common.js\",\n\t\"./query_editor/components/argument/argument\": \"./app/panels/query_editor/components/argument/argument.js\",\n\t\"./query_editor/components/argument/argument.js\": \"./app/panels/query_editor/components/argument/argument.js\",\n\t\"./query_editor/components/attribute/attribute\": \"./app/panels/query_editor/components/attribute/attribute.js\",\n\t\"./query_editor/components/attribute/attribute.js\": \"./app/panels/query_editor/components/attribute/attribute.js\",\n\t\"./query_editor/components/entity/entity\": \"./app/panels/query_editor/components/entity/entity.js\",\n\t\"./query_editor/components/entity/entity.js\": \"./app/panels/query_editor/components/entity/entity.js\",\n\t\"./query_editor/components/inspector/inspector\": \"./app/panels/query_editor/components/inspector/inspector.js\",\n\t\"./query_editor/components/inspector/inspector.js\": \"./app/panels/query_editor/components/inspector/inspector.js\",\n\t\"./query_editor/components/inspector_query_area/hooks\": \"./app/panels/query_editor/components/inspector_query_area/hooks.js\",\n\t\"./query_editor/components/inspector_query_area/hooks.js\": \"./app/panels/query_editor/components/inspector_query_area/hooks.js\",\n\t\"./query_editor/components/inspector_query_area/inspector_query_area\": \"./app/panels/query_editor/components/inspector_query_area/inspector_query_area.js\",\n\t\"./query_editor/components/inspector_query_area/inspector_query_area.js\": \"./app/panels/query_editor/components/inspector_query_area/inspector_query_area.js\",\n\t\"./query_editor/components/inspector_query_args/arg_iu_dialog\": \"./app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/arg_iu_dialog.js\": \"./app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/args_list\": \"./app/panels/query_editor/components/inspector_query_args/args_list.js\",\n\t\"./query_editor/components/inspector_query_args/args_list.js\": \"./app/panels/query_editor/components/inspector_query_args/args_list.js\",\n\t\"./query_editor/components/inspector_query_args/hooks\": \"./app/panels/query_editor/components/inspector_query_args/hooks.js\",\n\t\"./query_editor/components/inspector_query_args/hooks.js\": \"./app/panels/query_editor/components/inspector_query_args/hooks.js\",\n\t\"./query_editor/components/inspector_query_args/inspector_query_args\": \"./app/panels/query_editor/components/inspector_query_args/inspector_query_args.js\",\n\t\"./query_editor/components/inspector_query_args/inspector_query_args.js\": \"./app/panels/query_editor/components/inspector_query_args/inspector_query_args.js\",\n\t\"./query_editor/components/inspector_query_args/query_args_dialog\": \"./app/panels/query_editor/components/inspector_query_args/query_args_dialog.js\",\n\t\"./query_editor/components/inspector_query_args/query_args_dialog.js\": \"./app/panels/query_editor/components/inspector_query_args/query_args_dialog.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_component_select_button\": \"./app/panels/query_editor/components/inspector_query_cond/cond_component_select_button.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_component_select_button.js\": \"./app/panels/query_editor/components/inspector_query_cond/cond_component_select_button.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_operation_buttons\": \"./app/panels/query_editor/components/inspector_query_cond/cond_operation_buttons.js\",\n\t\"./query_editor/components/inspector_query_cond/cond_operation_buttons.js\": \"./app/panels/query_editor/components/inspector_query_cond/cond_operation_buttons.js\",\n\t\"./query_editor/components/inspector_query_cond/hooks\": \"./app/panels/query_editor/components/inspector_query_cond/hooks.js\",\n\t\"./query_editor/components/inspector_query_cond/hooks.js\": \"./app/panels/query_editor/components/inspector_query_cond/hooks.js\",\n\t\"./query_editor/components/inspector_query_cond/inspector_query_cond\": \"./app/panels/query_editor/components/inspector_query_cond/inspector_query_cond.js\",\n\t\"./query_editor/components/inspector_query_cond/inspector_query_cond.js\": \"./app/panels/query_editor/components/inspector_query_cond/inspector_query_cond.js\",\n\t\"./query_editor/components/inspector_query_cond/query_cond_dialog\": \"./app/panels/query_editor/components/inspector_query_cond/query_cond_dialog.js\",\n\t\"./query_editor/components/inspector_query_cond/query_cond_dialog.js\": \"./app/panels/query_editor/components/inspector_query_cond/query_cond_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attr_setup_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/attr_setup_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attr_setup_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/attr_setup_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/attrs_list\": \"./app/panels/query_editor/components/inspector_query_ents/attrs_list.js\",\n\t\"./query_editor/components/inspector_query_ents/attrs_list.js\": \"./app/panels/query_editor/components/inspector_query_ents/attrs_list.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_add_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/entity_add_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_add_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/entity_add_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_attrs_dialog\": \"./app/panels/query_editor/components/inspector_query_ents/entity_attrs_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/entity_attrs_dialog.js\": \"./app/panels/query_editor/components/inspector_query_ents/entity_attrs_dialog.js\",\n\t\"./query_editor/components/inspector_query_ents/ents_list\": \"./app/panels/query_editor/components/inspector_query_ents/ents_list.js\",\n\t\"./query_editor/components/inspector_query_ents/ents_list.js\": \"./app/panels/query_editor/components/inspector_query_ents/ents_list.js\",\n\t\"./query_editor/components/inspector_query_ents/hooks\": \"./app/panels/query_editor/components/inspector_query_ents/hooks.js\",\n\t\"./query_editor/components/inspector_query_ents/hooks.js\": \"./app/panels/query_editor/components/inspector_query_ents/hooks.js\",\n\t\"./query_editor/components/inspector_query_ents/inspector_query_ents\": \"./app/panels/query_editor/components/inspector_query_ents/inspector_query_ents.js\",\n\t\"./query_editor/components/inspector_query_ents/inspector_query_ents.js\": \"./app/panels/query_editor/components/inspector_query_ents/inspector_query_ents.js\",\n\t\"./query_editor/components/inspector_query_rls/hooks\": \"./app/panels/query_editor/components/inspector_query_rls/hooks.js\",\n\t\"./query_editor/components/inspector_query_rls/hooks.js\": \"./app/panels/query_editor/components/inspector_query_rls/hooks.js\",\n\t\"./query_editor/components/inspector_query_rls/inspector_query_rls\": \"./app/panels/query_editor/components/inspector_query_rls/inspector_query_rls.js\",\n\t\"./query_editor/components/inspector_query_rls/inspector_query_rls.js\": \"./app/panels/query_editor/components/inspector_query_rls/inspector_query_rls.js\",\n\t\"./query_editor/components/queries_manager/hooks\": \"./app/panels/query_editor/components/queries_manager/hooks.js\",\n\t\"./query_editor/components/queries_manager/hooks.js\": \"./app/panels/query_editor/components/queries_manager/hooks.js\",\n\t\"./query_editor/components/queries_manager/queries_list\": \"./app/panels/query_editor/components/queries_manager/queries_list.js\",\n\t\"./query_editor/components/queries_manager/queries_list.js\": \"./app/panels/query_editor/components/queries_manager/queries_list.js\",\n\t\"./query_editor/components/queries_manager/queries_manager\": \"./app/panels/query_editor/components/queries_manager/queries_manager.js\",\n\t\"./query_editor/components/queries_manager/queries_manager.js\": \"./app/panels/query_editor/components/queries_manager/queries_manager.js\",\n\t\"./query_editor/components/queries_manager/query_iu_dialog\": \"./app/panels/query_editor/components/queries_manager/query_iu_dialog.js\",\n\t\"./query_editor/components/queries_manager/query_iu_dialog.js\": \"./app/panels/query_editor/components/queries_manager/query_iu_dialog.js\",\n\t\"./query_editor/components/query_diagram/query_diagram\": \"./app/panels/query_editor/components/query_diagram/query_diagram.js\",\n\t\"./query_editor/components/query_diagram/query_diagram.css\": \"./app/panels/query_editor/components/query_diagram/query_diagram.css\",\n\t\"./query_editor/components/query_diagram/query_diagram.js\": \"./app/panels/query_editor/components/query_diagram/query_diagram.js\",\n\t\"./query_editor/components/relation/relation\": \"./app/panels/query_editor/components/relation/relation.js\",\n\t\"./query_editor/components/relation/relation.js\": \"./app/panels/query_editor/components/relation/relation.js\",\n\t\"./query_editor/hooks\": \"./app/panels/query_editor/hooks.js\",\n\t\"./query_editor/hooks.js\": \"./app/panels/query_editor/hooks.js\",\n\t\"./query_editor/index\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/index.js\": \"./app/panels/query_editor/index.js\",\n\t\"./query_editor/query_editor\": \"./app/panels/query_editor/query_editor.js\",\n\t\"./query_editor/query_editor.js\": \"./app/panels/query_editor/query_editor.js\",\n\t\"./rrp_conf_editor\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/common\": \"./app/panels/rrp_conf_editor/common.js\",\n\t\"./rrp_conf_editor/common.js\": \"./app/panels/rrp_conf_editor/common.js\",\n\t\"./rrp_conf_editor/components/action_message\": \"./app/panels/rrp_conf_editor/components/action_message.js\",\n\t\"./rrp_conf_editor/components/action_message.js\": \"./app/panels/rrp_conf_editor/components/action_message.js\",\n\t\"./rrp_conf_editor/components/dialog_help\": \"./app/panels/rrp_conf_editor/components/dialog_help.js\",\n\t\"./rrp_conf_editor/components/dialog_help.js\": \"./app/panels/rrp_conf_editor/components/dialog_help.js\",\n\t\"./rrp_conf_editor/components/dialog_mark_iu\": \"./app/panels/rrp_conf_editor/components/dialog_mark_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_mark_iu.js\": \"./app/panels/rrp_conf_editor/components/dialog_mark_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_order\": \"./app/panels/rrp_conf_editor/components/dialog_order.js\",\n\t\"./rrp_conf_editor/components/dialog_order.js\": \"./app/panels/rrp_conf_editor/components/dialog_order.js\",\n\t\"./rrp_conf_editor/components/dialog_section_iu\": \"./app/panels/rrp_conf_editor/components/dialog_section_iu.js\",\n\t\"./rrp_conf_editor/components/dialog_section_iu.js\": \"./app/panels/rrp_conf_editor/components/dialog_section_iu.js\",\n\t\"./rrp_conf_editor/components/mark_card\": \"./app/panels/rrp_conf_editor/components/mark_card.js\",\n\t\"./rrp_conf_editor/components/mark_card.js\": \"./app/panels/rrp_conf_editor/components/mark_card.js\",\n\t\"./rrp_conf_editor/components/mark_card_toolbar\": \"./app/panels/rrp_conf_editor/components/mark_card_toolbar.js\",\n\t\"./rrp_conf_editor/components/mark_card_toolbar.js\": \"./app/panels/rrp_conf_editor/components/mark_card_toolbar.js\",\n\t\"./rrp_conf_editor/components/mark_cn_list\": \"./app/panels/rrp_conf_editor/components/mark_cn_list.js\",\n\t\"./rrp_conf_editor/components/mark_cn_list.js\": \"./app/panels/rrp_conf_editor/components/mark_cn_list.js\",\n\t\"./rrp_conf_editor/components/marks\": \"./app/panels/rrp_conf_editor/components/marks.js\",\n\t\"./rrp_conf_editor/components/marks.js\": \"./app/panels/rrp_conf_editor/components/marks.js\",\n\t\"./rrp_conf_editor/components/marks_toolbar\": \"./app/panels/rrp_conf_editor/components/marks_toolbar.js\",\n\t\"./rrp_conf_editor/components/marks_toolbar.js\": \"./app/panels/rrp_conf_editor/components/marks_toolbar.js\",\n\t\"./rrp_conf_editor/components/section\": \"./app/panels/rrp_conf_editor/components/section.js\",\n\t\"./rrp_conf_editor/components/section.js\": \"./app/panels/rrp_conf_editor/components/section.js\",\n\t\"./rrp_conf_editor/components/section_tab\": \"./app/panels/rrp_conf_editor/components/section_tab.js\",\n\t\"./rrp_conf_editor/components/section_tab.js\": \"./app/panels/rrp_conf_editor/components/section_tab.js\",\n\t\"./rrp_conf_editor/components/sections\": \"./app/panels/rrp_conf_editor/components/sections.js\",\n\t\"./rrp_conf_editor/components/sections.js\": \"./app/panels/rrp_conf_editor/components/sections.js\",\n\t\"./rrp_conf_editor/hooks\": \"./app/panels/rrp_conf_editor/hooks.js\",\n\t\"./rrp_conf_editor/hooks.js\": \"./app/panels/rrp_conf_editor/hooks.js\",\n\t\"./rrp_conf_editor/index\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/index.js\": \"./app/panels/rrp_conf_editor/index.js\",\n\t\"./rrp_conf_editor/layouts\": \"./app/panels/rrp_conf_editor/layouts.js\",\n\t\"./rrp_conf_editor/layouts.js\": \"./app/panels/rrp_conf_editor/layouts.js\",\n\t\"./rrp_conf_editor/rrp_conf_editor\": \"./app/panels/rrp_conf_editor/rrp_conf_editor.js\",\n\t\"./rrp_conf_editor/rrp_conf_editor.js\": \"./app/panels/rrp_conf_editor/rrp_conf_editor.js\",\n\t\"./samples\": \"./app/panels/samples/index.js\",\n\t\"./samples/\": \"./app/panels/samples/index.js\",\n\t\"./samples/chart\": \"./app/panels/samples/chart.js\",\n\t\"./samples/chart.js\": \"./app/panels/samples/chart.js\",\n\t\"./samples/cyclogram\": \"./app/panels/samples/cyclogram.js\",\n\t\"./samples/cyclogram.js\": \"./app/panels/samples/cyclogram.js\",\n\t\"./samples/data_grid\": \"./app/panels/samples/data_grid.js\",\n\t\"./samples/data_grid.js\": \"./app/panels/samples/data_grid.js\",\n\t\"./samples/gantt\": \"./app/panels/samples/gantt.js\",\n\t\"./samples/gantt.js\": \"./app/panels/samples/gantt.js\",\n\t\"./samples/index\": \"./app/panels/samples/index.js\",\n\t\"./samples/index.js\": \"./app/panels/samples/index.js\",\n\t\"./samples/indicator\": \"./app/panels/samples/indicator.js\",\n\t\"./samples/indicator.js\": \"./app/panels/samples/indicator.js\",\n\t\"./samples/loader\": \"./app/panels/samples/loader.js\",\n\t\"./samples/loader.js\": \"./app/panels/samples/loader.js\",\n\t\"./samples/messages\": \"./app/panels/samples/messages.js\",\n\t\"./samples/messages.js\": \"./app/panels/samples/messages.js\",\n\t\"./samples/mui\": \"./app/panels/samples/mui.js\",\n\t\"./samples/mui.js\": \"./app/panels/samples/mui.js\",\n\t\"./samples/p8online\": \"./app/panels/samples/p8online.js\",\n\t\"./samples/p8online.js\": \"./app/panels/samples/p8online.js\",\n\t\"./samples/samples\": \"./app/panels/samples/samples.js\",\n\t\"./samples/samples.js\": \"./app/panels/samples/samples.js\",\n\t\"./samples/svg\": \"./app/panels/samples/svg.js\",\n\t\"./samples/svg.js\": \"./app/panels/samples/svg.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./app/panels sync recursive ^\\\\.\\\\/.*$\";\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/_sync_^\\.\\/.*$?");
/***/ }),
@@ -488,7 +719,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 _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/RadioGroup/RadioGroup.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Radio/Radio.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _custom_input_field__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./custom_input_field */ \"./app/panels/clnt_task_board/components/custom_input_field.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles */ \"./app/panels/clnt_task_board/styles.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.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//---------\n\n//Стили\nconst STYLES = {\n SELECT: {\n width: \"450px\"\n }\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалог фильтра отбора\nconst FilterDialog = ({\n initial,\n onFilterChange,\n onFilterClose,\n onDocLinksLoad\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial.filter);\n\n //Состояние текущих учётных документов\n const [curDocLinks, setCurDocLinks] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: true,\n docLinks: initial.docLinks\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleCatalogTreeOpen,\n handleEventTypesOpen,\n handleAgnlistOpen,\n handleInsDepartmentOpen,\n handleCostStaffGroupsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__.useDictionary)();\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 handleTypeChange = callBack => handleEventTypesOpen({\n sCode: filter.sType,\n callBack: res => {\n callBack(res.outParameters.eventtypecode);\n }\n });\n\n //При изменении каталога фильтра\n const handleCrnChange = callBack => handleCatalogTreeOpen({\n sUnitName: \"ClientEvents\",\n sName: filter.sCrnName,\n callBack: res => {\n callBack(res.outParameters.out_NAME);\n }\n });\n\n //При изменении исполнителя фильтра\n const handleSendPersonChange = callBack => handleAgnlistOpen({\n sMnemo: filter.sSendPerson,\n callBack: res => {\n callBack(res.outParameters.agnmnemo);\n }\n });\n\n //При изменении подразделения фильтра\n const handleSendDivisionChange = callBack => handleInsDepartmentOpen({\n sCode: filter.sSendDivision,\n callBack: res => {\n callBack(res.outParameters.out_CODE);\n }\n });\n\n //При изменении группы пользователей фильтра\n const handleSendUsrGrpChange = callBack => handleCostStaffGroupsOpen({\n sCode: filter.sSendUsrGrp,\n callBack: res => {\n callBack(res.outParameters.out_CODE);\n }\n });\n\n //Считывание подкаталогов\n const getSubCatalogs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Считываем каталоги\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SUBCATALOGS_GET\",\n args: {\n SCRN_NAME: filter.sCrnName,\n NSUBCAT: filter.bSubcatalogs ? 1 : 0\n }\n });\n //Возвращаем список каталогов\n return data.SRESULT;\n }, [executeStored, filter.sCrnName, filter.bSubcatalogs]);\n\n //При закрытии диалога с изменением фильтра\n const handleDialogOk = async () => {\n //Если указано имя каталога, но не загружен список рег. номеров\n if (filter.sCrnName && !filter.sCrnRnList) {\n //Загружаем список рег. номеров каталогов\n const crns = await getSubCatalogs();\n //Устанавливаем новый фильтр\n onFilterChange({\n ...filter,\n ...(crns ? {\n sCrnRnList: crns\n } : {})\n });\n //Закрываем диалог фильтра\n onFilterClose();\n } else {\n //Устанавливаем новый фильтр\n onFilterChange(filter);\n //Закрываем диалог фильтра\n onFilterClose();\n }\n };\n\n //При очистке фильтра\n const handleFilterClear = () => {\n setFilter({\n sState: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[1],\n sType: \"\",\n sCrnName: \"\",\n sCrnRnList: \"\",\n bSubcatalogs: false,\n sSendPerson: \"\",\n sSendDivision: \"\",\n sSendUsrGrp: \"\",\n sDocLink: \"\"\n });\n };\n\n //При изменении значения элемента\n const handleFilterItemChange = (item, value) => {\n //Если это изменение типа\n if (item === \"sType\") {\n //Указываем тип с очисткой информации об учетных документах\n setFilter(pv => ({\n ...pv,\n [item]: value,\n sDocLink: \"\"\n }));\n setCurDocLinks(pv => ({\n ...pv,\n loaded: false,\n docLinks: []\n }));\n } else {\n //Обновляем значение поля\n setFilter(pv => ({\n ...pv,\n [item]: value\n }));\n }\n };\n\n //При очистке учётного документа\n const handleDocLinkClear = () => setFilter(pv => ({\n ...pv,\n sDocLink: \"\"\n }));\n\n //Обработка изменений с каталогами\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если каталог не указан, но галка подкаталогов установлена - снимаем её\n if (!filter.sCrnName && filter.bSubcatalogs) setFilter(pv => ({\n ...pv,\n bSubcatalogs: false\n }));\n //Если изменился каталог и остался список рег. номеров каталогов - очищаем его\n if (filter.sCrnName !== initial.sCrnName && filter.sCrnRnList) setFilter(pv => ({\n ...pv,\n sCrnRnList: \"\"\n }));\n //Если каталог равен изначальному\n if (filter.sCrnName === initial.sCrnName) {\n //Если признак подкаталогов равен изначальному, но список рег. номеров каталогов не соответствует - загружаем изначальный\n if (filter.bSubcatalogs === initial.bSubcatalogs && filter.sCrnRnList !== initial.sCrnRnList) {\n setFilter(pv => ({\n ...pv,\n sCrnRnList: initial.sCrnRnList\n }));\n }\n //Если признак подкаталогов не равен изначальному\n if (filter.bSubcatalogs !== initial.bSubcatalogs) {\n //Если не установлен - считываем первый из списка рег. номеров изначальных каталогов\n if (!filter.bSubcatalogs) {\n setFilter(pv => ({\n ...pv,\n sCrnRnList: initial.sCrnRnList.split(\";\")[0]\n }));\n } else {\n //Если установлен - очищаем список рег. номеров каталогов для последующей загрузки\n setFilter(pv => ({\n ...pv,\n sCrnRnList: \"\"\n }));\n }\n }\n }\n }, [filter.sCrnName, filter.sCrnRnList, filter.bSubcatalogs, initial.sCrnName, initial.sCrnRnList, initial.bSubcatalogs]);\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_7__[\"default\"], {\n open: true,\n onClose: onFilterClose,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"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_9__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: onFilterClose,\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.DIALOG_CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.SCROLL\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.LEGEND\n }, \"\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n row: true,\n \"aria-labelledby\": \"sState-label\",\n id: \"sState\",\n name: \"sState\",\n value: filter.sState,\n onChange: e => handleFilterItemChange(e.target.name, e.target.value)\n }, Object.keys(_layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES).map(function (k) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n key: k,\n value: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[k],\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], null),\n label: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[k]\n });\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sType\",\n elementValue: filter.sType,\n labelText: \"\\u0422\\u0438\\u043F\",\n dictionary: callBack => handleTypeChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sCrnName\",\n elementValue: filter.sCrnName,\n labelText: \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\",\n dictionary: callBack => handleCrnChange(callBack),\n onChange: handleFilterItemChange\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n id: \"bSubcatalogs\",\n name: \"bSubcatalogs\",\n checked: filter.bSubcatalogs,\n disabled: filter.sCrnName ? false : true,\n onChange: e => handleFilterItemChange(e.target.name, e.target.checked)\n }),\n label: \"\\u0412\\u043A\\u043B\\u044E\\u0447\\u0430\\u044F \\u043F\\u043E\\u0434\\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0438\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendPerson\",\n elementValue: filter.sSendPerson,\n labelText: \"\\u0418\\u0441\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\",\n dictionary: callBack => handleSendPersonChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendDivision\",\n elementValue: filter.sSendDivision,\n labelText: \"\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\",\n dictionary: callBack => handleSendDivisionChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendUsrGrp\",\n elementValue: filter.sSendUsrGrp,\n labelText: \"\\u0413\\u0440\\u0443\\u043F\\u043F\\u0430 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u0435\\u0439\",\n dictionary: callBack => handleSendUsrGrpChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n direction: \"row\",\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.STACK_DOCLINKS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sDocLink\",\n elementValue: filter.sDocLink,\n labelText: \"\\u0423\\u0447\\u0451\\u0442\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\",\n items: [...(curDocLinks.docLinks || [])].reduce((prev, cur) => [...prev, {\n id: cur.NRN,\n caption: cur.SDESCR\n }], []),\n disabled: !curDocLinks.docLinks.length ? true : false,\n onChange: handleFilterItemChange,\n sx: STYLES.SELECT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\",\n disabled: !filter.sDocLink,\n onClick: handleDocLinkClear\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\",\n disabled: curDocLinks.loaded,\n onClick: () => {\n //Очищаем учетный документ\n handleDocLinkClear();\n //Загружаем учетные документы типа\n onDocLinksLoad(filter.sType).then(dl => setCurDocLinks(pv => ({\n ...pv,\n loaded: true,\n docLinks: dl\n })));\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"refresh\"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n disabled: !(0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.hasValue)(filter.sType),\n variant: \"text\",\n onClick: handleDialogOk\n }, \"\\u041E\\u041A\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n variant: \"text\",\n onClick: handleFilterClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n variant: \"text\",\n onClick: onFilterClose\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалог фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().object).isRequired,\n onFilterChange: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func).isRequired,\n onFilterClose: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func).isRequired,\n onDocLinksLoad: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/components/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 _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogTitle/DialogTitle.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/RadioGroup/RadioGroup.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Radio/Radio.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _custom_input_field__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./custom_input_field */ \"./app/panels/clnt_task_board/components/custom_input_field.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles */ \"./app/panels/clnt_task_board/styles.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.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//---------\n\n//Стили\nconst STYLES = {\n SELECT: {\n width: \"450px\"\n }\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалог фильтра отбора\nconst FilterDialog = ({\n initial,\n onFilterChange,\n onFilterClose,\n onDocLinksLoad\n}) => {\n //Собственное состояние\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial.filter);\n\n //Состояние текущих учётных документов\n const [curDocLinks, setCurDocLinks] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: true,\n docLinks: initial.docLinks\n });\n\n //Вспомогательные функции открытия раздела\n const {\n handleCatalogTreeOpen,\n handleEventTypesOpen,\n handleAgnlistOpen,\n handleInsDepartmentOpen,\n handleCostStaffGroupsOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__.useDictionary)();\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При изменении типа события фильтра\n const handleTypeChange = callBack => handleEventTypesOpen({\n sCode: filter.sType,\n callBack: res => {\n callBack(res.outParameters.eventtypecode);\n }\n });\n\n //При изменении каталога фильтра\n const handleCrnChange = callBack => handleCatalogTreeOpen({\n sUnitName: \"ClientEvents\",\n sName: filter.sCrnName,\n callBack: res => {\n callBack(res.outParameters.out_NAME);\n }\n });\n\n //При изменении исполнителя фильтра\n const handleSendPersonChange = callBack => handleAgnlistOpen({\n sMnemo: filter.sSendPerson,\n callBack: res => {\n callBack(res.outParameters.agnmnemo);\n }\n });\n\n //При изменении подразделения фильтра\n const handleSendDivisionChange = callBack => handleInsDepartmentOpen({\n sCode: filter.sSendDivision,\n callBack: res => {\n callBack(res.outParameters.out_CODE);\n }\n });\n\n //При изменении группы пользователей фильтра\n const handleSendUsrGrpChange = callBack => handleCostStaffGroupsOpen({\n sCode: filter.sSendUsrGrp,\n callBack: res => {\n callBack(res.outParameters.out_CODE);\n }\n });\n\n //Считывание подкаталогов\n const getSubCatalogs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Считываем каталоги\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SUBCATALOGS_GET\",\n args: {\n SCRN_NAME: filter.sCrnName,\n NSUBCAT: filter.bSubcatalogs ? 1 : 0\n }\n });\n //Возвращаем список каталогов\n return data.SRESULT;\n }, [executeStored, filter.sCrnName, filter.bSubcatalogs]);\n\n //При закрытии диалога с изменением фильтра\n const handleDialogOk = async () => {\n //Если указано имя каталога, но не загружен список рег. номеров\n if (filter.sCrnName && !filter.sCrnRnList) {\n //Загружаем список рег. номеров каталогов\n const crns = await getSubCatalogs();\n //Устанавливаем новый фильтр\n onFilterChange({\n ...filter,\n ...(crns ? {\n sCrnRnList: crns\n } : {})\n });\n //Закрываем диалог фильтра\n onFilterClose();\n } else {\n //Устанавливаем новый фильтр\n onFilterChange(filter);\n //Закрываем диалог фильтра\n onFilterClose();\n }\n };\n\n //При очистке фильтра\n const handleFilterClear = () => {\n setFilter({\n sState: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[1],\n sType: \"\",\n sCrnName: \"\",\n sCrnRnList: \"\",\n bSubcatalogs: false,\n sSendPerson: \"\",\n sSendDivision: \"\",\n sSendUsrGrp: \"\",\n sDocLink: \"\"\n });\n };\n\n //При изменении значения элемента\n const handleFilterItemChange = (item, value) => {\n //Если это изменение типа\n if (item === \"sType\") {\n //Указываем тип с очисткой информации об учетных документах\n setFilter(pv => ({\n ...pv,\n [item]: value,\n sDocLink: \"\"\n }));\n setCurDocLinks(pv => ({\n ...pv,\n loaded: false,\n docLinks: []\n }));\n } else {\n //Обновляем значение поля\n setFilter(pv => ({\n ...pv,\n [item]: value\n }));\n }\n };\n\n //При очистке учётного документа\n const handleDocLinkClear = () => setFilter(pv => ({\n ...pv,\n sDocLink: \"\"\n }));\n\n //Обработка изменений с каталогами\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если каталог не указан, но галка подкаталогов установлена - снимаем её\n if (!filter.sCrnName && filter.bSubcatalogs) setFilter(pv => ({\n ...pv,\n bSubcatalogs: false\n }));\n //Если изменился каталог и остался список рег. номеров каталогов - очищаем его\n if (filter.sCrnName !== initial.sCrnName && filter.sCrnRnList) setFilter(pv => ({\n ...pv,\n sCrnRnList: \"\"\n }));\n //Если каталог равен изначальному\n if (filter.sCrnName === initial.sCrnName) {\n //Если признак подкаталогов равен изначальному, но список рег. номеров каталогов не соответствует - загружаем изначальный\n if (filter.bSubcatalogs === initial.bSubcatalogs && filter.sCrnRnList !== initial.sCrnRnList) {\n setFilter(pv => ({\n ...pv,\n sCrnRnList: initial.sCrnRnList\n }));\n }\n //Если признак подкаталогов не равен изначальному\n if (filter.bSubcatalogs !== initial.bSubcatalogs) {\n //Если не установлен - считываем первый из списка рег. номеров изначальных каталогов\n if (!filter.bSubcatalogs) {\n setFilter(pv => ({\n ...pv,\n sCrnRnList: initial.sCrnRnList.split(\";\")[0]\n }));\n } else {\n //Если установлен - очищаем список рег. номеров каталогов для последующей загрузки\n setFilter(pv => ({\n ...pv,\n sCrnRnList: \"\"\n }));\n }\n }\n }\n }, [filter.sCrnName, filter.sCrnRnList, filter.bSubcatalogs, initial.sCrnName, initial.sCrnRnList, initial.bSubcatalogs]);\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_7__[\"default\"], {\n open: true,\n onClose: onFilterClose,\n fullWidth: true,\n maxWidth: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"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_9__[\"default\"], {\n \"aria-label\": \"close\",\n onClick: onFilterClose,\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.DIALOG_CLOSE_BUTTON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"close\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.SCROLL\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.BOX_WITH_LEGEND,\n component: \"fieldset\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"legend\", {\n style: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.LEGEND\n }, \"\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n row: true,\n \"aria-labelledby\": \"sState-label\",\n id: \"sState\",\n name: \"sState\",\n value: filter.sState,\n onChange: e => handleFilterItemChange(e.target.name, e.target.value)\n }, Object.keys(_layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES).map(function (k) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n key: k,\n value: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[k],\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], null),\n label: _layouts__WEBPACK_IMPORTED_MODULE_4__.EVENT_STATES[k]\n });\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sType\",\n elementValue: filter.sType,\n labelText: \"\\u0422\\u0438\\u043F\",\n dictionary: callBack => handleTypeChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sCrnName\",\n elementValue: filter.sCrnName,\n labelText: \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\",\n dictionary: callBack => handleCrnChange(callBack),\n onChange: handleFilterItemChange\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n id: \"bSubcatalogs\",\n name: \"bSubcatalogs\",\n checked: filter.bSubcatalogs,\n disabled: filter.sCrnName ? false : true,\n onChange: e => handleFilterItemChange(e.target.name, e.target.checked)\n }),\n label: \"\\u0412\\u043A\\u043B\\u044E\\u0447\\u0430\\u044F \\u043F\\u043E\\u0434\\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0438\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendPerson\",\n elementValue: filter.sSendPerson,\n labelText: \"\\u0418\\u0441\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\",\n dictionary: callBack => handleSendPersonChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendDivision\",\n elementValue: filter.sSendDivision,\n labelText: \"\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\",\n dictionary: callBack => handleSendDivisionChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sSendUsrGrp\",\n elementValue: filter.sSendUsrGrp,\n labelText: \"\\u0413\\u0440\\u0443\\u043F\\u043F\\u0430 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u0435\\u0439\",\n dictionary: callBack => handleSendUsrGrpChange(callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n direction: \"row\",\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.STACK_DOCLINKS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_custom_input_field__WEBPACK_IMPORTED_MODULE_2__.CustomInputField, {\n elementCode: \"sDocLink\",\n elementValue: filter.sDocLink,\n labelText: \"\\u0423\\u0447\\u0451\\u0442\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\",\n items: [...(curDocLinks.docLinks || [])].reduce((prev, cur) => [...prev, {\n id: cur.NRN,\n caption: cur.SDESCR\n }], []),\n disabled: !curDocLinks.docLinks.length ? true : false,\n onChange: handleFilterItemChange,\n sx: STYLES.SELECT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\",\n disabled: !filter.sDocLink,\n onClick: handleDocLinkClear\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"clear\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: \"\\u041E\\u0431\\u043D\\u043E\\u0432\\u0438\\u0442\\u044C\",\n disabled: curDocLinks.loaded,\n onClick: () => {\n //Очищаем учетный документ\n handleDocLinkClear();\n //Загружаем учетные документы типа\n onDocLinksLoad(filter.sType).then(dl => setCurDocLinks(pv => ({\n ...pv,\n loaded: true,\n docLinks: dl\n })));\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"refresh\"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: _styles__WEBPACK_IMPORTED_MODULE_5__.COMMON_STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n disabled: !(0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.hasValue)(filter.sType),\n variant: \"text\",\n onClick: handleDialogOk\n }, \"\\u041E\\u041A\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n variant: \"text\",\n onClick: handleFilterClear\n }, \"\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n variant: \"text\",\n onClick: onFilterClose\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалог фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().object).isRequired,\n onFilterChange: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func).isRequired,\n onFilterClose: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func).isRequired,\n onDocLinksLoad: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/components/filter_dialog.js?");
/***/ }),
@@ -543,7 +774,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 */ TaskCard: () => (/* binding */ TaskCard)\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_14__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var react_beautiful_dnd__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react-beautiful-dnd */ \"./node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.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/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardHeader/CardHeader.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Avatar/Avatar.js\");\n/* harmony import */ var _task_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../task_dialog */ \"./app/panels/clnt_task_board/task_dialog.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.js\");\n/* harmony import */ var _hooks_tasks_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/tasks_hooks */ \"./app/panels/clnt_task_board/hooks/tasks_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 //Работа с drag&drop\n //Интерфейсные компоненты\n //Форма события\n //Контекст приложения\n //Контекст взаимодействия с сервером\n //Контекст сообщений\n //Дополнительная разметка и вёрстка клиентских элементов\n //Состояние открытия разделов\n //Состояние вспомогательных функций событий\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n MENU_ITEM_DELIMITER: {\n borderBottom: \"1px solid lightgrey\"\n },\n CARD: (task, colorRule) => {\n const expiredColor = (0,_layouts__WEBPACK_IMPORTED_MODULE_5__.getTaskExpiredColor)(task);\n const backgroundColor = task.nClosed ? \"#d3d3d3\" : colorRule.SCOLOR ? (0,_layouts__WEBPACK_IMPORTED_MODULE_5__.getTaskBgColorByRule)(task, colorRule) : null;\n return {\n ...(expiredColor ? {\n borderLeft: `solid ${expiredColor}`\n } : {}),\n ...(backgroundColor ? {\n backgroundColor: backgroundColor\n } : {})\n };\n },\n CARD_HEADER_TITLE: {\n padding: \"4px\",\n width: \"292px\",\n display: \"-webkit-box\",\n hyphens: \"auto\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: 2,\n overflow: \"hidden\"\n },\n CARD_HEADER: {\n padding: 0,\n cursor: \"pointer\"\n },\n CARD_CONTENT: {\n padding: \"4px !important\"\n },\n CARD_CONTENT_BOX: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\"\n },\n STACK_SENDER: {\n alignItems: \"center\",\n marginLeft: \"auto\",\n width: \"50%\",\n justifyContent: \"flex-end\",\n paddingLeft: \"10px\",\n gap: \"5px\"\n },\n TYPOGRAPHY_TASK: {\n color: \"text.secondary\",\n fontSize: 14,\n width: \"40%\",\n overflow: \"hidden\"\n },\n TYPOGRAPHY_SENDER: {\n color: \"text.secondary\",\n fontSize: 14,\n width: \"80%\",\n overflow: \"hidden\",\n textAlign: \"end\"\n },\n ICON_COLOR: linked => {\n return {\n color: theme => linked ? _layouts__WEBPACK_IMPORTED_MODULE_5__.TASK_COLORS.LINKED : theme.palette.grey[500],\n width: \"10%\"\n };\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Действия карточки события\nconst CardActions = ({\n taskRn,\n taskClosed,\n menuItems,\n cardActions,\n onMethodsMenuButtonClick,\n onMethodsMenuClose,\n onTasksReload,\n pointSettings,\n onOpenNoteDialog\n}) => {\n //При нажатии на действие меню\n const handleActionClick = action => {\n //Выполняем действие\n action.func({\n nEvent: taskRn,\n onReload: action.tasksReload ? () => onTasksReload(action.needAccountsReload) : null,\n onNoteOpen: pointSettings.ADDNOTE_ONSEND ? onOpenNoteDialog : null\n });\n //Закрываем меню действий\n onMethodsMenuClose();\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_ROW\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n id: `${taskRn}_menu_button`,\n \"aria-haspopup\": \"true\",\n onClick: onMethodsMenuButtonClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"more_vert\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n id: `${taskRn}_menu`,\n anchorEl: cardActions.anchorMenuMethods,\n open: cardActions.openMethods,\n onClose: onMethodsMenuClose\n }, menuItems.map(action => action.visible ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: action.delimiter ? STYLES.MENU_ITEM_DELIMITER : {},\n key: `${taskRn}_${action.method}`,\n onClick: () => handleActionClick(action),\n disabled: taskClosed === 1 && action.disableClosed ? true : false\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, action.icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n pl: 1\n }, action.name)) : null)));\n};\n\n//Контроль свойств - Действия карточки события\nCardActions.propTypes = {\n taskRn: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().number).isRequired,\n taskClosed: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOf([0, 1]).isRequired,\n menuItems: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().array).isRequired,\n cardActions: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object).isRequired,\n onMethodsMenuButtonClick: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func).isRequired,\n onMethodsMenuClose: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func).isRequired,\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func),\n pointSettings: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n onOpenNoteDialog: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Карточка события\nconst TaskCard = ({\n task,\n index,\n onTasksReload,\n colorRule,\n pointSettings,\n onOpenNoteDialog\n}) => {\n //Состояние диалога события\n const [taskDialogOpen, setTaskDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Состояние действий события\n const [cardActions, setCardActions] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n anchorMenuMethods: null,\n openMethods: false\n });\n\n //Состояние списка действий меню\n const [menuItems, setMenuItems] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Вспомогательные функции открытия раздела\n const {\n handleClientEventsOpen,\n handleClientEventsNotesOpen,\n handleFileLinksOpen,\n handleCatalogTreeOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__.useDictionary)();\n\n //Состояние вспомогательных функций событий\n const {\n handleTaskStateChange,\n handleTaskSend\n } = (0,_hooks_tasks_hooks__WEBPACK_IMPORTED_MODULE_7__.useTasksFunctions)();\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__[\"BackEndСtx\"]);\n\n //Подключение к контексту сообщений\n const {\n showMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_4__[\"MessagingСtx\"]);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowDocument\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__[\"ApplicationСtx\"]);\n\n //По нажатию на открытие меню действий\n const handleMethodsMenuButtonClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(event => {\n setCardActions(pv => ({\n ...pv,\n anchorMenuMethods: event.currentTarget,\n openMethods: true\n }));\n }, []);\n\n //При закрытии меню\n const handleMethodsMenuClose = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setCardActions(pv => ({\n ...pv,\n anchorMenuMethods: null,\n openMethods: false\n }));\n }, []);\n\n //При удалении контрагента\n const handleTaskDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DELETE\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При возврате в предыдущую точку события\n const handleTaskReturn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_RETURN\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При перемещении в каталог\n const handleTaskMove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n nCrn,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_MOVE\",\n args: {\n NCLNEVENTS: nEvent,\n NCRN: nCrn\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //По нажатию действия \"Направить\"\n const handleTaskSendAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload,\n onNoteOpen\n }) => {\n //Выполняем направление события\n handleTaskSend({\n nEvent,\n onReload,\n onNoteOpen\n });\n }, [handleTaskSend]);\n\n //По нажатия действия \"Редактировать\"\n const handleTaskEditAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setTaskDialogOpen(true);\n }, []);\n\n //По нажатия действия \"Редактировать в разделе\"\n const handleTaskEditClientAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent\n }) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SELECT\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n if (data.NIDENT) {\n //Открываем раздел \"События\" с фильтром по записи\n handleClientEventsOpen({\n nIdent: data.NIDENT\n });\n }\n }, [executeStored, handleClientEventsOpen]);\n\n //По нажатию действия \"Удалить\"\n const handleTaskDeleteAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n onReload\n }) => {\n showMsgWarn(\"Удалить событие?\", () => handleTaskDelete({\n nEvent,\n onReload\n }));\n }, [handleTaskDelete, showMsgWarn]);\n\n //По нажатию действия \"Выполнить возврат\"\n const handleTaskReturnAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n onReload\n }) => {\n showMsgWarn(\"Выполнить возврат события в предыдущую точку?\", () => handleTaskReturn({\n nEvent,\n onReload\n }));\n }, [handleTaskReturn, showMsgWarn]);\n\n //По нажатию действия \"Примечания\"\n const handleEventNotesOpenAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent\n }) => {\n handleClientEventsNotesOpen({\n nPrn: nEvent\n });\n }, [handleClientEventsNotesOpen]);\n\n //По нажатию действия \"Присоединенные документы\"\n const handleTaskFileLinksOpenAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent\n }) => {\n handleFileLinksOpen({\n nPrn: nEvent,\n sUnitCode: \"ClientEvents\"\n });\n }, [handleFileLinksOpen]);\n\n //По нажатию действия \"Перейти\"\n const handleTaskStateChangeAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload,\n onNoteOpen\n }) => {\n //Выполняем изменения статуса события\n handleTaskStateChange({\n nEvent,\n onReload,\n onNoteOpen\n });\n }, [handleTaskStateChange]);\n\n //По нажатию действия \"Переместить\"\n const handleTaskMoveAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n //Открываем выбор записи из раздела \"Каталоги иерархии\"\n handleCatalogTreeOpen({\n sUnitName: \"ClientEvents\",\n nRn: task.nCrn,\n callBack: res => {\n //Выполняем перемещение события\n handleTaskMove({\n nEvent,\n nCrn: res.outParameters.out_RN,\n onReload\n });\n }\n });\n }, [handleCatalogTreeOpen, handleTaskMove, task.nCrn]);\n\n //При изменении ссылок в меню действий (для того, чтобы ссылка на объект менялась при реальной необходимости)\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Устанавливаем список меню\n setMenuItems((0,_layouts__WEBPACK_IMPORTED_MODULE_5__.makeCardActionsArray)(handleTaskEditAction, handleTaskEditClientAction, handleTaskDeleteAction, handleTaskStateChangeAction, handleTaskReturnAction, handleTaskSendAction, handleEventNotesOpenAction, handleTaskFileLinksOpenAction, handleTaskMoveAction));\n }, [handleEventNotesOpenAction, handleTaskFileLinksOpenAction, handleTaskSendAction, handleTaskStateChangeAction, handleTaskDeleteAction, handleTaskEditAction, handleTaskEditClientAction, handleTaskReturnAction, handleTaskMoveAction]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, taskDialogOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_task_dialog__WEBPACK_IMPORTED_MODULE_1__.TaskDialog, {\n taskRn: task.nRn,\n taskType: task.sType,\n editable: pointSettings.BAN_UPDATE ? false : true,\n onTasksReload: onTasksReload,\n onClose: () => {\n setTaskDialogOpen(false);\n }\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_beautiful_dnd__WEBPACK_IMPORTED_MODULE_15__.Draggable, {\n draggableId: task.id.toString(),\n key: task.id,\n index: index\n }, provided => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], _extends({\n ref: provided.innerRef\n }, provided.draggableProps, provided.dragHandleProps, {\n sx: STYLES.CARD(task, colorRule)\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n title: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"task-info\",\n sx: STYLES.CARD_HEADER_TITLE,\n lang: \"ru\",\n onClick: () => {\n menuItems.find(action => action.method === \"EDIT\" ? action.func(task.nRn, action.tasksReload ? onTasksReload : null) : null);\n },\n title: task.sDescription\n }, task.sDescription),\n sx: STYLES.CARD_HEADER,\n action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CardActions, {\n taskRn: task.nRn,\n taskClosed: task.nClosed,\n menuItems: menuItems,\n cardActions: cardActions,\n onMethodsMenuButtonClick: handleMethodsMenuButtonClick,\n onMethodsMenuClose: handleMethodsMenuClose,\n onTasksReload: onTasksReload,\n pointSettings: pointSettings,\n onOpenNoteDialog: onOpenNoteDialog\n })\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: STYLES.CARD_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CARD_CONTENT_BOX\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: task.nLinkedRn ? \"Событие получено по статусной модели\" : null,\n onClick: task.nLinkedRn ? () => pOnlineShowDocument({\n unitCode: task.sLinkedUnit,\n document: task.nLinkedRn\n }) : null,\n sx: STYLES.ICON_COLOR(task.nLinkedRn),\n disabled: !task.nLinkedRn\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"assignment\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.TYPOGRAPHY_TASK,\n noWrap: true,\n title: task.name\n }, task.name), task.sSender ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n direction: \"row\",\n spacing: 0.5,\n sx: STYLES.STACK_SENDER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.TYPOGRAPHY_SENDER,\n title: task.sSender,\n noWrap: true\n }, task.sSender), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n src: task.avatar ? `data:image/png;base64,${task.avatar}` : null\n })) : null)))));\n};\n\n//Контроль свойств - Карточка события\nTaskCard.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object).isRequired,\n index: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().number).isRequired,\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func),\n colorRule: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n pointSettings: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n onOpenNoteDialog: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/components/task_card.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TaskCard: () => (/* binding */ TaskCard)\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_14__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var react_beautiful_dnd__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react-beautiful-dnd */ \"./node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.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/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Menu/Menu.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardHeader/CardHeader.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Avatar/Avatar.js\");\n/* harmony import */ var _task_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../task_dialog */ \"./app/panels/clnt_task_board/task_dialog.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.js\");\n/* harmony import */ var _hooks_tasks_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/tasks_hooks */ \"./app/panels/clnt_task_board/hooks/tasks_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 //Работа с drag&drop\n //Интерфейсные компоненты\n //Форма события\n //Контекст приложения\n //Контекст взаимодействия с сервером\n //Контекст сообщений\n //Дополнительная разметка и вёрстка клиентских элементов\n //Состояние открытия разделов\n //Состояние вспомогательных функций событий\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n MENU_ITEM_DELIMITER: {\n borderBottom: \"1px solid lightgrey\"\n },\n CARD: (task, colorRule) => {\n const expiredColor = (0,_layouts__WEBPACK_IMPORTED_MODULE_5__.getTaskExpiredColor)(task);\n const backgroundColor = task.nClosed ? \"#d3d3d3\" : colorRule.SCOLOR ? (0,_layouts__WEBPACK_IMPORTED_MODULE_5__.getTaskBgColorByRule)(task, colorRule) : null;\n return {\n ...(expiredColor ? {\n borderLeft: `solid ${expiredColor}`\n } : {}),\n ...(backgroundColor ? {\n backgroundColor: backgroundColor\n } : {})\n };\n },\n CARD_HEADER_TITLE: {\n padding: \"4px\",\n width: \"292px\",\n display: \"-webkit-box\",\n hyphens: \"auto\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: 2,\n overflow: \"hidden\"\n },\n CARD_HEADER: {\n padding: 0,\n cursor: \"pointer\"\n },\n CARD_CONTENT: {\n padding: \"4px !important\"\n },\n CARD_CONTENT_BOX: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\"\n },\n STACK_SENDER: {\n alignItems: \"center\",\n marginLeft: \"auto\",\n width: \"50%\",\n justifyContent: \"flex-end\",\n paddingLeft: \"10px\",\n gap: \"5px\"\n },\n TYPOGRAPHY_TASK: {\n color: \"text.secondary\",\n fontSize: 14,\n width: \"40%\",\n overflow: \"hidden\"\n },\n TYPOGRAPHY_SENDER: {\n color: \"text.secondary\",\n fontSize: 14,\n width: \"80%\",\n overflow: \"hidden\",\n textAlign: \"end\"\n },\n ICON_COLOR: linked => {\n return {\n color: theme => linked ? _layouts__WEBPACK_IMPORTED_MODULE_5__.TASK_COLORS.LINKED : theme.palette.grey[500],\n width: \"10%\"\n };\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Действия карточки события\nconst CardActions = ({\n taskRn,\n taskClosed,\n menuItems,\n cardActions,\n onMethodsMenuButtonClick,\n onMethodsMenuClose,\n onTasksReload,\n pointSettings,\n onOpenNoteDialog\n}) => {\n //При нажатии на действие меню\n const handleActionClick = action => {\n //Выполняем действие\n action.func({\n nEvent: taskRn,\n onReload: action.tasksReload ? () => onTasksReload(action.needAccountsReload) : null,\n onNoteOpen: pointSettings.ADDNOTE_ONSEND ? onOpenNoteDialog : null\n });\n //Закрываем меню действий\n onMethodsMenuClose();\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.BOX_ROW\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n id: `${taskRn}_menu_button`,\n \"aria-haspopup\": \"true\",\n onClick: onMethodsMenuButtonClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"more_vert\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n id: `${taskRn}_menu`,\n anchorEl: cardActions.anchorMenuMethods,\n open: cardActions.openMethods,\n onClose: onMethodsMenuClose\n }, menuItems.map(action => action.visible ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: action.delimiter ? STYLES.MENU_ITEM_DELIMITER : {},\n key: `${taskRn}_${action.method}`,\n onClick: () => handleActionClick(action),\n disabled: taskClosed === 1 && action.disableClosed ? true : false\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, action.icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n pl: 1\n }, action.name)) : null)));\n};\n\n//Контроль свойств - Действия карточки события\nCardActions.propTypes = {\n taskRn: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().number).isRequired,\n taskClosed: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOf([0, 1]).isRequired,\n menuItems: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().array).isRequired,\n cardActions: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object).isRequired,\n onMethodsMenuButtonClick: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func).isRequired,\n onMethodsMenuClose: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func).isRequired,\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func),\n pointSettings: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n onOpenNoteDialog: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Карточка события\nconst TaskCard = ({\n task,\n index,\n onTasksReload,\n colorRule,\n pointSettings,\n onOpenNoteDialog\n}) => {\n //Состояние диалога события\n const [taskDialogOpen, setTaskDialogOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Состояние действий события\n const [cardActions, setCardActions] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n anchorMenuMethods: null,\n openMethods: false\n });\n\n //Состояние списка действий меню\n const [menuItems, setMenuItems] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Вспомогательные функции открытия раздела\n const {\n handleClientEventsOpen,\n handleClientEventsNotesOpen,\n handleFileLinksOpen,\n handleCatalogTreeOpen\n } = (0,_hooks_dict_hooks__WEBPACK_IMPORTED_MODULE_6__.useDictionary)();\n\n //Состояние вспомогательных функций событий\n const {\n handleTaskStateChange,\n handleTaskSend\n } = (0,_hooks_tasks_hooks__WEBPACK_IMPORTED_MODULE_7__.useTasksFunctions)();\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__.BackEndCtx);\n\n //Подключение к контексту сообщений\n const {\n showMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_4__.MessagingCtx);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowDocument\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__.ApplicationCtx);\n\n //По нажатию на открытие меню действий\n const handleMethodsMenuButtonClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(event => {\n setCardActions(pv => ({\n ...pv,\n anchorMenuMethods: event.currentTarget,\n openMethods: true\n }));\n }, []);\n\n //При закрытии меню\n const handleMethodsMenuClose = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setCardActions(pv => ({\n ...pv,\n anchorMenuMethods: null,\n openMethods: false\n }));\n }, []);\n\n //При удалении контрагента\n const handleTaskDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DELETE\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При возврате в предыдущую точку события\n const handleTaskReturn = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_RETURN\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При перемещении в каталог\n const handleTaskMove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n nCrn,\n onReload\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_MOVE\",\n args: {\n NCLNEVENTS: nEvent,\n NCRN: nCrn\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //По нажатию действия \"Направить\"\n const handleTaskSendAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload,\n onNoteOpen\n }) => {\n //Выполняем направление события\n handleTaskSend({\n nEvent,\n onReload,\n onNoteOpen\n });\n }, [handleTaskSend]);\n\n //По нажатия действия \"Редактировать\"\n const handleTaskEditAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {\n setTaskDialogOpen(true);\n }, []);\n\n //По нажатия действия \"Редактировать в разделе\"\n const handleTaskEditClientAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent\n }) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SELECT\",\n args: {\n NCLNEVENTS: nEvent\n }\n });\n if (data.NIDENT) {\n //Открываем раздел \"События\" с фильтром по записи\n handleClientEventsOpen({\n nIdent: data.NIDENT\n });\n }\n }, [executeStored, handleClientEventsOpen]);\n\n //По нажатию действия \"Удалить\"\n const handleTaskDeleteAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n onReload\n }) => {\n showMsgWarn(\"Удалить событие?\", () => handleTaskDelete({\n nEvent,\n onReload\n }));\n }, [handleTaskDelete, showMsgWarn]);\n\n //По нажатию действия \"Выполнить возврат\"\n const handleTaskReturnAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n onReload\n }) => {\n showMsgWarn(\"Выполнить возврат события в предыдущую точку?\", () => handleTaskReturn({\n nEvent,\n onReload\n }));\n }, [handleTaskReturn, showMsgWarn]);\n\n //По нажатию действия \"Примечания\"\n const handleEventNotesOpenAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent\n }) => {\n handleClientEventsNotesOpen({\n nPrn: nEvent\n });\n }, [handleClientEventsNotesOpen]);\n\n //По нажатию действия \"Присоединенные документы\"\n const handleTaskFileLinksOpenAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent\n }) => {\n handleFileLinksOpen({\n nPrn: nEvent,\n sUnitCode: \"ClientEvents\"\n });\n }, [handleFileLinksOpen]);\n\n //По нажатию действия \"Перейти\"\n const handleTaskStateChangeAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload,\n onNoteOpen\n }) => {\n //Выполняем изменения статуса события\n handleTaskStateChange({\n nEvent,\n onReload,\n onNoteOpen\n });\n }, [handleTaskStateChange]);\n\n //По нажатию действия \"Переместить\"\n const handleTaskMoveAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload\n }) => {\n //Открываем выбор записи из раздела \"Каталоги иерархии\"\n handleCatalogTreeOpen({\n sUnitName: \"ClientEvents\",\n nRn: task.nCrn,\n callBack: res => {\n //Выполняем перемещение события\n handleTaskMove({\n nEvent,\n nCrn: res.outParameters.out_RN,\n onReload\n });\n }\n });\n }, [handleCatalogTreeOpen, handleTaskMove, task.nCrn]);\n\n //При изменении ссылок в меню действий (для того, чтобы ссылка на объект менялась при реальной необходимости)\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Устанавливаем список меню\n setMenuItems((0,_layouts__WEBPACK_IMPORTED_MODULE_5__.makeCardActionsArray)(handleTaskEditAction, handleTaskEditClientAction, handleTaskDeleteAction, handleTaskStateChangeAction, handleTaskReturnAction, handleTaskSendAction, handleEventNotesOpenAction, handleTaskFileLinksOpenAction, handleTaskMoveAction));\n }, [handleEventNotesOpenAction, handleTaskFileLinksOpenAction, handleTaskSendAction, handleTaskStateChangeAction, handleTaskDeleteAction, handleTaskEditAction, handleTaskEditClientAction, handleTaskReturnAction, handleTaskMoveAction]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, taskDialogOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_task_dialog__WEBPACK_IMPORTED_MODULE_1__.TaskDialog, {\n taskRn: task.nRn,\n taskType: task.sType,\n editable: pointSettings.BAN_UPDATE ? false : true,\n onTasksReload: onTasksReload,\n onClose: () => {\n setTaskDialogOpen(false);\n }\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_beautiful_dnd__WEBPACK_IMPORTED_MODULE_15__.Draggable, {\n draggableId: task.id.toString(),\n key: task.id,\n index: index\n }, provided => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], _extends({\n ref: provided.innerRef\n }, provided.draggableProps, provided.dragHandleProps, {\n sx: STYLES.CARD(task, colorRule)\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n title: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"task-info\",\n sx: STYLES.CARD_HEADER_TITLE,\n lang: \"ru\",\n onClick: () => {\n menuItems.find(action => action.method === \"EDIT\" ? action.func(task.nRn, action.tasksReload ? onTasksReload : null) : null);\n },\n title: task.sDescription\n }, task.sDescription),\n sx: STYLES.CARD_HEADER,\n action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CardActions, {\n taskRn: task.nRn,\n taskClosed: task.nClosed,\n menuItems: menuItems,\n cardActions: cardActions,\n onMethodsMenuButtonClick: handleMethodsMenuButtonClick,\n onMethodsMenuClose: handleMethodsMenuClose,\n onTasksReload: onTasksReload,\n pointSettings: pointSettings,\n onOpenNoteDialog: onOpenNoteDialog\n })\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: STYLES.CARD_CONTENT\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CARD_CONTENT_BOX\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n title: task.nLinkedRn ? \"Событие получено по статусной модели\" : null,\n onClick: task.nLinkedRn ? () => pOnlineShowDocument({\n unitCode: task.sLinkedUnit,\n document: task.nLinkedRn\n }) : null,\n sx: STYLES.ICON_COLOR(task.nLinkedRn),\n disabled: !task.nLinkedRn\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, \"assignment\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.TYPOGRAPHY_TASK,\n noWrap: true,\n title: task.name\n }, task.name), task.sSender ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n direction: \"row\",\n spacing: 0.5,\n sx: STYLES.STACK_SENDER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.TYPOGRAPHY_SENDER,\n title: task.sSender,\n noWrap: true\n }, task.sSender), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n src: task.avatar ? `data:image/png;base64,${task.avatar}` : null\n })) : null)))));\n};\n\n//Контроль свойств - Карточка события\nTaskCard.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object).isRequired,\n index: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().number).isRequired,\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func),\n colorRule: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n pointSettings: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),\n onOpenNoteDialog: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/components/task_card.js?");
/***/ }),
@@ -609,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 */ 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/*\r\n Парус 8 - Панели мониторинга - УДП - Доски задач\r\n Пользовательские хуки: Хуки открытия разделов\r\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 handleClientPersonOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientPersons\",\n showMethod: \"main\",\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 handleClientClientsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientClients\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_CLIENT_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Каталоги\"\n const handleCatalogTreeOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"CatalogTree\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_DOCNAME\",\n value: prms.sUnitName\n }, {\n name: \"in_NAME\",\n value: prms.sName\n }, {\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 handleEventTypesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEventTypes\",\n showMethod: \"dictionary\",\n inputParameters: [{\n name: \"pos_eventtypecode\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Контрагенты\"\n const handleAgnlistOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"AGNLIST\",\n showMethod: \"agents\",\n inputParameters: [{\n name: \"pos_agnmnemo\",\n value: prms.sMnemo\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\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 handleCostStaffGroupsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"CostStaffGroups\",\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 handleExtraDictionariesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ExtraDictionaries\",\n showMethod: \"values\",\n inputParameters: [{\n name: \"pos_rn\",\n value: prms.nRn\n }, {\n name: prms.sParamName,\n value: prms.paramValue\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Маршруты событий (исполнители в точках)\"\n const handleEventRoutesPointExecutersOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EventRoutesPointExecuters\",\n showMethod: \"executers\",\n inputParameters: prms.inputParameters,\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"События\"\n const handleClientEventsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEvents\",\n inputParameters: [{\n name: \"in_Ident\",\n value: prms.nIdent\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"События (примечания)\"\n const handleClientEventsNotesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEventsNotes\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_PRN\",\n value: prms.nPrn\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Присоединенные документы\"\n const handleFileLinksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"FileLinks\",\n showMethod: \"main_link\",\n inputParameters: [{\n name: \"in_PRN\",\n value: prms.nPrn\n }, {\n name: \"in_UNITCODE\",\n value: prms.sUnitCode\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Маршруты событий (точки перехода)\"\n const handleEventRoutesPointsPassessOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EventRoutesPointsPasses\",\n showMethod: \"main_passes\",\n inputParameters: [{\n name: \"in_ENVTYPE_CODE\",\n value: prms.sEventType\n }, {\n name: \"in_ENVSTAT_CODE\",\n value: prms.sEventStatus\n }, {\n name: \"in_POINT\",\n value: prms.nPoint\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Универсальное отображение раздела\n const handleUnitOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: prms.sUnitCode,\n showMethod: prms.sShowMethod,\n inputParameters: prms.inputParameters,\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n return {\n handleClientPersonOpen,\n handleClientClientsOpen,\n handleCatalogTreeOpen,\n handleEventTypesOpen,\n handleAgnlistOpen,\n handleInsDepartmentOpen,\n handleCostStaffGroupsOpen,\n handleExtraDictionariesOpen,\n handleEventRoutesPointExecutersOpen,\n handleClientEventsOpen,\n handleClientEventsNotesOpen,\n handleFileLinksOpen,\n handleEventRoutesPointsPassessOpen,\n handleUnitOpen\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/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 */ });\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/*\r\n Парус 8 - Панели мониторинга - УДП - Доски задач\r\n Пользовательские хуки: Хуки открытия разделов\r\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__.ApplicationCtx);\n\n //Отображение раздела \"Сотрудники\"\n const handleClientPersonOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientPersons\",\n showMethod: \"main\",\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 handleClientClientsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientClients\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_CLIENT_CODE\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Каталоги\"\n const handleCatalogTreeOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"CatalogTree\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_DOCNAME\",\n value: prms.sUnitName\n }, {\n name: \"in_NAME\",\n value: prms.sName\n }, {\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 handleEventTypesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEventTypes\",\n showMethod: \"dictionary\",\n inputParameters: [{\n name: \"pos_eventtypecode\",\n value: prms.sCode\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Контрагенты\"\n const handleAgnlistOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"AGNLIST\",\n showMethod: \"agents\",\n inputParameters: [{\n name: \"pos_agnmnemo\",\n value: prms.sMnemo\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\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 handleCostStaffGroupsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"CostStaffGroups\",\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 handleExtraDictionariesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ExtraDictionaries\",\n showMethod: \"values\",\n inputParameters: [{\n name: \"pos_rn\",\n value: prms.nRn\n }, {\n name: prms.sParamName,\n value: prms.paramValue\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Маршруты событий (исполнители в точках)\"\n const handleEventRoutesPointExecutersOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EventRoutesPointExecuters\",\n showMethod: \"executers\",\n inputParameters: prms.inputParameters,\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"События\"\n const handleClientEventsOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEvents\",\n inputParameters: [{\n name: \"in_Ident\",\n value: prms.nIdent\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"События (примечания)\"\n const handleClientEventsNotesOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"ClientEventsNotes\",\n showMethod: \"main\",\n inputParameters: [{\n name: \"in_PRN\",\n value: prms.nPrn\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Присоединенные документы\"\n const handleFileLinksOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"FileLinks\",\n showMethod: \"main_link\",\n inputParameters: [{\n name: \"in_PRN\",\n value: prms.nPrn\n }, {\n name: \"in_UNITCODE\",\n value: prms.sUnitCode\n }]\n });\n }, [pOnlineShowDictionary]);\n\n //Отображение раздела \"Маршруты событий (точки перехода)\"\n const handleEventRoutesPointsPassessOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: \"EventRoutesPointsPasses\",\n showMethod: \"main_passes\",\n inputParameters: [{\n name: \"in_ENVTYPE_CODE\",\n value: prms.sEventType\n }, {\n name: \"in_ENVSTAT_CODE\",\n value: prms.sEventStatus\n }, {\n name: \"in_POINT\",\n value: prms.nPoint\n }],\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n\n //Универсальное отображение раздела\n const handleUnitOpen = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n pOnlineShowDictionary({\n unitCode: prms.sUnitCode,\n showMethod: prms.sShowMethod,\n inputParameters: prms.inputParameters,\n callBack: res => {\n res.success ? prms.callBack(res) : null;\n }\n });\n }, [pOnlineShowDictionary]);\n return {\n handleClientPersonOpen,\n handleClientClientsOpen,\n handleCatalogTreeOpen,\n handleEventTypesOpen,\n handleAgnlistOpen,\n handleInsDepartmentOpen,\n handleCostStaffGroupsOpen,\n handleExtraDictionariesOpen,\n handleEventRoutesPointExecutersOpen,\n handleClientEventsOpen,\n handleClientEventsNotesOpen,\n handleFileLinksOpen,\n handleEventRoutesPointsPassessOpen,\n handleUnitOpen\n };\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/dict_hooks.js?");
/***/ }),
@@ -631,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 */ useColorRules: () => (/* binding */ useColorRules),\n/* harmony export */ useExtraData: () => (/* binding */ useExtraData),\n/* harmony export */ useStatuses: () => (/* binding */ useStatuses)\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 _layouts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.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 useExtraData = filtersType => {\n //Состояние дополнительных данных\n const [extraData, setExtraData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n reload: false,\n typeLoaded: \"\",\n evRoutes: [],\n evPoints: [],\n noteTypes: [],\n docLinks: []\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 handleDocLinksLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (type = filtersType) => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DOCLINKS_GET\",\n args: {\n SEVNTYPE_CODE: type\n },\n isArray: name => name === \"XDOCLINKS\",\n respArg: \"COUT\"\n });\n //Возвращаем учётные документы\n return [...(data?.XDOCLINKS || [])];\n }, [executeStored, filtersType]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка дополнительных данных\n const loadExtraData = async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_GET_INFO_BY_CODE\",\n args: {\n SEVNTYPE_CODE: filtersType\n },\n isArray: name => [\"XEVROUTES\", \"XEVPOINTS\", \"XNOTETYPES\"].includes(name),\n respArg: \"COUT\"\n });\n //Форматируем типы примечаний под нужный формат\n let noteTypes = [...(data?.XNOTETYPES || [])].reduce((prev, cur) => [...prev, cur.SNAME], []);\n //Считываем учётные документы\n let docLinks = await handleDocLinksLoad(filtersType);\n //Обновляем дополнительные данные\n setExtraData({\n dataLoaded: true,\n reload: false,\n typeLoaded: filtersType,\n evRoutes: [...(data?.XEVROUTES || [])],\n evPoints: [...(data?.XEVPOINTS || [])],\n noteTypes: [...noteTypes],\n docLinks: [...docLinks]\n });\n };\n\n //Если указан тип событий и необходимо обновить\n if (extraData.reload && filtersType) {\n //Загружаем дополнительные данные\n if (!extraData.typeLoaded || filtersType !== extraData.typeLoaded) {\n loadExtraData();\n }\n }\n }, [executeStored, extraData.reload, extraData.typeLoaded, filtersType, handleDocLinksLoad]);\n return [extraData, setExtraData, handleDocLinksLoad];\n};\n\n//Хук заливок пользовательских настроек\nconst useColorRules = () => {\n //Собственное состояние\n const [colorRules, setColorRules] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n rules: [],\n selectedColorRule: JSON.parse((0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"settingsColorRule\")) || {}\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Считывание пользовательских настроек\n let getColorRules = async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DP_RULES_GET\",\n isArray: name => name === \"XRULES\",\n respArg: \"COUT\"\n });\n //Формируем массив правил заливки пользовательских настроек\n let newColorRules = [...(data.XRULES || [])].reduce((prev, cur) => [...prev, {\n id: prev.length,\n SFIELD: cur.SFIELD,\n SDP_NAME: cur.SDP_NAME,\n SCOLOR: cur.SCOLOR,\n STYPE: cur.STYPE,\n fromValue: cur.NFROM ?? cur.SFROM ?? cur.DFROM,\n toValue: cur.NTO ?? cur.STO ?? cur.DTO\n }], []);\n //Устанавливаем заливки пользовательских настроек\n setColorRules(pv => ({\n ...pv,\n loaded: true,\n rules: [...newColorRules]\n }));\n };\n if (!colorRules.loaded) getColorRules();\n }, [colorRules.loaded, executeStored]);\n\n //Сохранение при закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Обработка события закрытия\n const onBeforeUnload = () => {\n localStorage.setItem(\"settingsColorRule\", JSON.stringify(colorRules.selectedColorRule));\n };\n //Вешаем обработчик события закрытия\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n //Очищаем при размонтировании\n return () => {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n };\n }, [colorRules.selectedColorRule]);\n return [colorRules, setColorRules];\n};\n\n//Хук статусов событий\nconst useStatuses = filterType => {\n //Собственное состояние статусов\n const [statuses, setStatuses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Состояние статусов\n const [statusesState, setStatusesState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sorted: false,\n reload: true,\n attr: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"statusesSortAttr\", \"SEVNSTAT_NAME\"),\n direction: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"statusesSortDirection\", \"asc\")\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Сортируем статусы\n const sortStatuses = unsortedStatuses => {\n //Инициализируем поле сортировки и порядок сортировки\n const attr = statusesState.attr;\n const direction = statusesState.direction;\n //Сортируем\n let sortedStatuses = unsortedStatuses.sort((a, b) => direction === \"asc\" ? a[attr].localeCompare(b[attr]) : b[attr].localeCompare(a[attr]));\n //Возвращаем\n return sortedStatuses;\n };\n //Загружаем и сортируем статусы\n const loadAndSortStatuses = async filterType => {\n //Инициализируем статусы\n let newStatuses = [];\n //Если требуется перезагрузка\n if (statusesState.reload) {\n const loadedStatuses = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVNSTATS_LOAD\",\n args: {\n SCLNEVNTYPES: filterType\n },\n isArray: name => name === \"XSTATUS\",\n respArg: \"COUT\"\n });\n //Загружаем статусы и инициализируем цвета\n newStatuses = [...(loadedStatuses?.XSTATUS || [])].reduce((prev, cur) => [...prev, {\n ...cur,\n color: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getRandomColor)(prev.length + 1)\n }], []);\n } else {\n //Загружаем из состояния\n newStatuses = [...statuses];\n }\n //Сортируем, если требуется\n newStatuses = !statusesState.sorted ? sortStatuses(newStatuses) : newStatuses;\n //Обновляем состояние статусов\n setStatuses([...newStatuses]);\n //Обновляем информацию о состоянии статусов\n setStatusesState(pv => ({\n ...pv,\n sorted: true,\n reload: false\n }));\n };\n //При необходимости изменения сортировки\n if (filterType && (statusesState.reload || !statusesState.sorted)) {\n //Считываем старые статусы или загружаем новые\n loadAndSortStatuses(filterType);\n }\n }, [executeStored, filterType, statuses, statusesState.attr, statusesState.direction, statusesState.reload, statusesState.sorted]);\n\n //Сохранение при закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Обработка события закрытия\n const onBeforeUnload = () => {\n localStorage.setItem(\"statusesSortAttr\", statusesState.attr);\n localStorage.setItem(\"statusesSortDirection\", statusesState.direction);\n };\n //Вешаем обработчик события закрытия\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n //Очищаем при размонтировании\n return () => {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n };\n }, [statusesState.attr, statusesState.direction]);\n return [statuses, statusesState, setStatuses, setStatusesState];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useColorRules: () => (/* binding */ useColorRules),\n/* harmony export */ useExtraData: () => (/* binding */ useExtraData),\n/* harmony export */ useStatuses: () => (/* binding */ useStatuses)\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 _layouts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.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 useExtraData = filtersType => {\n //Состояние дополнительных данных\n const [extraData, setExtraData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n reload: false,\n typeLoaded: \"\",\n evRoutes: [],\n evPoints: [],\n noteTypes: [],\n docLinks: []\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Считывание учётных документов\n const handleDocLinksLoad = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (type = filtersType) => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DOCLINKS_GET\",\n args: {\n SEVNTYPE_CODE: type\n },\n isArray: name => name === \"XDOCLINKS\",\n respArg: \"COUT\"\n });\n //Возвращаем учётные документы\n return [...(data?.XDOCLINKS || [])];\n }, [executeStored, filtersType]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка дополнительных данных\n const loadExtraData = async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_GET_INFO_BY_CODE\",\n args: {\n SEVNTYPE_CODE: filtersType\n },\n isArray: name => [\"XEVROUTES\", \"XEVPOINTS\", \"XNOTETYPES\"].includes(name),\n respArg: \"COUT\"\n });\n //Форматируем типы примечаний под нужный формат\n let noteTypes = [...(data?.XNOTETYPES || [])].reduce((prev, cur) => [...prev, cur.SNAME], []);\n //Считываем учётные документы\n let docLinks = await handleDocLinksLoad(filtersType);\n //Обновляем дополнительные данные\n setExtraData({\n dataLoaded: true,\n reload: false,\n typeLoaded: filtersType,\n evRoutes: [...(data?.XEVROUTES || [])],\n evPoints: [...(data?.XEVPOINTS || [])],\n noteTypes: [...noteTypes],\n docLinks: [...docLinks]\n });\n };\n\n //Если указан тип событий и необходимо обновить\n if (extraData.reload && filtersType) {\n //Загружаем дополнительные данные\n if (!extraData.typeLoaded || filtersType !== extraData.typeLoaded) {\n loadExtraData();\n }\n }\n }, [executeStored, extraData.reload, extraData.typeLoaded, filtersType, handleDocLinksLoad]);\n return [extraData, setExtraData, handleDocLinksLoad];\n};\n\n//Хук заливок пользовательских настроек\nconst useColorRules = () => {\n //Собственное состояние\n const [colorRules, setColorRules] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n rules: [],\n selectedColorRule: JSON.parse((0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"settingsColorRule\")) || {}\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При необходимости загрузки заливок\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Считывание пользовательских настроек\n let getColorRules = async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_DP_RULES_GET\",\n isArray: name => name === \"XRULES\",\n respArg: \"COUT\"\n });\n //Формируем массив правил заливки пользовательских настроек\n let newColorRules = [...(data.XRULES || [])].reduce((prev, cur) => [...prev, {\n id: prev.length,\n SFIELD: cur.SFIELD,\n SDP_NAME: cur.SDP_NAME,\n SCOLOR: cur.SCOLOR,\n STYPE: cur.STYPE,\n fromValue: cur.NFROM ?? cur.SFROM ?? cur.DFROM,\n toValue: cur.NTO ?? cur.STO ?? cur.DTO\n }], []);\n //Устанавливаем заливки пользовательских настроек\n setColorRules(pv => ({\n ...pv,\n loaded: true,\n rules: [...newColorRules]\n }));\n };\n if (!colorRules.loaded) getColorRules();\n }, [colorRules.loaded, executeStored]);\n\n //Сохранение при закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Обработка события закрытия\n const onBeforeUnload = () => {\n localStorage.setItem(\"settingsColorRule\", JSON.stringify(colorRules.selectedColorRule));\n };\n //Вешаем обработчик события закрытия\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n //Очищаем при размонтировании\n return () => {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n };\n }, [colorRules.selectedColorRule]);\n return [colorRules, setColorRules];\n};\n\n//Хук статусов событий\nconst useStatuses = filterType => {\n //Собственное состояние статусов\n const [statuses, setStatuses] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Состояние статусов\n const [statusesState, setStatusesState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n sorted: false,\n reload: true,\n attr: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"statusesSortAttr\", \"SEVNSTAT_NAME\"),\n direction: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getLocalStorageValue)(\"statusesSortDirection\", \"asc\")\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При необходимости сортировки статусов\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Сортируем статусы\n const sortStatuses = unsortedStatuses => {\n //Инициализируем поле сортировки и порядок сортировки\n const attr = statusesState.attr;\n const direction = statusesState.direction;\n //Сортируем\n let sortedStatuses = unsortedStatuses.sort((a, b) => direction === \"asc\" ? a[attr].localeCompare(b[attr]) : b[attr].localeCompare(a[attr]));\n //Возвращаем\n return sortedStatuses;\n };\n //Загружаем и сортируем статусы\n const loadAndSortStatuses = async filterType => {\n //Инициализируем статусы\n let newStatuses = [];\n //Если требуется перезагрузка\n if (statusesState.reload) {\n const loadedStatuses = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVNSTATS_LOAD\",\n args: {\n SCLNEVNTYPES: filterType\n },\n isArray: name => name === \"XSTATUS\",\n respArg: \"COUT\"\n });\n //Загружаем статусы и инициализируем цвета\n newStatuses = [...(loadedStatuses?.XSTATUS || [])].reduce((prev, cur) => [...prev, {\n ...cur,\n color: (0,_layouts__WEBPACK_IMPORTED_MODULE_2__.getRandomColor)(prev.length + 1)\n }], []);\n } else {\n //Загружаем из состояния\n newStatuses = [...statuses];\n }\n //Сортируем, если требуется\n newStatuses = !statusesState.sorted ? sortStatuses(newStatuses) : newStatuses;\n //Обновляем состояние статусов\n setStatuses([...newStatuses]);\n //Обновляем информацию о состоянии статусов\n setStatusesState(pv => ({\n ...pv,\n sorted: true,\n reload: false\n }));\n };\n //При необходимости изменения сортировки\n if (filterType && (statusesState.reload || !statusesState.sorted)) {\n //Считываем старые статусы или загружаем новые\n loadAndSortStatuses(filterType);\n }\n }, [executeStored, filterType, statuses, statusesState.attr, statusesState.direction, statusesState.reload, statusesState.sorted]);\n\n //Сохранение при закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Обработка события закрытия\n const onBeforeUnload = () => {\n localStorage.setItem(\"statusesSortAttr\", statusesState.attr);\n localStorage.setItem(\"statusesSortDirection\", statusesState.direction);\n };\n //Вешаем обработчик события закрытия\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n //Очищаем при размонтировании\n return () => {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n };\n }, [statusesState.attr, statusesState.direction]);\n return [statuses, statusesState, setStatuses, setStatusesState];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/hooks.js?");
/***/ }),
@@ -642,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 */ useClientEvent: () => (/* binding */ useClientEvent),\n/* harmony export */ useDocsProps: () => (/* binding */ useDocsProps)\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/*\r\n Парус 8 - Панели мониторинга - УДП - Доски задач\r\n Пользовательские хуки: Хуки диалога события\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для события\nconst useClientEvent = (taskRn, taskType = \"\") => {\n //Собственное состояние\n const [task, setTask] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: true,\n nRn: taskRn,\n sCrn: \"\",\n sPrefix: \"\",\n sNumber: \"\",\n sType: taskType,\n sStatus: \"\",\n sDescription: \"\",\n sClntClients: \"\",\n sClntClnperson: \"\",\n dStartDate: \"\",\n sInitClnperson: \"\",\n sInitUser: \"\",\n sInitReason: \"\",\n sToCompany: \"\",\n sToDepartment: \"\",\n sToClnpost: \"\",\n sToClnpsdep: \"\",\n sToClnperson: \"\",\n sToFcstaffgrp: \"\",\n sToUser: \"\",\n sToUsergrp: \"\",\n sCurrentUser: \"\",\n isUpdate: false,\n insertDisabled: true,\n updateDisabled: true,\n docProps: {}\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если это инициализация\n if (task.init) {\n //Если указан рег. номер события\n if (taskRn) {\n //Считывание параметров события\n const readEvent = async () => {\n //Считываем информацию о событии по рег. номеру\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_GET\",\n args: {\n NCLNEVENTS: task.nRn\n },\n respArg: \"COUT\"\n });\n //Фильтруем доп. свойства\n let docProps = Object.keys(data.XEVENT).filter(key => key.includes(\"DP_\")).reduce((prev, key) => ({\n ...prev,\n [key]: data.XEVENT[key]\n }), {});\n //Устанавливаем информацию о событии\n setTask(pv => ({\n ...pv,\n sCrn: data.XEVENT.SCRN,\n nClosed: data.XEVENT.NCLOSED,\n sPrefix: data.XEVENT.SPREF,\n sNumber: data.XEVENT.SNUMB,\n sType: data.XEVENT.STYPE,\n sStatus: data.XEVENT.SSTATUS,\n sDescription: data.XEVENT.SDESCRIPTION,\n sClntClients: data.XEVENT.SCLIENT_CLIENT,\n sClntClnperson: data.XEVENT.SCLIENT_PERSON,\n dPlanDate: data.XEVENT.SPLAN_DATE,\n sInitClnperson: data.XEVENT.SINIT_PERSON,\n sInitUser: data.XEVENT.SINIT_AUTHID,\n sInitReason: data.XEVENT.SREASON,\n sToCompany: data.XEVENT.SSEND_CLIENT,\n sToDepartment: data.XEVENT.SSEND_DIVISION,\n sToClnpost: data.XEVENT.SSEND_POST,\n sToClnpsdep: data.XEVENT.SSEND_PERFORM,\n sToClnperson: data.XEVENT.SSEND_PERSON,\n sToFcstaffgrp: data.XEVENT.SSEND_STAFFGRP,\n sToUser: data.XEVENT.SSEND_USER_NAME,\n sToUsergrp: data.XEVENT.SSEND_USER_GROUP,\n sCurrentUser: data.XEVENT.SINIT_AUTHID,\n isUpdate: true,\n init: false,\n docProps: docProps\n }));\n };\n //Инициализация параметров события\n readEvent();\n } else {\n //Считывание изначальных параметров события\n const initEvent = async () => {\n //Инициализируем параметры события\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_INIT\",\n args: {\n SEVENT_TYPE: task.sType\n }\n });\n //Если есть данные\n if (data) {\n //Устанавливаем данные по событию\n setTask(pv => ({\n ...pv,\n sPrefix: data.SPREF,\n sNumber: data.SNUMB,\n sStatus: data.SSTATUS,\n sCurrentUser: data.SINIT_AUTHNAME,\n sInitClnperson: data.SINIT_PERSON,\n sInitUser: !data.SINIT_PERSON ? data.SINIT_AUTHNAME : \"\",\n init: false\n }));\n }\n };\n //Инициализация изначальных параметров события\n initEvent();\n }\n }\n if (!task.init) {\n setTask(pv => ({\n ...pv,\n sInitUser: !task.sInitClnperson ? task.sCurrentUser : \"\"\n }));\n }\n }, [executeStored, task.init, task.nRn, task.sType, task.sCurrentUser, task.sInitClnperson, taskRn]);\n\n //Проверка доступности действия\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setTask(pv => ({\n ...pv,\n insertDisabled: !task.sCrn || !task.sPrefix || !task.sNumber || !task.sType || !task.sStatus || !task.sDescription || !task.sInitClnperson && !task.sInitUser,\n updateDisabled: !task.sDescription\n }));\n }, [task.sCrn, task.sDescription, task.sInitClnperson, task.sInitUser, task.sNumber, task.sPrefix, task.sStatus, task.sType]);\n return [task, setTask];\n};\n\n//Хук для получения свойств раздела \"События\"\nconst useDocsProps = taskType => {\n //Собственное состояние\n const [docProps, setDocsProps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n props: []\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__[\"BackEndСtx\"]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка доп. свойств\n let getDocsProps = async () => {\n //Считываема доп. свойства по типу события\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_PROPS_GET\",\n args: {\n SEVNTYPE_CODE: taskType\n },\n isArray: name => name === \"XPROPS\",\n respArg: \"COUT\"\n });\n //Устанавливаем доп. свойства\n setDocsProps({\n loaded: true,\n props: [...(data?.XPROPS || [])]\n });\n };\n //Если доп. свойства не загружены\n if (!docProps.loaded) {\n //Загружаем доп. свойства\n getDocsProps();\n }\n }, [docProps.loaded, executeStored, taskType]);\n return [docProps];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/task_dialog_hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useClientEvent: () => (/* binding */ useClientEvent),\n/* harmony export */ useDocsProps: () => (/* binding */ useDocsProps)\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/*\r\n Парус 8 - Панели мониторинга - УДП - Доски задач\r\n Пользовательские хуки: Хуки диалога события\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контекст взаимодействия с сервером\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для события\nconst useClientEvent = (taskRn, taskType = \"\") => {\n //Собственное состояние\n const [task, setTask] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: true,\n nRn: taskRn,\n sCrn: \"\",\n sPrefix: \"\",\n sNumber: \"\",\n sType: taskType,\n sStatus: \"\",\n sDescription: \"\",\n sClntClients: \"\",\n sClntClnperson: \"\",\n dStartDate: \"\",\n sInitClnperson: \"\",\n sInitUser: \"\",\n sInitReason: \"\",\n sToCompany: \"\",\n sToDepartment: \"\",\n sToClnpost: \"\",\n sToClnpsdep: \"\",\n sToClnperson: \"\",\n sToFcstaffgrp: \"\",\n sToUser: \"\",\n sToUsergrp: \"\",\n sCurrentUser: \"\",\n isUpdate: false,\n insertDisabled: true,\n updateDisabled: true,\n docProps: {}\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При инициализации события\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если это инициализация\n if (task.init) {\n //Если указан рег. номер события\n if (taskRn) {\n //Считывание параметров события\n const readEvent = async () => {\n //Считываем информацию о событии по рег. номеру\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_GET\",\n args: {\n NCLNEVENTS: task.nRn\n },\n respArg: \"COUT\"\n });\n //Фильтруем доп. свойства\n let docProps = Object.keys(data.XEVENT).filter(key => key.includes(\"DP_\")).reduce((prev, key) => ({\n ...prev,\n [key]: data.XEVENT[key]\n }), {});\n //Устанавливаем информацию о событии\n setTask(pv => ({\n ...pv,\n sCrn: data.XEVENT.SCRN,\n nClosed: data.XEVENT.NCLOSED,\n sPrefix: data.XEVENT.SPREF,\n sNumber: data.XEVENT.SNUMB,\n sType: data.XEVENT.STYPE,\n sStatus: data.XEVENT.SSTATUS,\n sDescription: data.XEVENT.SDESCRIPTION,\n sClntClients: data.XEVENT.SCLIENT_CLIENT,\n sClntClnperson: data.XEVENT.SCLIENT_PERSON,\n dPlanDate: data.XEVENT.SPLAN_DATE,\n sInitClnperson: data.XEVENT.SINIT_PERSON,\n sInitUser: data.XEVENT.SINIT_AUTHID,\n sInitReason: data.XEVENT.SREASON,\n sToCompany: data.XEVENT.SSEND_CLIENT,\n sToDepartment: data.XEVENT.SSEND_DIVISION,\n sToClnpost: data.XEVENT.SSEND_POST,\n sToClnpsdep: data.XEVENT.SSEND_PERFORM,\n sToClnperson: data.XEVENT.SSEND_PERSON,\n sToFcstaffgrp: data.XEVENT.SSEND_STAFFGRP,\n sToUser: data.XEVENT.SSEND_USER_NAME,\n sToUsergrp: data.XEVENT.SSEND_USER_GROUP,\n sCurrentUser: data.XEVENT.SINIT_AUTHID,\n isUpdate: true,\n init: false,\n docProps: docProps\n }));\n };\n //Инициализация параметров события\n readEvent();\n } else {\n //Считывание изначальных параметров события\n const initEvent = async () => {\n //Инициализируем параметры события\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_INIT\",\n args: {\n SEVENT_TYPE: task.sType\n }\n });\n //Если есть данные\n if (data) {\n //Устанавливаем данные по событию\n setTask(pv => ({\n ...pv,\n sPrefix: data.SPREF,\n sNumber: data.SNUMB,\n sStatus: data.SSTATUS,\n sCurrentUser: data.SINIT_AUTHNAME,\n sInitClnperson: data.SINIT_PERSON,\n sInitUser: !data.SINIT_PERSON ? data.SINIT_AUTHNAME : \"\",\n init: false\n }));\n }\n };\n //Инициализация изначальных параметров события\n initEvent();\n }\n }\n if (!task.init) {\n setTask(pv => ({\n ...pv,\n sInitUser: !task.sInitClnperson ? task.sCurrentUser : \"\"\n }));\n }\n }, [executeStored, task.init, task.nRn, task.sType, task.sCurrentUser, task.sInitClnperson, taskRn]);\n\n //Проверка доступности действия\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n setTask(pv => ({\n ...pv,\n insertDisabled: !task.sCrn || !task.sPrefix || !task.sNumber || !task.sType || !task.sStatus || !task.sDescription || !task.sInitClnperson && !task.sInitUser,\n updateDisabled: !task.sDescription\n }));\n }, [task.sCrn, task.sDescription, task.sInitClnperson, task.sInitUser, task.sNumber, task.sPrefix, task.sStatus, task.sType]);\n return [task, setTask];\n};\n\n//Хук для получения свойств раздела \"События\"\nconst useDocsProps = taskType => {\n //Собственное состояние\n const [docProps, setDocsProps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n props: []\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Загрузка доп. свойств\n let getDocsProps = async () => {\n //Считываема доп. свойства по типу события\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_PROPS_GET\",\n args: {\n SEVNTYPE_CODE: taskType\n },\n isArray: name => name === \"XPROPS\",\n respArg: \"COUT\"\n });\n //Устанавливаем доп. свойства\n setDocsProps({\n loaded: true,\n props: [...(data?.XPROPS || [])]\n });\n };\n //Если доп. свойства не загружены\n if (!docProps.loaded) {\n //Загружаем доп. свойства\n getDocsProps();\n }\n }, [docProps.loaded, executeStored, taskType]);\n return [docProps];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/task_dialog_hooks.js?");
/***/ }),
@@ -653,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 */ useTasks: () => (/* binding */ useTasks),\n/* harmony export */ useTasksFunctions: () => (/* binding */ useTasksFunctions)\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/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _dict_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.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 useTasksFunctions = () => {\n //Состояние открытия раздела\n const {\n handleEventRoutesPointExecutersOpen,\n handleEventRoutesPointsPassessOpen\n } = (0,_dict_hooks__WEBPACK_IMPORTED_MODULE_4__.useDictionary)();\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 handleSendExec = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(\n //Выполняем финальное перенаправление события\n async ({\n mainArgs,\n onReload = null\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SEND\",\n args: {\n ...mainArgs\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При направлении события\n const handleSend = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если требуется добавить примечание\n if (onNoteOpen) {\n //Открываем примечание с коллбэком на направление события\n onNoteOpen(async note => {\n //Выполняем изменение статуса\n handleSendExec({\n mainArgs: {\n ...mainArgs,\n SNOTE_HEADER: note.header,\n SNOTE: note.text\n },\n onReload\n });\n });\n } else {\n //Выполняем изменение статуса\n handleSendExec({\n mainArgs,\n onReload\n });\n }\n }, [handleSendExec]);\n\n //По нажатию действия \"Направить\"\n const handleTaskSend = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем инициализацию параметров\n const firstStep = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SEND\",\n args: {\n NSTEP: 1,\n NEVENT: nEvent\n }\n });\n if (firstStep) {\n //Открываем раздел \"Маршруты событий (исполнители в точках)\" для выбора исполнителя\n handleEventRoutesPointExecutersOpen({\n inputParameters: [{\n name: \"in_IDENT\",\n value: firstStep.NIDENT\n }, {\n name: \"in_EVENT\",\n value: nEvent\n }, {\n name: \"in_PERSON_CODE\",\n value: firstStep.SSEND_PERSON\n }, {\n name: \"in_USER_NAME\",\n value: firstStep.SSEND_USER_NAME\n }, {\n name: \"in_EVENT_TYPE\",\n value: firstStep.SEVENT_TYPE\n }, {\n name: \"in_EVENT_STAT\",\n value: firstStep.SEVENT_STAT\n }, {\n name: \"in_INIT_PERSON\",\n value: firstStep.SINIT_PERSON\n }, {\n name: \"in_INIT_AUTHNAME\",\n value: firstStep.SINIT_AUTHNAME\n }, {\n name: \"in_CLIENT_CLIENT\",\n value: firstStep.SCLIENT_CLIENT\n }, {\n name: \"in_CLIENT_PERSON\",\n value: firstStep.SCLIENT_PERSON\n }],\n callBack: sendPrms => {\n //Собираем основные параметры направления события\n const mainArgs = {\n NIDENT: firstStep.NIDENT,\n NSTEP: 2,\n NEVENT: nEvent,\n SSEND_CLIENT: sendPrms.outParameters.out_CLIENT_CODE,\n SSEND_DIVISION: sendPrms.outParameters.out_DIVISION_CODE,\n SSEND_POST: sendPrms.outParameters.out_POST_CODE,\n SSEND_PERFORM: sendPrms.outParameters.out_POST_IN_DIV_CODE,\n SSEND_PERSON: sendPrms.outParameters.out_PERSON_CODE,\n SSEND_STAFFGRP: sendPrms.outParameters.out_STAFFGRP_CODE,\n SSEND_USER_GROUP: sendPrms.outParameters.out_USER_GROUP_CODE,\n SSEND_USER_NAME: sendPrms.outParameters.out_USER_NAME,\n NSEND_PREDEFINED_EXEC: sendPrms.outParameters.out_PREDEFINED_EXEC,\n NSEND_PREDEFINED_PROC: sendPrms.outParameters.out_PREDEFINED_PROC\n };\n //Перенаправляем событие\n handleSend({\n nEvent,\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n });\n }\n }, [executeStored, handleEventRoutesPointExecutersOpen, handleSend]);\n\n //Выполнение изменения статуса события\n const handleStateChangeExec = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n ...mainArgs\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При изменении статуса события\n const handleStateChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если необходимо добавить примечание\n if (onNoteOpen) {\n //Открываем примечание с коллбэком на изменение статуса\n onNoteOpen(async note => {\n //Выполняем изменение статуса\n handleStateChangeExec({\n mainArgs: {\n ...mainArgs,\n SNOTE_HEADER: note.header,\n SNOTE: note.text\n },\n onReload\n });\n });\n } else {\n //Выполняем изменение статуса\n handleStateChangeExec({\n mainArgs,\n onReload\n });\n }\n }, [handleStateChangeExec]);\n\n //При выборе исполнителя\n const handleExecuterSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если требуется выбрать получателя\n if (pointInfo.NSELECT_EXEC === 1) {\n //Открываем раздел \"Маршруты событий (исполнители в точках)\" для выбора исполнителя\n handleEventRoutesPointExecutersOpen({\n inputParameters: [{\n name: \"in_IDENT\",\n value: pointInfo.NIDENT\n }, {\n name: \"in_EVENT\",\n value: nEvent\n }, {\n name: \"in_EVENT_TYPE\",\n value: pointInfo.SEVENT_TYPE\n }, {\n name: \"in_EVENT_STAT\",\n value: pointInfo.SEVENT_STAT\n }, {\n name: \"in_INIT_PERSON\",\n value: pointInfo.SINIT_PERSON\n }, {\n name: \"in_INIT_AUTHNAME\",\n value: pointInfo.SINIT_AUTHNAME\n }, {\n name: \"in_CLIENT_CLIENT\",\n value: pointInfo.SCLIENT_CLIENT\n }, {\n name: \"in_CLIENT_PERSON\",\n value: pointInfo.SCLIENT_PERSON\n }],\n callBack: sendPrms => {\n const mainArgs = {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 4,\n NEVENT: nEvent,\n SEVENT_STAT: pointInfo.SEVENT_STAT,\n SSEND_CLIENT: sendPrms.outParameters.out_CLIENT_CODE,\n SSEND_DIVISION: sendPrms.outParameters.out_DIVISION_CODE,\n SSEND_POST: sendPrms.outParameters.out_POST_CODE,\n SSEND_PERFORM: sendPrms.outParameters.out_POST_IN_DIV_CODE,\n SSEND_PERSON: sendPrms.outParameters.out_PERSON_CODE,\n SSEND_STAFFGRP: sendPrms.outParameters.out_STAFFGRP_CODE,\n SSEND_USER_GROUP: sendPrms.outParameters.out_USER_GROUP_CODE,\n SSEND_USER_NAME: sendPrms.outParameters.out_USER_NAME,\n NSEND_PREDEFINED_EXEC: sendPrms.outParameters.out_PREDEFINED_EXEC,\n NSEND_PREDEFINED_PROC: sendPrms.outParameters.out_PREDEFINED_PROC\n };\n //Выполняем изменение статуса\n handleStateChange({\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n });\n } else {\n //Общие аргументы\n const mainArgs = {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 4,\n NEVENT: nEvent,\n SEVENT_STAT: pointInfo.SEVENT_STAT\n };\n //Выполняем изменение статуса\n handleStateChange({\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n }, [handleEventRoutesPointExecutersOpen, handleStateChange]);\n\n //При выполнении третьего шага\n const handleMakeThirdStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем переход на следующий шаг\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 3,\n NPASS: pointInfo.NPASS\n }\n });\n //Выполняем выбор исполнителя\n handleExecuterSelect({\n nEvent,\n pointInfo,\n onReload,\n onNoteOpen\n });\n }, [executeStored, handleExecuterSelect]);\n\n //При выполнении второго шага\n const handleMakeSecondStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Состояние параметров текущего действия\n let currentPointInfo = {\n ...pointInfo\n };\n //Выполняем переход на следующий шаг\n const secondStep = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NIDENT: currentPointInfo.NIDENT,\n NSTEP: 2,\n NPASS: currentPointInfo.NPASS\n }\n });\n //Устанавливаем признак необходимости выбора исполнителя\n currentPointInfo.NSELECT_EXEC = secondStep.NSELECT_EXEC;\n //Выполняем третий шаг\n handleMakeThirdStep({\n nEvent,\n pointInfo: currentPointInfo,\n onReload,\n onNoteOpen\n });\n }, [executeStored, handleMakeThirdStep]);\n\n //При выборе следующей точки события\n const handleNextPointSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Состояние параметров текущего действия\n let currentPointInfo = {\n ...pointInfo\n };\n //Открываем раздел \"Маршруты событий (точки перехода)\" для выбора следующей точки\n handleEventRoutesPointsPassessOpen({\n sEventType: currentPointInfo.SEVENT_TYPE,\n sEventStatus: currentPointInfo.SEVENT_STAT,\n nPoint: currentPointInfo.NPOINT,\n callBack: async point => {\n //Устанавливаем полученную точку перехода\n currentPointInfo.NPASS = point.outParameters.out_RN;\n currentPointInfo.SEVENT_STAT = point.outParameters.out_NEXT_POINT;\n //Выполняем второй шаг\n handleMakeSecondStep({\n nEvent,\n pointInfo: currentPointInfo,\n onReload,\n onNoteOpen\n });\n }\n });\n }, [handleEventRoutesPointsPassessOpen, handleMakeSecondStep]);\n\n //По нажатию действия \"Перейти\"\n const handleTaskStateChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n sNextStat = null,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем инициализацию параметров\n const eventInfo = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NSTEP: 1,\n NEVENT: nEvent,\n SNEXT_STAT: sNextStat\n }\n });\n //Если информация о события проинициализирована\n if (eventInfo) {\n //Если следующий статус неопределен\n if (!sNextStat) {\n //Выполнение перехода с выбором точки\n handleNextPointSelect({\n nEvent,\n pointInfo: eventInfo,\n onReload,\n onNoteOpen\n });\n } else {\n //Выполняем второй шаг\n handleMakeSecondStep({\n nEvent,\n pointInfo: eventInfo,\n onReload,\n onNoteOpen\n });\n }\n }\n }, [executeStored, handleMakeSecondStep, handleNextPointSelect]);\n return {\n handleTaskStateChange,\n handleTaskSend\n };\n};\n\n//Хук получения событий\nconst useTasks = (filterValues, ordersValues) => {\n //Состояние событий\n const [tasks, setTasks] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n rows: [],\n reload: false,\n accountsReload: false,\n loadedAccounts: []\n });\n\n //Состояние вспомогательных функций событий\n const {\n handleTaskStateChange\n } = useTasksFunctions();\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 initTask = (id, task, avatar = null) => {\n //Фильтруем доп. свойства\n let newDocProps = Object.keys(task).filter(key => key.includes(\"DP_\")).reduce((prev, key) => ({\n ...prev,\n [key]: task[key]\n }), {});\n //Возвращаем структуру события\n return {\n id: id,\n avatar: avatar,\n name: task.SPREF_NUMB,\n nRn: task.NRN,\n sCrn: \"\",\n nCrn: task.NCRN,\n nClosed: task.NCLOSED,\n sPrefix: task.SEVPREF,\n sNumber: task.SEVNUMB,\n sType: task.SEVTYPE_CODE,\n sStatus: task.SEVSTAT_NAME,\n sDescription: task.SEVDESCR,\n sClntClients: \"\",\n sClntClnperson: \"\",\n dchange_date: task.DCHANGE_DATE,\n dStartDate: task.DREG_DATE,\n dExpireDate: task.DEXPIRE_DATE,\n dPlanDate: task.DPLAN_DATE,\n sInitClnperson: task.SINIT_PERSON,\n sInitUser: \"\",\n sInitReason: \"\",\n sToCompany: \"\",\n sToDepartment: task.SSEND_DIVISION,\n sToClnpost: \"\",\n sToClnpsdep: \"\",\n sToClnperson: task.SSEND_PERSON,\n sToFcstaffgrp: \"\",\n sToUser: \"\",\n sToUsergrp: task.SSEND_USRGRP,\n sSender: task.SSENDER,\n sCurrentUser: \"\",\n sLinkedUnit: task.SLINKED_UNIT,\n nLinkedRn: task.NLINKED_RN,\n docProps: newDocProps\n };\n };\n\n //Взаимодействие с событием (через перенос)\n const onDragEnd = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n path,\n eventPoints,\n openNoteDialog,\n destCode\n }) => {\n //Определяем нужные параметры\n const {\n source,\n destination\n } = path;\n //Если путь не указан\n if (!destination) {\n return;\n }\n //Если происходит изменение статуса\n if (destination.droppableId !== source.droppableId) {\n //Конвертим ID переносимого события\n let nDraggableTaskId = parseInt(path.draggableId);\n //Считываем строку, у которой изменяется статус\n let task = tasks.rows.find(r => r.id === nDraggableTaskId);\n //Изменяем статус у события\n task.statusId = parseInt(path.destination.droppableId);\n //Получение настройки точки назначения\n const pointSettings = eventPoints.find(eventPoint => eventPoint.SEVPOINT === destCode);\n //Изменяем статус события с добавлением примечания\n handleTaskStateChange({\n nEvent: task.nRn,\n sNextStat: destCode,\n onReload: () => setTasks(pv => ({\n ...pv,\n reload: true,\n accountsReload: true\n })),\n onNoteOpen: pointSettings.ADDNOTE_ONCHST ? openNoteDialog : null\n });\n }\n }, [handleTaskStateChange, tasks.rows]);\n\n //При необходимости перезагрузки данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Считывание данных с учетом фильтрации\n let getTasks = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_LOAD\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)((0,_layouts__WEBPACK_IMPORTED_MODULE_3__.convertFilterValuesToArray)(filterValues), {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(ordersValues, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_ACCOUNTS: tasks.accountsReload ? 1 : 0\n },\n isArray: name => name === \"XAGENTS\",\n respArg: \"COUT\"\n });\n //Считываем информацию о событиях\n let events = data.XCLNEVENTS.XDATA.XDATA_GRID;\n //Считываем иноформацию о контрагентах\n let accounts = tasks.accountsReload ? [...(data.XAGENTS_WITH_IMG.XAGENTS || [])] : tasks.loadedAccounts;\n //Инициализируем события\n let newRows = [];\n //Если есть события\n if (events.rows) {\n //Формируем структуру событий\n newRows = [...(events.rows || [])].reduce((prev, cur) => [...prev, initTask(prev.length, cur, accounts.find(agent => agent.SAGNABBR === cur.SSENDER)?.BIMAGE)], []);\n }\n //Возвращаем информацию\n return {\n rows: [...newRows],\n loadedAccounts: accounts\n };\n };\n //Считывание данных\n let getData = async () => {\n //Считываем информацию о задачах\n let eventTasks = await getTasks();\n //Загружаем данные\n setTasks(pv => ({\n ...pv,\n loaded: true,\n rows: eventTasks.rows,\n loadedAccounts: eventTasks.loadedAccounts,\n reload: false,\n accountsReload: false\n }));\n };\n //Если необходимо загрузить данные и указан тип событий и загружены все необходимые вспомогательные данные\n if (tasks.reload) {\n //Загружаем данные\n getData();\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, ordersValues, tasks.accountsReload, tasks.loadedAccounts, tasks.reload]);\n return [tasks, setTasks, onDragEnd];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/tasks_hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useTasks: () => (/* binding */ useTasks),\n/* harmony export */ useTasksFunctions: () => (/* binding */ useTasksFunctions)\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/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../layouts */ \"./app/panels/clnt_task_board/layouts.js\");\n/* harmony import */ var _dict_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dict_hooks */ \"./app/panels/clnt_task_board/hooks/dict_hooks.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 useTasksFunctions = () => {\n //Состояние открытия раздела\n const {\n handleEventRoutesPointExecutersOpen,\n handleEventRoutesPointsPassessOpen\n } = (0,_dict_hooks__WEBPACK_IMPORTED_MODULE_4__.useDictionary)();\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Выполнение направления события\n const handleSendExec = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(\n //Выполняем финальное перенаправление события\n async ({\n mainArgs,\n onReload = null\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SEND\",\n args: {\n ...mainArgs\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При направлении события\n const handleSend = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если требуется добавить примечание\n if (onNoteOpen) {\n //Открываем примечание с коллбэком на направление события\n onNoteOpen(async note => {\n //Выполняем изменение статуса\n handleSendExec({\n mainArgs: {\n ...mainArgs,\n SNOTE_HEADER: note.header,\n SNOTE: note.text\n },\n onReload\n });\n });\n } else {\n //Выполняем изменение статуса\n handleSendExec({\n mainArgs,\n onReload\n });\n }\n }, [handleSendExec]);\n\n //По нажатию действия \"Направить\"\n const handleTaskSend = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем инициализацию параметров\n const firstStep = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_SEND\",\n args: {\n NSTEP: 1,\n NEVENT: nEvent\n }\n });\n if (firstStep) {\n //Открываем раздел \"Маршруты событий (исполнители в точках)\" для выбора исполнителя\n handleEventRoutesPointExecutersOpen({\n inputParameters: [{\n name: \"in_IDENT\",\n value: firstStep.NIDENT\n }, {\n name: \"in_EVENT\",\n value: nEvent\n }, {\n name: \"in_PERSON_CODE\",\n value: firstStep.SSEND_PERSON\n }, {\n name: \"in_USER_NAME\",\n value: firstStep.SSEND_USER_NAME\n }, {\n name: \"in_EVENT_TYPE\",\n value: firstStep.SEVENT_TYPE\n }, {\n name: \"in_EVENT_STAT\",\n value: firstStep.SEVENT_STAT\n }, {\n name: \"in_INIT_PERSON\",\n value: firstStep.SINIT_PERSON\n }, {\n name: \"in_INIT_AUTHNAME\",\n value: firstStep.SINIT_AUTHNAME\n }, {\n name: \"in_CLIENT_CLIENT\",\n value: firstStep.SCLIENT_CLIENT\n }, {\n name: \"in_CLIENT_PERSON\",\n value: firstStep.SCLIENT_PERSON\n }],\n callBack: sendPrms => {\n //Собираем основные параметры направления события\n const mainArgs = {\n NIDENT: firstStep.NIDENT,\n NSTEP: 2,\n NEVENT: nEvent,\n SSEND_CLIENT: sendPrms.outParameters.out_CLIENT_CODE,\n SSEND_DIVISION: sendPrms.outParameters.out_DIVISION_CODE,\n SSEND_POST: sendPrms.outParameters.out_POST_CODE,\n SSEND_PERFORM: sendPrms.outParameters.out_POST_IN_DIV_CODE,\n SSEND_PERSON: sendPrms.outParameters.out_PERSON_CODE,\n SSEND_STAFFGRP: sendPrms.outParameters.out_STAFFGRP_CODE,\n SSEND_USER_GROUP: sendPrms.outParameters.out_USER_GROUP_CODE,\n SSEND_USER_NAME: sendPrms.outParameters.out_USER_NAME,\n NSEND_PREDEFINED_EXEC: sendPrms.outParameters.out_PREDEFINED_EXEC,\n NSEND_PREDEFINED_PROC: sendPrms.outParameters.out_PREDEFINED_PROC\n };\n //Перенаправляем событие\n handleSend({\n nEvent,\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n });\n }\n }, [executeStored, handleEventRoutesPointExecutersOpen, handleSend]);\n\n //Выполнение изменения статуса события\n const handleStateChangeExec = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null\n }) => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n ...mainArgs\n }\n });\n //Если требуется перезагрузить данные\n onReload ? onReload() : null;\n }, [executeStored]);\n\n //При изменении статуса события\n const handleStateChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n mainArgs,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если необходимо добавить примечание\n if (onNoteOpen) {\n //Открываем примечание с коллбэком на изменение статуса\n onNoteOpen(async note => {\n //Выполняем изменение статуса\n handleStateChangeExec({\n mainArgs: {\n ...mainArgs,\n SNOTE_HEADER: note.header,\n SNOTE: note.text\n },\n onReload\n });\n });\n } else {\n //Выполняем изменение статуса\n handleStateChangeExec({\n mainArgs,\n onReload\n });\n }\n }, [handleStateChangeExec]);\n\n //При выборе исполнителя\n const handleExecuterSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Если требуется выбрать получателя\n if (pointInfo.NSELECT_EXEC === 1) {\n //Открываем раздел \"Маршруты событий (исполнители в точках)\" для выбора исполнителя\n handleEventRoutesPointExecutersOpen({\n inputParameters: [{\n name: \"in_IDENT\",\n value: pointInfo.NIDENT\n }, {\n name: \"in_EVENT\",\n value: nEvent\n }, {\n name: \"in_EVENT_TYPE\",\n value: pointInfo.SEVENT_TYPE\n }, {\n name: \"in_EVENT_STAT\",\n value: pointInfo.SEVENT_STAT\n }, {\n name: \"in_INIT_PERSON\",\n value: pointInfo.SINIT_PERSON\n }, {\n name: \"in_INIT_AUTHNAME\",\n value: pointInfo.SINIT_AUTHNAME\n }, {\n name: \"in_CLIENT_CLIENT\",\n value: pointInfo.SCLIENT_CLIENT\n }, {\n name: \"in_CLIENT_PERSON\",\n value: pointInfo.SCLIENT_PERSON\n }],\n callBack: sendPrms => {\n const mainArgs = {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 4,\n NEVENT: nEvent,\n SEVENT_STAT: pointInfo.SEVENT_STAT,\n SSEND_CLIENT: sendPrms.outParameters.out_CLIENT_CODE,\n SSEND_DIVISION: sendPrms.outParameters.out_DIVISION_CODE,\n SSEND_POST: sendPrms.outParameters.out_POST_CODE,\n SSEND_PERFORM: sendPrms.outParameters.out_POST_IN_DIV_CODE,\n SSEND_PERSON: sendPrms.outParameters.out_PERSON_CODE,\n SSEND_STAFFGRP: sendPrms.outParameters.out_STAFFGRP_CODE,\n SSEND_USER_GROUP: sendPrms.outParameters.out_USER_GROUP_CODE,\n SSEND_USER_NAME: sendPrms.outParameters.out_USER_NAME,\n NSEND_PREDEFINED_EXEC: sendPrms.outParameters.out_PREDEFINED_EXEC,\n NSEND_PREDEFINED_PROC: sendPrms.outParameters.out_PREDEFINED_PROC\n };\n //Выполняем изменение статуса\n handleStateChange({\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n });\n } else {\n //Общие аргументы\n const mainArgs = {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 4,\n NEVENT: nEvent,\n SEVENT_STAT: pointInfo.SEVENT_STAT\n };\n //Выполняем изменение статуса\n handleStateChange({\n mainArgs,\n onReload,\n onNoteOpen\n });\n }\n }, [handleEventRoutesPointExecutersOpen, handleStateChange]);\n\n //При выполнении третьего шага\n const handleMakeThirdStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем переход на следующий шаг\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NIDENT: pointInfo.NIDENT,\n NSTEP: 3,\n NPASS: pointInfo.NPASS\n }\n });\n //Выполняем выбор исполнителя\n handleExecuterSelect({\n nEvent,\n pointInfo,\n onReload,\n onNoteOpen\n });\n }, [executeStored, handleExecuterSelect]);\n\n //При выполнении второго шага\n const handleMakeSecondStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Состояние параметров текущего действия\n let currentPointInfo = {\n ...pointInfo\n };\n //Выполняем переход на следующий шаг\n const secondStep = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NIDENT: currentPointInfo.NIDENT,\n NSTEP: 2,\n NPASS: currentPointInfo.NPASS\n }\n });\n //Устанавливаем признак необходимости выбора исполнителя\n currentPointInfo.NSELECT_EXEC = secondStep.NSELECT_EXEC;\n //Выполняем третий шаг\n handleMakeThirdStep({\n nEvent,\n pointInfo: currentPointInfo,\n onReload,\n onNoteOpen\n });\n }, [executeStored, handleMakeThirdStep]);\n\n //При выборе следующей точки события\n const handleNextPointSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n nEvent,\n pointInfo,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Состояние параметров текущего действия\n let currentPointInfo = {\n ...pointInfo\n };\n //Открываем раздел \"Маршруты событий (точки перехода)\" для выбора следующей точки\n handleEventRoutesPointsPassessOpen({\n sEventType: currentPointInfo.SEVENT_TYPE,\n sEventStatus: currentPointInfo.SEVENT_STAT,\n nPoint: currentPointInfo.NPOINT,\n callBack: async point => {\n //Устанавливаем полученную точку перехода\n currentPointInfo.NPASS = point.outParameters.out_RN;\n currentPointInfo.SEVENT_STAT = point.outParameters.out_NEXT_POINT;\n //Выполняем второй шаг\n handleMakeSecondStep({\n nEvent,\n pointInfo: currentPointInfo,\n onReload,\n onNoteOpen\n });\n }\n });\n }, [handleEventRoutesPointsPassessOpen, handleMakeSecondStep]);\n\n //По нажатию действия \"Перейти\"\n const handleTaskStateChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n nEvent,\n sNextStat = null,\n onReload = null,\n onNoteOpen = null\n }) => {\n //Выполняем инициализацию параметров\n const eventInfo = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_STATE_CHANGE\",\n args: {\n NSTEP: 1,\n NEVENT: nEvent,\n SNEXT_STAT: sNextStat\n }\n });\n //Если информация о события проинициализирована\n if (eventInfo) {\n //Если следующий статус неопределен\n if (!sNextStat) {\n //Выполнение перехода с выбором точки\n handleNextPointSelect({\n nEvent,\n pointInfo: eventInfo,\n onReload,\n onNoteOpen\n });\n } else {\n //Выполняем второй шаг\n handleMakeSecondStep({\n nEvent,\n pointInfo: eventInfo,\n onReload,\n onNoteOpen\n });\n }\n }\n }, [executeStored, handleMakeSecondStep, handleNextPointSelect]);\n return {\n handleTaskStateChange,\n handleTaskSend\n };\n};\n\n//Хук получения событий\nconst useTasks = (filterValues, ordersValues) => {\n //Состояние событий\n const [tasks, setTasks] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n loaded: false,\n rows: [],\n reload: false,\n accountsReload: false,\n loadedAccounts: []\n });\n\n //Состояние вспомогательных функций событий\n const {\n handleTaskStateChange\n } = useTasksFunctions();\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__.BackEndCtx);\n\n //Инициализация параметров события\n const initTask = (id, task, avatar = null) => {\n //Фильтруем доп. свойства\n let newDocProps = Object.keys(task).filter(key => key.includes(\"DP_\")).reduce((prev, key) => ({\n ...prev,\n [key]: task[key]\n }), {});\n //Возвращаем структуру события\n return {\n id: id,\n avatar: avatar,\n name: task.SPREF_NUMB,\n nRn: task.NRN,\n sCrn: \"\",\n nCrn: task.NCRN,\n nClosed: task.NCLOSED,\n sPrefix: task.SEVPREF,\n sNumber: task.SEVNUMB,\n sType: task.SEVTYPE_CODE,\n sStatus: task.SEVSTAT_NAME,\n sDescription: task.SEVDESCR,\n sClntClients: \"\",\n sClntClnperson: \"\",\n dchange_date: task.DCHANGE_DATE,\n dStartDate: task.DREG_DATE,\n dExpireDate: task.DEXPIRE_DATE,\n dPlanDate: task.DPLAN_DATE,\n sInitClnperson: task.SINIT_PERSON,\n sInitUser: \"\",\n sInitReason: \"\",\n sToCompany: \"\",\n sToDepartment: task.SSEND_DIVISION,\n sToClnpost: \"\",\n sToClnpsdep: \"\",\n sToClnperson: task.SSEND_PERSON,\n sToFcstaffgrp: \"\",\n sToUser: \"\",\n sToUsergrp: task.SSEND_USRGRP,\n sSender: task.SSENDER,\n sCurrentUser: \"\",\n sLinkedUnit: task.SLINKED_UNIT,\n nLinkedRn: task.NLINKED_RN,\n docProps: newDocProps\n };\n };\n\n //Взаимодействие с событием (через перенос)\n const onDragEnd = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n path,\n eventPoints,\n openNoteDialog,\n destCode\n }) => {\n //Определяем нужные параметры\n const {\n source,\n destination\n } = path;\n //Если путь не указан\n if (!destination) {\n return;\n }\n //Если происходит изменение статуса\n if (destination.droppableId !== source.droppableId) {\n //Конвертим ID переносимого события\n let nDraggableTaskId = parseInt(path.draggableId);\n //Считываем строку, у которой изменяется статус\n let task = tasks.rows.find(r => r.id === nDraggableTaskId);\n //Изменяем статус у события\n task.statusId = parseInt(path.destination.droppableId);\n //Получение настройки точки назначения\n const pointSettings = eventPoints.find(eventPoint => eventPoint.SEVPOINT === destCode);\n //Изменяем статус события с добавлением примечания\n handleTaskStateChange({\n nEvent: task.nRn,\n sNextStat: destCode,\n onReload: () => setTasks(pv => ({\n ...pv,\n reload: true,\n accountsReload: true\n })),\n onNoteOpen: pointSettings.ADDNOTE_ONCHST ? openNoteDialog : null\n });\n }\n }, [handleTaskStateChange, tasks.rows]);\n\n //При необходимости перезагрузки данных\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Считывание данных с учетом фильтрации\n let getTasks = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_LOAD\",\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)((0,_layouts__WEBPACK_IMPORTED_MODULE_3__.convertFilterValuesToArray)(filterValues), {\n arrayNodeName: \"filters\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(ordersValues, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_ACCOUNTS: tasks.accountsReload ? 1 : 0\n },\n isArray: name => name === \"XAGENTS\",\n respArg: \"COUT\"\n });\n //Считываем информацию о событиях\n let events = data.XCLNEVENTS.XDATA.XDATA_GRID;\n //Считываем иноформацию о контрагентах\n let accounts = tasks.accountsReload ? [...(data.XAGENTS_WITH_IMG.XAGENTS || [])] : tasks.loadedAccounts;\n //Инициализируем события\n let newRows = [];\n //Если есть события\n if (events.rows) {\n //Формируем структуру событий\n newRows = [...(events.rows || [])].reduce((prev, cur) => [...prev, initTask(prev.length, cur, accounts.find(agent => agent.SAGNABBR === cur.SSENDER)?.BIMAGE)], []);\n }\n //Возвращаем информацию\n return {\n rows: [...newRows],\n loadedAccounts: accounts\n };\n };\n //Считывание данных\n let getData = async () => {\n //Считываем информацию о задачах\n let eventTasks = await getTasks();\n //Загружаем данные\n setTasks(pv => ({\n ...pv,\n loaded: true,\n rows: eventTasks.rows,\n loadedAccounts: eventTasks.loadedAccounts,\n reload: false,\n accountsReload: false\n }));\n };\n //Если необходимо загрузить данные и указан тип событий и загружены все необходимые вспомогательные данные\n if (tasks.reload) {\n //Загружаем данные\n getData();\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored, filterValues, ordersValues, tasks.accountsReload, tasks.loadedAccounts, tasks.reload]);\n return [tasks, setTasks, onDragEnd];\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/hooks/tasks_hooks.js?");
/***/ }),
@@ -697,7 +928,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 */ TaskDialog: () => (/* binding */ TaskDialog)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/task_dialog_hooks */ \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\");\n/* harmony import */ var _components_task_form__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/task_form */ \"./app/panels/clnt_task_board/components/task_form.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _components_p8p_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/p8p_dialog */ \"./app/components/p8p_dialog.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//---------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Диалог формы события\nconst TaskDialog = ({\n taskRn,\n taskType,\n editable,\n onTasksReload,\n onClose\n}) => {\n //Собственное состояние\n const [task, setTask] = (0,_hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__.useClientEvent)(taskRn, taskType);\n\n //Состояние допустимых дополнительных свойств\n const [docProps] = (0,_hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__.useDocsProps)(taskType);\n\n //Состояние заполненности всех обязательных доп. свойств\n const [docPropsReady, setDocPropsReady] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__[\"BackEndСtx\"]);\n\n //При изменении информации о задаче\n const handleTaskChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(newTaskValues => {\n setTask(pv => ({\n ...pv,\n ...newTaskValues\n }));\n }, [setTask]);\n\n //При добавлении события\n const handleInsertTask = async callBack => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_INSERT\",\n args: {\n SCRN: task.sCrn,\n SPREF: task.sPrefix,\n SNUMB: task.sNumber,\n STYPE: task.sType,\n SSTATUS: task.sStatus,\n SPLAN_DATE: task.dPlanDate,\n SINIT_PERSON: task.sInitClnperson,\n SCLIENT_CLIENT: task.sClntClients,\n SCLIENT_PERSON: task.sClntClnperson,\n SDESCRIPTION: task.sDescription,\n SREASON: task.sInitReason,\n CPROPS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.object2Base64XML)([Object.fromEntries(Object.entries(task.docProps)\n // eslint-disable-next-line no-unused-vars\n .filter(([_, v]) => v != ( false || \"\")))], {\n arrayNodeName: \"props\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n callBack();\n };\n\n //При исправлении события\n const handleUpdateEvent = async callBack => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_UPDATE\",\n args: {\n NCLNEVENTS: task.nRn,\n SCLIENT_CLIENT: task.sClntClients,\n SCLIENT_PERSON: task.sClntClnperson,\n SDESCRIPTION: task.sDescription,\n CPROPS: {\n // eslint-disable-next-line no-unused-vars\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.object2Base64XML)([Object.fromEntries(Object.entries(task.docProps).filter(([_, v]) => v != ( false || \"\")))], {\n arrayNodeName: \"props\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n callBack();\n };\n\n //При считывании следующего номера события\n const handleEventNextNumbGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_NEXTNUMB_GET\",\n args: {\n SPREFIX: task.sPrefix\n }\n });\n //Если данные есть\n if (data) {\n //Устанавливаем номер\n setTask(pv => ({\n ...pv,\n sNumber: data.SEVENT_NUMB\n }));\n }\n }, [executeStored, setTask, task.sPrefix]);\n\n //Проверка заполненности всех обязательных доп. свойств\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если доп. свойства загрузились\n if (docProps.loaded) {\n //Проверяем остались ли обязательные незаполненные свойства\n let notFilled = docProps.props.some(docProp => docProp.BREQUIRE === true && !(0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.hasValue)(task.docProps[docProp.SFORMATTED_ID]));\n //Если незаполненных обязательных доп. свойств не осталось - доп. свойства готовы, иначе не готовы\n setDocPropsReady(!notFilled);\n } else {\n //Доп. свойства не готовы\n setDocPropsReady(false);\n }\n }, [docProps.loaded, docProps.props, task.docProps]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !task.init && docProps.loaded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_dialog__WEBPACK_IMPORTED_MODULE_5__.P8PDialog, {\n title: task.nRn ? `Исправление события${task.nClosed ? \" [аннулировано]\" : \"\"}` : \"Добавление события\",\n fullWidth: true,\n onOk: () => taskRn ? handleUpdateEvent(onClose).then(onTasksReload) : handleInsertTask(onClose).then(onTasksReload),\n onClose: onClose ? onClose : null,\n okDisabled: taskRn ? task.updateDisabled || !editable || !docPropsReady : task.insertDisabled || !docPropsReady,\n scrollContent: false\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_task_form__WEBPACK_IMPORTED_MODULE_2__.TaskForm, {\n task: task,\n taskType: taskType,\n editable: !taskRn || editable ? true : false,\n docProps: docProps.props,\n onTaskChange: handleTaskChange,\n onEventNextNumbGet: handleEventNextNumbGet\n })));\n};\n\n//Контроль свойств - Диалог формы события\nTaskDialog.propTypes = {\n taskRn: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().number),\n taskType: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,\n editable: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired,\n onClose: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/task_dialog.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TaskDialog: () => (/* binding */ TaskDialog)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/task_dialog_hooks */ \"./app/panels/clnt_task_board/hooks/task_dialog_hooks.js\");\n/* harmony import */ var _components_task_form__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/task_form */ \"./app/panels/clnt_task_board/components/task_form.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _components_p8p_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/p8p_dialog */ \"./app/components/p8p_dialog.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//---------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Диалог формы события\nconst TaskDialog = ({\n taskRn,\n taskType,\n editable,\n onTasksReload,\n onClose\n}) => {\n //Собственное состояние\n const [task, setTask] = (0,_hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__.useClientEvent)(taskRn, taskType);\n\n //Состояние допустимых дополнительных свойств\n const [docProps] = (0,_hooks_task_dialog_hooks__WEBPACK_IMPORTED_MODULE_1__.useDocsProps)(taskType);\n\n //Состояние заполненности всех обязательных доп. свойств\n const [docPropsReady, setDocPropsReady] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored,\n SERV_DATA_TYPE_CLOB\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__.BackEndCtx);\n\n //При изменении информации о задаче\n const handleTaskChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(newTaskValues => {\n setTask(pv => ({\n ...pv,\n ...newTaskValues\n }));\n }, [setTask]);\n\n //При добавлении события\n const handleInsertTask = async callBack => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_INSERT\",\n args: {\n SCRN: task.sCrn,\n SPREF: task.sPrefix,\n SNUMB: task.sNumber,\n STYPE: task.sType,\n SSTATUS: task.sStatus,\n SPLAN_DATE: task.dPlanDate,\n SINIT_PERSON: task.sInitClnperson,\n SCLIENT_CLIENT: task.sClntClients,\n SCLIENT_PERSON: task.sClntClnperson,\n SDESCRIPTION: task.sDescription,\n SREASON: task.sInitReason,\n CPROPS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.object2Base64XML)([Object.fromEntries(Object.entries(task.docProps)\n // eslint-disable-next-line no-unused-vars\n .filter(([_, v]) => v != ( false || \"\")))], {\n arrayNodeName: \"props\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n callBack();\n };\n\n //При исправлении события\n const handleUpdateEvent = async callBack => {\n await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_UPDATE\",\n args: {\n NCLNEVENTS: task.nRn,\n SCLIENT_CLIENT: task.sClntClients,\n SCLIENT_PERSON: task.sClntClnperson,\n SDESCRIPTION: task.sDescription,\n CPROPS: {\n // eslint-disable-next-line no-unused-vars\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.object2Base64XML)([Object.fromEntries(Object.entries(task.docProps).filter(([_, v]) => v != ( false || \"\")))], {\n arrayNodeName: \"props\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n }\n }\n });\n callBack();\n };\n\n //При считывании следующего номера события\n const handleEventNextNumbGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n //Считываем данные\n const data = await executeStored({\n stored: \"PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_NEXTNUMB_GET\",\n args: {\n SPREFIX: task.sPrefix\n }\n });\n //Если данные есть\n if (data) {\n //Устанавливаем номер\n setTask(pv => ({\n ...pv,\n sNumber: data.SEVENT_NUMB\n }));\n }\n }, [executeStored, setTask, task.sPrefix]);\n\n //Проверка заполненности всех обязательных доп. свойств\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если доп. свойства загрузились\n if (docProps.loaded) {\n //Проверяем остались ли обязательные незаполненные свойства\n let notFilled = docProps.props.some(docProp => docProp.BREQUIRE === true && !(0,_core_utils__WEBPACK_IMPORTED_MODULE_4__.hasValue)(task.docProps[docProp.SFORMATTED_ID]));\n //Если незаполненных обязательных доп. свойств не осталось - доп. свойства готовы, иначе не готовы\n setDocPropsReady(!notFilled);\n } else {\n //Доп. свойства не готовы\n setDocPropsReady(false);\n }\n }, [docProps.loaded, docProps.props, task.docProps]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !task.init && docProps.loaded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_dialog__WEBPACK_IMPORTED_MODULE_5__.P8PDialog, {\n title: task.nRn ? `Исправление события${task.nClosed ? \" [аннулировано]\" : \"\"}` : \"Добавление события\",\n fullWidth: true,\n onOk: () => taskRn ? handleUpdateEvent(onClose).then(onTasksReload) : handleInsertTask(onClose).then(onTasksReload),\n onClose: onClose ? onClose : null,\n okDisabled: taskRn ? task.updateDisabled || !editable || !docPropsReady : task.insertDisabled || !docPropsReady,\n scrollContent: false\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_task_form__WEBPACK_IMPORTED_MODULE_2__.TaskForm, {\n task: task,\n taskType: taskType,\n editable: !taskRn || editable ? true : false,\n docProps: docProps.props,\n onTaskChange: handleTaskChange,\n onEventNextNumbGet: handleEventNextNumbGet\n })));\n};\n\n//Контроль свойств - Диалог формы события\nTaskDialog.propTypes = {\n taskRn: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().number),\n taskType: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,\n editable: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),\n onTasksReload: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired,\n onClose: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/clnt_task_board/task_dialog.js?");
/***/ }),
@@ -730,7 +961,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 */ EqsPrfrm: () => (/* binding */ EqsPrfrm)\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_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layouts */ \"./app/panels/eqs_prfrm/layouts.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./filter */ \"./app/panels/eqs_prfrm/filter.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/eqs_prfrm/filter_dialog.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks */ \"./app/panels/eqs_prfrm/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//Высота меню Парус (пиксели)\nconst pxOuterMenuH = 53;\n//Высота заголовка панели (пиксели)\nconst pxPanelHeaderH = 64;\n//Минимальная ширина таблицы (пиксели)\nconst minGridW = 800;\n//Минимальная высота таблицы (пиксели)\nconst minGridH = 200;\n\n//Стили\nconst STYLES = {\n BOX_ROW: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n },\n GRID_PADDING: {\n paddingTop: 1,\n paddingBottom: 1\n },\n GRID_SIZES: (width, height) => ({\n padding: \"0px\",\n minWidth: minGridW,\n maxWidth: width * 0.975 > minGridW ? width * 0.975 : minGridW,\n minHeight: minGridH,\n maxHeight: (height - pxOuterMenuH - pxPanelHeaderH) * 0.975 > minGridH ? (height - pxOuterMenuH - pxPanelHeaderH) * 0.975 : minGridH\n })\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выполнения работ\nconst EqsPrfrm = () => {\n //Собственное состояние - таблица данных\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n groups: [],\n rows: [],\n fixedHeader: false,\n fixedColumns: 0,\n reload: false\n });\n\n //Состояние фильтра\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n isOpen: false,\n isDefault: false,\n isSetByUser: false,\n needSave: false,\n values: {\n belong: \"\",\n prodObj: \"\",\n techServ: \"\",\n respDep: \"\",\n fromMonth: 1,\n fromYear: 1990,\n toMonth: 1,\n toYear: 1990\n }\n });\n\n //Состояние ячейки заголовка даты (по раскрытию/скрытию)\n const [activeRef, setActiveRef] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n\n //Состояние актуальности ссылки на ячейку\n const [refIsDeprecated, setRidFlag] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_4__[\"ApplicationСtx\"]);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__[\"BackEndСtx\"]);\n\n //Подключение к контексту сообщений\n const {\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_5__[\"MessagingСtx\"]);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (dataGrid.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.EQUIPSRV_GRID\",\n args: {\n SBELONG: filter.values.belong,\n SPRODOBJ: filter.values.prodObj,\n STECHSERV: filter.values.techServ,\n SRESPDEP: filter.values.respDep,\n NFROMMONTH: filter.values.fromMonth,\n NFROMYEAR: filter.values.fromYear,\n NTOMONTH: filter.values.toMonth,\n NTOYEAR: filter.values.toYear\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"caption\", \"name\", \"parent\"].includes(name) ? undefined : val\n });\n let cP = 0;\n let sP = 0;\n let cF = 0;\n let sF = 0;\n let properties = [];\n if (data.XDATA_GRID.rows != null) {\n data.XDATA_GRID.rows.map(row => {\n properties = [];\n Object.entries(row).forEach(([key, value]) => properties.push({\n name: key,\n data: value\n }));\n let info2 = properties.find(element => {\n return element.name === \"SINFO2\";\n });\n if (info2 != undefined) {\n if (info2.data == \"План\") {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.DAY_NAME_REG_EXP.test(p.name)) cP = cP + 1;\n });\n } else if (info2.data == \"Факт\") {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.DAY_NAME_REG_EXP.test(p.name)) cF = cF + 1;\n });\n }\n } else {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.MONTH_NAME_REG_EXP.test(p.name)) {\n let str = p.data;\n let m = [];\n let i = 0;\n while ((m = _layouts__WEBPACK_IMPORTED_MODULE_6__.DIGITS_REG_EXP.exec(str)) != null) {\n if (i == 0) sP = sP + Number(m[0].replace(\",\", \".\"));else {\n sF = sF + Number(m[0].replace(\",\", \".\"));\n }\n i++;\n }\n }\n });\n }\n });\n }\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: [...(data.XDATA_GRID.rows || [])],\n groups: [...(data.XDATA_GRID.groups || [])],\n dataLoaded: true,\n reload: false\n }));\n }\n }, [dataGrid.reload, filter, executeStored]);\n\n //Загрузка значений фильтра по умолчанию\n const loadDefaultFilter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.GET_DEFAULT_FP\",\n respArg: \"COUT\"\n });\n setFilter(pv => ({\n ...pv,\n values: {\n ...pv.values,\n belong: data.JURPERS,\n fromMonth: 1,\n fromYear: data.YEAR,\n toMonth: 12,\n toYear: data.YEAR\n },\n isDefault: true\n }));\n }, [executeStored]);\n\n //Загрузка значений фильтра из локального хранилища браузера\n const loadLocalFilter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n let vs = filter.values;\n Object.keys(vs).map(function (k) {\n vs[k] = k == \"fromMonth\" || k == \"fromYear\" || k == \"toMonth\" || k == \"toYear\" ? Number(localStorage.getItem(k)) : localStorage.getItem(k);\n });\n setFilter(pv => ({\n ...pv,\n isDefault: true,\n values: {\n ...vs\n }\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //Отбор документа (ТОиР или Ремонтных ведомостей) по ячейке даты\n const showEquipSrv = async ({\n date,\n workType,\n info\n }) => {\n const [techName, servKind] = info.split(\"_\");\n let type;\n if (workType == \"План\") type = 0;else type = 1;\n let [year, month, day] = date.substring(1).split(\"_\");\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.SELECT_EQUIPSRV\",\n args: {\n SBELONG: filter.values.belong,\n SPRODOBJ: filter.values.prodObj,\n STECHSERV: filter.values.techServ ? filter.values.techServ : null,\n SRESPDEP: filter.values.respDep ? filter.values.respDep : null,\n STECHNAME: techName,\n SSRVKIND: servKind,\n NYEAR: Number(year),\n NMONTH: Number(month),\n NDAY: day ? Number(day) : null,\n NWORKTYPE: type\n }\n });\n if (data.NIDENT) {\n if (type == 0) pOnlineShowUnit({\n unitCode: \"EquipTechServices\",\n inputParameters: [{\n name: \"in_Ident\",\n value: data.NIDENT\n }]\n });else pOnlineShowUnit({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_Ident\",\n value: data.NIDENT\n }]\n });\n } else showMsgErr(_app_text__WEBPACK_IMPORTED_MODULE_7__.TEXTS.NO_DATA_FOUND);\n };\n\n //Показать/скрыть фильтр\n const setFilterOpen = isOpen => setFilter(pv => ({\n ...pv,\n isOpen\n }));\n\n //Установить значение фильтра\n const setFilterValues = values => setFilter(pv => ({\n ...pv,\n isSetByUser: true,\n needSave: true,\n values: {\n ...values\n }\n }));\n\n //Отработка события скрытия/раскрытия ячейки даты\n const handleClick = (e, ref) => {\n const curCell = ref.current;\n if (e.target.type == \"button\" || e.target.offsetParent.type == \"button\") {\n setActiveRef(curCell);\n setRidFlag(false);\n }\n };\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [loadData, dataGrid.reload]);\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.isSetByUser) setDataGrid({\n reload: true\n });\n }, [filter.isSetByUser, filter.values.belong, filter.values.prodObj, filter.values.techServ, filter.values.respDep, filter.values.fromMonth, filter.values.fromYear, filter.values.toMonth, filter.values.toYear]);\n\n //При нажатии скрытии/раскрытии ячейки даты, фокус на неё\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!refIsDeprecated) {\n if (activeRef) {\n var cellRect = activeRef.getBoundingClientRect();\n window.scrollTo(window.scrollX + cellRect.left + activeRef.clientWidth / 2 - window.innerWidth / 2, 0);\n setRidFlag(true);\n }\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refIsDeprecated]);\n\n //При закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n filter.needSave ? window.addEventListener(\"beforeunload\", function () {\n Object.keys(filter.values).map(function (k) {\n localStorage.setItem(k, filter.values[k]);\n });\n }) : null;\n }, [filter.needSave, filter.values]);\n\n //При загрузке фильтра по умолчанию\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.isDefault) setFilterOpen(true);\n }, [filter.isDefault]);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n localStorage.getItem(\"belong\") ? loadLocalFilter() : loadDefaultFilter();\n }, [loadDefaultFilter, loadLocalFilter]);\n\n //При открытии диалога фильтра\n const handleFilterClick = () => setFilterOpen(true);\n\n //При изменении фильтра в диалоге\n const handleFilterOk = filter => {\n setFilterValues(filter);\n setFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setFilterOpen(false);\n\n //Состояние ширины и высоты рабочей области окна\n const [width, height] = (0,_hooks__WEBPACK_IMPORTED_MODULE_10__.useWindowResize)();\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, filter.isOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_9__.FilterDialog, {\n initial: filter.values,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_8__.Filter, {\n filter: filter.values,\n onClick: handleFilterClick\n }), dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: {\n ...STYLES.GRID_PADDING,\n ...STYLES.BOX_ROW\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n elevation: 6,\n style: {\n ...STYLES.GRID_SIZES(width, height)\n }\n },\n columnsDef: dataGrid.columnsDef,\n groups: dataGrid.groups,\n rows: dataGrid.rows,\n fixedHeader: dataGrid.fixedHeader,\n fixedColumns: dataGrid.fixedColumns,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n reloading: dataGrid.reload,\n headCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.headCellRender)({\n ...prms\n }, handleClick),\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.dataCellRender)({\n ...prms\n }, width * 0.2, showEquipSrv),\n groupCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.groupCellRender)({\n ...prms\n }),\n showCellRightBorder: true\n }))) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/eqs_prfrm/eqs_prfrm.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EqsPrfrm: () => (/* binding */ EqsPrfrm)\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_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _layouts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layouts */ \"./app/panels/eqs_prfrm/layouts.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./filter */ \"./app/panels/eqs_prfrm/filter.js\");\n/* harmony import */ var _filter_dialog__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./filter_dialog */ \"./app/panels/eqs_prfrm/filter_dialog.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks */ \"./app/panels/eqs_prfrm/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//Высота меню Парус (пиксели)\nconst pxOuterMenuH = 53;\n//Высота заголовка панели (пиксели)\nconst pxPanelHeaderH = 64;\n//Минимальная ширина таблицы (пиксели)\nconst minGridW = 800;\n//Минимальная высота таблицы (пиксели)\nconst minGridH = 200;\n\n//Стили\nconst STYLES = {\n BOX_ROW: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n },\n GRID_PADDING: {\n paddingTop: 1,\n paddingBottom: 1\n },\n GRID_SIZES: (width, height) => ({\n padding: \"0px\",\n minWidth: minGridW,\n maxWidth: width * 0.975 > minGridW ? width * 0.975 : minGridW,\n minHeight: minGridH,\n maxHeight: (height - pxOuterMenuH - pxPanelHeaderH) * 0.975 > minGridH ? (height - pxOuterMenuH - pxPanelHeaderH) * 0.975 : minGridH\n })\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выполнения работ\nconst EqsPrfrm = () => {\n //Собственное состояние - таблица данных\n const [dataGrid, setDataGrid] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n groups: [],\n rows: [],\n fixedHeader: false,\n fixedColumns: 0,\n reload: false\n });\n\n //Состояние фильтра\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n isOpen: false,\n isDefault: false,\n isSetByUser: false,\n needSave: false,\n values: {\n belong: \"\",\n prodObj: \"\",\n techServ: \"\",\n respDep: \"\",\n fromMonth: 1,\n fromYear: 1990,\n toMonth: 1,\n toYear: 1990\n }\n });\n\n //Состояние ячейки заголовка даты (по раскрытию/скрытию)\n const [activeRef, setActiveRef] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n\n //Состояние актуальности ссылки на ячейку\n const [refIsDeprecated, setRidFlag] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_4__.ApplicationCtx);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__.BackEndCtx);\n\n //Подключение к контексту сообщений\n const {\n showMsgErr\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_5__.MessagingCtx);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (dataGrid.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.EQUIPSRV_GRID\",\n args: {\n SBELONG: filter.values.belong,\n SPRODOBJ: filter.values.prodObj,\n STECHSERV: filter.values.techServ,\n SRESPDEP: filter.values.respDep,\n NFROMMONTH: filter.values.fromMonth,\n NFROMYEAR: filter.values.fromYear,\n NTOMONTH: filter.values.toMonth,\n NTOYEAR: filter.values.toYear\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"caption\", \"name\", \"parent\"].includes(name) ? undefined : val\n });\n let cP = 0;\n let sP = 0;\n let cF = 0;\n let sF = 0;\n let properties = [];\n if (data.XDATA_GRID.rows != null) {\n data.XDATA_GRID.rows.map(row => {\n properties = [];\n Object.entries(row).forEach(([key, value]) => properties.push({\n name: key,\n data: value\n }));\n let info2 = properties.find(element => {\n return element.name === \"SINFO2\";\n });\n if (info2 != undefined) {\n if (info2.data == \"План\") {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.DAY_NAME_REG_EXP.test(p.name)) cP = cP + 1;\n });\n } else if (info2.data == \"Факт\") {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.DAY_NAME_REG_EXP.test(p.name)) cF = cF + 1;\n });\n }\n } else {\n properties.map(p => {\n if (_layouts__WEBPACK_IMPORTED_MODULE_6__.MONTH_NAME_REG_EXP.test(p.name)) {\n let str = p.data;\n let m = [];\n let i = 0;\n while ((m = _layouts__WEBPACK_IMPORTED_MODULE_6__.DIGITS_REG_EXP.exec(str)) != null) {\n if (i == 0) sP = sP + Number(m[0].replace(\",\", \".\"));else {\n sF = sF + Number(m[0].replace(\",\", \".\"));\n }\n i++;\n }\n }\n });\n }\n });\n }\n setDataGrid(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: [...(data.XDATA_GRID.rows || [])],\n groups: [...(data.XDATA_GRID.groups || [])],\n dataLoaded: true,\n reload: false\n }));\n }\n }, [dataGrid.reload, filter, executeStored]);\n\n //Загрузка значений фильтра по умолчанию\n const loadDefaultFilter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.GET_DEFAULT_FP\",\n respArg: \"COUT\"\n });\n setFilter(pv => ({\n ...pv,\n values: {\n ...pv.values,\n belong: data.JURPERS,\n fromMonth: 1,\n fromYear: data.YEAR,\n toMonth: 12,\n toYear: data.YEAR\n },\n isDefault: true\n }));\n }, [executeStored]);\n\n //Загрузка значений фильтра из локального хранилища браузера\n const loadLocalFilter = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n let vs = filter.values;\n Object.keys(vs).map(function (k) {\n vs[k] = k == \"fromMonth\" || k == \"fromYear\" || k == \"toMonth\" || k == \"toYear\" ? Number(localStorage.getItem(k)) : localStorage.getItem(k);\n });\n setFilter(pv => ({\n ...pv,\n isDefault: true,\n values: {\n ...vs\n }\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //Отбор документа (ТОиР или Ремонтных ведомостей) по ячейке даты\n const showEquipSrv = async ({\n date,\n workType,\n info\n }) => {\n const [techName, servKind] = info.split(\"_\");\n let type;\n if (workType == \"План\") type = 0;else type = 1;\n let [year, month, day] = date.substring(1).split(\"_\");\n const data = await executeStored({\n stored: \"PKG_P8PANELS_EQUIPSRV.SELECT_EQUIPSRV\",\n args: {\n SBELONG: filter.values.belong,\n SPRODOBJ: filter.values.prodObj,\n STECHSERV: filter.values.techServ ? filter.values.techServ : null,\n SRESPDEP: filter.values.respDep ? filter.values.respDep : null,\n STECHNAME: techName,\n SSRVKIND: servKind,\n NYEAR: Number(year),\n NMONTH: Number(month),\n NDAY: day ? Number(day) : null,\n NWORKTYPE: type\n }\n });\n if (data.NIDENT) {\n if (type == 0) pOnlineShowUnit({\n unitCode: \"EquipTechServices\",\n inputParameters: [{\n name: \"in_Ident\",\n value: data.NIDENT\n }]\n });else pOnlineShowUnit({\n unitCode: \"EquipRepairSheets\",\n inputParameters: [{\n name: \"in_Ident\",\n value: data.NIDENT\n }]\n });\n } else showMsgErr(_app_text__WEBPACK_IMPORTED_MODULE_7__.TEXTS.NO_DATA_FOUND);\n };\n\n //Показать/скрыть фильтр\n const setFilterOpen = isOpen => setFilter(pv => ({\n ...pv,\n isOpen\n }));\n\n //Установить значение фильтра\n const setFilterValues = values => setFilter(pv => ({\n ...pv,\n isSetByUser: true,\n needSave: true,\n values: {\n ...values\n }\n }));\n\n //Отработка события скрытия/раскрытия ячейки даты\n const handleClick = (e, ref) => {\n const curCell = ref.current;\n if (e.target.type == \"button\" || e.target.offsetParent.type == \"button\") {\n setActiveRef(curCell);\n setRidFlag(false);\n }\n };\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [loadData, dataGrid.reload]);\n\n //При изменении фильтра\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.isSetByUser) setDataGrid({\n reload: true\n });\n }, [filter.isSetByUser, filter.values.belong, filter.values.prodObj, filter.values.techServ, filter.values.respDep, filter.values.fromMonth, filter.values.fromYear, filter.values.toMonth, filter.values.toYear]);\n\n //При нажатии скрытии/раскрытии ячейки даты, фокус на неё\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!refIsDeprecated) {\n if (activeRef) {\n var cellRect = activeRef.getBoundingClientRect();\n window.scrollTo(window.scrollX + cellRect.left + activeRef.clientWidth / 2 - window.innerWidth / 2, 0);\n setRidFlag(true);\n }\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refIsDeprecated]);\n\n //При закрытии панели\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n filter.needSave ? window.addEventListener(\"beforeunload\", function () {\n Object.keys(filter.values).map(function (k) {\n localStorage.setItem(k, filter.values[k]);\n });\n }) : null;\n }, [filter.needSave, filter.values]);\n\n //При загрузке фильтра по умолчанию\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.isDefault) setFilterOpen(true);\n }, [filter.isDefault]);\n\n //При подключении к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n localStorage.getItem(\"belong\") ? loadLocalFilter() : loadDefaultFilter();\n }, [loadDefaultFilter, loadLocalFilter]);\n\n //При открытии диалога фильтра\n const handleFilterClick = () => setFilterOpen(true);\n\n //При изменении фильтра в диалоге\n const handleFilterOk = filter => {\n setFilterValues(filter);\n setFilterOpen(false);\n };\n\n //При закрытии диалога фильтра\n const handleFilterCancel = () => setFilterOpen(false);\n\n //Состояние ширины и высоты рабочей области окна\n const [width, height] = (0,_hooks__WEBPACK_IMPORTED_MODULE_10__.useWindowResize)();\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, filter.isOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_dialog__WEBPACK_IMPORTED_MODULE_9__.FilterDialog, {\n initial: filter.values,\n onOk: handleFilterOk,\n onCancel: handleFilterCancel\n }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter__WEBPACK_IMPORTED_MODULE_8__.Filter, {\n filter: filter.values,\n onClick: handleFilterClick\n }), dataGrid.dataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: {\n ...STYLES.GRID_PADDING,\n ...STYLES.BOX_ROW\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_GRID_CONFIG_PROPS, {\n containerComponentProps: {\n elevation: 6,\n style: {\n ...STYLES.GRID_SIZES(width, height)\n }\n },\n columnsDef: dataGrid.columnsDef,\n groups: dataGrid.groups,\n rows: dataGrid.rows,\n fixedHeader: dataGrid.fixedHeader,\n fixedColumns: dataGrid.fixedColumns,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n reloading: dataGrid.reload,\n headCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.headCellRender)({\n ...prms\n }, handleClick),\n dataCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.dataCellRender)({\n ...prms\n }, width * 0.2, showEquipSrv),\n groupCellRender: prms => (0,_layouts__WEBPACK_IMPORTED_MODULE_6__.groupCellRender)({\n ...prms\n }),\n showCellRightBorder: true\n }))) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/eqs_prfrm/eqs_prfrm.js?");
/***/ }),
@@ -752,7 +983,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_12__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);\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/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _filter_input_field__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter_input_field */ \"./app/panels/eqs_prfrm/filter_input_field.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.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 MONTH_ARRAY = [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"];\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"center\"\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 buildYears = () => {\n const res = [1990];\n const today = new Date();\n for (let i = res[0] + 1; i <= today.getFullYear(); i++) res.push(i);\n return res;\n};\n\n//Выбор принадлежности\nconst selectJuridicalPersons = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"JuridicalPersons\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//Выбор производственного объекта\nconst selectEquipConfiguration = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"EquipConfiguration\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//Выбор подразделения\nconst selectInsDepartment = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"INS_DEPARTMENT\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\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 pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__[\"ApplicationСtx\"]);\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n belong: \"\",\n prodObj: \"\",\n techServ: \"\",\n respDep: \"\",\n fromMonth: \"\",\n fromYear: \"\",\n toMonth: \"\",\n toYear: \"\"\n });\n };\n\n //При закрытии диалога с изменением фильтра\n const handleOK = () => onOk ? onOk(filter) : null;\n\n //При изменении значения элемента\n const handleFilterItemChange = (item, value) => setFilter(pv => ({\n ...pv,\n [item]: value\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 component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"belong\",\n elementValue: filter.belong,\n labelText: \"\\u041F\\u0440\\u0438\\u043D\\u0430\\u0434\\u043B\\u0435\\u0436\\u043D\\u043E\\u0441\\u0442\\u044C\",\n dictionary: callBack => selectJuridicalPersons(pOnlineShowDictionary, callBack),\n required: true,\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"prodObj\",\n elementValue: filter.prodObj,\n labelText: \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043E\\u0431\\u044A\\u0435\\u043A\\u0442\",\n dictionary: callBack => selectEquipConfiguration(pOnlineShowDictionary, callBack),\n required: true,\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"techServ\",\n elementValue: filter.techServ,\n labelText: \"\\u0422\\u0435\\u0445\\u043D\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F \\u0441\\u043B\\u0443\\u0436\\u0431\\u0430\",\n dictionary: callBack => selectInsDepartment(pOnlineShowDictionary, callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"respDep\",\n elementValue: filter.respDep,\n labelText: \"\\u041E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\",\n dictionary: callBack => selectInsDepartment(pOnlineShowDictionary, callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n container: true,\n spacing: 2,\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n textAlign: \"left\",\n item: true,\n xs: 4\n }, \"\\u041D\\u0430\\u0447\\u0430\\u043B\\u043E \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"fromMonth\",\n elementValue: filter.fromMonth,\n labelText: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n required: true,\n items: MONTH_ARRAY.map((item, i) => ({\n value: i + 1,\n caption: item\n })),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"fromYear\",\n elementValue: filter.fromYear,\n labelText: \"\\u0413\\u043E\\u0434\",\n required: true,\n items: buildYears().map(item => ({\n value: item,\n caption: item\n })),\n onChange: handleFilterItemChange\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n container: true,\n spacing: 2,\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n textAlign: \"left\",\n item: true,\n xs: 4\n }, \"\\u041A\\u043E\\u043D\\u0435\\u0446 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"toMonth\",\n elementValue: filter.toMonth,\n labelText: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n required: true,\n items: MONTH_ARRAY.map((item, i) => ({\n value: i + 1,\n caption: item\n })),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"toYear\",\n elementValue: filter.toYear,\n labelText: \"\\u0413\\u043E\\u0434\",\n required: true,\n items: buildYears().map(item => ({\n value: item,\n caption: item\n })),\n onChange: handleFilterItemChange\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n variant: \"text\",\n disabled: filter.belong && filter.prodObj && filter.fromMonth && filter.fromYear && filter.toMonth && filter.toYear ? false : true,\n onClick: handleOK\n }, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"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_11__[\"default\"], {\n variant: \"text\",\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().object).isRequired,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/eqs_prfrm/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_12__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);\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/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _filter_input_field__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter_input_field */ \"./app/panels/eqs_prfrm/filter_input_field.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.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 MONTH_ARRAY = [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"];\n\n//Стили\nconst STYLES = {\n DIALOG_ACTIONS: {\n justifyContent: \"center\"\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 buildYears = () => {\n const res = [1990];\n const today = new Date();\n for (let i = res[0] + 1; i <= today.getFullYear(); i++) res.push(i);\n return res;\n};\n\n//Выбор принадлежности\nconst selectJuridicalPersons = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"JuridicalPersons\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//Выбор производственного объекта\nconst selectEquipConfiguration = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"EquipConfiguration\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//Выбор подразделения\nconst selectInsDepartment = (showDictionary, callBack) => {\n showDictionary({\n unitCode: \"INS_DEPARTMENT\",\n callBack: res => res.success === true ? callBack(res.outParameters.out_CODE) : callBack(null)\n });\n};\n\n//---------------\n//Тело компонента\n//---------------\n\n//Диалоговое окно фильтра отбора\nconst FilterDialog = ({\n initial,\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 pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__.ApplicationCtx);\n\n //При закрытии диалога без изменения фильтра\n const handleCancel = () => onCancel ? onCancel() : null;\n\n //При очистке фильтра\n const handleClear = () => {\n setFilter({\n belong: \"\",\n prodObj: \"\",\n techServ: \"\",\n respDep: \"\",\n fromMonth: \"\",\n fromYear: \"\",\n toMonth: \"\",\n toYear: \"\"\n });\n };\n\n //При закрытии диалога с изменением фильтра\n const handleOK = () => onOk ? onOk(filter) : null;\n\n //При изменении значения элемента\n const handleFilterItemChange = (item, value) => setFilter(pv => ({\n ...pv,\n [item]: value\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 component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"belong\",\n elementValue: filter.belong,\n labelText: \"\\u041F\\u0440\\u0438\\u043D\\u0430\\u0434\\u043B\\u0435\\u0436\\u043D\\u043E\\u0441\\u0442\\u044C\",\n dictionary: callBack => selectJuridicalPersons(pOnlineShowDictionary, callBack),\n required: true,\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"prodObj\",\n elementValue: filter.prodObj,\n labelText: \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043E\\u0431\\u044A\\u0435\\u043A\\u0442\",\n dictionary: callBack => selectEquipConfiguration(pOnlineShowDictionary, callBack),\n required: true,\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"techServ\",\n elementValue: filter.techServ,\n labelText: \"\\u0422\\u0435\\u0445\\u043D\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F \\u0441\\u043B\\u0443\\u0436\\u0431\\u0430\",\n dictionary: callBack => selectInsDepartment(pOnlineShowDictionary, callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"respDep\",\n elementValue: filter.respDep,\n labelText: \"\\u041E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\",\n dictionary: callBack => selectInsDepartment(pOnlineShowDictionary, callBack),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n container: true,\n spacing: 2,\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n textAlign: \"left\",\n item: true,\n xs: 4\n }, \"\\u041D\\u0430\\u0447\\u0430\\u043B\\u043E \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"fromMonth\",\n elementValue: filter.fromMonth,\n labelText: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n required: true,\n items: MONTH_ARRAY.map((item, i) => ({\n value: i + 1,\n caption: item\n })),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"fromYear\",\n elementValue: filter.fromYear,\n labelText: \"\\u0413\\u043E\\u0434\",\n required: true,\n items: buildYears().map(item => ({\n value: item,\n caption: item\n })),\n onChange: handleFilterItemChange\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n component: \"section\",\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n container: true,\n spacing: 2,\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n textAlign: \"left\",\n item: true,\n xs: 4\n }, \"\\u041A\\u043E\\u043D\\u0435\\u0446 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"toMonth\",\n elementValue: filter.toMonth,\n labelText: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n required: true,\n items: MONTH_ARRAY.map((item, i) => ({\n value: i + 1,\n caption: item\n })),\n onChange: handleFilterItemChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n item: true,\n xs: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_filter_input_field__WEBPACK_IMPORTED_MODULE_1__.FilterInputField, {\n elementCode: \"toYear\",\n elementValue: filter.toYear,\n labelText: \"\\u0413\\u043E\\u0434\",\n required: true,\n items: buildYears().map(item => ({\n value: item,\n caption: item\n })),\n onChange: handleFilterItemChange\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n sx: STYLES.DIALOG_ACTIONS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n variant: \"text\",\n disabled: filter.belong && filter.prodObj && filter.fromMonth && filter.fromYear && filter.toMonth && filter.toYear ? false : true,\n onClick: handleOK\n }, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"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_11__[\"default\"], {\n variant: \"text\",\n onClick: handleCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\"))));\n};\n\n//Контроль свойств компонента - Диалоговое окно фильтра отбора\nFilterDialog.propTypes = {\n initial: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().object).isRequired,\n onOk: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func),\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func)\n};\n\n//--------------------\n//Интерфейс компонента\n//--------------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/eqs_prfrm/filter_dialog.js?");
/***/ }),
@@ -851,7 +1082,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 */ useCostProductComposition: () => (/* binding */ useCostProductComposition),\n/* harmony export */ useFilteredPlanCtlgs: () => (/* binding */ useFilteredPlanCtlgs),\n/* harmony export */ useMechRecAssemblyMon: () => (/* binding */ useMechRecAssemblyMon),\n/* harmony export */ useProductDetailsTable: () => (/* binding */ useProductDetailsTable)\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 DATA_GRID_PAGE_SIZE = 5;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор каталогов по поисковой фразе и наличию планов\nconst useFilteredPlanCtlgs = (planCtlgs, filter) => {\n const filteredPlanCtlgs = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return planCtlgs.filter(catalog => catalog.SNAME.toString().toLowerCase().includes(filter.ctlgName) && (filter.haveDocs ? catalog.NCOUNT_DOCS > 0 : catalog.NCOUNT_DOCS >= 0));\n }, [planCtlgs, filter]);\n return filteredPlanCtlgs;\n};\n\n//Хук для основной таблицы панели\nconst useMechRecAssemblyMon = () => {\n //Собственное состояние\n let [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n planCtlgs: [],\n planCtlgsLoaded: false,\n selectedPlanCtlg: {},\n planSpecs: [],\n planSpecsLoaded: false,\n selectedPlanSpec: {}\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 initPlanCtlgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (!state.init) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_AM_CTLG_INIT\",\n args: {},\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLAN_CRNS\"\n });\n setState(pv => ({\n ...pv,\n init: true,\n planCtlgs: [...(data?.XFCPRODPLAN_CRNS || [])],\n planCtlgsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.init, executeStored]);\n\n //Получение информации о планах каталога\n const loadPlans = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async NCRN => {\n if (NCRN) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_GET\",\n args: {\n NCRN: NCRN\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLAN_INFO\"\n });\n setState(pv => ({\n ...pv,\n init: true,\n planSpecs: [...(data?.XFCPRODPLAN_INFO || [])],\n planSpecsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [executeStored]);\n\n //Выбор каталога планов\n const selectPlanCtlg = planCtlg => {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: {\n ...planCtlg\n },\n selectedPlanSpec: {},\n showPlanList: false\n }));\n };\n\n //Сброс выбора каталога планов\n const unselectPlanCtlg = () => setState(pv => ({\n ...pv,\n selectedPlanCtlg: {},\n selectedPlanSpec: {},\n showPlanList: false\n }));\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n initPlanCtlgs();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При изменении каталога\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если каталог выбран\n if (state.selectedPlanCtlg) {\n loadPlans(state.selectedPlanCtlg.NRN);\n } else {\n setState(pv => ({\n ...pv,\n planSpecs: [],\n planSpecsLoaded: false\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedPlanCtlg]);\n return [state, setState, selectPlanCtlg, unselectPlanCtlg];\n};\n\n//Хук для информации по производственным составам\nconst useCostProductComposition = planSpec => {\n //Собственное состояние\n let [costProductComposition, setCostProductComposition] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n showPlanList: false,\n products: [],\n productsLoaded: false,\n model: null,\n selectedProduct: null\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODCMP_DETAILS_GET\",\n args: {\n NFCPRODPLANSP: planSpec\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODCMP\"\n });\n setCostProductComposition(pv => ({\n ...pv,\n products: [...(data?.XFCPRODCMP || [])],\n productsLoaded: true,\n model: data?.BMODEL,\n selectedProduct: null\n }));\n };\n if (planSpec) loadData();\n }, [planSpec, executeStored]);\n\n //Вернём данные\n return [costProductComposition, setCostProductComposition];\n};\n\n//Хук для таблицы детализации изделия\nconst useProductDetailsTable = (planSpec, product, orders, pageNumber, stored) => {\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - таблица данных\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n columnsDef: [],\n rows: [],\n morePages: true\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n args: {\n NFCPRODPLANSP: planSpec,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: pageNumber == 1 ? 1 : 0\n },\n respArg: \"COUT\",\n loader: false\n });\n setData(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n morePages: DATA_GRID_PAGE_SIZE == 0 ? false : (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,\n init: true\n }));\n } finally {\n setLoading(false);\n }\n };\n if (planSpec && product) loadData();\n }, [planSpec, product, orders, pageNumber, stored, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //Вернём данные\n return {\n data,\n isLoading\n };\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_assembly_mon/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostProductComposition: () => (/* binding */ useCostProductComposition),\n/* harmony export */ useFilteredPlanCtlgs: () => (/* binding */ useFilteredPlanCtlgs),\n/* harmony export */ useMechRecAssemblyMon: () => (/* binding */ useMechRecAssemblyMon),\n/* harmony export */ useProductDetailsTable: () => (/* binding */ useProductDetailsTable)\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 DATA_GRID_PAGE_SIZE = 5;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор каталогов по поисковой фразе и наличию планов\nconst useFilteredPlanCtlgs = (planCtlgs, filter) => {\n const filteredPlanCtlgs = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return planCtlgs.filter(catalog => catalog.SNAME.toString().toLowerCase().includes(filter.ctlgName) && (filter.haveDocs ? catalog.NCOUNT_DOCS > 0 : catalog.NCOUNT_DOCS >= 0));\n }, [planCtlgs, filter]);\n return filteredPlanCtlgs;\n};\n\n//Хук для основной таблицы панели\nconst useMechRecAssemblyMon = () => {\n //Собственное состояние\n let [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n planCtlgs: [],\n planCtlgsLoaded: false,\n selectedPlanCtlg: {},\n planSpecs: [],\n planSpecsLoaded: false,\n selectedPlanSpec: {}\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Инициализация каталогов планов\n const initPlanCtlgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (!state.init) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_AM_CTLG_INIT\",\n args: {},\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLAN_CRNS\"\n });\n setState(pv => ({\n ...pv,\n init: true,\n planCtlgs: [...(data?.XFCPRODPLAN_CRNS || [])],\n planCtlgsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.init, executeStored]);\n\n //Получение информации о планах каталога\n const loadPlans = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async NCRN => {\n if (NCRN) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_GET\",\n args: {\n NCRN: NCRN\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLAN_INFO\"\n });\n setState(pv => ({\n ...pv,\n init: true,\n planSpecs: [...(data?.XFCPRODPLAN_INFO || [])],\n planSpecsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [executeStored]);\n\n //Выбор каталога планов\n const selectPlanCtlg = planCtlg => {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: {\n ...planCtlg\n },\n selectedPlanSpec: {},\n showPlanList: false\n }));\n };\n\n //Сброс выбора каталога планов\n const unselectPlanCtlg = () => setState(pv => ({\n ...pv,\n selectedPlanCtlg: {},\n selectedPlanSpec: {},\n showPlanList: false\n }));\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n initPlanCtlgs();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При изменении каталога\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если каталог выбран\n if (state.selectedPlanCtlg) {\n loadPlans(state.selectedPlanCtlg.NRN);\n } else {\n setState(pv => ({\n ...pv,\n planSpecs: [],\n planSpecsLoaded: false\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedPlanCtlg]);\n return [state, setState, selectPlanCtlg, unselectPlanCtlg];\n};\n\n//Хук для информации по производственным составам\nconst useCostProductComposition = planSpec => {\n //Собственное состояние\n let [costProductComposition, setCostProductComposition] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n showPlanList: false,\n products: [],\n productsLoaded: false,\n model: null,\n selectedProduct: null\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODCMP_DETAILS_GET\",\n args: {\n NFCPRODPLANSP: planSpec\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODCMP\"\n });\n setCostProductComposition(pv => ({\n ...pv,\n products: [...(data?.XFCPRODCMP || [])],\n productsLoaded: true,\n model: data?.BMODEL,\n selectedProduct: null\n }));\n };\n if (planSpec) loadData();\n }, [planSpec, executeStored]);\n\n //Вернём данные\n return [costProductComposition, setCostProductComposition];\n};\n\n//Хук для таблицы детализации изделия\nconst useProductDetailsTable = (planSpec, product, orders, pageNumber, stored) => {\n //Собственное состояние - флаг загрузки\n const [isLoading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - таблица данных\n const [data, setData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n columnsDef: [],\n rows: [],\n morePages: true\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__.BackEndCtx);\n\n //Загрузка данных при изменении зависимостей\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n try {\n setLoading(true);\n const data = await executeStored({\n stored,\n args: {\n NFCPRODPLANSP: planSpec,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: pageNumber == 1 ? 1 : 0\n },\n respArg: \"COUT\",\n loader: false\n });\n setData(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n columnsDef: data.XDATA_GRID.columnsDef ? [...data.XDATA_GRID.columnsDef] : pv.columnsDef,\n rows: pageNumber == 1 ? [...(data.XDATA_GRID.rows || [])] : [...pv.rows, ...(data.XDATA_GRID.rows || [])],\n morePages: DATA_GRID_PAGE_SIZE == 0 ? false : (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,\n init: true\n }));\n } finally {\n setLoading(false);\n }\n };\n if (planSpec && product) loadData();\n }, [planSpec, product, orders, pageNumber, stored, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //Вернём данные\n return {\n data,\n isLoading\n };\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_assembly_mon/hooks.js?");
/***/ }),
@@ -906,7 +1137,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 */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useEquipConfiguration: () => (/* binding */ useEquipConfiguration),\n/* harmony export */ useFilteredFcjobs: () => (/* binding */ useFilteredFcjobs)\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 _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __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//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор сменных заданий по поисковой фразе\nconst useFilteredFcjobs = (jobs, filter) => {\n const filteredJobs = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return jobs.filter(catalog => catalog.SDOC_INFO.toString().toLowerCase().includes(filter.jobName));\n }, [jobs, filter]);\n return filteredJobs;\n};\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showJobList: false,\n jobList: [],\n jobListLoaded: false,\n selectedJob: {},\n fromAction: 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 const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initPlans = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_INIT\",\n args: {\n NFCJOBS: fcJob ? parseInt(fcJob) : null\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCJOBS\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobList: [...(data.XFCJOBS || [])],\n selectedJob: data.XFCJOBS_SELECTED ? data.XFCJOBS_SELECTED : {},\n jobListLoaded: true,\n fromAction: fcJob ? true : false\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем планы\n initPlans(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\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 issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n SFCJOBSSP_LIST: prms.SFCJOBSSP_LIST\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.selectedRow, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для таблицы рабочих центров\nconst useEquipConfiguration = (task, fromAction) => {\n //Собственное состояние - таблица данных\n const [equipConfiguration, setEquipConfiguration] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\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 includeEquipConfiguration = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_INC_EQCONFIG\",\n args: {\n NEQCONFIG: prms.NEQCONFIG,\n NFCJOBSSP: prms.NFCJOBSSP,\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //Исключение станка из строки сменного задания\n const excludeEquipConfiguration = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_EXC_EQCONFIG\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (equipConfiguration.dataLoaded && equipConfiguration.task !== task) {\n setEquipConfiguration(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n if (equipConfiguration.reload) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.EQCONFIG_DG_GET\",\n args: {\n NFCJOBS: task,\n NFROM_ACTION: fromAction ? 1 : 0,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(equipConfiguration.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: equipConfiguration.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: equipConfiguration.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setEquipConfiguration(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, equipConfiguration.dataLoaded, equipConfiguration.orders, equipConfiguration.pageNumber, equipConfiguration.reload, equipConfiguration.selectedRow, equipConfiguration.task, task, executeStored, fromAction]);\n return [equipConfiguration, setEquipConfiguration, includeEquipConfiguration, excludeEquipConfiguration];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useEquipConfiguration: () => (/* binding */ useEquipConfiguration),\n/* harmony export */ useFilteredFcjobs: () => (/* binding */ useFilteredFcjobs)\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 _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __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//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор сменных заданий по поисковой фразе\nconst useFilteredFcjobs = (jobs, filter) => {\n const filteredJobs = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return jobs.filter(catalog => catalog.SDOC_INFO.toString().toLowerCase().includes(filter.jobName));\n }, [jobs, filter]);\n return filteredJobs;\n};\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showJobList: false,\n jobList: [],\n jobListLoaded: false,\n selectedJob: {},\n fromAction: false\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n //Подключение к контексту навигации\n const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initPlans = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_INIT\",\n args: {\n NFCJOBS: fcJob ? parseInt(fcJob) : null\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCJOBS\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobList: [...(data.XFCJOBS || [])],\n selectedJob: data.XFCJOBS_SELECTED ? data.XFCJOBS_SELECTED : {},\n jobListLoaded: true,\n fromAction: fcJob ? true : false\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем планы\n initPlans(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Выдача задания\n const issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n SFCJOBSSP_LIST: prms.SFCJOBSSP_LIST\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.selectedRow, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для таблицы рабочих центров\nconst useEquipConfiguration = (task, fromAction) => {\n //Собственное состояние - таблица данных\n const [equipConfiguration, setEquipConfiguration] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Включение станка в строку сменного задания\n const includeEquipConfiguration = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_INC_EQCONFIG\",\n args: {\n NEQCONFIG: prms.NEQCONFIG,\n NFCJOBSSP: prms.NFCJOBSSP,\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //Исключение станка из строки сменного задания\n const excludeEquipConfiguration = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_EXC_EQCONFIG\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (equipConfiguration.dataLoaded && equipConfiguration.task !== task) {\n setEquipConfiguration(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n if (equipConfiguration.reload) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.EQCONFIG_DG_GET\",\n args: {\n NFCJOBS: task,\n NFROM_ACTION: fromAction ? 1 : 0,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(equipConfiguration.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: equipConfiguration.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: equipConfiguration.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setEquipConfiguration(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, equipConfiguration.dataLoaded, equipConfiguration.orders, equipConfiguration.pageNumber, equipConfiguration.reload, equipConfiguration.selectedRow, equipConfiguration.task, task, executeStored, fromAction]);\n return [equipConfiguration, setEquipConfiguration, includeEquipConfiguration, excludeEquipConfiguration];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage/hooks.js?");
/***/ }),
@@ -928,7 +1159,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 */ MAIN_HEADER_HEIGHT: () => (/* binding */ MAIN_HEADER_HEIGHT),\n/* harmony export */ MechRecCostJobs: () => (/* binding */ MechRecCostJobs),\n/* harmony export */ SUB_HEADER_HEIGHT: () => (/* binding */ SUB_HEADER_HEIGHT)\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_10__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Drawer/Drawer.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _fcjobssp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fcjobssp */ \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_jobs_manage/hooks.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 MAIN_HEADER_HEIGHT = \"35px\";\n\n//Высота подзаголовка\nconst SUB_HEADER_HEIGHT = \"35px\";\n\n//Стили\nconst STYLES = {\n MAIN_HEADER: {\n height: MAIN_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n SUB_HEADER: {\n height: SUB_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n JOBS_FINDER: {\n marginTop: \"10px\",\n marginLeft: \"10px\",\n width: \"93%\"\n },\n JOBS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n JOBS_BUTTON: {\n position: \"absolute\"\n },\n JOBS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n }\n },\n CONTAINER: {\n textAlign: \"center\"\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Список сменных заданий\nconst JobList = ({\n jobs = [],\n selectedJob,\n filter,\n setFilter,\n onClick\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_5__[\"default\"], {\n sx: STYLES.JOBS_FINDER,\n name: \"jobFilter\",\n label: \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\",\n value: filter.jobName,\n variant: \"standard\",\n fullWidth: true,\n onChange: event => {\n setFilter(pv => ({\n ...pv,\n jobName: event.target.value\n }));\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, jobs.map(p => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n key: p.NRN,\n selected: p.NRN === selectedJob.NRN,\n onClick: () => onClick ? onClick(p) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.JOBS_LIST_ITEM_PRIMARY\n }, p.SDOC_INFO)\n })))));\n};\n\n//Контроль свойств - Список каталогов планов\nJobList.propTypes = {\n jobs: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().array),\n selectedJob: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().object),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().object),\n setFilter: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выдачи сменного задания\nconst MechRecCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useCostJobs)();\n\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n jobName: \"\"\n });\n\n //Массив отфильтрованных каталогов\n const filteredJobs = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useFilteredFcjobs)(state.jobList, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__[\"MessagingСtx\"]);\n\n //Выбор плана\n const selectJob = job => {\n //Обновляем состояние\n setState(pv => ({\n ...pv,\n selectedJob: job,\n showJobList: false\n }));\n };\n\n //Сброс выбора плана\n const unselectJob = () => {\n //Обновляем состояние\n setState(pv => ({\n ...pv,\n selectedJob: {},\n showJobList: false\n }));\n };\n\n //Обработка нажатия на элемент в списке планов\n const handleJobClick = job => {\n if (state.selectedJob.NRN != job.NRN) selectJob(job);else unselectJob();\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.JOBS_BUTTON,\n onClick: () => setState(pv => ({\n ...pv,\n showJobList: !pv.showJobList\n }))\n }, \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n anchor: \"left\",\n open: state.showJobList,\n onClose: () => setState(pv => ({\n ...pv,\n showJobList: false\n })),\n sx: STYLES.JOBS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(JobList, {\n jobs: filteredJobs,\n selectedJob: state.selectedJob,\n filter: filter,\n setFilter: setFilter,\n onClick: handleJobClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, state.selectedJob.NRN ? /*#__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_9__[\"default\"], {\n sx: STYLES.MAIN_HEADER,\n variant: \"h6\"\n }, `Сменное задание №${state.selectedJob.SDOC_NUMB} на ${state.selectedJob.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.SUB_HEADER,\n variant: \"h6\"\n }, `${state.selectedJob.SSUBDIV}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcjobssp__WEBPACK_IMPORTED_MODULE_3__.CostJobsSpecsDataGrid, {\n task: state.selectedJob.NRN,\n haveNote: state.selectedJob.NHAVE_NOTE,\n fromAction: state.fromAction\n })) : !state.selectedJob.NRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"Укажите сменное задание для отображения информации\"\n }) : null));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MAIN_HEADER_HEIGHT: () => (/* binding */ MAIN_HEADER_HEIGHT),\n/* harmony export */ MechRecCostJobs: () => (/* binding */ MechRecCostJobs),\n/* harmony export */ SUB_HEADER_HEIGHT: () => (/* binding */ SUB_HEADER_HEIGHT)\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_10__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Drawer/Drawer.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _fcjobssp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fcjobssp */ \"./app/panels/mech_rec_cost_jobs_manage/fcjobssp.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_jobs_manage/hooks.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 MAIN_HEADER_HEIGHT = \"35px\";\n\n//Высота подзаголовка\nconst SUB_HEADER_HEIGHT = \"35px\";\n\n//Стили\nconst STYLES = {\n MAIN_HEADER: {\n height: MAIN_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n SUB_HEADER: {\n height: SUB_HEADER_HEIGHT,\n overflow: \"hidden\"\n },\n JOBS_FINDER: {\n marginTop: \"10px\",\n marginLeft: \"10px\",\n width: \"93%\"\n },\n JOBS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n JOBS_BUTTON: {\n position: \"absolute\"\n },\n JOBS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n }\n },\n CONTAINER: {\n textAlign: \"center\"\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Список сменных заданий\nconst JobList = ({\n jobs = [],\n selectedJob,\n filter,\n setFilter,\n onClick\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_5__[\"default\"], {\n sx: STYLES.JOBS_FINDER,\n name: \"jobFilter\",\n label: \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\",\n value: filter.jobName,\n variant: \"standard\",\n fullWidth: true,\n onChange: event => {\n setFilter(pv => ({\n ...pv,\n jobName: event.target.value\n }));\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null, jobs.map(p => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n key: p.NRN,\n selected: p.NRN === selectedJob.NRN,\n onClick: () => onClick ? onClick(p) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.JOBS_LIST_ITEM_PRIMARY\n }, p.SDOC_INFO)\n })))));\n};\n\n//Контроль свойств - Список каталогов планов\nJobList.propTypes = {\n jobs: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().array),\n selectedJob: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().object),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().object),\n setFilter: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель выдачи сменного задания\nconst MechRecCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useCostJobs)();\n\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n jobName: \"\"\n });\n\n //Массив отфильтрованных каталогов\n const filteredJobs = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useFilteredFcjobs)(state.jobList, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__.MessagingCtx);\n\n //Выбор плана\n const selectJob = job => {\n //Обновляем состояние\n setState(pv => ({\n ...pv,\n selectedJob: job,\n showJobList: false\n }));\n };\n\n //Сброс выбора плана\n const unselectJob = () => {\n //Обновляем состояние\n setState(pv => ({\n ...pv,\n selectedJob: {},\n showJobList: false\n }));\n };\n\n //Обработка нажатия на элемент в списке планов\n const handleJobClick = job => {\n if (state.selectedJob.NRN != job.NRN) selectJob(job);else unselectJob();\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.JOBS_BUTTON,\n onClick: () => setState(pv => ({\n ...pv,\n showJobList: !pv.showJobList\n }))\n }, \"\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n anchor: \"left\",\n open: state.showJobList,\n onClose: () => setState(pv => ({\n ...pv,\n showJobList: false\n })),\n sx: STYLES.JOBS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(JobList, {\n jobs: filteredJobs,\n selectedJob: state.selectedJob,\n filter: filter,\n setFilter: setFilter,\n onClick: handleJobClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, state.selectedJob.NRN ? /*#__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_9__[\"default\"], {\n sx: STYLES.MAIN_HEADER,\n variant: \"h6\"\n }, `Сменное задание №${state.selectedJob.SDOC_NUMB} на ${state.selectedJob.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.SUB_HEADER,\n variant: \"h6\"\n }, `${state.selectedJob.SSUBDIV}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcjobssp__WEBPACK_IMPORTED_MODULE_3__.CostJobsSpecsDataGrid, {\n task: state.selectedJob.NRN,\n haveNote: state.selectedJob.NHAVE_NOTE,\n fromAction: state.fromAction\n })) : !state.selectedJob.NRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"Укажите сменное задание для отображения информации\"\n }) : null));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage/mech_rec_cost_jobs_manage.js?");
/***/ }),
@@ -939,7 +1170,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 */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useCostJobsWorkers: () => (/* binding */ useCostJobsWorkers)\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 _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __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//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n jobInfo: {},\n haveNote: false,\n coeff: \"1.0\"\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 const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initJob = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_MP_INIT\",\n args: {\n NFCJOBS: parseInt(fcJob)\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobInfo: data.XFCJOBS ? data.XFCJOBS : {},\n loaded: true\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем сменное задание\n initJob(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\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 issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n NCOEFF: parseFloat(prms.NCOEFF)\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"NSELECT\" ? val === 1 : name === \"SWORKERS_LIST\" ? val ? val.split(\",\").map(Number) : [] : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для рабочих\nconst useCostJobsWorkers = task => {\n //Собственное состояние - таблица данных\n const [costJobsWorkers, setCostJobsWorkers] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 includeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_INC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP,\n SPERFORM_LIST: {\n VALUE: Array.isArray(prms.SELECTED_WORKERS) ? prms.SELECTED_WORKERS.join(\";\") : prms.SELECTED_WORKERS,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored]);\n\n //Исключение рабочего из строки сменного задания\n const excludeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_EXC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsWorkers.dataLoaded && costJobsWorkers.task !== task) {\n setCostJobsWorkers(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsWorkers.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.WORKERS_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsWorkers.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsWorkers.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsWorkers.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsWorkers(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsWorkers.dataLoaded, costJobsWorkers.orders, costJobsWorkers.pageNumber, costJobsWorkers.reload, costJobsWorkers.task, executeStored, task]);\n return [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostJobs: () => (/* binding */ useCostJobs),\n/* harmony export */ useCostJobsSpecs: () => (/* binding */ useCostJobsSpecs),\n/* harmony export */ useCostJobsWorkers: () => (/* binding */ useCostJobsWorkers)\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 _context_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_3__ = __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//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 50;\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы\nconst useCostJobs = () => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n jobInfo: {},\n haveNote: false,\n coeff: \"1.0\"\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n //Подключение к контексту навигации\n const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_2__.NavigationCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initJob = async fcJob => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_MP_INIT\",\n args: {\n NFCJOBS: parseInt(fcJob)\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NHAVE_NOTE\"].includes(name) ? val == 1 : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n jobInfo: data.XFCJOBS ? data.XFCJOBS : {},\n loaded: true\n }));\n };\n if (!state.init) {\n //Считаем параметры, переданные из действия\n const actionPrms = getNavigationSearch();\n //Иницализируем сменное задание\n initJob(actionPrms.NRN);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [state, setState];\n};\n\n//Хук для таблицы операций\nconst useCostJobsSpecs = task => {\n //Собственное состояние - таблица данных\n const [costJobsSpecs, setCostJobsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\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__.BackEndCtx);\n\n //Выдача задания\n const issueCostJobsSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_ISSUE\",\n args: {\n NFCJOBS: prms.NFCJOBS,\n NCOEFF: parseFloat(prms.NCOEFF)\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsSpecs.dataLoaded && costJobsSpecs.task !== task) {\n setCostJobsSpecs(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRow: {},\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsSpecs.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"NSELECT\" ? val === 1 : name === \"SWORKERS_LIST\" ? val ? val.split(\",\").map(Number) : [] : val\n });\n setCostJobsSpecs(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsSpecs.dataLoaded, costJobsSpecs.orders, costJobsSpecs.pageNumber, costJobsSpecs.reload, costJobsSpecs.task, executeStored, task]);\n return [costJobsSpecs, setCostJobsSpecs, issueCostJobsSpecs];\n};\n\n//Хук для рабочих\nconst useCostJobsWorkers = task => {\n //Собственное состояние - таблица данных\n const [costJobsWorkers, setCostJobsWorkers] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n task: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Включение рабочего в строку сменного задания\n const includeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_INC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP,\n SPERFORM_LIST: {\n VALUE: Array.isArray(prms.SELECTED_WORKERS) ? prms.SELECTED_WORKERS.join(\";\") : prms.SELECTED_WORKERS,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NQUANT_PLAN: prms.NQUANT_PLAN\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored]);\n\n //Исключение рабочего из строки сменного задания\n const excludeWorker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async prms => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBSSP_MP_EXC_PERFORM\",\n args: {\n NFCJOBSSP: prms.NFCJOBSSP\n }\n });\n } catch (e) {\n throw new Error(e.message);\n }\n }, [executeStored]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если изменилось сменное задание - обновляем состояние\n if (costJobsWorkers.dataLoaded && costJobsWorkers.task !== task) {\n setCostJobsWorkers(pv => ({\n ...pv,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n selectedRows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n }));\n }\n //Если необходимо перезагрузить\n if (costJobsWorkers.reload && task) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.WORKERS_MP_DG_GET\",\n args: {\n NFCJOBS: task,\n NPAGE_NUMBER: costJobsWorkers.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_3__.object2Base64XML)(costJobsWorkers.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NINCLUDE_DEF: costJobsWorkers.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"NSELECT\"].includes(name) ? val === 1 : val\n });\n setCostJobsWorkers(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n task: task,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n };\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costJobsWorkers.dataLoaded, costJobsWorkers.orders, costJobsWorkers.pageNumber, costJobsWorkers.reload, costJobsWorkers.task, executeStored, task]);\n return [costJobsWorkers, setCostJobsWorkers, includeWorker, excludeWorker];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_jobs_manage_mp/hooks.js?");
/***/ }),
@@ -983,7 +1214,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 */ useCostDeliveryLists: () => (/* binding */ useCostDeliveryLists),\n/* harmony export */ useCostRouteLists: () => (/* binding */ useCostRouteLists),\n/* harmony export */ useGoodsParties: () => (/* binding */ useGoodsParties),\n/* harmony export */ useIncomFromDeps: () => (/* binding */ useIncomFromDeps)\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//Подключение библиотек\n//---------------------\n\n\n //Контекст взаимодействия с сервером\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 10;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для таблицы маршрутных листов\nconst useCostRouteLists = (task, taskType) => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n quantPlanSum: 0,\n uniqueNomns: []\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 loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (costRouteLists.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n NTYPE: taskType,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DEXEC_DATE\", \"DREL_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : [\"SDOCPREF\", \"SDOCNUMB\"].includes(name) ? undefined : val,\n respArg: \"COUT\"\n });\n setCostRouteLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,\n quantPlanSum: data.XDATA_GRID.rows ? data.XDATA_GRID.rows.reduce((a, b) => a + b[\"NQUANT_PLAN\"], 0) : 0,\n uniqueNomns: data.XDATA_GRID.rows ? data.XDATA_GRID.rows.reduce((accumulator, current) => {\n if (!accumulator.find(item => item.SMATRES_PLAN_NOMEN === current.SMATRES_PLAN_NOMEN)) {\n accumulator.push(current);\n }\n return accumulator;\n }, []) : []\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [costRouteLists.reload, costRouteLists.filters, costRouteLists.orders, costRouteLists.dataLoaded, costRouteLists.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [costRouteLists.reload, loadData]);\n return [costRouteLists, setCostRouteLists];\n};\n\n//Хук для таблицы приходов из подразделений\nconst useIncomFromDeps = (task, taskType) => {\n //Собственное состояние - таблица данных\n const [incomFromDeps, setIncomFromDeps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (incomFromDeps.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INCOMEFROMDEPS_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n NTYPE: taskType,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(incomFromDeps.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: incomFromDeps.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: incomFromDeps.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DWORK_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setIncomFromDeps(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [incomFromDeps.reload, incomFromDeps.orders, incomFromDeps.dataLoaded, incomFromDeps.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [incomFromDeps.reload, loadData]);\n return [incomFromDeps, setIncomFromDeps];\n};\n\n//Хук для таблицы товарных запасов\nconst useGoodsParties = mainRowRN => {\n //Собственное состояние - таблица данных\n const [goodsParties, setGoodsParties] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (goodsParties.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.GOODSPARTIES_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(goodsParties.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: goodsParties.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: goodsParties.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setGoodsParties(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [goodsParties.reload, goodsParties.orders, goodsParties.dataLoaded, goodsParties.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [goodsParties.reload, loadData]);\n return [goodsParties, setGoodsParties];\n};\n\n//Хук для таблицы строк комплектации\nconst useCostDeliveryLists = mainRowRN => {\n //Собственное состояние - таблица данных\n const [costDeliveryLists, setCostDeliveryLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (costDeliveryLists.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCDELIVERYLISTSP_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costDeliveryLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costDeliveryLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: costDeliveryLists.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => name === \"DRES_DATE_TO\" ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setCostDeliveryLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [costDeliveryLists.reload, costDeliveryLists.orders, costDeliveryLists.dataLoaded, costDeliveryLists.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [costDeliveryLists.reload, loadData]);\n return [costDeliveryLists, setCostDeliveryLists];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostDeliveryLists: () => (/* binding */ useCostDeliveryLists),\n/* harmony export */ useCostRouteLists: () => (/* binding */ useCostRouteLists),\n/* harmony export */ useGoodsParties: () => (/* binding */ useGoodsParties),\n/* harmony export */ useIncomFromDeps: () => (/* binding */ useIncomFromDeps)\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//Подключение библиотек\n//---------------------\n\n\n //Контекст взаимодействия с сервером\n //Вспомогательные функции\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 10;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для таблицы маршрутных листов\nconst useCostRouteLists = (task, taskType) => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n quantPlanSum: 0,\n uniqueNomns: []\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__.BackEndCtx);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (costRouteLists.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n NTYPE: taskType,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DEXEC_DATE\", \"DREL_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : [\"SDOCPREF\", \"SDOCNUMB\"].includes(name) ? undefined : val,\n respArg: \"COUT\"\n });\n setCostRouteLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE,\n quantPlanSum: data.XDATA_GRID.rows ? data.XDATA_GRID.rows.reduce((a, b) => a + b[\"NQUANT_PLAN\"], 0) : 0,\n uniqueNomns: data.XDATA_GRID.rows ? data.XDATA_GRID.rows.reduce((accumulator, current) => {\n if (!accumulator.find(item => item.SMATRES_PLAN_NOMEN === current.SMATRES_PLAN_NOMEN)) {\n accumulator.push(current);\n }\n return accumulator;\n }, []) : []\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [costRouteLists.reload, costRouteLists.filters, costRouteLists.orders, costRouteLists.dataLoaded, costRouteLists.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [costRouteLists.reload, loadData]);\n return [costRouteLists, setCostRouteLists];\n};\n\n//Хук для таблицы приходов из подразделений\nconst useIncomFromDeps = (task, taskType) => {\n //Собственное состояние - таблица данных\n const [incomFromDeps, setIncomFromDeps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (incomFromDeps.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INCOMEFROMDEPS_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n NTYPE: taskType,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(incomFromDeps.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: incomFromDeps.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: incomFromDeps.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DWORK_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setIncomFromDeps(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [incomFromDeps.reload, incomFromDeps.orders, incomFromDeps.dataLoaded, incomFromDeps.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [incomFromDeps.reload, loadData]);\n return [incomFromDeps, setIncomFromDeps];\n};\n\n//Хук для таблицы товарных запасов\nconst useGoodsParties = mainRowRN => {\n //Собственное состояние - таблица данных\n const [goodsParties, setGoodsParties] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Загрузка данных таблицы с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (goodsParties.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.GOODSPARTIES_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(goodsParties.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: goodsParties.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: goodsParties.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setGoodsParties(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [goodsParties.reload, goodsParties.orders, goodsParties.dataLoaded, goodsParties.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [goodsParties.reload, loadData]);\n return [goodsParties, setGoodsParties];\n};\n\n//Хук для таблицы строк комплектации\nconst useCostDeliveryLists = mainRowRN => {\n //Собственное состояние - таблица данных\n const [costDeliveryLists, setCostDeliveryLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //Загрузка данных таблицы строк комплектации с сервера\n const loadData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (costDeliveryLists.reload) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCDELIVERYLISTSP_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costDeliveryLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costDeliveryLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE,\n NINCLUDE_DEF: costDeliveryLists.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => name === \"DRES_DATE_TO\" ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setCostDeliveryLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [costDeliveryLists.reload, costDeliveryLists.orders, costDeliveryLists.dataLoaded, costDeliveryLists.pageNumber, executeStored, SERV_DATA_TYPE_CLOB]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n loadData();\n }, [costDeliveryLists.reload, loadData]);\n return [costDeliveryLists, setCostDeliveryLists];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js?");
/***/ }),
@@ -1060,7 +1291,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 */ MechRecCostProdPlans: () => (/* binding */ MechRecCostProdPlans)\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_23__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormGroup/FormGroup.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Tooltip/Tooltip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemIcon/ListItemIcon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardHeader/CardHeader.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActions/CardActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Drawer/Drawer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputLabel/InputLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Select/Select.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/p8p_gantt */ \"./app/components/p8p_gantt.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_prod_plans/hooks.js\");\n/* harmony import */ var _datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./datagrids/fcroutlst */ \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\");\n/* harmony import */ var _datagrids_incomefromdeps__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./datagrids/incomefromdeps */ \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.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//Склонения для документов\nconst PLANS_DECLINATIONS = [\"план\", \"плана\", \"планов\"];\nconst SPEC_DECLINATIONS = [\"элемент\", \"элемента\", \"элементов\"];\n\n//Поля сортировки\nconst SORT_REP_DATE = \"DREP_DATE\";\nconst SORT_REP_DATE_TO = \"DREP_DATE_TO\";\n\n//Максимальное количество элементов\nconst MAX_TASKS = 10000;\n\n//Стили\nconst STYLES = {\n PLANS_FINDER: {\n marginTop: \"10px\",\n marginLeft: \"10px\",\n width: \"93%\"\n },\n PLANS_CHECKBOX_HAVEDOCS: {\n alignContent: \"space-around\"\n },\n PLANS_LIST_CONTAINER: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\"\n },\n PLANS_LIST_ITEM_ZERODOCS: {\n backgroundColor: \"#ebecec\"\n },\n PLANS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n PLANS_LIST_ITEM_SECONDARY: {\n wordWrap: \"break-word\",\n fontSize: \"0.6rem\",\n textTransform: \"uppercase\"\n },\n PLANS_LIST_ITEM_PLAN: {\n backgroundColor: \"#c7e7f1\",\n \"&:hover\": {\n backgroundColor: `#c7e7f1`,\n filter: \"brightness(0.92) !important\"\n }\n },\n PLANS_LIST_ITEM_PLAN_FIELD: {\n marginLeft: \"15px\"\n },\n PLANS_LIST_FILTER_CONTAINER: {\n height: \"calc(100% - 55px)\",\n overflowY: \"auto\"\n },\n PLANS_LIST_BUTTONS_CONTAINER: {\n display: \"flex\",\n justifyContent: \"space-around\",\n paddingBottom: \"10px\",\n height: \"45px\"\n },\n PLANS_LIST_BUTTON: {\n minWidth: \"125px\",\n height: \"35px\"\n },\n PLANS_BUTTON: {\n position: \"absolute\",\n top: `calc(${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__.APP_BAR_HEIGHT} + 16px)`,\n left: \"16px\"\n },\n PLANS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_6__.APP_STYLES.SCROLL\n }\n },\n GANTT_CONTAINER: {\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__.APP_BAR_HEIGHT})`,\n width: \"100vw\",\n paddingTop: \"24px\"\n },\n GANTT_TITLE: {\n paddingLeft: \"250px\",\n paddingRight: \"250px\"\n },\n SECOND_TABLE: {\n paddingTop: \"30px\"\n },\n TASK_DIALOG_CARD_CONTAINER: {\n padding: \"0px\"\n },\n TASK_DIALOG_LIST_ITEM_ICON: {\n justifyContent: \"center\"\n },\n TASK_DIALOG_ICON: {\n fontSize: \"2rem\"\n },\n TASK_DIALOG_ACTION_CONTAINER: {\n border: 1,\n borderColor: \"text.primary\",\n borderRadius: \"5px\",\n width: \"100%\"\n },\n FILTERS: {\n display: \"table\",\n float: \"right\"\n },\n FILTERS_DATE: {\n display: \"table-cell\",\n verticalAlign: \"middle\"\n },\n FILTERS_LEVEL: {\n display: \"table-cell\",\n verticalAlign: \"middle\",\n paddingLeft: \"15px\"\n },\n FILTERS_LEVEL_CAPTION: {\n display: \"flex\",\n alignItems: \"center\"\n },\n FILTERS_LEVEL_LIMIT_ICON: {\n padding: \"0px 8px\",\n color: \"#9f9c9c\"\n },\n FILTERS_LIMIT_SELECT: nOutOfLimit => {\n return nOutOfLimit === 1 ? {\n \".MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\"\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\",\n borderWidth: \"0.15rem\"\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\",\n borderWidth: \"0.15rem\"\n }\n } : {};\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Разбор XML с данными спецификации производственной программы\nconst parseProdPlanSpXML = async xmlDoc => {\n const data = await (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.xml2JSON)({\n xmlDoc,\n attributeValueProcessor: (name, val) => [\"numb\", \"title\"].includes(name) ? undefined : [\"start\", \"end\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateJSONDateOnly)(val) : val\n });\n return data.XDATA.XGANTT;\n};\n\n//Форматирование для отображения количества документов\nconst formatCountDocs = (nCountDocs, nType = 0) => {\n //Склонение документов\n let DECLINATIONS = nType === 0 ? PLANS_DECLINATIONS : SPEC_DECLINATIONS;\n //Получаем последнюю цифру в значении\n let num = nCountDocs % 100 % 10;\n //Документов\n if (nCountDocs > 10 && nCountDocs < 20) return `${nCountDocs} ${DECLINATIONS[2]}`;\n //Документа\n if (num > 1 && num < 5) return `${nCountDocs} ${DECLINATIONS[1]}`;\n //Документ\n if (num == 1) return `${nCountDocs} ${DECLINATIONS[0]}`;\n //Документов\n return `${nCountDocs} ${DECLINATIONS[2]}`;\n};\n\n//Изменение информации об отмеченных планах\nconst updateCtlgPlanInfo = (selectedPlans, plan) => {\n //Результат изменений\n let res = {\n selectedPlans: [...selectedPlans] || [],\n selectedPlansElements: plan.NCOUNT_DOCS\n };\n //Определяем наличие в отмеченных планах\n let selectedIndex = res.selectedPlans.indexOf(plan.NRN);\n //Если уже есть в отмеченных - удаляем, нет - добавляем\n if (selectedIndex > -1) {\n //Удаляем план из выбранных\n res.selectedPlans.splice(selectedIndex, 1);\n //Переворачиваем сумму документов\n res.selectedPlansElements = res.selectedPlansElements * -1;\n } else {\n //Добавляем план в выбранные\n res.selectedPlans.push(plan.NRN);\n }\n //Возвращаем результат\n return res;\n};\n\n//Список каталогов планов\nconst PlanCtlgsList = ({\n planCtlgs = [],\n selectedPlans = [],\n selectedPlanCtlg,\n selectedPlansElements,\n filter,\n setFilter,\n onCtlgClick,\n onCtlgPlanClick,\n onCtlgPlansOk,\n onCtlgPlansCancel\n} = {}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_FILTER_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.PLANS_FINDER,\n name: \"planFilter\",\n label: \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\",\n value: filter.ctlgName,\n variant: \"standard\",\n fullWidth: true,\n onChange: event => {\n setFilter(pv => ({\n ...pv,\n ctlgName: event.target.value\n }));\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n sx: STYLES.PLANS_CHECKBOX_HAVEDOCS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n checked: filter.haveDocs,\n onChange: event => setFilter(pv => ({\n ...pv,\n haveDocs: event.target.checked\n }))\n }),\n label: \"\\u0422\\u043E\\u043B\\u044C\\u043A\\u043E \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438\",\n labelPlacement: \"end\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, planCtlgs.map(ctlg => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n key: ctlg.NRN\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: ctlg.NCOUNT_DOCS == 0 ? STYLES.PLANS_LIST_ITEM_ZERODOCS : null,\n key: ctlg.NRN,\n selected: ctlg.NRN === selectedPlanCtlg,\n onClick: () => onCtlgClick ? onCtlgClick(ctlg) : null,\n disabled: ctlg.NCOUNT_DOCS == 0\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, ctlg.SNAME),\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_SECONDARY\n }, formatCountDocs(ctlg.NCOUNT_DOCS, 0))\n })), ctlg.NRN === selectedPlanCtlg && ctlg.XCRN_PLANS.length > 1 ? ctlg.XCRN_PLANS.map(plan => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: plan.NCOUNT_DOCS == 0 ? STYLES.PLANS_LIST_ITEM_ZERODOCS : STYLES.PLANS_LIST_ITEM_PLAN,\n key: plan.NRN,\n disabled: plan.NCOUNT_DOCS == 0,\n onClick: () => onCtlgPlanClick ? onCtlgPlanClick(plan) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PLAN_FIELD,\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, plan.SNAME),\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_SECONDARY\n }, formatCountDocs(plan.NCOUNT_DOCS, 1))\n }), plan.NCOUNT_DOCS !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n checked: selectedPlans.includes(plan.NRN)\n }) : null)) : null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTONS_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n title: !selectedPlanCtlg ? \"Не выбран каталог планов\" : selectedPlans.length === 0 ? \"Не выбраны планы каталога\" : selectedPlansElements > MAX_TASKS ? `Выбранные планы превышают максимум элементов (выбрано: ${selectedPlansElements}, максимум: ${MAX_TASKS})` : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTON,\n variant: \"contained\",\n disabled: selectedPlans.length === 0 || selectedPlansElements > MAX_TASKS,\n onClick: onCtlgPlansOk\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTON,\n variant: \"contained\",\n onClick: onCtlgPlansCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")));\n};\n\n//Контроль свойств - Список каталогов планов\nPlanCtlgsList.propTypes = {\n planCtlgs: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().array),\n selectedPlans: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().array),\n selectedPlanCtlg: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),\n selectedPlansElements: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),\n onCtlgClick: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlanClick: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),\n setFilter: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlansOk: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlansCancel: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func)\n};\n\n//Генерация диалога задачи\nconst taskDialogRenderer = ({\n task,\n taskColors,\n close,\n handleTaskDetailOpen\n}) => {\n //Стиль и описание для легенды\n const legendDesc = (0,_components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__.taskLegendDesc)({\n task,\n taskColors\n });\n //Элемент карточки задачи\n const cardItem = ({\n listItemsStyle = {},\n icon,\n primaryText = null,\n secondaryText = null\n }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n disablePadding: true,\n sx: listItemsStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n sx: STYLES.TASK_DIALOG_LIST_ITEM_ICON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n sx: STYLES.TASK_DIALOG_ICON\n }, icon)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n primary: primaryText,\n secondary: secondaryText\n })));\n //Собираем содержимое диалога\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_27__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_28__[\"default\"], {\n title: task.name,\n titleTypographyProps: {\n variant: \"h6\"\n },\n subheader: `${(0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateRF)(task.start)} - ${(0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateRF)(task.end)}`,\n action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n \"aria-label\": \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\",\n onClick: close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], null, \"close\"))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_30__[\"default\"], {\n sx: STYLES.TASK_DIALOG_CARD_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, cardItem({\n icon: \"fast_forward\",\n primaryText: `${task.start_fact} ${task.meas}`,\n secondaryText: \"Запущено\"\n }), cardItem({\n icon: \"assessment\",\n primaryText: `${task.main_quant} ${task.meas}`,\n secondaryText: \"Количество план\"\n }), cardItem({\n icon: \"verified\",\n primaryText: `${task.rel_fact} ${task.meas}`,\n secondaryText: \"Количество сдано\"\n }), cardItem({\n icon: \"date_range\",\n primaryText: task.rep_date_to,\n secondaryText: \"Дата выпуска план\"\n }), legendDesc ? cardItem({\n listItemsStyle: legendDesc.style,\n icon: \"palette\",\n secondaryText: legendDesc.text\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_31__[\"default\"], {\n disableSpacing: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n p: 2,\n display: \"flex\",\n justifyContent: \"center\",\n sx: STYLES.TASK_DIALOG_ACTION_CONTAINER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.hasValue)(task.type) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n size: \"large\",\n variant: \"contained\",\n color: \"primary\",\n onClick: () => handleTaskDetailOpen(task.rn, task.type)\n }, task[\"detail_list\"]) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n color: \"textSecondary\"\n }, `Анализ отклонений недоступен${task[\"detail_list\"] ? `: ${task[\"detail_list\"]}` : \"\"}`))));\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель производственной программы\nconst MechRecCostProdPlans = () => {\n //Собственное состояние\n let [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n planCtlgs: [],\n planCtlgsLoaded: false,\n selectedPlans: [],\n selectedPlansElements: 0,\n selectedPlanCtlgSpecsLoaded: false,\n selectedPlanCtlg: null,\n selectedPlanCtlgMaxLevel: null,\n selectedPlanCtlgLevel: null,\n selectedPlanCtlgOutOfLimit: 0,\n selectedPlanCtlgSort: null,\n selectedPlanCtlgMenuItems: null,\n loadedCtlg: null,\n loadedPlans: [],\n loadedElements: 0,\n gantt: {},\n selectedTaskDetail: null,\n selectedTaskDetailType: null,\n planSpec: null\n });\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ctlgName: \"\",\n haveDocs: false\n });\n\n //Массив отфильтрованных каталогов\n const filteredPlanCtgls = (0,_hooks__WEBPACK_IMPORTED_MODULE_9__.useFilteredPlanCtlgs)(state.planCtlgs, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__[\"MessagingСtx\"]);\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 {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_3__.NavigationCtx);\n\n //Подключение к контексту сообщений\n const {\n showMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__[\"MessagingСtx\"]);\n\n //Инициализация каталогов планов\n const initPlanCtlgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (!state.init) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_PP_CTLG_INIT\",\n args: {},\n respArg: \"COUT\",\n isArray: name => [\"XFCPRODPLAN_CRNS\", \"XCRN_PLANS\"].includes(name)\n });\n setState(pv => ({\n ...pv,\n init: true,\n planCtlgs: [...(data?.XFCPRODPLAN_CRNS || [])],\n planCtlgsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.init, executeStored]);\n\n //Загрузка списка спецификаций каталога планов\n const loadPlanCtglSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (level = null, sort = null) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLANSP_GET\",\n args: {\n NCRN: state.selectedPlanCtlg,\n CFCPRODPLANS: {\n VALUE: state.selectedPlans.length > 0 ? state.selectedPlans.join(\";\") : null,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NLEVEL: level,\n SSORT_FIELD: sort,\n NFCPRODPLANSP: state.planSpec\n }\n });\n let doc = await parseProdPlanSpXML(data.COUT);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgMaxLevel: data.NMAX_LEVEL,\n selectedPlanCtlgLevel: level || level === 0 ? level : data.NMAX_LEVEL,\n selectedPlanCtlgOutOfLimit: data.NOUT_OF_LIMIT,\n selectedPlanCtlgSort: sort,\n selectedPlanCtlgMenuItems: [...Array(data.NMAX_LEVEL).keys()].map(el => el + 1),\n selectedPlanCtlgSpecsLoaded: true,\n gantt: {\n ...doc,\n tasks: [...(doc?.tasks || [])]\n },\n loadedCtlg: state.selectedPlanCtlg,\n loadedPlans: [...state.selectedPlans],\n loadedElements: state.selectedPlansElements,\n showPlanList: false\n }));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [executeStored, state.selectedPlanCtlg, state.selectedPlans, state.planSpec]);\n\n //Обработка нажатия на элемент в списке каталогов планов\n const handleCtlgClick = project => {\n //Если этот каталог не был выбран\n if (state.selectedPlanCtlg != project.NRN) {\n //Если выбран уже загруженный - укажем информацию о том, как он загружен\n if (project.NRN === state.loadedCtlg) {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: project.NRN,\n selectedPlans: [...pv.loadedPlans],\n selectedPlansElements: pv.loadedElements\n }));\n } else {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: project.NRN,\n selectedPlans: project.XCRN_PLANS.length === 1 ? [project.XCRN_PLANS[0].NRN] : [],\n selectedPlansElements: 0\n }));\n }\n } else {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: null,\n selectedPlans: [],\n selectedPlansElements: 0\n }));\n }\n };\n\n //Обработка нажатия на элемент в списке планов каталога\n const handleCtlgPlanClick = plan => {\n //Считываем обновленную информацию об отмеченных планах\n let newPlansInfo = updateCtlgPlanInfo(state.selectedPlans, plan);\n //Обновляем список отмеченных планов\n setState(pv => ({\n ...pv,\n selectedPlans: [...newPlansInfo.selectedPlans],\n selectedPlansElements: pv.selectedPlansElements + newPlansInfo.selectedPlansElements\n }));\n };\n\n //Обработка нажатия \"ОК\" при отборе планов\n const handleSelectedPlansOk = () => {\n //Загружаем диаграмму\n loadPlanCtglSpecs(null, SORT_REP_DATE_TO);\n };\n\n //Обработка нажатия \"Отмена\" при отборе планов\n const handleSelectedPlansCancel = () => {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: pv.loadedCtlg,\n selectedPlans: [...pv.loadedPlans] || [],\n selectedPlansElements: pv.loadedElements,\n showPlanList: false\n }));\n };\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const actionPrms = getNavigationSearch();\n if (actionPrms.NSPRN) setState(pv => ({\n ...pv,\n planSpec: parseInt(actionPrms.NSPRN),\n init: true\n }));else initPlanCtlgs();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При смене выбранного каталога плана или при явном указании позиции спецификации плана\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (state.planSpec) loadPlanCtglSpecs(null, SORT_REP_DATE_TO);\n }, [state.planSpec, loadPlanCtglSpecs]);\n\n //Выбор уровня\n const handleChangeSelectLevel = selectedLevel => {\n loadPlanCtglSpecs(selectedLevel, state.selectedPlanCtlgSort);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgLevel: selectedLevel\n }));\n };\n\n //Выбор сортировки\n const handleChangeSelectSort = selectedSort => {\n loadPlanCtglSpecs(state.selectedPlanCtlgLevel, selectedSort);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgSort: selectedSort\n }));\n };\n\n //При закрытии окна детализации\n const handleTaskDetailClose = () => {\n setState(pv => ({\n ...pv,\n selectedTaskDetail: null,\n selectedTaskDetailType: null\n }));\n };\n\n //При открытии окна детализации\n const handleTaskDetailOpen = (taskRn, taskType) => {\n setState(pv => ({\n ...pv,\n selectedTaskDetail: taskRn,\n selectedTaskDetailType: taskType\n }));\n };\n\n //При открытии окна информации об ограничении уровня\n const handleLevelLimitInfoOpen = () => {\n //Отображаем информацию\n showMsgInfo(`Размер производственной программы превышает предельно допустимый для одновременного отображения в виде диаграммы Ганта. \n Доступные для просмотра уровни вложенности ограничены. \n Вы можете просматривать производственную программу частями, используя действие \"Открытие панели Производственная программа\" в спецификации \"Выпуск\" \n раздела \"Планы и отчеты производства изделий\".`);\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, !state.planSpec ? /*#__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_32__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.PLANS_BUTTON,\n onClick: () => setState(pv => ({\n ...pv,\n showPlanList: !pv.showPlanList\n }))\n }, \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0438 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_33__[\"default\"], {\n anchor: \"left\",\n open: state.showPlanList,\n onClose: handleSelectedPlansCancel,\n sx: STYLES.PLANS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlanCtlgsList, {\n planCtlgs: filteredPlanCtgls,\n selectedPlans: state.selectedPlans,\n selectedPlanCtlg: state.selectedPlanCtlg,\n selectedPlansElements: state.selectedPlansElements,\n filter: filter,\n setFilter: setFilter,\n onCtlgClick: handleCtlgClick,\n onCtlgPlanClick: handleCtlgPlanClick,\n onCtlgPlansOk: handleSelectedPlansOk,\n onCtlgPlansCancel: handleSelectedPlansCancel\n }))) : null, state.init == true ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_34__[\"default\"], {\n container: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_34__[\"default\"], {\n item: true,\n xs: 12\n }, state.selectedPlanCtlgSpecsLoaded ? state.gantt.tasks.length === 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n pt: 3\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: state.planSpec ? \"Не найдено данных для выбранной позиции плана\" : \"В каталоге планов отсутствуют записи спецификации\"\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, state.selectedPlanCtlgMaxLevel ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS,\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_DATE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_35__[\"default\"], {\n id: \"select-label-sort\"\n }, \"\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_36__[\"default\"], {\n labelId: \"select-label-sort\",\n id: \"select-sort\",\n value: state.selectedPlanCtlgSort,\n label: \"\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\",\n onChange: event => {\n handleChangeSelectSort(event.target.value);\n },\n defaultValue: state.selectedPlanCtlgLevel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: SORT_REP_DATE_TO,\n key: \"1\"\n }, \"\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: SORT_REP_DATE,\n key: \"2\"\n }, \"\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL_CAPTION\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_35__[\"default\"], {\n id: \"select-label-level\"\n }, \"\\u0414\\u043E \\u0443\\u0440\\u043E\\u0432\\u043D\\u044F\"), state.selectedPlanCtlgOutOfLimit === 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL_LIMIT_ICON,\n onClick: handleLevelLimitInfoOpen\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], null, \"info\")) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_36__[\"default\"], {\n sx: STYLES.FILTERS_LIMIT_SELECT(state.selectedPlanCtlgOutOfLimit),\n labelId: \"select-label-level\",\n id: \"select-level\",\n value: state.selectedPlanCtlgLevel,\n label: \"\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C\",\n onChange: event => {\n handleChangeSelectLevel(event.target.value);\n },\n defaultValue: state.selectedPlanCtlgLevel\n }, state.selectedPlanCtlgMenuItems.map(el => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: el,\n key: el\n }, el))))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__.P8PGantt, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_GANTT_CONFIG_PROPS, state.gantt, {\n containerStyle: STYLES.GANTT_CONTAINER,\n titleStyle: STYLES.GANTT_TITLE,\n taskDialogRenderer: prms => taskDialogRenderer({\n ...prms,\n handleTaskDetailOpen\n })\n }))) : !state.loadedCtlg ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n pt: 3\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: state.planSpec ? \"Загружаю график для выбранной позиции плана...\" : \"Укажите каталог планов или планы для отображения их спецификаций\"\n })) : null)) : null, state.selectedTaskDetail ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_38__[\"default\"], {\n open: true,\n onClose: handleTaskDetailClose,\n fullWidth: true,\n maxWidth: \"xl\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_39__[\"default\"], null, [0, 1, 4].includes(state.selectedTaskDetailType) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__.CostRouteListsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_incomefromdeps__WEBPACK_IMPORTED_MODULE_11__.IncomFromDepsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n }), state.selectedTaskDetailType === 3 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.SECOND_TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__.CostRouteListsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_40__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n onClick: handleTaskDetailClose\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\"))) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MechRecCostProdPlans: () => (/* binding */ MechRecCostProdPlans)\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_23__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormGroup/FormGroup.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Tooltip/Tooltip.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemIcon/ListItemIcon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Card/Card.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardHeader/CardHeader.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardContent/CardContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/CardActions/CardActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Drawer/Drawer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/InputLabel/InputLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Select/Select.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/MenuItem/MenuItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _context_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/navigation */ \"./app/context/navigation.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/p8p_gantt */ \"./app/components/p8p_gantt.js\");\n/* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../core/utils */ \"./app/core/utils.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_cost_prod_plans/hooks.js\");\n/* harmony import */ var _datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./datagrids/fcroutlst */ \"./app/panels/mech_rec_cost_prod_plans/datagrids/fcroutlst.js\");\n/* harmony import */ var _datagrids_incomefromdeps__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./datagrids/incomefromdeps */ \"./app/panels/mech_rec_cost_prod_plans/datagrids/incomefromdeps.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//Склонения для документов\nconst PLANS_DECLINATIONS = [\"план\", \"плана\", \"планов\"];\nconst SPEC_DECLINATIONS = [\"элемент\", \"элемента\", \"элементов\"];\n\n//Поля сортировки\nconst SORT_REP_DATE = \"DREP_DATE\";\nconst SORT_REP_DATE_TO = \"DREP_DATE_TO\";\n\n//Максимальное количество элементов\nconst MAX_TASKS = 10000;\n\n//Стили\nconst STYLES = {\n PLANS_FINDER: {\n marginTop: \"10px\",\n marginLeft: \"10px\",\n width: \"93%\"\n },\n PLANS_CHECKBOX_HAVEDOCS: {\n alignContent: \"space-around\"\n },\n PLANS_LIST_CONTAINER: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\"\n },\n PLANS_LIST_ITEM_ZERODOCS: {\n backgroundColor: \"#ebecec\"\n },\n PLANS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n PLANS_LIST_ITEM_SECONDARY: {\n wordWrap: \"break-word\",\n fontSize: \"0.6rem\",\n textTransform: \"uppercase\"\n },\n PLANS_LIST_ITEM_PLAN: {\n backgroundColor: \"#c7e7f1\",\n \"&:hover\": {\n backgroundColor: `#c7e7f1`,\n filter: \"brightness(0.92) !important\"\n }\n },\n PLANS_LIST_ITEM_PLAN_FIELD: {\n marginLeft: \"15px\"\n },\n PLANS_LIST_FILTER_CONTAINER: {\n height: \"calc(100% - 55px)\",\n overflowY: \"auto\"\n },\n PLANS_LIST_BUTTONS_CONTAINER: {\n display: \"flex\",\n justifyContent: \"space-around\",\n paddingBottom: \"10px\",\n height: \"45px\"\n },\n PLANS_LIST_BUTTON: {\n minWidth: \"125px\",\n height: \"35px\"\n },\n PLANS_BUTTON: {\n position: \"absolute\",\n top: `calc(${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__.APP_BAR_HEIGHT} + 16px)`,\n left: \"16px\"\n },\n PLANS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_6__.APP_STYLES.SCROLL\n }\n },\n GANTT_CONTAINER: {\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_5__.APP_BAR_HEIGHT})`,\n width: \"100vw\",\n paddingTop: \"24px\"\n },\n GANTT_TITLE: {\n paddingLeft: \"250px\",\n paddingRight: \"250px\"\n },\n SECOND_TABLE: {\n paddingTop: \"30px\"\n },\n TASK_DIALOG_CARD_CONTAINER: {\n padding: \"0px\"\n },\n TASK_DIALOG_LIST_ITEM_ICON: {\n justifyContent: \"center\"\n },\n TASK_DIALOG_ICON: {\n fontSize: \"2rem\"\n },\n TASK_DIALOG_ACTION_CONTAINER: {\n border: 1,\n borderColor: \"text.primary\",\n borderRadius: \"5px\",\n width: \"100%\"\n },\n FILTERS: {\n display: \"table\",\n float: \"right\"\n },\n FILTERS_DATE: {\n display: \"table-cell\",\n verticalAlign: \"middle\"\n },\n FILTERS_LEVEL: {\n display: \"table-cell\",\n verticalAlign: \"middle\",\n paddingLeft: \"15px\"\n },\n FILTERS_LEVEL_CAPTION: {\n display: \"flex\",\n alignItems: \"center\"\n },\n FILTERS_LEVEL_LIMIT_ICON: {\n padding: \"0px 8px\",\n color: \"#9f9c9c\"\n },\n FILTERS_LIMIT_SELECT: nOutOfLimit => {\n return nOutOfLimit === 1 ? {\n \".MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\"\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\",\n borderWidth: \"0.15rem\"\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#e9863c\",\n borderWidth: \"0.15rem\"\n }\n } : {};\n }\n};\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Разбор XML с данными спецификации производственной программы\nconst parseProdPlanSpXML = async xmlDoc => {\n const data = await (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.xml2JSON)({\n xmlDoc,\n attributeValueProcessor: (name, val) => [\"numb\", \"title\"].includes(name) ? undefined : [\"start\", \"end\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateJSONDateOnly)(val) : val\n });\n return data.XDATA.XGANTT;\n};\n\n//Форматирование для отображения количества документов\nconst formatCountDocs = (nCountDocs, nType = 0) => {\n //Склонение документов\n let DECLINATIONS = nType === 0 ? PLANS_DECLINATIONS : SPEC_DECLINATIONS;\n //Получаем последнюю цифру в значении\n let num = nCountDocs % 100 % 10;\n //Документов\n if (nCountDocs > 10 && nCountDocs < 20) return `${nCountDocs} ${DECLINATIONS[2]}`;\n //Документа\n if (num > 1 && num < 5) return `${nCountDocs} ${DECLINATIONS[1]}`;\n //Документ\n if (num == 1) return `${nCountDocs} ${DECLINATIONS[0]}`;\n //Документов\n return `${nCountDocs} ${DECLINATIONS[2]}`;\n};\n\n//Изменение информации об отмеченных планах\nconst updateCtlgPlanInfo = (selectedPlans, plan) => {\n //Результат изменений\n let res = {\n selectedPlans: [...selectedPlans] || [],\n selectedPlansElements: plan.NCOUNT_DOCS\n };\n //Определяем наличие в отмеченных планах\n let selectedIndex = res.selectedPlans.indexOf(plan.NRN);\n //Если уже есть в отмеченных - удаляем, нет - добавляем\n if (selectedIndex > -1) {\n //Удаляем план из выбранных\n res.selectedPlans.splice(selectedIndex, 1);\n //Переворачиваем сумму документов\n res.selectedPlansElements = res.selectedPlansElements * -1;\n } else {\n //Добавляем план в выбранные\n res.selectedPlans.push(plan.NRN);\n }\n //Возвращаем результат\n return res;\n};\n\n//Список каталогов планов\nconst PlanCtlgsList = ({\n planCtlgs = [],\n selectedPlans = [],\n selectedPlanCtlg,\n selectedPlansElements,\n filter,\n setFilter,\n onCtlgClick,\n onCtlgPlanClick,\n onCtlgPlansOk,\n onCtlgPlansCancel\n} = {}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_FILTER_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n sx: STYLES.PLANS_FINDER,\n name: \"planFilter\",\n label: \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\",\n value: filter.ctlgName,\n variant: \"standard\",\n fullWidth: true,\n onChange: event => {\n setFilter(pv => ({\n ...pv,\n ctlgName: event.target.value\n }));\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n sx: STYLES.PLANS_CHECKBOX_HAVEDOCS\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n checked: filter.haveDocs,\n onChange: event => setFilter(pv => ({\n ...pv,\n haveDocs: event.target.checked\n }))\n }),\n label: \"\\u0422\\u043E\\u043B\\u044C\\u043A\\u043E \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438\",\n labelPlacement: \"end\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, planCtlgs.map(ctlg => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n key: ctlg.NRN\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: ctlg.NCOUNT_DOCS == 0 ? STYLES.PLANS_LIST_ITEM_ZERODOCS : null,\n key: ctlg.NRN,\n selected: ctlg.NRN === selectedPlanCtlg,\n onClick: () => onCtlgClick ? onCtlgClick(ctlg) : null,\n disabled: ctlg.NCOUNT_DOCS == 0\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, ctlg.SNAME),\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_SECONDARY\n }, formatCountDocs(ctlg.NCOUNT_DOCS, 0))\n })), ctlg.NRN === selectedPlanCtlg && ctlg.XCRN_PLANS.length > 1 ? ctlg.XCRN_PLANS.map(plan => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n sx: plan.NCOUNT_DOCS == 0 ? STYLES.PLANS_LIST_ITEM_ZERODOCS : STYLES.PLANS_LIST_ITEM_PLAN,\n key: plan.NRN,\n disabled: plan.NCOUNT_DOCS == 0,\n onClick: () => onCtlgPlanClick ? onCtlgPlanClick(plan) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PLAN_FIELD,\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, plan.SNAME),\n secondary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_SECONDARY\n }, formatCountDocs(plan.NCOUNT_DOCS, 1))\n }), plan.NCOUNT_DOCS !== 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n checked: selectedPlans.includes(plan.NRN)\n }) : null)) : null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTONS_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n title: !selectedPlanCtlg ? \"Не выбран каталог планов\" : selectedPlans.length === 0 ? \"Не выбраны планы каталога\" : selectedPlansElements > MAX_TASKS ? `Выбранные планы превышают максимум элементов (выбрано: ${selectedPlansElements}, максимум: ${MAX_TASKS})` : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTON,\n variant: \"contained\",\n disabled: selectedPlans.length === 0 || selectedPlansElements > MAX_TASKS,\n onClick: onCtlgPlansOk\n }, \"\\u041F\\u0440\\u0438\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n sx: STYLES.PLANS_LIST_BUTTON,\n variant: \"contained\",\n onClick: onCtlgPlansCancel\n }, \"\\u041E\\u0442\\u043C\\u0435\\u043D\\u0430\")));\n};\n\n//Контроль свойств - Список каталогов планов\nPlanCtlgsList.propTypes = {\n planCtlgs: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().array),\n selectedPlans: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().array),\n selectedPlanCtlg: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),\n selectedPlansElements: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),\n onCtlgClick: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlanClick: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),\n setFilter: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlansOk: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func),\n onCtlgPlansCancel: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func)\n};\n\n//Генерация диалога задачи\nconst taskDialogRenderer = ({\n task,\n taskColors,\n close,\n handleTaskDetailOpen\n}) => {\n //Стиль и описание для легенды\n const legendDesc = (0,_components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__.taskLegendDesc)({\n task,\n taskColors\n });\n //Элемент карточки задачи\n const cardItem = ({\n listItemsStyle = {},\n icon,\n primaryText = null,\n secondaryText = null\n }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n disablePadding: true,\n sx: listItemsStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n sx: STYLES.TASK_DIALOG_LIST_ITEM_ICON\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n sx: STYLES.TASK_DIALOG_ICON\n }, icon)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n primary: primaryText,\n secondary: secondaryText\n })));\n //Собираем содержимое диалога\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_27__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_28__[\"default\"], {\n title: task.name,\n titleTypographyProps: {\n variant: \"h6\"\n },\n subheader: `${(0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateRF)(task.start)} - ${(0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.formatDateRF)(task.end)}`,\n action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n \"aria-label\": \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\",\n onClick: close\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], null, \"close\"))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_30__[\"default\"], {\n sx: STYLES.TASK_DIALOG_CARD_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], null, cardItem({\n icon: \"fast_forward\",\n primaryText: `${task.start_fact} ${task.meas}`,\n secondaryText: \"Запущено\"\n }), cardItem({\n icon: \"assessment\",\n primaryText: `${task.main_quant} ${task.meas}`,\n secondaryText: \"Количество план\"\n }), cardItem({\n icon: \"verified\",\n primaryText: `${task.rel_fact} ${task.meas}`,\n secondaryText: \"Количество сдано\"\n }), cardItem({\n icon: \"date_range\",\n primaryText: task.rep_date_to,\n secondaryText: \"Дата выпуска план\"\n }), legendDesc ? cardItem({\n listItemsStyle: legendDesc.style,\n icon: \"palette\",\n secondaryText: legendDesc.text\n }) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_31__[\"default\"], {\n disableSpacing: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n p: 2,\n display: \"flex\",\n justifyContent: \"center\",\n sx: STYLES.TASK_DIALOG_ACTION_CONTAINER\n }, (0,_core_utils__WEBPACK_IMPORTED_MODULE_8__.hasValue)(task.type) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n size: \"large\",\n variant: \"contained\",\n color: \"primary\",\n onClick: () => handleTaskDetailOpen(task.rn, task.type)\n }, task[\"detail_list\"]) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n color: \"textSecondary\"\n }, `Анализ отклонений недоступен${task[\"detail_list\"] ? `: ${task[\"detail_list\"]}` : \"\"}`))));\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель производственной программы\nconst MechRecCostProdPlans = () => {\n //Собственное состояние\n let [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n planCtlgs: [],\n planCtlgsLoaded: false,\n selectedPlans: [],\n selectedPlansElements: 0,\n selectedPlanCtlgSpecsLoaded: false,\n selectedPlanCtlg: null,\n selectedPlanCtlgMaxLevel: null,\n selectedPlanCtlgLevel: null,\n selectedPlanCtlgOutOfLimit: 0,\n selectedPlanCtlgSort: null,\n selectedPlanCtlgMenuItems: null,\n loadedCtlg: null,\n loadedPlans: [],\n loadedElements: 0,\n gantt: {},\n selectedTaskDetail: null,\n selectedTaskDetailType: null,\n planSpec: null\n });\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n ctlgName: \"\",\n haveDocs: false\n });\n\n //Массив отфильтрованных каталогов\n const filteredPlanCtgls = (0,_hooks__WEBPACK_IMPORTED_MODULE_9__.useFilteredPlanCtlgs)(state.planCtlgs, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__.MessagingCtx);\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__.BackEndCtx);\n\n //Подключение к контексту навигации\n const {\n getNavigationSearch\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_navigation__WEBPACK_IMPORTED_MODULE_3__.NavigationCtx);\n\n //Подключение к контексту сообщений\n const {\n showMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__.MessagingCtx);\n\n //Инициализация каталогов планов\n const initPlanCtlgs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n if (!state.init) {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_PP_CTLG_INIT\",\n args: {},\n respArg: \"COUT\",\n isArray: name => [\"XFCPRODPLAN_CRNS\", \"XCRN_PLANS\"].includes(name)\n });\n setState(pv => ({\n ...pv,\n init: true,\n planCtlgs: [...(data?.XFCPRODPLAN_CRNS || [])],\n planCtlgsLoaded: true\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.init, executeStored]);\n\n //Загрузка списка спецификаций каталога планов\n const loadPlanCtglSpecs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (level = null, sort = null) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLANSP_GET\",\n args: {\n NCRN: state.selectedPlanCtlg,\n CFCPRODPLANS: {\n VALUE: state.selectedPlans.length > 0 ? state.selectedPlans.join(\";\") : null,\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NLEVEL: level,\n SSORT_FIELD: sort,\n NFCPRODPLANSP: state.planSpec\n }\n });\n let doc = await parseProdPlanSpXML(data.COUT);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgMaxLevel: data.NMAX_LEVEL,\n selectedPlanCtlgLevel: level || level === 0 ? level : data.NMAX_LEVEL,\n selectedPlanCtlgOutOfLimit: data.NOUT_OF_LIMIT,\n selectedPlanCtlgSort: sort,\n selectedPlanCtlgMenuItems: [...Array(data.NMAX_LEVEL).keys()].map(el => el + 1),\n selectedPlanCtlgSpecsLoaded: true,\n gantt: {\n ...doc,\n tasks: [...(doc?.tasks || [])]\n },\n loadedCtlg: state.selectedPlanCtlg,\n loadedPlans: [...state.selectedPlans],\n loadedElements: state.selectedPlansElements,\n showPlanList: false\n }));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [executeStored, state.selectedPlanCtlg, state.selectedPlans, state.planSpec]);\n\n //Обработка нажатия на элемент в списке каталогов планов\n const handleCtlgClick = project => {\n //Если этот каталог не был выбран\n if (state.selectedPlanCtlg != project.NRN) {\n //Если выбран уже загруженный - укажем информацию о том, как он загружен\n if (project.NRN === state.loadedCtlg) {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: project.NRN,\n selectedPlans: [...pv.loadedPlans],\n selectedPlansElements: pv.loadedElements\n }));\n } else {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: project.NRN,\n selectedPlans: project.XCRN_PLANS.length === 1 ? [project.XCRN_PLANS[0].NRN] : [],\n selectedPlansElements: 0\n }));\n }\n } else {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: null,\n selectedPlans: [],\n selectedPlansElements: 0\n }));\n }\n };\n\n //Обработка нажатия на элемент в списке планов каталога\n const handleCtlgPlanClick = plan => {\n //Считываем обновленную информацию об отмеченных планах\n let newPlansInfo = updateCtlgPlanInfo(state.selectedPlans, plan);\n //Обновляем список отмеченных планов\n setState(pv => ({\n ...pv,\n selectedPlans: [...newPlansInfo.selectedPlans],\n selectedPlansElements: pv.selectedPlansElements + newPlansInfo.selectedPlansElements\n }));\n };\n\n //Обработка нажатия \"ОК\" при отборе планов\n const handleSelectedPlansOk = () => {\n //Загружаем диаграмму\n loadPlanCtglSpecs(null, SORT_REP_DATE_TO);\n };\n\n //Обработка нажатия \"Отмена\" при отборе планов\n const handleSelectedPlansCancel = () => {\n setState(pv => ({\n ...pv,\n selectedPlanCtlg: pv.loadedCtlg,\n selectedPlans: [...pv.loadedPlans] || [],\n selectedPlansElements: pv.loadedElements,\n showPlanList: false\n }));\n };\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const actionPrms = getNavigationSearch();\n if (actionPrms.NSPRN) setState(pv => ({\n ...pv,\n planSpec: parseInt(actionPrms.NSPRN),\n init: true\n }));else initPlanCtlgs();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //При смене выбранного каталога плана или при явном указании позиции спецификации плана\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (state.planSpec) loadPlanCtglSpecs(null, SORT_REP_DATE_TO);\n }, [state.planSpec, loadPlanCtglSpecs]);\n\n //Выбор уровня\n const handleChangeSelectLevel = selectedLevel => {\n loadPlanCtglSpecs(selectedLevel, state.selectedPlanCtlgSort);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgLevel: selectedLevel\n }));\n };\n\n //Выбор сортировки\n const handleChangeSelectSort = selectedSort => {\n loadPlanCtglSpecs(state.selectedPlanCtlgLevel, selectedSort);\n setState(pv => ({\n ...pv,\n selectedPlanCtlgSort: selectedSort\n }));\n };\n\n //При закрытии окна детализации\n const handleTaskDetailClose = () => {\n setState(pv => ({\n ...pv,\n selectedTaskDetail: null,\n selectedTaskDetailType: null\n }));\n };\n\n //При открытии окна детализации\n const handleTaskDetailOpen = (taskRn, taskType) => {\n setState(pv => ({\n ...pv,\n selectedTaskDetail: taskRn,\n selectedTaskDetailType: taskType\n }));\n };\n\n //При открытии окна информации об ограничении уровня\n const handleLevelLimitInfoOpen = () => {\n //Отображаем информацию\n showMsgInfo(`Размер производственной программы превышает предельно допустимый для одновременного отображения в виде диаграммы Ганта. \n Доступные для просмотра уровни вложенности ограничены. \n Вы можете просматривать производственную программу частями, используя действие \"Открытие панели Производственная программа\" в спецификации \"Выпуск\" \n раздела \"Планы и отчеты производства изделий\".`);\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, !state.planSpec ? /*#__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_32__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.PLANS_BUTTON,\n onClick: () => setState(pv => ({\n ...pv,\n showPlanList: !pv.showPlanList\n }))\n }, \"\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0438 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_33__[\"default\"], {\n anchor: \"left\",\n open: state.showPlanList,\n onClose: handleSelectedPlansCancel,\n sx: STYLES.PLANS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlanCtlgsList, {\n planCtlgs: filteredPlanCtgls,\n selectedPlans: state.selectedPlans,\n selectedPlanCtlg: state.selectedPlanCtlg,\n selectedPlansElements: state.selectedPlansElements,\n filter: filter,\n setFilter: setFilter,\n onCtlgClick: handleCtlgClick,\n onCtlgPlanClick: handleCtlgPlanClick,\n onCtlgPlansOk: handleSelectedPlansOk,\n onCtlgPlansCancel: handleSelectedPlansCancel\n }))) : null, state.init == true ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_34__[\"default\"], {\n container: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_34__[\"default\"], {\n item: true,\n xs: 12\n }, state.selectedPlanCtlgSpecsLoaded ? state.gantt.tasks.length === 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n pt: 3\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: state.planSpec ? \"Не найдено данных для выбранной позиции плана\" : \"В каталоге планов отсутствуют записи спецификации\"\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, state.selectedPlanCtlgMaxLevel ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS,\n p: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_DATE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_35__[\"default\"], {\n id: \"select-label-sort\"\n }, \"\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_36__[\"default\"], {\n labelId: \"select-label-sort\",\n id: \"select-sort\",\n value: state.selectedPlanCtlgSort,\n label: \"\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\",\n onChange: event => {\n handleChangeSelectSort(event.target.value);\n },\n defaultValue: state.selectedPlanCtlgLevel\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: SORT_REP_DATE_TO,\n key: \"1\"\n }, \"\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: SORT_REP_DATE,\n key: \"2\"\n }, \"\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL_CAPTION\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_35__[\"default\"], {\n id: \"select-label-level\"\n }, \"\\u0414\\u043E \\u0443\\u0440\\u043E\\u0432\\u043D\\u044F\"), state.selectedPlanCtlgOutOfLimit === 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n sx: STYLES.FILTERS_LEVEL_LIMIT_ICON,\n onClick: handleLevelLimitInfoOpen\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_26__[\"default\"], null, \"info\")) : null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_36__[\"default\"], {\n sx: STYLES.FILTERS_LIMIT_SELECT(state.selectedPlanCtlgOutOfLimit),\n labelId: \"select-label-level\",\n id: \"select-level\",\n value: state.selectedPlanCtlgLevel,\n label: \"\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C\",\n onChange: event => {\n handleChangeSelectLevel(event.target.value);\n },\n defaultValue: state.selectedPlanCtlgLevel\n }, state.selectedPlanCtlgMenuItems.map(el => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_37__[\"default\"], {\n value: el,\n key: el\n }, el))))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_gantt__WEBPACK_IMPORTED_MODULE_7__.P8PGantt, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_4__.P8P_GANTT_CONFIG_PROPS, state.gantt, {\n containerStyle: STYLES.GANTT_CONTAINER,\n titleStyle: STYLES.GANTT_TITLE,\n taskDialogRenderer: prms => taskDialogRenderer({\n ...prms,\n handleTaskDetailOpen\n })\n }))) : !state.loadedCtlg ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n pt: 3\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: state.planSpec ? \"Загружаю график для выбранной позиции плана...\" : \"Укажите каталог планов или планы для отображения их спецификаций\"\n })) : null)) : null, state.selectedTaskDetail ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_38__[\"default\"], {\n open: true,\n onClose: handleTaskDetailClose,\n fullWidth: true,\n maxWidth: \"xl\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_39__[\"default\"], null, [0, 1, 4].includes(state.selectedTaskDetailType) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__.CostRouteListsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_incomefromdeps__WEBPACK_IMPORTED_MODULE_11__.IncomFromDepsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n }), state.selectedTaskDetailType === 3 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n sx: STYLES.SECOND_TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datagrids_fcroutlst__WEBPACK_IMPORTED_MODULE_10__.CostRouteListsDataGrid, {\n task: state.selectedTaskDetail,\n taskType: state.selectedTaskDetailType\n })) : null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_40__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n onClick: handleTaskDetailClose\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\"))) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js?");
/***/ }),
@@ -1093,7 +1324,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 */ useFilter: () => (/* binding */ useFilter),\n/* harmony export */ useInsDepartment: () => (/* binding */ useInsDepartment),\n/* harmony export */ useMechRecDeptCostJobs: () => (/* binding */ useMechRecDeptCostJobs)\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 DATA_GRID_PAGE_SIZE_SMALL = 5;\nconst DATA_GRID_PAGE_SIZE_LARGE = 12;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы панели\nconst useMechRecDeptCostJobs = (subdiv, fullDate, workHours) => {\n //Собственное состояние - таблица данных\n const [costJobs, setCostJobs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0,\n date: null\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если указано подразделение и необходимо обновить, либо изменилась дата\n if (subdiv && (costJobs.reload || costJobs.date !== fullDate)) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_DEP_LOAD_DG_GET\",\n args: {\n NSUBDIV: subdiv,\n SMONTH_YEAR: fullDate,\n NWORKHOURS: workHours,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costJobs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costJobs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: 1\n },\n respArg: \"COUT\"\n });\n setCostJobs(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE,\n date: fullDate\n }));\n };\n loadData();\n }\n }, [costJobs.reload, subdiv, fullDate, costJobs.date, costJobs.orders, costJobs.pageNumber, executeStored, workHours, SERV_DATA_TYPE_CLOB]);\n return [costJobs, setCostJobs];\n};\n\n//Хук таблицы подразделений цехов\nconst useInsDepartment = fullDate => {\n //Собственное состояние\n let [insDepartments, setInsDepartments] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INS_DEPARTMENT_DG_GET\",\n args: {\n SMONTH_YEAR: fullDate,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_SMALL,\n NINCLUDE_DEF: insDepartments.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"DBGNDATE\", \"DENDDATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val\n });\n setInsDepartments(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL\n }));\n };\n if (insDepartments.reload) {\n loadData();\n }\n }, [executeStored, fullDate, insDepartments.dataLoaded, insDepartments.reload]);\n return [insDepartments, setInsDepartments];\n};\n\n//Хук для диалога фильтра\nconst useFilter = (currentMonth, currentYear) => {\n //Собственное состояние - фильтр\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: true,\n openedDepartment: false,\n date: {\n month: currentMonth,\n year: currentYear,\n fullDate: currentMonth.toString().padStart(2, \"0\") + \".\" + currentYear\n },\n department: {\n NRN: null,\n SCODE: \"\",\n SNAME: \"\"\n },\n workDays: 0,\n workHours: 0,\n totalWorkHours: 0\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 getWorkDays = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n newDate,\n init\n }) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.ENPERIOD_WORKDAYS_GET\",\n args: {\n SMONTH_YEAR: newDate.fullDate\n }\n });\n if (init) {\n setFilter(pv => ({\n ...pv,\n workDays: data.NWORKDAYS,\n init: false\n }));\n } else {\n setFilter(pv => ({\n ...pv,\n date: {\n ...newDate\n },\n department: filter.department,\n workDays: data.NWORKDAYS,\n totalWorkHours: data.NWORKDAYS * filter.workHours\n }));\n }\n }, [executeStored, filter]);\n\n //Считываем количество рабочих часов\n const getWorkHours = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async department => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INS_DEPARTMENT_WORKHOURS_GET\",\n args: {\n NSUBDIV: department.NRN\n }\n });\n setFilter(pv => ({\n ...pv,\n openedDepartment: false,\n department: {\n ...department\n },\n workHours: data.NWORKHOURS,\n totalWorkHours: Math.round(filter.workDays * data.NWORKHOURS)\n }));\n }, [executeStored, filter.workDays]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.init) {\n getWorkDays({\n newDate: {\n month: filter.date.month,\n year: filter.date.year,\n fullDate: filter.date.fullDate\n },\n init: filter.init\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filter.init]);\n return [filter, setFilter, getWorkDays, getWorkHours];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_jobs/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useFilter: () => (/* binding */ useFilter),\n/* harmony export */ useInsDepartment: () => (/* binding */ useInsDepartment),\n/* harmony export */ useMechRecDeptCostJobs: () => (/* binding */ useMechRecDeptCostJobs)\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 DATA_GRID_PAGE_SIZE_SMALL = 5;\nconst DATA_GRID_PAGE_SIZE_LARGE = 12;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Хук для основной таблицы панели\nconst useMechRecDeptCostJobs = (subdiv, fullDate, workHours) => {\n //Собственное состояние - таблица данных\n const [costJobs, setCostJobs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0,\n date: null\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__.BackEndCtx);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если указано подразделение и необходимо обновить, либо изменилась дата\n if (subdiv && (costJobs.reload || costJobs.date !== fullDate)) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCJOBS_DEP_LOAD_DG_GET\",\n args: {\n NSUBDIV: subdiv,\n SMONTH_YEAR: fullDate,\n NWORKHOURS: workHours,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costJobs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costJobs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: 1\n },\n respArg: \"COUT\"\n });\n setCostJobs(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE,\n date: fullDate\n }));\n };\n loadData();\n }\n }, [costJobs.reload, subdiv, fullDate, costJobs.date, costJobs.orders, costJobs.pageNumber, executeStored, workHours, SERV_DATA_TYPE_CLOB]);\n return [costJobs, setCostJobs];\n};\n\n//Хук таблицы подразделений цехов\nconst useInsDepartment = fullDate => {\n //Собственное состояние\n let [insDepartments, setInsDepartments] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INS_DEPARTMENT_DG_GET\",\n args: {\n SMONTH_YEAR: fullDate,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_SMALL,\n NINCLUDE_DEF: insDepartments.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => [\"DBGNDATE\", \"DENDDATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val\n });\n setInsDepartments(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL\n }));\n };\n if (insDepartments.reload) {\n loadData();\n }\n }, [executeStored, fullDate, insDepartments.dataLoaded, insDepartments.reload]);\n return [insDepartments, setInsDepartments];\n};\n\n//Хук для диалога фильтра\nconst useFilter = (currentMonth, currentYear) => {\n //Собственное состояние - фильтр\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: true,\n openedDepartment: false,\n date: {\n month: currentMonth,\n year: currentYear,\n fullDate: currentMonth.toString().padStart(2, \"0\") + \".\" + currentYear\n },\n department: {\n NRN: null,\n SCODE: \"\",\n SNAME: \"\"\n },\n workDays: 0,\n workHours: 0,\n totalWorkHours: 0\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Считываем количества рабочих дней\n const getWorkDays = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ({\n newDate,\n init\n }) => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.ENPERIOD_WORKDAYS_GET\",\n args: {\n SMONTH_YEAR: newDate.fullDate\n }\n });\n if (init) {\n setFilter(pv => ({\n ...pv,\n workDays: data.NWORKDAYS,\n init: false\n }));\n } else {\n setFilter(pv => ({\n ...pv,\n date: {\n ...newDate\n },\n department: filter.department,\n workDays: data.NWORKDAYS,\n totalWorkHours: data.NWORKDAYS * filter.workHours\n }));\n }\n }, [executeStored, filter]);\n\n //Считываем количество рабочих часов\n const getWorkHours = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async department => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INS_DEPARTMENT_WORKHOURS_GET\",\n args: {\n NSUBDIV: department.NRN\n }\n });\n setFilter(pv => ({\n ...pv,\n openedDepartment: false,\n department: {\n ...department\n },\n workHours: data.NWORKHOURS,\n totalWorkHours: Math.round(filter.workDays * data.NWORKHOURS)\n }));\n }, [executeStored, filter.workDays]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (filter.init) {\n getWorkDays({\n newDate: {\n month: filter.date.month,\n year: filter.date.year,\n fullDate: filter.date.fullDate\n },\n init: filter.init\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filter.init]);\n return [filter, setFilter, getWorkDays, getWorkHours];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_jobs/hooks.js?");
/***/ }),
@@ -1126,7 +1357,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 */ CostRouteListsDataGridDialog: () => (/* binding */ CostRouteListsDataGridDialog),\n/* harmony export */ rowExpandRender: () => (/* binding */ rowExpandRender)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.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 _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _fcroutlstsp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fcroutlstsp */ \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\");\n/* harmony import */ var _hooks_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks.js */ \"./app/panels/mech_rec_dept_cost_prod_plans/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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\"\n },\n TABLE: {\n paddingTop: \"15px\"\n },\n DIALOG_BUTTONS: {\n marginTop: \"10px\",\n width: \"240px\"\n }\n};\n\n//---------------------------------------------\n//Вспомогательные функции и компоненты\n//---------------------------------------------\n\n//Генерация представления расширения строки\nconst rowExpandRender = ({\n row\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n elevation: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcroutlstsp__WEBPACK_IMPORTED_MODULE_4__.CostRouteListsSpecsDataGrid, {\n mainRowRN: row.NRN\n }));\n};\n\n//Форматирование значений колонок\nconst dataCellRender = ({\n row,\n columnDef,\n handlePriorEditOpen\n}) => {\n //Если колонка \"Приоритет партии\"\n if (columnDef.name === \"NPRIOR_PARTY\") {\n return {\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, row[\"NPRIOR_PARTY\"], /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n edge: \"end\",\n title: \"\\u0418\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\",\n onClick: () => handlePriorEditOpen(row[\"NRN\"])\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"edit\")))\n };\n }\n return {\n data: row[columnDef]\n };\n};\n\n//Диалог с изменением приоритета маршрутного листа\nconst CostRouteListPriorChange = ({\n costRouteLists,\n setCostRouteLists,\n executeStored\n}) => {\n //Считывание изначального значения приоритета МЛ\n const initPrior = costRouteLists.rows[costRouteLists.rows.findIndex(obj => obj.NRN == costRouteLists.editPriorNRN)].NPRIOR_PARTY;\n\n //Собственное состояние - Значение приоритета\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initPrior);\n\n //При закрытии изменения приоритета партии\n const handlePriorEditClose = () => {\n setCostRouteLists(pv => ({\n ...pv,\n editPriorNRN: null\n }));\n };\n\n //При нажатии на изменение приоритета партии\n const handlePriorChange = () => {\n //Асинхронное изменение\n const asyncChange = async (NRN, PriorValue, rows) => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_PRIOR_PARTY_UPDATE\",\n args: {\n NFCROUTLST: NRN,\n SPRIOR_PARTY: PriorValue\n }\n });\n //Изменяем значение приоритета у нужного\n rows[rows.findIndex(obj => obj.NRN == NRN)].NPRIOR_PARTY = PriorValue;\n //Актуализируем строки таблицы\n setCostRouteLists(pv => ({\n ...pv,\n rows: rows\n }));\n //Закрываем окно\n handlePriorEditClose();\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Изменяем значение\n asyncChange(costRouteLists.editPriorNRN, state, costRouteLists.rows);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n open: true,\n onClose: () => handlePriorEditClose()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n name: \"editPriorValue\",\n label: \"\\u041D\\u043E\\u0432\\u043E\\u0435 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\\u0430\",\n variant: \"standard\",\n fullWidth: true,\n type: \"number\",\n value: state,\n onChange: event => {\n setState(event.target.value);\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handlePriorChange,\n variant: \"contained\",\n sx: STYLES.DIALOG_BUTTONS\n }, \"\\u0418\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: () => handlePriorEditClose(null)\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")));\n};\n\n//Контроль свойств - Диалог с изменением приоритета маршрутного листа\nCostRouteListPriorChange.propTypes = {\n costRouteLists: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().object).isRequired,\n setCostRouteLists: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func).isRequired,\n executeStored: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func).isRequired\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица маршрутных листов\nconst CostRouteListsDataGrid = ({\n task\n}) => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,_hooks_js__WEBPACK_IMPORTED_MODULE_5__.useCostRouteLists)(task);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__[\"BackEndСtx\"]);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setCostRouteLists(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setCostRouteLists(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При открытии изменения приоритета партии\n const handlePriorEditOpen = NRN => {\n setCostRouteLists(pv => ({\n ...pv,\n editPriorNRN: NRN\n }));\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"h6\"\n }, \"\\u0412 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\"), costRouteLists.dataLoaded ? /*#__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_11__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_GRID_CONFIG_PROPS, {\n columnsDef: costRouteLists.columnsDef,\n rows: costRouteLists.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n morePages: costRouteLists.morePages,\n reloading: costRouteLists.reload,\n expandable: true,\n rowExpandRender: rowExpandRender,\n onOrderChanged: handleOrderChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handlePriorEditOpen\n })\n })))) : null, costRouteLists.editPriorNRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CostRouteListPriorChange, {\n costRouteLists: costRouteLists,\n setCostRouteLists: setCostRouteLists,\n executeStored: executeStored\n }) : null);\n};\n\n//Контроль свойств - Таблица маршрутных листов\nCostRouteListsDataGrid.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().number).isRequired\n};\n\n//Диалог с таблицей сдачи продукции\nconst CostRouteListsDataGridDialog = ({\n task,\n onClose\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n open: true,\n onClose: onClose ? onClose : null,\n fullWidth: true,\n maxWidth: \"xl\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CostRouteListsDataGrid, {\n task: task\n })), onClose ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: onClose\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")) : null);\n};\n\n//Контроль свойств - Диалог с таблицей маршрутных листов\nCostRouteListsDataGridDialog.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().number).isRequired,\n onClose: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CostRouteListsDataGridDialog: () => (/* binding */ CostRouteListsDataGridDialog),\n/* harmony export */ rowExpandRender: () => (/* binding */ rowExpandRender)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Paper/Paper.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 _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Dialog/Dialog.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogContent/DialogContent.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/DialogActions/DialogActions.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/p8p_data_grid */ \"./app/components/p8p_data_grid.js\");\n/* harmony import */ var _config_wrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config_wrapper */ \"./app/config_wrapper.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _fcroutlstsp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fcroutlstsp */ \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlstsp.js\");\n/* harmony import */ var _hooks_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks.js */ \"./app/panels/mech_rec_dept_cost_prod_plans/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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\"\n },\n TABLE: {\n paddingTop: \"15px\"\n },\n DIALOG_BUTTONS: {\n marginTop: \"10px\",\n width: \"240px\"\n }\n};\n\n//---------------------------------------------\n//Вспомогательные функции и компоненты\n//---------------------------------------------\n\n//Генерация представления расширения строки\nconst rowExpandRender = ({\n row\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n elevation: 4\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcroutlstsp__WEBPACK_IMPORTED_MODULE_4__.CostRouteListsSpecsDataGrid, {\n mainRowRN: row.NRN\n }));\n};\n\n//Форматирование значений колонок\nconst dataCellRender = ({\n row,\n columnDef,\n handlePriorEditOpen\n}) => {\n //Если колонка \"Приоритет партии\"\n if (columnDef.name === \"NPRIOR_PARTY\") {\n return {\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, row[\"NPRIOR_PARTY\"], /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n edge: \"end\",\n title: \"\\u0418\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\",\n onClick: () => handlePriorEditOpen(row[\"NRN\"])\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null, \"edit\")))\n };\n }\n return {\n data: row[columnDef]\n };\n};\n\n//Диалог с изменением приоритета маршрутного листа\nconst CostRouteListPriorChange = ({\n costRouteLists,\n setCostRouteLists,\n executeStored\n}) => {\n //Считывание изначального значения приоритета МЛ\n const initPrior = costRouteLists.rows[costRouteLists.rows.findIndex(obj => obj.NRN == costRouteLists.editPriorNRN)].NPRIOR_PARTY;\n\n //Собственное состояние - Значение приоритета\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initPrior);\n\n //При закрытии изменения приоритета партии\n const handlePriorEditClose = () => {\n setCostRouteLists(pv => ({\n ...pv,\n editPriorNRN: null\n }));\n };\n\n //При нажатии на изменение приоритета партии\n const handlePriorChange = () => {\n //Асинхронное изменение\n const asyncChange = async (NRN, PriorValue, rows) => {\n try {\n await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_PRIOR_PARTY_UPDATE\",\n args: {\n NFCROUTLST: NRN,\n SPRIOR_PARTY: PriorValue\n }\n });\n //Изменяем значение приоритета у нужного\n rows[rows.findIndex(obj => obj.NRN == NRN)].NPRIOR_PARTY = PriorValue;\n //Актуализируем строки таблицы\n setCostRouteLists(pv => ({\n ...pv,\n rows: rows\n }));\n //Закрываем окно\n handlePriorEditClose();\n } catch (e) {\n throw new Error(e.message);\n }\n };\n //Изменяем значение\n asyncChange(costRouteLists.editPriorNRN, state, costRouteLists.rows);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n open: true,\n onClose: () => handlePriorEditClose()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n name: \"editPriorValue\",\n label: \"\\u041D\\u043E\\u0432\\u043E\\u0435 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\\u0430\",\n variant: \"standard\",\n fullWidth: true,\n type: \"number\",\n value: state,\n onChange: event => {\n setState(event.target.value);\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: handlePriorChange,\n variant: \"contained\",\n sx: STYLES.DIALOG_BUTTONS\n }, \"\\u0418\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C\")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: () => handlePriorEditClose(null)\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")));\n};\n\n//Контроль свойств - Диалог с изменением приоритета маршрутного листа\nCostRouteListPriorChange.propTypes = {\n costRouteLists: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().object).isRequired,\n setCostRouteLists: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func).isRequired,\n executeStored: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func).isRequired\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Таблица маршрутных листов\nconst CostRouteListsDataGrid = ({\n task\n}) => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,_hooks_js__WEBPACK_IMPORTED_MODULE_5__.useCostRouteLists)(task);\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_3__.BackEndCtx);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setCostRouteLists(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setCostRouteLists(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При открытии изменения приоритета партии\n const handlePriorEditOpen = NRN => {\n setCostRouteLists(pv => ({\n ...pv,\n editPriorNRN: NRN\n }));\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n variant: \"h6\"\n }, \"\\u0412 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\"), costRouteLists.dataLoaded ? /*#__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_11__[\"default\"], {\n sx: STYLES.TABLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8PDataGrid, _extends({}, _config_wrapper__WEBPACK_IMPORTED_MODULE_2__.P8P_DATA_GRID_CONFIG_PROPS, {\n columnsDef: costRouteLists.columnsDef,\n rows: costRouteLists.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n morePages: costRouteLists.morePages,\n reloading: costRouteLists.reload,\n expandable: true,\n rowExpandRender: rowExpandRender,\n onOrderChanged: handleOrderChanged,\n onPagesCountChanged: handlePagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n handlePriorEditOpen\n })\n })))) : null, costRouteLists.editPriorNRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CostRouteListPriorChange, {\n costRouteLists: costRouteLists,\n setCostRouteLists: setCostRouteLists,\n executeStored: executeStored\n }) : null);\n};\n\n//Контроль свойств - Таблица маршрутных листов\nCostRouteListsDataGrid.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().number).isRequired\n};\n\n//Диалог с таблицей сдачи продукции\nconst CostRouteListsDataGridDialog = ({\n task,\n onClose\n}) => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n open: true,\n onClose: onClose ? onClose : null,\n fullWidth: true,\n maxWidth: \"xl\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(CostRouteListsDataGrid, {\n task: task\n })), onClose ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: onClose\n }, \"\\u0417\\u0430\\u043A\\u0440\\u044B\\u0442\\u044C\")) : null);\n};\n\n//Контроль свойств - Диалог с таблицей маршрутных листов\nCostRouteListsDataGridDialog.propTypes = {\n task: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().number).isRequired,\n onClose: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.js?");
/***/ }),
@@ -1148,7 +1379,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 */ useCostRouteLists: () => (/* binding */ useCostRouteLists),\n/* harmony export */ useCostRouteListsSpecs: () => (/* binding */ useCostRouteListsSpecs),\n/* harmony export */ useDeptCostProdPlanInfo: () => (/* binding */ useDeptCostProdPlanInfo),\n/* harmony export */ useDeptCostProdPlans: () => (/* binding */ useDeptCostProdPlans),\n/* harmony export */ useFilteredPlans: () => (/* binding */ useFilteredPlans),\n/* harmony export */ useIncomFromDeps: () => (/* binding */ useIncomFromDeps)\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 DATA_GRID_PAGE_SIZE_SMALL = 5;\nconst DATA_GRID_PAGE_SIZE_LARGE = 10;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор каталогов по поисковой фразе и наличию планов\nconst useFilteredPlans = (plans, filter) => {\n const filteredPlans = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return plans.filter(catalog => catalog.SDOC_INFO.toString().toLowerCase().includes(filter.planName));\n }, [plans, filter]);\n return filteredPlans;\n};\n\n//Хук для планов\nconst useDeptCostProdPlans = month => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n showPlanList: false,\n rows: [],\n reload: true,\n selected: {},\n currentMonth: \"\"\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initPlans = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_DEPT_INIT\",\n args: {\n SMONTH: month\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLANS\",\n attributeValueProcessor: (name, val) => name === \"SPERIOD\" ? undefined : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n rows: [...(data?.XFCPRODPLANS || [])],\n loaded: true,\n reload: false,\n selected: {},\n currentMonth: month\n }));\n };\n //Если месяц указан и он не соответствует текущим данным\n if (month && month !== state.currentMonth) {\n initPlans();\n }\n }, [executeStored, month, state.currentMonth]);\n\n //Возвращаем данные\n return [state, setState];\n};\n\n//Хук для информации о плане\nconst useDeptCostProdPlanInfo = plan => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n showIncomeFromDeps: null,\n showFcroutelst: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\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 handleClear = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setState(pv => ({\n ...pv,\n init: false,\n showPlanList: false,\n showIncomeFromDeps: null,\n showFcroutelst: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\n })), []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setState(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setState(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если план выбран\n if (plan.NRN) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLANSP_DEPT_DG_GET\",\n args: {\n NFCPRODPLAN: plan.NRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(state.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: state.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: state.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"caption\" ? undefined : val\n });\n setState(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n init: true,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n //Если необходимо перезагрузить\n if (state.reload) {\n loadData();\n }\n }\n //Если план не выбран и есть какие-то данные\n if (!plan.NRN && state.dataLoaded) {\n //Очищаем их\n handleClear();\n }\n }, [plan.NRN, state.reload, state.orders, state.pageNumber, state.dataLoaded, executeStored, SERV_DATA_TYPE_CLOB, handleClear]);\n\n //Возвращаем данные\n return [state, setState, handleClear, handleOrderChanged, handlePagesCountChanged];\n};\n\n//Хук для таблицы маршрутных листов\nconst useCostRouteLists = task => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n editPriorNRN: null\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_DEPT_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_SMALL,\n NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setCostRouteLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL\n }));\n };\n if (costRouteLists.reload && task) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costRouteLists.dataLoaded, costRouteLists.orders, costRouteLists.pageNumber, costRouteLists.reload, executeStored, task]);\n\n //Возвращаем данные\n return [costRouteLists, setCostRouteLists];\n};\n\n//Хук для таблицы строк маршрутного листа\nconst useCostRouteListsSpecs = mainRowRN => {\n //Собственное состояние - таблица данных\n const [costRouteListsSpecs, setCostRouteListsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLSTSP_DEPT_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteListsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteListsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: costRouteListsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setCostRouteListsSpecs(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n if (costRouteListsSpecs.reload) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costRouteListsSpecs.dataLoaded, costRouteListsSpecs.orders, costRouteListsSpecs.pageNumber, costRouteListsSpecs.reload, executeStored, mainRowRN]);\n\n //Возвращаем данные\n return [costRouteListsSpecs, setCostRouteListsSpecs];\n};\n\n//Хук для таблицы сдачи продукции\nconst useIncomFromDeps = task => {\n //Собственное состояние - таблица данных\n const [incomFromDeps, setIncomFromDeps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INCOMEFROMDEPS_DEPT_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(incomFromDeps.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: incomFromDeps.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: incomFromDeps.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DDUE_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setIncomFromDeps(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n if (incomFromDeps.reload) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored, incomFromDeps.dataLoaded, incomFromDeps.orders, incomFromDeps.pageNumber, incomFromDeps.reload, task]);\n\n //Возвращаем данные\n return [incomFromDeps, setIncomFromDeps];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/hooks.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCostRouteLists: () => (/* binding */ useCostRouteLists),\n/* harmony export */ useCostRouteListsSpecs: () => (/* binding */ useCostRouteListsSpecs),\n/* harmony export */ useDeptCostProdPlanInfo: () => (/* binding */ useDeptCostProdPlanInfo),\n/* harmony export */ useDeptCostProdPlans: () => (/* binding */ useDeptCostProdPlans),\n/* harmony export */ useFilteredPlans: () => (/* binding */ useFilteredPlans),\n/* harmony export */ useIncomFromDeps: () => (/* binding */ useIncomFromDeps)\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 DATA_GRID_PAGE_SIZE_SMALL = 5;\nconst DATA_GRID_PAGE_SIZE_LARGE = 10;\n\n//-----------\n//Тело модуля\n//-----------\n\n//Клиентский отбор каталогов по поисковой фразе и наличию планов\nconst useFilteredPlans = (plans, filter) => {\n const filteredPlans = react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(() => {\n return plans.filter(catalog => catalog.SDOC_INFO.toString().toLowerCase().includes(filter.planName));\n }, [plans, filter]);\n return filteredPlans;\n};\n\n//Хук для планов\nconst useDeptCostProdPlans = month => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n loaded: false,\n showPlanList: false,\n rows: [],\n reload: true,\n selected: {},\n currentMonth: \"\"\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const initPlans = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLAN_DEPT_INIT\",\n args: {\n SMONTH: month\n },\n respArg: \"COUT\",\n isArray: name => name === \"XFCPRODPLANS\",\n attributeValueProcessor: (name, val) => name === \"SPERIOD\" ? undefined : val\n });\n setState(pv => ({\n ...pv,\n init: true,\n rows: [...(data?.XFCPRODPLANS || [])],\n loaded: true,\n reload: false,\n selected: {},\n currentMonth: month\n }));\n };\n //Если месяц указан и он не соответствует текущим данным\n if (month && month !== state.currentMonth) {\n initPlans();\n }\n }, [executeStored, month, state.currentMonth]);\n\n //Возвращаем данные\n return [state, setState];\n};\n\n//Хук для информации о плане\nconst useDeptCostProdPlanInfo = plan => {\n //Собственное состояние - таблица данных\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n init: false,\n showPlanList: false,\n showIncomeFromDeps: null,\n showFcroutelst: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\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__.BackEndCtx);\n\n //При необходимости очистки данных о плане\n const handleClear = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setState(pv => ({\n ...pv,\n init: false,\n showPlanList: false,\n showIncomeFromDeps: null,\n showFcroutelst: null,\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n fixedHeader: false,\n fixedColumns: 0\n })), []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = ({\n orders\n }) => setState(pv => ({\n ...pv,\n orders: [...orders],\n pageNumber: 1,\n reload: true\n }));\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = () => setState(pv => ({\n ...pv,\n pageNumber: pv.pageNumber + 1,\n reload: true\n }));\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n //Если план выбран\n if (plan.NRN) {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCPRODPLANSP_DEPT_DG_GET\",\n args: {\n NFCPRODPLAN: plan.NRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(state.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: state.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: state.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\",\n attributeValueProcessor: (name, val) => name === \"caption\" ? undefined : val\n });\n setState(pv => ({\n ...pv,\n ...data.XDATA_GRID,\n init: true,\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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n //Если необходимо перезагрузить\n if (state.reload) {\n loadData();\n }\n }\n //Если план не выбран и есть какие-то данные\n if (!plan.NRN && state.dataLoaded) {\n //Очищаем их\n handleClear();\n }\n }, [plan.NRN, state.reload, state.orders, state.pageNumber, state.dataLoaded, executeStored, SERV_DATA_TYPE_CLOB, handleClear]);\n\n //Возвращаем данные\n return [state, setState, handleClear, handleOrderChanged, handlePagesCountChanged];\n};\n\n//Хук для таблицы маршрутных листов\nconst useCostRouteLists = task => {\n //Собственное состояние - таблица данных\n const [costRouteLists, setCostRouteLists] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true,\n editPriorNRN: null\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__.BackEndCtx);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLST_DEPT_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteLists.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteLists.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_SMALL,\n NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setCostRouteLists(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_SMALL\n }));\n };\n if (costRouteLists.reload && task) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costRouteLists.dataLoaded, costRouteLists.orders, costRouteLists.pageNumber, costRouteLists.reload, executeStored, task]);\n\n //Возвращаем данные\n return [costRouteLists, setCostRouteLists];\n};\n\n//Хук для таблицы строк маршрутного листа\nconst useCostRouteListsSpecs = mainRowRN => {\n //Собственное состояние - таблица данных\n const [costRouteListsSpecs, setCostRouteListsSpecs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.FCROUTLSTSP_DEPT_DG_GET\",\n args: {\n NFCROUTLST: mainRowRN,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(costRouteListsSpecs.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: costRouteListsSpecs.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: costRouteListsSpecs.dataLoaded ? 0 : 1\n },\n respArg: \"COUT\"\n });\n setCostRouteListsSpecs(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n if (costRouteListsSpecs.reload) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, costRouteListsSpecs.dataLoaded, costRouteListsSpecs.orders, costRouteListsSpecs.pageNumber, costRouteListsSpecs.reload, executeStored, mainRowRN]);\n\n //Возвращаем данные\n return [costRouteListsSpecs, setCostRouteListsSpecs];\n};\n\n//Хук для таблицы сдачи продукции\nconst useIncomFromDeps = task => {\n //Собственное состояние - таблица данных\n const [incomFromDeps, setIncomFromDeps] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dataLoaded: false,\n columnsDef: [],\n orders: null,\n rows: [],\n reload: true,\n pageNumber: 1,\n morePages: true\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__.BackEndCtx);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n const loadData = async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_MECHREC.INCOMEFROMDEPS_DEPT_DG_GET\",\n args: {\n NFCPRODPLANSP: task,\n CORDERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(incomFromDeps.orders, {\n arrayNodeName: \"orders\"\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: incomFromDeps.pageNumber,\n NPAGE_SIZE: DATA_GRID_PAGE_SIZE_LARGE,\n NINCLUDE_DEF: incomFromDeps.dataLoaded ? 0 : 1\n },\n attributeValueProcessor: (name, val) => [\"DDUE_DATE\"].includes(name) ? (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.formatDateRF)(val) : val,\n respArg: \"COUT\"\n });\n setIncomFromDeps(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 reload: false,\n morePages: (data.XDATA_GRID.rows || []).length >= DATA_GRID_PAGE_SIZE_LARGE\n }));\n };\n if (incomFromDeps.reload) {\n loadData();\n }\n }, [SERV_DATA_TYPE_CLOB, executeStored, incomFromDeps.dataLoaded, incomFromDeps.orders, incomFromDeps.pageNumber, incomFromDeps.reload, task]);\n\n //Возвращаем данные\n return [incomFromDeps, setIncomFromDeps];\n};\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/hooks.js?");
/***/ }),
@@ -1181,7 +1412,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 */ MechRecDeptCostProdPlans: () => (/* binding */ MechRecDeptCostProdPlans),\n/* harmony export */ groupCellRender: () => (/* binding */ groupCellRender)\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_16__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.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/Drawer/Drawer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.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 _context_messaging__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _incomefromdeps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./incomefromdeps */ \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\");\n/* harmony import */ var _fcroutlst__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fcroutlst */ \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.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//Высота заголовка\nconst TITLE_HEIGHT = \"35px\";\n\n//Верхний отступ заголовка\nconst TITLE_PADDING_TOP = \"10px\";\n\n//Нижний отступ заголовка\nconst TITLE_PADDING_BOTTOM = \"20px\";\n\n//Стили\nconst STYLES = {\n PLANS_FILTER: {\n paddingTop: \"20px\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"5px\"\n },\n PLANS_FILTER_ITEM: {\n margin: \"0px 10px\",\n width: \"93%\"\n },\n PLANS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n PLANS_BUTTON: {\n position: \"absolute\"\n },\n PLANS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n }\n },\n CONTAINER: {\n textAlign: \"center\"\n },\n TITLE: {\n height: TITLE_HEIGHT,\n overflow: \"hidden\",\n paddingTop: TITLE_PADDING_TOP,\n paddingBottom: TITLE_PADDING_BOTTOM,\n display: \"inline-table\"\n },\n DATA_GRID_CONTAINER: {\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_2__.APP_BAR_HEIGHT} - ${TITLE_HEIGHT} - ${TITLE_PADDING_TOP} - ${TITLE_PADDING_BOTTOM} - 29px)`,\n width: \"98vw\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n },\n DATA_GRID_GROUP_CELL: {\n padding: \"2px\"\n },\n DATA_GRID_CELL: {\n padding: \"8px\",\n maxWidth: \"300px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"pre\"\n },\n DATA_GRID_CELL_STATUS: (currentStyle, row) => ({\n backgroundColor: getRowBackgroudColor(row),\n ...currentStyle\n }),\n DATA_GRID_CELL_PLAN_FACT: currentStyle => ({\n ...currentStyle,\n backgroundColor: \"lightgrey\"\n }),\n DATA_GRID_CELL_MATRES_CODE: (currentStyle, row) => ({\n backgroundColor: getRowBackgroudColor(row),\n ...currentStyle\n }),\n PLAN_FACT_VALUE: {\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"center\"\n },\n PLAN_FACT_DELIMITER: {\n padding: \"0px 5px\"\n },\n FACT_VALUE: {\n color: \"blue\"\n }\n};\n\n//Имена полей компонента\nconst SFIELD_MONTH = \"month\";\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Считывание текущего года и месяца в формате \"YYYY-MM\"\nconst getCurrentYearMonth = () => {\n return `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, \"0\")}`;\n};\n\n//Генерация представления ячейки заголовка группы\nconst groupCellRender = ({\n group\n}) => ({\n cellStyle: STYLES.DATA_GRID_GROUP_CELL,\n data: group.caption\n});\n\n//Вычисление цвета заливки для строки\nconst getRowBackgroudColor = row => {\n //Факт === План\n if (row[\"NMAIN_QUANT\"] === row[\"NREL_FACT\"]) return \"lightgreen\";\n //План <= (Факт + Запущено)\n if (row[\"NMAIN_QUANT\"] <= row[\"NREL_FACT\"] + row[\"NFCROUTLST_QUANT\"]) return \"lightblue\";\n //Сумма \"Количество план\" = 0 или < \"План\"\n if (row[\"NSUM_PLAN\"] === 0 || row[\"NSUM_PLAN\"] !== 0 && row[\"NSUM_PLAN\"] < row[\"NMAIN_QUANT\"]) {\n //\"Факт\" >= \"План\"\n if (row[\"NREL_FACT\"] >= row[\"NMAIN_QUANT\"]) return \"#F0E68C\";\n } else {\n //Сумма \"Количество факт\" >= сумма \"Количество план\"\n if (row[\"NSUM_FACT\"] >= row[\"NSUM_PLAN\"]) return \"#F0E68C\";\n }\n return \"lightcoral\";\n};\n\n//Генерация заливки строки исходя от значений\nconst dataCellRender = ({\n row,\n columnDef,\n onProdOrderClick,\n onMatresCodeClick\n}) => {\n //Описываем общие свойства\n let cellProps = {\n title: row[columnDef.name]\n };\n //Описываем общий стиль\n let cellStyle = STYLES.DATA_GRID_CELL;\n //Для колонки \"Статус\"\n if (columnDef.name === \"SSTATUS\") return {\n cellProps,\n cellStyle: STYLES.DATA_GRID_CELL_STATUS(cellStyle, row),\n data: row[columnDef]\n };\n //Для колонки даты\n if (columnDef.name.indexOf(\"PLAN_FACT\") >= 0) {\n //Получаем текущий день\n let curDay = new Date().getDate().toString().padStart(2, \"0\");\n //Формируем regex для проверки\n let regex = new RegExp(`N_${curDay}.*`, \"g\");\n //Если это значение текущего дня\n if (columnDef.name.match(regex)) cellStyle = STYLES.DATA_GRID_CELL_PLAN_FACT(cellStyle);\n //Если в колонке есть значение\n if (row[columnDef.name]) {\n //Разбиваем его на план/факт\n let values = row[columnDef.name].split(\"/\");\n //Разбиваем значения на блоки\n return {\n cellProps,\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.PLAN_FACT_VALUE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null, values[0]), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.PLAN_FACT_DELIMITER\n }, \"/\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.FACT_VALUE\n }, values[1]))\n };\n } else return {\n cellProps,\n cellStyle,\n data: row[columnDef]\n };\n }\n //Для колонки \"Заказ\"\n if (columnDef.name === \"SPROD_ORDER\") {\n return {\n cellProps,\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => onProdOrderClick(row[\"NRN\"])\n }, row[columnDef.name])\n };\n }\n //Для колонки \"Обозначение\"\n if (columnDef.name === \"SMATRES_CODE\") return {\n cellProps,\n cellStyle: STYLES.DATA_GRID_CELL_MATRES_CODE(cellStyle, row),\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => onMatresCodeClick(row[\"NRN\"])\n }, row[columnDef.name])\n };\n //Для всех остальных\n return {\n cellProps,\n cellStyle,\n data: row[columnDef]\n };\n};\n\n//Список каталогов планов\nconst PlanList = ({\n plans = [],\n selectedPlan,\n filter,\n onFilterChange,\n onClick\n} = {}) => {\n //При изменении фильтра\n const handleFilterChange = e => {\n onFilterChange && onFilterChange(e);\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_9__[\"default\"], {\n sx: STYLES.PLANS_FILTER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.PLANS_FILTER_ITEM,\n name: SFIELD_MONTH,\n label: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n type: \"month\",\n value: filter.month,\n InputLabelProps: {\n shrink: true\n },\n variant: \"standard\",\n fullWidth: true,\n onChange: handleFilterChange,\n required: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.PLANS_FILTER_ITEM,\n name: \"planName\",\n label: \"\\u041F\\u043B\\u0430\\u043D\",\n value: filter.planName,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleFilterChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, plans.map(p => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n key: p.NRN,\n selected: p.NRN === selectedPlan.NRN,\n onClick: () => onClick ? onClick(p) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, p.SDOC_INFO)\n })))));\n};\n\n//Контроль свойств - Список каталогов планов\nPlanList.propTypes = {\n plans: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n selectedPlan: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n onFilterChange: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель производственного плана цеха\nconst MechRecDeptCostProdPlans = () => {\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n planName: \"\",\n month: getCurrentYearMonth()\n });\n\n //Собственное состояние - таблица планов\n const [plans, setPlans] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useDeptCostProdPlans)(filter.month);\n\n //Собственное состояние - таблица информации\n const [planInfo, setPlanInfo, onPlanInfoClear, onPlanInfoOrderChanged, onPlanInfoPagesCountChanged] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useDeptCostProdPlanInfo)(plans.selected);\n\n //Массив отфильтрованных каталогов\n const filteredPlanCtgls = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useFilteredPlans)(plans.rows, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_6__[\"MessagingСtx\"]);\n\n //Выбор плана\n const selectPlan = plan => {\n setPlans(pv => ({\n ...pv,\n selected: plan,\n showPlanList: false\n }));\n onPlanInfoClear();\n };\n\n //Сброс выбора плана\n const unselectPlan = () => {\n setPlans(pv => ({\n ...pv,\n selected: {},\n showPlanList: false\n }));\n onPlanInfoClear();\n };\n\n //Обработка нажатия на элемент в списке планов\n const handlePlanClick = plan => {\n if (plans.selected.NRN != plan.NRN) selectPlan(plan);else unselectPlan();\n };\n\n //При изменении состояния сортировки информации плана\n const handlePlanInfoOrderChanged = ({\n orders\n }) => onPlanInfoOrderChanged({\n orders\n });\n\n //При изменении количества отображаемых страниц информации плана\n const handlePlanInfoPagesCountChanged = () => onPlanInfoPagesCountChanged();\n\n //При нажатии на \"Заказ\"\n const handleProdOrderClick = planSp => {\n setPlanInfo(pv => ({\n ...pv,\n showIncomeFromDeps: planSp\n }));\n };\n\n //При нажатии на \"Обозначение\"\n const handleMatresCodeClick = planSp => {\n setPlanInfo(pv => ({\n ...pv,\n showFcroutelst: planSp\n }));\n };\n\n //При изменении фильтров\n const handleFilterChange = e => setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.name === SFIELD_MONTH && !e.target.value ? getCurrentYearMonth() : e.target.value\n }));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.PLANS_BUTTON,\n onClick: () => setPlans(pv => ({\n ...pv,\n showPlanList: !pv.showPlanList\n }))\n }, \"\\u041F\\u043B\\u0430\\u043D\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n anchor: \"left\",\n open: plans.showPlanList,\n onClose: () => setPlans(pv => ({\n ...pv,\n showPlanList: false\n })),\n sx: STYLES.PLANS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlanList, {\n plans: filteredPlanCtgls,\n selectedPlan: plans.selected,\n filter: filter,\n onFilterChange: handleFilterChange,\n onClick: handlePlanClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n container: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n item: true,\n xs: 12\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, planInfo.dataLoaded ? planInfo.rows.length === 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"В плане отсутствуют записи спецификации\"\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, `Производственный план цеха №${plans.selected.SSUBDIV} на ${plans.selected.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null, /*#__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, {\n containerComponentProps: {\n elevation: 6,\n sx: STYLES.DATA_GRID_CONTAINER\n },\n fixedHeader: planInfo.fixedHeader,\n fixedColumns: planInfo.fixedColumns,\n columnsDef: planInfo.columnsDef,\n rows: planInfo.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.MEDIUM,\n morePages: planInfo.morePages,\n reloading: planInfo.reload,\n onOrderChanged: handlePlanInfoOrderChanged,\n onPagesCountChanged: handlePlanInfoPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n onProdOrderClick: handleProdOrderClick,\n onMatresCodeClick: handleMatresCodeClick\n }),\n groupCellRender: groupCellRender\n })))) : !plans.selected.NRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"Укажите план для отображения спецификаций\"\n }) : null))), planInfo.showIncomeFromDeps ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_incomefromdeps__WEBPACK_IMPORTED_MODULE_7__.IncomFromDepsDataGridDialog, {\n task: planInfo.showIncomeFromDeps,\n onClose: () => handleProdOrderClick(null)\n }) : null, planInfo.showFcroutelst ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcroutlst__WEBPACK_IMPORTED_MODULE_8__.CostRouteListsDataGridDialog, {\n task: planInfo.showFcroutelst,\n onClose: () => handleMatresCodeClick(null)\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MechRecDeptCostProdPlans: () => (/* binding */ MechRecDeptCostProdPlans),\n/* harmony export */ groupCellRender: () => (/* binding */ groupCellRender)\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_16__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.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/Drawer/Drawer.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.styles */ \"./app.styles.js\");\n/* harmony import */ var _components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_app_workspace */ \"./app/components/p8p_app_workspace.js\");\n/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks */ \"./app/panels/mech_rec_dept_cost_prod_plans/hooks.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 _context_messaging__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _incomefromdeps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./incomefromdeps */ \"./app/panels/mech_rec_dept_cost_prod_plans/incomefromdeps.js\");\n/* harmony import */ var _fcroutlst__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fcroutlst */ \"./app/panels/mech_rec_dept_cost_prod_plans/fcroutlst.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//Высота заголовка\nconst TITLE_HEIGHT = \"35px\";\n\n//Верхний отступ заголовка\nconst TITLE_PADDING_TOP = \"10px\";\n\n//Нижний отступ заголовка\nconst TITLE_PADDING_BOTTOM = \"20px\";\n\n//Стили\nconst STYLES = {\n PLANS_FILTER: {\n paddingTop: \"20px\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"5px\"\n },\n PLANS_FILTER_ITEM: {\n margin: \"0px 10px\",\n width: \"93%\"\n },\n PLANS_LIST_ITEM_PRIMARY: {\n wordWrap: \"break-word\"\n },\n PLANS_BUTTON: {\n position: \"absolute\"\n },\n PLANS_DRAWER: {\n width: \"350px\",\n display: \"inline-block\",\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: \"350px\",\n display: \"inline-block\",\n boxSizing: \"border-box\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n }\n },\n CONTAINER: {\n textAlign: \"center\"\n },\n TITLE: {\n height: TITLE_HEIGHT,\n overflow: \"hidden\",\n paddingTop: TITLE_PADDING_TOP,\n paddingBottom: TITLE_PADDING_BOTTOM,\n display: \"inline-table\"\n },\n DATA_GRID_CONTAINER: {\n height: `calc(100vh - ${_components_p8p_app_workspace__WEBPACK_IMPORTED_MODULE_2__.APP_BAR_HEIGHT} - ${TITLE_HEIGHT} - ${TITLE_PADDING_TOP} - ${TITLE_PADDING_BOTTOM} - 29px)`,\n width: \"98vw\",\n ..._app_styles__WEBPACK_IMPORTED_MODULE_1__.APP_STYLES.SCROLL\n },\n DATA_GRID_GROUP_CELL: {\n padding: \"2px\"\n },\n DATA_GRID_CELL: {\n padding: \"8px\",\n maxWidth: \"300px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"pre\"\n },\n DATA_GRID_CELL_STATUS: (currentStyle, row) => ({\n backgroundColor: getRowBackgroudColor(row),\n ...currentStyle\n }),\n DATA_GRID_CELL_PLAN_FACT: currentStyle => ({\n ...currentStyle,\n backgroundColor: \"lightgrey\"\n }),\n DATA_GRID_CELL_MATRES_CODE: (currentStyle, row) => ({\n backgroundColor: getRowBackgroudColor(row),\n ...currentStyle\n }),\n PLAN_FACT_VALUE: {\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"center\"\n },\n PLAN_FACT_DELIMITER: {\n padding: \"0px 5px\"\n },\n FACT_VALUE: {\n color: \"blue\"\n }\n};\n\n//Имена полей компонента\nconst SFIELD_MONTH = \"month\";\n\n//------------------------------------\n//Вспомогательные функции и компоненты\n//------------------------------------\n\n//Считывание текущего года и месяца в формате \"YYYY-MM\"\nconst getCurrentYearMonth = () => {\n return `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, \"0\")}`;\n};\n\n//Генерация представления ячейки заголовка группы\nconst groupCellRender = ({\n group\n}) => ({\n cellStyle: STYLES.DATA_GRID_GROUP_CELL,\n data: group.caption\n});\n\n//Вычисление цвета заливки для строки\nconst getRowBackgroudColor = row => {\n //Факт === План\n if (row[\"NMAIN_QUANT\"] === row[\"NREL_FACT\"]) return \"lightgreen\";\n //План <= (Факт + Запущено)\n if (row[\"NMAIN_QUANT\"] <= row[\"NREL_FACT\"] + row[\"NFCROUTLST_QUANT\"]) return \"lightblue\";\n //Сумма \"Количество план\" = 0 или < \"План\"\n if (row[\"NSUM_PLAN\"] === 0 || row[\"NSUM_PLAN\"] !== 0 && row[\"NSUM_PLAN\"] < row[\"NMAIN_QUANT\"]) {\n //\"Факт\" >= \"План\"\n if (row[\"NREL_FACT\"] >= row[\"NMAIN_QUANT\"]) return \"#F0E68C\";\n } else {\n //Сумма \"Количество факт\" >= сумма \"Количество план\"\n if (row[\"NSUM_FACT\"] >= row[\"NSUM_PLAN\"]) return \"#F0E68C\";\n }\n return \"lightcoral\";\n};\n\n//Генерация заливки строки исходя от значений\nconst dataCellRender = ({\n row,\n columnDef,\n onProdOrderClick,\n onMatresCodeClick\n}) => {\n //Описываем общие свойства\n let cellProps = {\n title: row[columnDef.name]\n };\n //Описываем общий стиль\n let cellStyle = STYLES.DATA_GRID_CELL;\n //Для колонки \"Статус\"\n if (columnDef.name === \"SSTATUS\") return {\n cellProps,\n cellStyle: STYLES.DATA_GRID_CELL_STATUS(cellStyle, row),\n data: row[columnDef]\n };\n //Для колонки даты\n if (columnDef.name.indexOf(\"PLAN_FACT\") >= 0) {\n //Получаем текущий день\n let curDay = new Date().getDate().toString().padStart(2, \"0\");\n //Формируем regex для проверки\n let regex = new RegExp(`N_${curDay}.*`, \"g\");\n //Если это значение текущего дня\n if (columnDef.name.match(regex)) cellStyle = STYLES.DATA_GRID_CELL_PLAN_FACT(cellStyle);\n //Если в колонке есть значение\n if (row[columnDef.name]) {\n //Разбиваем его на план/факт\n let values = row[columnDef.name].split(\"/\");\n //Разбиваем значения на блоки\n return {\n cellProps,\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.PLAN_FACT_VALUE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null, values[0]), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.PLAN_FACT_DELIMITER\n }, \"/\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.FACT_VALUE\n }, values[1]))\n };\n } else return {\n cellProps,\n cellStyle,\n data: row[columnDef]\n };\n }\n //Для колонки \"Заказ\"\n if (columnDef.name === \"SPROD_ORDER\") {\n return {\n cellProps,\n cellStyle,\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => onProdOrderClick(row[\"NRN\"])\n }, row[columnDef.name])\n };\n }\n //Для колонки \"Обозначение\"\n if (columnDef.name === \"SMATRES_CODE\") return {\n cellProps,\n cellStyle: STYLES.DATA_GRID_CELL_MATRES_CODE(cellStyle, row),\n data: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"hover\",\n onClick: () => onMatresCodeClick(row[\"NRN\"])\n }, row[columnDef.name])\n };\n //Для всех остальных\n return {\n cellProps,\n cellStyle,\n data: row[columnDef]\n };\n};\n\n//Список каталогов планов\nconst PlanList = ({\n plans = [],\n selectedPlan,\n filter,\n onFilterChange,\n onClick\n} = {}) => {\n //При изменении фильтра\n const handleFilterChange = e => {\n onFilterChange && onFilterChange(e);\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_9__[\"default\"], {\n sx: STYLES.PLANS_FILTER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.PLANS_FILTER_ITEM,\n name: SFIELD_MONTH,\n label: \"\\u041C\\u0435\\u0441\\u044F\\u0446\",\n type: \"month\",\n value: filter.month,\n InputLabelProps: {\n shrink: true\n },\n variant: \"standard\",\n fullWidth: true,\n onChange: handleFilterChange,\n required: true\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n sx: STYLES.PLANS_FILTER_ITEM,\n name: \"planName\",\n label: \"\\u041F\\u043B\\u0430\\u043D\",\n value: filter.planName,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleFilterChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, plans.map(p => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n key: p.NRN,\n selected: p.NRN === selectedPlan.NRN,\n onClick: () => onClick ? onClick(p) : null\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n primary: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n sx: STYLES.PLANS_LIST_ITEM_PRIMARY\n }, p.SDOC_INFO)\n })))));\n};\n\n//Контроль свойств - Список каталогов планов\nPlanList.propTypes = {\n plans: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array),\n selectedPlan: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func),\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),\n onFilterChange: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель производственного плана цеха\nconst MechRecDeptCostProdPlans = () => {\n //Состояние для фильтра каталогов\n const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n planName: \"\",\n month: getCurrentYearMonth()\n });\n\n //Собственное состояние - таблица планов\n const [plans, setPlans] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useDeptCostProdPlans)(filter.month);\n\n //Собственное состояние - таблица информации\n const [planInfo, setPlanInfo, onPlanInfoClear, onPlanInfoOrderChanged, onPlanInfoPagesCountChanged] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useDeptCostProdPlanInfo)(plans.selected);\n\n //Массив отфильтрованных каталогов\n const filteredPlanCtgls = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.useFilteredPlans)(plans.rows, filter);\n\n //Подключение к контексту сообщений\n const {\n InlineMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_6__.MessagingCtx);\n\n //Выбор плана\n const selectPlan = plan => {\n setPlans(pv => ({\n ...pv,\n selected: plan,\n showPlanList: false\n }));\n onPlanInfoClear();\n };\n\n //Сброс выбора плана\n const unselectPlan = () => {\n setPlans(pv => ({\n ...pv,\n selected: {},\n showPlanList: false\n }));\n onPlanInfoClear();\n };\n\n //Обработка нажатия на элемент в списке планов\n const handlePlanClick = plan => {\n if (plans.selected.NRN != plan.NRN) selectPlan(plan);else unselectPlan();\n };\n\n //При изменении состояния сортировки информации плана\n const handlePlanInfoOrderChanged = ({\n orders\n }) => onPlanInfoOrderChanged({\n orders\n });\n\n //При изменении количества отображаемых страниц информации плана\n const handlePlanInfoPagesCountChanged = () => onPlanInfoPagesCountChanged();\n\n //При нажатии на \"Заказ\"\n const handleProdOrderClick = planSp => {\n setPlanInfo(pv => ({\n ...pv,\n showIncomeFromDeps: planSp\n }));\n };\n\n //При нажатии на \"Обозначение\"\n const handleMatresCodeClick = planSp => {\n setPlanInfo(pv => ({\n ...pv,\n showFcroutelst: planSp\n }));\n };\n\n //При изменении фильтров\n const handleFilterChange = e => setFilter(pv => ({\n ...pv,\n [e.target.name]: e.target.name === SFIELD_MONTH && !e.target.value ? getCurrentYearMonth() : e.target.value\n }));\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.PLANS_BUTTON,\n onClick: () => setPlans(pv => ({\n ...pv,\n showPlanList: !pv.showPlanList\n }))\n }, \"\\u041F\\u043B\\u0430\\u043D\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n anchor: \"left\",\n open: plans.showPlanList,\n onClose: () => setPlans(pv => ({\n ...pv,\n showPlanList: false\n })),\n sx: STYLES.PLANS_DRAWER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlanList, {\n plans: filteredPlanCtgls,\n selectedPlan: plans.selected,\n filter: filter,\n onFilterChange: handleFilterChange,\n onClick: handlePlanClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n container: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n item: true,\n xs: 12\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, planInfo.dataLoaded ? planInfo.rows.length === 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"В плане отсутствуют записи спецификации\"\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, `Производственный план цеха №${plans.selected.SSUBDIV} на ${plans.selected.SPERIOD}`), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null, /*#__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, {\n containerComponentProps: {\n elevation: 6,\n sx: STYLES.DATA_GRID_CONTAINER\n },\n fixedHeader: planInfo.fixedHeader,\n fixedColumns: planInfo.fixedColumns,\n columnsDef: planInfo.columnsDef,\n rows: planInfo.rows,\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_4__.P8P_DATA_GRID_SIZE.MEDIUM,\n morePages: planInfo.morePages,\n reloading: planInfo.reload,\n onOrderChanged: handlePlanInfoOrderChanged,\n onPagesCountChanged: handlePlanInfoPagesCountChanged,\n dataCellRender: prms => dataCellRender({\n ...prms,\n onProdOrderClick: handleProdOrderClick,\n onMatresCodeClick: handleMatresCodeClick\n }),\n groupCellRender: groupCellRender\n })))) : !plans.selected.NRN ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n okBtn: false,\n text: \"Укажите план для отображения спецификаций\"\n }) : null))), planInfo.showIncomeFromDeps ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_incomefromdeps__WEBPACK_IMPORTED_MODULE_7__.IncomFromDepsDataGridDialog, {\n task: planInfo.showIncomeFromDeps,\n onClose: () => handleProdOrderClick(null)\n }) : null, planInfo.showFcroutelst ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_fcroutlst__WEBPACK_IMPORTED_MODULE_8__.CostRouteListsDataGridDialog, {\n task: planInfo.showFcroutelst,\n onClose: () => handleMatresCodeClick(null)\n }) : null);\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_dept_cost_prod_plans/mech_rec_dept_cost_prod_plans.js?");
/***/ }),
@@ -2754,7 +2985,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 */ MechRecHelp: () => (/* binding */ MechRecHelp)\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_145__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_145___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_145__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _img_1_1_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./img/1_1.png */ \"./app/panels/mech_rec_help/img/1_1.png\");\n/* harmony import */ var _img_1_2_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./img/1_2.png */ \"./app/panels/mech_rec_help/img/1_2.png\");\n/* harmony import */ var _img_1_3_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./img/1_3.png */ \"./app/panels/mech_rec_help/img/1_3.png\");\n/* harmony import */ var _img_1_4_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./img/1_4.png */ \"./app/panels/mech_rec_help/img/1_4.png\");\n/* harmony import */ var _img_1_5_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./img/1_5.png */ \"./app/panels/mech_rec_help/img/1_5.png\");\n/* harmony import */ var _img_2_1_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./img/2_1.png */ \"./app/panels/mech_rec_help/img/2_1.png\");\n/* harmony import */ var _img_2_2_png__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./img/2_2.png */ \"./app/panels/mech_rec_help/img/2_2.png\");\n/* harmony import */ var _img_2_3_png__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./img/2_3.png */ \"./app/panels/mech_rec_help/img/2_3.png\");\n/* harmony import */ var _img_2_4_png__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./img/2_4.png */ \"./app/panels/mech_rec_help/img/2_4.png\");\n/* harmony import */ var _img_2_5_png__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./img/2_5.png */ \"./app/panels/mech_rec_help/img/2_5.png\");\n/* harmony import */ var _img_21_1_png__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./img/21_1.png */ \"./app/panels/mech_rec_help/img/21_1.png\");\n/* harmony import */ var _img_21_2_png__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./img/21_2.png */ \"./app/panels/mech_rec_help/img/21_2.png\");\n/* harmony import */ var _img_21_3_png__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./img/21_3.png */ \"./app/panels/mech_rec_help/img/21_3.png\");\n/* harmony import */ var _img_3_1_png__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./img/3_1.png */ \"./app/panels/mech_rec_help/img/3_1.png\");\n/* harmony import */ var _img_31_1_png__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./img/31_1.png */ \"./app/panels/mech_rec_help/img/31_1.png\");\n/* harmony import */ var _img_31_2_png__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./img/31_2.png */ \"./app/panels/mech_rec_help/img/31_2.png\");\n/* harmony import */ var _img_31_3_png__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./img/31_3.png */ \"./app/panels/mech_rec_help/img/31_3.png\");\n/* harmony import */ var _img_31_4_png__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./img/31_4.png */ \"./app/panels/mech_rec_help/img/31_4.png\");\n/* harmony import */ var _img_31_5_png__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./img/31_5.png */ \"./app/panels/mech_rec_help/img/31_5.png\");\n/* harmony import */ var _img_31_6_png__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./img/31_6.png */ \"./app/panels/mech_rec_help/img/31_6.png\");\n/* harmony import */ var _img_31_7_png__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./img/31_7.png */ \"./app/panels/mech_rec_help/img/31_7.png\");\n/* harmony import */ var _img_31_8_png__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./img/31_8.png */ \"./app/panels/mech_rec_help/img/31_8.png\");\n/* harmony import */ var _img_31_9_png__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./img/31_9.png */ \"./app/panels/mech_rec_help/img/31_9.png\");\n/* harmony import */ var _img_31_10_png__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./img/31_10.png */ \"./app/panels/mech_rec_help/img/31_10.png\");\n/* harmony import */ var _img_32_1_png__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./img/32_1.png */ \"./app/panels/mech_rec_help/img/32_1.png\");\n/* harmony import */ var _img_32_2_png__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./img/32_2.png */ \"./app/panels/mech_rec_help/img/32_2.png\");\n/* harmony import */ var _img_32_3_png__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./img/32_3.png */ \"./app/panels/mech_rec_help/img/32_3.png\");\n/* harmony import */ var _img_33_1_png__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./img/33_1.png */ \"./app/panels/mech_rec_help/img/33_1.png\");\n/* harmony import */ var _img_33_2_png__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./img/33_2.png */ \"./app/panels/mech_rec_help/img/33_2.png\");\n/* harmony import */ var _img_33_3_png__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./img/33_3.png */ \"./app/panels/mech_rec_help/img/33_3.png\");\n/* harmony import */ var _img_33_4_png__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./img/33_4.png */ \"./app/panels/mech_rec_help/img/33_4.png\");\n/* harmony import */ var _img_34_1_png__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./img/34_1.png */ \"./app/panels/mech_rec_help/img/34_1.png\");\n/* harmony import */ var _img_34_2_png__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./img/34_2.png */ \"./app/panels/mech_rec_help/img/34_2.png\");\n/* harmony import */ var _img_34_3_png__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./img/34_3.png */ \"./app/panels/mech_rec_help/img/34_3.png\");\n/* harmony import */ var _img_34_4_png__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./img/34_4.png */ \"./app/panels/mech_rec_help/img/34_4.png\");\n/* harmony import */ var _img_34_5_png__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./img/34_5.png */ \"./app/panels/mech_rec_help/img/34_5.png\");\n/* harmony import */ var _img_34_6_png__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./img/34_6.png */ \"./app/panels/mech_rec_help/img/34_6.png\");\n/* harmony import */ var _img_34_7_png__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./img/34_7.png */ \"./app/panels/mech_rec_help/img/34_7.png\");\n/* harmony import */ var _img_34_8_png__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./img/34_8.png */ \"./app/panels/mech_rec_help/img/34_8.png\");\n/* harmony import */ var _img_35_1_png__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./img/35_1.png */ \"./app/panels/mech_rec_help/img/35_1.png\");\n/* harmony import */ var _img_41_1_png__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./img/41_1.png */ \"./app/panels/mech_rec_help/img/41_1.png\");\n/* harmony import */ var _img_41_2_png__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./img/41_2.png */ \"./app/panels/mech_rec_help/img/41_2.png\");\n/* harmony import */ var _img_41_3_png__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./img/41_3.png */ \"./app/panels/mech_rec_help/img/41_3.png\");\n/* harmony import */ var _img_41_4_png__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./img/41_4.png */ \"./app/panels/mech_rec_help/img/41_4.png\");\n/* harmony import */ var _img_41_5_png__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./img/41_5.png */ \"./app/panels/mech_rec_help/img/41_5.png\");\n/* harmony import */ var _img_41_6_png__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./img/41_6.png */ \"./app/panels/mech_rec_help/img/41_6.png\");\n/* harmony import */ var _img_41_7_png__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./img/41_7.png */ \"./app/panels/mech_rec_help/img/41_7.png\");\n/* harmony import */ var _img_41_8_png__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./img/41_8.png */ \"./app/panels/mech_rec_help/img/41_8.png\");\n/* harmony import */ var _img_41_9_png__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./img/41_9.png */ \"./app/panels/mech_rec_help/img/41_9.png\");\n/* harmony import */ var _img_41_10_png__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./img/41_10.png */ \"./app/panels/mech_rec_help/img/41_10.png\");\n/* harmony import */ var _img_41_11_png__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./img/41_11.png */ \"./app/panels/mech_rec_help/img/41_11.png\");\n/* harmony import */ var _img_41_12_png__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./img/41_12.png */ \"./app/panels/mech_rec_help/img/41_12.png\");\n/* harmony import */ var _img_42_1_png__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./img/42_1.png */ \"./app/panels/mech_rec_help/img/42_1.png\");\n/* harmony import */ var _img_42_2_png__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./img/42_2.png */ \"./app/panels/mech_rec_help/img/42_2.png\");\n/* harmony import */ var _img_42_3_png__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./img/42_3.png */ \"./app/panels/mech_rec_help/img/42_3.png\");\n/* harmony import */ var _img_42_4_png__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./img/42_4.png */ \"./app/panels/mech_rec_help/img/42_4.png\");\n/* harmony import */ var _img_43_1_png__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./img/43_1.png */ \"./app/panels/mech_rec_help/img/43_1.png\");\n/* harmony import */ var _img_43_2_png__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./img/43_2.png */ \"./app/panels/mech_rec_help/img/43_2.png\");\n/* harmony import */ var _img_43_3_png__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./img/43_3.png */ \"./app/panels/mech_rec_help/img/43_3.png\");\n/* harmony import */ var _img_43_4_png__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./img/43_4.png */ \"./app/panels/mech_rec_help/img/43_4.png\");\n/* harmony import */ var _img_43_5_png__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./img/43_5.png */ \"./app/panels/mech_rec_help/img/43_5.png\");\n/* harmony import */ var _img_43_6_png__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./img/43_6.png */ \"./app/panels/mech_rec_help/img/43_6.png\");\n/* harmony import */ var _img_43_7_png__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./img/43_7.png */ \"./app/panels/mech_rec_help/img/43_7.png\");\n/* harmony import */ var _img_43_8_png__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./img/43_8.png */ \"./app/panels/mech_rec_help/img/43_8.png\");\n/* harmony import */ var _img_44_1_png__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./img/44_1.png */ \"./app/panels/mech_rec_help/img/44_1.png\");\n/* harmony import */ var _img_44_2_png__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./img/44_2.png */ \"./app/panels/mech_rec_help/img/44_2.png\");\n/* harmony import */ var _img_44_3_png__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./img/44_3.png */ \"./app/panels/mech_rec_help/img/44_3.png\");\n/* harmony import */ var _img_44_4_png__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./img/44_4.png */ \"./app/panels/mech_rec_help/img/44_4.png\");\n/* harmony import */ var _img_44_5_png__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./img/44_5.png */ \"./app/panels/mech_rec_help/img/44_5.png\");\n/* harmony import */ var _img_44_6_png__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./img/44_6.png */ \"./app/panels/mech_rec_help/img/44_6.png\");\n/* harmony import */ var _img_44_7_png__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./img/44_7.png */ \"./app/panels/mech_rec_help/img/44_7.png\");\n/* harmony import */ var _img_44_8_png__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./img/44_8.png */ \"./app/panels/mech_rec_help/img/44_8.png\");\n/* harmony import */ var _img_44_9_png__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./img/44_9.png */ \"./app/panels/mech_rec_help/img/44_9.png\");\n/* harmony import */ var _img_44_10_png__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./img/44_10.png */ \"./app/panels/mech_rec_help/img/44_10.png\");\n/* harmony import */ var _img_45_1_png__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./img/45_1.png */ \"./app/panels/mech_rec_help/img/45_1.png\");\n/* harmony import */ var _img_45_2_png__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./img/45_2.png */ \"./app/panels/mech_rec_help/img/45_2.png\");\n/* harmony import */ var _img_45_3_png__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./img/45_3.png */ \"./app/panels/mech_rec_help/img/45_3.png\");\n/* harmony import */ var _img_45_4_png__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./img/45_4.png */ \"./app/panels/mech_rec_help/img/45_4.png\");\n/* harmony import */ var _img_45_5_png__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./img/45_5.png */ \"./app/panels/mech_rec_help/img/45_5.png\");\n/* harmony import */ var _img_45_6_png__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./img/45_6.png */ \"./app/panels/mech_rec_help/img/45_6.png\");\n/* harmony import */ var _img_45_7_png__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./img/45_7.png */ \"./app/panels/mech_rec_help/img/45_7.png\");\n/* harmony import */ var _img_45_8_png__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./img/45_8.png */ \"./app/panels/mech_rec_help/img/45_8.png\");\n/* harmony import */ var _img_45_9_png__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./img/45_9.png */ \"./app/panels/mech_rec_help/img/45_9.png\");\n/* harmony import */ var _img_45_10_png__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./img/45_10.png */ \"./app/panels/mech_rec_help/img/45_10.png\");\n/* harmony import */ var _img_46_1_png__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./img/46_1.png */ \"./app/panels/mech_rec_help/img/46_1.png\");\n/* harmony import */ var _img_46_2_png__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./img/46_2.png */ \"./app/panels/mech_rec_help/img/46_2.png\");\n/* harmony import */ var _img_46_3_png__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./img/46_3.png */ \"./app/panels/mech_rec_help/img/46_3.png\");\n/* harmony import */ var _img_46_4_png__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./img/46_4.png */ \"./app/panels/mech_rec_help/img/46_4.png\");\n/* harmony import */ var _img_46_5_png__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./img/46_5.png */ \"./app/panels/mech_rec_help/img/46_5.png\");\n/* harmony import */ var _img_46_6_png__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./img/46_6.png */ \"./app/panels/mech_rec_help/img/46_6.png\");\n/* harmony import */ var _img_47_1_png__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./img/47_1.png */ \"./app/panels/mech_rec_help/img/47_1.png\");\n/* harmony import */ var _img_47_2_png__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./img/47_2.png */ \"./app/panels/mech_rec_help/img/47_2.png\");\n/* harmony import */ var _img_47_3_png__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./img/47_3.png */ \"./app/panels/mech_rec_help/img/47_3.png\");\n/* harmony import */ var _img_47_4_png__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./img/47_4.png */ \"./app/panels/mech_rec_help/img/47_4.png\");\n/* harmony import */ var _img_47_5_png__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./img/47_5.png */ \"./app/panels/mech_rec_help/img/47_5.png\");\n/* harmony import */ var _img_47_6_png__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./img/47_6.png */ \"./app/panels/mech_rec_help/img/47_6.png\");\n/* harmony import */ var _img_47_7_png__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./img/47_7.png */ \"./app/panels/mech_rec_help/img/47_7.png\");\n/* harmony import */ var _img_47_8_png__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./img/47_8.png */ \"./app/panels/mech_rec_help/img/47_8.png\");\n/* harmony import */ var _img_47_9_png__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./img/47_9.png */ \"./app/panels/mech_rec_help/img/47_9.png\");\n/* harmony import */ var _img_47_10_png__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./img/47_10.png */ \"./app/panels/mech_rec_help/img/47_10.png\");\n/* harmony import */ var _img_47_11_png__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./img/47_11.png */ \"./app/panels/mech_rec_help/img/47_11.png\");\n/* harmony import */ var _img_47_12_png__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./img/47_12.png */ \"./app/panels/mech_rec_help/img/47_12.png\");\n/* harmony import */ var _img_48_1_png__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./img/48_1.png */ \"./app/panels/mech_rec_help/img/48_1.png\");\n/* harmony import */ var _img_48_2_png__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./img/48_2.png */ \"./app/panels/mech_rec_help/img/48_2.png\");\n/* harmony import */ var _img_48_3_png__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./img/48_3.png */ \"./app/panels/mech_rec_help/img/48_3.png\");\n/* harmony import */ var _img_48_4_png__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./img/48_4.png */ \"./app/panels/mech_rec_help/img/48_4.png\");\n/* harmony import */ var _img_49_1_png__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./img/49_1.png */ \"./app/panels/mech_rec_help/img/49_1.png\");\n/* harmony import */ var _img_49_2_png__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./img/49_2.png */ \"./app/panels/mech_rec_help/img/49_2.png\");\n/* harmony import */ var _img_49_3_png__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./img/49_3.png */ \"./app/panels/mech_rec_help/img/49_3.png\");\n/* harmony import */ var _img_410_1_png__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./img/410_1.png */ \"./app/panels/mech_rec_help/img/410_1.png\");\n/* harmony import */ var _img_410_2_png__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./img/410_2.png */ \"./app/panels/mech_rec_help/img/410_2.png\");\n/* harmony import */ var _img_410_3_png__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./img/410_3.png */ \"./app/panels/mech_rec_help/img/410_3.png\");\n/* harmony import */ var _img_410_4_png__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./img/410_4.png */ \"./app/panels/mech_rec_help/img/410_4.png\");\n/* harmony import */ var _img_410_5_png__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./img/410_5.png */ \"./app/panels/mech_rec_help/img/410_5.png\");\n/* harmony import */ var _img_410_6_png__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./img/410_6.png */ \"./app/panels/mech_rec_help/img/410_6.png\");\n/* harmony import */ var _img_410_7_png__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./img/410_7.png */ \"./app/panels/mech_rec_help/img/410_7.png\");\n/* harmony import */ var _img_411_1_png__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./img/411_1.png */ \"./app/panels/mech_rec_help/img/411_1.png\");\n/* harmony import */ var _img_411_2_png__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./img/411_2.png */ \"./app/panels/mech_rec_help/img/411_2.png\");\n/* harmony import */ var _img_411_3_png__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./img/411_3.png */ \"./app/panels/mech_rec_help/img/411_3.png\");\n/* harmony import */ var _img_411_4_png__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./img/411_4.png */ \"./app/panels/mech_rec_help/img/411_4.png\");\n/* harmony import */ var _img_412_1_png__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./img/412_1.png */ \"./app/panels/mech_rec_help/img/412_1.png\");\n/* harmony import */ var _img_412_2_png__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./img/412_2.png */ \"./app/panels/mech_rec_help/img/412_2.png\");\n/* harmony import */ var _img_412_3_png__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./img/412_3.png */ \"./app/panels/mech_rec_help/img/412_3.png\");\n/* harmony import */ var _img_412_4_png__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./img/412_4.png */ \"./app/panels/mech_rec_help/img/412_4.png\");\n/* harmony import */ var _img_413_1_png__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./img/413_1.png */ \"./app/panels/mech_rec_help/img/413_1.png\");\n/* harmony import */ var _img_413_2_png__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./img/413_2.png */ \"./app/panels/mech_rec_help/img/413_2.png\");\n/* harmony import */ var _img_413_3_png__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./img/413_3.png */ \"./app/panels/mech_rec_help/img/413_3.png\");\n/* harmony import */ var _img_413_4_png__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./img/413_4.png */ \"./app/panels/mech_rec_help/img/413_4.png\");\n/* harmony import */ var _img_413_5_png__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./img/413_5.png */ \"./app/panels/mech_rec_help/img/413_5.png\");\n/* harmony import */ var _img_414_1_png__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./img/414_1.png */ \"./app/panels/mech_rec_help/img/414_1.png\");\n/* harmony import */ var _img_414_2_png__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./img/414_2.png */ \"./app/panels/mech_rec_help/img/414_2.png\");\n/* harmony import */ var _img_414_3_png__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./img/414_3.png */ \"./app/panels/mech_rec_help/img/414_3.png\");\n/* harmony import */ var _img_add1_1_png__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./img/add1_1.png */ \"./app/panels/mech_rec_help/img/add1_1.png\");\n/* harmony import */ var _img_add1_2_png__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./img/add1_2.png */ \"./app/panels/mech_rec_help/img/add1_2.png\");\n/* harmony import */ var _img_add1_3_png__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./img/add1_3.png */ \"./app/panels/mech_rec_help/img/add1_3.png\");\n/* harmony import */ var _img_add1_4_png__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./img/add1_4.png */ \"./app/panels/mech_rec_help/img/add1_4.png\");\n/* harmony import */ var _img_add1_5_png__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./img/add1_5.png */ \"./app/panels/mech_rec_help/img/add1_5.png\");\n/* harmony import */ var _img_add1_6_png__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./img/add1_6.png */ \"./app/panels/mech_rec_help/img/add1_6.png\");\n/* harmony import */ var _img_add1_7_png__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./img/add1_7.png */ \"./app/panels/mech_rec_help/img/add1_7.png\");\n/* harmony import */ var _img_add1_8_png__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./img/add1_8.png */ \"./app/panels/mech_rec_help/img/add1_8.png\");\n/* harmony import */ var _img_add1_9_png__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./img/add1_9.png */ \"./app/panels/mech_rec_help/img/add1_9.png\");\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 //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n\n//---------\n//Константы\n//---------\n\n//Оглавление\nconst CONTENT = [{\n id: \"prg1\",\n caption: \"1. О структуре производства\"\n}, {\n id: \"prg2\",\n caption: \"2. НСИ о продукции\"\n}, {\n id: \"prg3\",\n caption: \"3. Планирование выпуска продукции\"\n}, {\n id: \"prg4\",\n caption: \"4. Оперативное управление производством\"\n}, {\n id: \"add1\",\n caption: \"Приложение: Краткая инструкция по настройке интерфейса\"\n}];\n\n//Стили\nconst STYLES = {\n IMG_CONT: {\n textAlign: \"center\",\n padding: \"10px\"\n },\n IMG: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n PRGF_TABLE: {\n paddingTop: \"20px\",\n paddingBottom: \"20px\",\n display: \"flex\",\n justifyContent: \"center\"\n },\n TABLE: {\n width: \"80%\"\n },\n TABLE_TITLE: {\n backgroundColor: \"lightgray\"\n },\n TABLE_SUBTITLE: {\n textAlign: \"center\",\n backgroundColor: \"#f3eded\",\n fontWeight: \"bold\"\n },\n FAB_BACK: {\n position: \"absolute\",\n right: \"20px\",\n marginTop: \"20px\"\n }\n};\n\n//--------------------------------\n//Вспомогательные функции и классы\n//--------------------------------\n\n//Переход к элементу страницы\nconst scrollToElement = id => document.getElementById(id).scrollIntoView();\n\n//Заголовок первого уровня\nconst Hdr1 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h3\",\n color: \"primary\"\n}), children);\n\n//Контроль свойств - Заголовок первого уровня\nHdr1.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Заголовок второго уровня\nconst Hdr2 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h4\",\n color: \"secondary\"\n}), children);\n\n//Контроль свойств - Заголовок второго уровня\nHdr2.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Заголовок третьего уровня\nconst Hdr3 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h5\",\n color: \"text.primary\"\n}), children);\n\n//Контроль свойств - Заголовок третьего уровня\nHdr3.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Параграф\nconst Prgf = ({\n style,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], {\n sx: style,\n component: \"div\",\n align: \"justify\"\n}, children);\n\n//Контроль свойств - Параграф\nPrgf.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().object),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Изображение\nconst Img = ({\n src\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.IMG_CONT\n}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n src: `./${src}`,\n style: STYLES.IMG\n}));\n\n//Контроль свойств - Изображение\nImg.propTypes = {\n src: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired\n};\n\n//Ссылка на раздел Системы\nconst UnitLink = ({\n unitCode,\n children\n}) => {\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__[\"ApplicationСtx\"]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => pOnlineShowUnit({\n unitCode\n })\n }, children);\n};\n\n//Контроль свойств - Ссылка на раздел Системы\nUnitLink.propTypes = {\n unitCode: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Ссылка на главу инструкции\nconst ChapterLink = ({\n id,\n dstId,\n onClick,\n children\n}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], _extends({}, id ? {\n id\n } : {}, {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => {\n scrollToElement(dstId);\n if (onClick && id) onClick(id);\n }\n }), children);\n};\n\n//Контроль свойств - Ссылка на главу инструкции\nChapterLink.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n dstId: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().func),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Ссылка на информационную панель\nconst PanelLink = ({\n panelName,\n children\n}) => {\n //Подключение к контексту приложения\n const {\n configUrlBase,\n findPanelByName,\n pOnlineShowTab\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__[\"ApplicationСtx\"]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => {\n const panel = findPanelByName(panelName);\n if (panel) pOnlineShowTab({\n id: panel.name,\n url: `${configUrlBase}${panel.url}`,\n caption: panel.caption\n });\n }\n }, children);\n};\n\n//Контроль свойств - Ссылка на информационную панель\nPanelLink.propTypes = {\n panelName: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель пользовательской инструкции\nconst MechRecHelp = () => {\n //Собственное состояние\n const [navStack, setNavStack] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Переход по оглавлению\n const handleTitleClick = id => {\n scrollToElement(id);\n setNavStack([]);\n };\n\n //Обработка на нажатие ссылки на раздел\n const handleChapterLinkClick = backId => {\n const tmp = [...navStack];\n tmp.push(backId);\n setNavStack(tmp);\n };\n\n //Обработка нажатия на кнопку \"Назад\"\n const handleBackClick = () => {\n if (navStack.length > 0) {\n const tmp = [...navStack];\n const backId = tmp.pop();\n scrollToElement(backId);\n setNavStack(tmp);\n }\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], null, navStack.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_148__[\"default\"], {\n variant: \"extended\",\n color: \"primary\",\n sx: STYLES.FAB_BACK,\n onClick: handleBackClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_149__[\"default\"], null, \"arrow_back_ios\"), _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.NAVIGATE_BACK) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n container: true,\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n item: true,\n xs: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], {\n variant: \"button\"\n }, \"\\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_151__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_152__[\"default\"], null, CONTENT.map((c, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_153__[\"default\"], {\n disablePadding: true,\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_154__[\"default\"], {\n onClick: () => handleTitleClick(c.id)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_155__[\"default\"], {\n primary: c.caption\n })))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n item: true,\n xs: 10,\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], {\n p: 2,\n style: {\n maxHeight: \"91vh\",\n overflow: \"auto\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr1, null, \"\\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg1\"\n }, \"1. \\u041E \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043D\\u0430 \\u0448\\u0442\\u0430\\u0442\\u043D\\u0430\\u044F \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u0430 \\u043F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u044F \\u0438 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0448\\u0442\\u0430\\u0442\\u043D\\u043E\\u0439 \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u044B \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_1_png__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0441\\u043E\\u0441\\u0442\\u043E\\u0438\\u0442 \\u0438\\u0437 4 \\u0446\\u0435\\u0445\\u043E\\u0432, \\u0434\\u043B\\u044F \\u0446\\u0435\\u0445\\u043E\\u0432 \\u2116 2 \\u0438 \\u2116 4 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438. \\u0423\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u2116 2 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0438 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0430 \\u043F\\u0440\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_2_png__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0438 \\u0432\\u043D\\u0443\\u0442\\u0440\\u0438\\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u0443\\u0447\\u0435\\u0442\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432, \\u043F\\u043E\\u043A\\u0443\\u043F\\u043D\\u044B\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u041A\\u0418), \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0414\\u0421\\u0415) \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u044B. \\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u043F\\u0435\\u0440\\u0435\\u0447\\u043D\\u044F \\u0441\\u043A\\u043B\\u0430\\u0434\\u043E\\u0432 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u0421\\u043A\\u043B\\u0430\\u0434\\u044B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_3_png__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0426\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0426\\u041C\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0443\\u0447\\u0435\\u0442\\u0430 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u043E\\u0442 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u0449\\u0438\\u043A\\u043E\\u0432 \\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445\\u0430. \\u0421\\u043A\\u043B\\u0430\\u0434\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0443\\u0447\\u0435\\u0442\\u0430 \\u0432 \\u0446\\u0435\\u0445\\u0435 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u044F \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421, \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u044F \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u043E\\u0442 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438 \\u043E\\u0442 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430, \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432, \\u041F\\u041A\\u0418 \\u0438 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430. \\u041D\\u0430 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0421\\u0413\\u041F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0441\\u0434\\u0430\\u0447\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_4_png__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0434\\u043B\\u044F \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430 \\u2116 2 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u043E \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435. \\u041F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043C\\u043E\\u0436\\u043D\\u043E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_5_png__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg2\"\n }, \"2. \\u041D\\u0421\\u0418 \\u043E \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E-\\u0441\\u043F\\u0440\\u0430\\u0432\\u043E\\u0447\\u043D\\u0430\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041D\\u0421\\u0418) \\u043E \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u0430 \\u0434\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0447\\u0435\\u0440\\u0435\\u0437 \\u043F\\u0443\\u043D\\u043A\\u0442 \\u0433\\u043E\\u043B\\u043E\\u0432\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E \\xAB\\u0423\\u0447\\u0435\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_1_png__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u041D\\u0421\\u0418 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u044B, \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E. \\u041F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0435\\u0445\\u043E\\u0434\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u044B \\u043E\\u0442\\u043A\\u0440\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043A\\u043D\\u043E \\xAB\\u041E\\u0442\\u0431\\u043E\\u0440\\xBB, \\u043D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0439\\u0442\\u0435 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\u043A\\u043D\\u043E\\u043F\\u043A\\u0443 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u0430\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0438\\u043C\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u0430 \\u0432 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0430\\u0445: \"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_2_png__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u0438 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043A\\u043E\\u043D\\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u043E\\u0440\\u0441\\u043A\\u0438\\u0445 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\xAB\\u0412\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u043E\\u0441\\u043D\\u0430\\u0441\\u0442\\u043A\\u0438\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_3_png__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u043D\\u043E\\u0440\\u043C\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0433\\u043E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043A\\u0430\\u0440\\u0442\\u044B\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_4_png__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0438 \\u0414\\u0421\\u0415 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0445 \\u043A\\u0430\\u0440\\u0442 \\u0442\\u0435\\u0445\\u043D\\u043E\\u043B\\u043E\\u0433\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u044B\\xBB \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043D\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F, \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442 \\u0414\\u0421\\u0415 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u0435\\u0442\\u0441\\u044F \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u043E\\u0439 \\u043A\\u0430\\u0440\\u0442\\u043E\\u0439.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043F\\u0440\\u0430\\u0432\\u043E\\u0447\\u043D\\u0438\\u043A \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432, \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0438\\u043C\\u044B\\u0445 \\u0438 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043B\\u044F\\u0435\\u043C\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438, \\u043D\\u0430\\u0445\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0418\\u043D\\u0436\\u0435\\u043D\\u0435\\u0440\\u043D\\u044B\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_5_png__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"2.1. \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u044B \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0439 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u0438 \\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u044B \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u044B (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u0421). \\u041F\\u0421 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0418\\u043D\\u0436\\u0435\\u043D\\u0435\\u0440\\u043D\\u044B\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435\\xBB \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043D\\u043E\\u0432\\u044B\\u0435 \\u041F\\u0421 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u0443\\u044E\\u0449\\u0438\\u0435, \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_1_png__WEBPACK_IMPORTED_MODULE_13__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438, \\u043A\\u0430\\u043A \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u043E\\u0431 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0438. \\u041F\\u0421 \\u2013 \\u044D\\u0442\\u043E \\u0438\\u0435\\u0440\\u0430\\u0440\\u0445\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u043E-\\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u0430\\u044F \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u044C \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u0430 \\u041F\\u0421 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041F\\u0421 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_2_png__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u0438 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\xAB\\u043A\\u0430\\u043A\\u043E\\u0439 \\u041F\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u043F\\u0435\\u0440\\u0435\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u043A\\u0430\\u043A \\xAB\\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u043C\\u044B\\u0435 \\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_3_png__WEBPACK_IMPORTED_MODULE_15__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg3\"\n }, \"3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0430\\u0431\\u043E\\u0442\\u0430 \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u0432 \\u0442.\\u0447. \\u0438 \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_3_1_png__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\xAB\\u041F\\u0410\\u0420\\u0423\\u0421 \\u041F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u0435 8\\xBB \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u044B \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u041A\\u0430\\u0442\\u0435\\u0433\\u043E\\u0440\\u0438\\u0438 \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u041F\\u0435\\u0440\\u0432\\u0438\\u0447\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D\\xBB - \\u043F\\u043B\\u0430\\u043D\\u044B \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB - \\u043A\\u0430\\u043B\\u0435\\u043D\\u0434\\u0430\\u0440\\u043D\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D-\\u0433\\u0440\\u0430\\u0444\\u0438\\u043A\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430/\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439, \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043A \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0443 \\u0432 \\u043F\\u0435\\u0440\\u0432\\u0438\\u0447\\u043D\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u0435;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\xAB\\u0426\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D\\xBB - \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043C\\u0435\\u0441\\u044F\\u0446, \\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B), \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u043C\\u044B\\u0435 \\u0438\\u0437 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u044B \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u043C\\u043E\\u0433\\u0443\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\u0441\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041D\\u0430 \\u0417\\u0430\\u043A\\u0430\\u0437 \\u2013 \\u0434\\u043B\\u044F \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 (\\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0434\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u0430 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u043A\\u0438 \\u0441 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u0438\\u0442\\u0435\\u043B\\u0435\\u043C) \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0441 \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u0435\\u043C \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u041D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B, \\u043F\\u043E\\u043B\\u0443\\u0433\\u043E\\u0434\\u0438\\u0435, \\u0433\\u043E\\u0434) \\u2013 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043E\\u0434\\u0438\\u043D \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u043A\\u043B\\u044E\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u044F \\u0432\\u0441\\u0435\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432, \\u0434\\u043B\\u044F \\u043A\\u043E\\u0442\\u043E\\u0440\\u043E\\u0439 \\u0434\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u043E\\u043F\\u0430\\u0434\\u0430\\u0435\\u0442 \\u0432 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u043F\\u043B\\u0430\\u043D\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u043D \\u0432\\u0430\\u0440\\u0438\\u0430\\u043D\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\xAB\\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg31\"\n }, \"3.1. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\\xBB, \\u0432 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0435 \\u0441 \\u0438\\u043C\\u0435\\u043D\\u0435\\u043C \\u0412\\u0430\\u0448\\u0435\\u0433\\u043E \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_1_png__WEBPACK_IMPORTED_MODULE_17__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, {\n style: {\n backgroundColor: \"LightYellow\",\n padding: \"5px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"b\", {\n style: {\n color: \"red\"\n }\n }, \"\\u0412\\u043D\\u0438\\u043C\\u0430\\u043D\\u0438\\u0435!!!\"), \" \\u041F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0435, \\u043D\\u0435 \\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0443\\u044E\\u0449\\u0435\\u043C \\u0412\\u0430\\u0448\\u0435\\u043C\\u0443 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044E, \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0441\\u043E\\u043E\\u0431\\u0449\\u0435\\u043D\\u0438\\u0435 \\u043E\\u0431 \\u043E\\u0448\\u0438\\u0431\\u043A\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_2_png__WEBPACK_IMPORTED_MODULE_18__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0434\\u0430\\u0442\\u0443 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0438 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB. \\u041E\\u0441\\u0442\\u0430\\u043B\\u044C\\u043D\\u044B\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_3_png__WEBPACK_IMPORTED_MODULE_19__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043D\\u0430 2024 \\u0433\\u043E\\u0434 \\u0438 \\u0441 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0435\\u0439 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_4_png__WEBPACK_IMPORTED_MODULE_20__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430\\u043C\\u0438 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB, \\u044F\\u0432\\u043B\\u044F\\u044E\\u0449\\u0438\\u043C\\u0438\\u0441\\u044F \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\\u043C\\u0438 \\u0434\\u043B\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0432 \\xAB\\u041F\\u0410\\u0420\\u0423\\u0421 \\u041F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u0435 8\\xBB \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044E\\u0442\\u0441\\u044F \\u0438\\u0437 \\u0434\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u043E\\u0432 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u043A\\u0438, \\u043F\\u0440\\u043E\\u0435\\u043A\\u0442\\u043E\\u0432 \\u041E\\u041A\\u0420 \\u0441 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u043E\\u043C \\u043E\\u043F\\u044B\\u0442\\u043D\\u043E\\u0439 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0438\\u043B\\u0438 \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u044F\\u044E\\u0442\\u0441\\u044F \\u0432\\u0440\\u0443\\u0447\\u043D\\u0443\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_5_png__WEBPACK_IMPORTED_MODULE_21__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_6_png__WEBPACK_IMPORTED_MODULE_22__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430\\xBB - \\u0434\\u0430\\u0442\\u0430 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041B\\u0438\\u0446\\u0435\\u0432\\u043E\\u0439 \\u0441\\u0447\\u0435\\u0442\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0417\\u0430\\u043A\\u0430\\u0437 (\\u041D\\u043E\\u043C\\u0435\\u0440 \\u043B\\u0438\\u0446\\u0435\\u0432\\u043E\\u0433\\u043E \\u0441\\u0447\\u0435\\u0442\\u0430 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442);\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_7_png__WEBPACK_IMPORTED_MODULE_23__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u044F\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u0432\\u0432\\u0435\\u0434\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435\\u2026\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_8_png__WEBPACK_IMPORTED_MODULE_24__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041D\\u043E\\u043C\\u0435\\u043D\\u043A\\u043B\\u0430\\u0442\\u0443\\u0440\\u0430\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0435 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0443\\u044E \\u0434\\u0430\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0432 \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u0415\\u0418\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0441\\u043A\\u043E\\u043B\\u044C\\u043A\\u043E \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0432\\u044B\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0437\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u0435 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C\\xBB) \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u043F\\u043B\\u0430\\u043D\\u2026\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_9_png__WEBPACK_IMPORTED_MODULE_25__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0438 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0440\\u0430\\u043D\\u0435\\u0435 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0431\\u0443\\u0434\\u0435\\u0442 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0441\\u043E \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438. \\u0414\\u043B\\u044F \\u0434\\u0430\\u043B\\u044C\\u043D\\u0435\\u0439\\u0448\\u0435\\u0439 \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441 \\u043F\\u043B\\u0430\\u043D\\u043E\\u043C \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0435\\u0433\\u043E \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_10_png__WEBPACK_IMPORTED_MODULE_26__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg32\"\n }, \"3.2. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430-\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C \\u0448\\u0430\\u0433\\u043E\\u043C \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430. \\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_1_png__WEBPACK_IMPORTED_MODULE_27__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_2_png__WEBPACK_IMPORTED_MODULE_28__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u0412\\u0430\\u0448\\u0435\\u0433\\u043E \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0422\\u0438\\u043F\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041F\\u0440\\u0435\\u0444\\u0438\\u043A\\u0441\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0433\\u043E\\u0434;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u0438\\u0434\\xBB = \\xAB\\u041F\\u043B\\u0430\\u043D\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u0442\\u043B\\u043E\\u0432\\u044B\\u0435 \\u0441 \\u0443\\u0447\\u0435\\u0442\\u043E\\u043C \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430\\xBB - \\u0443\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u0442\\u0435 \\u044D\\u0442\\u043E\\u0442 \\u0447\\u0435\\u043A;\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0438 \\u0437\\u0430\\u043F\\u043E\\u043C\\u0438\\u043D\\u0430\\u044E\\u0442\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB \\u043A\\u0430\\u043B\\u0435\\u043D\\u0434\\u0430\\u0440\\u043D\\u044B\\u0439 \\u0433\\u0440\\u0430\\u0444\\u0438\\u043A \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430-\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0414\\u0421\\u0415 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F (\\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_3_png__WEBPACK_IMPORTED_MODULE_29__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0442\\u0440\\u043E\\u043A\\u0438 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0430\\u0442 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C \\u0432\\u043B\\u043E\\u0436\\u0435\\u043D\\u043D\\u043E\\u0441\\u0442\\u0438\\xBB: 0 \\u2013 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, 1 \\u0438 \\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0414\\u0421\\u0415 \\u0438\\u0437 \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u043F\\u043E \\u0443\\u0440\\u043E\\u0432\\u043D\\u044F\\u043C \\u0432\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438 \\u0432 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB - \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 - \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0434\\u043B\\u044F \\u0414\\u0421\\u0415 - \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F - \\u0440\\u0430\\u0432\\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u043E\\u0442\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438\\xBB \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0434\\u043B\\u044F \\u0414\\u0421\\u0415 - \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E (\\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443 \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 - \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg33\"\n }, \"3.3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u0430\\u0445\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u0445 \\u0438 \\u041F\\u041A\\u0418, \\u0432 \\u043F\\u0435\\u0440\\u0441\\u043E\\u043D\\u0430\\u043B\\u0435 \\u0438 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u0430\\u0445\\xBB \\u0438 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u043E\\u0449\\u043D\\u043E\\u0441\\u0442\\u044F\\u0445\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_1_png__WEBPACK_IMPORTED_MODULE_30__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0442\\u0440\\u0435\\u0431\\u0443\\u0435\\u0442\\u0441\\u044F, \\u043F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438, \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u0438 \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0422\\u0438\\u043F \\u0438 \\u041F\\u0440\\u0435\\u0444\\u0438\\u043A\\u0441 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_2_png__WEBPACK_IMPORTED_MODULE_31__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\xAB\\u043F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_3_png__WEBPACK_IMPORTED_MODULE_32__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u0430\\u043A\\u0442\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_4_png__WEBPACK_IMPORTED_MODULE_33__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C\\u2026\\xBB \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0438\\u0442 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0443\\u044E \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044E:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432\\xBB - \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u0445 \\u0438 \\u041F\\u041A\\u0418 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\xAB\\u0422\\u0440\\u0443\\u0434\\u043E\\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u0435\\u0440\\u0441\\u043E\\u043D\\u0430\\u043B\\u0430 (\\u0422\\u0440\\u0443\\u0434\\u043E\\u0432\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432) \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F (\\u043F\\u043E \\u0433\\u0440\\u0443\\u043F\\u043F\\u0430\\u043C \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg34\"\n }, \"3.4. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u0430\\u044F \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u0441\\u043B\\u0443\\u0436\\u0431\\u0435 \\u0441\\u043D\\u0430\\u0431\\u0436\\u0435\\u043D\\u0438\\u044F (\\u041E\\u041C\\u0422\\u041E) \\u043D\\u0430 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u0438 \\u0430\\u043A\\u0442\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_1_png__WEBPACK_IMPORTED_MODULE_34__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0439\\u0442\\u0435 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0443 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_2_png__WEBPACK_IMPORTED_MODULE_35__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB. \\u041F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\xAB\\u043F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C\\xBB \\u043A \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C\\u0443 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0443 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_3_png__WEBPACK_IMPORTED_MODULE_36__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443 \\u0441\\u0433\\u0440\\u0443\\u043F\\u043F\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0430 \\u0438 \\u0441\\u0443\\u043C\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0430 \\u043F\\u043E \\u043D\\u043E\\u043C\\u0435\\u043D\\u043A\\u043B\\u0430\\u0442\\u0443\\u0440\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_4_png__WEBPACK_IMPORTED_MODULE_37__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0430 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0441\\u043B\\u0443\\u0436\\u0431\\u043E\\u0439 \\u041E\\u041C\\u0422\\u041E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\xAB\\u0423\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_5_png__WEBPACK_IMPORTED_MODULE_38__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438 \\u043D\\u0435 \\u0440\\u0430\\u0441\\u0441\\u043C\\u0430\\u0442\\u0440\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F, \\u043D\\u043E \\u0438\\u043C\\u0438\\u0442\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F, \\u0447\\u0442\\u043E \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u044B \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043E\\u0440\\u0434\\u0435\\u0440\\u0430 (\\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u043D\\u0430 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u043C\\u0438\\u0442\\u0430\\u0446\\u0438\\u0438 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041E\\u0442\\u043C\\u0435\\u0442\\u044C\\u0442\\u0435 \\u0432 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u0432\\u0441\\u0435 \\u0438\\u043B\\u0438 \\u0447\\u0430\\u0441\\u0442\\u044C \\u0441\\u0442\\u0440\\u043E\\u043A;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0443\\u044E \\u043F\\u0440\\u043E\\u0446\\u0435\\u0434\\u0443\\u0440\\u0443\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_6_png__WEBPACK_IMPORTED_MODULE_39__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0434\\u0443\\u0440\\u044B \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0414\\u0430\\u0442\\u0443 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u0438 \\u0426\\u0435\\u043D\\u0443 \\u0437\\u0430 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446\\u0443.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_7_png__WEBPACK_IMPORTED_MODULE_40__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438, \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u0438\\u0432\\u0448\\u0438\\u0435 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434, \\u043C\\u043E\\u0436\\u043D\\u043E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0423\\u0447\\u0435\\u0442 \\u2013 \\u0422\\u043E\\u0432\\u0430\\u0440\\u043D\\u044B\\u0435 \\u0437\\u0430\\u043F\\u0430\\u0441\\u044B \\u2013 \\u041F\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u043C \\u0442\\u043E\\u0432\\u0430\\u0440\\u0430\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_8_png__WEBPACK_IMPORTED_MODULE_41__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg35\"\n }, \"3.5. \\u0412\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0443\\u044E \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0414\\u043E\\u0431\\u0430\\u0432\\u044C\\u0442\\u0435 \\u043D\\u043E\\u0432\\u044B\\u0439 \\u0437\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0435\\u0433\\u043E \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from31\",\n dstId: \"prg31\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.1\"), \");\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u041D\\u0430 \\u043F\\u043B\\u0430\\u043D\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443\\xBB;\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_35_1_png__WEBPACK_IMPORTED_MODULE_42__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from33\",\n dstId: \"prg33\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.3\"), \");\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0418\\u0437 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u041E\\u041C\\u0422\\u041E \\u043D\\u0430 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from34\",\n dstId: \"prg34\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.4\"), \").\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg4\"\n }, \"4. \\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u043C \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\u0434\\u043B\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u044F\\u0432\\u043B\\u044F\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u0434\\u0430\\u0447\\u0438 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u043C\\u044B\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E-\\u0434\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0435\\u0440\\u0441\\u043A\\u0438\\u043C \\u043E\\u0442\\u0434\\u0435\\u043B\\u043E\\u043C (\\u041F\\u0414\\u041E) \\u043F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0438\\u0442\\u044C \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0443 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 \\u041F\\u041A\\u0418 \\u0434\\u043E \\u0434\\u0430\\u0442\\u044B \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430\\u043C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u043C\\u0443 \\u0446\\u0435\\u0445\\u0443 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0417\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430\\u043C \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F (\\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u2013 \\u043C\\u0435\\u0441\\u044F\\u0446);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"5) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u043E\\u0431\\u044A\\u0435\\u043C\\u043E\\u0432 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u0434\\u0430\\u0447\\u0438 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u043C\\u044B\\u0435 \\u0432\\u043D\\u0443\\u0442\\u0440\\u0438 \\u0446\\u0435\\u0445\\u043E\\u0432:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0417\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C \\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0423\\u0447\\u0435\\u0441\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"5) \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0442\\u044C \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0435 \\u0414\\u0421\\u0415 \\u0432 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u0438\\u0442\\u0435\\u043B\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u0421\\u0434\\u0430\\u0442\\u044C \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0435 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u043D\\u0430 \\u0421\\u0413\\u041F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"7) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"8) \\u0423\\u0447\\u0435\\u0441\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.1. \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0430 \\u0432 \\u0446\\u0435\\u0445 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0439 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u041F\\u041A\\u0418:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u041E \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0430\\u0449\\u0438\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F (\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C \\u0432\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438 = 0), \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u0430\\u044F \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u044C\\xBB (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041A\\u0412).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_1_png__WEBPACK_IMPORTED_MODULE_43__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_2_png__WEBPACK_IMPORTED_MODULE_44__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0431\\u043B\\u043E\\u043A\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435\\xBB \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F \\u0447\\u0435\\u043A\\u0438 \\xAB\\u0414\\u0421\\u0415\\xBB, \\u0442.\\u0435. \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u0447\\u0442\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C \\u0442\\u043E\\u043B\\u044C\\u043A\\u043E \\u041F\\u041A\\u0418.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u2013 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u044B\\u0435 \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_3_png__WEBPACK_IMPORTED_MODULE_45__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430\\u0445, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u041A\\u0412 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0443\\u0441\\u0442\\u0430\\u043D\\u0430\\u0432\\u043B\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u041F\\u041A\\u0418 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 (\\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_4_png__WEBPACK_IMPORTED_MODULE_46__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0426\\u041C\\u0421 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u044B\\u0435 \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438\\xBB \\u043E\\u0442\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442 \\u043D\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u044B\\u0435 \\u041A\\u0412 (\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_5_png__WEBPACK_IMPORTED_MODULE_47__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_6_png__WEBPACK_IMPORTED_MODULE_48__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0447\\u0430\\u0441\\u0442\\u044F\\u043C\\u0438, \\u0442\\u043E \\u0432 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043E\\u0434\\u0431\\u0438\\u0440\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041F\\u041A\\u0418, \\u0438\\u043C\\u0435\\u044E\\u0449\\u0438\\u0435 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0438 \\u043D\\u0430 \\u0426\\u041C\\u0421. \\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 (\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432) \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041A\\u0412 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\xBB. \\u041A\\u0430\\u043A\\u0438\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043F\\u043E\\u0434\\u043E\\u0431\\u0440\\u0430\\u043D\\u044B \\u0438 \\u043A\\u0430\\u043A\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043E \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_7_png__WEBPACK_IMPORTED_MODULE_49__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0430\\u044F \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0430\\u044F \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u0442\\u0440\\u043E\\u043A\\u0438\\xBB \\u0432\\u044B\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\u043C \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0441\\u0442\\u0440\\u043E\\u043A \\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\u2026\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_8_png__WEBPACK_IMPORTED_MODULE_50__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0439 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0446\\u0435\\u0445\\u0443 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u043D\\u043E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_9_png__WEBPACK_IMPORTED_MODULE_51__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u041F\\u0440\\u0438 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421 \\u0446\\u0435\\u0445 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_10_png__WEBPACK_IMPORTED_MODULE_52__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u0441 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043E\\u043C\\xBB (\\u043F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_11_png__WEBPACK_IMPORTED_MODULE_53__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"6) \\u041F\\u043E\\u0441\\u043B\\u0435 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445 \\u0432\\u0441\\u0435\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u043D\\u043E\\xBB. \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0441\\u043C\\u0435\\u043D\\u044B \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB \\u043F\\u043E\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0443\\u044E \\u0434\\u0430\\u0442\\u0443 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u0446\\u0435\\u0445\\u0430 \\u041F\\u041A\\u0418.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_12_png__WEBPACK_IMPORTED_MODULE_54__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.2. \\u0412\\u044B\\u0434\\u0430\\u0447\\u0430 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0441\\u043E\\u043F\\u0440\\u043E\\u0432\\u043E\\u0436\\u0434\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB. \\u041F\\u0414\\u041E \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0446\\u0435\\u0445\\u0430\\u043C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u0438\\u043B\\u0438 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u2013 \\u044D\\u0442\\u043E \\u043C\\u0430\\u0441\\u0441\\u043E\\u0432\\u043E\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u043D\\u0430 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0432\\u0430\\u043B \\u0434\\u0430\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0434\\u043E\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u043D\\u0430 \\u0432\\u043E\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0442\\u0435\\u0445\\u043D\\u043E\\u043B\\u043E\\u0433\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043F\\u043E\\u0442\\u0435\\u0440\\u044C \\u0438\\u043B\\u0438 \\u0431\\u0440\\u0430\\u043A\\u0430).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u0438 \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_1_png__WEBPACK_IMPORTED_MODULE_55__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_2_png__WEBPACK_IMPORTED_MODULE_56__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0437\\u0430\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0438\\u043D\\u0442\\u0435\\u0440\\u0432\\u0430\\u043B \\u0434\\u0430\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0441.. \\u043F\\u043E), \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\u0435\\u043C\\u044B\\u0445 (\\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB) \\u0432 \\u0438\\u044E\\u043B\\u0435 2024 \\u0433.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u041B \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044E\\u0442\\u0441\\u044F \\u0438 \\u0445\\u0440\\u0430\\u043D\\u044F\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_3_png__WEBPACK_IMPORTED_MODULE_57__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u041C\\u041B \\u0438\\u043C\\u0435\\u044E\\u0442 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u041D\\u043E\\u0432\\u044B\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_4_png__WEBPACK_IMPORTED_MODULE_58__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0446\\u0435\\u0445\\u0430\\u043C \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\u043C \\u0438 \\u0443\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\\u043C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043C\\u0435\\u0441\\u044F\\u0446). \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0414\\u043B\\u044F \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_1_png__WEBPACK_IMPORTED_MODULE_59__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_2_png__WEBPACK_IMPORTED_MODULE_60__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041F\\u0435\\u0440\\u0438\\u043E\\u0434\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u043C\\u0435\\u0441\\u044F\\u0446 \\u043F\\u043B\\u0430\\u043D\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u0446\\u0435\\u0445 \\u043F\\u043B\\u0430\\u043D\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0430\\u0442\\u044C \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438\\u2026\\xBB - \\u0443\\u0441\\u0442\\u0430\\u043D\\u0430\\u0432\\u043B\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u0447\\u0435\\u043A \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0432 \\u043F\\u043B\\u0430\\u043D \\u043F\\u043E \\u0434\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0438 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043E\\u0442\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0414\\u0421\\u0415 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_3_png__WEBPACK_IMPORTED_MODULE_61__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0414\\u043B\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\\xBB, \\u0434\\u043B\\u044F \\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0438\\u0437 \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\xAB\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C\\u2026\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_4_png__WEBPACK_IMPORTED_MODULE_62__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0415\\u0441\\u043B\\u0438 \\u0446\\u0435\\u0445 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u043B \\u043F\\u043B\\u0430\\u043D \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430, \\u0442\\u043E \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441 \\xAB\\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\u0430\\xBB \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_5_png__WEBPACK_IMPORTED_MODULE_63__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u043F\\u043B\\u0430\\u043D, \\u0432 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0439 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442\\u0441\\u044F \\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0435\\u0440\\u0435\\u043D\\u0435\\u0441\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\u0430 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u043B\\u0430\\u043D\\u0435 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_6_png__WEBPACK_IMPORTED_MODULE_64__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u0414\\u043B\\u044F \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u043D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u0430\\u0445\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_7_png__WEBPACK_IMPORTED_MODULE_65__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442 \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442\\u0430 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u044B \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\xBB. \\u0412 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u044B \\u043F\\u043B\\u0430\\u043D\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0442\\u0440\\u0443\\u0434\\u043E\\u0435\\u043C\\u043A\\u043E\\u0441\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u0445 \\u0414\\u0421\\u0415.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_8_png__WEBPACK_IMPORTED_MODULE_66__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u0411\\u0430\\u043B\\u0430\\u043D\\u0441\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435\\u043C/\\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430. \\u0418 \\u043F\\u043E\\u0432\\u0442\\u043E\\u0440\\u043D\\u044B\\u043C \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u043E\\u0439 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438.\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u0426\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0443\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB. \\u0426\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B \\u0438\\u0441\\u0442\\u0435\\u043A\\u0448\\u0435\\u0433\\u043E \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430 \\u0440\\u0435\\u043A\\u043E\\u043C\\u0435\\u043D\\u0434\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442\\u044C \\u0432 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.4. \\u0417\\u0430\\u043F\\u0443\\u0441\\u043A \\u0446\\u0435\\u0445\\u043E\\u043C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E-\\u0434\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0435\\u0440\\u0441\\u043A\\u043E\\u0435 \\u0431\\u044E\\u0440\\u043E \\u0446\\u0435\\u0445\\u0430 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u0414\\u0411) \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u0443 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u0446\\u0435\\u0445 \\u043F\\u0435\\u0440\\u0432\\u044B\\u0439 \\u0432 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0430\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u0411 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0443 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\xAB\\u0414\\u0430\\u0442\\u0443 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_1_png__WEBPACK_IMPORTED_MODULE_67__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u043E\\u0442\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0441 \\u043D\\u0435 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u0434\\u0430\\u0442\\u043E\\u0439 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0441\\u0432\\u043E\\u0438\\u043C \\u0441\\u043A\\u043B\\u0430\\u0434\\u043E\\u043C \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0438 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0435\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_2_png__WEBPACK_IMPORTED_MODULE_68__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u043D\\u0430 \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0435 \\u0444\\u043E\\u0440\\u043C\\u044B \\u0440\\u0435\\u0434\\u0430\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\xAB\\u0414\\u043E\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\xBB \\u0432 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u044F\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_3_png__WEBPACK_IMPORTED_MODULE_69__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043F\\u0440\\u043E\\u0432\\u0435\\u0440\\u044F\\u0435\\u0442 \\u043D\\u0430\\u043B\\u0438\\u0447\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0446\\u0435\\u0445\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_4_png__WEBPACK_IMPORTED_MODULE_70__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0415\\u0441\\u043B\\u0438, \\u043A\\u0430\\u043A \\u0432 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0432\\u044B\\u0448\\u0435, \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0446\\u0435\\u0445\\u0430 \\u043D\\u0435\\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E, \\u0442\\u043E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041C\\u041B \\u043E\\u0444\\u043E\\u0440\\u043C\\u043B\\u044F\\u0435\\u0442 \\u0442\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A\\xBB (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0420\\u041D).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_5_png__WEBPACK_IMPORTED_MODULE_71__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0438 \\u0432 \\u0431\\u0443\\u0444\\u0435\\u0440\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u0422\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0446\\u0435\\u0445\\u0430\\u043C\\u0438, \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B \\u0426\\u041C\\u0421 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_6_png__WEBPACK_IMPORTED_MODULE_72__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0426\\u041C\\u0421 \\u0437\\u0430\\u0434\\u0430\\u0435\\u0442 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0420\\u041D \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E, \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB) \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442 \\u0420\\u041D \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB - \\xAB\\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u0441 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043E\\u043C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_7_png__WEBPACK_IMPORTED_MODULE_73__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u041F\\u0440\\u0438 \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u0446\\u0435\\u0445, \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0432 \\u041C\\u041B \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0437 \\u041C\\u041B \\u0420\\u041D \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_8_png__WEBPACK_IMPORTED_MODULE_74__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C \\u0420\\u041D \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0417\\u0430\\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"6) \\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u041F\\u0414\\u0411 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442 \\u041C\\u041B \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_9_png__WEBPACK_IMPORTED_MODULE_75__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u043F\\u0435\\u0447\\u0430\\u0442\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_10_png__WEBPACK_IMPORTED_MODULE_76__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041F\\u0435\\u0447\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg45\"\n }, \"4.5. \\u0417\\u0430\\u043F\\u0443\\u0441\\u043A \\u0446\\u0435\\u0445\\u043E\\u043C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0430\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u0411 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0437 \\u041C\\u041B \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u043E\\u0435 \\u0442\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044E\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_1_png__WEBPACK_IMPORTED_MODULE_77__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0414\\u0430\\u0442\\u0443 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_2_png__WEBPACK_IMPORTED_MODULE_78__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C \\u043F\\u0435\\u0440\\u0435\\u0445\\u043E\\u0434\\u0438\\u0442 \\u043A \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C\\u0443 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0443\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_3_png__WEBPACK_IMPORTED_MODULE_79__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u0442\\u044C \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0438\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_4_png__WEBPACK_IMPORTED_MODULE_80__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u043E\\u0432 \\u041F\\u041A\\u0418 \\u0438 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E \\u0434\\u043B\\u044F \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438, \\u0442\\u043E \\u041F\\u0414\\u0411 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u0421\\u0413\\u0414 \\u043D\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435, \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u044F \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0414\\u0430\\u0442\\u0443 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u044F \\u041C\\u041B \\u0432 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB. \\u041F\\u0414\\u0411 \\u043F\\u0435\\u0447\\u0430\\u0442\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A \\u043F\\u0435\\u0440\\u0432\\u043E\\u0439 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0421\\u0413\\u0414 \\u0446\\u0435\\u0445\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u0435\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438. \\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_5_png__WEBPACK_IMPORTED_MODULE_81__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_6_png__WEBPACK_IMPORTED_MODULE_82__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_7_png__WEBPACK_IMPORTED_MODULE_83__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043E\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439, \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043E \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435. \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438, \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u043C\\u0438 \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0421\\u0413\\u0414 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_8_png__WEBPACK_IMPORTED_MODULE_84__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0435\\u0441\\u043B\\u0438 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0430\\u043D, \\u0442\\u043E \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412\\u044B\\u0434\\u0430\\u043D\\u043E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_9_png__WEBPACK_IMPORTED_MODULE_85__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445 \\u0432\\u0441\\u0435\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044F \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412\\u044B\\u0434\\u0430\\u043D\\u043E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u0421\\u0413\\u0414 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 - \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E\\u2026\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_10_png__WEBPACK_IMPORTED_MODULE_86__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.6. \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043E\\u0431\\u043D\\u043E\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435 \\u0438 \\u043F\\u043B\\u0430\\u043D\\u0430\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043E \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u043C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0435/\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_1_png__WEBPACK_IMPORTED_MODULE_87__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_2_png__WEBPACK_IMPORTED_MODULE_88__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u0430 \\u0432 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u043C \\u0441\\u0442\\u043E\\u043B\\u0435. \\u0414\\u043B\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C\\u044E \\u043A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0438\\u043A\\u043E\\u043D\\u043A\\u0443\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB\"), \".\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_3_png__WEBPACK_IMPORTED_MODULE_89__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0432 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0412\\u0430\\u0448 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\xAB\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\\xBB \\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_4_png__WEBPACK_IMPORTED_MODULE_90__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0437\\u0430\\u043B\\u0438\\u0442\\u044B \\xAB\\u043A\\u0440\\u0430\\u0441\\u043D\\u044B\\u043C\\xBB. \\u041A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0432\\u0430\\u0436\\u0434\\u044B \\u043D\\u0430 \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0434\\u0438\\u0430\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_5_png__WEBPACK_IMPORTED_MODULE_91__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB, \\u043E\\u0442\\u043A\\u0440\\u043E\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0447\\u0435\\u043D\\u044C \\u041C\\u041B \\u0438 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\u043E \\u043D\\u0430\\u043B\\u0438\\u0447\\u0438\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0438 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0426\\u041C\\u0421 \\u0438 \\u0432 \\u0446\\u0435\\u0445\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_6_png__WEBPACK_IMPORTED_MODULE_92__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0430 \\u0441\\u043B\\u0435\\u0434\\u0443\\u0435\\u0442, \\u0447\\u0442\\u043E \\u0446\\u0435\\u0445 \\u043D\\u0435 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0438\\u043B \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B \\u0441 \\u0426\\u041C\\u0421 \\u0438 \\u043F\\u043E\\u0442\\u043E\\u043C\\u0443 \\u043D\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u043B \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0431\\u0443\\u0434\\u0435\\u0442 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0442\\u044C\\u0441\\u044F \\u041C\\u041B \\u0438 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044F \\u0441 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0430\\u043C\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043D\\u0430 \\u0421\\u0413\\u0414 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg47\"\n }, \"4.7. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0438 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0430\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0423\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u044E\\u0442 \\u0441 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u043C\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u041C\\u041B (\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0442\\u044C\\u0441\\u044F \\u0432\\u043D\\u0435 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u044B \\u2013 \\u043C\\u0430\\u0441\\u0442\\u0435\\u0440 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\xAB\\u0431\\u0443\\u043C\\u0430\\u0436\\u043D\\u044B\\u0439\\xBB \\u041C\\u041B \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u0435 \\u043C\\u0435\\u0441\\u0442\\u043E \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438, \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_1_png__WEBPACK_IMPORTED_MODULE_93__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_2_png__WEBPACK_IMPORTED_MODULE_94__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0438 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0438\\u0445 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u0445 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u043C\\u0435\\u0445\\u0430\\u043D\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u2116 2.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0441\\u043C\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0421\\u0417) \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0430, \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_3_png__WEBPACK_IMPORTED_MODULE_95__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_4_png__WEBPACK_IMPORTED_MODULE_96__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430\\xBB - \\u0434\\u0430\\u0442\\u0430 \\u0421\\u0417;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0426\\u0435\\u0445, \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A \\u0446\\u0435\\u0445\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0421\\u043C\\u0435\\u043D\\u0430\\xBB - \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043D\\u043E\\u043C\\u0435\\u0440 \\u0441\\u043C\\u0435\\u043D\\u044B.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0421\\u0417 \\u0432\\u044B\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_5_png__WEBPACK_IMPORTED_MODULE_97__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430 \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostJobsManage\"\n }, \"\\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0441\\u043C\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_6_png__WEBPACK_IMPORTED_MODULE_98__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0442\\u043C\\u0435\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F \\u0421\\u0417 \\u0438 \\u0441\\u0442\\u0430\\u043D\\u043E\\u043A, \\u043D\\u0430 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0439 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 (\\u043F\\u043E\\u0434\\u0441\\u0432\\u0435\\u0447\\u0438\\u0432\\u0430\\u044E\\u0442\\u0441\\u044F \\xAB\\u043A\\u0430\\u043A \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B\\u0435\\xBB \\u0442\\u043E\\u043B\\u044C\\u043A\\u043E \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0433\\u0440\\u0443\\u043F\\u043F\\u044B \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0432 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438);\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043D\\u043E\\u043F\\u043A\\u0430 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\\xBB \\u0438 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0432\\u0430\\u0435\\u043C\\u044B\\u0445 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043E\\u043A \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 (\\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E \\u0440\\u0430\\u0432\\u043D\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0443 \\u043F\\u043B\\u0430\\u043D \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0421\\u0417) \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_7_png__WEBPACK_IMPORTED_MODULE_99__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438, \\u043A\\u0430\\u043A \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435, \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043D\\u0435 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0431\\u044B\\u0442\\u044C \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043E \\u0432 \\u0434\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0441\\u043C\\u0435\\u043D\\u0435 \\u043D\\u0430 \\u043E\\u0434\\u043D\\u043E\\u043C \\u0441\\u0442\\u0430\\u043D\\u043A\\u0435 (\\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 202%), \\u0442\\u043E \\u043C\\u043E\\u0436\\u043D\\u043E \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044E \\xAB\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0438\\u0437 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB \\u0438 \\u0432\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043C\\u0435\\u043D\\u044C\\u0448\\u0435\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_8_png__WEBPACK_IMPORTED_MODULE_100__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0440\\u0430\\u0441\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u043D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB. \\u0418 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u0437\\u0430\\u043A\\u0440\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F. \\u0412 \\u0421\\u0417 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043A \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044E \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0438 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u043D\\u0430 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u043E\\u043D\\u0438 \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0442\\u044C\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_9_png__WEBPACK_IMPORTED_MODULE_101__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u041F\\u043E \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u0438 \\u0441\\u043C\\u0435\\u043D\\u044B, \\u0435\\u0441\\u043B\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D \\u0432\\u0435\\u0441\\u044C \\u043E\\u0431\\u044A\\u0435\\u043C \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0421\\u0417, \\u0442\\u043E \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u0421\\u0417 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\xAB\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_10_png__WEBPACK_IMPORTED_MODULE_102__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E \\u043C\\u0435\\u043D\\u044C\\u0448\\u0435 \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043E, \\u0442\\u043E \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0444\\u0430\\u043A\\u0442\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_11_png__WEBPACK_IMPORTED_MODULE_103__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u0414\\u043B\\u044F \\u043E\\u0442\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F \\u0444\\u0430\\u043A\\u0442\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u0432 \\u041C\\u041B, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0430 \\u0421\\u0417 \\u0432 \\u041C\\u041B\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_12_png__WEBPACK_IMPORTED_MODULE_104__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.8. \\u0423\\u0447\\u0435\\u0442 \\u0431\\u0440\\u0430\\u043A\\u0430 \\u0438 \\u043E\\u0442\\u0440\\u044B\\u0432 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432\\u044B\\u044F\\u0432\\u043B\\u0435\\u043D\\u043E \\u043D\\u0435\\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 (\\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u0435\\u043D, \\u0431\\u0440\\u0430\\u043A) \\u0438\\u043B\\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043D\\u0443\\u044E \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0447\\u0430\\u0441\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0434\\u0435\\u043B\\u0438\\u0442\\u044C \\u0432 \\u043E\\u0442\\u0434\\u0435\\u043B\\u044C\\u043D\\u0443\\u044E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E, \\u0442\\u043E \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F (\\u043E\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043D\\u043E\\u0439 \\u043F\\u043E \\u0421\\u0417 \\u0447\\u0430\\u0441\\u0442\\u0438\\u0447\\u043D\\u043E \\u0432 \\u043F. 4.7):\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\xAB010\\xBB \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432\\u044B\\u044F\\u0432\\u043B\\u0435\\u043D\\u043E \\u043D\\u0435\\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 2 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442, \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430\\u044E\\u0449\\u0438\\u0439 2 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0438 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438. \\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0430\\u043A\\u0442 \\u043E \\u0431\\u0440\\u0430\\u043A\\u0435\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_1_png__WEBPACK_IMPORTED_MODULE_105__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_2_png__WEBPACK_IMPORTED_MODULE_106__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442: \\u0422\\u0438\\u043F\\xBB = \\xAB\\u0411\\u0440\\u0430\\u043A\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E\\xBB = 2.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441 \\u0442\\u0438\\u043F\\u043E\\u043C \\xAB\\u0411\\u0440\\u0430\\u043A\\xBB \\u0438 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0443\\u043C\\u0435\\u043D\\u044C\\u0448\\u0430\\u0435\\u0442\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\xAB010\\xBB \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043E 8 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0434\\u0435\\u043B\\u0438\\u0442\\u044C \\u0438\\u0445 \\u0432 \\u043E\\u0442\\u0434\\u0435\\u043B\\u044C\\u043D\\u0443\\u044E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E (\\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u044C, \\u043E\\u0442\\u0440\\u044B\\u0432 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438). \\u041E\\u0442\\u0440\\u044B\\u0432 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB. \\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\xBB \\u0438 \\xAB\\u0422\\u0438\\u043F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_3_png__WEBPACK_IMPORTED_MODULE_107__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043D\\u043E\\u0432\\u044B\\u0439 \\u041C\\u041B (\\u043D\\u043E\\u0432\\u0430\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F) \\u0438 \\u0432 \\u0438\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u043C \\u041C\\u041B \\u0443\\u043C\\u0435\\u043D\\u044C\\u0448\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u043E\\u0436\\u043D\\u043E \\u043F\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043A\\u0430\\u043A\\u0438\\u0435 \\u041C\\u041B \\u043E\\u0442\\u043E\\u0440\\u0432\\u0430\\u043D\\u044B \\u043E\\u0442 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u0432\\u044F\\u0437\\u0438 \\u2013 \\u0413\\u0440\\u0430\\u0444\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0435 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0435\\xBB \\u0438\\u043B\\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_4_png__WEBPACK_IMPORTED_MODULE_108__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.9. \\u0421\\u0434\\u0430\\u0447\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0444\\u043E\\u0440\\u043C\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u041F\\u0414\\u0411 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\u044E\\u0449\\u0435\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u043E\\u0432 \\u041C\\u041B. \\u0412 \\u041C\\u041B \\u0434\\u043E\\u043B\\u0436\\u043D\\u0430 \\u0431\\u044B\\u0442\\u044C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0430 \\u043F\\u043E\\u043B\\u043D\\u043E\\u0441\\u0442\\u044C\\u044E \\u0438\\u043B\\u0438 \\u0447\\u0430\\u0441\\u0442\\u0438\\u0447\\u043D\\u043E \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043D\\u044F\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0441\\u0434\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434 \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_1_png__WEBPACK_IMPORTED_MODULE_109__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB (\\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0438\\u0437 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043A \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F \\u0438 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0431\\u0443\\u0444\\u0435\\u0440\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0430\\u0442\\u0435\\u043B\\u044F \\u0414\\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0421\\u0413\\u041F (\\u0433\\u043E\\u0442\\u043E\\u0432\\u0430\\u044F \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u044F) \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u0440\\u0438\\u0445\\u043E\\u0434\\u044B \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_2_png__WEBPACK_IMPORTED_MODULE_110__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442 \\u0444\\u0430\\u043A\\u0442 \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u043D\\u0430 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u043A\\u0430\\u043A \\u0444\\u0430\\u043A\\u0442\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_3_png__WEBPACK_IMPORTED_MODULE_111__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.10. \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_1_png__WEBPACK_IMPORTED_MODULE_112__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043F\\u0435\\u0440\\u0435\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\xAB\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\\xBB \\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_2_png__WEBPACK_IMPORTED_MODULE_113__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0432\\u0430\\u0436\\u0434\\u044B \\u043D\\u0430 \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0434\\u0438\\u0430\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_3_png__WEBPACK_IMPORTED_MODULE_114__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u043E\\u0436\\u043D\\u043E \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0438\\u043B\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043D\\u043E\\u0441\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 (\\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0446\\u0435\\u0445\\u0430 \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_4_png__WEBPACK_IMPORTED_MODULE_115__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430\", \" \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0446\\u0435\\u0445\\u0430\\xBB\"), \".\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_5_png__WEBPACK_IMPORTED_MODULE_116__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B \\u043F\\u043B\\u0430\\u043D\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0441 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u043E\\u043C \\u0442\\u0435\\u043A\\u0443\\u0449\\u0438\\u0439 \\u043C\\u0435\\u0441\\u044F\\u0446. \\u0412\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u043F\\u043B\\u0430\\u043D.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_6_png__WEBPACK_IMPORTED_MODULE_117__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u043A\\u043B\\u0438\\u043A\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043D\\u0430 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415. \\u041F\\u0440\\u0438 \\u043A\\u043B\\u0438\\u043A\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043D\\u0430 \\xAB\\u041E\\u0431\\u043E\\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u041C\\u041B \\u0438 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u041C\\u041B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_7_png__WEBPACK_IMPORTED_MODULE_118__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.11. \\u0414\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u043B\\u0438\\u044F\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0440\\u0438 \\u043D\\u0435\\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0435 \\u041F\\u041A\\u0418 \\u0434\\u043B\\u044F \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442\\u044C \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435, \\u043D\\u043E \\u043D\\u0435 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u044B\\u0435, \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u041A\\u0412 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_1_png__WEBPACK_IMPORTED_MODULE_119__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0415\\u0441\\u043B\\u0438 \\u0443 \\u0414\\u0421\\u0415 \\u043D\\u0435\\u0441\\u043A\\u043E\\u043B\\u044C\\u043A\\u043E \\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043E\\u0432 \\u0438\\u0437\\u0433\\u043E\\u0442\\u043E\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0438\\u043B\\u0438 \\u041C\\u041A, \\u0442\\u043E \\u043F\\u0440\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u043D\\u043E \\u0438\\u0437\\u043C\\u0435\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0430/\\u041C\\u041A, \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u041A\\u043E\\u0440\\u0440\\u0435\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0430\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_2_png__WEBPACK_IMPORTED_MODULE_120__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0446\\u0435\\u0445\\u0430 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u043B\\u0438\\u044F\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0446\\u0435\\u0445\\u0430\\xBB\"), \" \\u0438\\u0437\\u043C\\u0435\\u043D\\u044F\\u0435\\u0442 \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F. \\u041F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u0435\\u0442 \\u043F\\u043E\\u0440\\u044F\\u0434\\u043E\\u043A \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u041C\\u041B \\u0432 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_3_png__WEBPACK_IMPORTED_MODULE_121__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041F\\u0440\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438, \\u0447\\u0430\\u0441\\u0442\\u044C \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u043A\\u0430\\u0437, \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043A\\u043E\\u0442\\u043E\\u0440\\u043E\\u0433\\u043E \\u043D\\u0430\\u0434\\u043E \\u0443\\u0441\\u043A\\u043E\\u0440\\u0438\\u0442\\u044C. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043E\\u0442\\u0440\\u044B\\u0432 \\u041C\\u041B (\\u0441\\u043C. \\u043F. 4.8) \\u0438 \\u0441\\u043C\\u0435\\u043D\\u0430 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0432 \\u041C\\u041B \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0414\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043C\\u043E\\u0436\\u043D\\u043E \\u0438\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0417\\u0430\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438\\xBB \\u0438\\u043B\\u0438 \\u0438\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\xAB\\u0426\\u0435\\u0445, \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\\xBB \\u0432 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_4_png__WEBPACK_IMPORTED_MODULE_122__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.12. \\u0421\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0439 \\u043F\\u043E\\u0440\\u044F\\u0434\\u043E\\u043A \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u0430 \\u0446\\u0435\\u0445\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0440\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0430\\u043A\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E (\\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435\\u2026)\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_1_png__WEBPACK_IMPORTED_MODULE_123__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u0421\\u043F\\u0438\\u0441\\u044B\\u0432\\u0430\\u0442\\u044C \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_2_png__WEBPACK_IMPORTED_MODULE_124__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0420\\u041D \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_3_png__WEBPACK_IMPORTED_MODULE_125__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041F\\u0440\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0432 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u043F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C\\xBB (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back412from45\",\n dstId: \"prg45\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F. 4.5\"), \").\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0421\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043D\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0441 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0435\\u0439 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u0411\\u0443\\u0445\\u0433\\u0430\\u043B\\u0442\\u0435\\u0440\\u0441\\u043A\\u0438\\u0439 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_4_png__WEBPACK_IMPORTED_MODULE_126__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445, \\u043F\\u0435\\u0440\\u0435\\u0434 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438, \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0441\\u043D\\u044F\\u0442\\u044C \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438, \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0441 \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.13. \\u0423\\u0447\\u0435\\u0442 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0423\\u0447\\u0435\\u0442 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 (\\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E, \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0435 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u0438 \\u043D\\u0430\\u043A\\u043E\\u043F\\u043B\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043F\\u0440\\u044F\\u043C\\u044B\\u0435 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0437\\u0430\\u043F\\u0443\\u0448\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415) \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0416\\u0443\\u0440\\u043D\\u0430\\u043B \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_1_png__WEBPACK_IMPORTED_MODULE_127__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0436\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F \\u0445\\u0440\\u0430\\u043D\\u044F\\u0442\\u0441\\u044F \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u043C \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0441\\u0434\\u0430\\u0447\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415, \\u043A\\u0430\\u043B\\u044C\\u043A\\u0443\\u043B\\u044F\\u0446\\u0438\\u044F \\u043F\\u0440\\u044F\\u043C\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0435 \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043D\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432 \\u0436\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_2_png__WEBPACK_IMPORTED_MODULE_128__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0416\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u043D\\u0430\\u043B\\u0438\\u0437 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0442\\u0430\\u043A\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041D\\u0417\\u041F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043D\\u0430 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041E\\u0431\\u0449\\u0438\\u0439 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u043A\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_3_png__WEBPACK_IMPORTED_MODULE_129__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0441\\u043F\\u0438\\u0441\\u043E\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415, \\u043D\\u0430\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u0441 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u0435\\u0439 \\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0435 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0443\\u043C\\u043C\\u0435 \\u043D\\u0430\\u043A\\u043E\\u043F\\u043B\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0440\\u044F\\u043C\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u041D\\u0417\\u041F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043F\\u043E \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0422\\u0435\\u043A\\u0443\\u0449\\u0438\\u0439 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u043A\\xBB, \\u0434\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041D\\u0417\\u041F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\xAB\\u043D\\u0430 \\u043A\\u0430\\u043A\\u0438\\u0445 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F\\u0445 \\u043D\\u0430\\u0445\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_4_png__WEBPACK_IMPORTED_MODULE_130__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u0430\\u043B\\u044C\\u043A\\u0443\\u043B\\u044F\\u0446\\u0438\\u044F \\u041D\\u0417\\u041F\\xBB \\u0430\\u043D\\u0430\\u043B\\u0438\\u0437\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043E\\u0442\\u043A\\u043B\\u043E\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442 \\u043E\\u0442 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u044B\\u0445.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_5_png__WEBPACK_IMPORTED_MODULE_131__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0441\\u0442\\u0430\\u0442\\u0435\\u0439 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0414\\u0435\\u0442\\u0430\\u043B\\u0438\\u0437\\u0430\\u0446\\u0438\\u044F \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u2026\\xBB \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442-\\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442. \\u0415\\u0441\\u043B\\u0438 \\u0434\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432/\\u041F\\u041A\\u0418, \\u0442\\u043E \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0435 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0431\\u0443\\u0434\\u0443\\u0442 \\u043D\\u0443\\u043B\\u0435\\u0432\\u044B\\u043C\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.14. \\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043F\\u043E\\u0434 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u043E\\u0439 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u043D\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F (\\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0438\\u0445 \\u0434\\u043D\\u0435\\u0439) \\u0438\\u043B\\u0438 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F (\\u0434\\u043B\\u044F \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u0438 \\u0431\\u0443\\u0434\\u0443\\u0449\\u0438\\u0445 \\u0434\\u043D\\u0435\\u0439) \\u0442\\u0440\\u0443\\u0434\\u043E\\u0435\\u043C\\u043A\\u043E\\u0441\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439, \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\u0445 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back414from47\",\n dstId: \"prg47\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.4.7\"), \").\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0439\\u0442\\u0435 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostJobs\"\n }, \"\\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0446\\u0435\\u0445\\u0430\\xBB\"), \", \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u043D\\u0443\\u044E \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u043C \\u0441\\u0442\\u043E\\u043B\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_1_png__WEBPACK_IMPORTED_MODULE_132__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445 \\u0438 \\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u043D\\u043E \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0438\\u0435 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u044B (\\u043C\\u0435\\u0441\\u044F\\u0446\\u044B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_2_png__WEBPACK_IMPORTED_MODULE_133__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_3_png__WEBPACK_IMPORTED_MODULE_134__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"add1\"\n }, \"\\u041F\\u0440\\u0438\\u043B\\u043E\\u0436\\u0435\\u043D\\u0438\\u0435: \\u041A\\u0440\\u0430\\u0442\\u043A\\u0430\\u044F \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043A\\u0446\\u0438\\u044F \\u043F\\u043E \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0435 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0444\\u0435\\u0439\\u0441\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0444\\u0435\\u0439\\u0441\\u0430 \\u043E\\u0434\\u0438\\u043D\\u0430\\u043A\\u043E\\u0432\\u044B \\u0434\\u043B\\u044F \\u0432\\u0441\\u0435\\u0445 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u043E\\u0432 \\u0438 \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0440\\u0430\\u0441\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u043D\\u044B \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0430 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430, \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A, \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u044B\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_1_png__WEBPACK_IMPORTED_MODULE_135__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u041E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_2_png__WEBPACK_IMPORTED_MODULE_136__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u041D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0430\\xBB. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0433\\u043E\\u0440\\u044F\\u0447\\u0435\\u0439 \\u043A\\u043B\\u0430\\u0432\\u0438\\u0448\\u0435\\u0439 Alt+Enter \\u0438\\u043B\\u0438 \\u0432 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u043C \\u043C\\u0435\\u043D\\u044E\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_3_png__WEBPACK_IMPORTED_MODULE_137__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043A \\u043D\\u0430 \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0435 \\xAB\\u041E\\u0431\\u0449\\u0438\\u0435\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043A\\u043E\\u043D, \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0442\\u0430\\u043A \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043A\\u043D\\u043E \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_4_png__WEBPACK_IMPORTED_MODULE_138__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, {\n style: {\n backgroundColor: \"LightYellow\",\n padding: \"5px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"b\", {\n style: {\n color: \"red\"\n }\n }, \"\\u0412\\u043D\\u0438\\u043C\\u0430\\u043D\\u0438\\u0435!!!\"), \" \\u0412\\u0432\\u0435\\u0434\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0441\\u043E\\u0445\\u0440\\u0430\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0438 \\u043D\\u0430\\u0436\\u0430\\u0442\\u0438\\u0438 \\xAB\\u041E\\u041A\\xBB. \\u041A\\u043D\\u043E\\u043F\\u043A\\u0430 \\xAB\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\\xBB \\u0432\\u043E\\u0437\\u0432\\u0440\\u0430\\u0449\\u0430\\u0435\\u0442 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u043A \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u044F\\u043C \\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0438\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A \\u0438 \\u0444\\u0438\\u043A\\u0441\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_5_png__WEBPACK_IMPORTED_MODULE_139__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041E\\u0444\\u043E\\u0440\\u043C\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_6_png__WEBPACK_IMPORTED_MODULE_140__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0430\\u0432\\u0438\\u043B\\u0430 \\u0437\\u0430\\u043B\\u0438\\u0432\\u043A\\u0438 \\u0446\\u0432\\u0435\\u0442\\u043E\\u043C \\u044F\\u0447\\u0435\\u0435\\u043A \\u0438\\u043B\\u0438 \\u0441\\u0442\\u0440\\u043E\\u043A (\\u0435\\u0441\\u043B\\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D \\u0447\\u0435\\u043A), \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0437\\u0430\\u043B\\u0438\\u0432\\u043A\\u0430 \\u0436\\u0435\\u043B\\u0442\\u044B\\u043C \\u0446\\u0432\\u0435\\u0442\\u043E\\u043C \\u044F\\u0447\\u0435\\u0435\\u043A \\xAB\\u0414\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB, \\u0435\\u0441\\u043B\\u0438 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043D\\u0435 \\u0440\\u0430\\u0432\\u043D\\u043E \\u043D\\u0443\\u043B\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_7_png__WEBPACK_IMPORTED_MODULE_141__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432. \\u041D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435, \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_8_png__WEBPACK_IMPORTED_MODULE_142__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0438\\u0435 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0447\\u0435\\u043D\\u044C \\u043E\\u0442\\u0447\\u0435\\u0442\\u043E\\u0432, \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0441 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u043E\\u043C. \\u0414\\u0432\\u043E\\u0439\\u043D\\u044B\\u043C \\u043A\\u043B\\u0438\\u043A\\u043E\\u043C \\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0443 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\u0432 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u043C \\u043C\\u0435\\u043D\\u044E. \\u041D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043E \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_9_png__WEBPACK_IMPORTED_MODULE_143__[\"default\"]\n })))));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_help/mech_rec_help.js?");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MechRecHelp: () => (/* binding */ MechRecHelp)\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_145__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_145___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_145__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Link/Link.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Fab/Fab.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _app_text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../app.text */ \"./app.text.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _img_1_1_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./img/1_1.png */ \"./app/panels/mech_rec_help/img/1_1.png\");\n/* harmony import */ var _img_1_2_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./img/1_2.png */ \"./app/panels/mech_rec_help/img/1_2.png\");\n/* harmony import */ var _img_1_3_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./img/1_3.png */ \"./app/panels/mech_rec_help/img/1_3.png\");\n/* harmony import */ var _img_1_4_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./img/1_4.png */ \"./app/panels/mech_rec_help/img/1_4.png\");\n/* harmony import */ var _img_1_5_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./img/1_5.png */ \"./app/panels/mech_rec_help/img/1_5.png\");\n/* harmony import */ var _img_2_1_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./img/2_1.png */ \"./app/panels/mech_rec_help/img/2_1.png\");\n/* harmony import */ var _img_2_2_png__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./img/2_2.png */ \"./app/panels/mech_rec_help/img/2_2.png\");\n/* harmony import */ var _img_2_3_png__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./img/2_3.png */ \"./app/panels/mech_rec_help/img/2_3.png\");\n/* harmony import */ var _img_2_4_png__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./img/2_4.png */ \"./app/panels/mech_rec_help/img/2_4.png\");\n/* harmony import */ var _img_2_5_png__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./img/2_5.png */ \"./app/panels/mech_rec_help/img/2_5.png\");\n/* harmony import */ var _img_21_1_png__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./img/21_1.png */ \"./app/panels/mech_rec_help/img/21_1.png\");\n/* harmony import */ var _img_21_2_png__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./img/21_2.png */ \"./app/panels/mech_rec_help/img/21_2.png\");\n/* harmony import */ var _img_21_3_png__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./img/21_3.png */ \"./app/panels/mech_rec_help/img/21_3.png\");\n/* harmony import */ var _img_3_1_png__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./img/3_1.png */ \"./app/panels/mech_rec_help/img/3_1.png\");\n/* harmony import */ var _img_31_1_png__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./img/31_1.png */ \"./app/panels/mech_rec_help/img/31_1.png\");\n/* harmony import */ var _img_31_2_png__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./img/31_2.png */ \"./app/panels/mech_rec_help/img/31_2.png\");\n/* harmony import */ var _img_31_3_png__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./img/31_3.png */ \"./app/panels/mech_rec_help/img/31_3.png\");\n/* harmony import */ var _img_31_4_png__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./img/31_4.png */ \"./app/panels/mech_rec_help/img/31_4.png\");\n/* harmony import */ var _img_31_5_png__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./img/31_5.png */ \"./app/panels/mech_rec_help/img/31_5.png\");\n/* harmony import */ var _img_31_6_png__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./img/31_6.png */ \"./app/panels/mech_rec_help/img/31_6.png\");\n/* harmony import */ var _img_31_7_png__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./img/31_7.png */ \"./app/panels/mech_rec_help/img/31_7.png\");\n/* harmony import */ var _img_31_8_png__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./img/31_8.png */ \"./app/panels/mech_rec_help/img/31_8.png\");\n/* harmony import */ var _img_31_9_png__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./img/31_9.png */ \"./app/panels/mech_rec_help/img/31_9.png\");\n/* harmony import */ var _img_31_10_png__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./img/31_10.png */ \"./app/panels/mech_rec_help/img/31_10.png\");\n/* harmony import */ var _img_32_1_png__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./img/32_1.png */ \"./app/panels/mech_rec_help/img/32_1.png\");\n/* harmony import */ var _img_32_2_png__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./img/32_2.png */ \"./app/panels/mech_rec_help/img/32_2.png\");\n/* harmony import */ var _img_32_3_png__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./img/32_3.png */ \"./app/panels/mech_rec_help/img/32_3.png\");\n/* harmony import */ var _img_33_1_png__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./img/33_1.png */ \"./app/panels/mech_rec_help/img/33_1.png\");\n/* harmony import */ var _img_33_2_png__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./img/33_2.png */ \"./app/panels/mech_rec_help/img/33_2.png\");\n/* harmony import */ var _img_33_3_png__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./img/33_3.png */ \"./app/panels/mech_rec_help/img/33_3.png\");\n/* harmony import */ var _img_33_4_png__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./img/33_4.png */ \"./app/panels/mech_rec_help/img/33_4.png\");\n/* harmony import */ var _img_34_1_png__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./img/34_1.png */ \"./app/panels/mech_rec_help/img/34_1.png\");\n/* harmony import */ var _img_34_2_png__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./img/34_2.png */ \"./app/panels/mech_rec_help/img/34_2.png\");\n/* harmony import */ var _img_34_3_png__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./img/34_3.png */ \"./app/panels/mech_rec_help/img/34_3.png\");\n/* harmony import */ var _img_34_4_png__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./img/34_4.png */ \"./app/panels/mech_rec_help/img/34_4.png\");\n/* harmony import */ var _img_34_5_png__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./img/34_5.png */ \"./app/panels/mech_rec_help/img/34_5.png\");\n/* harmony import */ var _img_34_6_png__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./img/34_6.png */ \"./app/panels/mech_rec_help/img/34_6.png\");\n/* harmony import */ var _img_34_7_png__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./img/34_7.png */ \"./app/panels/mech_rec_help/img/34_7.png\");\n/* harmony import */ var _img_34_8_png__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./img/34_8.png */ \"./app/panels/mech_rec_help/img/34_8.png\");\n/* harmony import */ var _img_35_1_png__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./img/35_1.png */ \"./app/panels/mech_rec_help/img/35_1.png\");\n/* harmony import */ var _img_41_1_png__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./img/41_1.png */ \"./app/panels/mech_rec_help/img/41_1.png\");\n/* harmony import */ var _img_41_2_png__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./img/41_2.png */ \"./app/panels/mech_rec_help/img/41_2.png\");\n/* harmony import */ var _img_41_3_png__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./img/41_3.png */ \"./app/panels/mech_rec_help/img/41_3.png\");\n/* harmony import */ var _img_41_4_png__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./img/41_4.png */ \"./app/panels/mech_rec_help/img/41_4.png\");\n/* harmony import */ var _img_41_5_png__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./img/41_5.png */ \"./app/panels/mech_rec_help/img/41_5.png\");\n/* harmony import */ var _img_41_6_png__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./img/41_6.png */ \"./app/panels/mech_rec_help/img/41_6.png\");\n/* harmony import */ var _img_41_7_png__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./img/41_7.png */ \"./app/panels/mech_rec_help/img/41_7.png\");\n/* harmony import */ var _img_41_8_png__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./img/41_8.png */ \"./app/panels/mech_rec_help/img/41_8.png\");\n/* harmony import */ var _img_41_9_png__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./img/41_9.png */ \"./app/panels/mech_rec_help/img/41_9.png\");\n/* harmony import */ var _img_41_10_png__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./img/41_10.png */ \"./app/panels/mech_rec_help/img/41_10.png\");\n/* harmony import */ var _img_41_11_png__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./img/41_11.png */ \"./app/panels/mech_rec_help/img/41_11.png\");\n/* harmony import */ var _img_41_12_png__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./img/41_12.png */ \"./app/panels/mech_rec_help/img/41_12.png\");\n/* harmony import */ var _img_42_1_png__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./img/42_1.png */ \"./app/panels/mech_rec_help/img/42_1.png\");\n/* harmony import */ var _img_42_2_png__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./img/42_2.png */ \"./app/panels/mech_rec_help/img/42_2.png\");\n/* harmony import */ var _img_42_3_png__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./img/42_3.png */ \"./app/panels/mech_rec_help/img/42_3.png\");\n/* harmony import */ var _img_42_4_png__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./img/42_4.png */ \"./app/panels/mech_rec_help/img/42_4.png\");\n/* harmony import */ var _img_43_1_png__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./img/43_1.png */ \"./app/panels/mech_rec_help/img/43_1.png\");\n/* harmony import */ var _img_43_2_png__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./img/43_2.png */ \"./app/panels/mech_rec_help/img/43_2.png\");\n/* harmony import */ var _img_43_3_png__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./img/43_3.png */ \"./app/panels/mech_rec_help/img/43_3.png\");\n/* harmony import */ var _img_43_4_png__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./img/43_4.png */ \"./app/panels/mech_rec_help/img/43_4.png\");\n/* harmony import */ var _img_43_5_png__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./img/43_5.png */ \"./app/panels/mech_rec_help/img/43_5.png\");\n/* harmony import */ var _img_43_6_png__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./img/43_6.png */ \"./app/panels/mech_rec_help/img/43_6.png\");\n/* harmony import */ var _img_43_7_png__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./img/43_7.png */ \"./app/panels/mech_rec_help/img/43_7.png\");\n/* harmony import */ var _img_43_8_png__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./img/43_8.png */ \"./app/panels/mech_rec_help/img/43_8.png\");\n/* harmony import */ var _img_44_1_png__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./img/44_1.png */ \"./app/panels/mech_rec_help/img/44_1.png\");\n/* harmony import */ var _img_44_2_png__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./img/44_2.png */ \"./app/panels/mech_rec_help/img/44_2.png\");\n/* harmony import */ var _img_44_3_png__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./img/44_3.png */ \"./app/panels/mech_rec_help/img/44_3.png\");\n/* harmony import */ var _img_44_4_png__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./img/44_4.png */ \"./app/panels/mech_rec_help/img/44_4.png\");\n/* harmony import */ var _img_44_5_png__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./img/44_5.png */ \"./app/panels/mech_rec_help/img/44_5.png\");\n/* harmony import */ var _img_44_6_png__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./img/44_6.png */ \"./app/panels/mech_rec_help/img/44_6.png\");\n/* harmony import */ var _img_44_7_png__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./img/44_7.png */ \"./app/panels/mech_rec_help/img/44_7.png\");\n/* harmony import */ var _img_44_8_png__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./img/44_8.png */ \"./app/panels/mech_rec_help/img/44_8.png\");\n/* harmony import */ var _img_44_9_png__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./img/44_9.png */ \"./app/panels/mech_rec_help/img/44_9.png\");\n/* harmony import */ var _img_44_10_png__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./img/44_10.png */ \"./app/panels/mech_rec_help/img/44_10.png\");\n/* harmony import */ var _img_45_1_png__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./img/45_1.png */ \"./app/panels/mech_rec_help/img/45_1.png\");\n/* harmony import */ var _img_45_2_png__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./img/45_2.png */ \"./app/panels/mech_rec_help/img/45_2.png\");\n/* harmony import */ var _img_45_3_png__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./img/45_3.png */ \"./app/panels/mech_rec_help/img/45_3.png\");\n/* harmony import */ var _img_45_4_png__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./img/45_4.png */ \"./app/panels/mech_rec_help/img/45_4.png\");\n/* harmony import */ var _img_45_5_png__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./img/45_5.png */ \"./app/panels/mech_rec_help/img/45_5.png\");\n/* harmony import */ var _img_45_6_png__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./img/45_6.png */ \"./app/panels/mech_rec_help/img/45_6.png\");\n/* harmony import */ var _img_45_7_png__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./img/45_7.png */ \"./app/panels/mech_rec_help/img/45_7.png\");\n/* harmony import */ var _img_45_8_png__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./img/45_8.png */ \"./app/panels/mech_rec_help/img/45_8.png\");\n/* harmony import */ var _img_45_9_png__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./img/45_9.png */ \"./app/panels/mech_rec_help/img/45_9.png\");\n/* harmony import */ var _img_45_10_png__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./img/45_10.png */ \"./app/panels/mech_rec_help/img/45_10.png\");\n/* harmony import */ var _img_46_1_png__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./img/46_1.png */ \"./app/panels/mech_rec_help/img/46_1.png\");\n/* harmony import */ var _img_46_2_png__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./img/46_2.png */ \"./app/panels/mech_rec_help/img/46_2.png\");\n/* harmony import */ var _img_46_3_png__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./img/46_3.png */ \"./app/panels/mech_rec_help/img/46_3.png\");\n/* harmony import */ var _img_46_4_png__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./img/46_4.png */ \"./app/panels/mech_rec_help/img/46_4.png\");\n/* harmony import */ var _img_46_5_png__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./img/46_5.png */ \"./app/panels/mech_rec_help/img/46_5.png\");\n/* harmony import */ var _img_46_6_png__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./img/46_6.png */ \"./app/panels/mech_rec_help/img/46_6.png\");\n/* harmony import */ var _img_47_1_png__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./img/47_1.png */ \"./app/panels/mech_rec_help/img/47_1.png\");\n/* harmony import */ var _img_47_2_png__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./img/47_2.png */ \"./app/panels/mech_rec_help/img/47_2.png\");\n/* harmony import */ var _img_47_3_png__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./img/47_3.png */ \"./app/panels/mech_rec_help/img/47_3.png\");\n/* harmony import */ var _img_47_4_png__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./img/47_4.png */ \"./app/panels/mech_rec_help/img/47_4.png\");\n/* harmony import */ var _img_47_5_png__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./img/47_5.png */ \"./app/panels/mech_rec_help/img/47_5.png\");\n/* harmony import */ var _img_47_6_png__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./img/47_6.png */ \"./app/panels/mech_rec_help/img/47_6.png\");\n/* harmony import */ var _img_47_7_png__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./img/47_7.png */ \"./app/panels/mech_rec_help/img/47_7.png\");\n/* harmony import */ var _img_47_8_png__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./img/47_8.png */ \"./app/panels/mech_rec_help/img/47_8.png\");\n/* harmony import */ var _img_47_9_png__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./img/47_9.png */ \"./app/panels/mech_rec_help/img/47_9.png\");\n/* harmony import */ var _img_47_10_png__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./img/47_10.png */ \"./app/panels/mech_rec_help/img/47_10.png\");\n/* harmony import */ var _img_47_11_png__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./img/47_11.png */ \"./app/panels/mech_rec_help/img/47_11.png\");\n/* harmony import */ var _img_47_12_png__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./img/47_12.png */ \"./app/panels/mech_rec_help/img/47_12.png\");\n/* harmony import */ var _img_48_1_png__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./img/48_1.png */ \"./app/panels/mech_rec_help/img/48_1.png\");\n/* harmony import */ var _img_48_2_png__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./img/48_2.png */ \"./app/panels/mech_rec_help/img/48_2.png\");\n/* harmony import */ var _img_48_3_png__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./img/48_3.png */ \"./app/panels/mech_rec_help/img/48_3.png\");\n/* harmony import */ var _img_48_4_png__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./img/48_4.png */ \"./app/panels/mech_rec_help/img/48_4.png\");\n/* harmony import */ var _img_49_1_png__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./img/49_1.png */ \"./app/panels/mech_rec_help/img/49_1.png\");\n/* harmony import */ var _img_49_2_png__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./img/49_2.png */ \"./app/panels/mech_rec_help/img/49_2.png\");\n/* harmony import */ var _img_49_3_png__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./img/49_3.png */ \"./app/panels/mech_rec_help/img/49_3.png\");\n/* harmony import */ var _img_410_1_png__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./img/410_1.png */ \"./app/panels/mech_rec_help/img/410_1.png\");\n/* harmony import */ var _img_410_2_png__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./img/410_2.png */ \"./app/panels/mech_rec_help/img/410_2.png\");\n/* harmony import */ var _img_410_3_png__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./img/410_3.png */ \"./app/panels/mech_rec_help/img/410_3.png\");\n/* harmony import */ var _img_410_4_png__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./img/410_4.png */ \"./app/panels/mech_rec_help/img/410_4.png\");\n/* harmony import */ var _img_410_5_png__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./img/410_5.png */ \"./app/panels/mech_rec_help/img/410_5.png\");\n/* harmony import */ var _img_410_6_png__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./img/410_6.png */ \"./app/panels/mech_rec_help/img/410_6.png\");\n/* harmony import */ var _img_410_7_png__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./img/410_7.png */ \"./app/panels/mech_rec_help/img/410_7.png\");\n/* harmony import */ var _img_411_1_png__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./img/411_1.png */ \"./app/panels/mech_rec_help/img/411_1.png\");\n/* harmony import */ var _img_411_2_png__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./img/411_2.png */ \"./app/panels/mech_rec_help/img/411_2.png\");\n/* harmony import */ var _img_411_3_png__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./img/411_3.png */ \"./app/panels/mech_rec_help/img/411_3.png\");\n/* harmony import */ var _img_411_4_png__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./img/411_4.png */ \"./app/panels/mech_rec_help/img/411_4.png\");\n/* harmony import */ var _img_412_1_png__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./img/412_1.png */ \"./app/panels/mech_rec_help/img/412_1.png\");\n/* harmony import */ var _img_412_2_png__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./img/412_2.png */ \"./app/panels/mech_rec_help/img/412_2.png\");\n/* harmony import */ var _img_412_3_png__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./img/412_3.png */ \"./app/panels/mech_rec_help/img/412_3.png\");\n/* harmony import */ var _img_412_4_png__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./img/412_4.png */ \"./app/panels/mech_rec_help/img/412_4.png\");\n/* harmony import */ var _img_413_1_png__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./img/413_1.png */ \"./app/panels/mech_rec_help/img/413_1.png\");\n/* harmony import */ var _img_413_2_png__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./img/413_2.png */ \"./app/panels/mech_rec_help/img/413_2.png\");\n/* harmony import */ var _img_413_3_png__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./img/413_3.png */ \"./app/panels/mech_rec_help/img/413_3.png\");\n/* harmony import */ var _img_413_4_png__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./img/413_4.png */ \"./app/panels/mech_rec_help/img/413_4.png\");\n/* harmony import */ var _img_413_5_png__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./img/413_5.png */ \"./app/panels/mech_rec_help/img/413_5.png\");\n/* harmony import */ var _img_414_1_png__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./img/414_1.png */ \"./app/panels/mech_rec_help/img/414_1.png\");\n/* harmony import */ var _img_414_2_png__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./img/414_2.png */ \"./app/panels/mech_rec_help/img/414_2.png\");\n/* harmony import */ var _img_414_3_png__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./img/414_3.png */ \"./app/panels/mech_rec_help/img/414_3.png\");\n/* harmony import */ var _img_add1_1_png__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./img/add1_1.png */ \"./app/panels/mech_rec_help/img/add1_1.png\");\n/* harmony import */ var _img_add1_2_png__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./img/add1_2.png */ \"./app/panels/mech_rec_help/img/add1_2.png\");\n/* harmony import */ var _img_add1_3_png__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./img/add1_3.png */ \"./app/panels/mech_rec_help/img/add1_3.png\");\n/* harmony import */ var _img_add1_4_png__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./img/add1_4.png */ \"./app/panels/mech_rec_help/img/add1_4.png\");\n/* harmony import */ var _img_add1_5_png__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./img/add1_5.png */ \"./app/panels/mech_rec_help/img/add1_5.png\");\n/* harmony import */ var _img_add1_6_png__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./img/add1_6.png */ \"./app/panels/mech_rec_help/img/add1_6.png\");\n/* harmony import */ var _img_add1_7_png__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./img/add1_7.png */ \"./app/panels/mech_rec_help/img/add1_7.png\");\n/* harmony import */ var _img_add1_8_png__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./img/add1_8.png */ \"./app/panels/mech_rec_help/img/add1_8.png\");\n/* harmony import */ var _img_add1_9_png__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./img/add1_9.png */ \"./app/panels/mech_rec_help/img/add1_9.png\");\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 //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n //Изображение\n\n//---------\n//Константы\n//---------\n\n//Оглавление\nconst CONTENT = [{\n id: \"prg1\",\n caption: \"1. О структуре производства\"\n}, {\n id: \"prg2\",\n caption: \"2. НСИ о продукции\"\n}, {\n id: \"prg3\",\n caption: \"3. Планирование выпуска продукции\"\n}, {\n id: \"prg4\",\n caption: \"4. Оперативное управление производством\"\n}, {\n id: \"add1\",\n caption: \"Приложение: Краткая инструкция по настройке интерфейса\"\n}];\n\n//Стили\nconst STYLES = {\n IMG_CONT: {\n textAlign: \"center\",\n padding: \"10px\"\n },\n IMG: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n PRGF_TABLE: {\n paddingTop: \"20px\",\n paddingBottom: \"20px\",\n display: \"flex\",\n justifyContent: \"center\"\n },\n TABLE: {\n width: \"80%\"\n },\n TABLE_TITLE: {\n backgroundColor: \"lightgray\"\n },\n TABLE_SUBTITLE: {\n textAlign: \"center\",\n backgroundColor: \"#f3eded\",\n fontWeight: \"bold\"\n },\n FAB_BACK: {\n position: \"absolute\",\n right: \"20px\",\n marginTop: \"20px\"\n }\n};\n\n//--------------------------------\n//Вспомогательные функции и классы\n//--------------------------------\n\n//Переход к элементу страницы\nconst scrollToElement = id => document.getElementById(id).scrollIntoView();\n\n//Заголовок первого уровня\nconst Hdr1 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h3\",\n color: \"primary\"\n}), children);\n\n//Контроль свойств - Заголовок первого уровня\nHdr1.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Заголовок второго уровня\nconst Hdr2 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h4\",\n color: \"secondary\"\n}), children);\n\n//Контроль свойств - Заголовок второго уровня\nHdr2.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Заголовок третьего уровня\nconst Hdr3 = ({\n id,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], _extends({}, id ? {\n id\n} : {}, {\n variant: \"h5\",\n color: \"text.primary\"\n}), children);\n\n//Контроль свойств - Заголовок третьего уровня\nHdr3.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Параграф\nconst Prgf = ({\n style,\n children\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], {\n sx: style,\n component: \"div\",\n align: \"justify\"\n}, children);\n\n//Контроль свойств - Параграф\nPrgf.propTypes = {\n style: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().object),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Изображение\nconst Img = ({\n src\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.IMG_CONT\n}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n src: `./${src}`,\n style: STYLES.IMG\n}));\n\n//Контроль свойств - Изображение\nImg.propTypes = {\n src: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired\n};\n\n//Ссылка на раздел Системы\nconst UnitLink = ({\n unitCode,\n children\n}) => {\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__.ApplicationCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => pOnlineShowUnit({\n unitCode\n })\n }, children);\n};\n\n//Контроль свойств - Ссылка на раздел Системы\nUnitLink.propTypes = {\n unitCode: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Ссылка на главу инструкции\nconst ChapterLink = ({\n id,\n dstId,\n onClick,\n children\n}) => {\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], _extends({}, id ? {\n id\n } : {}, {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => {\n scrollToElement(dstId);\n if (onClick && id) onClick(id);\n }\n }), children);\n};\n\n//Контроль свойств - Ссылка на главу инструкции\nChapterLink.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string),\n dstId: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().func),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//Ссылка на информационную панель\nconst PanelLink = ({\n panelName,\n children\n}) => {\n //Подключение к контексту приложения\n const {\n configUrlBase,\n findPanelByName,\n pOnlineShowTab\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_2__.ApplicationCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_146__[\"default\"], {\n component: \"button\",\n variant: \"body2\",\n align: \"left\",\n underline: \"always\",\n onClick: () => {\n const panel = findPanelByName(panelName);\n if (panel) pOnlineShowTab({\n id: panel.name,\n url: `${configUrlBase}${panel.url}`,\n caption: panel.caption\n });\n }\n }, children);\n};\n\n//Контроль свойств - Ссылка на информационную панель\nPanelLink.propTypes = {\n panelName: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().string).isRequired,\n children: (prop_types__WEBPACK_IMPORTED_MODULE_145___default().any)\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Корневая панель пользовательской инструкции\nconst MechRecHelp = () => {\n //Собственное состояние\n const [navStack, setNavStack] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Переход по оглавлению\n const handleTitleClick = id => {\n scrollToElement(id);\n setNavStack([]);\n };\n\n //Обработка на нажатие ссылки на раздел\n const handleChapterLinkClick = backId => {\n const tmp = [...navStack];\n tmp.push(backId);\n setNavStack(tmp);\n };\n\n //Обработка нажатия на кнопку \"Назад\"\n const handleBackClick = () => {\n if (navStack.length > 0) {\n const tmp = [...navStack];\n const backId = tmp.pop();\n scrollToElement(backId);\n setNavStack(tmp);\n }\n };\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], null, navStack.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_148__[\"default\"], {\n variant: \"extended\",\n color: \"primary\",\n sx: STYLES.FAB_BACK,\n onClick: handleBackClick\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_149__[\"default\"], null, \"arrow_back_ios\"), _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.NAVIGATE_BACK) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n container: true,\n spacing: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n item: true,\n xs: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], {\n p: 2\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_144__[\"default\"], {\n variant: \"button\"\n }, \"\\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_151__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_152__[\"default\"], null, CONTENT.map((c, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_153__[\"default\"], {\n disablePadding: true,\n key: i\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_154__[\"default\"], {\n onClick: () => handleTitleClick(c.id)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_155__[\"default\"], {\n primary: c.caption\n })))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_150__[\"default\"], {\n item: true,\n xs: 10,\n sx: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_147__[\"default\"], {\n p: 2,\n style: {\n maxHeight: \"91vh\",\n overflow: \"auto\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr1, null, \"\\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg1\"\n }, \"1. \\u041E \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043D\\u0430 \\u0448\\u0442\\u0430\\u0442\\u043D\\u0430\\u044F \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u0430 \\u043F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u044F \\u0438 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0448\\u0442\\u0430\\u0442\\u043D\\u043E\\u0439 \\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u0443\\u0440\\u044B \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_1_png__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0441\\u043E\\u0441\\u0442\\u043E\\u0438\\u0442 \\u0438\\u0437 4 \\u0446\\u0435\\u0445\\u043E\\u0432, \\u0434\\u043B\\u044F \\u0446\\u0435\\u0445\\u043E\\u0432 \\u2116 2 \\u0438 \\u2116 4 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438. \\u0423\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u2116 2 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0438 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0430 \\u043F\\u0440\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_2_png__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0438 \\u0432\\u043D\\u0443\\u0442\\u0440\\u0438\\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u0443\\u0447\\u0435\\u0442\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432, \\u043F\\u043E\\u043A\\u0443\\u043F\\u043D\\u044B\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u041A\\u0418), \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0414\\u0421\\u0415) \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u044B. \\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u043F\\u0435\\u0440\\u0435\\u0447\\u043D\\u044F \\u0441\\u043A\\u043B\\u0430\\u0434\\u043E\\u0432 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u0421\\u043A\\u043B\\u0430\\u0434\\u044B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_3_png__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0426\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0426\\u041C\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0443\\u0447\\u0435\\u0442\\u0430 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u043E\\u0442 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u0449\\u0438\\u043A\\u043E\\u0432 \\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445\\u0430. \\u0421\\u043A\\u043B\\u0430\\u0434\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0443\\u0447\\u0435\\u0442\\u0430 \\u0432 \\u0446\\u0435\\u0445\\u0435 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u044F \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421, \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u044F \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u043E\\u0442 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438 \\u043E\\u0442 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430, \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432, \\u041F\\u041A\\u0418 \\u0438 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430. \\u041D\\u0430 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0421\\u0413\\u041F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0441\\u0434\\u0430\\u0447\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_4_png__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0434\\u043B\\u044F \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430 \\u2116 2 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u043E \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435. \\u041F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043C\\u043E\\u0436\\u043D\\u043E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_1_5_png__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg2\"\n }, \"2. \\u041D\\u0421\\u0418 \\u043E \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E-\\u0441\\u043F\\u0440\\u0430\\u0432\\u043E\\u0447\\u043D\\u0430\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041D\\u0421\\u0418) \\u043E \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u0430 \\u0434\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0447\\u0435\\u0440\\u0435\\u0437 \\u043F\\u0443\\u043D\\u043A\\u0442 \\u0433\\u043E\\u043B\\u043E\\u0432\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E \\xAB\\u0423\\u0447\\u0435\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_1_png__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u041D\\u0421\\u0418 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u044B, \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E. \\u041F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0435\\u0445\\u043E\\u0434\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u044B \\u043E\\u0442\\u043A\\u0440\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043A\\u043D\\u043E \\xAB\\u041E\\u0442\\u0431\\u043E\\u0440\\xBB, \\u043D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0439\\u0442\\u0435 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\u043A\\u043D\\u043E\\u043F\\u043A\\u0443 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u0430\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0438\\u043C\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u0430 \\u0432 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0430\\u0445: \"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_2_png__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u0438 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043A\\u043E\\u043D\\u0441\\u0442\\u0440\\u0443\\u043A\\u0442\\u043E\\u0440\\u0441\\u043A\\u0438\\u0445 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\xAB\\u0412\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u043E\\u0441\\u043D\\u0430\\u0441\\u0442\\u043A\\u0438\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_3_png__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u043D\\u043E\\u0440\\u043C\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0433\\u043E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043A\\u0430\\u0440\\u0442\\u044B\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_4_png__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0438 \\u0414\\u0421\\u0415 \\u0432\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0445 \\u043A\\u0430\\u0440\\u0442 \\u0442\\u0435\\u0445\\u043D\\u043E\\u043B\\u043E\\u0433\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u044B\\xBB \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043D\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044E\\u0442\\u0441\\u044F, \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442 \\u0414\\u0421\\u0415 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u0435\\u0442\\u0441\\u044F \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u043E\\u0439 \\u043A\\u0430\\u0440\\u0442\\u043E\\u0439.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043F\\u0440\\u0430\\u0432\\u043E\\u0447\\u043D\\u0438\\u043A \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432, \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0438\\u043C\\u044B\\u0445 \\u0438 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043B\\u044F\\u0435\\u043C\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438, \\u043D\\u0430\\u0445\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0418\\u043D\\u0436\\u0435\\u043D\\u0435\\u0440\\u043D\\u044B\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_2_5_png__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"2.1. \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u044B \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0439 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u0438 \\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u044B \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u044B (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u0421). \\u041F\\u0421 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0418\\u043D\\u0436\\u0435\\u043D\\u0435\\u0440\\u043D\\u044B\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435\\xBB \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043D\\u043E\\u0432\\u044B\\u0435 \\u041F\\u0421 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u0443\\u044E\\u0449\\u0438\\u0435, \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u0433\\u043E \\u043C\\u0435\\u043D\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_1_png__WEBPACK_IMPORTED_MODULE_13__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438, \\u043A\\u0430\\u043A \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u043E\\u0431 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0438. \\u041F\\u0421 \\u2013 \\u044D\\u0442\\u043E \\u0438\\u0435\\u0440\\u0430\\u0440\\u0445\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u043E-\\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u0430\\u044F \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u044C \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0430 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432\\u0430 \\u041F\\u0421 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041F\\u0421 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_2_png__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u0438 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\xAB\\u043A\\u0430\\u043A\\u043E\\u0439 \\u041F\\u0421 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB \\u043F\\u0435\\u0440\\u0435\\u0432\\u0435\\u0434\\u0435\\u043D\\u044B \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u044B \\u043A\\u0430\\u043A \\xAB\\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u043C\\u044B\\u0435 \\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_21_3_png__WEBPACK_IMPORTED_MODULE_15__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg3\"\n }, \"3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0430\\u0431\\u043E\\u0442\\u0430 \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u0432 \\u0442.\\u0447. \\u0438 \\u0441 \\u043F\\u043B\\u0430\\u043D\\u0430\\u043C\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_3_1_png__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\xAB\\u041F\\u0410\\u0420\\u0423\\u0421 \\u041F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u0435 8\\xBB \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D\\u044B \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u041A\\u0430\\u0442\\u0435\\u0433\\u043E\\u0440\\u0438\\u0438 \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u041F\\u0435\\u0440\\u0432\\u0438\\u0447\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D\\xBB - \\u043F\\u043B\\u0430\\u043D\\u044B \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB - \\u043A\\u0430\\u043B\\u0435\\u043D\\u0434\\u0430\\u0440\\u043D\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D-\\u0433\\u0440\\u0430\\u0444\\u0438\\u043A\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430/\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439, \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043A \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0443 \\u0432 \\u043F\\u0435\\u0440\\u0432\\u0438\\u0447\\u043D\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u0435;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\xAB\\u0426\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D\\xBB - \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043C\\u0435\\u0441\\u044F\\u0446, \\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B), \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u043C\\u044B\\u0435 \\u0438\\u0437 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u044B \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438 \\u043C\\u043E\\u0433\\u0443\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\u0441\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041D\\u0430 \\u0417\\u0430\\u043A\\u0430\\u0437 \\u2013 \\u0434\\u043B\\u044F \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 (\\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0434\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u0430 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u043A\\u0438 \\u0441 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u0438\\u0442\\u0435\\u043B\\u0435\\u043C) \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0441 \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u0438\\u0435\\u043C \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u041D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043A\\u0432\\u0430\\u0440\\u0442\\u0430\\u043B, \\u043F\\u043E\\u043B\\u0443\\u0433\\u043E\\u0434\\u0438\\u0435, \\u0433\\u043E\\u0434) \\u2013 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043E\\u0434\\u0438\\u043D \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u043A\\u043B\\u044E\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u044F \\u0432\\u0441\\u0435\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432, \\u0434\\u043B\\u044F \\u043A\\u043E\\u0442\\u043E\\u0440\\u043E\\u0439 \\u0434\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u043E\\u043F\\u0430\\u0434\\u0430\\u0435\\u0442 \\u0432 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u043F\\u043B\\u0430\\u043D\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u043D \\u0432\\u0430\\u0440\\u0438\\u0430\\u043D\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\xAB\\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg31\"\n }, \"3.1. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\\xBB, \\u0432 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0435 \\u0441 \\u0438\\u043C\\u0435\\u043D\\u0435\\u043C \\u0412\\u0430\\u0448\\u0435\\u0433\\u043E \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_1_png__WEBPACK_IMPORTED_MODULE_17__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, {\n style: {\n backgroundColor: \"LightYellow\",\n padding: \"5px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"b\", {\n style: {\n color: \"red\"\n }\n }, \"\\u0412\\u043D\\u0438\\u043C\\u0430\\u043D\\u0438\\u0435!!!\"), \" \\u041F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\u0435, \\u043D\\u0435 \\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0443\\u044E\\u0449\\u0435\\u043C \\u0412\\u0430\\u0448\\u0435\\u043C\\u0443 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044E, \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0441\\u043E\\u043E\\u0431\\u0449\\u0435\\u043D\\u0438\\u0435 \\u043E\\u0431 \\u043E\\u0448\\u0438\\u0431\\u043A\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_2_png__WEBPACK_IMPORTED_MODULE_18__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0434\\u0430\\u0442\\u0443 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0438 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB. \\u041E\\u0441\\u0442\\u0430\\u043B\\u044C\\u043D\\u044B\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_3_png__WEBPACK_IMPORTED_MODULE_19__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043D\\u0430 2024 \\u0433\\u043E\\u0434 \\u0438 \\u0441 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0435\\u0439 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_4_png__WEBPACK_IMPORTED_MODULE_20__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430\\u043C\\u0438 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB, \\u044F\\u0432\\u043B\\u044F\\u044E\\u0449\\u0438\\u043C\\u0438\\u0441\\u044F \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\\u043C\\u0438 \\u0434\\u043B\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0432 \\xAB\\u041F\\u0410\\u0420\\u0423\\u0421 \\u041F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u0435 8\\xBB \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044E\\u0442\\u0441\\u044F \\u0438\\u0437 \\u0434\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u043E\\u0432 \\u043F\\u043E\\u0441\\u0442\\u0430\\u0432\\u043A\\u0438, \\u043F\\u0440\\u043E\\u0435\\u043A\\u0442\\u043E\\u0432 \\u041E\\u041A\\u0420 \\u0441 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u043E\\u043C \\u043E\\u043F\\u044B\\u0442\\u043D\\u043E\\u0439 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0438\\u043B\\u0438 \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u044F\\u044E\\u0442\\u0441\\u044F \\u0432\\u0440\\u0443\\u0447\\u043D\\u0443\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_5_png__WEBPACK_IMPORTED_MODULE_21__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_6_png__WEBPACK_IMPORTED_MODULE_22__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430\\xBB - \\u0434\\u0430\\u0442\\u0430 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041B\\u0438\\u0446\\u0435\\u0432\\u043E\\u0439 \\u0441\\u0447\\u0435\\u0442\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0417\\u0430\\u043A\\u0430\\u0437 (\\u041D\\u043E\\u043C\\u0435\\u0440 \\u043B\\u0438\\u0446\\u0435\\u0432\\u043E\\u0433\\u043E \\u0441\\u0447\\u0435\\u0442\\u0430 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442);\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_7_png__WEBPACK_IMPORTED_MODULE_23__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u044F\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u0432\\u0432\\u0435\\u0434\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435\\u2026\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_8_png__WEBPACK_IMPORTED_MODULE_24__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041D\\u043E\\u043C\\u0435\\u043D\\u043A\\u043B\\u0430\\u0442\\u0443\\u0440\\u0430\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0435 \\xAB\\u041B\\u0435\\u0431\\u0435\\u0434\\u043A\\u0430\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0443\\u044E \\u0434\\u0430\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0432 \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u0415\\u0418\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0441\\u043A\\u043E\\u043B\\u044C\\u043A\\u043E \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0432\\u044B\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0437\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u0435 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C\\xBB) \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u043F\\u043B\\u0430\\u043D\\u2026\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_9_png__WEBPACK_IMPORTED_MODULE_25__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0438 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0441\\u043E\\u0437\\u0434\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0440\\u0430\\u043D\\u0435\\u0435 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0431\\u0443\\u0434\\u0435\\u0442 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0441\\u043E \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u0438. \\u0414\\u043B\\u044F \\u0434\\u0430\\u043B\\u044C\\u043D\\u0435\\u0439\\u0448\\u0435\\u0439 \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441 \\u043F\\u043B\\u0430\\u043D\\u043E\\u043C \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0435\\u0433\\u043E \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_31_10_png__WEBPACK_IMPORTED_MODULE_26__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg32\"\n }, \"3.2. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430-\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C \\u0448\\u0430\\u0433\\u043E\\u043C \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430. \\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_1_png__WEBPACK_IMPORTED_MODULE_27__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_2_png__WEBPACK_IMPORTED_MODULE_28__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u0412\\u0430\\u0448\\u0435\\u0433\\u043E \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0422\\u0438\\u043F\\xBB - \\u0432\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041F\\u0440\\u0435\\u0444\\u0438\\u043A\\u0441\\xBB - \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0433\\u043E\\u0434;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u0438\\u0434\\xBB = \\xAB\\u041F\\u043B\\u0430\\u043D\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u0442\\u043B\\u043E\\u0432\\u044B\\u0435 \\u0441 \\u0443\\u0447\\u0435\\u0442\\u043E\\u043C \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430\\xBB - \\u0443\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u0442\\u0435 \\u044D\\u0442\\u043E\\u0442 \\u0447\\u0435\\u043A;\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0438 \\u0437\\u0430\\u043F\\u043E\\u043C\\u0438\\u043D\\u0430\\u044E\\u0442\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043E\\u043A \\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB \\u043A\\u0430\\u043B\\u0435\\u043D\\u0434\\u0430\\u0440\\u043D\\u044B\\u0439 \\u0433\\u0440\\u0430\\u0444\\u0438\\u043A \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430-\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0414\\u0421\\u0415 \\u0432\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445 \\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F (\\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_32_3_png__WEBPACK_IMPORTED_MODULE_29__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0442\\u0440\\u043E\\u043A\\u0438 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0430\\u0442 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C \\u0432\\u043B\\u043E\\u0436\\u0435\\u043D\\u043D\\u043E\\u0441\\u0442\\u0438\\xBB: 0 \\u2013 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, 1 \\u0438 \\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0414\\u0421\\u0415 \\u0438\\u0437 \\u041F\\u0421 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u043F\\u043E \\u0443\\u0440\\u043E\\u0432\\u043D\\u044F\\u043C \\u0432\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438 \\u0432 \\u0441\\u043E\\u0441\\u0442\\u0430\\u0432 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u044B\\u043F\\u0443\\u0441\\u043A\\xBB - \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 - \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0434\\u043B\\u044F \\u0414\\u0421\\u0415 - \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0434\\u043B\\u044F \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F - \\u0440\\u0430\\u0432\\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u043E\\u0442\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438\\xBB \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430, \\u0434\\u043B\\u044F \\u0414\\u0421\\u0415 - \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E (\\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043E \\u0434\\u0430\\u043D\\u043D\\u044B\\u043C \\u041F\\u0421);\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443 \\u0443\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 - \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg33\"\n }, \"3.3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u0430\\u0445\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u0445 \\u0438 \\u041F\\u041A\\u0418, \\u0432 \\u043F\\u0435\\u0440\\u0441\\u043E\\u043D\\u0430\\u043B\\u0435 \\u0438 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u0430\\u0445\\xBB \\u0438 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u043E\\u0449\\u043D\\u043E\\u0441\\u0442\\u044F\\u0445\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_1_png__WEBPACK_IMPORTED_MODULE_30__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0442\\u0440\\u0435\\u0431\\u0443\\u0435\\u0442\\u0441\\u044F, \\u043F\\u0440\\u0438 \\u043F\\u0435\\u0440\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438, \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u0438 \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0422\\u0438\\u043F \\u0438 \\u041F\\u0440\\u0435\\u0444\\u0438\\u043A\\u0441 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_2_png__WEBPACK_IMPORTED_MODULE_31__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u043F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\xAB\\u043F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_3_png__WEBPACK_IMPORTED_MODULE_32__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u0430\\u043A\\u0442\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_33_4_png__WEBPACK_IMPORTED_MODULE_33__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C\\u2026\\xBB \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0438\\u0442 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0443\\u044E \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044E:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432\\xBB - \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u0445 \\u0438 \\u041F\\u041A\\u0418 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\xAB\\u0422\\u0440\\u0443\\u0434\\u043E\\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u0435\\u0440\\u0441\\u043E\\u043D\\u0430\\u043B\\u0430 (\\u0422\\u0440\\u0443\\u0434\\u043E\\u0432\\u044B\\u0445 \\u0440\\u0435\\u0441\\u0443\\u0440\\u0441\\u043E\\u0432) \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0438 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\\xBB - \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F (\\u043F\\u043E \\u0433\\u0440\\u0443\\u043F\\u043F\\u0430\\u043C \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg34\"\n }, \"3.4. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u0430\\u044F \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u0441\\u043B\\u0443\\u0436\\u0431\\u0435 \\u0441\\u043D\\u0430\\u0431\\u0436\\u0435\\u043D\\u0438\\u044F (\\u041E\\u041C\\u0422\\u041E) \\u043D\\u0430 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\xAB\\u041F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u0438 \\u0430\\u043A\\u0442\\u044B \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_1_png__WEBPACK_IMPORTED_MODULE_34__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0439\\u0442\\u0435 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0443 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_2_png__WEBPACK_IMPORTED_MODULE_35__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB. \\u041F\\u0435\\u0440\\u0435\\u0439\\u0434\\u0438\\u0442\\u0435 \\xAB\\u043F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C\\xBB \\u043A \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C\\u0443 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0443 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_3_png__WEBPACK_IMPORTED_MODULE_36__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443 \\u0441\\u0433\\u0440\\u0443\\u043F\\u043F\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0430 \\u0438 \\u0441\\u0443\\u043C\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0430 \\u043F\\u043E \\u043D\\u043E\\u043C\\u0435\\u043D\\u043A\\u043B\\u0430\\u0442\\u0443\\u0440\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_4_png__WEBPACK_IMPORTED_MODULE_37__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0430 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0441\\u043B\\u0443\\u0436\\u0431\\u043E\\u0439 \\u041E\\u041C\\u0422\\u041E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\xAB\\u0423\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_5_png__WEBPACK_IMPORTED_MODULE_38__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438 \\u043D\\u0435 \\u0440\\u0430\\u0441\\u0441\\u043C\\u0430\\u0442\\u0440\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F, \\u043D\\u043E \\u0438\\u043C\\u0438\\u0442\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F, \\u0447\\u0442\\u043E \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0437\\u0430\\u043A\\u0443\\u043F\\u043A\\u0430\\u043C\\u0438 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u044B \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043E\\u0440\\u0434\\u0435\\u0440\\u0430 (\\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u043D\\u0430 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0438\\u043C\\u0438\\u0442\\u0430\\u0446\\u0438\\u0438 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\u044B \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041E\\u0442\\u043C\\u0435\\u0442\\u044C\\u0442\\u0435 \\u0432 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u0432\\u0441\\u0435 \\u0438\\u043B\\u0438 \\u0447\\u0430\\u0441\\u0442\\u044C \\u0441\\u0442\\u0440\\u043E\\u043A;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0443\\u044E \\u043F\\u0440\\u043E\\u0446\\u0435\\u0434\\u0443\\u0440\\u0443\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_6_png__WEBPACK_IMPORTED_MODULE_39__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0434\\u0443\\u0440\\u044B \\u0443\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u0414\\u0430\\u0442\\u0443 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0430 \\u0438 \\u0426\\u0435\\u043D\\u0443 \\u0437\\u0430 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446\\u0443.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_7_png__WEBPACK_IMPORTED_MODULE_40__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438, \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u0438\\u0432\\u0448\\u0438\\u0435 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434, \\u043C\\u043E\\u0436\\u043D\\u043E \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0423\\u0447\\u0435\\u0442 \\u2013 \\u0422\\u043E\\u0432\\u0430\\u0440\\u043D\\u044B\\u0435 \\u0437\\u0430\\u043F\\u0430\\u0441\\u044B \\u2013 \\u041F\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u043C \\u0442\\u043E\\u0432\\u0430\\u0440\\u0430\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_34_8_png__WEBPACK_IMPORTED_MODULE_41__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg35\"\n }, \"3.5. \\u0412\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0434\\u043E\\u0431\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043D\\u043E\\u0432\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0443\\u044E \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0414\\u043E\\u0431\\u0430\\u0432\\u044C\\u0442\\u0435 \\u043D\\u043E\\u0432\\u044B\\u0439 \\u0437\\u0430\\u043A\\u0430\\u0437 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0435\\u0433\\u043E \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from31\",\n dstId: \"prg31\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.1\"), \");\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u041D\\u0430 \\u043F\\u043B\\u0430\\u043D\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0443\\u044E \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0443\\xBB;\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_35_1_png__WEBPACK_IMPORTED_MODULE_42__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0435\\u0439 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from33\",\n dstId: \"prg33\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.3\"), \");\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0418\\u0437 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0437\\u0430\\u044F\\u0432\\u043A\\u0438 \\u041E\\u041C\\u0422\\u041E \\u043D\\u0430 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430\\u043C\\u0438 \\u0438 \\u041F\\u041A\\u0418 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back35from34\",\n dstId: \"prg34\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.3.4\"), \").\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"prg4\"\n }, \"4. \\u041E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0435 \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u043C \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\u0434\\u043B\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u044F\\u0432\\u043B\\u044F\\u0435\\u0442\\u0441\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u0434\\u0430\\u0447\\u0438 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u043C\\u044B\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E-\\u0434\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0435\\u0440\\u0441\\u043A\\u0438\\u043C \\u043E\\u0442\\u0434\\u0435\\u043B\\u043E\\u043C (\\u041F\\u0414\\u041E) \\u043F\\u0440\\u0435\\u0434\\u043F\\u0440\\u0438\\u044F\\u0442\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0438\\u0442\\u044C \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0443 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 \\u041F\\u041A\\u0418 \\u0434\\u043E \\u0434\\u0430\\u0442\\u044B \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430\\u043C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u043C\\u0443 \\u0446\\u0435\\u0445\\u0443 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0417\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430\\u043C \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F (\\u0432 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u2013 \\u043C\\u0435\\u0441\\u044F\\u0446);\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"5) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u043E\\u0431\\u044A\\u0435\\u043C\\u043E\\u0432 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0417\\u0430\\u0434\\u0430\\u0447\\u0438 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0442\\u0438\\u0432\\u043D\\u043E\\u0433\\u043E \\u0443\\u043F\\u0440\\u0430\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\u043C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u043C\\u044B\\u0435 \\u0432\\u043D\\u0443\\u0442\\u0440\\u0438 \\u0446\\u0435\\u0445\\u043E\\u0432:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0417\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"2) \\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C \\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u0442\\u044C \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"3) \\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"4) \\u0423\\u0447\\u0435\\u0441\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"5) \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0442\\u044C \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0435 \\u0414\\u0421\\u0415 \\u0432 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u0442\\u0440\\u0435\\u0431\\u0438\\u0442\\u0435\\u043B\\u0438;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u0421\\u0434\\u0430\\u0442\\u044C \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0435 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u043D\\u0430 \\u0421\\u0413\\u041F;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"7) \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"8) \\u0423\\u0447\\u0435\\u0441\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418 \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.1. \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0430 \\u0432 \\u0446\\u0435\\u0445 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0439 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u041F\\u041A\\u0418:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u041E \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0441\\u043E\\u0434\\u0435\\u0440\\u0436\\u0430\\u0449\\u0438\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F (\\u0423\\u0440\\u043E\\u0432\\u0435\\u043D\\u044C \\u0432\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438 = 0), \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u0430\\u044F \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u044C\\xBB (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041A\\u0412).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_1_png__WEBPACK_IMPORTED_MODULE_43__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_2_png__WEBPACK_IMPORTED_MODULE_44__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0431\\u043B\\u043E\\u043A\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435\\xBB \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F \\u0447\\u0435\\u043A\\u0438 \\xAB\\u0414\\u0421\\u0415\\xBB, \\u0442.\\u0435. \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u0447\\u0442\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C \\u0442\\u043E\\u043B\\u044C\\u043A\\u043E \\u041F\\u041A\\u0418.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u2013 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u044B\\u0435 \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_3_png__WEBPACK_IMPORTED_MODULE_45__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430\\u0445, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u041A\\u0412 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0443\\u0441\\u0442\\u0430\\u043D\\u0430\\u0432\\u043B\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0434\\u0430\\u0442\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u041F\\u041A\\u0418 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 (\\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u044F \\u043F\\u043B\\u0430\\u043D\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_4_png__WEBPACK_IMPORTED_MODULE_46__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0426\\u041C\\u0421 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u044B\\u0435 \\u0432\\u0435\\u0434\\u043E\\u043C\\u043E\\u0441\\u0442\\u0438\\xBB \\u043E\\u0442\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442 \\u043D\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u044B\\u0435 \\u041A\\u0412 (\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_5_png__WEBPACK_IMPORTED_MODULE_47__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_6_png__WEBPACK_IMPORTED_MODULE_48__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0447\\u0430\\u0441\\u0442\\u044F\\u043C\\u0438, \\u0442\\u043E \\u0432 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043F\\u043E\\u0434\\u0431\\u0438\\u0440\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041F\\u041A\\u0418, \\u0438\\u043C\\u0435\\u044E\\u0449\\u0438\\u0435 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0438 \\u043D\\u0430 \\u0426\\u041C\\u0421. \\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 (\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432) \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041A\\u0412 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\xBB. \\u041A\\u0430\\u043A\\u0438\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043F\\u043E\\u0434\\u043E\\u0431\\u0440\\u0430\\u043D\\u044B \\u0438 \\u043A\\u0430\\u043A\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043E \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_7_png__WEBPACK_IMPORTED_MODULE_49__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421 \\u0432 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0439 \\u0446\\u0435\\u0445 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0430\\u044F \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0430\\u044F \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u0442\\u0440\\u043E\\u043A\\u0438\\xBB \\u0432\\u044B\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\u043C \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0441\\u0442\\u0440\\u043E\\u043A \\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\u2026\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_8_png__WEBPACK_IMPORTED_MODULE_50__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0439 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0446\\u0435\\u0445\\u0443 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u043D\\u043E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_9_png__WEBPACK_IMPORTED_MODULE_51__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u041F\\u0440\\u0438 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u0426\\u041C\\u0421 \\u0446\\u0435\\u0445 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_10_png__WEBPACK_IMPORTED_MODULE_52__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u0441 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043E\\u043C\\xBB (\\u043F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_11_png__WEBPACK_IMPORTED_MODULE_53__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"6) \\u041F\\u043E\\u0441\\u043B\\u0435 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445 \\u0432\\u0441\\u0435\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041A\\u0412 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041F\\u0435\\u0440\\u0435\\u0434\\u0430\\u043D\\u043E\\xBB. \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0441\\u043C\\u0435\\u043D\\u044B \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB \\u043F\\u043E\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0443\\u044E \\u0434\\u0430\\u0442\\u0443 \\u043E\\u0431\\u0435\\u0441\\u043F\\u0435\\u0447\\u0435\\u043D\\u0438\\u044F \\u0446\\u0435\\u0445\\u0430 \\u041F\\u041A\\u0418.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_41_12_png__WEBPACK_IMPORTED_MODULE_54__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.2. \\u0412\\u044B\\u0434\\u0430\\u0447\\u0430 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0441\\u043E\\u043F\\u0440\\u043E\\u0432\\u043E\\u0436\\u0434\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u043C \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB. \\u041F\\u0414\\u041E \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0446\\u0435\\u0445\\u0430\\u043C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u0438\\u043B\\u0438 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u2013 \\u044D\\u0442\\u043E \\u043C\\u0430\\u0441\\u0441\\u043E\\u0432\\u043E\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u043D\\u0430 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0432\\u0430\\u043B \\u0434\\u0430\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043B\\u044F \\u0434\\u043E\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u043D\\u0430 \\u0432\\u043E\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0442\\u0435\\u0445\\u043D\\u043E\\u043B\\u043E\\u0433\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043F\\u043E\\u0442\\u0435\\u0440\\u044C \\u0438\\u043B\\u0438 \\u0431\\u0440\\u0430\\u043A\\u0430).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u0438 \\u0438\\u0437 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_1_png__WEBPACK_IMPORTED_MODULE_55__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_2_png__WEBPACK_IMPORTED_MODULE_56__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0437\\u0430\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0438\\u043D\\u0442\\u0435\\u0440\\u0432\\u0430\\u043B \\u0434\\u0430\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 (\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0441.. \\u043F\\u043E), \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u041C\\u041B \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\u0435\\u043C\\u044B\\u0445 (\\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB) \\u0432 \\u0438\\u044E\\u043B\\u0435 2024 \\u0433.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u041B \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u044E\\u0442\\u0441\\u044F \\u0438 \\u0445\\u0440\\u0430\\u043D\\u044F\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_3_png__WEBPACK_IMPORTED_MODULE_57__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u041C\\u041B \\u0438\\u043C\\u0435\\u044E\\u0442 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u041D\\u043E\\u0432\\u044B\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_42_4_png__WEBPACK_IMPORTED_MODULE_58__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.3. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0446\\u0435\\u0445\\u0430\\u043C \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\u043C \\u0438 \\u0443\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\\u043C \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u043D\\u0430 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434 (\\u043C\\u0435\\u0441\\u044F\\u0446). \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0414\\u043B\\u044F \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_1_png__WEBPACK_IMPORTED_MODULE_59__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_2_png__WEBPACK_IMPORTED_MODULE_60__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u041F\\u0435\\u0440\\u0438\\u043E\\u0434\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u043C\\u0435\\u0441\\u044F\\u0446 \\u043F\\u043B\\u0430\\u043D\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u0446\\u0435\\u0445 \\u043F\\u043B\\u0430\\u043D\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0430\\u0442\\u044C \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438\\u2026\\xBB - \\u0443\\u0441\\u0442\\u0430\\u043D\\u0430\\u0432\\u043B\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u0447\\u0435\\u043A \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0432 \\u043F\\u043B\\u0430\\u043D \\u043F\\u043E \\u0434\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0438 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043E\\u0442\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0414\\u0421\\u0415 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_3_png__WEBPACK_IMPORTED_MODULE_61__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0414\\u043B\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B\\xBB, \\u0434\\u043B\\u044F \\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u0438\\u0437 \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\xAB\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C\\u2026\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_4_png__WEBPACK_IMPORTED_MODULE_62__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0415\\u0441\\u043B\\u0438 \\u0446\\u0435\\u0445 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u043B \\u043F\\u043B\\u0430\\u043D \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430, \\u0442\\u043E \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441 \\xAB\\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\u0430\\xBB \\u0432 \\u043F\\u043B\\u0430\\u043D \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_5_png__WEBPACK_IMPORTED_MODULE_63__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u043F\\u043B\\u0430\\u043D, \\u0432 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0439 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442\\u0441\\u044F \\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0435\\u0440\\u0435\\u043D\\u0435\\u0441\\u0435\\u043D\\u043D\\u043E\\u0435 \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0435\\u0433\\u043E \\u043C\\u0435\\u0441\\u044F\\u0446\\u0430 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\u0430 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043F\\u043B\\u0430\\u043D\\u0435 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u0435\\u0434\\u043E\\u0434\\u0435\\u043B\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_6_png__WEBPACK_IMPORTED_MODULE_64__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u0414\\u043B\\u044F \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0440\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u043D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u0430\\u0445\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_7_png__WEBPACK_IMPORTED_MODULE_65__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442 \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442\\u0430 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u044B \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\xBB. \\u0412 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041D\\u043E\\u0440\\u043C\\u043E\\u0447\\u0430\\u0441\\u044B \\u043F\\u043B\\u0430\\u043D\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0442\\u0440\\u0443\\u0434\\u043E\\u0435\\u043C\\u043A\\u043E\\u0441\\u0442\\u044C \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u0445 \\u0414\\u0421\\u0415.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_43_8_png__WEBPACK_IMPORTED_MODULE_66__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u0411\\u0430\\u043B\\u0430\\u043D\\u0441\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435\\u043C/\\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0441\\u0442\\u0440\\u043E\\u043A \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438\\u0437 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430. \\u0418 \\u043F\\u043E\\u0432\\u0442\\u043E\\u0440\\u043D\\u044B\\u043C \\u0440\\u0430\\u0441\\u0447\\u0435\\u0442\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u043E\\u0439 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438.\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"6) \\u0426\\u0435\\u0445\\u043E\\u0432\\u043E\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0443\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0423\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\xBB. \\u0426\\u0435\\u0445\\u043E\\u0432\\u044B\\u0435 \\u043F\\u043B\\u0430\\u043D\\u044B \\u0438\\u0441\\u0442\\u0435\\u043A\\u0448\\u0435\\u0433\\u043E \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u0430 \\u0440\\u0435\\u043A\\u043E\\u043C\\u0435\\u043D\\u0434\\u0443\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442\\u044C \\u0432 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.4. \\u0417\\u0430\\u043F\\u0443\\u0441\\u043A \\u0446\\u0435\\u0445\\u043E\\u043C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E-\\u0434\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0435\\u0440\\u0441\\u043A\\u043E\\u0435 \\u0431\\u044E\\u0440\\u043E \\u0446\\u0435\\u0445\\u0430 (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u041F\\u0414\\u0411) \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u0443 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u0446\\u0435\\u0445 \\u043F\\u0435\\u0440\\u0432\\u044B\\u0439 \\u0432 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0430\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u0411 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0443 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\xAB\\u0414\\u0430\\u0442\\u0443 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_1_png__WEBPACK_IMPORTED_MODULE_67__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u043E\\u0442\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0441 \\u043D\\u0435 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u0434\\u0430\\u0442\\u043E\\u0439 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0441\\u0432\\u043E\\u0438\\u043C \\u0441\\u043A\\u043B\\u0430\\u0434\\u043E\\u043C \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0438 \\u043F\\u0443\\u0441\\u0442\\u043E\\u0439 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0435\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_2_png__WEBPACK_IMPORTED_MODULE_68__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0438 \\u043D\\u0430 \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0435 \\u0444\\u043E\\u0440\\u043C\\u044B \\u0440\\u0435\\u0434\\u0430\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\xAB\\u0414\\u043E\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\xBB \\u0432 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u044F\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_3_png__WEBPACK_IMPORTED_MODULE_69__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043F\\u0440\\u043E\\u0432\\u0435\\u0440\\u044F\\u0435\\u0442 \\u043D\\u0430\\u043B\\u0438\\u0447\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0446\\u0435\\u0445\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_4_png__WEBPACK_IMPORTED_MODULE_70__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0415\\u0441\\u043B\\u0438, \\u043A\\u0430\\u043A \\u0432 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0432\\u044B\\u0448\\u0435, \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0446\\u0435\\u0445\\u0430 \\u043D\\u0435\\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E, \\u0442\\u043E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041C\\u041B \\u043E\\u0444\\u043E\\u0440\\u043C\\u043B\\u044F\\u0435\\u0442 \\u0442\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A\\xBB (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0420\\u041D).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_5_png__WEBPACK_IMPORTED_MODULE_71__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0438 \\u0432 \\u0431\\u0443\\u0444\\u0435\\u0440\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u0422\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F, \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u0446\\u0435\\u0445\\u0430\\u043C\\u0438, \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B \\u0426\\u041C\\u0421 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_6_png__WEBPACK_IMPORTED_MODULE_72__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0426\\u041C\\u0421 \\u0437\\u0430\\u0434\\u0430\\u0435\\u0442 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0441\\u043F\\u0435\\u0446\\u0438\\u0444\\u0438\\u043A\\u0430\\u0446\\u0438\\u0438 \\u0420\\u041D \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E, \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB) \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442 \\u0420\\u041D \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB - \\xAB\\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u0441 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u043E\\u043C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_7_png__WEBPACK_IMPORTED_MODULE_73__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u041F\\u0440\\u0438 \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u0446\\u0435\\u0445, \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0432 \\u041C\\u041B \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0437 \\u041C\\u041B \\u0420\\u041D \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_8_png__WEBPACK_IMPORTED_MODULE_74__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C \\u0420\\u041D \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0417\\u0430\\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"6) \\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u041F\\u0414\\u0411 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442 \\u041C\\u041B \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_9_png__WEBPACK_IMPORTED_MODULE_75__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0438 \\u043F\\u0435\\u0447\\u0430\\u0442\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_44_10_png__WEBPACK_IMPORTED_MODULE_76__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041F\\u0435\\u0447\\u0430\\u0442\\u044C\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg45\"\n }, \"4.5. \\u0417\\u0430\\u043F\\u0443\\u0441\\u043A \\u0446\\u0435\\u0445\\u043E\\u043C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u044B\\u0445 \\u0435\\u0434\\u0438\\u043D\\u0438\\u0446 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0439 \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0430\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0414\\u0411 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0437 \\u041C\\u041B \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u043E\\u0447\\u043D\\u043E\\u0435 \\u0442\\u0440\\u0435\\u0431\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0430 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044E\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_1_png__WEBPACK_IMPORTED_MODULE_77__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442 \\u0414\\u0430\\u0442\\u0443 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_2_png__WEBPACK_IMPORTED_MODULE_78__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E \\u0441\\u0432\\u044F\\u0437\\u044F\\u043C \\u043F\\u0435\\u0440\\u0435\\u0445\\u043E\\u0434\\u0438\\u0442 \\u043A \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u043C\\u0443 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0443\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_3_png__WEBPACK_IMPORTED_MODULE_79__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u0442\\u044C \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0438\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_4_png__WEBPACK_IMPORTED_MODULE_80__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u043E\\u0432 \\u041F\\u041A\\u0418 \\u0438 \\u0414\\u0421\\u0415 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E \\u0434\\u043B\\u044F \\u043D\\u0430\\u0447\\u0430\\u043B\\u0430 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438, \\u0442\\u043E \\u041F\\u0414\\u0411 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u0421\\u0413\\u0414 \\u043D\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435, \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u044F \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\xAB\\u0414\\u0430\\u0442\\u0443 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u044F \\u041C\\u041B \\u0432 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB. \\u041F\\u0414\\u0411 \\u043F\\u0435\\u0447\\u0430\\u0442\\u0430\\u0435\\u0442 \\u041C\\u041B \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A \\u043F\\u0435\\u0440\\u0432\\u043E\\u0439 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0421\\u0413\\u0414 \\u0446\\u0435\\u0445\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u0435\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F \\u0438 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438. \\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_5_png__WEBPACK_IMPORTED_MODULE_81__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_6_png__WEBPACK_IMPORTED_MODULE_82__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0420\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_7_png__WEBPACK_IMPORTED_MODULE_83__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0421\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043E\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439, \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043E \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435. \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438, \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u043C\\u0438 \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0421\\u0413\\u0414 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_8_png__WEBPACK_IMPORTED_MODULE_84__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0438 \\u0435\\u0441\\u043B\\u0438 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u043B\\u0430\\u043D, \\u0442\\u043E \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412\\u044B\\u0434\\u0430\\u043D\\u043E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_9_png__WEBPACK_IMPORTED_MODULE_85__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0432 \\u0446\\u0435\\u0445 \\u0432\\u0441\\u0435\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044F \\u043F\\u0435\\u0440\\u0435\\u0432\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0432 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB = \\xAB\\u0412\\u044B\\u0434\\u0430\\u043D\\u043E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E\\xBB \\u0438 \\u0421\\u0413\\u0414 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 - \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E\\u2026\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_45_10_png__WEBPACK_IMPORTED_MODULE_86__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.6. \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043E\\u0431\\u043D\\u043E\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435 \\u0438 \\u043F\\u043B\\u0430\\u043D\\u0430\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043E \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u043C \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0435/\\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0441\\u0447\\u0438\\u0442\\u0430\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_1_png__WEBPACK_IMPORTED_MODULE_87__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_2_png__WEBPACK_IMPORTED_MODULE_88__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u0430 \\u0432 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u043C \\u0441\\u0442\\u043E\\u043B\\u0435. \\u0414\\u043B\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C\\u044E \\u043A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\u0438\\u043A\\u043E\\u043D\\u043A\\u0443\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u0430\\u044F \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0430\\xBB\"), \".\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_3_png__WEBPACK_IMPORTED_MODULE_89__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u0432 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0412\\u0430\\u0448 \\u043A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438 \\u043F\\u0435\\u0440\\u0435\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\xAB\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\\xBB \\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_4_png__WEBPACK_IMPORTED_MODULE_90__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u0441\\u0442\\u0440\\u043E\\u043A\\u0438 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0437\\u0430\\u043B\\u0438\\u0442\\u044B \\xAB\\u043A\\u0440\\u0430\\u0441\\u043D\\u044B\\u043C\\xBB. \\u041A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0432\\u0430\\u0436\\u0434\\u044B \\u043D\\u0430 \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0434\\u0438\\u0430\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_5_png__WEBPACK_IMPORTED_MODULE_91__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u043D\\u0430 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB, \\u043E\\u0442\\u043A\\u0440\\u043E\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0447\\u0435\\u043D\\u044C \\u041C\\u041B \\u0438 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\u043E \\u043D\\u0430\\u043B\\u0438\\u0447\\u0438\\u0438 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0438 \\u043D\\u0430 \\u0441\\u043A\\u043B\\u0430\\u0434\\u0435 \\u0426\\u041C\\u0421 \\u0438 \\u0432 \\u0446\\u0435\\u0445\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_46_6_png__WEBPACK_IMPORTED_MODULE_92__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u0437 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0430 \\u0441\\u043B\\u0435\\u0434\\u0443\\u0435\\u0442, \\u0447\\u0442\\u043E \\u0446\\u0435\\u0445 \\u043D\\u0435 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0438\\u043B \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B \\u0441 \\u0426\\u041C\\u0421 \\u0438 \\u043F\\u043E\\u0442\\u043E\\u043C\\u0443 \\u043D\\u0435 \\u0437\\u0430\\u043F\\u0443\\u0441\\u0442\\u0438\\u043B \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0431\\u0443\\u0434\\u0435\\u0442 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0442\\u044C\\u0441\\u044F \\u041C\\u041B \\u0438 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u044F \\u0441 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0430\\u043C\\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043D\\u0430 \\u0421\\u0413\\u0414 \\u0441\\u0431\\u043E\\u0440\\u043E\\u0447\\u043D\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, {\n id: \"prg47\"\n }, \"4.7. \\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0438 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043D\\u0430 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0430\\u0445 \\u0446\\u0435\\u0445\\u043E\\u0432\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0423\\u0447\\u0430\\u0441\\u0442\\u043A\\u0438 \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u044E\\u0442 \\u0441 \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u043C\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u041C\\u041B (\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 = \\xAB\\u0412 \\u0440\\u0430\\u0431\\u043E\\u0442\\u0435\\xBB).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0442\\u044C\\u0441\\u044F \\u0432\\u043D\\u0435 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u044B \\u2013 \\u043C\\u0430\\u0441\\u0442\\u0435\\u0440 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0435\\u0442 \\xAB\\u0431\\u0443\\u043C\\u0430\\u0436\\u043D\\u044B\\u0439\\xBB \\u041C\\u041B \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u0435 \\u043C\\u0435\\u0441\\u0442\\u043E \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438, \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0432 \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_1_png__WEBPACK_IMPORTED_MODULE_93__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0432 \\u0441\\u0438\\u0441\\u0442\\u0435\\u043C\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_2_png__WEBPACK_IMPORTED_MODULE_94__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0438 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u0440\\u0430\\u0431\\u043E\\u0442 \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0438\\u0445 \\u0446\\u0435\\u043D\\u0442\\u0440\\u0430\\u0445 \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u043E\\u0432 \\u043C\\u0435\\u0445\\u0430\\u043D\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u2116 2.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u0443\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0421\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0441\\u043C\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F (\\u0434\\u0430\\u043B\\u0435\\u0435 \\u2013 \\u0421\\u0417) \\u0443\\u0447\\u0430\\u0441\\u0442\\u043A\\u0430, \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_3_png__WEBPACK_IMPORTED_MODULE_95__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_4_png__WEBPACK_IMPORTED_MODULE_96__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u0430\\u0442\\u0430\\xBB - \\u0434\\u0430\\u0442\\u0430 \\u0421\\u0417;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0426\\u0435\\u0445, \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\\xBB - \\u0432\\u044B\\u0431\\u0438\\u0440\\u0430\\u0435\\u0442\\u0441\\u044F \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A \\u0446\\u0435\\u0445\\u0430;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u0421\\u043C\\u0435\\u043D\\u0430\\xBB - \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043D\\u043E\\u043C\\u0435\\u0440 \\u0441\\u043C\\u0435\\u043D\\u044B.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041D\\u0430 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u0441\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u0421\\u0417 \\u0432\\u044B\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_5_png__WEBPACK_IMPORTED_MODULE_97__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430 \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostJobsManage\"\n }, \"\\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0438 \\u0441\\u043C\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_6_png__WEBPACK_IMPORTED_MODULE_98__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0442\\u043C\\u0435\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F \\u0421\\u0417 \\u0438 \\u0441\\u0442\\u0430\\u043D\\u043E\\u043A, \\u043D\\u0430 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0439 \\u0432\\u044B\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 (\\u043F\\u043E\\u0434\\u0441\\u0432\\u0435\\u0447\\u0438\\u0432\\u0430\\u044E\\u0442\\u0441\\u044F \\xAB\\u043A\\u0430\\u043A \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B\\u0435\\xBB \\u0442\\u043E\\u043B\\u044C\\u043A\\u043E \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0433\\u0440\\u0443\\u043F\\u043F\\u044B \\u043E\\u0431\\u043E\\u0440\\u0443\\u0434\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0432 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438);\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043D\\u043E\\u043F\\u043A\\u0430 \\xAB\\u0412\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435\\xBB \\u0438 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0432\\u0430\\u0435\\u043C\\u044B\\u0445 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043E\\u043A \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 (\\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E \\u0440\\u0430\\u0432\\u043D\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0443 \\u043F\\u043B\\u0430\\u043D \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u0421\\u0417) \\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_7_png__WEBPACK_IMPORTED_MODULE_99__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438, \\u043A\\u0430\\u043A \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435, \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u043D\\u0435 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0431\\u044B\\u0442\\u044C \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043E \\u0432 \\u0434\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0441\\u043C\\u0435\\u043D\\u0435 \\u043D\\u0430 \\u043E\\u0434\\u043D\\u043E\\u043C \\u0441\\u0442\\u0430\\u043D\\u043A\\u0435 (\\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 202%), \\u0442\\u043E \\u043C\\u043E\\u0436\\u043D\\u043E \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044E \\xAB\\u0418\\u0441\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0438\\u0437 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB \\u0438 \\u0432\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043C\\u0435\\u043D\\u044C\\u0448\\u0435\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_8_png__WEBPACK_IMPORTED_MODULE_100__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0441\\u043B\\u0435 \\u0440\\u0430\\u0441\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u043D\\u0430\\u0436\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\xBB. \\u0418 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u0437\\u0430\\u043A\\u0440\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F. \\u0412 \\u0421\\u0417 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043A \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044E \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0438 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u043D\\u0430 \\u043A\\u043E\\u0442\\u043E\\u0440\\u044B\\u0445 \\u043E\\u043D\\u0438 \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0442\\u044C\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_9_png__WEBPACK_IMPORTED_MODULE_101__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"4) \\u041F\\u043E \\u043E\\u043A\\u043E\\u043D\\u0447\\u0430\\u043D\\u0438\\u0438 \\u0441\\u043C\\u0435\\u043D\\u044B, \\u0435\\u0441\\u043B\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D \\u0432\\u0435\\u0441\\u044C \\u043E\\u0431\\u044A\\u0435\\u043C \\u0440\\u0430\\u0431\\u043E\\u0442 \\u0421\\u0417, \\u0442\\u043E \\u0434\\u043B\\u044F \\u0441\\u0442\\u0440\\u043E\\u043A \\u0421\\u0417 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\xAB\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0434\\u0438\\u0442\\u044C \\u0444\\u0430\\u043A\\u0442\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_10_png__WEBPACK_IMPORTED_MODULE_102__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E \\u043C\\u0435\\u043D\\u044C\\u0448\\u0435 \\u0437\\u0430\\u043F\\u043B\\u0430\\u043D\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043E, \\u0442\\u043E \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0443\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0444\\u0430\\u043A\\u0442\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_11_png__WEBPACK_IMPORTED_MODULE_103__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"5) \\u0414\\u043B\\u044F \\u043E\\u0442\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u044F \\u0444\\u0430\\u043A\\u0442\\u0430 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u0432 \\u041C\\u041B, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0430 \\u0421\\u0417 \\u0432 \\u041C\\u041B\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_47_12_png__WEBPACK_IMPORTED_MODULE_104__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.8. \\u0423\\u0447\\u0435\\u0442 \\u0431\\u0440\\u0430\\u043A\\u0430 \\u0438 \\u043E\\u0442\\u0440\\u044B\\u0432 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0415\\u0441\\u043B\\u0438 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432\\u044B\\u044F\\u0432\\u043B\\u0435\\u043D\\u043E \\u043D\\u0435\\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 (\\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u0435\\u043D, \\u0431\\u0440\\u0430\\u043A) \\u0438\\u043B\\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043D\\u0443\\u044E \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0447\\u0430\\u0441\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0434\\u0435\\u043B\\u0438\\u0442\\u044C \\u0432 \\u043E\\u0442\\u0434\\u0435\\u043B\\u044C\\u043D\\u0443\\u044E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E, \\u0442\\u043E \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F (\\u043E\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043D\\u043E\\u0439 \\u043F\\u043E \\u0421\\u0417 \\u0447\\u0430\\u0441\\u0442\\u0438\\u0447\\u043D\\u043E \\u0432 \\u043F. 4.7):\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\xAB010\\xBB \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432\\u044B\\u044F\\u0432\\u043B\\u0435\\u043D\\u043E \\u043D\\u0435\\u0441\\u043E\\u043E\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0438\\u0435 2 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u043D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442, \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430\\u044E\\u0449\\u0438\\u0439 2 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0438 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438. \\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0430\\u043A\\u0442 \\u043E \\u0431\\u0440\\u0430\\u043A\\u0435\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_1_png__WEBPACK_IMPORTED_MODULE_105__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_2_png__WEBPACK_IMPORTED_MODULE_106__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"\\u2022 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442: \\u0422\\u0438\\u043F\\xBB = \\xAB\\u0411\\u0440\\u0430\\u043A\\xBB;\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null), \"\\u2022 \\xAB\\u041A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E\\xBB = 2.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441 \\u0442\\u0438\\u043F\\u043E\\u043C \\xAB\\u0411\\u0440\\u0430\\u043A\\xBB \\u0438 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0432 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0443\\u043C\\u0435\\u043D\\u044C\\u0448\\u0430\\u0435\\u0442\\u0441\\u044F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041D\\u0430 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\xAB010\\xBB \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u043D\\u043E 8 \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439, \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0434\\u0435\\u043B\\u0438\\u0442\\u044C \\u0438\\u0445 \\u0432 \\u043E\\u0442\\u0434\\u0435\\u043B\\u044C\\u043D\\u0443\\u044E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E (\\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0438\\u0442\\u044C, \\u043E\\u0442\\u0440\\u044B\\u0432 \\u043E\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438). \\u041E\\u0442\\u0440\\u044B\\u0432 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB. \\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u041A\\u0430\\u0442\\u0430\\u043B\\u043E\\u0433\\xBB \\u0438 \\xAB\\u0422\\u0438\\u043F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_3_png__WEBPACK_IMPORTED_MODULE_107__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0440\\u0435\\u0437\\u0443\\u043B\\u044C\\u0442\\u0430\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043D\\u043E\\u0432\\u044B\\u0439 \\u041C\\u041B (\\u043D\\u043E\\u0432\\u0430\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F) \\u0438 \\u0432 \\u0438\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u043C \\u041C\\u041B \\u0443\\u043C\\u0435\\u043D\\u044C\\u0448\\u0430\\u0435\\u0442\\u0441\\u044F \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u043E\\u0436\\u043D\\u043E \\u043F\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u043A\\u0430\\u043A\\u0438\\u0435 \\u041C\\u041B \\u043E\\u0442\\u043E\\u0440\\u0432\\u0430\\u043D\\u044B \\u043E\\u0442 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u041C\\u041B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u0432\\u044F\\u0437\\u0438 \\u2013 \\u0413\\u0440\\u0430\\u0444\\u0438\\u0447\\u0435\\u0441\\u043A\\u043E\\u0435 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0435\\u043D\\u0438\\u0435\\xBB \\u0438\\u043B\\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_48_4_png__WEBPACK_IMPORTED_MODULE_108__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.9. \\u0421\\u0434\\u0430\\u0447\\u0430 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0444\\u043E\\u0440\\u043C\\u043B\\u0435\\u043D\\u0438\\u0435 \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u041F\\u0414\\u0411 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\u044E\\u0449\\u0435\\u0433\\u043E \\u0446\\u0435\\u0445\\u0430 \\u0438\\u0437 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u043E\\u0432 \\u041C\\u041B. \\u0412 \\u041C\\u041B \\u0434\\u043E\\u043B\\u0436\\u043D\\u0430 \\u0431\\u044B\\u0442\\u044C \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0430 \\u043F\\u043E\\u043B\\u043D\\u043E\\u0441\\u0442\\u044C\\u044E \\u0438\\u043B\\u0438 \\u0447\\u0430\\u0441\\u0442\\u0438\\u0447\\u043D\\u043E \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043D\\u044F\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F. \\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0441\\u0434\\u0430\\u0442\\u043E\\u0447\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434 \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_1_png__WEBPACK_IMPORTED_MODULE_109__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u0444\\u043E\\u0440\\u043C\\u0435 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u043E\\u0432 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB (\\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u044B \\u0437\\u0430\\u043F\\u043E\\u043B\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u0438\\u0437 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043A \\u043F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044F \\u0438 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0431\\u0443\\u0444\\u0435\\u0440\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043D\\u0430\\u0436\\u043C\\u0438\\u0442\\u0435 \\xAB\\u041E\\u041A\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u043A\\u043B\\u0430\\u0434 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u043B\\u0443\\u0447\\u0430\\u0442\\u0435\\u043B\\u044F \\u0414\\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0441\\u043A\\u043B\\u0430\\u0434 \\u0421\\u0413\\u041F (\\u0433\\u043E\\u0442\\u043E\\u0432\\u0430\\u044F \\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0446\\u0438\\u044F) \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041F\\u0440\\u0438\\u0445\\u043E\\u0434\\u044B \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_2_png__WEBPACK_IMPORTED_MODULE_110__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0430\\u0435\\u0442 \\u0444\\u0430\\u043A\\u0442 \\u043F\\u043E\\u0441\\u0442\\u0443\\u043F\\u043B\\u0435\\u043D\\u0438\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415, \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u044F \\u043D\\u0430 \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C \\u043A\\u0430\\u043A \\u0444\\u0430\\u043A\\u0442\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_49_3_png__WEBPACK_IMPORTED_MODULE_111__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.10. \\u041A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u044C \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_1_png__WEBPACK_IMPORTED_MODULE_112__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecCostProdPlans\"\n }, \"\\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u043F\\u0435\\u0440\\u0435\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\xAB\\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430\\xBB \\u043D\\u0430 \\xAB\\u0414\\u0430\\u0442\\u0430 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_2_png__WEBPACK_IMPORTED_MODULE_113__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041A\\u043B\\u0438\\u043A\\u043D\\u0438\\u0442\\u0435 \\u0434\\u0432\\u0430\\u0436\\u0434\\u044B \\u043D\\u0430 \\u044D\\u043B\\u0435\\u043C\\u0435\\u043D\\u0442 \\u0434\\u0438\\u0430\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u0438 \\u0432 \\u043E\\u043A\\u043D\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_3_png__WEBPACK_IMPORTED_MODULE_114__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041C\\u043E\\u0436\\u043D\\u043E \\u043F\\u0440\\u043E\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u0442\\u044C \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0438\\u043B\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u043D\\u043E\\u0441\\u0442\\u044C \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 (\\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u041C\\u041B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0446\\u0435\\u0445\\u0430 \\u043A\\u043E\\u043D\\u0442\\u0440\\u043E\\u043B\\u0438\\u0440\\u0443\\u0435\\u0442 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u043B\\u0430\\u043D\\u0430 \\u0446\\u0435\\u0445\\u0430, \\u0432 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u043E \\u0434\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442\\u0443 \\u0432\\u044B\\u043F\\u0443\\u0441\\u043A\\u0430 \\u0432 \\u0446\\u0435\\u0445\\u043E\\u0432\\u043E\\u043C \\u043F\\u043B\\u0430\\u043D\\u0435\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_4_png__WEBPACK_IMPORTED_MODULE_115__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0418\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u044F \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430\", \" \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0446\\u0435\\u0445\\u0430\\xBB\"), \".\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_5_png__WEBPACK_IMPORTED_MODULE_116__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u0434\\u043E\\u0441\\u0442\\u0443\\u043F\\u043D\\u044B \\u043F\\u043B\\u0430\\u043D\\u044B \\u0446\\u0435\\u0445\\u043E\\u0432 \\u0441 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u043E\\u043C \\u0442\\u0435\\u043A\\u0443\\u0449\\u0438\\u0439 \\u043C\\u0435\\u0441\\u044F\\u0446. \\u0412\\u044B\\u0431\\u0435\\u0440\\u0435\\u0442\\u0435 \\u043F\\u043B\\u0430\\u043D.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_6_png__WEBPACK_IMPORTED_MODULE_117__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u043A\\u043B\\u0438\\u043A\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043D\\u0430 \\xAB\\u0417\\u0430\\u043A\\u0430\\u0437\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u0441\\u0434\\u0430\\u0447\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415. \\u041F\\u0440\\u0438 \\u043A\\u043B\\u0438\\u043A\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0435 \\u043F\\u043B\\u0430\\u043D\\u0430 \\u043D\\u0430 \\xAB\\u041E\\u0431\\u043E\\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u044E\\u0442\\u0441\\u044F \\u041C\\u041B \\u0438 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u041C\\u041B.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_410_7_png__WEBPACK_IMPORTED_MODULE_118__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.11. \\u0414\\u0438\\u0441\\u043F\\u0435\\u0442\\u0447\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u041E \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u043B\\u0438\\u044F\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0440\\u0438 \\u043D\\u0435\\u0434\\u043E\\u0441\\u0442\\u0430\\u0442\\u043A\\u0435 \\u041F\\u041A\\u0418 \\u0434\\u043B\\u044F \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442\\u043D\\u043E\\u0433\\u043E \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442\\u044C \\u0441\\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0435, \\u043D\\u043E \\u043D\\u0435 \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u044B\\u0435, \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041F\\u041A\\u0418 \\u0441 \\u041A\\u0412 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_1_png__WEBPACK_IMPORTED_MODULE_119__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0415\\u0441\\u043B\\u0438 \\u0443 \\u0414\\u0421\\u0415 \\u043D\\u0435\\u0441\\u043A\\u043E\\u043B\\u044C\\u043A\\u043E \\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043E\\u0432 \\u0438\\u0437\\u0433\\u043E\\u0442\\u043E\\u0432\\u043B\\u0435\\u043D\\u0438\\u044F \\u0438\\u043B\\u0438 \\u041C\\u041A, \\u0442\\u043E \\u043F\\u0440\\u0438 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u043D\\u043E \\u0438\\u0437\\u043C\\u0435\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0432 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0430\\u0445 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0440\\u043E\\u0433\\u0440\\u0430\\u043C\\u043C\\u044B \\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0430/\\u041C\\u041A, \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u041A\\u043E\\u0440\\u0440\\u0435\\u043A\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430 \\u043C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u0430\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_2_png__WEBPACK_IMPORTED_MODULE_120__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0414\\u0411 \\u0446\\u0435\\u0445\\u0430 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u0432\\u043B\\u0438\\u044F\\u0442\\u044C \\u043D\\u0430 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0443 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F, \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u043C\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\u043C\\u0438:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0412 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostProdPlans\"\n }, \"\\xAB\\u041F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0435\\u043D\\u043D\\u044B\\u0439 \\u043F\\u043B\\u0430\\u043D \\u0446\\u0435\\u0445\\u0430\\xBB\"), \" \\u0438\\u0437\\u043C\\u0435\\u043D\\u044F\\u0435\\u0442 \\u043F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442 \\u043E\\u0431\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0438\\u043B\\u0438 \\u0441\\u0431\\u043E\\u0440\\u043A\\u0438 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u044F. \\u041F\\u0440\\u0438\\u043E\\u0440\\u0438\\u0442\\u0435\\u0442 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u0435\\u0442 \\u043F\\u043E\\u0440\\u044F\\u0434\\u043E\\u043A \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u044F \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439 \\u041C\\u041B \\u0432 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_3_png__WEBPACK_IMPORTED_MODULE_121__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041F\\u0440\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E\\u0441\\u0442\\u0438, \\u0447\\u0430\\u0441\\u0442\\u044C \\u0437\\u0430\\u043F\\u0443\\u0449\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415 \\u0434\\u0440\\u0443\\u0433\\u0438\\u0445 \\u0437\\u0430\\u043A\\u0430\\u0437\\u043E\\u0432 \\u043F\\u0435\\u0440\\u0435\\u043D\\u043E\\u0441\\u0438\\u0442 \\u043D\\u0430 \\u0437\\u0430\\u043A\\u0430\\u0437, \\u0438\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043A\\u043E\\u0442\\u043E\\u0440\\u043E\\u0433\\u043E \\u043D\\u0430\\u0434\\u043E \\u0443\\u0441\\u043A\\u043E\\u0440\\u0438\\u0442\\u044C. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442 \\u043E\\u0442\\u0440\\u044B\\u0432 \\u041C\\u041B (\\u0441\\u043C. \\u043F. 4.8) \\u0438 \\u0441\\u043C\\u0435\\u043D\\u0430 \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0432 \\u041C\\u041B \\u043E\\u0442\\u0440\\u044B\\u0432\\u0430 (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB \\u0432 \\u0437\\u0430\\u0433\\u043E\\u043B\\u043E\\u0432\\u043A\\u0435 \\u041C\\u041B).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0414\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0414\\u0421\\u0415 \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u043C\\u043E\\u0436\\u043D\\u043E \\u0438\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0417\\u0430\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438\\xBB \\u0438\\u043B\\u0438 \\u0438\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\xAB\\u0426\\u0435\\u0445, \\u0443\\u0447\\u0430\\u0441\\u0442\\u043E\\u043A\\xBB \\u0432 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043D\\u043E\\u0439 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B (\\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\xAB\\u0418\\u0441\\u043F\\u0440\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB).\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_411_4_png__WEBPACK_IMPORTED_MODULE_122__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.12. \\u0421\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u041F\\u041A\\u0418\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u0440\\u0435\\u0430\\u043B\\u0438\\u0437\\u043E\\u0432\\u0430\\u043D \\u0441\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0438\\u0439 \\u043F\\u043E\\u0440\\u044F\\u0434\\u043E\\u043A \\u0440\\u0430\\u0431\\u043E\\u0442\\u044B \\u0441\\u043A\\u043B\\u0430\\u0434\\u0430 \\u0446\\u0435\\u0445\\u0430:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u041F\\u0440\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u0430 \\u043D\\u0430 \\u043F\\u0430\\u0440\\u0442\\u0438\\u044E \\u0434\\u0435\\u0442\\u0430\\u043B\\u0435\\u0439 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u0430\\u043A\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0424\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u2013 \\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u0442\\u044C \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u0443\\u044E \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u0443\\u044E (\\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435\\u2026)\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_1_png__WEBPACK_IMPORTED_MODULE_123__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043F\\u0430\\u0440\\u0430\\u043C\\u0435\\u0442\\u0440\\u0430\\u0445 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0443\\u043A\\u0430\\u0437\\u044B\\u0432\\u0430\\u0435\\u0442\\u0441\\u044F \\xAB\\u0421\\u043F\\u0438\\u0441\\u044B\\u0432\\u0430\\u0442\\u044C \\u043E\\u0441\\u043D\\u043E\\u0432\\u043D\\u043E\\u0439 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_2_png__WEBPACK_IMPORTED_MODULE_124__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0421\\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u043D\\u044B\\u0439 \\u0420\\u041D \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_3_png__WEBPACK_IMPORTED_MODULE_125__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u041F\\u0440\\u0438 \\u0432\\u044B\\u0434\\u0430\\u0447\\u0435 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u0432 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438 \\u041C\\u041B \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u043F\\u0440\\u0438 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0412\\u044B\\u0434\\u0430\\u0442\\u044C\\xBB (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back412from45\",\n dstId: \"prg45\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F. 4.5\"), \").\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0421\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432 \\u0438 \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445 \\u043D\\u0430 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0437\\u0430\\u043A\\u0430\\u0437\\u0430 \\u0441 \\u043F\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0435\\u0439 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u0411\\u0443\\u0445\\u0433\\u0430\\u043B\\u0442\\u0435\\u0440\\u0441\\u043A\\u0438\\u0439 \\u0443\\u0447\\u0435\\u0442 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0420\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u044B\\u0435 \\u043D\\u0430 \\u043E\\u0442\\u043F\\u0443\\u0441\\u043A \\u0432 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u2013 \\u041E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u0430\\u0442\\u044C\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_412_4_png__WEBPACK_IMPORTED_MODULE_126__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u043A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0443\\u044E\\u0449\\u0438\\u0445, \\u043F\\u0435\\u0440\\u0435\\u0434 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435 \\u043E\\u0442\\u0440\\u0430\\u0431\\u043E\\u0442\\u043A\\u0438, \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0441\\u043D\\u044F\\u0442\\u044C \\u0440\\u0435\\u0437\\u0435\\u0440\\u0432\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u043D\\u0430 \\u041A\\u043E\\u043C\\u043F\\u043B\\u0435\\u043A\\u0442\\u0430\\u0446\\u0438\\u0438, \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u043E\\u0439 \\u0441 \\u0440\\u0430\\u0441\\u0445\\u043E\\u0434\\u043D\\u043E\\u0439 \\u043D\\u0430\\u043A\\u043B\\u0430\\u0434\\u043D\\u043E\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.13. \\u0423\\u0447\\u0435\\u0442 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0423\\u0447\\u0435\\u0442 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 (\\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E, \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0435 \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u0438 \\u043D\\u0430\\u043A\\u043E\\u043F\\u043B\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043F\\u0440\\u044F\\u043C\\u044B\\u0435 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0437\\u0430\\u043F\\u0443\\u0448\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0432 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415) \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u0432\\u0442\\u043E\\u043C\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438 \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u0416\\u0443\\u0440\\u043D\\u0430\\u043B \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_1_png__WEBPACK_IMPORTED_MODULE_127__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0436\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F \\u0445\\u0440\\u0430\\u043D\\u044F\\u0442\\u0441\\u044F \\u0434\\u0430\\u043D\\u043D\\u044B\\u0435 \\u043E \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\u0445 \\u0414\\u0421\\u0415 \\u0438 \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u043C \\u0441\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0438 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041F\\u0440\\u0438 \\u0441\\u0434\\u0430\\u0447\\u0435 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0433\\u043E\\u0442\\u043E\\u0432\\u044B\\u0445 \\u0414\\u0421\\u0415, \\u043A\\u0430\\u043B\\u044C\\u043A\\u0443\\u043B\\u044F\\u0446\\u0438\\u044F \\u043F\\u0440\\u044F\\u043C\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432 \\u043F\\u0440\\u0438\\u0445\\u043E\\u0434\\u0435 \\u0438\\u0437 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043D\\u0430 \\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0438 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u0432 \\u0436\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0443\\u0447\\u0435\\u0442\\u0430 \\u041D\\u0417\\u041F.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_2_png__WEBPACK_IMPORTED_MODULE_128__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u0416\\u0443\\u0440\\u043D\\u0430\\u043B\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0430\\u043D\\u0430\\u043B\\u0438\\u0437 \\u043D\\u0435\\u0437\\u0430\\u0432\\u0435\\u0440\\u0448\\u0435\\u043D\\u043D\\u043E\\u0433\\u043E \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0442\\u0430\\u043A\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F:\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041D\\u0417\\u041F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u0435 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043D\\u0430 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u041E\\u0431\\u0449\\u0438\\u0439 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u043A\\xBB\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_3_png__WEBPACK_IMPORTED_MODULE_129__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0441\\u043F\\u0438\\u0441\\u043E\\u043A \\u043F\\u0430\\u0440\\u0442\\u0438\\u0439 \\u0414\\u0421\\u0415, \\u043D\\u0430\\u0445\\u043E\\u0434\\u044F\\u0449\\u0438\\u0445\\u0441\\u044F \\u0432 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0435 \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430, \\u0441 \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u0435\\u0439 \\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0435 \\u0414\\u0421\\u0415 \\u0438 \\u0441\\u0443\\u043C\\u043C\\u0435 \\u043D\\u0430\\u043A\\u043E\\u043F\\u043B\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043F\\u0440\\u044F\\u043C\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435 \\u041D\\u0417\\u041F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0438\\u0442\\u044C \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440 \\u043F\\u043E \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0422\\u0435\\u043A\\u0443\\u0449\\u0438\\u0439 \\u043E\\u0441\\u0442\\u0430\\u0442\\u043E\\u043A\\xBB, \\u0434\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u041D\\u0417\\u041F \\u0432 \\u043E\\u043A\\u043D\\u0435 \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0438\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F \\xAB\\u043D\\u0430 \\u043A\\u0430\\u043A\\u0438\\u0445 \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u044F\\u0445 \\u043D\\u0430\\u0445\\u043E\\u0434\\u0438\\u0442\\u0441\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u044F\\xBB.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_4_png__WEBPACK_IMPORTED_MODULE_130__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u0430\\u043B\\u044C\\u043A\\u0443\\u043B\\u044F\\u0446\\u0438\\u044F \\u041D\\u0417\\u041F\\xBB \\u0430\\u043D\\u0430\\u043B\\u0438\\u0437\\u0438\\u0440\\u0443\\u0435\\u0442\\u0441\\u044F \\u043E\\u0442\\u043A\\u043B\\u043E\\u043D\\u0435\\u043D\\u0438\\u0435 \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0445 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442 \\u043E\\u0442 \\u043D\\u043E\\u0440\\u043C\\u0430\\u0442\\u0438\\u0432\\u043D\\u044B\\u0445.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_413_5_png__WEBPACK_IMPORTED_MODULE_131__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u044C\\u043D\\u044B\\u0445 \\u0441\\u0442\\u0430\\u0442\\u0435\\u0439 \\u0432 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0414\\u0435\\u0442\\u0430\\u043B\\u0438\\u0437\\u0430\\u0446\\u0438\\u044F \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u2026\\xBB \\u0432 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0435 \\xAB\\u0414\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442-\\u043E\\u0441\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u0434\\u043E\\u043A\\u0443\\u043C\\u0435\\u043D\\u0442 \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u044F \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442. \\u0415\\u0441\\u043B\\u0438 \\u0434\\u043B\\u044F \\u043F\\u0430\\u0440\\u0442\\u0438\\u0438 \\u043D\\u0435 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u043E \\u0441\\u043F\\u0438\\u0441\\u0430\\u043D\\u0438\\u0435 \\u043C\\u0430\\u0442\\u0435\\u0440\\u0438\\u0430\\u043B\\u043E\\u0432/\\u041F\\u041A\\u0418, \\u0442\\u043E \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0438\\u0435 \\u0437\\u0430\\u0442\\u0440\\u0430\\u0442\\u044B \\u0431\\u0443\\u0434\\u0443\\u0442 \\u043D\\u0443\\u043B\\u0435\\u0432\\u044B\\u043C\\u0438.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr3, null, \"4.14. \\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043C\\u0430\\u043A\\u0435\\u0442\\u0435 \\u043F\\u043E\\u0434 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u043E\\u0439 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0446\\u0435\\u0445\\u0430 \\u043F\\u043E\\u043D\\u0438\\u043C\\u0430\\u0435\\u0442\\u0441\\u044F \\u0444\\u0430\\u043A\\u0442\\u0438\\u0447\\u0435\\u0441\\u043A\\u0430\\u044F (\\u0434\\u043B\\u044F \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0438\\u0445 \\u0434\\u043D\\u0435\\u0439) \\u0438\\u043B\\u0438 \\u043F\\u043B\\u0430\\u043D\\u043E\\u0432\\u0430\\u044F (\\u0434\\u043B\\u044F \\u0442\\u0435\\u043A\\u0443\\u0449\\u0435\\u0433\\u043E \\u0438 \\u0431\\u0443\\u0434\\u0443\\u0449\\u0438\\u0445 \\u0434\\u043D\\u0435\\u0439) \\u0442\\u0440\\u0443\\u0434\\u043E\\u0435\\u043C\\u043A\\u043E\\u0441\\u0442\\u044C \\u043E\\u043F\\u0435\\u0440\\u0430\\u0446\\u0438\\u0439, \\u0432\\u044B\\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u043D\\u0430 \\u0441\\u0442\\u0430\\u043D\\u043A\\u0438 \\u0446\\u0435\\u0445\\u0430 \\u0432 \\u0441\\u043C\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0437\\u0430\\u0434\\u0430\\u043D\\u0438\\u044F\\u0445 (\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ChapterLink, {\n id: \"back414from47\",\n dstId: \"prg47\",\n onClick: handleChapterLinkClick\n }, \"\\u0441\\u043C. \\u043F.4.7\"), \").\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0414\\u043B\\u044F \\u043C\\u043E\\u043D\\u0438\\u0442\\u043E\\u0440\\u0438\\u043D\\u0433\\u0430 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438 \\u0441\\u0442\\u0430\\u043D\\u043A\\u043E\\u0432 \\u0438\\u0441\\u043F\\u043E\\u043B\\u044C\\u0437\\u0443\\u0439\\u0442\\u0435 \\u043F\\u0430\\u043D\\u0435\\u043B\\u044C \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PanelLink, {\n panelName: \"MechRecDeptCostJobs\"\n }, \"\\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u0446\\u0435\\u0445\\u0430\\xBB\"), \", \\u0440\\u0430\\u0437\\u043C\\u0435\\u0449\\u0435\\u043D\\u043D\\u0443\\u044E \\u043D\\u0430 \\u0440\\u0430\\u0431\\u043E\\u0447\\u0435\\u043C \\u0441\\u0442\\u043E\\u043B\\u0435.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_1_png__WEBPACK_IMPORTED_MODULE_132__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u041D\\u0430 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u043D\\u0435\\u043E\\u0431\\u0445\\u043E\\u0434\\u0438\\u043C\\u043E \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u0446\\u0435\\u0445 \\u0438 \\u0432\\u043E\\u0437\\u043C\\u043E\\u0436\\u043D\\u043E \\u0432\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043F\\u0440\\u0435\\u0434\\u044B\\u0434\\u0443\\u0449\\u0438\\u0435 \\u043F\\u0435\\u0440\\u0438\\u043E\\u0434\\u044B (\\u043C\\u0435\\u0441\\u044F\\u0446\\u044B).\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_2_png__WEBPACK_IMPORTED_MODULE_133__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_414_3_png__WEBPACK_IMPORTED_MODULE_134__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Hdr2, {\n id: \"add1\"\n }, \"\\u041F\\u0440\\u0438\\u043B\\u043E\\u0436\\u0435\\u043D\\u0438\\u0435: \\u041A\\u0440\\u0430\\u0442\\u043A\\u0430\\u044F \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043A\\u0446\\u0438\\u044F \\u043F\\u043E \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0435 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0444\\u0435\\u0439\\u0441\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0418\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u044B \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0438\\u043D\\u0442\\u0435\\u0440\\u0444\\u0435\\u0439\\u0441\\u0430 \\u043E\\u0434\\u0438\\u043D\\u0430\\u043A\\u043E\\u0432\\u044B \\u0434\\u043B\\u044F \\u0432\\u0441\\u0435\\u0445 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u043E\\u0432 \\u0438 \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0440\\u0430\\u0441\\u0441\\u043C\\u043E\\u0442\\u0440\\u0435\\u043D\\u044B \\u043D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0430 \\xAB\\u041F\\u043B\\u0430\\u043D\\u044B \\u0438 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B \\u043F\\u0440\\u043E\\u0438\\u0437\\u0432\\u043E\\u0434\\u0441\\u0442\\u0432\\u0430 \\u0438\\u0437\\u0434\\u0435\\u043B\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"1) \\u0421\\u043E\\u0440\\u0442\\u0438\\u0440\\u043E\\u0432\\u043A\\u0430, \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A, \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u044B\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_1_png__WEBPACK_IMPORTED_MODULE_135__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"2) \\u0412\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u041E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_2_png__WEBPACK_IMPORTED_MODULE_136__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", null, \"3) \\u041D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u041D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0430\\xBB. \\u0412\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0433\\u043E\\u0440\\u044F\\u0447\\u0435\\u0439 \\u043A\\u043B\\u0430\\u0432\\u0438\\u0448\\u0435\\u0439 Alt+Enter \\u0438\\u043B\\u0438 \\u0432 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u043C \\u043C\\u0435\\u043D\\u044E\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_3_png__WEBPACK_IMPORTED_MODULE_137__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0435\\u043A \\u043D\\u0430 \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0435 \\xAB\\u041E\\u0431\\u0449\\u0438\\u0435\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043E\\u043A\\u043E\\u043D, \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0442\\u0430\\u043A \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u0435\\u0442\\u0441\\u044F \\u043E\\u043A\\u043D\\u043E \\xAB\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \\u043F\\u043E\\u0434\\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\\u043D\\u0438\\u0439\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_4_png__WEBPACK_IMPORTED_MODULE_138__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, {\n style: {\n backgroundColor: \"LightYellow\",\n padding: \"5px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"b\", {\n style: {\n color: \"red\"\n }\n }, \"\\u0412\\u043D\\u0438\\u043C\\u0430\\u043D\\u0438\\u0435!!!\"), \" \\u0412\\u0432\\u0435\\u0434\\u0435\\u043D\\u043D\\u044B\\u0435 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u0441\\u043E\\u0445\\u0440\\u0430\\u043D\\u044F\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0438 \\u043D\\u0430\\u0436\\u0430\\u0442\\u0438\\u0438 \\xAB\\u041E\\u041A\\xBB. \\u041A\\u043D\\u043E\\u043F\\u043A\\u0430 \\xAB\\u041E\\u0447\\u0438\\u0441\\u0442\\u0438\\u0442\\u044C\\xBB \\u0432\\u043E\\u0437\\u0432\\u0440\\u0430\\u0449\\u0430\\u0435\\u0442 \\u043D\\u0430\\u0441\\u0442\\u0440\\u043E\\u0439\\u043A\\u0438 \\u043A \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u044F\\u043C \\u043F\\u043E \\u0443\\u043C\\u043E\\u043B\\u0447\\u0430\\u043D\\u0438\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0438\\xBB \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u043D\\u043E\\u0441\\u0442\\u044C \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A \\u0438 \\u0444\\u0438\\u043A\\u0441\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0443\\u043A\\u0430\\u0437\\u0430\\u043D\\u043D\\u043E\\u0433\\u043E \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u0430 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_5_png__WEBPACK_IMPORTED_MODULE_139__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041E\\u0444\\u043E\\u0440\\u043C\\u043B\\u0435\\u043D\\u0438\\u0435\\xBB \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\\u043C \\xAB\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C\\xBB\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_6_png__WEBPACK_IMPORTED_MODULE_140__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u044F\\u044E\\u0442\\u0441\\u044F \\u043F\\u0440\\u0430\\u0432\\u0438\\u043B\\u0430 \\u0437\\u0430\\u043B\\u0438\\u0432\\u043A\\u0438 \\u0446\\u0432\\u0435\\u0442\\u043E\\u043C \\u044F\\u0447\\u0435\\u0435\\u043A \\u0438\\u043B\\u0438 \\u0441\\u0442\\u0440\\u043E\\u043A (\\u0435\\u0441\\u043B\\u0438 \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D \\u0447\\u0435\\u043A), \\u043D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0437\\u0430\\u043B\\u0438\\u0432\\u043A\\u0430 \\u0436\\u0435\\u043B\\u0442\\u044B\\u043C \\u0446\\u0432\\u0435\\u0442\\u043E\\u043C \\u044F\\u0447\\u0435\\u0435\\u043A \\xAB\\u0414\\u0435\\u0444\\u0438\\u0446\\u0438\\u0442 \\u0437\\u0430\\u043F\\u0443\\u0441\\u043A\\u0430\\xBB, \\u0435\\u0441\\u043B\\u0438 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435 \\u043D\\u0435 \\u0440\\u0430\\u0432\\u043D\\u043E \\u043D\\u0443\\u043B\\u044E.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_7_png__WEBPACK_IMPORTED_MODULE_141__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F/\\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0430\\u044E\\u0442\\u0441\\u044F \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u043D\\u0430 \\u043F\\u0430\\u043D\\u0435\\u043B\\u0438 \\u0438\\u043D\\u0441\\u0442\\u0440\\u0443\\u043C\\u0435\\u043D\\u0442\\u043E\\u0432. \\u041D\\u0430 \\u043F\\u0440\\u0438\\u043C\\u0435\\u0440\\u0435, \\u043E\\u0442\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u044B \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\xAB\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_8_png__WEBPACK_IMPORTED_MODULE_142__[\"default\"]\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Prgf, null, \"\\u0412 \\u043E\\u043A\\u043D\\u0435 \\xAB\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0438\\u0435 \\u043E\\u0442\\u0447\\u0435\\u0442\\u044B\\xBB \\u043E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u0442\\u0441\\u044F \\u043F\\u0435\\u0440\\u0435\\u0447\\u0435\\u043D\\u044C \\u043E\\u0442\\u0447\\u0435\\u0442\\u043E\\u0432, \\u0441\\u0432\\u044F\\u0437\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0441 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u043E\\u043C. \\u0414\\u0432\\u043E\\u0439\\u043D\\u044B\\u043C \\u043A\\u043B\\u0438\\u043A\\u043E\\u043C \\u043D\\u0430 \\u0441\\u0442\\u0440\\u043E\\u043A\\u0443 \\u0432\\u044B\\u043F\\u043E\\u043B\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435/\\u0438\\u0441\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u0438\\u0435 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044F \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\u0432 \\u043A\\u043E\\u043D\\u0442\\u0435\\u043A\\u0441\\u0442\\u043D\\u043E\\u043C \\u043C\\u0435\\u043D\\u044E. \\u041D\\u0430\\u043F\\u0440\\u0438\\u043C\\u0435\\u0440, \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0435 \\u043B\\u0438\\u0441\\u0442\\u044B\\xBB \\u0432\\u043A\\u043B\\u044E\\u0447\\u0435\\u043D\\u043E \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435 \\u0444\\u043E\\u0440\\u043C\\u0438\\u0440\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u043E\\u0442\\u0447\\u0435\\u0442\\u0430 \\xAB\\u041C\\u0430\\u0440\\u0448\\u0440\\u0443\\u0442\\u043D\\u044B\\u0439 \\u043B\\u0438\\u0441\\u0442\\xBB.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Img, {\n src: _img_add1_9_png__WEBPACK_IMPORTED_MODULE_143__[\"default\"]\n })))));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/mech_rec_help/mech_rec_help.js?");
/***/ }),
@@ -2776,7 +3007,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 */ ComponentView: () => (/* binding */ ComponentView)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _components_components_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/components_hooks */ \"./app/panels/panels_editor/components/components_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//Представление компонента панели\nconst ComponentView = ({\n id,\n path,\n settings = {},\n values = {},\n onValuesChange = null\n} = {}) => {\n //Подгрузка модуля представления компонента (lazy здесь постоянно обновлялся при смене props, поэтому на хуке, от props независимого)\n const [ComponentView, init] = (0,_components_components_hooks__WEBPACK_IMPORTED_MODULE_1__.useComponentModule)({\n path,\n module: \"view\"\n });\n\n //При смене значений\n const handleValuesChange = values => onValuesChange && onValuesChange(id, values);\n\n //Расчёт флага наличия компонента\n const haveComponent = path ? true : false;\n\n //Формирование представления\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"component-view__wrap\"\n }, haveComponent && init && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ComponentView.default, _extends({\n id: id\n }, settings, {\n values: values,\n onValuesChange: handleValuesChange\n })), !haveComponent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n align: \"center\"\n }, \"\\u041A\\u043E\\u043C\\u043F\\u043E\\u043D\\u0435\\u043D\\u0442 \\u043D\\u0435 \\u043E\\u043F\\u0440\\u0435\\u0434\\u0435\\u043B\\u0451\\u043D\"));\n};\n\n//Контроль свойств компонента - компонент панели\nComponentView.propTypes = {\n id: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n path: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,\n settings: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n values: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n onValuesChange: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func)\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//--------------------------\n//ВАЖНО: Можно на React.lazy\n//--------------------------\n\n//ПРИМЕР:\n/*\r\nimport React, { Suspense, lazy } from \"react\"; //Классы React\r\nconst ComponentView = ({ path = null, props = {} } = {}) => {\r\n const haveComponent = path ? true : false;\r\n const ComponentView = haveComponent ? lazy(() => import(`./components/${path}/view`)) : null;\r\n return (\r\n
π = L/d
`\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0410\\u043A\\u0442\\u0438\\u0432\\u043D\\u043E\\u0441\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, [_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.UNDEFINED, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.ERR].map((indicatorState, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n key: i,\n caption: `Нажми на меня #${i + 1}`,\n value: i + 1,\n state: indicatorState,\n icon: \"chat\",\n onClick: () => showMsgInfo(`Нажатие на индикатор #${i + 1}`),\n hint: `Подсказка индикатора #${i + 1}`\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0438\\u0435 \\u0446\\u0432\\u0435\\u0442\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, [[\"yellow\", \"black\"], [\"darkred\", \"yellow\"], [\"orange\", \"darkblue\"], [\"magenta\", \"darkmagenta\"]].map((userColor, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n key: i,\n caption: `Текст: ${userColor[0]}, Заливка: ${userColor[1]}`,\n value: i + 1,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN,\n icon: \"palette\",\n color: userColor[0],\n backgroundColor: userColor[1]\n }))));\n};\n\n//Контроль свойств - Пример: Индикатор \"P8PIndicator\"\nIndicator.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/indicator.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Indicator: () => (/* binding */ Indicator)\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_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/p8p_indicator */ \"./app/components/p8p_indicator.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Пример: Индикатор \"P8PIndicator\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Контекст сообщений\n //Индикатор\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DIVIDER: {\n margin: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Индикатор \"P8PIndicator\"\nconst Indicator = ({\n title\n}) => {\n //Собственное состояние - индикатор данных с сервера\n const {\n indicator,\n isDataLoaded\n } = (0,_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.useP8PIndicator)({\n stored: \"PKG_P8PANELS_SAMPLES.INDICATOR\"\n });\n\n //Подключение к контексту сообщений\n const {\n showMsgInfo\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_1__.MessagingCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0418\\u043A\\u043E\\u043D\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Без иконки\",\n value: 10\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"С иконкой - Back Hand\",\n value: 20,\n icon: \"back_hand\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"С иконкой - Scoreboard\",\n value: 30,\n icon: \"scoreboard\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0421\\u043E\\u0441\\u0442\\u043E\\u044F\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Нейтральное состояние\",\n value: 10,\n icon: \"sentiment_neutral\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Позитивное состояние\",\n value: 20,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK,\n icon: \"check_circle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Пограничное состояние\",\n value: 30,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN,\n icon: \"warning\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Негативное состояния\",\n value: 40,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.ERR,\n icon: \"dangerous\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0421\\u043A\\u0440\\u0443\\u0433\\u043B\\u0435\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Скругленный\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Квадрадтный\",\n square: true\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u041F\\u0430\\u0440\\u0435\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парение\",\n value: 0,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK,\n elevation: 0\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парение (по умолчанию)\",\n value: 3,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN,\n elevation: 3\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парение\",\n value: 6,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK,\n elevation: 6\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парение\",\n value: 12,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK,\n elevation: 12\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парение\",\n value: 18,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK,\n elevation: 18\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0418\\u0441\\u043F\\u043E\\u043B\\u043D\\u0435\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Парящий (по умолчанию)\",\n value: 123\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Рамка\",\n value: 321,\n variant: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_VARIANT.OUTLINED\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u041F\\u043E\\u0434\\u0441\\u043A\\u0430\\u0437\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Подсказка (без форматирования)\",\n value: 42,\n icon: \"desktop_windows\",\n hint: \"Ответ на главный вопрос жизни, вселенной и всего такого...\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Подсказка (с форматированием)\",\n value: 3.14,\n icon: \"radio_button_unchecked\",\n hint: `Математическая постоянная, равная отношению длины окружности \n к её диаметру: \nπ = L/d
`\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0410\\u043A\\u0442\\u0438\\u0432\\u043D\\u043E\\u0441\\u0442\\u044C\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, [_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.UNDEFINED, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.OK, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN, _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.ERR].map((indicatorState, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n key: i,\n caption: `Нажми на меня #${i + 1}`,\n value: i + 1,\n state: indicatorState,\n icon: \"chat\",\n onClick: () => showMsgInfo(`Нажатие на индикатор #${i + 1}`),\n hint: `Подсказка индикатора #${i + 1}`\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u041F\\u043E\\u043B\\u044C\\u0437\\u043E\\u0432\\u0430\\u0442\\u0435\\u043B\\u044C\\u0441\\u043A\\u0438\\u0435 \\u0446\\u0432\\u0435\\u0442\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, [[\"yellow\", \"black\"], [\"darkred\", \"yellow\"], [\"orange\", \"darkblue\"], [\"magenta\", \"darkmagenta\"]].map((userColor, i) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n key: i,\n caption: `Текст: ${userColor[0]}, Заливка: ${userColor[1]}`,\n value: i + 1,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN,\n icon: \"palette\",\n color: userColor[0],\n backgroundColor: userColor[1]\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, \"\\u0418\\u043D\\u0434\\u0438\\u043A\\u0430\\u0442\\u043E\\u0440 \\u0434\\u0430\\u043D\\u043D\\u044B\\u0445 \\u0441 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n spacing: 2,\n p: 5\n }, isDataLoaded ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, indicator) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8PIndicator, {\n caption: \"Ошибка загрузки данных с сервера\",\n value: 0,\n state: _components_p8p_indicator__WEBPACK_IMPORTED_MODULE_2__.P8P_INDICATOR_STATE.WARN\n })));\n};\n\n//Контроль свойств - Пример: Индикатор \"P8PIndicator\"\nIndicator.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/indicator.js?"); /***/ }), @@ -4436,7 +4799,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 */ Loader: () => (/* binding */ Loader)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Индикатор процесса\nconst Loader = ({\n title\n}) => {\n //Подключение к контексту сообщений\n const {\n showLoader,\n hideLoader\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_1__[\"MessagingСtx\"]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onClick: () => {\n showLoader(\"Процесс идёт. Закончится автоматически через пару секунд...\");\n setTimeout(hideLoader, 2000);\n }\n }, \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0438\\u043D\\u0434\\u0438\\u043A\\u0430\\u0442\\u043E\\u0440 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0430\"));\n};\n\n//Контроль свойств - Пример: Индикатор процесса\nLoader.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/loader.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Loader: () => (/* binding */ Loader)\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_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Индикатор процесса\nconst Loader = ({\n title\n}) => {\n //Подключение к контексту сообщений\n const {\n showLoader,\n hideLoader\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_1__.MessagingCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onClick: () => {\n showLoader(\"Процесс идёт. Закончится автоматически через пару секунд...\");\n setTimeout(hideLoader, 2000);\n }\n }, \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0438\\u043D\\u0434\\u0438\\u043A\\u0430\\u0442\\u043E\\u0440 \\u043F\\u0440\\u043E\\u0446\\u0435\\u0441\\u0441\\u0430\"));\n};\n\n//Контроль свойств - Пример: Индикатор процесса\nLoader.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/loader.js?"); /***/ }), @@ -4447,7 +4810,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 */ Messages: () => (/* binding */ Messages)\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_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DIVIDER: {\n margin: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Сообщения\nconst Messages = ({\n title\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n inlineErr: true,\n inlineWarn: true,\n inlineInfo: true\n });\n\n //Подключение к контексту сообщений\n const {\n showMsgErr,\n showMsgWarn,\n showMsgInfo,\n InlineMsgErr,\n InlineMsgInfo,\n InlineMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_1__[\"MessagingСtx\"]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgErr(\"Что-то пошло не так :(\")\n }, \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgErr(\"Что-то пошло не так :( ...но мы точно знаем что ;)\", null, \"Здесь подробная информация об ошибке (стек вызова СУБД, например)\")\n }, \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430 \\u0441 \\u043F\\u043E\\u0434\\u0440\\u043E\\u0431\\u043D\\u043E\\u0441\\u0442\\u044F\\u043C\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgWarn(\"Вы уверены?\", () => showMsgInfo(\"Делаем!\"), () => showMsgErr(\"Не делаем :(\"))\n }, \"\\u041F\\u0440\\u0435\\u0434\\u0443\\u043F\\u0440\\u0435\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgInfo(\"Ценная информация...\")\n }, \"\\u0418\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), state.inlineErr ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgErr, {\n text: \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineErr: false\n }))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n })) : null, state.inlineWarn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgWarn, {\n text: \"\\u041F\\u0440\\u0435\\u0434\\u0443\\u043F\\u0440\\u0435\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineWarn: false\n }))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n })) : null, state.inlineInfo ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n text: \"\\u0418\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineInfo: false\n }))\n }) : null);\n};\n\n//Контроль свойств - Пример: Сообщения\nMessages.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/messages.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Messages: () => (/* binding */ Messages)\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_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.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//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DIVIDER: {\n margin: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Сообщения\nconst Messages = ({\n title\n}) => {\n //Собственное состояние\n const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n inlineErr: true,\n inlineWarn: true,\n inlineInfo: true\n });\n\n //Подключение к контексту сообщений\n const {\n showMsgErr,\n showMsgWarn,\n showMsgInfo,\n InlineMsgErr,\n InlineMsgInfo,\n InlineMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_1__.MessagingCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgErr(\"Что-то пошло не так :(\")\n }, \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgErr(\"Что-то пошло не так :( ...но мы точно знаем что ;)\", null, \"Здесь подробная информация об ошибке (стек вызова СУБД, например)\")\n }, \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430 \\u0441 \\u043F\\u043E\\u0434\\u0440\\u043E\\u0431\\u043D\\u043E\\u0441\\u0442\\u044F\\u043C\\u0438\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgWarn(\"Вы уверены?\", () => showMsgInfo(\"Делаем!\"), () => showMsgErr(\"Не делаем :(\"))\n }, \"\\u041F\\u0440\\u0435\\u0434\\u0443\\u043F\\u0440\\u0435\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => showMsgInfo(\"Ценная информация...\")\n }, \"\\u0418\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), state.inlineErr ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgErr, {\n text: \"\\u041E\\u0448\\u0438\\u0431\\u043A\\u0430\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineErr: false\n }))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n })) : null, state.inlineWarn ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgWarn, {\n text: \"\\u041F\\u0440\\u0435\\u0434\\u0443\\u043F\\u0440\\u0435\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineWarn: false\n }))\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n })) : null, state.inlineInfo ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InlineMsgInfo, {\n text: \"\\u0418\\u043D\\u0444\\u043E\\u0440\\u043C\\u0430\\u0446\\u0438\\u044F\",\n onOk: () => setState(pv => ({\n ...pv,\n inlineInfo: false\n }))\n }) : null);\n};\n\n//Контроль свойств - Пример: Сообщения\nMessages.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/messages.js?"); /***/ }), @@ -4458,7 +4821,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 */ Mui: () => (/* binding */ Mui)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\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/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Пример: Компоненты MUI\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Контекст взаимодействия с сервером\n //Контекст сообщений\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n GRID_CONTAINER: {\n maxWidth: \"500px\"\n },\n GRID_TEM: {\n width: \"100%\"\n },\n LIST_CONTAINER: {\n marginTop: \"10pt\",\n maxHeight: \"60vh\",\n overflow: \"auto\",\n width: \"100%\"\n },\n LIST: {\n width: \"100%\",\n bgcolor: \"background.paper\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Компоненты MUI\nconst Mui = ({\n title\n}) => {\n //Собственное состояние - список контрагентов\n const [agents, setAgents] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - форма добавления контрагента\n const [agentForm, setAgentForm] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n agnAbbr: \"\",\n agnName: \"\"\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 {\n showMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__[\"MessagingСtx\"]);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowDocument\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_3__[\"ApplicationСtx\"]);\n\n //Загрузка списка контрагентов\n const agentsGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_GET\",\n respArg: \"COUT\"\n });\n setAgents([...data.AGENTS]);\n }, [executeStored]);\n\n //Добавление контрагента\n const agentInsert = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (agnAbbr, agnName) => {\n await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_INSERT\",\n args: {\n SAGNABBR: agnAbbr,\n SAGNNAME: agnName\n }\n });\n setAgentForm({\n agnAbbr: \"\",\n agnName: \"\"\n });\n agentsGet();\n }, [executeStored, agentsGet]);\n\n //Удаление контрагента\n const agentDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async rn => {\n await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_DELETE\",\n args: {\n NRN: rn\n }\n });\n agentsGet();\n }, [executeStored, agentsGet]);\n\n //При нажатии на контрагента\n const handleAgnetClick = id => pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: id\n });\n\n //При добавлении контрагента\n const handleAgentInsert = () => agentInsert(agentForm.agnAbbr, agentForm.agnName);\n\n //При удалении контрагента\n const handleAgnetDeleteClick = id => showMsgWarn(\"Удалить контрагента?\", () => agentDelete(id));\n\n //При вводе значения в форме\n const handleAgentFormChanged = e => {\n setAgentForm(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n };\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n agentsGet();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n container: true,\n spacing: 0,\n direction: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n sx: STYLES.GRID_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n item: true,\n xs: 12,\n sx: STYLES.GRID_TEM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n name: \"agnAbbr\",\n label: \"\\u041C\\u043D\\u0435\\u043C\\u043E\\u043A\\u043E\\u0434\",\n value: agentForm.agnAbbr,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleAgentFormChanged\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n name: \"agnName\",\n label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\",\n value: agentForm.agnName,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleAgentFormChanged\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n pt: \"10px\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n onClick: handleAgentInsert,\n variant: \"contained\",\n fullWidth: true\n }, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n item: true,\n xs: 12,\n sx: STYLES.GRID_TEM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.LIST_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.LIST\n }, agents.map(a => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n key: a.NRN,\n secondaryAction: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n edge: \"end\",\n title: \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\",\n onClick: () => handleAgnetDeleteClick(a.NRN)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"delete\")),\n disablePadding: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: () => handleAgnetClick(a.NRN)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n primary: a.SAGNABBR,\n secondary: a.SAGNNAME\n }))))))))));\n};\n\n//Контроль свойств - Пример: Компоненты MUI\nMui.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/mui.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Mui: () => (/* binding */ Mui)\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_15__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);\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/Box/Box.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/TextField/TextField.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/List/List.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItem/ListItem.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/IconButton/IconButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Icon/Icon.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemButton/ListItemButton.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/ListItemText/ListItemText.js\");\n/* harmony import */ var _context_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/backend */ \"./app/context/backend.js\");\n/* harmony import */ var _context_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/messaging */ \"./app/context/messaging.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Пример: Компоненты MUI\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Контекст взаимодействия с сервером\n //Контекст сообщений\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n GRID_CONTAINER: {\n maxWidth: \"500px\"\n },\n GRID_TEM: {\n width: \"100%\"\n },\n LIST_CONTAINER: {\n marginTop: \"10pt\",\n maxHeight: \"60vh\",\n overflow: \"auto\",\n width: \"100%\"\n },\n LIST: {\n width: \"100%\",\n bgcolor: \"background.paper\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Компоненты MUI\nconst Mui = ({\n title\n}) => {\n //Собственное состояние - список контрагентов\n const [agents, setAgents] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n\n //Собственное состояние - форма добавления контрагента\n const [agentForm, setAgentForm] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n agnAbbr: \"\",\n agnName: \"\"\n });\n\n //Подключение к контексту взаимодействия с сервером\n const {\n executeStored\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_backend__WEBPACK_IMPORTED_MODULE_1__.BackEndCtx);\n\n //Подключение к контексту сообщений\n const {\n showMsgWarn\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_messaging__WEBPACK_IMPORTED_MODULE_2__.MessagingCtx);\n\n //Подключение к контексту приложения\n const {\n pOnlineShowDocument\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_3__.ApplicationCtx);\n\n //Загрузка списка контрагентов\n const agentsGet = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {\n const data = await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_GET\",\n respArg: \"COUT\"\n });\n setAgents([...data.AGENTS]);\n }, [executeStored]);\n\n //Добавление контрагента\n const agentInsert = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (agnAbbr, agnName) => {\n await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_INSERT\",\n args: {\n SAGNABBR: agnAbbr,\n SAGNNAME: agnName\n }\n });\n setAgentForm({\n agnAbbr: \"\",\n agnName: \"\"\n });\n agentsGet();\n }, [executeStored, agentsGet]);\n\n //Удаление контрагента\n const agentDelete = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async rn => {\n await executeStored({\n stored: \"PKG_P8PANELS_SAMPLES.AGNLIST_DELETE\",\n args: {\n NRN: rn\n }\n });\n agentsGet();\n }, [executeStored, agentsGet]);\n\n //При нажатии на контрагента\n const handleAgnetClick = id => pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: id\n });\n\n //При добавлении контрагента\n const handleAgentInsert = () => agentInsert(agentForm.agnAbbr, agentForm.agnName);\n\n //При удалении контрагента\n const handleAgnetDeleteClick = id => showMsgWarn(\"Удалить контрагента?\", () => agentDelete(id));\n\n //При вводе значения в форме\n const handleAgentFormChanged = e => {\n setAgentForm(pv => ({\n ...pv,\n [e.target.name]: e.target.value\n }));\n };\n\n //При подключении компонента к странице\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n agentsGet();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n container: true,\n spacing: 0,\n direction: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n sx: STYLES.GRID_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n item: true,\n xs: 12,\n sx: STYLES.GRID_TEM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n name: \"agnAbbr\",\n label: \"\\u041C\\u043D\\u0435\\u043C\\u043E\\u043A\\u043E\\u0434\",\n value: agentForm.agnAbbr,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleAgentFormChanged\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n name: \"agnName\",\n label: \"\\u041D\\u0430\\u0438\\u043C\\u0435\\u043D\\u043E\\u0432\\u0430\\u043D\\u0438\\u0435\",\n value: agentForm.agnName,\n variant: \"standard\",\n fullWidth: true,\n onChange: handleAgentFormChanged\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n pt: \"10px\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n onClick: handleAgentInsert,\n variant: \"contained\",\n fullWidth: true\n }, \"\\u0414\\u043E\\u0431\\u0430\\u0432\\u0438\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n item: true,\n xs: 12,\n sx: STYLES.GRID_TEM\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n sx: STYLES.LIST_CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n sx: STYLES.LIST\n }, agents.map(a => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n key: a.NRN,\n secondaryAction: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n edge: \"end\",\n title: \"\\u0423\\u0434\\u0430\\u043B\\u0438\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\",\n onClick: () => handleAgnetDeleteClick(a.NRN)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null, \"delete\")),\n disablePadding: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n onClick: () => handleAgnetClick(a.NRN)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n primary: a.SAGNABBR,\n secondary: a.SAGNNAME\n }))))))))));\n};\n\n//Контроль свойств - Пример: Компоненты MUI\nMui.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/mui.js?"); /***/ }), @@ -4469,7 +4832,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 */ P8Online: () => (/* binding */ P8Online)\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_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DIVIDER: {\n margin: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\nconst P8Online = ({\n title\n}) => {\n //Собственное состояние\n const [agent, setAgent] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\");\n\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit,\n pOnlineShowTab,\n pOnlineShowDocument,\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__[\"ApplicationСtx\"]);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => pOnlineShowTab({\n caption: \"PARUS.COM\",\n url: \"https://www.parus.com\"\n })\n }, \"\\u041E\\u0442\\u043A\\u0440\\u044B\\u0442\\u044C \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0443\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowUnit({\n unitCode: \"Contracts\"\n });\n }\n }, \"\\u041E\\u0442\\u043A\\u0440\\u044B\\u0442\\u044C \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\u0414\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowDictionary({\n unitCode: \"AGNLIST\",\n inputParameters: [{\n name: \"in_AGNABBR\",\n value: agent\n }],\n callBack: res => res.success === true ? setAgent(res.outParameters.out_AGNABBR) : null\n });\n }\n }, \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\"), agent ? /*#__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_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: agent,\n inRnParameter: \"in_AGNABBR\"\n });\n }\n }, `Показать контрагента \"${agent}\"`)) : null);\n};\n\n//Контроль свойств - Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\nP8Online.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/p8online.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ P8Online: () => (/* binding */ P8Online)\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_2__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Button/Button.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Divider/Divider.js\");\n/* harmony import */ var _context_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Контекст приложения\n\n//---------\n//Константы\n//---------\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DIVIDER: {\n margin: \"15px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\nconst P8Online = ({\n title\n}) => {\n //Собственное состояние\n const [agent, setAgent] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\");\n\n //Подключение к контексту приложения\n const {\n pOnlineShowUnit,\n pOnlineShowTab,\n pOnlineShowDocument,\n pOnlineShowDictionary\n } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_application__WEBPACK_IMPORTED_MODULE_1__.ApplicationCtx);\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => pOnlineShowTab({\n caption: \"PARUS.COM\",\n url: \"https://www.parus.com\"\n })\n }, \"\\u041E\\u0442\\u043A\\u0440\\u044B\\u0442\\u044C \\u0437\\u0430\\u043A\\u043B\\u0430\\u0434\\u043A\\u0443\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowUnit({\n unitCode: \"Contracts\"\n });\n }\n }, \"\\u041E\\u0442\\u043A\\u0440\\u044B\\u0442\\u044C \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B \\u0414\\u043E\\u0433\\u043E\\u0432\\u043E\\u0440\\u044B\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowDictionary({\n unitCode: \"AGNLIST\",\n inputParameters: [{\n name: \"in_AGNABBR\",\n value: agent\n }],\n callBack: res => res.success === true ? setAgent(res.outParameters.out_AGNABBR) : null\n });\n }\n }, \"\\u0412\\u044B\\u0431\\u0440\\u0430\\u0442\\u044C \\u043A\\u043E\\u043D\\u0442\\u0440\\u0430\\u0433\\u0435\\u043D\\u0442\\u0430\"), agent ? /*#__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_4__[\"default\"], {\n sx: STYLES.DIVIDER\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: agent,\n inRnParameter: \"in_AGNABBR\"\n });\n }\n }, `Показать контрагента \"${agent}\"`)) : null);\n};\n\n//Контроль свойств - Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\nP8Online.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/p8online.js?"); /***/ }), @@ -6307,6 +6670,50 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/@mui/material/Pagination/Pagination.js": +/*!*************************************************************!*\ + !*** ./node_modules/@mui/material/Pagination/Pagination.js ***! + \*************************************************************/ +/***/ ((__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 */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var _mui_utils_composeClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils/composeClasses */ \"./node_modules/@mui/utils/esm/composeClasses/composeClasses.js\");\n/* harmony import */ var _mui_utils_integerPropType__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/utils/integerPropType */ \"./node_modules/@mui/utils/esm/integerPropType/integerPropType.js\");\n/* harmony import */ var _DefaultPropsProvider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../DefaultPropsProvider */ \"./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js\");\n/* harmony import */ var _paginationClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./paginationClasses */ \"./node_modules/@mui/material/Pagination/paginationClasses.js\");\n/* harmony import */ var _usePagination__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../usePagination */ \"./node_modules/@mui/material/usePagination/usePagination.js\");\n/* harmony import */ var _PaginationItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../PaginationItem */ \"./node_modules/@mui/material/PaginationItem/PaginationItem.js\");\n/* harmony import */ var _styles_styled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/styled */ \"./node_modules/@mui/material/styles/styled.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n'use client';\n\n\n\nconst _excluded = [\"boundaryCount\", \"className\", \"color\", \"count\", \"defaultPage\", \"disabled\", \"getItemAriaLabel\", \"hideNextButton\", \"hidePrevButton\", \"onChange\", \"page\", \"renderItem\", \"shape\", \"showFirstButton\", \"showLastButton\", \"siblingCount\", \"size\", \"variant\"];\n\n\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant],\n ul: ['ul']\n };\n return (0,_mui_utils_composeClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(slots, _paginationClasses__WEBPACK_IMPORTED_MODULE_6__.getPaginationUtilityClass, classes);\n};\nconst PaginationRoot = (0,_styles_styled__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('nav', {\n name: 'MuiPagination',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant]];\n }\n})({});\nconst PaginationUl = (0,_styles_styled__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('ul', {\n name: 'MuiPagination',\n slot: 'Ul',\n overridesResolver: (props, styles) => styles.ul\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n});\nfunction defaultGetAriaLabel(type, page, selected) {\n if (type === 'page') {\n return `${selected ? '' : 'Go to '}page ${page}`;\n }\n return `Go to ${type} page`;\n}\nconst Pagination = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function Pagination(inProps, ref) {\n const props = (0,_DefaultPropsProvider__WEBPACK_IMPORTED_MODULE_8__.useDefaultProps)({\n props: inProps,\n name: 'MuiPagination'\n });\n const {\n boundaryCount = 1,\n className,\n color = 'standard',\n count = 1,\n defaultPage = 1,\n disabled = false,\n getItemAriaLabel = defaultGetAriaLabel,\n hideNextButton = false,\n hidePrevButton = false,\n renderItem = item => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_PaginationItem__WEBPACK_IMPORTED_MODULE_9__[\"default\"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, item)),\n shape = 'circular',\n showFirstButton = false,\n showLastButton = false,\n siblingCount = 1,\n size = 'medium',\n variant = 'text'\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, _excluded);\n const {\n items\n } = (0,_usePagination__WEBPACK_IMPORTED_MODULE_10__[\"default\"])((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n componentName: 'Pagination'\n }));\n const ownerState = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n boundaryCount,\n color,\n count,\n defaultPage,\n disabled,\n getItemAriaLabel,\n hideNextButton,\n hidePrevButton,\n renderItem,\n shape,\n showFirstButton,\n showLastButton,\n siblingCount,\n size,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(PaginationRoot, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n \"aria-label\": \"pagination navigation\",\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(PaginationUl, {\n className: classes.ul,\n ownerState: ownerState,\n children: items.map((item, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"li\", {\n children: renderItem((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, item, {\n color,\n 'aria-label': getItemAriaLabel(item.type, item.page, item.selected),\n shape,\n size,\n variant\n }))\n }, index))\n })\n }));\n});\n\n// @default tags synced with default values from usePagination\n\n true ? Pagination.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Number of always visible pages at the beginning and end.\n * @default 1\n */\n boundaryCount: _mui_utils_integerPropType__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n /**\n * Override or extend the styles applied to the component.\n */\n classes: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().object),\n /**\n * @ignore\n */\n className: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),\n /**\n * The active color.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOf(['primary', 'secondary', 'standard']), (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string)]),\n /**\n * The total number of pages.\n * @default 1\n */\n count: _mui_utils_integerPropType__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n /**\n * The page selected by default when the component is uncontrolled.\n * @default 1\n */\n defaultPage: _mui_utils_integerPropType__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().bool),\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous' | 'start-ellipsis' | 'end-ellipsis'). Defaults to 'page'.\n * @param {number} page The page number to format.\n * @param {bool} selected If true, the current page is selected.\n * @returns {string}\n */\n getItemAriaLabel: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func),\n /**\n * If `true`, hide the next-page button.\n * @default false\n */\n hideNextButton: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().bool),\n /**\n * If `true`, hide the previous-page button.\n * @default false\n */\n hidePrevButton: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().bool),\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.ChangeEvent