From 5483e5c39f4999e063e92e102826ac677ca66192 Mon Sep 17 00:00:00 2001 From: Mim Date: Wed, 8 Apr 2026 12:31:44 +0300 Subject: [PATCH] =?UTF-8?q?WEBAPP:=20=D0=A1=D0=B2=D0=B5=D0=B6=D0=B0=D1=8F?= =?UTF-8?q?=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/p8-panels.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/dist/p8-panels.js b/dist/p8-panels.js index fad9bd1..d508a9b 100644 --- a/dist/p8-panels.js +++ b/dist/p8-panels.js @@ -445,7 +445,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 */ 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?"); +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/* harmony import */ var _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./p8p_data_grid_reducer */ \"./app/components/p8p_data_grid_reducer.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 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 resetPageNumberOnStoredArgsChange = true,\n executeStoredArgs = {},\n resetPageNumberOnExecuteStoredArgsChange = true,\n allowDataLoad = () => true\n}) => {\n //Подключим редьюсер состояния\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.dataGridReducer, (0,_p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.INITIAL_STATE)({\n initFilters,\n initOrders\n }));\n\n //Установка даных таблицы\n const setDataGrid = (dataGridData, pageSize, isError) => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_DATA_GRID,\n payload: {\n dataGridData,\n pageSize,\n isError\n }\n });\n\n //Установка фильтра таблицы\n const setDataGridFilter = filters => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_DATA_GRID_FILTER,\n payload: filters\n });\n\n //Установка сортировок таблицы\n const setDataGridOrder = orders => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_DATA_GRID_ORDER,\n payload: orders\n });\n\n //Установка страницы таблицы\n const setDataGridPageNumber = pageNumber => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_DATA_GRID_PAGE_NUMBER,\n payload: pageNumber\n });\n\n //Установка флага загруженности данных\n const setIsDataLoaded = isDataLoaded => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_IS_DATA_LOADED,\n payload: isDataLoaded\n });\n\n //Установка флага активности процесса загрузки данных\n const setIsLoading = isLoading => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_IS_LOADING,\n payload: isLoading\n });\n\n //Установка флага необходимости обновления данных\n const setReload = (reload, resetPageNumber = false) => dispatch({\n type: _p8p_data_grid_reducer__WEBPACK_IMPORTED_MODULE_3__.DG_AT.SET_RELOAD,\n payload: {\n reload,\n resetPageNumber\n }\n });\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 //Начинаем загрузку\n setIsLoading(true);\n const data = await executeStored({\n stored,\n args: {\n CFILTERS: {\n VALUE: (0,_core_utils__WEBPACK_IMPORTED_MODULE_2__.object2Base64XML)(state.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)(state.dataGrid.orders, {\n arrayNodeName: ordersNodeName\n }),\n SDATA_TYPE: SERV_DATA_TYPE_CLOB\n },\n NPAGE_NUMBER: state.dataGrid.pageNumber,\n NPAGE_SIZE: pageSize,\n NINCLUDE_DEF: reloadDef ? 1 : state.isDataLoaded ? 0 : 1,\n ...refStoredArgs.current\n },\n respArg,\n ...refExecuteStoredArgs.current\n });\n //Устанавливаем полученные данные и признак загрузки данных с учетом возможных ошибок\n setDataGrid(data[contentNodeName], pageSize, isRespErr(data));\n } catch (e) {\n //Если произошла ошибка - данные не загружены\n setIsDataLoaded(false);\n } finally {\n //Сбрасываем признаки загрузки и перезагрузки данных\n setIsLoading(false);\n }\n }, [SERV_DATA_TYPE_CLOB, contentNodeName, state.isDataLoaded, state.dataGrid.filters, state.dataGrid.orders, state.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 }) => setDataGridFilter(filters), []);\n\n //При изменении состояния сортировки\n const handleOrderChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n orders\n }) => setDataGridOrder(orders), []);\n\n //При изменении количества отображаемых страниц\n const handlePagesCountChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => setDataGridPageNumber(state.dataGrid.pageNumber + 1), [state.dataGrid.pageNumber]);\n\n //При изменении страницы отображения\n const handlePageChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n page\n }) => setDataGridPageNumber(page), []);\n\n //При необходимости обновления таблицы\n const doReload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(({\n returnOnFirstPage = false\n }) => setReload(true, state.dataGrid.pagesCount <= 0 || returnOnFirstPage), [state.dataGrid.pagesCount]);\n\n //Проверка изменений параметров\n const isArgsChanged = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((currentArgs, args) => {\n //Если дополнительные параметры изменились (и сейчас не происходит загрузка данных с сервера)\n return !state.isLoading && JSON.stringify(currentArgs) != JSON.stringify(args);\n }, [state.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, resetPageNumberOnStoredArgsChange);\n }\n }, [storedArgs, resetPageNumberOnStoredArgsChange, 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, resetPageNumberOnExecuteStoredArgsChange);\n }\n }, [executeStoredArgs, resetPageNumberOnExecuteStoredArgsChange, isArgsChanged]);\n\n //При необходимости обновить данные таблицы\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (isAllowDataLoad && state.reload) {\n loadData();\n }\n }, [isAllowDataLoad, state.reload, loadData]);\n\n //Возвращаем данные таблицы\n return {\n dataGrid: state.dataGrid,\n isDataLoaded: state.isDataLoaded,\n isLoading: state.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?"); + +/***/ }), + +/***/ "./app/components/p8p_data_grid_reducer.js": +/*!*************************************************!*\ + !*** ./app/components/p8p_data_grid_reducer.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 */ DG_AT: () => (/* binding */ DG_AT),\n/* harmony export */ INITIAL_STATE: () => (/* binding */ INITIAL_STATE),\n/* harmony export */ dataGridReducer: () => (/* binding */ dataGridReducer)\n/* harmony export */ });\n/*\r\n Парус 8 - Панели мониторинга\r\n Таблица данных - редьюсер состояния\r\n*/\n\n//---------\n//Константы\n//---------\n\n//Типы действий\nconst DG_AT = {\n SET_DATA_GRID: \"SET_DATA_GRID\",\n //Установка даных таблицы\n SET_DATA_GRID_FILTER: \"SET_DATA_GRID_FILTER\",\n //Установка фильтра таблицы\n SET_DATA_GRID_ORDER: \"SET_DATA_GRID_ORDER\",\n //Установка сортировок таблицы\n SET_DATA_GRID_PAGE_NUMBER: \"SET_DATA_GRID_PAGE_NUMBER\",\n //Установка страницы таблицы\n SET_IS_DATA_LOADED: \"SET_IS_DATA_LOADED\",\n //Установка флага загруженности данных\n SET_IS_LOADING: \"SET_IS_LOADING\",\n //Установка флага активности процесса загрузки данных\n SET_RELOAD: \"SET_RELOAD\" //Установка флага необходимости обновления данных\n};\n\n//Состояние приложения по умолчанию\nconst INITIAL_STATE = ({\n initFilters,\n initOrders\n}) => ({\n dataGrid: {\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 isDataLoaded: false,\n isLoading: false,\n reload: true\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//Обработчики действий\nconst handlers = {\n //Установка даных таблицы\n [DG_AT.SET_DATA_GRID]: (state, {\n payload\n }) => {\n const {\n dataGridData,\n pageSize,\n isError\n } = payload;\n return {\n ...state,\n dataGrid: {\n ...state.dataGrid,\n ...dataGridData,\n columnsDef: dataGridData.columnsDef ? [...dataGridData.columnsDef] : state.dataGrid.columnsDef || [],\n rows: dataGridData.pagesCount > 0 || state.dataGrid.pageNumber == 1 ? [...(dataGridData.rows || [])] : [...(state.dataGrid.rows || []), ...(dataGridData.rows || [])],\n groups: dataGridData.groups ? dataGridData.pagesCount > 0 || state.dataGrid.pageNumber == 1 ? [...(dataGridData.groups || [])] : [...(state.dataGrid.groups || []), ...dataGridData.groups.filter(g => !state.dataGrid.groups.find(pg => pg.name == g.name))] : [...(state.dataGrid.groups || [])],\n morePages: dataGridData.morePages && (dataGridData.rows || []).length >= pageSize\n },\n isDataLoaded: isError === true ? false : true\n };\n },\n //Установка фильтра таблицы\n [DG_AT.SET_DATA_GRID_FILTER]: (state, {\n payload\n }) => ({\n ...state,\n dataGrid: {\n ...state.dataGrid,\n filters: [...payload],\n pageNumber: 1\n },\n reload: true\n }),\n //Установка сортировок таблицы\n [DG_AT.SET_DATA_GRID_ORDER]: (state, {\n payload\n }) => ({\n ...state,\n dataGrid: {\n ...state.dataGrid,\n orders: [...payload],\n pageNumber: 1\n },\n reload: true\n }),\n //Установка страницы таблицы\n [DG_AT.SET_DATA_GRID_PAGE_NUMBER]: (state, {\n payload\n }) => ({\n ...state,\n dataGrid: {\n ...state.dataGrid,\n pageNumber: payload\n },\n reload: true\n }),\n //Установка флага загруженности данных\n [DG_AT.SET_IS_DATA_LOADED]: (state, {\n payload\n }) => ({\n ...state,\n isDataLoaded: payload\n }),\n //Установка флага активности процесса загрузки данных\n [DG_AT.SET_IS_LOADING]: (state, {\n payload\n }) => ({\n ...state,\n isLoading: payload,\n reload: payload === false ? false : state.reload\n }),\n //Установка флага необходимости обновления данных\n [DG_AT.SET_RELOAD]: (state, {\n payload\n }) => ({\n ...state,\n reload: payload.reload,\n ...(payload.resetPageNumber ? {\n dataGrid: {\n ...state.dataGrid,\n pageNumber: 1\n }\n } : {})\n }),\n //Обработчик по умолчанию\n DEFAULT: state => state\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n//Константы\n\n\n//Редьюсер состояния\nconst dataGridReducer = (state, action) => {\n //Подберём обработчик\n const handle = handlers[action.type] || handlers.DEFAULT;\n //Исполним его\n return handle(state, action);\n};\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/components/p8p_data_grid_reducer.js?"); /***/ }), @@ -4755,7 +4766,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 */ DataGrid: () => (/* binding */ DataGrid),\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_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_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/Icon/Icon.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 _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.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/Button/Button.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_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_4__ = __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 Пример: Таблица данных \"P8PDataGrid\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Контекст приложения\n //Типовые стили\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 5;\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DATA_GRID_CONTAINER: {\n maxWidth: 700,\n maxHeight: 500,\n minHeight: 500,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_4__.APP_STYLES.SCROLL\n }\n};\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//Формирование значения для колонки \"Тип контрагента\"\nconst formatAgentTypeValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"Юридическое лицо\", \"business\"] : [\"Физическое лицо\", \"person\"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n gap: 0.5,\n alignItems: \"center\",\n justifyContent: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n title: text\n }, icon), addText == true ? text : null);\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return formatAgentTypeValue(value, true);\n }\n return value;\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return {\n cellProps: {\n align: \"center\"\n },\n data: formatAgentTypeValue(row[columnDef.name], false)\n };\n }\n};\n\n//Генерация представления ячейки заголовка\nconst headCellRender = ({\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return {\n stackProps: {\n justifyContent: \"center\"\n },\n cellProps: {\n align: \"center\"\n }\n };\n }\n};\n\n//Генерация представления ячейки заголовка группы\nconst groupCellRender = () => ({\n cellStyle: {\n padding: \"2px\"\n }\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Таблица данных \"P8PDataGrid\"\nconst DataGrid = ({\n title\n}) => {\n //Собственное состояние - таблица данных\n const {\n dataGrid,\n isDataLoaded,\n handleFilterChanged,\n handleOrderChanged,\n handlePageChange\n } = (0,_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.useP8PDataGrid)({\n stored: \"PKG_P8PANELS_SAMPLES.DATA_GRID\",\n pageSize: DATA_GRID_PAGE_SIZE\n });\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 handleAgnButtonClicked = agnCode => pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: agnCode,\n inRnParameter: \"in_AGNABBR\"\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_7__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n container: true,\n spacing: 1,\n pt: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n item: true,\n xs: 12\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n p: 5,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, isDataLoaded ? /*#__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, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n elevation: 6,\n sx: STYLES.DATA_GRID_CONTAINER\n },\n valueFormatter: valueFormatter,\n headCellRender: headCellRender,\n dataCellRender: dataCellRender,\n groupCellRender: groupCellRender,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n rowExpandRender: ({\n row\n }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n onClick: () => handleAgnButtonClicked(row.SAGNABBR)\n }, \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\"),\n onPageChanged: handlePageChange\n })) : null))));\n};\n\n//Контроль свойств - Пример: Таблица данных \"P8PDataGrid\"\nDataGrid.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/data_grid.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataGrid: () => (/* binding */ DataGrid),\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_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_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/Icon/Icon.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 _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/FormControlLabel/FormControlLabel.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Checkbox/Checkbox.js\");\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ \"./node_modules/@mui/material/Grid/Grid.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/Button/Button.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_application__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/application */ \"./app/context/application.js\");\n/* harmony import */ var _app_styles__WEBPACK_IMPORTED_MODULE_4__ = __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 Пример: Таблица данных \"P8PDataGrid\"\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Контроль свойств компонента\n //Интерфейсные элементы\n //Таблица данных\n //Подключение компонентов к настройкам приложения\n //Контекст приложения\n //Типовые стили\n\n//---------\n//Константы\n//---------\n\n//Размер страницы данных\nconst DATA_GRID_PAGE_SIZE = 5;\n\n//Стили\nconst STYLES = {\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n TITLE: {\n paddingBottom: \"15px\"\n },\n DATA_GRID_CONTAINER: {\n maxWidth: 700,\n maxHeight: 500,\n minHeight: 500,\n ..._app_styles__WEBPACK_IMPORTED_MODULE_4__.APP_STYLES.SCROLL\n }\n};\n\n//---------------------------------------------\n//Вспомогательные функции форматирования данных\n//---------------------------------------------\n\n//Формирование значения для колонки \"Тип контрагента\"\nconst formatAgentTypeValue = (value, addText = false) => {\n const [text, icon] = value == 0 ? [\"Юридическое лицо\", \"business\"] : [\"Физическое лицо\", \"person\"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n direction: \"row\",\n gap: 0.5,\n alignItems: \"center\",\n justifyContent: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n title: text\n }, icon), addText == true ? text : null);\n};\n\n//Форматирование значений колонок\nconst valueFormatter = ({\n value,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return formatAgentTypeValue(value, true);\n }\n return value;\n};\n\n//Генерация представления ячейки c данными\nconst dataCellRender = ({\n row,\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return {\n cellProps: {\n align: \"center\"\n },\n data: formatAgentTypeValue(row[columnDef.name], false)\n };\n }\n};\n\n//Генерация представления ячейки заголовка\nconst headCellRender = ({\n columnDef\n}) => {\n switch (columnDef.name) {\n case \"NAGNTYPE\":\n return {\n stackProps: {\n justifyContent: \"center\"\n },\n cellProps: {\n align: \"center\"\n }\n };\n }\n};\n\n//Генерация представления ячейки заголовка группы\nconst groupCellRender = () => ({\n cellStyle: {\n padding: \"2px\"\n }\n});\n\n//-----------\n//Тело модуля\n//-----------\n\n//Пример: Таблица данных \"P8PDataGrid\"\nconst DataGrid = ({\n title\n}) => {\n //Собственное состояние - использование кнопки догрузки данных\n const [useMoreButton, setUseMoreButton] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - таблица данных\n const {\n dataGrid,\n isDataLoaded,\n handleFilterChanged,\n handleOrderChanged,\n handlePageChange,\n handlePagesCountChanged\n } = (0,_components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.useP8PDataGrid)({\n stored: \"PKG_P8PANELS_SAMPLES.DATA_GRID\",\n pageSize: DATA_GRID_PAGE_SIZE,\n storedArgs: {\n NUSE_MORE_BUTTON: useMoreButton ? 1 : 0\n }\n });\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 handleAgnButtonClicked = agnCode => pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: agnCode,\n inRnParameter: \"in_AGNABBR\"\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_7__[\"default\"], {\n sx: STYLES.TITLE,\n variant: \"h6\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n sx: STYLES.CONTROL,\n control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n onChange: () => setUseMoreButton(!useMoreButton)\n }),\n label: \"\\u041E\\u0442\\u043E\\u0431\\u0440\\u0430\\u0436\\u0430\\u0442\\u044C \\u043A\\u043D\\u043E\\u043F\\u043A\\u0443 \\u0434\\u043E\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n container: true,\n spacing: 1,\n pt: 5\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n item: true,\n xs: 12\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n p: 5,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }, isDataLoaded ? /*#__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, dataGrid, {\n size: _components_p8p_data_grid__WEBPACK_IMPORTED_MODULE_1__.P8P_DATA_GRID_SIZE.LARGE,\n containerComponentProps: {\n elevation: 6,\n sx: STYLES.DATA_GRID_CONTAINER\n },\n valueFormatter: valueFormatter,\n headCellRender: headCellRender,\n dataCellRender: dataCellRender,\n groupCellRender: groupCellRender,\n onOrderChanged: handleOrderChanged,\n onFilterChanged: handleFilterChanged,\n rowExpandRender: ({\n row\n }) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n onClick: () => handleAgnButtonClicked(row.SAGNABBR)\n }, \"\\u041F\\u043E\\u043A\\u0430\\u0437\\u0430\\u0442\\u044C \\u0432 \\u0440\\u0430\\u0437\\u0434\\u0435\\u043B\\u0435\"),\n onPageChanged: handlePageChange,\n onPagesCountChanged: handlePagesCountChanged\n })) : null))));\n};\n\n//Контроль свойств - Пример: Таблица данных \"P8PDataGrid\"\nDataGrid.propTypes = {\n title: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/data_grid.js?"); /***/ }), @@ -4832,7 +4843,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__.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?"); +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 [titleCustom, setTitleCustom] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);\n\n //Собственное состояние - флаг отображения заголовка\n const [titleVisible, setTitleVisible] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\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 setAppBarTitle,\n setAppBarShow,\n findPanelByName\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), titleVisible && /*#__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_3__[\"default\"], {\n variant: \"contained\",\n onClick: () => {\n setAppBarTitle(titleCustom ? \"\" : \"Пользовательский текст\");\n setTitleCustom(!titleCustom);\n }\n }, `${titleCustom ? \"Восстановить\" : \"Изменить\"} текст заголовка`), /*#__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 setAppBarShow(!titleVisible);\n setTitleVisible(!titleVisible);\n }\n }, `${titleVisible ? \"Скрыть\" : \"Отобразить\"} заголовок`), /*#__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: () => console.log(findPanelByName(\"Samples\"))\n }, \"\\u0412\\u044B\\u0432\\u0435\\u0441\\u0442\\u0438 \\u0432 \\u043A\\u043E\\u043D\\u0441\\u043E\\u043B\\u044C \\u0441\\u0432\\u0435\\u0434\\u0435\\u043D\\u0438\\u044F \\u043E \\u0434\\u0430\\u043D\\u043D\\u043E\\u0439 \\u043F\\u0430\\u043D\\u0435\\u043B\\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: () => 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: () => pOnlineShowUnit({\n unitCode: \"Contracts\"\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: () => pOnlineShowDocument({\n unitCode: \"AGNLIST\",\n document: agent,\n inRnParameter: \"in_AGNABBR\"\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?"); /***/ }), @@ -4843,7 +4854,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 */ Samples: () => (/* binding */ Samples)\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_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/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 _p8online__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8online */ \"./app/panels/samples/p8online.js\");\n/* harmony import */ var _mui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mui */ \"./app/panels/samples/mui.js\");\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./messages */ \"./app/panels/samples/messages.js\");\n/* harmony import */ var _loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./loader */ \"./app/panels/samples/loader.js\");\n/* harmony import */ var _data_grid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./data_grid */ \"./app/panels/samples/data_grid.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./chart */ \"./app/panels/samples/chart.js\");\n/* harmony import */ var _gantt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./gantt */ \"./app/panels/samples/gantt.js\");\n/* harmony import */ var _svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./svg */ \"./app/panels/samples/svg.js\");\n/* harmony import */ var _cyclogram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cyclogram */ \"./app/panels/samples/cyclogram.js\");\n/* harmony import */ var _indicator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./indicator */ \"./app/panels/samples/indicator.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Панель мониторинга: Примеры для разработчиков\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные элементы\n //Текстовые ресурсы и константы\n //Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\n //Пример: Компоненты MUI\n //Пример: Сообщения\n //Пример: Индикатор процесса\n //Пример: Таблица данных \"P8PDataGrid\"\n //Пример: Графики \"P8PChart\"\n //Пример: Диаграмма Ганта \"P8PGantt\"\n //Пример: Интерактивные изображения \"P8PSVG\"\n //Пример: Циклограмма \"P8PCyclogram\"\n //Пример: Индикатор \"P8PIndicator\"\n\n//---------\n//Константы\n//---------\n\n//Режимы\nconst MODES = {\n P8ONLINE: {\n name: \"P8ONLINE\",\n caption: 'API для взаимодействия с \"ПАРУС 8 Онлайн\"',\n component: _p8online__WEBPACK_IMPORTED_MODULE_2__.P8Online\n },\n MUI: {\n name: \"MUI\",\n caption: \"Компоненты MUI\",\n component: _mui__WEBPACK_IMPORTED_MODULE_3__.Mui\n },\n MESSAGES: {\n name: \"MESSAGES\",\n caption: \"Сообщения\",\n component: _messages__WEBPACK_IMPORTED_MODULE_4__.Messages\n },\n LOADER: {\n name: \"LOADER\",\n caption: \"Индикатор процесса\",\n component: _loader__WEBPACK_IMPORTED_MODULE_5__.Loader\n },\n DATAGRID: {\n name: \"DATAGRID\",\n caption: 'Таблица данных \"P8PDataGrid\"',\n component: _data_grid__WEBPACK_IMPORTED_MODULE_6__.DataGrid\n },\n CHART: {\n name: \"CHART\",\n caption: 'Графики \"P8PChart\"',\n component: _chart__WEBPACK_IMPORTED_MODULE_7__.Chart\n },\n GANTT: {\n name: \"GANTT\",\n caption: 'Диаграмма Ганта \"P8PGantt\"',\n component: _gantt__WEBPACK_IMPORTED_MODULE_8__.Gantt\n },\n SVG: {\n name: \"SVG\",\n caption: 'Интерактивные изображения \"P8PSVG\"',\n component: _svg__WEBPACK_IMPORTED_MODULE_9__.Svg\n },\n CYCLOGRAM: {\n name: \"CYCLOGRAM\",\n caption: 'Циклограмма \"P8PCyclogram\"',\n component: _cyclogram__WEBPACK_IMPORTED_MODULE_10__.Cyclogram\n },\n INDICATOR: {\n name: \"INDICATOR\",\n caption: 'Индикатор \"P8PIndicator\"',\n component: _indicator__WEBPACK_IMPORTED_MODULE_11__.Indicator\n }\n};\n\n//Стили\nconst STYLES = {\n ROOT: {\n height: \"calc(100vh - 64px)\"\n },\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n BACK_BUTTON: {\n position: \"absolute\",\n left: \"20px\",\n marginTop: \"20px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Примеры\nconst Samples = () => {\n //Собственное состояние\n const [mode, setMode] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\");\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.ROOT\n }, mode ? /*#__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_12__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.BACK_BUTTON,\n onClick: () => setMode(\"\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, \"arrow_back_ios\"), _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.NAVIGATE_BACK), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MODES[mode]?.component || (() => {}), {\n title: MODES[mode]?.caption\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, Object.entries(MODES).map(m => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n key: m[0]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => setMode(m[1].name)\n }, m[1].caption)))));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/samples.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Samples: () => (/* binding */ Samples)\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_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/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 _p8online__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./p8online */ \"./app/panels/samples/p8online.js\");\n/* harmony import */ var _mui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mui */ \"./app/panels/samples/mui.js\");\n/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./messages */ \"./app/panels/samples/messages.js\");\n/* harmony import */ var _loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./loader */ \"./app/panels/samples/loader.js\");\n/* harmony import */ var _data_grid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./data_grid */ \"./app/panels/samples/data_grid.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./chart */ \"./app/panels/samples/chart.js\");\n/* harmony import */ var _gantt__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./gantt */ \"./app/panels/samples/gantt.js\");\n/* harmony import */ var _svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./svg */ \"./app/panels/samples/svg.js\");\n/* harmony import */ var _cyclogram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cyclogram */ \"./app/panels/samples/cyclogram.js\");\n/* harmony import */ var _indicator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./indicator */ \"./app/panels/samples/indicator.js\");\n/*\r\n Парус 8 - Панели мониторинга - Примеры для разработчиков\r\n Панель мониторинга: Примеры для разработчиков\r\n*/\n\n//---------------------\n//Подключение библиотек\n//---------------------\n\n //Классы React\n //Интерфейсные элементы\n //Текстовые ресурсы и константы\n //Пример: API для взаимодействия с \"ПАРУС 8 Онлайн\"\n //Пример: Компоненты MUI\n //Пример: Сообщения\n //Пример: Индикатор процесса\n //Пример: Таблица данных \"P8PDataGrid\"\n //Пример: Графики \"P8PChart\"\n //Пример: Диаграмма Ганта \"P8PGantt\"\n //Пример: Интерактивные изображения \"P8PSVG\"\n //Пример: Циклограмма \"P8PCyclogram\"\n //Пример: Индикатор \"P8PIndicator\"\n\n//---------\n//Константы\n//---------\n\n//Режимы\nconst MODES = {\n P8ONLINE: {\n name: \"P8ONLINE\",\n caption: 'API для взаимодействия с \"ПАРУС 8 Онлайн\" и ядром фреймворка',\n component: _p8online__WEBPACK_IMPORTED_MODULE_2__.P8Online\n },\n MUI: {\n name: \"MUI\",\n caption: \"Компоненты MUI\",\n component: _mui__WEBPACK_IMPORTED_MODULE_3__.Mui\n },\n MESSAGES: {\n name: \"MESSAGES\",\n caption: \"Сообщения\",\n component: _messages__WEBPACK_IMPORTED_MODULE_4__.Messages\n },\n LOADER: {\n name: \"LOADER\",\n caption: \"Индикатор процесса\",\n component: _loader__WEBPACK_IMPORTED_MODULE_5__.Loader\n },\n DATAGRID: {\n name: \"DATAGRID\",\n caption: 'Таблица данных \"P8PDataGrid\"',\n component: _data_grid__WEBPACK_IMPORTED_MODULE_6__.DataGrid\n },\n CHART: {\n name: \"CHART\",\n caption: 'Графики \"P8PChart\"',\n component: _chart__WEBPACK_IMPORTED_MODULE_7__.Chart\n },\n GANTT: {\n name: \"GANTT\",\n caption: 'Диаграмма Ганта \"P8PGantt\"',\n component: _gantt__WEBPACK_IMPORTED_MODULE_8__.Gantt\n },\n SVG: {\n name: \"SVG\",\n caption: 'Интерактивные изображения \"P8PSVG\"',\n component: _svg__WEBPACK_IMPORTED_MODULE_9__.Svg\n },\n CYCLOGRAM: {\n name: \"CYCLOGRAM\",\n caption: 'Циклограмма \"P8PCyclogram\"',\n component: _cyclogram__WEBPACK_IMPORTED_MODULE_10__.Cyclogram\n },\n INDICATOR: {\n name: \"INDICATOR\",\n caption: 'Индикатор \"P8PIndicator\"',\n component: _indicator__WEBPACK_IMPORTED_MODULE_11__.Indicator\n }\n};\n\n//Стили\nconst STYLES = {\n ROOT: {\n height: \"calc(100vh - 64px)\"\n },\n CONTAINER: {\n textAlign: \"center\",\n paddingTop: \"20px\"\n },\n BACK_BUTTON: {\n position: \"absolute\",\n left: \"20px\",\n marginTop: \"20px\"\n }\n};\n\n//-----------\n//Тело модуля\n//-----------\n\n//Примеры\nconst Samples = () => {\n //Собственное состояние\n const [mode, setMode] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\");\n\n //Генерация содержимого\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.ROOT\n }, mode ? /*#__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_12__[\"default\"], {\n variant: \"extended\",\n sx: STYLES.BACK_BUTTON,\n onClick: () => setMode(\"\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, \"arrow_back_ios\"), _app_text__WEBPACK_IMPORTED_MODULE_1__.BUTTONS.NAVIGATE_BACK), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(MODES[mode]?.component || (() => {}), {\n title: MODES[mode]?.caption\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: STYLES.CONTAINER\n }, Object.entries(MODES).map(m => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n key: m[0]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_material__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n onClick: () => setMode(m[1].name)\n }, m[1].caption)))));\n};\n\n//----------------\n//Интерфейс модуля\n//----------------\n\n\n\n//# sourceURL=webpack://parus_8_panels_plugin/./app/panels/samples/samples.js?"); /***/ }),