d2aura 26.0.14 → 26.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/api/eda/edaManagerApi.d.ts +7 -3
  2. package/api/eda/edaManagerApi.js +28 -2
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +93 -62
  5. package/api/eda/generated/events.js +146 -88
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +99 -86
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/api/types/advancedFilter.d.ts +3 -0
  10. package/api/types/advancedFilter.js.map +1 -1
  11. package/api/webPush/webPushApi.js.map +1 -1
  12. package/api/webPush/webPushUtils.js.map +1 -1
  13. package/core/i18n/d2aura.en.json +14 -0
  14. package/core/i18n/d2aura.sk.json +62 -0
  15. package/coreui/abstractListPanel.d.ts +2 -1
  16. package/coreui/abstractListPanel.js +5 -1
  17. package/coreui/abstractListPanel.js.map +1 -1
  18. package/coreui/components/advancedFilter/advancedFilterButton.d.ts +2 -2
  19. package/coreui/components/advancedFilter/advancedFilterButton.js.map +1 -1
  20. package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +3 -2
  21. package/coreui/components/advancedFilter/advancedFilteredGrid.js +9 -1
  22. package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -1
  23. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.d.ts +2 -2
  24. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js +1 -1
  25. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionDetailPanel.js.map +1 -1
  26. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.d.ts +2 -2
  27. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListModalDialog.js.map +1 -1
  28. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.d.ts +2 -2
  29. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js +10 -2
  30. package/coreui/components/advancedFilter/conditionList/advancedFilterConditionListPanel.js.map +1 -1
  31. package/coreui/components/d2Chart/d2ChartAdvancedZoom.d.ts +25 -0
  32. package/coreui/components/d2Chart/d2ChartAdvancedZoom.js +197 -0
  33. package/coreui/components/d2Chart/d2ChartAdvancedZoom.js.map +1 -0
  34. package/coreui/components/d2Chart/d2ChartPanel.d.ts +2 -0
  35. package/coreui/components/d2Chart/d2ChartPanel.js +9 -2
  36. package/coreui/components/d2Chart/d2ChartPanel.js.map +1 -1
  37. package/coreui/components/d2Chart/d2ChartToolboxPanel.d.ts +1 -0
  38. package/coreui/components/d2Chart/d2ChartToolboxPanel.js +2 -2
  39. package/coreui/components/d2Chart/d2ChartToolboxPanel.js.map +1 -1
  40. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +1 -1
  41. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -1
  42. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +23 -19
  43. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -1
  44. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +1 -1
  45. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  46. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +15 -18
  47. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  48. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +11 -3
  49. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +31 -24
  50. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  51. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +116 -95
  52. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  53. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +5 -0
  54. package/coreui/components/edaManagerComponent/components/edaTreeView.js +189 -60
  55. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  56. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +1 -1
  57. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  58. package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +5 -0
  59. package/coreui/components/edaManagerComponent/constants/actionTypes.js +7 -0
  60. package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -0
  61. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +13 -0
  62. package/coreui/components/edaManagerComponent/constants/edaTypes.js +15 -0
  63. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  64. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +1 -0
  65. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js +8 -1
  66. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  67. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +31 -38
  68. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  69. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.d.ts +6 -1
  70. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js +8 -1
  71. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js.map +1 -1
  72. package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +5 -3
  73. package/coreui/components/edaManagerComponent/context/useEdaActions.js +21 -7
  74. package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -1
  75. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.d.ts +13 -0
  76. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js +19 -0
  77. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js.map +1 -0
  78. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.d.ts +8 -0
  79. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +171 -0
  80. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -0
  81. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +22 -0
  82. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +75 -0
  83. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -0
  84. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.d.ts +12 -0
  85. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js +52 -0
  86. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js.map +1 -0
  87. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +22 -0
  88. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +130 -0
  89. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -0
  90. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.d.ts +58 -0
  91. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js +51 -0
  92. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js.map +1 -0
  93. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.d.ts +18 -0
  94. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js +74 -0
  95. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js.map +1 -0
  96. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.d.ts +38 -0
  97. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +299 -0
  98. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -0
  99. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.d.ts +10 -0
  100. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +343 -0
  101. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -0
  102. package/coreui/components/edaManagerComponent/{components → dialogs}/edaTableEditorDialog.js +1 -1
  103. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -0
  104. package/coreui/components/edaManagerComponent/{components → dialogs}/exportDialog.d.ts +2 -2
  105. package/coreui/components/edaManagerComponent/{components → dialogs}/exportDialog.js +7 -8
  106. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -0
  107. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.d.ts +12 -0
  108. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js +74 -0
  109. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +1 -0
  110. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.d.ts +16 -0
  111. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js +32 -0
  112. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js.map +1 -0
  113. package/coreui/components/edaManagerComponent/edaDetail.js +21 -7
  114. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  115. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +2 -0
  116. package/coreui/components/edaManagerComponent/edaNavigator.js +4 -4
  117. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  118. package/coreui/components/edaManagerComponent/edaSelect.d.ts +2 -0
  119. package/coreui/components/edaManagerComponent/edaSelect.js +13 -13
  120. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  121. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.d.ts +6 -0
  122. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js +7 -0
  123. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js.map +1 -0
  124. package/coreui/components/edaManagerComponent/utils/export.d.ts +1 -1
  125. package/coreui/components/edaManagerComponent/utils/export.js +20 -23
  126. package/coreui/components/edaManagerComponent/utils/export.js.map +1 -1
  127. package/coreui/components/select/abstractMultiSelect.d.ts +32 -0
  128. package/coreui/components/select/abstractMultiSelect.js +126 -0
  129. package/coreui/components/select/abstractMultiSelect.js.map +1 -0
  130. package/coreui/components/select/abstractSelectModalDialog.d.ts +5 -0
  131. package/coreui/components/select/abstractSelectModalDialog.js +45 -5
  132. package/coreui/components/select/abstractSelectModalDialog.js.map +1 -1
  133. package/coreui/components/webPush/webPushSwitch.js.map +1 -1
  134. package/coreui/images/logo.svg +9 -9
  135. package/coreui/images/logo_full.svg +11 -11
  136. package/d2configuration/edaManager/{DB.EM_EDA_DescriptiveVector.xml → DB.EM_EDA_VectorScenario.xml} +10 -10
  137. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +4 -4
  138. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +35 -15
  139. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +13 -5
  140. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +12 -1
  141. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +113 -5
  142. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +11 -1
  143. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +25 -1
  144. package/d2configuration/edaManager/{SD.EM_EDA_StatVectorRec_V1.xml → SD.EM_EDA_VectorScenario.xml} +13 -36
  145. package/package.json +2 -2
  146. package/coreui/components/edaManagerComponent/components/edaTableEditorDialog.js.map +0 -1
  147. package/coreui/components/edaManagerComponent/components/exportDialog.js.map +0 -1
  148. package/d2configuration/edaManager/SD.EM_EDA_DescriptiveVector.xml +0 -179
  149. package/d2configuration/edaManager/SD.EM_EDA_InsertValuesToVector_V1.xml +0 -227
  150. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +0 -178
  151. package/d2configuration/edaManager/SD.EM_EDA_VectorValues.xml +0 -58
  152. /package/coreui/components/edaManagerComponent/{components → dialogs}/edaTableEditorDialog.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import Icon from '@ant-design/icons';
3
+ const FolderRemoveOutlinedSvg = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "64 64 896 896", width: "1em", height: "1em", fill: "currentColor" },
4
+ React.createElement("path", { d: "M880 298H544l-56-112H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330c0-17.7-14.3-32-32-32zM840 768H184V262h261.3l56 112H840v394z" }),
5
+ React.createElement("path", { d: "M432 592h160c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H432c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8z" })));
6
+ export const FolderRemoveOutlined = (props) => (React.createElement(Icon, { component: FolderRemoveOutlinedSvg, ...props }));
7
+ //# sourceMappingURL=folderRemoveOutlined.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folderRemoveOutlined.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/icons/folderRemoveOutlined.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,mBAAmB,CAAC;AAKrC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAClC,6BAAK,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc;IACxG,8BAAM,CAAC,EAAC,kKAAkK,GAAE;IAC5K,8BAAM,CAAC,EAAC,2FAA2F,GAAE,CACnG,CACT,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAwC,EAAE,EAAE,CAAC,CAC9E,oBAAC,IAAI,IAAC,SAAS,EAAE,uBAAuB,KAAM,KAAK,GAAI,CAC1D,CAAA","sourcesContent":["import React from \"react\";\r\nimport Icon from '@ant-design/icons';\r\nimport type {GetProps} from 'antd';\r\n\r\ntype CustomIconComponentProps = GetProps<typeof Icon>;\r\n\r\nconst FolderRemoveOutlinedSvg = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\r\n <path d=\"M880 298H544l-56-112H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330c0-17.7-14.3-32-32-32zM840 768H184V262h261.3l56 112H840v394z\"/>\r\n <path d=\"M432 592h160c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H432c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8z\"/>\r\n </svg>\r\n);\r\n\r\nexport const FolderRemoveOutlined = (props: Partial<CustomIconComponentProps>) => (\r\n <Icon component={FolderRemoveOutlinedSvg} {...props} />\r\n)"]}
@@ -1,6 +1,6 @@
1
1
  import { LoadingContextValue } from "../context/loadingContext";
2
2
  import EdaManagerApi, { GroupData, ScenarioData, VectorData } from "../../../../api/eda/edaManagerApi";
3
- import { XmlVectorExportConfig } from "../components/exportDialog";
3
+ import { XmlVectorExportConfig } from "../dialogs/exportDialog";
4
4
  import { MessageInstance } from "antd/es/message/interface";
5
5
  type LoadingCallback = (value: (((prevState: LoadingContextValue) => LoadingContextValue) | LoadingContextValue)) => void;
6
6
  export declare function exportVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]>;
@@ -367,29 +367,26 @@ async function exportDescriptiveVector(root, api, vector, dateTimeMask, message)
367
367
  return;
368
368
  }
369
369
  const element = root.ele("popis");
370
- for (let desc of data.data) {
371
- element.att("idx", desc.IDX);
372
- element.att("typ_periody", desc.TYP_PERIODY);
373
- element.att("typ_hodnoty", desc.TYP_HODNOTY);
374
- element.att("hodnota", desc.HODNOTA);
375
- element.att("valid", desc.VALID);
376
- if (desc.EDA_ID !== undefined) {
377
- element.att("eda_id", desc.EDA_ID);
378
- }
379
- if (desc.TIME_FROM !== undefined) {
380
- element.att("od", dayjs(desc.TIME_FROM).format(dateTimeMask));
381
- }
382
- if (desc.TIME_TO !== undefined) {
383
- element.att("do", dayjs(desc.TIME_TO).format(dateTimeMask));
384
- }
385
- if (desc.HODNOTA2 !== undefined) {
386
- element.att("hodnota2", desc.HODNOTA2);
387
- }
388
- if (desc.STAV !== undefined) {
389
- element.att("stav", desc.STAV);
390
- }
391
- if (desc.DODATOK_ID !== undefined) {
392
- element.att("dodatok_id", desc.DODATOK_ID);
370
+ for (let desc of data) {
371
+ element.att("idx", desc.idx);
372
+ element.att("typ_periody", desc.periodType);
373
+ element.att("typ_hodnoty", desc.valueType);
374
+ element.att("hodnota", desc.value);
375
+ element.att("valid", desc.valid);
376
+ if (desc.timeFrom !== undefined) {
377
+ element.att("od", dayjs(desc.timeFrom).format(dateTimeMask));
378
+ }
379
+ if (desc.timeTo !== undefined) {
380
+ element.att("do", dayjs(desc.timeTo).format(dateTimeMask));
381
+ }
382
+ if (desc.value2 !== undefined) {
383
+ element.att("hodnota2", desc.value2);
384
+ }
385
+ if (desc.status !== undefined) {
386
+ element.att("stav", desc.status);
387
+ }
388
+ if (desc.supplement !== undefined) {
389
+ element.att("dodatok_id", desc.supplement);
393
390
  }
394
391
  }
395
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/utils/export.ts"],"names":[],"mappings":"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","sourcesContent":["import {create, XMLElement} from \"xmlbuilder\";\r\nimport {SD_EM_EDA_PairVector} from \"../../../../api/eda/generated/structures\";\r\nimport {LoadingContextValue} from \"../context/loadingContext\";\r\nimport {EdaSamplingType, EdaVectorType} from \"../constants/edaTypes\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport EdaManagerApi, {GroupData, ScenarioData, TreeItem, VectorData, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {XmlVectorExportConfig} from \"../components/exportDialog\";\r\nimport {MessageInstance} from \"antd/es/message/interface\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ntype LoadingCallback = (value: (((prevState: LoadingContextValue) => LoadingContextValue) | LoadingContextValue)) => void\r\n\r\nexport async function exportVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('vektor', {version: '1.0', encoding: 'UTF-8'});\r\n let pairVector: SD_EM_EDA_PairVector | undefined;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.data.ZOBRAZ_MENO}));\r\n\r\n if (vector.data.TYP === EdaVectorType.Pair) {\r\n try {\r\n const pairVectors = ((await api.loadPairVectorData(vector.data.ID_VEKTOR)).data as SD_EM_EDA_PairVector[]);\r\n pairVector = pairVectors.length > 0 ? pairVectors[0] : undefined;\r\n } catch (e) {\r\n message.error(String(e));\r\n }\r\n }\r\n\r\n root.att(\"meno\", vector.data.MENO);\r\n root.att(\"id_vektor\", vector.data.ID_VEKTOR);\r\n root.att(\"typ\", vector.data.TYP);\r\n root.att(\"autor\", vector.data.AUTOR);\r\n root.att(\"private\", vector.data.PRIVATE);\r\n root.att(\"integral\", vector.data.INTEGRAL);\r\n root.att(\"zobraz_meno\", vector.data.ZOBRAZ_MENO);\r\n root.att(\"view_round\", vector.data.VIEW_ROUND);\r\n root.att(\"exec_round\", vector.data.EXEC_ROUND);\r\n root.att(\"view_dec_pl\", vector.data.VIEW_DEC_PL);\r\n root.att(\"exec_dec_pl\", vector.data.EXEC_DEC_PL);\r\n\r\n if (vector.data.POPIS !== undefined) {\r\n root.att(\"popis\", vector.data.POPIS);\r\n }\r\n if (vector.data.TYP !== EdaVectorType.Pair && vector.data.TECH_JEDNOTKY !== undefined) {\r\n root.att(\"tech_jednotky\", vector.data.TECH_JEDNOTKY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.TECH_JEDNOTKY !== undefined) {\r\n root.att(\"tech_jednotky\", pairVector?.TECH_JEDNOTKY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.TECH_JEDNOTKY_Y !== undefined) {\r\n root.att(\"tech_jednotky\", pairVector?.TECH_JEDNOTKY_Y);\r\n }\r\n if (vector.data.TYP_HODNOTY !== undefined) {\r\n root.att(\"typ_hodnoty\", vector.data.TYP_HODNOTY);\r\n }\r\n if (vector.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", vector.data.PRIST_PRAVA_R);\r\n }\r\n if (vector.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", vector.data.PRIST_PRAVA_W);\r\n }\r\n if (vector.data.MENOEX !== \".\") {\r\n root.att(\"menoex\", vector.data.MENOEX);\r\n }\r\n if (vector.data.TIME_ZONE !== undefined) {\r\n root.att(\"time_zone_offset\", vector.data.TIME_ZONE);\r\n }\r\n if (vector.data.USER_CH !== undefined) {\r\n root.att(\"user_ch\", vector.data.USER_CH);\r\n }\r\n if (vector.data.DATA_OFFSET !== undefined) {\r\n root.att(\"data_offset\", vector.data.DATA_OFFSET);\r\n }\r\n if (vector.data.ID_TABLESPACE !== undefined) {\r\n root.att(\"id_tablespace\", vector.data.ID_TABLESPACE);\r\n }\r\n if (vector.data.VERSIONED_SINCE !== undefined) {\r\n root.att(\"versioned_since\", vector.data.VERSIONED_SINCE);\r\n }\r\n if (vector.data.ARCHIVE_NAME !== undefined) {\r\n root.att(\"archive_name\", vector.data.ARCHIVE_NAME);\r\n }\r\n if (vector.data.ARCHIVE_ROW !== undefined) {\r\n root.att(\"archive_row\", vector.data.ARCHIVE_ROW);\r\n }\r\n if (vector.data.ARCHIVE_COL !== undefined) {\r\n root.att(\"archive_col\", vector.data.ARCHIVE_COL);\r\n }\r\n if (vector.data.STATUS_TEXT !== undefined) {\r\n root.att(\"status_text\", vector.data.STATUS_TEXT);\r\n }\r\n if (vector.data.LOG_ACCESS !== undefined) {\r\n root.att(\"log_access\", vector.data.LOG_ACCESS);\r\n }\r\n if (vector.data.INTERVAL_STABLE !== undefined) {\r\n root.att(\"interval_stable\", vector.data.INTERVAL_STABLE);\r\n }\r\n if (vector.data.PERIOD_BEGIN_TIME !== undefined) {\r\n root.att(\"period_begin_time\", dayjs(vector.data.PERIOD_BEGIN_TIME).format(dateTimeMask));\r\n }\r\n if (vector.data.PERIOD_STEP_BASE !== undefined) {\r\n root.att(\"period_step_base\", vector.data.PERIOD_STEP_BASE);\r\n }\r\n if (vector.data.PERIOD_STEP_COUNT !== undefined) {\r\n root.att(\"period_step_count\", vector.data.PERIOD_STEP_COUNT);\r\n }\r\n if (vector.data.ID_VALIDATOR !== undefined) {\r\n root.att(\"id_validator\", vector.data.ID_VALIDATOR);\r\n }\r\n if (vector.data.ID_MASTER_ENTITY !== undefined) {\r\n root.att(\"id_master_entity\", vector.data.ID_MASTER_ENTITY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.HODNOTA_X !== undefined) {\r\n root.att(\"hodnota_x\", pairVector?.HODNOTA_X);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.HODNOTA_Y !== undefined) {\r\n root.att(\"hodnota_y\", pairVector?.HODNOTA_Y);\r\n }\r\n if (config.exportValues && [EdaVectorType.FifteenMinutes, EdaVectorType.Hour, EdaVectorType.Day, EdaVectorType.Change].includes(vector.data.TYP)) {\r\n resultData.push(...await exportSpecifiedVector(api, vector, config, dateTimeMask, setLoadingState, message));\r\n }\r\n if (config.exportValues && [EdaVectorType.Descriptive, EdaVectorType.Interval].includes(vector.data.TYP)) {\r\n await exportDescriptiveVector(root, api, vector, dateTimeMask, message);\r\n }\r\n if ([EdaVectorType.FifteenMinutesCalc, EdaVectorType.HourCalc, EdaVectorType.DayCalc, EdaVectorType.ChangeCalc].includes(vector.data.TYP)) {\r\n await exportCalcVector(root, api, vector, message);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair) {\r\n await exportPairVector(root, api, vector, config, dateTimeMask, message);\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`vekt_${vector.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nexport async function exportGroup(api: EdaManagerApi, group: GroupData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('skupina', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n root.att(\"meno\", group.data.MENO);\r\n root.att(\"id_skvektor\", group.data.ID_SKVEKTOR);\r\n root.att(\"autor\", group.data.AUTOR);\r\n root.att(\"zobraz_meno\", group.data.ZOBRAZ_MENO);\r\n root.att(\"private\", group.data.PRIVATE);\r\n\r\n if (group.data.POPIS !== undefined) {\r\n root.att(\"popis\", group.data.POPIS);\r\n }\r\n if (group.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", group.data.PRIST_PRAVA_R);\r\n }\r\n if (group.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", group.data.PRIST_PRAVA_W);\r\n }\r\n if (group.data.USERINPUTFLAG !== undefined) {\r\n root.att(\"userinputflag\", group.data.USERINPUTFLAG);\r\n }\r\n\r\n if (config.exportSubgroups) {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading subgroups\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getGroupChildren(group.data.ID_SKVEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubGroup(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getGroupChildren(group.data.ID_SKVEKTOR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubGroup(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading vectors\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getGroupVectors(group.data.ID_SKVEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getGroupVectors(group.data.ID_SKVEKTOR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`skup_${group.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nexport async function exportScenario(api: EdaManagerApi, scenario: ScenarioData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('scenar', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n root.att(\"meno\", scenario.data.MENO);\r\n root.att(\"autor\", scenario.data.AUTOR);\r\n root.att(\"zobraz_meno\", scenario.data.ZOBRAZ_MENO);\r\n root.att(\"private\", scenario.data.PRIVATE);\r\n root.att(\"ano_diagram\", scenario.data.ANO_DIAGRAM);\r\n\r\n if (scenario.data.POPIS !== undefined) {\r\n root.att(\"popis\", scenario.data.POPIS);\r\n }\r\n if (scenario.data.CAS_DLZKA !== undefined) {\r\n root.att(\"cas_dlzka\", scenario.data.CAS_DLZKA);\r\n }\r\n if (scenario.data.CAS_POSUN !== undefined) {\r\n root.att(\"cas_posun\", scenario.data.CAS_POSUN);\r\n }\r\n if (scenario.data.CAS_JEMNOST !== undefined) {\r\n root.att(\"cas_posun\", scenario.data.CAS_JEMNOST);\r\n }\r\n if (scenario.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", scenario.data.PRIST_PRAVA_R);\r\n }\r\n if (scenario.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", scenario.data.PRIST_PRAVA_W);\r\n }\r\n if (scenario.data.FILTER !== undefined) {\r\n root.att(\"filter\", scenario.data.FILTER);\r\n }\r\n if (scenario.data.FILTER_USER !== undefined) {\r\n root.att(\"filter_user\", scenario.data.FILTER_USER);\r\n }\r\n if (scenario.data.FILTER_TYP !== undefined) {\r\n root.att(\"filter_typ\", scenario.data.FILTER_TYP);\r\n }\r\n if (scenario.data.DIAGRAM !== undefined) {\r\n root.att(\"diagram\", scenario.data.DIAGRAM);\r\n }\r\n if (scenario.data.ANO_ZMENA !== undefined) {\r\n root.att(\"ano_zmena\", scenario.data.ANO_ZMENA);\r\n }\r\n if (scenario.data.ANO_GRAFXY !== undefined) {\r\n root.att(\"ano_grafxy\", scenario.data.ANO_GRAFXY);\r\n }\r\n if (scenario.data.ANO_MATICA !== undefined) {\r\n root.att(\"ano_matica\", scenario.data.ANO_MATICA);\r\n }\r\n if (scenario.data.ANO_PAIR !== undefined) {\r\n root.att(\"ano_matica\", scenario.data.ANO_PAIR);\r\n }\r\n\r\n if (config.exportSubgroups) {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading subscenarios\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getScenarioChildren(scenario.data.ID_SCENAR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubScenarios(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getScenarioChildren(scenario.data.ID_SCENAR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubScenarios(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading vectors\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getScenarioVectors(scenario.data.ID_SCENAR, undefined, undefined, true);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getScenarioVectors(scenario.data.ID_SCENAR, offset, undefined, true);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`scenar_${scenario.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nasync function exportCalcVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, message: MessageInstance): Promise<void> {\r\n let data;\r\n\r\n try {\r\n data = await api.loadCalcVectorData(vector.data.ID_VEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n if (data.data.length > 0) {\r\n const prescription = data.data[0];\r\n const element = root.ele(\"predpis\");\r\n\r\n if (prescription.POPIS !== undefined) {\r\n element.att(\"popis\", prescription.POPIS);\r\n }\r\n\r\n element.cdata(data.prescription);\r\n }\r\n}\r\n\r\nasync function exportDescriptiveVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, dateTimeMask: string, message: MessageInstance): Promise<void> {\r\n let data;\r\n\r\n try {\r\n data = await api.loadDescriptiveVectorData(vector.data.ID_VEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n const element = root.ele(\"popis\");\r\n\r\n for (let desc of data.data) {\r\n element.att(\"idx\", desc.IDX);\r\n element.att(\"typ_periody\", desc.TYP_PERIODY);\r\n element.att(\"typ_hodnoty\", desc.TYP_HODNOTY);\r\n element.att(\"hodnota\", desc.HODNOTA);\r\n element.att(\"valid\", desc.VALID);\r\n\r\n if (desc.EDA_ID !== undefined) {\r\n element.att(\"eda_id\", desc.EDA_ID);\r\n }\r\n if (desc.TIME_FROM !== undefined) {\r\n element.att(\"od\", dayjs(desc.TIME_FROM).format(dateTimeMask));\r\n }\r\n if (desc.TIME_TO !== undefined) {\r\n element.att(\"do\", dayjs(desc.TIME_TO).format(dateTimeMask));\r\n }\r\n if (desc.HODNOTA2 !== undefined) {\r\n element.att(\"hodnota2\", desc.HODNOTA2);\r\n }\r\n if (desc.STAV !== undefined) {\r\n element.att(\"stav\", desc.STAV);\r\n }\r\n if (desc.DODATOK_ID !== undefined) {\r\n element.att(\"dodatok_id\", desc.DODATOK_ID);\r\n }\r\n }\r\n}\r\n\r\nasync function exportSpecifiedVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string,\r\n setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const exportInterval = getExportInterval(config.from, config.to, vector.data.DATA_OD !== undefined ? dayjs(vector.data.DATA_OD) : undefined, vector.data.DATA_DO !== undefined ? dayjs(vector.data.DATA_DO) : undefined);\r\n\r\n if (exportInterval === undefined) {\r\n return [];\r\n }\r\n\r\n const result: [string, string][] = [];\r\n const [from, to] = exportInterval;\r\n const years: { start: dayjs.Dayjs, end: dayjs.Dayjs }[] = [];\r\n let current = from;\r\n\r\n while (current.isSameOrBefore(to, \"year\")) {\r\n const yearEnd = current.endOf(\"year\");\r\n\r\n years.push({start: current, end: yearEnd});\r\n current = current.add(1, 'year').startOf('year')\r\n }\r\n\r\n for (const range of years.values()) {\r\n let values: VectorValuesData;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.data.ZOBRAZ_MENO + \" - \" + range.start.year()}));\r\n\r\n try {\r\n values = await api.readVectorValues(vector.data.ID_VEKTOR, range.start, range.end, EdaSamplingType.Default);\r\n } catch (e) {\r\n message.error(String(e));\r\n continue;\r\n }\r\n\r\n const root = create('vektor', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n if (!values.data) {\r\n message.error(i18n(\"No vector data found\"));\r\n continue;\r\n }\r\n\r\n for (let value of values.data) {\r\n const valueElement = root.ele(\"value\");\r\n\r\n valueElement.att(\"time\", dayjs(value.val.valueTime).format(dateTimeMask));\r\n\r\n if (value.val.value !== undefined && value.val.value !== null) {\r\n valueElement.att(\"value\", value.val.value);\r\n }\r\n\r\n if (value.val.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA\", 1);\r\n }\r\n if (value.val.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB\", 1);\r\n }\r\n if (value.val.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC\", 1);\r\n }\r\n if (value.val.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD\", 1);\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''});\r\n result.push([`vekt_${vector.data.MENO}_DATA_${range.start.year()}`, root.end({pretty: true})]);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nasync function exportPairVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, message: MessageInstance): Promise<void> {\r\n const exportInterval = getExportInterval(config.from, config.to, vector.data.DATA_OD !== undefined ? dayjs(vector.data.DATA_OD) : undefined, vector.data.DATA_DO !== undefined ? dayjs(vector.data.DATA_DO) : undefined);\r\n\r\n if (exportInterval === undefined || !config.exportValues) {\r\n return;\r\n }\r\n\r\n let pairData;\r\n\r\n try {\r\n pairData = await api.readPairVectorValues(vector.data.ID_VEKTOR, exportInterval[0], exportInterval[1], EdaSamplingType.Default);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n for (let data of pairData) {\r\n const valueElement = root.ele(\"value\");\r\n\r\n valueElement.att(\"time\", dayjs(data.valX.valueTime).format(dateTimeMask));\r\n\r\n if (data.valX.valueTime !== undefined) {\r\n valueElement.att(\"value_x\", data.valX.value);\r\n\r\n if (data.valX.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD_x\", 1);\r\n }\r\n }\r\n\r\n if (data.valY.valueTime !== undefined) {\r\n valueElement.att(\"value_y\", data.valY.value);\r\n\r\n if (data.valY.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD_y\", 1);\r\n }\r\n }\r\n\r\n if (data.idx.value !== undefined) {\r\n valueElement.att(\"idx\", data.idx.value);\r\n }\r\n }\r\n}\r\n\r\nasync function exportSubGroup(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subgroup;\r\n\r\n root.ele(\"podskupina\", {meno: item.Name});\r\n\r\n try {\r\n subgroup = await api.loadGroupData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subgroup) {\r\n return await exportGroup(api, subgroup, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nasync function exportSubVector(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subVector;\r\n\r\n if (!config.vectorTypes[item.Type as EdaVectorType]) {\r\n return [];\r\n }\r\n\r\n root.ele(\"vektor\", {meno: item.Name});\r\n\r\n try {\r\n subVector = await api.loadVectorData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subVector) {\r\n return await exportVector(api, subVector, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nasync function exportSubScenarios(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subScenario;\r\n\r\n root.ele(\"podscenar\", {meno: item.Name});\r\n\r\n try {\r\n subScenario = await api.loadScenarioData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subScenario) {\r\n return await exportScenario(api, subScenario, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nfunction getExportInterval(bt: dayjs.Dayjs | undefined, et: dayjs.Dayjs | undefined, vectorBt: dayjs.Dayjs | undefined, vectorEt: dayjs.Dayjs | undefined): [dayjs.Dayjs, dayjs.Dayjs] | undefined {\r\n if (vectorBt === undefined || vectorEt === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (bt !== undefined && et !== undefined) {\r\n let start = undefined;\r\n let end = undefined;\r\n\r\n if (bt.isBefore(vectorBt)) {\r\n start = bt;\r\n }\r\n if (et.isAfter(vectorEt)) {\r\n end = bt;\r\n }\r\n\r\n if (start !== undefined && end !== undefined && start.isBefore(end)) {\r\n return [start, end];\r\n }\r\n } else {\r\n return [vectorBt, vectorEt];\r\n }\r\n\r\n return undefined;\r\n}"]}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/utils/export.ts"],"names":[],"mappings":"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","sourcesContent":["import {create, XMLElement} from \"xmlbuilder\";\r\nimport {SD_EM_EDA_PairVector} from \"../../../../api/eda/generated/structures\";\r\nimport {LoadingContextValue} from \"../context/loadingContext\";\r\nimport {EdaSamplingType, EdaVectorType} from \"../constants/edaTypes\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport EdaManagerApi, {GroupData, ScenarioData, TreeItem, VectorData, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {XmlVectorExportConfig} from \"../dialogs/exportDialog\";\r\nimport {MessageInstance} from \"antd/es/message/interface\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ntype LoadingCallback = (value: (((prevState: LoadingContextValue) => LoadingContextValue) | LoadingContextValue)) => void\r\n\r\nexport async function exportVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('vektor', {version: '1.0', encoding: 'UTF-8'});\r\n let pairVector: SD_EM_EDA_PairVector | undefined;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.data.ZOBRAZ_MENO}));\r\n\r\n if (vector.data.TYP === EdaVectorType.Pair) {\r\n try {\r\n const pairVectors = ((await api.loadPairVectorData(vector.data.ID_VEKTOR)).data as SD_EM_EDA_PairVector[]);\r\n pairVector = pairVectors.length > 0 ? pairVectors[0] : undefined;\r\n } catch (e) {\r\n message.error(String(e));\r\n }\r\n }\r\n\r\n root.att(\"meno\", vector.data.MENO);\r\n root.att(\"id_vektor\", vector.data.ID_VEKTOR);\r\n root.att(\"typ\", vector.data.TYP);\r\n root.att(\"autor\", vector.data.AUTOR);\r\n root.att(\"private\", vector.data.PRIVATE);\r\n root.att(\"integral\", vector.data.INTEGRAL);\r\n root.att(\"zobraz_meno\", vector.data.ZOBRAZ_MENO);\r\n root.att(\"view_round\", vector.data.VIEW_ROUND);\r\n root.att(\"exec_round\", vector.data.EXEC_ROUND);\r\n root.att(\"view_dec_pl\", vector.data.VIEW_DEC_PL);\r\n root.att(\"exec_dec_pl\", vector.data.EXEC_DEC_PL);\r\n\r\n if (vector.data.POPIS !== undefined) {\r\n root.att(\"popis\", vector.data.POPIS);\r\n }\r\n if (vector.data.TYP !== EdaVectorType.Pair && vector.data.TECH_JEDNOTKY !== undefined) {\r\n root.att(\"tech_jednotky\", vector.data.TECH_JEDNOTKY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.TECH_JEDNOTKY !== undefined) {\r\n root.att(\"tech_jednotky\", pairVector?.TECH_JEDNOTKY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.TECH_JEDNOTKY_Y !== undefined) {\r\n root.att(\"tech_jednotky\", pairVector?.TECH_JEDNOTKY_Y);\r\n }\r\n if (vector.data.TYP_HODNOTY !== undefined) {\r\n root.att(\"typ_hodnoty\", vector.data.TYP_HODNOTY);\r\n }\r\n if (vector.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", vector.data.PRIST_PRAVA_R);\r\n }\r\n if (vector.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", vector.data.PRIST_PRAVA_W);\r\n }\r\n if (vector.data.MENOEX !== \".\") {\r\n root.att(\"menoex\", vector.data.MENOEX);\r\n }\r\n if (vector.data.TIME_ZONE !== undefined) {\r\n root.att(\"time_zone_offset\", vector.data.TIME_ZONE);\r\n }\r\n if (vector.data.USER_CH !== undefined) {\r\n root.att(\"user_ch\", vector.data.USER_CH);\r\n }\r\n if (vector.data.DATA_OFFSET !== undefined) {\r\n root.att(\"data_offset\", vector.data.DATA_OFFSET);\r\n }\r\n if (vector.data.ID_TABLESPACE !== undefined) {\r\n root.att(\"id_tablespace\", vector.data.ID_TABLESPACE);\r\n }\r\n if (vector.data.VERSIONED_SINCE !== undefined) {\r\n root.att(\"versioned_since\", vector.data.VERSIONED_SINCE);\r\n }\r\n if (vector.data.ARCHIVE_NAME !== undefined) {\r\n root.att(\"archive_name\", vector.data.ARCHIVE_NAME);\r\n }\r\n if (vector.data.ARCHIVE_ROW !== undefined) {\r\n root.att(\"archive_row\", vector.data.ARCHIVE_ROW);\r\n }\r\n if (vector.data.ARCHIVE_COL !== undefined) {\r\n root.att(\"archive_col\", vector.data.ARCHIVE_COL);\r\n }\r\n if (vector.data.STATUS_TEXT !== undefined) {\r\n root.att(\"status_text\", vector.data.STATUS_TEXT);\r\n }\r\n if (vector.data.LOG_ACCESS !== undefined) {\r\n root.att(\"log_access\", vector.data.LOG_ACCESS);\r\n }\r\n if (vector.data.INTERVAL_STABLE !== undefined) {\r\n root.att(\"interval_stable\", vector.data.INTERVAL_STABLE);\r\n }\r\n if (vector.data.PERIOD_BEGIN_TIME !== undefined) {\r\n root.att(\"period_begin_time\", dayjs(vector.data.PERIOD_BEGIN_TIME).format(dateTimeMask));\r\n }\r\n if (vector.data.PERIOD_STEP_BASE !== undefined) {\r\n root.att(\"period_step_base\", vector.data.PERIOD_STEP_BASE);\r\n }\r\n if (vector.data.PERIOD_STEP_COUNT !== undefined) {\r\n root.att(\"period_step_count\", vector.data.PERIOD_STEP_COUNT);\r\n }\r\n if (vector.data.ID_VALIDATOR !== undefined) {\r\n root.att(\"id_validator\", vector.data.ID_VALIDATOR);\r\n }\r\n if (vector.data.ID_MASTER_ENTITY !== undefined) {\r\n root.att(\"id_master_entity\", vector.data.ID_MASTER_ENTITY);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.HODNOTA_X !== undefined) {\r\n root.att(\"hodnota_x\", pairVector?.HODNOTA_X);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair && pairVector?.HODNOTA_Y !== undefined) {\r\n root.att(\"hodnota_y\", pairVector?.HODNOTA_Y);\r\n }\r\n if (config.exportValues && [EdaVectorType.FifteenMinutes, EdaVectorType.Hour, EdaVectorType.Day, EdaVectorType.Change].includes(vector.data.TYP)) {\r\n resultData.push(...await exportSpecifiedVector(api, vector, config, dateTimeMask, setLoadingState, message));\r\n }\r\n if (config.exportValues && [EdaVectorType.Descriptive, EdaVectorType.Interval].includes(vector.data.TYP)) {\r\n await exportDescriptiveVector(root, api, vector, dateTimeMask, message);\r\n }\r\n if ([EdaVectorType.FifteenMinutesCalc, EdaVectorType.HourCalc, EdaVectorType.DayCalc, EdaVectorType.ChangeCalc].includes(vector.data.TYP)) {\r\n await exportCalcVector(root, api, vector, message);\r\n }\r\n if (vector.data.TYP === EdaVectorType.Pair) {\r\n await exportPairVector(root, api, vector, config, dateTimeMask, message);\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`vekt_${vector.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nexport async function exportGroup(api: EdaManagerApi, group: GroupData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('skupina', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n root.att(\"meno\", group.data.MENO);\r\n root.att(\"id_skvektor\", group.data.ID_SKVEKTOR);\r\n root.att(\"autor\", group.data.AUTOR);\r\n root.att(\"zobraz_meno\", group.data.ZOBRAZ_MENO);\r\n root.att(\"private\", group.data.PRIVATE);\r\n\r\n if (group.data.POPIS !== undefined) {\r\n root.att(\"popis\", group.data.POPIS);\r\n }\r\n if (group.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", group.data.PRIST_PRAVA_R);\r\n }\r\n if (group.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", group.data.PRIST_PRAVA_W);\r\n }\r\n if (group.data.USERINPUTFLAG !== undefined) {\r\n root.att(\"userinputflag\", group.data.USERINPUTFLAG);\r\n }\r\n\r\n if (config.exportSubgroups) {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading subgroups\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getGroupChildren(group.data.ID_SKVEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubGroup(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getGroupChildren(group.data.ID_SKVEKTOR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubGroup(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading vectors\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getGroupVectors(group.data.ID_SKVEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getGroupVectors(group.data.ID_SKVEKTOR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`skup_${group.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nexport async function exportScenario(api: EdaManagerApi, scenario: ScenarioData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const resultData: [string, string][] = [];\r\n const root = create('scenar', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n root.att(\"meno\", scenario.data.MENO);\r\n root.att(\"autor\", scenario.data.AUTOR);\r\n root.att(\"zobraz_meno\", scenario.data.ZOBRAZ_MENO);\r\n root.att(\"private\", scenario.data.PRIVATE);\r\n root.att(\"ano_diagram\", scenario.data.ANO_DIAGRAM);\r\n\r\n if (scenario.data.POPIS !== undefined) {\r\n root.att(\"popis\", scenario.data.POPIS);\r\n }\r\n if (scenario.data.CAS_DLZKA !== undefined) {\r\n root.att(\"cas_dlzka\", scenario.data.CAS_DLZKA);\r\n }\r\n if (scenario.data.CAS_POSUN !== undefined) {\r\n root.att(\"cas_posun\", scenario.data.CAS_POSUN);\r\n }\r\n if (scenario.data.CAS_JEMNOST !== undefined) {\r\n root.att(\"cas_posun\", scenario.data.CAS_JEMNOST);\r\n }\r\n if (scenario.data.PRIST_PRAVA_R !== undefined) {\r\n root.att(\"prist_prava_r\", scenario.data.PRIST_PRAVA_R);\r\n }\r\n if (scenario.data.PRIST_PRAVA_W !== undefined) {\r\n root.att(\"prist_prava_w\", scenario.data.PRIST_PRAVA_W);\r\n }\r\n if (scenario.data.FILTER !== undefined) {\r\n root.att(\"filter\", scenario.data.FILTER);\r\n }\r\n if (scenario.data.FILTER_USER !== undefined) {\r\n root.att(\"filter_user\", scenario.data.FILTER_USER);\r\n }\r\n if (scenario.data.FILTER_TYP !== undefined) {\r\n root.att(\"filter_typ\", scenario.data.FILTER_TYP);\r\n }\r\n if (scenario.data.DIAGRAM !== undefined) {\r\n root.att(\"diagram\", scenario.data.DIAGRAM);\r\n }\r\n if (scenario.data.ANO_ZMENA !== undefined) {\r\n root.att(\"ano_zmena\", scenario.data.ANO_ZMENA);\r\n }\r\n if (scenario.data.ANO_GRAFXY !== undefined) {\r\n root.att(\"ano_grafxy\", scenario.data.ANO_GRAFXY);\r\n }\r\n if (scenario.data.ANO_MATICA !== undefined) {\r\n root.att(\"ano_matica\", scenario.data.ANO_MATICA);\r\n }\r\n if (scenario.data.ANO_PAIR !== undefined) {\r\n root.att(\"ano_matica\", scenario.data.ANO_PAIR);\r\n }\r\n\r\n if (config.exportSubgroups) {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading subscenarios\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getScenarioChildren(scenario.data.ID_SCENAR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubScenarios(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getScenarioChildren(scenario.data.ID_SCENAR, offset);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubScenarios(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n {\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 0, loadingItem: i18n(\"Loading vectors\")}));\r\n\r\n let offset = 0;\r\n let totalItems = 0;\r\n let firstPage;\r\n\r\n try {\r\n firstPage = await api.getScenarioVectors(scenario.data.ID_SCENAR, undefined, undefined, true);\r\n } catch (e) {\r\n message.error(String(e));\r\n return [];\r\n }\r\n\r\n for (let item of firstPage.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n if (firstPage.leftCount > 0) {\r\n totalItems = firstPage.items.length + firstPage.leftCount;\r\n offset += firstPage.items.length;\r\n\r\n while (offset < totalItems) {\r\n let page;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (offset / totalItems) * 100}));\r\n\r\n try {\r\n page = await api.getScenarioVectors(scenario.data.ID_SCENAR, offset, undefined, true);\r\n } catch (e) {\r\n message.error(String(e));\r\n break;\r\n }\r\n\r\n for (let item of page.items) {\r\n resultData.push(...await exportSubVector(api, item, root, config, dateTimeMask, setLoadingState, message));\r\n }\r\n\r\n offset += page.items.length;\r\n }\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''})\r\n resultData.push([`scenar_${scenario.data.MENO}`, root.end({pretty: true})]);\r\n return resultData;\r\n}\r\n\r\nasync function exportCalcVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, message: MessageInstance): Promise<void> {\r\n let data;\r\n\r\n try {\r\n data = await api.loadCalcVectorData(vector.data.ID_VEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n if (data.data.length > 0) {\r\n const prescription = data.data[0];\r\n const element = root.ele(\"predpis\");\r\n\r\n if (prescription.POPIS !== undefined) {\r\n element.att(\"popis\", prescription.POPIS);\r\n }\r\n\r\n element.cdata(data.prescription);\r\n }\r\n}\r\n\r\nasync function exportDescriptiveVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, dateTimeMask: string, message: MessageInstance): Promise<void> {\r\n let data;\r\n\r\n try {\r\n data = await api.loadDescriptiveVectorData(vector.data.ID_VEKTOR);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n const element = root.ele(\"popis\");\r\n\r\n for (let desc of data) {\r\n element.att(\"idx\", desc.idx);\r\n element.att(\"typ_periody\", desc.periodType);\r\n element.att(\"typ_hodnoty\", desc.valueType);\r\n element.att(\"hodnota\", desc.value);\r\n element.att(\"valid\", desc.valid);\r\n\r\n // if (desc.id !== undefined) {\r\n // element.att(\"eda_id\", desc.id);\r\n // }\r\n if (desc.timeFrom !== undefined) {\r\n element.att(\"od\", dayjs(desc.timeFrom).format(dateTimeMask));\r\n }\r\n if (desc.timeTo !== undefined) {\r\n element.att(\"do\", dayjs(desc.timeTo).format(dateTimeMask));\r\n }\r\n if (desc.value2 !== undefined) {\r\n element.att(\"hodnota2\", desc.value2);\r\n }\r\n if (desc.status !== undefined) {\r\n element.att(\"stav\", desc.status);\r\n }\r\n if (desc.supplement !== undefined) {\r\n element.att(\"dodatok_id\", desc.supplement);\r\n }\r\n }\r\n}\r\n\r\nasync function exportSpecifiedVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string,\r\n setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n const exportInterval = getExportInterval(config.from, config.to, vector.data.DATA_OD !== undefined ? dayjs(vector.data.DATA_OD) : undefined, vector.data.DATA_DO !== undefined ? dayjs(vector.data.DATA_DO) : undefined);\r\n\r\n if (exportInterval === undefined) {\r\n return [];\r\n }\r\n\r\n const result: [string, string][] = [];\r\n const [from, to] = exportInterval;\r\n const years: { start: dayjs.Dayjs, end: dayjs.Dayjs }[] = [];\r\n let current = from;\r\n\r\n while (current.isSameOrBefore(to, \"year\")) {\r\n const yearEnd = current.endOf(\"year\");\r\n\r\n years.push({start: current, end: yearEnd});\r\n current = current.add(1, 'year').startOf('year')\r\n }\r\n\r\n for (const range of years.values()) {\r\n let values: VectorValuesData;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.data.ZOBRAZ_MENO + \" - \" + range.start.year()}));\r\n\r\n try {\r\n values = await api.readVectorValues(vector.data.ID_VEKTOR, range.start, range.end, EdaSamplingType.Default);\r\n } catch (e) {\r\n message.error(String(e));\r\n continue;\r\n }\r\n\r\n const root = create('vektor', {version: '1.0', encoding: 'UTF-8'});\r\n\r\n if (!values.data) {\r\n message.error(i18n(\"No vector data found\"));\r\n continue;\r\n }\r\n\r\n for (let value of values.data) {\r\n const valueElement = root.ele(\"value\");\r\n\r\n valueElement.att(\"time\", dayjs(value.val.valueTime).format(dateTimeMask));\r\n\r\n if (value.val.value !== undefined && value.val.value !== null) {\r\n valueElement.att(\"value\", value.val.value);\r\n }\r\n\r\n if (value.val.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA\", 1);\r\n }\r\n if (value.val.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB\", 1);\r\n }\r\n if (value.val.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC\", 1);\r\n }\r\n if (value.val.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD\", 1);\r\n }\r\n }\r\n\r\n root.dtd({pubID: ''});\r\n result.push([`vekt_${vector.data.MENO}_DATA_${range.start.year()}`, root.end({pretty: true})]);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nasync function exportPairVector(root: XMLElement, api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, message: MessageInstance): Promise<void> {\r\n const exportInterval = getExportInterval(config.from, config.to, vector.data.DATA_OD !== undefined ? dayjs(vector.data.DATA_OD) : undefined, vector.data.DATA_DO !== undefined ? dayjs(vector.data.DATA_DO) : undefined);\r\n\r\n if (exportInterval === undefined || !config.exportValues) {\r\n return;\r\n }\r\n\r\n let pairData;\r\n\r\n try {\r\n pairData = await api.readPairVectorValues(vector.data.ID_VEKTOR, exportInterval[0], exportInterval[1], EdaSamplingType.Default);\r\n } catch (e) {\r\n message.error(String(e));\r\n return;\r\n }\r\n\r\n for (let data of pairData) {\r\n const valueElement = root.ele(\"value\");\r\n\r\n valueElement.att(\"time\", dayjs(data.valX.valueTime).format(dateTimeMask));\r\n\r\n if (data.valX.valueTime !== undefined) {\r\n valueElement.att(\"value_x\", data.valX.value);\r\n\r\n if (data.valX.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC_x\", 1);\r\n }\r\n if (data.valX.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD_x\", 1);\r\n }\r\n }\r\n\r\n if (data.valY.valueTime !== undefined) {\r\n valueElement.att(\"value_y\", data.valY.value);\r\n\r\n if (data.valY.flags?.includes(\"A\")) {\r\n valueElement.att(\"flagA_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"B\")) {\r\n valueElement.att(\"flagB_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"C\")) {\r\n valueElement.att(\"flagC_y\", 1);\r\n }\r\n if (data.valY.flags?.includes(\"D\")) {\r\n valueElement.att(\"flagD_y\", 1);\r\n }\r\n }\r\n\r\n if (data.idx.value !== undefined) {\r\n valueElement.att(\"idx\", data.idx.value);\r\n }\r\n }\r\n}\r\n\r\nasync function exportSubGroup(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subgroup;\r\n\r\n root.ele(\"podskupina\", {meno: item.Name});\r\n\r\n try {\r\n subgroup = await api.loadGroupData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subgroup) {\r\n return await exportGroup(api, subgroup, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nasync function exportSubVector(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subVector;\r\n\r\n if (!config.vectorTypes[item.Type as EdaVectorType]) {\r\n return [];\r\n }\r\n\r\n root.ele(\"vektor\", {meno: item.Name});\r\n\r\n try {\r\n subVector = await api.loadVectorData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subVector) {\r\n return await exportVector(api, subVector, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nasync function exportSubScenarios(api: EdaManagerApi, item: TreeItem, root: XMLElement, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]> {\r\n let subScenario;\r\n\r\n root.ele(\"podscenar\", {meno: item.Name});\r\n\r\n try {\r\n subScenario = await api.loadScenarioData(item.ID!);\r\n } catch (e) {\r\n message.error(String(e));\r\n console.error(e);\r\n return [];\r\n }\r\n\r\n if (subScenario) {\r\n return await exportScenario(api, subScenario, config, dateTimeMask, setLoadingState, message);\r\n }\r\n\r\n return [];\r\n}\r\n\r\nfunction getExportInterval(bt: dayjs.Dayjs | undefined, et: dayjs.Dayjs | undefined, vectorBt: dayjs.Dayjs | undefined, vectorEt: dayjs.Dayjs | undefined): [dayjs.Dayjs, dayjs.Dayjs] | undefined {\r\n if (vectorBt === undefined || vectorEt === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (bt !== undefined && et !== undefined) {\r\n let start = undefined;\r\n let end = undefined;\r\n\r\n if (bt.isBefore(vectorBt)) {\r\n start = bt;\r\n }\r\n if (et.isAfter(vectorEt)) {\r\n end = bt;\r\n }\r\n\r\n if (start !== undefined && end !== undefined && start.isBefore(end)) {\r\n return [start, end];\r\n }\r\n } else {\r\n return [vectorBt, vectorEt];\r\n }\r\n\r\n return undefined;\r\n}"]}
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ import { SelectProps } from "antd";
3
+ import { AdvancedFilterApi, AdvancedFilterCondition } from "../../../api/advancedFilterApi";
4
+ import Entity from "../../../api/types/entity";
5
+ import AbstractEntityApi from "../../../api/abstractEntityApi";
6
+ import { SelectedEntity } from "./abstractSelect";
7
+ export interface AbstractMultiSelectProps<T extends Entity> extends SelectProps {
8
+ api: AbstractEntityApi<T>;
9
+ advancedFilterApi: AdvancedFilterApi;
10
+ value: SelectedEntity[];
11
+ filterConditions?: AdvancedFilterCondition[];
12
+ onChange(value: T[]): void;
13
+ }
14
+ interface AbstractMultiSelectSelectState<T extends Entity> {
15
+ selectDialogOpen: boolean;
16
+ loading: boolean;
17
+ options: T[];
18
+ }
19
+ export default abstract class AbstractMultiSelect<T extends Entity, P extends AbstractMultiSelectProps<T>, S extends AbstractMultiSelectSelectState<T> = AbstractMultiSelectSelectState<T>> extends React.Component<P, S> {
20
+ constructor(props: Readonly<P>);
21
+ protected initialState: AbstractMultiSelectSelectState<T>;
22
+ private getFilterConditionForCode;
23
+ private getFilterConditionForName;
24
+ private getFilterConditions;
25
+ onLoadData(searchString?: string): Promise<void>;
26
+ protected getData(filterConditions: AdvancedFilterCondition[]): Promise<import("../../../api/abstractEntityApi").PageableList<T>>;
27
+ private showCancelButton;
28
+ protected getSuffixIcon(): React.ReactNode;
29
+ abstract renderSelectDialog(): React.ReactNode;
30
+ render(): React.JSX.Element;
31
+ }
32
+ export {};
@@ -0,0 +1,126 @@
1
+ import React from "react";
2
+ import { Select, Spin } from "antd";
3
+ import { AdvancedFilterLogicalOperator, AdvancedFilterOperator } from "../../../api/advancedFilterApi";
4
+ import AdvancedFilterUtils from "../advancedFilter/advancedFilterUtils";
5
+ import { GeneralEntityColumn, getStringAdvancedFilterColumn } from "../advancedFilter/advancedFilterColumnDefinitions";
6
+ import debounce from "lodash/debounce";
7
+ import { CloseCircleOutlined, LoadingOutlined, SelectOutlined } from "@ant-design/icons";
8
+ import { ERROR_COLOR } from "../../../api/constants/constants";
9
+ import i18n from "d2core/i18n/i18n";
10
+ import ColorTag from "../colorTag/colorTag";
11
+ export default class AbstractMultiSelect extends React.Component {
12
+ constructor(props) {
13
+ super(props);
14
+ this.initialState = {
15
+ selectDialogOpen: false,
16
+ loading: false,
17
+ options: [],
18
+ };
19
+ this.onLoadData = debounce(this.onLoadData.bind(this), 250);
20
+ }
21
+ getFilterConditionForCode(searchString) {
22
+ return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), {
23
+ operator: AdvancedFilterOperator.LIKE,
24
+ value: `%${searchString ?? ""}%`,
25
+ });
26
+ }
27
+ getFilterConditionForName(searchString) {
28
+ return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), {
29
+ operator: AdvancedFilterOperator.LIKE,
30
+ value: `%${searchString ?? ""}%`,
31
+ });
32
+ }
33
+ getFilterConditions(searchString) {
34
+ const filterConditionForCode = this.getFilterConditionForCode(searchString);
35
+ filterConditionForCode.left_par = 1;
36
+ filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;
37
+ const filterConditionForName = this.getFilterConditionForName(searchString);
38
+ filterConditionForName.right_par = 1;
39
+ return [
40
+ filterConditionForCode,
41
+ filterConditionForName,
42
+ ];
43
+ }
44
+ async onLoadData(searchString) {
45
+ this.setState({ loading: true });
46
+ const filterConditions = this.getFilterConditions(searchString);
47
+ if (this.props.filterConditions) {
48
+ filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;
49
+ filterConditions.push(...this.props.filterConditions);
50
+ }
51
+ const pageableList = await this.getData(filterConditions);
52
+ this.setState({ options: pageableList.data, loading: false });
53
+ }
54
+ async getData(filterConditions) {
55
+ return await this.props.api.getAllData(0, 10, "", filterConditions, true);
56
+ }
57
+ showCancelButton() {
58
+ return this.props.value.length > 0;
59
+ }
60
+ getSuffixIcon() {
61
+ if (this.state.loading) {
62
+ return React.createElement(LoadingOutlined, null);
63
+ }
64
+ else {
65
+ return (React.createElement(React.Fragment, null,
66
+ this.showCancelButton() &&
67
+ React.createElement(CloseCircleOutlined, { style: { color: ERROR_COLOR }, title: i18n("Cancel Selected Entity"), onClick: () => {
68
+ this.props.onChange([]);
69
+ } }),
70
+ React.createElement(SelectOutlined, { title: i18n("Open Select Dialog"), onClick: () => {
71
+ this.setState({ selectDialogOpen: true });
72
+ } })));
73
+ }
74
+ }
75
+ render() {
76
+ const { disabled, value, onChange, api, advancedFilterApi, filterConditions, ...rest } = this.props;
77
+ return (React.createElement("div", { onDoubleClick: () => {
78
+ if (!disabled && !this.state.selectDialogOpen) {
79
+ this.setState({ selectDialogOpen: true });
80
+ }
81
+ } },
82
+ this.renderSelectDialog(),
83
+ React.createElement(Select, { disabled: disabled, style: { width: "100%" }, labelInValue: true, filterOption: false, mode: "multiple", maxTagCount: "responsive", notFoundContent: this.state.loading
84
+ ?
85
+ React.createElement("div", { style: { textAlign: "center" } },
86
+ React.createElement(Spin, { indicator: React.createElement(LoadingOutlined, { spin: true }), spinning: true }))
87
+ :
88
+ null, value: value.map(value => {
89
+ return {
90
+ value: value.id,
91
+ label: React.createElement("span", null,
92
+ value.code,
93
+ (value.code && value.name) ? ` (${value.name})` : value.name)
94
+ };
95
+ }), loading: this.state.loading, onChange: (newValue) => {
96
+ const selectedIds = new Set(newValue.map(opt => opt.value));
97
+ const allKnownEntities = [...this.state.options, ...this.props.value];
98
+ const seen = new Set();
99
+ onChange(allKnownEntities.filter(e => {
100
+ if (seen.has(e.id) || !selectedIds.has(e.id))
101
+ return false;
102
+ seen.add(e.id);
103
+ return true;
104
+ }));
105
+ }, onFocus: () => {
106
+ this.onLoadData();
107
+ }, onClick: event => {
108
+ if (event.target instanceof HTMLInputElement || event.target instanceof HTMLSpanElement) {
109
+ this.onLoadData();
110
+ }
111
+ }, onSearch: this.onLoadData, options: this.state.options.map(value => {
112
+ return {
113
+ value: value.id,
114
+ code: value.code,
115
+ name: value.name,
116
+ };
117
+ }), optionRender: option => {
118
+ const data = option.data;
119
+ const displayName = data.name ?? "";
120
+ return (React.createElement("div", { style: { display: "flex", justifyContent: "space-between" } },
121
+ data.code && React.createElement(ColorTag, null, data.code),
122
+ React.createElement("div", { title: displayName }, displayName)));
123
+ }, suffixIcon: React.createElement("span", { style: { display: "flex", gap: 4, fontSize: 14, color: "rgba(0, 0, 0, 0.55)" } }, this.getSuffixIcon()), ...rest })));
124
+ }
125
+ }
126
+ //# sourceMappingURL=abstractMultiSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractMultiSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/select/abstractMultiSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {Select, SelectProps, Spin} from \"antd\";\r\nimport {\r\n AdvancedFilterApi,\r\n AdvancedFilterCondition,\r\n AdvancedFilterLogicalOperator,\r\n AdvancedFilterOperator\r\n} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {\r\n GeneralEntityColumn,\r\n getStringAdvancedFilterColumn\r\n} from \"../advancedFilter/advancedFilterColumnDefinitions\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {CloseCircleOutlined, LoadingOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport {ERROR_COLOR} from \"../../../api/constants/constants\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport AbstractEntityApi from \"../../../api/abstractEntityApi\";\r\nimport {SelectedEntity} from \"./abstractSelect\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\n\r\nexport interface AbstractMultiSelectProps<T extends Entity> extends SelectProps {\r\n api: AbstractEntityApi<T>\r\n advancedFilterApi: AdvancedFilterApi\r\n\r\n value: SelectedEntity[]\r\n filterConditions?: AdvancedFilterCondition[]\r\n\r\n onChange(value: T[]): void\r\n}\r\n\r\ninterface AbstractMultiSelectSelectState<T extends Entity> {\r\n selectDialogOpen: boolean\r\n loading: boolean\r\n options: T[]\r\n}\r\n\r\nexport default abstract class AbstractMultiSelect<T extends Entity,\r\n P extends AbstractMultiSelectProps<T>,\r\n S extends AbstractMultiSelectSelectState<T> = AbstractMultiSelectSelectState<T>> extends React.Component<P, S> {\r\n\r\n constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadData = debounce(this.onLoadData.bind(this), 250);\r\n }\r\n\r\n protected initialState: AbstractMultiSelectSelectState<T> = {\r\n selectDialogOpen: false,\r\n loading: false,\r\n options: [],\r\n }\r\n\r\n private getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.CODE), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n }\r\n\r\n private getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n }\r\n\r\n private getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = this.getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = this.getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n }\r\n\r\n async onLoadData(searchString?: string) {\r\n this.setState({loading: true});\r\n\r\n const filterConditions = this.getFilterConditions(searchString);\r\n if (this.props.filterConditions) {\r\n filterConditions[filterConditions.length - 1].logical_operator = AdvancedFilterLogicalOperator.AND;\r\n filterConditions.push(...this.props.filterConditions);\r\n }\r\n\r\n const pageableList = await this.getData(filterConditions);\r\n\r\n this.setState({options: pageableList.data, loading: false});\r\n }\r\n\r\n protected async getData(filterConditions: AdvancedFilterCondition[]) {\r\n return await this.props.api.getAllData(0, 10, \"\", filterConditions, true);\r\n }\r\n\r\n private showCancelButton(): boolean {\r\n return this.props.value.length > 0;\r\n }\r\n\r\n protected getSuffixIcon(): React.ReactNode {\r\n if (this.state.loading) {\r\n return <LoadingOutlined/>;\r\n } else {\r\n return (\r\n <>\r\n {this.showCancelButton() &&\r\n <CloseCircleOutlined\r\n style={{color: ERROR_COLOR}}\r\n title={i18n(\"Cancel Selected Entity\")}\r\n onClick={() => {\r\n this.props.onChange([]);\r\n }}\r\n />\r\n }\r\n <SelectOutlined\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n this.setState({selectDialogOpen: true})\r\n }}\r\n />\r\n </>\r\n );\r\n }\r\n }\r\n\r\n abstract renderSelectDialog(): React.ReactNode;\r\n\r\n render() {\r\n const {\r\n disabled,\r\n value,\r\n onChange,\r\n api,\r\n advancedFilterApi,\r\n filterConditions,\r\n ...rest\r\n } = this.props;\r\n\r\n return (\r\n <div\r\n onDoubleClick={() => {\r\n if (!disabled && !this.state.selectDialogOpen) {\r\n this.setState({selectDialogOpen: true});\r\n }\r\n }}\r\n >\r\n {this.renderSelectDialog()}\r\n <Select\r\n disabled={disabled}\r\n style={{width: \"100%\"}}\r\n labelInValue\r\n filterOption={false}\r\n mode=\"multiple\"\r\n maxTagCount=\"responsive\"\r\n notFoundContent={\r\n this.state.loading\r\n ?\r\n <div style={{textAlign: \"center\"}}>\r\n <Spin indicator={<LoadingOutlined spin/>} spinning/>\r\n </div>\r\n :\r\n null\r\n }\r\n value={\r\n value.map(value => {\r\n return {\r\n value: value.id,\r\n label:\r\n <span>\r\n {value.code}\r\n {(value.code && value.name) ? ` (${value.name})` : value.name}\r\n </span>\r\n }\r\n })\r\n }\r\n loading={this.state.loading}\r\n onChange={(newValue) => {\r\n const selectedIds = new Set((newValue as any[]).map(opt => opt.value));\r\n const allKnownEntities = [...this.state.options, ...this.props.value as unknown as T[]];\r\n const seen = new Set();\r\n onChange(\r\n allKnownEntities.filter(e => {\r\n if (seen.has(e.id) || !selectedIds.has(e.id)) return false;\r\n seen.add(e.id);\r\n return true;\r\n })\r\n );\r\n }}\r\n onFocus={() => {\r\n this.onLoadData();\r\n }}\r\n onClick={event => {\r\n if (event.target instanceof HTMLInputElement || event.target instanceof HTMLSpanElement) {\r\n this.onLoadData();\r\n }\r\n }}\r\n onSearch={this.onLoadData}\r\n options={\r\n this.state.options.map(value => {\r\n return {\r\n value: value.id,\r\n code: value.code,\r\n name: value.name,\r\n }\r\n })\r\n }\r\n optionRender={option => {\r\n const data = option.data;\r\n const displayName = data.name ?? \"\";\r\n\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n {data.code && <ColorTag>{data.code}</ColorTag>}\r\n <div title={displayName}>{displayName}</div>\r\n </div>\r\n )\r\n }}\r\n suffixIcon={\r\n <span style={{display: \"flex\", gap: 4, fontSize: 14, color: \"rgba(0, 0, 0, 0.55)\"}}>\r\n {this.getSuffixIcon()}\r\n </span>\r\n }\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n }\r\n}"]}
@@ -5,9 +5,13 @@ import { RowDoubleClickedEvent, SelectionChangedEvent } from "ag-grid-community"
5
5
  import AbstractEntityApi from "../../../api/abstractEntityApi";
6
6
  import AdvancedFilteredGrid, { AdvancedFilteredGridProps, AdvancedFilteredGridState } from "../advancedFilter/advancedFilteredGrid";
7
7
  import type { ButtonProps } from "antd/es/button/button";
8
+ export interface WithSelected {
9
+ selected?: boolean;
10
+ }
8
11
  export interface AbstractSelectModalDialogProps<T extends Entity> extends AdvancedFilteredGridProps<T> {
9
12
  api: AbstractEntityApi<T>;
10
13
  multiSelect?: boolean;
14
+ preselectedIds?: number[];
11
15
  visible: boolean;
12
16
  initialWidth?: number;
13
17
  initialHeight?: number;
@@ -24,6 +28,7 @@ export default abstract class AbstractSelectModalDialog<T extends Entity, P exte
24
28
  protected adaptLoadedData(data: T[]): void;
25
29
  abstract getIdColumnName(): string;
26
30
  abstract getTitle(): string;
31
+ protected getSelectionColumnDefinition(): DataGridColDef;
27
32
  protected getCodeColumnDefinition(): DataGridColDef;
28
33
  protected getNameColumnDefinition(): DataGridColDef;
29
34
  protected getExtraColumnDefinitions(): DataGridColDef[];