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
@@ -1 +1 @@
1
- {"version":3,"file":"structures.js","sourceRoot":"","sources":["../../../../../api/eda/generated/structures.ts"],"names":[],"mappings":"","sourcesContent":["/******************************************************\r\n * THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT! *\r\n ******************************************************/\r\n\r\n// @ts-ignore\r\nimport {UnixTime} from \"d2core/types/unixTime\";\r\n\r\nexport interface SD_EM_EDA_Scenario {\r\n ID_SCENAR: number;\r\n EDA_ID_SCENAR: number;\r\n MENO: string;\r\n POPIS: string;\r\n IDX: number;\r\n CAS_DLZKA: number;\r\n CAS_POSUN: number;\r\n CAS_JEMNOST: number;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n CESTA: string;\r\n FILTER: string;\r\n FILTER_USER: string;\r\n FILTER_TYP: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n DIAGRAM: number;\r\n ANO_DIAGRAM: number;\r\n ANO_EDITACIA: number;\r\n ANO_ZMENA: number;\r\n ANO_GRAFXY: number;\r\n ANO_MATICA: number;\r\n ANO_PAIR: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_FunctionPrescription {\r\n ID_VEKTOR: number;\r\n POPIS: string;\r\n PLATNOST_OD: UnixTime;\r\n PLATNOST_DO: UnixTime;\r\n}\r\n\r\nexport interface SD_EDA_PairData {\r\n idx: number;\r\n valX: number;\r\n valY: number;\r\n}\r\n\r\nexport interface SD_EDA_VectorData {\r\n val: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_DescriptiveVector {\r\n ID: number;\r\n EDA_ID: number;\r\n IDX: number;\r\n TYP_PERIODY: number;\r\n TIME_FROM: UnixTime;\r\n TIME_TO: UnixTime;\r\n HODNOTA: number;\r\n HODNOTA2: number;\r\n TYP_HODNOTY: number;\r\n STAV: number;\r\n DODATOK_ID: number;\r\n VALID: number;\r\n}\r\n\r\nexport interface SD_EM_Tree_Item {\r\n ID: number;\r\n ParentID: number;\r\n Name: string;\r\n Path: string;\r\n DisplayName: string;\r\n Type: number;\r\n Units: string;\r\n RoundingType: number;\r\n RoundingPlaces: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_VectorEx {\r\n ID_VEKTOR: number;\r\n DATE_IN: UnixTime;\r\n DATE_CH: UnixTime;\r\n}\r\n\r\nexport interface SD_EM_Filter_Condition {\r\n id_condition: number;\r\n id_filter: number;\r\n not_flag: number;\r\n left_par: number;\r\n column_name: string;\r\n operator: string;\r\n value: string;\r\n value_type: number;\r\n right_par: number;\r\n logical_operator: string;\r\n}\r\n\r\nexport interface SD_EM_EDA_Vector {\r\n ID_VEKTOR: number;\r\n ID_SKVEKTOR: number;\r\n ID_FUNKCIA: number;\r\n MENO: string;\r\n POPIS: string;\r\n TECH_JEDNOTKY: string;\r\n TYP_HODNOTY: number;\r\n TYP: number;\r\n DATA_OD: UnixTime;\r\n DATA_DO: UnixTime;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n INTEGRAL: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n VIEW_ROUND: number;\r\n EXEC_ROUND: number;\r\n VIEW_DEC_PL: number;\r\n EXEC_DEC_PL: number;\r\n USER_CH: string;\r\n MENOEX: string;\r\n ID_TABLESPACE: number;\r\n DATA_OFFSET: number;\r\n TIME_ZONE: string;\r\n VERSIONED_SINCE: UnixTime;\r\n ARCHIVE_NAME: string;\r\n ARCHIVE_ROW: number;\r\n ARCHIVE_COL: number;\r\n LOG_ACCESS: number;\r\n STATUS_TEXT: string;\r\n ID_MASTER_ENTITY: number;\r\n INTERVAL_STABLE: number;\r\n PERIOD_BEGIN_TIME: UnixTime;\r\n PERIOD_STEP_BASE: number;\r\n PERIOD_STEP_COUNT: number;\r\n ID_VALIDATOR: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_VectorStats {\r\n Min: number;\r\n Max: number;\r\n Sum: number;\r\n Avg: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_Function {\r\n ID_VEKTOR: number;\r\n TYP: number;\r\n PERIODA: number;\r\n POSUN: number;\r\n PREPOCIT: number;\r\n PREDV_OD: UnixTime;\r\n PREDV_DO: UnixTime;\r\n PRECALC_RQ: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_PairVector {\r\n ID_VEKTOR: number;\r\n ID_SKVEKTOR: number;\r\n ID_FUNKCIA: number;\r\n MENO: string;\r\n POPIS: string;\r\n TECH_JEDNOTKY: string;\r\n TYP_HODNOTY: number;\r\n TYP: number;\r\n DATA_OD: UnixTime;\r\n DATA_DO: UnixTime;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n INTEGRAL: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n VIEW_ROUND: number;\r\n EXEC_ROUND: number;\r\n VIEW_DEC_PL: number;\r\n EXEC_DEC_PL: number;\r\n USER_CH: string;\r\n MENOEX: string;\r\n DATA_OFFSET: number;\r\n ID_TABLESPACE: number;\r\n TECH_JEDNOTKY_Y: string;\r\n HODNOTA_X: string;\r\n HODNOTA_Y: string;\r\n TIME_ZONE: string;\r\n VERSIONED_SINCE: UnixTime;\r\n ARCHIVE_NAME: string;\r\n ARCHIVE_ROW: number;\r\n ARCHIVE_COL: number;\r\n STATUS_TEXT: string;\r\n PERIOD_BEGIN_TIME: UnixTime;\r\n PERIOD_STEP_BASE: number;\r\n PERIOD_STEP_COUNT: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_GroupVector {\r\n ID_SKVEKTOR: number;\r\n EDA_ID_SKVEKTOR: number;\r\n MENO: string;\r\n POPIS: string;\r\n AUTOR: string;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n CESTA: string;\r\n ANO_PLATNY: number;\r\n ZOBRAZ_MENO: string;\r\n PRIVATE: number;\r\n USERINPUTFLAG: number;\r\n ANO_PAIR: number;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"structures.js","sourceRoot":"","sources":["../../../../../api/eda/generated/structures.ts"],"names":[],"mappings":"","sourcesContent":["/******************************************************\r\n * THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT! *\r\n ******************************************************/\r\n\r\n// @ts-ignore\r\nimport {UnixTime} from \"d2core/types/unixTime\";\r\n\r\nexport interface SD_EM_EDA_Scenario {\r\n ID_SCENAR: number;\r\n EDA_ID_SCENAR: number;\r\n MENO: string;\r\n POPIS: string;\r\n IDX: number;\r\n CAS_DLZKA: number;\r\n CAS_POSUN: number;\r\n CAS_JEMNOST: number;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n CESTA: string;\r\n FILTER: string;\r\n FILTER_USER: string;\r\n FILTER_TYP: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n DIAGRAM: number;\r\n ANO_DIAGRAM: number;\r\n ANO_EDITACIA: number;\r\n ANO_ZMENA: number;\r\n ANO_GRAFXY: number;\r\n ANO_MATICA: number;\r\n ANO_PAIR: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_VectorEx {\r\n ID_VEKTOR: number;\r\n DATE_IN: UnixTime;\r\n DATE_CH: UnixTime;\r\n}\r\n\r\nexport interface SD_EDA_DescriptiveData {\r\n parent: number;\r\n idx: number;\r\n periodType: number;\r\n timeFrom: UnixTime;\r\n timeTo: UnixTime;\r\n value: number;\r\n value2: number;\r\n valueType: number;\r\n status: number;\r\n supplement: number;\r\n valid: boolean;\r\n}\r\n\r\nexport interface SD_EM_EDA_Function {\r\n ID_VEKTOR: number;\r\n TYP: number;\r\n PERIODA: number;\r\n POSUN: number;\r\n PREPOCIT: number;\r\n PREDV_OD: UnixTime;\r\n PREDV_DO: UnixTime;\r\n PRECALC_RQ: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_PairVector {\r\n ID_VEKTOR: number;\r\n ID_SKVEKTOR: number;\r\n ID_FUNKCIA: number;\r\n MENO: string;\r\n POPIS: string;\r\n TECH_JEDNOTKY: string;\r\n TYP_HODNOTY: number;\r\n TYP: number;\r\n DATA_OD: UnixTime;\r\n DATA_DO: UnixTime;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n INTEGRAL: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n VIEW_ROUND: number;\r\n EXEC_ROUND: number;\r\n VIEW_DEC_PL: number;\r\n EXEC_DEC_PL: number;\r\n USER_CH: string;\r\n MENOEX: string;\r\n DATA_OFFSET: number;\r\n ID_TABLESPACE: number;\r\n TECH_JEDNOTKY_Y: string;\r\n HODNOTA_X: string;\r\n HODNOTA_Y: string;\r\n TIME_ZONE: string;\r\n VERSIONED_SINCE: UnixTime;\r\n ARCHIVE_NAME: string;\r\n ARCHIVE_ROW: number;\r\n ARCHIVE_COL: number;\r\n STATUS_TEXT: string;\r\n PERIOD_BEGIN_TIME: UnixTime;\r\n PERIOD_STEP_BASE: number;\r\n PERIOD_STEP_COUNT: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_GroupVector {\r\n ID_SKVEKTOR: number;\r\n EDA_ID_SKVEKTOR: number;\r\n MENO: string;\r\n POPIS: string;\r\n AUTOR: string;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n CESTA: string;\r\n ANO_PLATNY: number;\r\n ZOBRAZ_MENO: string;\r\n PRIVATE: number;\r\n USERINPUTFLAG: number;\r\n ANO_PAIR: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_FunctionPrescription {\r\n ID_VEKTOR: number;\r\n POPIS: string;\r\n PLATNOST_OD: UnixTime;\r\n PLATNOST_DO: UnixTime;\r\n}\r\n\r\nexport interface SD_EDA_PairData {\r\n idx: number;\r\n valX: number;\r\n valY: number;\r\n}\r\n\r\nexport interface SD_EDA_DescriptiveData2 {\r\n id: number;\r\n parent: number;\r\n idx: number;\r\n periodType: number;\r\n timeFrom: UnixTime;\r\n timeTo: UnixTime;\r\n value: number;\r\n value2: number;\r\n valueType: number;\r\n status: number;\r\n supplement: number;\r\n valid: boolean;\r\n}\r\n\r\nexport interface SD_EDA_VectorData {\r\n val: number;\r\n}\r\n\r\nexport interface SD_EM_Tree_Item {\r\n ID: number;\r\n ParentID: number;\r\n Name: string;\r\n Path: string;\r\n DisplayName: string;\r\n Type: number;\r\n Units: string;\r\n RoundingType: number;\r\n RoundingPlaces: number;\r\n}\r\n\r\nexport interface SD_EM_Filter_Condition {\r\n id_condition: number;\r\n id_filter: number;\r\n not_flag: number;\r\n left_par: number;\r\n column_name: string;\r\n operator: string;\r\n value: string;\r\n value_type: number;\r\n right_par: number;\r\n logical_operator: string;\r\n}\r\n\r\nexport interface SD_EM_EDA_VectorStats {\r\n Min: number;\r\n Max: number;\r\n Sum: number;\r\n Avg: number;\r\n}\r\n\r\nexport interface SD_EM_EDA_Vector {\r\n ID_VEKTOR: number;\r\n ID_SKVEKTOR: number;\r\n ID_FUNKCIA: number;\r\n MENO: string;\r\n POPIS: string;\r\n TECH_JEDNOTKY: string;\r\n TYP_HODNOTY: number;\r\n TYP: number;\r\n DATA_OD: UnixTime;\r\n DATA_DO: UnixTime;\r\n AUTOR: string;\r\n PRIVATE: number;\r\n PRIST_PRAVA_R: number;\r\n PRIST_PRAVA_W: number;\r\n INTEGRAL: number;\r\n ZOBRAZ_MENO: string;\r\n ANO_PLATNY: number;\r\n VIEW_ROUND: number;\r\n EXEC_ROUND: number;\r\n VIEW_DEC_PL: number;\r\n EXEC_DEC_PL: number;\r\n USER_CH: string;\r\n MENOEX: string;\r\n ID_TABLESPACE: number;\r\n DATA_OFFSET: number;\r\n TIME_ZONE: string;\r\n VERSIONED_SINCE: UnixTime;\r\n ARCHIVE_NAME: string;\r\n ARCHIVE_ROW: number;\r\n ARCHIVE_COL: number;\r\n LOG_ACCESS: number;\r\n STATUS_TEXT: string;\r\n ID_MASTER_ENTITY: number;\r\n INTERVAL_STABLE: number;\r\n PERIOD_BEGIN_TIME: UnixTime;\r\n PERIOD_STEP_BASE: number;\r\n PERIOD_STEP_COUNT: number;\r\n ID_VALIDATOR: number;\r\n}\r\n\r\n"]}
@@ -15,6 +15,9 @@ export interface AdvancedFilterColumnDefinition {
15
15
  valueType: AdvancedFilterValueType;
16
16
  optionList?: AdvancedFilterOptionListItem[];
17
17
  }
18
+ export interface AdvancedFilterColumnContext extends AdvancedFilterColumnDefinition {
19
+ displayName: string;
20
+ }
18
21
  export declare enum AdvancedFilterConditionError {
19
22
  VALUE_REQUIRED = "value_required",
20
23
  LOGICAL_OPERATOR_REQUIRED = "logical_operator_required",
@@ -1 +1 @@
1
- {"version":3,"file":"advancedFilter.js","sourceRoot":"","sources":["../../../../api/types/advancedFilter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,yEAAU,CAAA;IACV,yEAAM,CAAA;IACN,mFAAW,CAAA;IACX,mFAAW,CAAA;IACX,+EAAS,CAAA;IACT,qEAAI,CAAA;AACR,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAaD,MAAM,CAAN,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACpC,iEAAiC,CAAA;IACjC,uFAAuD,CAAA;IACvD,6FAA6D,CAAA;AACjE,CAAC,EAJW,4BAA4B,KAA5B,4BAA4B,QAIvC","sourcesContent":["export enum AdvancedFilterValueType {\r\n STRING = 1,\r\n NUMBER,\r\n STRING_LIST,\r\n NUMBER_LIST,\r\n DATE_TIME,\r\n DATE,\r\n}\r\n\r\nexport interface AdvancedFilterOptionListItem {\r\n value: number | string\r\n title: string\r\n}\r\n\r\nexport interface AdvancedFilterColumnDefinition {\r\n columnName: string\r\n valueType: AdvancedFilterValueType\r\n optionList?: AdvancedFilterOptionListItem[]\r\n}\r\n\r\nexport enum AdvancedFilterConditionError {\r\n VALUE_REQUIRED = \"value_required\",\r\n LOGICAL_OPERATOR_REQUIRED = \"logical_operator_required\",\r\n LOGICAL_OPERATOR_UNNECESSARY = \"logical_operator_unnecessary\",\r\n}"]}
1
+ {"version":3,"file":"advancedFilter.js","sourceRoot":"","sources":["../../../../api/types/advancedFilter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAC/B,yEAAU,CAAA;IACV,yEAAM,CAAA;IACN,mFAAW,CAAA;IACX,mFAAW,CAAA;IACX,+EAAS,CAAA;IACT,qEAAI,CAAA;AACR,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAiBD,MAAM,CAAN,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACpC,iEAAiC,CAAA;IACjC,uFAAuD,CAAA;IACvD,6FAA6D,CAAA;AACjE,CAAC,EAJW,4BAA4B,KAA5B,4BAA4B,QAIvC","sourcesContent":["export enum AdvancedFilterValueType {\r\n STRING = 1,\r\n NUMBER,\r\n STRING_LIST,\r\n NUMBER_LIST,\r\n DATE_TIME,\r\n DATE,\r\n}\r\n\r\nexport interface AdvancedFilterOptionListItem {\r\n value: number | string\r\n title: string\r\n}\r\n\r\nexport interface AdvancedFilterColumnDefinition {\r\n columnName: string\r\n valueType: AdvancedFilterValueType\r\n optionList?: AdvancedFilterOptionListItem[]\r\n}\r\n\r\nexport interface AdvancedFilterColumnContext extends AdvancedFilterColumnDefinition {\r\n displayName: string\r\n}\r\n\r\nexport enum AdvancedFilterConditionError {\r\n VALUE_REQUIRED = \"value_required\",\r\n LOGICAL_OPERATOR_REQUIRED = \"logical_operator_required\",\r\n LOGICAL_OPERATOR_UNNECESSARY = \"logical_operator_unnecessary\",\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"webPushApi.js","sourceRoot":"","sources":["../../../../api/webPush/webPushApi.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAGzC,MAAM,OAAO,UAAW,SAAQ,WAAW;IAGvC,YAAY,KAAe;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,mBAAmB;YAC5B,wBAAwB,EAAE,IAAI;SACjC,EACD,EAAC,IAAI,QAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAClD,CAAC;QAEF,OAAO,SAAS,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAA8B;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,OAAO,CACd;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,kBAAkB;SAC9B,EACD,YAAY,CAAC,QAAQ,EACrB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAC5B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CACjC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAA8B;QACnD,MAAM,IAAI,CAAC,OAAO,CACd;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,oBAAoB;SAChC,EACD,YAAY,CAAC,QAAQ,CACxB,CAAC;IACN,CAAC;CAEJ","sourcesContent":["import AbstractApi from \"../abstractApi\";\r\nimport {D2WebApi, UnivalTypeEnum} from \"d2jsapi\";\r\n\r\nexport class WebPushApi extends AbstractApi {\r\n private eventName: string;\r\n\r\n constructor(d2Api: D2WebApi) {\r\n super(d2Api);\r\n this.eventName = \"E.web_push\";\r\n }\r\n\r\n async getPublicVapidKey(): Promise<string> {\r\n const apiResult = await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"getPublicVapidKey\",\r\n skipCheckErrorParameters: true\r\n },\r\n {type: UnivalTypeEnum.TEXT, returnAs: \"result\"},\r\n );\r\n\r\n return apiResult.result;\r\n }\r\n\r\n async saveSubscription(subscription: PushSubscription) {\r\n const subscriptionJson = JSON.stringify(subscription);\r\n const subscriptionObject = JSON.parse(subscriptionJson);\r\n\r\n await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"saveSubscription\",\r\n },\r\n subscription.endpoint,\r\n subscriptionObject.keys.auth,\r\n subscriptionObject.keys.p256dh,\r\n );\r\n }\r\n\r\n async deleteSubscription(subscription: PushSubscription) {\r\n await this.callRpc(\r\n {\r\n eventName: this.eventName,\r\n rpcName: \"deleteSubscription\",\r\n },\r\n subscription.endpoint,\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"webPushApi.js","sourceRoot":"","sources":["../../../../api/webPush/webPushApi.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAGzC,MAAM,OAAO,UAAW,SAAQ,WAAW;IAGvC,YAAY,KAAe;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,mBAAmB;YAC5B,wBAAwB,EAAE,IAAI;SACjC,EACD,EAAC,IAAI,QAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAClD,CAAC;QAEF,OAAO,SAAS,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAA8B;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,OAAO,CACd;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,kBAAkB;SAC9B,EACD,YAAY,CAAC,QAAQ,EACrB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAC5B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CACjC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAA8B;QACnD,MAAM,IAAI,CAAC,OAAO,CACd;YACI,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,oBAAoB;SAChC,EACD,YAAY,CAAC,QAAQ,CACxB,CAAC;IACN,CAAC;CAEJ","sourcesContent":["import AbstractApi from \"../abstractApi\";\nimport {D2WebApi, UnivalTypeEnum} from \"d2jsapi\";\n\nexport class WebPushApi extends AbstractApi {\n private eventName: string;\n\n constructor(d2Api: D2WebApi) {\n super(d2Api);\n this.eventName = \"E.web_push\";\n }\n\n async getPublicVapidKey(): Promise<string> {\n const apiResult = await this.callRpc(\n {\n eventName: this.eventName,\n rpcName: \"getPublicVapidKey\",\n skipCheckErrorParameters: true\n },\n {type: UnivalTypeEnum.TEXT, returnAs: \"result\"},\n );\n\n return apiResult.result;\n }\n\n async saveSubscription(subscription: PushSubscription) {\n const subscriptionJson = JSON.stringify(subscription);\n const subscriptionObject = JSON.parse(subscriptionJson);\n\n await this.callRpc(\n {\n eventName: this.eventName,\n rpcName: \"saveSubscription\",\n },\n subscription.endpoint,\n subscriptionObject.keys.auth,\n subscriptionObject.keys.p256dh,\n );\n }\n\n async deleteSubscription(subscription: PushSubscription) {\n await this.callRpc(\n {\n eventName: this.eventName,\n rpcName: \"deleteSubscription\",\n },\n subscription.endpoint,\n );\n }\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"webPushUtils.js","sourceRoot":"","sources":["../../../../api/webPush/webPushUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,YAAY;IAE7B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAsB;QACxC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;gBAC7C,IAAI,YAAY,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe;QACxB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ","sourcesContent":["import {WebPushApi} from \"./webPushApi\";\r\n\r\nexport default class WebPushUtils {\r\n\r\n static async initPush(webPushApi: WebPushApi) {\r\n if (navigator.serviceWorker) {\r\n await navigator.serviceWorker.register(\"./push-worker.js\");\r\n this.getSubscription().then(async subscription => {\r\n if (subscription) {\r\n await webPushApi.saveSubscription(subscription);\r\n }\r\n })\r\n } else {\r\n console.warn(\"Service workers or Push API are not supported on this browser/origin\");\r\n }\r\n }\r\n\r\n static async getSubscription(): Promise<PushSubscription | null> {\r\n if (navigator.serviceWorker) {\r\n const registration = await navigator.serviceWorker.ready;\r\n return await registration.pushManager.getSubscription();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"webPushUtils.js","sourceRoot":"","sources":["../../../../api/webPush/webPushUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,YAAY;IAE7B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAsB;QACxC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;gBAC7C,IAAI,YAAY,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe;QACxB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ","sourcesContent":["import {WebPushApi} from \"./webPushApi\";\n\nexport default class WebPushUtils {\n\n static async initPush(webPushApi: WebPushApi) {\n if (navigator.serviceWorker) {\n await navigator.serviceWorker.register(\"./push-worker.js\");\n this.getSubscription().then(async subscription => {\n if (subscription) {\n await webPushApi.saveSubscription(subscription);\n }\n })\n } else {\n console.warn(\"Service workers or Push API are not supported on this browser/origin\");\n }\n }\n\n static async getSubscription(): Promise<PushSubscription | null> {\n if (navigator.serviceWorker) {\n const registration = await navigator.serviceWorker.ready;\n return await registration.pushManager.getSubscription();\n }\n\n return null;\n }\n\n}"]}
@@ -2,6 +2,20 @@
2
2
  "Title[degree]": "Title",
3
3
  "Name[Title]": "Name",
4
4
  "WholeInterval": "Whole Interval",
5
+ "To[Till]": "To",
6
+ "QuarterType_First": "1. Quarter",
7
+ "QuarterType_Second": "2. Quarter",
8
+ "QuarterType_Third": "3. Quarter",
9
+ "QuarterType_Fourth": "4. Quarter",
10
+ "EdaPeriodValueType_Value": "Value",
11
+ "EdaPeriodValueType_CoefficientPlus": "Coefficient Plus",
12
+ "EdaPeriodValueType_CoefficientMul": "Coefficient Mul.",
13
+ "EdaPeriodValueType_Interpolation": "Interpolation",
14
+ "EdaPeriodType_Base": "Basic",
15
+ "EdaPeriodType_Year": "Year",
16
+ "EdaPeriodType_Week": "Week",
17
+ "EdaPeriodType_Day": "Day",
18
+ "EdaPeriodType_Interval": "Interval",
5
19
  "EdaVectorType_FifteenMinutes": "15-minute",
6
20
  "EdaVectorType_Hour": "Hourly",
7
21
  "EdaVectorType_Day": "Daily",
@@ -408,6 +408,68 @@
408
408
  "Loading vectors": "Načítanie vektorov",
409
409
  "Loading subscenarios": "Načítanie podscenárov",
410
410
  "No vector data found": "Nenašli sa žiane hodnoty vektora",
411
+ "Vector Groups": "Skupiny vektorov",
412
+ "Omitted Vector Groups": "Nezaradené skupiny vektorov",
413
+ "Omitted Vectors": "Nezaradené vektory",
414
+ "Omitted Scenarios": "Nezaradené scenáre",
415
+ "Absolute": "Absolútna hodnota",
416
+ "Multiply": "Vynásobiť",
417
+ "Replace": "Nahradiť",
418
+ "In Time": "V čase",
419
+ "Weekdays Only": "Iba pracovné dni",
420
+ "Weekends Only": "Iba víkendy",
421
+ "All Days": "Všetky dni",
422
+ "Replace Value": "Nahradzovaná hodnota",
423
+ "Include vector to scenario": "Zaradiť vektor do scenára",
424
+ "Include vector to group": "Zaradiť vektor do skupiny",
425
+ "Tree": "Strom",
426
+ "Values": "Hodnoty",
427
+ "From %{from} To %{to}": "Od %{from} Do %{to}",
428
+ "%{from} To %{to}": "%{from} až %{to}",
429
+ "Daily From %{from} To %{to}": "Denne Od %{from} Do %{to}",
430
+ "Period Type": "Typ periódy",
431
+ "Period From": "Perióda Od",
432
+ "Period To": "Perióda Do",
433
+ "Value Type": "Typ hodnoty",
434
+ "Parent": "Rodič",
435
+ "Basic (value in every moment)": "Základ (hodnota v každom okamihu)",
436
+ "Quarter of the year (I., II., III, IV.)": "Kvartál v roku (I., II., III., IV.)",
437
+ "Month of the year (January - December)": "Mesiac v roku (Jánuár - December)",
438
+ "Week of the year (1. - 52.)": "Číslo týždňa v roku (1. - 52.)",
439
+ "Date in year (1.1. - 31.12.)": "Dátum v roku (1.1. - 31.12.)",
440
+ "Day in week (Monday - Sunday)": "Deň v týždni (Pondelok - Nedeľa)",
441
+ "Time during the day (00:00 - 23:59)": "Čas počas dňa (00:00 - 23:59)",
442
+ "Valid entry": "Platný záznam",
443
+ "From": "Od",
444
+ "To": "Do",
445
+ "Supplement number": "Číslo dodatku",
446
+ "Change": "Zmeniť",
447
+ "Annual period": "Ročná perióda",
448
+ "On the days": "V dňoch",
449
+ "To[Till]": "Až",
450
+ "June": "Jún",
451
+ "Add after current entry": "Pridať za aktuálny záznam",
452
+ "Add under current entry": "Pridať pod aktuálny záznam",
453
+ "Remove current entry (with subentries)": "Vymazať aktuálny záznam (s podzáznamami)",
454
+ "Remove subentries from current entry": "Vymazať podzáznamy z aktuálneho záznamu",
455
+ "User Selection": "Užívateľský výber",
456
+ "Paging": "Stránkovanie",
457
+ "Hidden vectors": "Skryté vektory",
458
+ "Displayed vectors": "Zobrazené vektory",
459
+ "Maximum number of displayed vectors: %{n}": "Maximálny počet zobrazovaných vektorov: %{n}",
460
+ "QuarterType_First": "1. Kvartál",
461
+ "QuarterType_Second": "2. Kvartál",
462
+ "QuarterType_Third": "3. Kvartál",
463
+ "QuarterType_Fourth": "4. Kvartál",
464
+ "EdaPeriodValueType_Value": "Hodnota",
465
+ "EdaPeriodValueType_CoefficientPlus": "Koeficient Plus",
466
+ "EdaPeriodValueType_CoefficientMul": "Koeficient Krát",
467
+ "EdaPeriodValueType_Interpolation": "Interpolácia",
468
+ "EdaPeriodType_Base": "Základ",
469
+ "EdaPeriodType_Year": "Rok",
470
+ "EdaPeriodType_Week": "Týždeň",
471
+ "EdaPeriodType_Day": "Deň",
472
+ "EdaPeriodType_Interval": "Interval",
411
473
  "EdaVectorType_FifteenMinutes": "15 minútový",
412
474
  "EdaVectorType_Hour": "Hodinový",
413
475
  "EdaVectorType_Day": "Denný",
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { ExtendedDataGridProps, GridConfiguration } from "d2coreui/components/grid/extendedDataGrid";
3
3
  import { DataGridColDef, OnLoadDataCallback } from "d2coreui/components/grid/dataGrid";
4
- import { RowDoubleClickedEvent, RowModelType, SelectionChangedEvent } from "ag-grid-community";
4
+ import { RowDoubleClickedEvent, RowModelType, FirstDataRenderedEvent, SelectionChangedEvent } from "ag-grid-community";
5
5
  import { Closeable } from "../api/abstractEntityApi";
6
6
  import AuditableEntity from "../api/types/auditableEntity";
7
7
  import AdvancedFilteredGrid, { AdvancedFilteredGridProps, AdvancedFilteredGridState } from "./components/advancedFilter/advancedFilteredGrid";
@@ -80,6 +80,7 @@ export declare abstract class AbstractListPanel<T extends AuditableEntity, P ext
80
80
  protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement;
81
81
  renderToolbarButtons(): React.JSX.Element;
82
82
  protected renderControlPanel(): JSX.Element | null;
83
+ protected onFirstDataRendered(event: FirstDataRenderedEvent): void;
83
84
  protected getRowSelection(): "single" | "multiple";
84
85
  protected getRowModelType(): RowModelType;
85
86
  protected getRowData(): T[] | undefined;
@@ -88,6 +88,7 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
88
88
  this.renderDetailPanel = this.renderDetailPanel.bind(this);
89
89
  this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);
90
90
  this.renderControlPanel = this.renderControlPanel.bind(this);
91
+ this.onFirstDataRendered = this.onFirstDataRendered.bind(this);
91
92
  this.renderToolbar = this.renderToolbar.bind(this);
92
93
  }
93
94
  async onLoadData(callback) {
@@ -350,6 +351,9 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
350
351
  renderControlPanel() {
351
352
  return null;
352
353
  }
354
+ onFirstDataRendered(event) {
355
+ event;
356
+ }
353
357
  getRowSelection() {
354
358
  return "multiple";
355
359
  }
@@ -443,7 +447,7 @@ export class AbstractListPanel extends AdvancedFilteredGrid {
443
447
  renderToolbar: this.renderToolbar,
444
448
  }, rowSelection: this.getRowSelection(), getRowStyle: this.getRowStyle, controlPanel: {
445
449
  renderer: this.renderControlPanel
446
- }, noRecordsOverlayRenderer: () => React.createElement("div", null), filterPanel: this.getExtendedDataGridFilterPanel() }))));
450
+ }, noRecordsOverlayRenderer: () => React.createElement("div", null), filterPanel: this.getExtendedDataGridFilterPanel(), onFirstDataRendered: this.onFirstDataRendered }))));
447
451
  }
448
452
  }
449
453
  //# sourceMappingURL=abstractListPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstractListPanel.js","sourceRoot":"","sources":["../../../coreui/abstractListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAA4D,MAAM,2CAA2C,CAAC;AAUrH,OAAO,EAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACzD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EACH,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAkB,MAAM,uCAAuC,CAAC;AAEnF,OAAO,oBAGN,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,6DAA6D,CAAC;AAChG,OAAO,oBAAoB,MAAM,kDAAkD,CAAC;AAEpF,OAAO,wBAAwB,MAAM,4CAA4C,CAAC;AAClF,OAAO,kBAAkB,MAAM,oDAAoD,CAAC;AACpF,OAAO,sBAAsB,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,OAAO,MAAM,mCAAmC,CAAC;AACxD,OAAO,QAAQ,MAAM,gCAAgC,CAAC;AAGtD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,EAAE;IAC5C,OAAO;QACH,eAAe,EAAE,GAAG,CAAA;uCACW,KAAK,CAAC,WAAW;;;SAG/C;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAsC7B,MAAM,OAAgB,iBAKpB,SAAQ,oBAA6B;IAOnC,YAAsB,KAAkB;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,gBAAW,GAA+C,IAAI,CAAC;QAC/D,2BAAsB,GAAqC,IAAI,CAAC;QAChE,uBAAkB,GAAqB,IAAI,CAAC;QAC9C,eAAU,GAAuB,SAAS,CAAC;QAczC,iBAAY,GAA6D;YAC/E,kBAAkB,EAAE,KAAK;YACzB,uBAAuB,EAAE,KAAK;YAC9B,qBAAqB,EAAE,KAAK;YAC5B,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACvC,OAAO,EAAE,KAAK;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,KAAK,EAAE,MAAsB,EAAE,EAAE;oBACtC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,IAAI,YAA6B,CAAC;wBAClC,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;4BACtE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;4BAC1B,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACJ,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;wBACzE,CAAC;wBACD,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;wBAE1E,UAAU,CAAC,GAAG,EAAE;4BACZ,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAC,CAAC,CAAC;4BAErE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gCACjG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gCACrE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;gCACzC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gCACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;4BAChC,CAAC;wBACL,CAAC,EAAE,GAAG,CAAC,CAAC;oBACZ,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;aACJ;YACD,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,KAAK;YAC1B,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,KAAK;YAC9B,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,gBAAgB,EAAE,EAAE;SACvB,CAAA;QAiBS,6BAAwB,GAAsB;YACpD,QAAQ,EAAE,CAAC,CAAC;YACZ,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,wBAAwB,EAAE;YACzC,oBAAoB,EAAE,wBAAwB,EAAE;SACnD,CAAA;QAxEG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IA6CS,KAAK,CAAC,UAAU,CAAC,QAA4B;QACnD,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAES,oBAAoB;QAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE;YAC/D,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IASD,qBAAqB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACzC,CAAC;IAED,2BAA2B,CAAC,aAAsD;QAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,EAAE,GAAG,EAAE;YACzD,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,eAAe;QAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,EAAC,WAAW,EAAE,WAAW,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED,mBAAmB;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,MAAS;QAChB,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,KAAK,EAAC,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAQS,uBAAuB;QAC7B,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IACxC,CAAC;IAES,kBAAkB;QACxB,MAAM,iBAAiB,GAA4B;YAC/C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,IAAI;SACpB,CAAA;QAED,OAAO;YACH,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,iBAAiB,EAAC,CAAC;YACnH,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,iBAAiB,EAAC,CAAC;YAC5G,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,iBAAiB,EAAC,CAAC;YAChH,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,iBAAiB,EAAC,CAAC;YAC9G,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAC,CAAC;SAC3G,CAAA;IACL,CAAC;IAES,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC;YACV,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE;YACnD,kBAAkB,EAAE,KAAK;YACzB,uBAAuB,EAAE,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAES,kBAAkB,CAAC,KAA4B;QACrD,IAAI,CAAC,QAAQ,CAAC;YACV,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,kBAAkB,EAAE,IAAI;YACxB,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAES,0BAA0B;QAChC,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAES,8BAA8B;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,kBAAkB,CAAC,KAA4B;QAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,YAAY,EAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAES,cAAc,CAAC,SAAY;QACjC,SAAS,CAAC;IACd,CAAC;IAES,eAAe;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,gBAAgB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAES,wBAAwB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC;IAC9E,CAAC;IAES,oBAAoB;QAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9C,IAAI,aAAa,GAAkC,MAAM,CAAC;QAC1D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,aAAa,GAAG,QAAQ,CAAC;QAC7B,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,aAAa,GAAG,SAAS,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,aAAa,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAClG,QAAQ,EAAE,iBAAiB,IAAI,aAAa,KAAK,MAAM,EACvD,IAAI,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAC,mBAAmB,OAAE,CAAC,CAAC,CAAC,oBAAC,mBAAmB,OAAE,EACnF,OAAO,EAAE,GAAG,EAAE;gBACV,WAAW,CAAC,MAAM,CAAC;oBACf,IAAI,UAAwB;oBAC5B,KAAK,EAAE,8BAAM,KAAK,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAC,IACrC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,YAAY,CAAC,MAAM,CAAC,CAC9I;oBACP,IAAI,EACA,aAAa,KAAK,QAAQ,CAAC,CAAC;wBACxB,oBAAC,mBAAmB,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG;wBACnD,CAAC;4BACD,oBAAC,mBAAmB,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,aAAa,EAAC,GAAG;oBAC7D,IAAI,EAAE,KAAK,IAAI,EAAE;wBACb,KAAK,MAAM,IAAI,IAAI,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC3E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC;4BACjF,IAAI,CAAC,IAAI,EAAE,CAAC;gCACR,OAAO;4BACX,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;oBACzC,CAAC;iBACJ,CAAC,CAAC;YACP,CAAC,GACH,CACL,CAAC;IACN,CAAC;IAES,0BAA0B;QAChC,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE5D,IAAI,oBAAoB,EAAE,CAAC;YACvB,OAAO,CACH,oBAAC,oBAAoB,IACjB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EACvC,iBAAiB,EAAE,IAAI,CAAC,kCAAkC,EAAE,EAC5D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,GAAG,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAC;gBAChD,CAAC,GACH,CACL,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,QAAQ;QACd,OAAO,MAAM,CAAC,UAAU,IAAI,gBAAgB,CAAC;IACjD,CAAC;IAES,gBAAgB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;QAE3H,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACxC,IAAI,EAAE,oBAAC,YAAY,OAAE,EACrB,OAAO,EAAE,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC,QAAQ,CAAC,EAAC,oBAAoB,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAC,CAAC,CAAC;gBACpG,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,IAAI,EAAC,CAAC,CAAA;gBAClD,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAE,IAAI,EAAC,CAAC,CAAC;oBAC1C,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;oBACrC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC,GACH,CACL,CAAC;IACN,CAAC;IAES,qBAAqB;QAC3B,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC5B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACvC,IAAI,EAAE,oBAAC,kBAAkB,OAAE,EAC3B,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC5B,UAAU,CAAC,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC;oBAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;oBACzD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAC;oBACvE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;wBAClB,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,IAAI,EAAC,CAAC,CAAA;oBAClD,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAE,IAAI,EAAC,CAAC,CAAC;wBAC1C,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBACnC,CAAC;gBACL,CAAC,CAAC,CAAA;YACN,CAAC,GACH,CACL,CAAC;IACN,CAAC;IAES,uBAAuB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;QAE3H,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC3D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,EAC1E,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,oBAAC,eAAe,OAAE,EACxB,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,IAAI,EAAC,CAAC,CAAA;gBAClD,CAAC;qBAAM,CAAC;oBACJ,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAE,CAAC,kBAAkB,EAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC,GACH,CACL,CAAA;IACL,CAAC;IAES,iBAAiB;QACvB,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC9D,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAC/F,IAAI,EAAE,oBAAC,cAAc,OAAE,EACvB,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAC,EAAE,GAAG,EAAE;oBAC3E,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;gBACzC,CAAC,CAAC,CAAC;YACP,CAAC,GACH,CACL,CAAA;IACL,CAAC;IAES,oBAAoB;QAC1B,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;YAE3H,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAClB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,oBAAC,YAAY,OAAE,EACrB,OAAO,EAAE,GAAG,EAAE;oBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC/E,CAAC,GACH,CACL,CAAA;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,uBAAuB;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,mBAAmB;QACzB,OAAO,CACH,oBAAC,MAAM,IACH,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,EACnH,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC;YAC/C,CAAC;YAED,oBAAC,eAAe,OAAE,CACb,CACZ,CAAC;IACN,CAAC;IAES,mBAAmB;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,oBAAoB;QAC1B,OAAO,CACH,oBAAC,MAAM,IACH,KAAK,EAAE,oBAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAC9F,MAAM,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,EAAC,EAC5B,SAAS,EAAC,KAAK,EACf,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,EAAC,uBAAuB,EAAE,KAAK,EAAC,CAAC,CAAA;YACnD,CAAC,EACD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAEvC,IAAI,CAAC,mBAAmB,EAAE,CACtB,CACZ,CAAC;IACN,CAAC;IAES,aAAa,CAAC,iBAAqC;QACzD,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClB,OAAO,CACH;gBACI,oBAAC,OAAO,IACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACpC,YAAY,EAAE,OAAO,CAAC,EAAE;wBACpB,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,OAAO,EAAC,CAAC,CAAA;oBACjD,CAAC,EACD,OAAO,EACH;wBACI,iCAAM,IAAI,CAAC,0BAA0B,EAAE,CAAO;wBAC9C,iCAAM,IAAI,CAAC,gBAAgB,EAAE,CAAO;wBACpC,iCAAM,IAAI,CAAC,oBAAoB,EAAE,CAAO;wBACxC,iCAAM,IAAI,CAAC,iBAAiB,EAAE,CAAO;wBACrC,iCAAM,IAAI,CAAC,oBAAoB,EAAE,CAAO;wBACxC,iCAAM,IAAI,CAAC,uBAAuB,EAAE,CAAO,CAC5C,EAEP,OAAO,EAAC,OAAO;oBAEf,oBAAC,MAAM;wBACH,oBAAC,YAAY,OAAE,CACV,CACH;gBACT,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,uBAAuB,EAAE,CAChC,CACN,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,OAAO;gBACF,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,IAAI,CAAC,oBAAoB,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,oBAAoB,EAAE;gBAC3B,IAAI,CAAC,uBAAuB,EAAE,CAChC,CAAA;QACP,CAAC;IACL,CAAC;IAES,kBAAkB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,eAAe;QACrB,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,eAAe;QACrB,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,WAAW,CAAC,MAAW;QAC7B,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACrB,CAAC;IAIS,aAAa;QACnB,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,4BAA4B;QAChC,OAAO,CACH,oBAAC,WAAW,IACR,SAAS,EAAC,mCAAmC,EAC7C,IAAI,gBACJ,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EACxC,MAAM,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,EAAC,EAC5B,YAAY,EAAE,MAAM,CAAC,UAAU,EAC/B,aAAa,EAAE,MAAM,CAAC,WAAW,EACjC,WAAW,UAEV,IAAI,CAAC,iBAAiB,EAAE,CACf,CACjB,CAAA;IACL,CAAC;IAES,kCAAkC;IAC5C,CAAC;IAES,2BAA2B,CAAC,GAAW,EAAE,KAAU,EAAE,KAAU;QACrE,GAAG,CAAC;QACJ,KAAK,CAAC;QACN,KAAK,CAAC;QACN,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,wBAAwB;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElD,OAAO,CACH,oBAAC,WAAW,IACR,MAAM,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,EAAC,EAC5B,IAAI,gBACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAC3D,KAAK,EAAE,oBAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,IAAI,EAAE,GAAG,EACtF,YAAY,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,EACtC,aAAa,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI;YAExC,oBAAC,sBAAsB,IACnB,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,SAAS,EACzD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EACnB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,IAAI,CAAC,2BAA2B,EAC9C,gBAAgB,EAAE,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,EACvD,kBAAkB,EAAE,IAAI,CAAC,kCAAkC,EAC3D,iBAAiB,EAAE,IAAI,CAAC,2BAA2B,GACrD,CACQ,CACjB,CAAC;IACN,CAAC;IAEO,oBAAoB,CAAC,QAAyB,EAAE,IAAa;QACjE,OAAO;YACH,KAAK,EAAE;gBACF,QAAQ;gBACR,IAAI,IAAI,oBAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAC,IAAG,IAAI,CAAY,CACjF;SACN,CAAA;IACL,CAAC;IAEO,gBAAgB;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,OAAO,CACH,oBAAC,UAAU,IACP,KAAK,EAAE,EAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAC,EAC3D,KAAK,EACD;oBACI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;oBACvG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC;iBACvD,GAEP,CACL,CAAC;QACN,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,iBAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;IACzD,CAAC;IAES,yBAAyB;QAC/B,OAAO;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE;YAClC,EAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAC;SAC9E,CAAA;IACL,CAAC;IAED,MAAM;QACF,OAAO,CACH,6BAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC;YAClE,oBAAC,OAAO,IAAC,SAAS,EAAE,SAAS,IAAG,CAAC,GAAG,EAAE,EAAE,CACpC,6BAAK,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,eAAe,IACrC,IAAI,CAAC,gBAAgB,EAAE,CACtB,CACC;YACX,6BAAK,KAAK,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAC;gBAC7C,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,4BAA4B,EAAE;gBACnC,IAAI,CAAC,oBAAoB,EAAE;gBAC5B,oBAAC,gBAAgB,IACb,eAAe,EAAE;wBACb,SAAS,EAAE,CAAC;qBACf,EACD,UAAU,EAAE;wBACR,UAAU,EAAE,CAAC;qBAChB,EACD,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;wBACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC7B,CAAC,EACD,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,EACzE,qBAAqB,EAAE,iBAAiB,CAAC,EAAE;wBACvC,IAAI,CAAC,2BAA2B,CAAC,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,CAAC,CAAC;oBAC7E,CAAC,EACD,WAAW,EAAE,CAAC,MAAsB,EAAE,EAAE;wBACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;oBAC9B,CAAC,EACD,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,EACpC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,MAAM,EAAE;wBACJ,QAAQ,EAAE,GAAG,EAAE;4BACX,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;wBAC9B,CAAC;wBACD,MAAM,EAAE,IAAI;qBACf,EACD,aAAa,EAAE,GAAG,EAAE;wBAChB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBAC9B,CAAC,EACD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,WAAW,EAAE;wBACT,YAAY,EAAE,IAAI,CAAC,0BAA0B,EAAE;wBAC/C,QAAQ,EAAE,IAAI,CAAC,iBAAiB;qBACnC,EACD,OAAO,EAAE;wBACL,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE;wBAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;qBACpC,EACD,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,EACpC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE;wBACV,QAAQ,EAAE,IAAI,CAAC,kBAAkB;qBACpC,EACD,wBAAwB,EAAE,GAAG,EAAE,CAAC,gCAAM,EACtC,WAAW,EAAE,IAAI,CAAC,8BAA8B,EAAE,GACpD,CACA,CACJ,CACT,CAAA;IACL,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport ExtendedDataGrid, {ExtendedDataGridProps, GridConfiguration} from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\r\nimport {\r\n GridReadyEvent,\r\n IGetRowsParams,\r\n RowDoubleClickedEvent,\r\n RowModelType,\r\n SelectionChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {Closeable, PageableList} from \"../api/abstractEntityApi\";\r\nimport {Breadcrumb, Button, Drawer, Popover} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {\r\n BulbOutlined,\r\n CheckCircleOutlined,\r\n CloseCircleOutlined,\r\n CopyOutlined,\r\n DeleteOutlined,\r\n HistoryOutlined,\r\n MoreOutlined,\r\n PlusCircleOutlined,\r\n ProfileOutlined\r\n} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AuditableEntity from \"../api/types/auditableEntity\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"./components/advancedFilter/advancedFilteredGrid\";\r\nimport {GeneralEntityColumn} from \"./components/advancedFilter/advancedFilterColumnDefinitions\";\r\nimport AdvancedFilterButton from \"./components/advancedFilter/advancedFilterButton\";\r\nimport {PanelConfiguration} from \"../core/types/panelConfiguration\";\r\nimport auditEntityRowStyleRules from \"./components/grid/auditEntityRowStyleRules\";\r\nimport TitleWithCodePanel from \"./components/titleWithCodePanel/titleWithCodePanel\";\r\nimport EntityHistoryListPanel from \"./components/history/entityHistoryListPanel\";\r\nimport {AccessRight} from \"../api/types/accessRight\";\r\nimport {ERROR_COLOR, SUCCESS_COLOR} from \"../api/constants/constants\";\r\nimport AbstractEntityConfigPanel from \"./components/editor/abstractEntityConfigPanel\";\r\nimport {DbBoolean} from \"../api/types/dbBoolean\";\r\nimport {ItemType} from \"antd/es/breadcrumb/Breadcrumb\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport ColorTag from \"./components/colorTag/colorTag\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\n\r\nconst useStyles = createStyles(({css, token}) => {\r\n return {\r\n breadcrumbPanel: css`\r\n border-bottom: 1px solid ${token.colorBorder};\r\n padding: 10px 12px 0;\r\n font-weight: 500;\r\n `\r\n }\r\n});\r\n\r\nexport const DETAIL_PANEL_DEFAULT_WIDTH = 560;\r\nconst MAX_WIDTH_MOBILE = 500;\r\n\r\nexport interface AbstractBreadcrumbItem {\r\n pageName: string\r\n code: string\r\n}\r\n\r\nexport interface AbstractListPanelConfiguration extends PanelConfiguration {\r\n gridConfiguration: GridConfiguration\r\n}\r\n\r\nexport interface AbstractListPanelProps<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridProps<T> {\r\n breadcrumbPath?: AbstractBreadcrumbItem[]\r\n\r\n getConfiguration(initialConfiguration: C): C\r\n\r\n onPanelConfigurationChanged(): void\r\n}\r\n\r\nexport interface AbstractListPanelState<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridState<T> {\r\n panelConfiguration: C\r\n detailPanelVisible: boolean\r\n modalDetailPanelVisible: boolean\r\n deletedRecordsVisible: boolean\r\n historyModalVisible: boolean\r\n dropdownMenuVisible: boolean\r\n waitingForNewEntity: boolean\r\n waitingForEntityCopy: boolean\r\n quickActionsListVisible: boolean\r\n accessRight: AccessRight\r\n}\r\n\r\nexport abstract class AbstractListPanel<\r\n T extends AuditableEntity,\r\n P extends AbstractListPanelProps<T, C>,\r\n S extends AbstractListPanelState<T, C>,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration,\r\n> extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n protected detailPanel: AbstractEntityConfigPanel<any, any> | null = null;\r\n protected entityHistoryListPanel: EntityHistoryListPanel<T> | null = null;\r\n protected refreshListHandler: Closeable | null = null;\r\n private idToSelect: number | undefined = undefined;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onHistoryListPanelSelectionChanged = this.onHistoryListPanelSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.renderToolbar = this.renderToolbar.bind(this);\r\n }\r\n\r\n protected initialState: Omit<AbstractListPanelState<T, C>, \"panelConfiguration\"> = {\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false,\r\n deletedRecordsVisible: false,\r\n historyModalVisible: false,\r\n dropdownMenuVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n loading: false,\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n params.successCallback(pageableList.data, pageableList.totalNumberOfRows);\r\n\r\n setTimeout(() => {\r\n this.setState({selectedData: this.gridApi?.getSelectedRows() ?? []});\r\n\r\n if (this.idToSelect !== undefined && pageableList.data.some(value => value.id === this.idToSelect)) {\r\n const rowNode = this.gridApi?.getRowNode(this.idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n rowNode?.setSelected(true, true);\r\n this.idToSelect = undefined;\r\n }\r\n }, 200);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityCopy: false,\r\n quickActionsListVisible: false,\r\n accessRight: AccessRight.NONE,\r\n filterConditions: [],\r\n }\r\n\r\n protected async onLoadData(callback: OnLoadDataCallback): Promise<void> {\r\n await super.onLoadData(callback);\r\n this.subscribeRefreshList();\r\n }\r\n\r\n protected subscribeRefreshList() {\r\n this.refreshListHandler = this.props.api.subscribeRefreshList(() => {\r\n this.gridApi?.refreshInfiniteCache();\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n this.refreshListHandler?.close();\r\n }\r\n\r\n protected initialGridConfiguration: GridConfiguration = {\r\n pageSize: -1,\r\n columnSearchVisible: true,\r\n rowStyleRules: auditEntityRowStyleRules(),\r\n defaultRowStyleRules: auditEntityRowStyleRules(),\r\n }\r\n\r\n getPanelConfiguration(): AbstractListPanelConfiguration {\r\n return this.state.panelConfiguration;\r\n }\r\n\r\n onPanelConfigurationChanged(configuration: Partial<AbstractListPanelConfiguration>) {\r\n const panelConfiguration = this.state.panelConfiguration;\r\n Object.assign(panelConfiguration, configuration);\r\n this.setState({panelConfiguration: panelConfiguration}, () => {\r\n this.props.onPanelConfigurationChanged();\r\n });\r\n }\r\n\r\n protected async onRecordsLoaded(): Promise<void> {\r\n const accessRight = await this.props.api.getAccessRight();\r\n this.setState({accessRight: accessRight});\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return !this.state.deletedRecordsVisible;\r\n }\r\n\r\n updateGrid(entity: T) {\r\n this.setState({modalDetailPanelVisible: false});\r\n this.idToSelect = entity.id;\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract renderDetailPanel(): React.ReactElement;\r\n\r\n abstract renderDetailPanelForHistory(entity: T | undefined, differences: string[]): React.ReactElement;\r\n\r\n protected focusFieldInDetailPanel(): void {\r\n this.detailPanel?.focusFirstField();\r\n }\r\n\r\n protected getAuditColumnDefs(): DataGridColDef[] {\r\n const auditColumnParams: Partial<DataGridColDef> = {\r\n group: i18n(\"Audit\"),\r\n initialHide: true,\r\n }\r\n\r\n return [\r\n this.getDateTimeColumn(GeneralEntityColumn.CREATE_DATE, {headerName: i18n(\"Date of Insert\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.CREATED_BY, {headerName: i18n(\"Created By\"), ...auditColumnParams}),\r\n this.getDateTimeColumn(GeneralEntityColumn.MODIFY_DATE, {headerName: i18n(\"Modify Date\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.MODIFIED_BY, {headerName: i18n(\"Modified By\"), ...auditColumnParams}),\r\n this.getDbBooleanColumn(GeneralEntityColumn.VALIDITY, {headerName: i18n(\"Valid\"), ...auditColumnParams}),\r\n ]\r\n }\r\n\r\n protected onCloseDetailPanel() {\r\n this.setState({\r\n selectedData: this.gridApi?.getSelectedRows() ?? [],\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false\r\n });\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent) {\r\n this.setState({\r\n selectedData: [event.data],\r\n detailPanelVisible: true,\r\n modalDetailPanelVisible: this.isMobile(),\r\n });\r\n\r\n if (!this.isMobile()) {\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n }\r\n\r\n protected getDetailPanelDefaultWidth(): number {\r\n return DETAIL_PANEL_DEFAULT_WIDTH;\r\n }\r\n\r\n protected getExtendedDataGridFilterPanel(): ExtendedDataGridProps[\"filterPanel\"] | undefined {\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedData: selectedRows});\r\n } else {\r\n this.setState({selectedData: [], detailPanelVisible: false});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n protected adaptNewRecord(newRecord: T) {\r\n newRecord;\r\n }\r\n\r\n protected getDataToDelete() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.TRUE);\r\n }\r\n\r\n protected getDataToRecover() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.FALSE);\r\n }\r\n\r\n protected isValidityChangeDisabled(): boolean {\r\n return this.state.loading || this.state.selectedData[0]?.id === undefined;\r\n }\r\n\r\n protected renderValidityButton(): React.ReactNode | undefined {\r\n const operationDisabled = this.isValidityChangeDisabled();\r\n\r\n const dataToDelete = this.getDataToDelete();\r\n const dataToRecover = this.getDataToRecover();\r\n\r\n let allowedAction: \"delete\" | \"recover\" | \"none\" = \"none\";\r\n if (dataToDelete.length > 0) {\r\n allowedAction = \"delete\";\r\n } else if (dataToRecover.length > 0) {\r\n allowedAction = \"recover\";\r\n } else {\r\n allowedAction = \"none\";\r\n }\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={allowedAction === \"recover\" ? i18n(\"Mark Record As Valid\") : i18n(\"Mark Record As Deleted\")}\r\n disabled={operationDisabled || allowedAction === \"none\"}\r\n icon={allowedAction === \"recover\" ? <CheckCircleOutlined/> : <CloseCircleOutlined/>}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title: <span style={{whiteSpace: \"nowrap\"}}>\r\n {allowedAction === \"recover\" ? i18n(\"Mark %n records as valid?\", dataToRecover.length) : i18n(\"Mark %n records as deleted?\", dataToDelete.length)}\r\n </span>,\r\n icon:\r\n allowedAction === \"delete\" ?\r\n <CloseCircleOutlined style={{color: ERROR_COLOR}}/>\r\n :\r\n <CheckCircleOutlined style={{color: SUCCESS_COLOR}}/>,\r\n onOk: async () => {\r\n for (const data of allowedAction === \"delete\" ? dataToDelete : dataToRecover) {\r\n const isOk = await this.props.api.setValidity(data, allowedAction === \"recover\");\r\n if (!isOk) {\r\n return;\r\n }\r\n }\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderAdvancedFilterButton(): React.ReactNode | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n onMenuItemClicked={() => {\r\n this.setState({dropdownMenuVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected isMobile(): boolean {\r\n return window.innerWidth <= MAX_WIDTH_MOBILE;\r\n }\r\n\r\n protected renderCopyButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Create Copy\")}\r\n disabled={disabled}\r\n loading={this.state.waitingForEntityCopy}\r\n icon={<CopyOutlined/>}\r\n onClick={async () => {\r\n this.setState({waitingForEntityCopy: true});\r\n const newRecord = await this.props.api.createNewEntity(this.state.selectedData[0]);\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], dropdownMenuVisible: false, waitingForEntityCopy: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n setTimeout(() => this.focusFieldInDetailPanel());\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderNewRecordButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"New Record\")}\r\n disabled={this.state.loading}\r\n loading={this.state.waitingForNewEntity}\r\n icon={<PlusCircleOutlined/>}\r\n onClick={() => {\r\n this.gridApi?.deselectAll();\r\n setTimeout(async () => {\r\n this.setState({waitingForNewEntity: true});\r\n const newRecord = await this.props.api.createNewEntity();\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], waitingForNewEntity: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n this.focusFieldInDetailPanel();\r\n }\r\n })\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderDetailPanelButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.detailPanelVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.detailPanelVisible ? \"Hide Detail\" : \"Show Detail\")}\r\n disabled={disabled}\r\n icon={<ProfileOutlined/>}\r\n onClick={() => {\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n const detailPanelVisible = this.state.detailPanelVisible;\r\n this.setState({detailPanelVisible: !detailPanelVisible});\r\n this.dataGrid?.showDetailPanel(!detailPanelVisible);\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderTrashButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.deletedRecordsVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.deletedRecordsVisible ? \"Hide Deleted Records\" : \"Show Deleted Records\")}\r\n icon={<DeleteOutlined/>}\r\n onClick={() => {\r\n this.setState({deletedRecordsVisible: !this.state.deletedRecordsVisible}, () => {\r\n this.gridApi?.refreshInfiniteCache();\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderShortcutButton(): React.ReactNode | undefined {\r\n if (this.renderShortcutPanel()) {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Quick Actions\")}\r\n disabled={disabled}\r\n icon={<BulbOutlined/>}\r\n onClick={() => {\r\n this.setState({quickActionsListVisible: true, dropdownMenuVisible: false});\r\n }}\r\n />\r\n )\r\n }\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalButtons(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderHistoryButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n disabled={this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined}\r\n onClick={() => {\r\n this.setState({historyModalVisible: true});\r\n }}\r\n >\r\n <HistoryOutlined/>\r\n </Button>\r\n );\r\n }\r\n\r\n protected renderShortcutPanel(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderShortcutDrawer() {\r\n return (\r\n <Drawer\r\n title={<TitleWithCodePanel title={this.getPageTitle()} code={this.getBreadcrumbCode() ?? \"\"}/>}\r\n styles={{body: {padding: 0}}}\r\n placement=\"top\"\r\n height={240}\r\n onClose={() => {\r\n this.setState({quickActionsListVisible: false})\r\n }}\r\n open={this.state.quickActionsListVisible}\r\n >\r\n {this.renderShortcutPanel()}\r\n </Drawer>\r\n );\r\n }\r\n\r\n protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement {\r\n return originalSearchBar;\r\n }\r\n\r\n renderToolbarButtons() {\r\n if (this.isMobile()) {\r\n return (\r\n <>\r\n <Popover\r\n open={this.state.dropdownMenuVisible}\r\n onOpenChange={visible => {\r\n this.setState({dropdownMenuVisible: visible})\r\n }}\r\n content={\r\n <>\r\n <div>{this.renderAdvancedFilterButton()}</div>\r\n <div>{this.renderCopyButton()}</div>\r\n <div>{this.renderValidityButton()}</div>\r\n <div>{this.renderTrashButton()}</div>\r\n <div>{this.renderShortcutButton()}</div>\r\n <div>{this.renderAdditionalButtons()}</div>\r\n </>\r\n }\r\n trigger=\"click\"\r\n >\r\n <Button>\r\n <MoreOutlined/>\r\n </Button>\r\n </Popover>\r\n {this.renderNewRecordButton()}\r\n {this.renderDetailPanelButton()}\r\n </>\r\n )\r\n } else {\r\n return <>\r\n {this.renderAdvancedFilterButton()}\r\n {this.renderNewRecordButton()}\r\n {this.renderCopyButton()}\r\n {this.renderDetailPanelButton()}\r\n {this.renderValidityButton()}\r\n {this.renderTrashButton()}\r\n {this.renderHistoryButton()}\r\n {this.renderShortcutButton()}\r\n {this.renderAdditionalButtons()}\r\n </>\r\n }\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected getRowSelection(): \"single\" | \"multiple\" {\r\n return \"multiple\";\r\n }\r\n\r\n protected getRowModelType(): RowModelType {\r\n return \"infinite\";\r\n }\r\n\r\n protected getRowData(): T[] | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getRowStyle(params: any): GridRowStyle | undefined {\r\n params;\r\n return undefined;\r\n }\r\n\r\n abstract getPageTitle(): string\r\n\r\n protected getLoadedData(): T[] {\r\n const data: T[] = [];\r\n this.gridApi?.forEachNode(value => data.push(value.data));\r\n\r\n return data;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n className=\"modal-no-header full-screen-modal\"\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n closable={false}\r\n open={this.state.modalDetailPanelVisible}\r\n styles={{body: {padding: 0}}}\r\n initialWidth={window.innerWidth}\r\n initialHeight={window.innerHeight}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected onHistoryListPanelSelectionChanged() {\r\n }\r\n\r\n protected isEqualCustomizerForHistory(key: string, value: any, other: any): boolean | undefined {\r\n key;\r\n value;\r\n other;\r\n return undefined;\r\n }\r\n\r\n private renderHistoryModalDialog(): React.ReactElement {\r\n const selectedEntity = this.state.selectedData[0];\r\n\r\n return (\r\n <ModalDialog\r\n styles={{body: {padding: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.historyModalVisible}\r\n onCancel={() => this.setState({historyModalVisible: false})}\r\n title={<TitleWithCodePanel title={i18n(\"History\")} code={selectedEntity?.code ?? \"\"}/>}\r\n initialWidth={window.innerWidth * 0.99}\r\n initialHeight={window.innerHeight * 0.95}\r\n >\r\n <EntityHistoryListPanel\r\n ref={component => this.entityHistoryListPanel = component}\r\n api={this.props.api}\r\n entity={selectedEntity}\r\n renderDetail={this.renderDetailPanelForHistory}\r\n detailPanelWidth={this.getDetailPanelDefaultWidth() * 2}\r\n onSelectionChanged={this.onHistoryListPanelSelectionChanged}\r\n isEqualCustomizer={this.isEqualCustomizerForHistory}\r\n />\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n private renderBreadcrumbItem(pageName: React.ReactNode, code?: string): ItemType {\r\n return {\r\n title: <>\r\n {pageName}\r\n {code && <ColorTag style={{margin: \"0 0 0 4px\", fontSize: 14}}>{code}</ColorTag>}\r\n </>,\r\n }\r\n }\r\n\r\n private renderBreadcrumb() {\r\n const pageTitle = this.getPageTitle();\r\n\r\n if (pageTitle) {\r\n const breadcrumbCode = this.getBreadcrumbCode();\r\n return (\r\n <Breadcrumb\r\n style={{paddingBottom: 10, fontSize: 20, overflowX: \"auto\"}}\r\n items={\r\n [\r\n ...this.props.breadcrumbPath?.map(value => this.renderBreadcrumbItem(value.pageName, value.code)) ?? [],\r\n this.renderBreadcrumbItem(pageTitle, breadcrumbCode),\r\n ]\r\n }\r\n />\r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n protected getBreadcrumbCode() {\r\n return this.state.selectedData[0]?.code ?? undefined;\r\n }\r\n\r\n protected getExtendedBreadcrumbPath() {\r\n return [\r\n ...this.props.breadcrumbPath ?? [],\r\n {pageName: this.getPageTitle() ?? \"\", code: this.getBreadcrumbCode() ?? \"\"}\r\n ]\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\"}}>\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <div className={css.styles.breadcrumbPanel}>\r\n {this.renderBreadcrumb()}\r\n </div>\r\n }</WithCss>\r\n <div style={{position: \"relative\", height: \"100%\"}}>\r\n {this.renderHistoryModalDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n {this.renderShortcutDrawer()}\r\n <ExtendedDataGrid<T>\r\n tablePanelStyle={{\r\n marginTop: 8,\r\n }}\r\n panelStyle={{\r\n paddingTop: 8,\r\n }}\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={this.state.panelConfiguration.gridConfiguration}\r\n onChangeConfiguration={gridConfiguration => {\r\n this.onPanelConfigurationChanged({gridConfiguration: gridConfiguration});\r\n }}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n rowModelType={this.getRowModelType()}\r\n rowData={this.getRowData()}\r\n datasource={this.state.datasource}\r\n onLoadData={this.onLoadData}\r\n onSelectionChanged={this.onSelectionChanged}\r\n columnDefs={this.state.columnDefs}\r\n search={{\r\n onSearch: () => {\r\n this.dataGrid?.loadData();\r\n },\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n detailPanel={{\r\n defaultWidth: this.getDetailPanelDefaultWidth(),\r\n renderer: this.renderDetailPanel\r\n }}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n renderToolbar: this.renderToolbar,\r\n }}\r\n rowSelection={this.getRowSelection()}\r\n getRowStyle={this.getRowStyle}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n filterPanel={this.getExtendedDataGridFilterPanel()}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"abstractListPanel.js","sourceRoot":"","sources":["../../../coreui/abstractListPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport ExtendedDataGrid, {ExtendedDataGridProps, GridConfiguration} from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, OnLoadDataCallback} from \"d2coreui/components/grid/dataGrid\";\r\nimport {\r\n GridReadyEvent,\r\n IGetRowsParams,\r\n RowDoubleClickedEvent,\r\n RowModelType,\r\n FirstDataRenderedEvent,\r\n SelectionChangedEvent\r\n} from \"ag-grid-community\";\r\nimport {Closeable, PageableList} from \"../api/abstractEntityApi\";\r\nimport {Breadcrumb, Button, Drawer, Popover} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {\r\n BulbOutlined,\r\n CheckCircleOutlined,\r\n CloseCircleOutlined,\r\n CopyOutlined,\r\n DeleteOutlined,\r\n HistoryOutlined,\r\n MoreOutlined,\r\n PlusCircleOutlined,\r\n ProfileOutlined\r\n} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport AuditableEntity from \"../api/types/auditableEntity\";\r\nimport AdvancedFilteredGrid, {\r\n AdvancedFilteredGridProps,\r\n AdvancedFilteredGridState\r\n} from \"./components/advancedFilter/advancedFilteredGrid\";\r\nimport {GeneralEntityColumn} from \"./components/advancedFilter/advancedFilterColumnDefinitions\";\r\nimport AdvancedFilterButton from \"./components/advancedFilter/advancedFilterButton\";\r\nimport {PanelConfiguration} from \"../core/types/panelConfiguration\";\r\nimport auditEntityRowStyleRules from \"./components/grid/auditEntityRowStyleRules\";\r\nimport TitleWithCodePanel from \"./components/titleWithCodePanel/titleWithCodePanel\";\r\nimport EntityHistoryListPanel from \"./components/history/entityHistoryListPanel\";\r\nimport {AccessRight} from \"../api/types/accessRight\";\r\nimport {ERROR_COLOR, SUCCESS_COLOR} from \"../api/constants/constants\";\r\nimport AbstractEntityConfigPanel from \"./components/editor/abstractEntityConfigPanel\";\r\nimport {DbBoolean} from \"../api/types/dbBoolean\";\r\nimport {ItemType} from \"antd/es/breadcrumb/Breadcrumb\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport ColorTag from \"./components/colorTag/colorTag\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\n\r\nconst useStyles = createStyles(({css, token}) => {\r\n return {\r\n breadcrumbPanel: css`\r\n border-bottom: 1px solid ${token.colorBorder};\r\n padding: 10px 12px 0;\r\n font-weight: 500;\r\n `\r\n }\r\n});\r\n\r\nexport const DETAIL_PANEL_DEFAULT_WIDTH = 560;\r\nconst MAX_WIDTH_MOBILE = 500;\r\n\r\nexport interface AbstractBreadcrumbItem {\r\n pageName: string\r\n code: string\r\n}\r\n\r\nexport interface AbstractListPanelConfiguration extends PanelConfiguration {\r\n gridConfiguration: GridConfiguration\r\n}\r\n\r\nexport interface AbstractListPanelProps<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridProps<T> {\r\n breadcrumbPath?: AbstractBreadcrumbItem[]\r\n\r\n getConfiguration(initialConfiguration: C): C\r\n\r\n onPanelConfigurationChanged(): void\r\n}\r\n\r\nexport interface AbstractListPanelState<\r\n T extends AuditableEntity,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration\r\n> extends AdvancedFilteredGridState<T> {\r\n panelConfiguration: C\r\n detailPanelVisible: boolean\r\n modalDetailPanelVisible: boolean\r\n deletedRecordsVisible: boolean\r\n historyModalVisible: boolean\r\n dropdownMenuVisible: boolean\r\n waitingForNewEntity: boolean\r\n waitingForEntityCopy: boolean\r\n quickActionsListVisible: boolean\r\n accessRight: AccessRight\r\n}\r\n\r\nexport abstract class AbstractListPanel<\r\n T extends AuditableEntity,\r\n P extends AbstractListPanelProps<T, C>,\r\n S extends AbstractListPanelState<T, C>,\r\n C extends AbstractListPanelConfiguration = AbstractListPanelConfiguration,\r\n> extends AdvancedFilteredGrid<T, P, S> {\r\n\r\n protected detailPanel: AbstractEntityConfigPanel<any, any> | null = null;\r\n protected entityHistoryListPanel: EntityHistoryListPanel<T> | null = null;\r\n protected refreshListHandler: Closeable | null = null;\r\n private idToSelect: number | undefined = undefined;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n this.onHistoryListPanelSelectionChanged = this.onHistoryListPanelSelectionChanged.bind(this);\r\n this.renderDetailPanel = this.renderDetailPanel.bind(this);\r\n this.renderDetailPanelForHistory = this.renderDetailPanelForHistory.bind(this);\r\n this.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onFirstDataRendered = this.onFirstDataRendered.bind(this);\r\n this.renderToolbar = this.renderToolbar.bind(this);\r\n }\r\n\r\n protected initialState: Omit<AbstractListPanelState<T, C>, \"panelConfiguration\"> = {\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false,\r\n deletedRecordsVisible: false,\r\n historyModalVisible: false,\r\n dropdownMenuVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n loading: false,\r\n datasource: {\r\n getRows: async (params: IGetRowsParams) => {\r\n if (this.firstLoadedPage) {\r\n let pageableList: PageableList<T>;\r\n if (this.manualReload && params.startRow === 0 && params.endRow === 100) {\r\n this.manualReload = false;\r\n pageableList = this.firstLoadedPage;\r\n } else {\r\n pageableList = await this.getRecords(params.startRow, params.endRow);\r\n }\r\n params.successCallback(pageableList.data, pageableList.totalNumberOfRows);\r\n\r\n setTimeout(() => {\r\n this.setState({selectedData: this.gridApi?.getSelectedRows() ?? []});\r\n\r\n if (this.idToSelect !== undefined && pageableList.data.some(value => value.id === this.idToSelect)) {\r\n const rowNode = this.gridApi?.getRowNode(this.idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n rowNode?.setSelected(true, true);\r\n this.idToSelect = undefined;\r\n }\r\n }, 200);\r\n } else {\r\n params.successCallback([], 0);\r\n }\r\n }\r\n },\r\n selectedData: [],\r\n waitingForNewEntity: false,\r\n waitingForEntityCopy: false,\r\n quickActionsListVisible: false,\r\n accessRight: AccessRight.NONE,\r\n filterConditions: [],\r\n }\r\n\r\n protected async onLoadData(callback: OnLoadDataCallback): Promise<void> {\r\n await super.onLoadData(callback);\r\n this.subscribeRefreshList();\r\n }\r\n\r\n protected subscribeRefreshList() {\r\n this.refreshListHandler = this.props.api.subscribeRefreshList(() => {\r\n this.gridApi?.refreshInfiniteCache();\r\n })\r\n }\r\n\r\n componentWillUnmount() {\r\n this.refreshListHandler?.close();\r\n }\r\n\r\n protected initialGridConfiguration: GridConfiguration = {\r\n pageSize: -1,\r\n columnSearchVisible: true,\r\n rowStyleRules: auditEntityRowStyleRules(),\r\n defaultRowStyleRules: auditEntityRowStyleRules(),\r\n }\r\n\r\n getPanelConfiguration(): AbstractListPanelConfiguration {\r\n return this.state.panelConfiguration;\r\n }\r\n\r\n onPanelConfigurationChanged(configuration: Partial<AbstractListPanelConfiguration>) {\r\n const panelConfiguration = this.state.panelConfiguration;\r\n Object.assign(panelConfiguration, configuration);\r\n this.setState({panelConfiguration: panelConfiguration}, () => {\r\n this.props.onPanelConfigurationChanged();\r\n });\r\n }\r\n\r\n protected async onRecordsLoaded(): Promise<void> {\r\n const accessRight = await this.props.api.getAccessRight();\r\n this.setState({accessRight: accessRight});\r\n }\r\n\r\n getOnlyValidRecords(): boolean {\r\n return !this.state.deletedRecordsVisible;\r\n }\r\n\r\n updateGrid(entity: T) {\r\n this.setState({modalDetailPanelVisible: false});\r\n this.idToSelect = entity.id;\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract renderDetailPanel(): React.ReactElement;\r\n\r\n abstract renderDetailPanelForHistory(entity: T | undefined, differences: string[]): React.ReactElement;\r\n\r\n protected focusFieldInDetailPanel(): void {\r\n this.detailPanel?.focusFirstField();\r\n }\r\n\r\n protected getAuditColumnDefs(): DataGridColDef[] {\r\n const auditColumnParams: Partial<DataGridColDef> = {\r\n group: i18n(\"Audit\"),\r\n initialHide: true,\r\n }\r\n\r\n return [\r\n this.getDateTimeColumn(GeneralEntityColumn.CREATE_DATE, {headerName: i18n(\"Date of Insert\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.CREATED_BY, {headerName: i18n(\"Created By\"), ...auditColumnParams}),\r\n this.getDateTimeColumn(GeneralEntityColumn.MODIFY_DATE, {headerName: i18n(\"Modify Date\"), ...auditColumnParams}),\r\n this.getStringColumn(GeneralEntityColumn.MODIFIED_BY, {headerName: i18n(\"Modified By\"), ...auditColumnParams}),\r\n this.getDbBooleanColumn(GeneralEntityColumn.VALIDITY, {headerName: i18n(\"Valid\"), ...auditColumnParams}),\r\n ]\r\n }\r\n\r\n protected onCloseDetailPanel() {\r\n this.setState({\r\n selectedData: this.gridApi?.getSelectedRows() ?? [],\r\n detailPanelVisible: false,\r\n modalDetailPanelVisible: false\r\n });\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n\r\n protected onRowDoubleClicked(event: RowDoubleClickedEvent) {\r\n this.setState({\r\n selectedData: [event.data],\r\n detailPanelVisible: true,\r\n modalDetailPanelVisible: this.isMobile(),\r\n });\r\n\r\n if (!this.isMobile()) {\r\n this.dataGrid?.showDetailPanel(true);\r\n }\r\n }\r\n\r\n protected getDetailPanelDefaultWidth(): number {\r\n return DETAIL_PANEL_DEFAULT_WIDTH;\r\n }\r\n\r\n protected getExtendedDataGridFilterPanel(): ExtendedDataGridProps[\"filterPanel\"] | undefined {\r\n return undefined;\r\n }\r\n\r\n onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n if (selectedRows.length > 0) {\r\n this.setState({selectedData: selectedRows});\r\n } else {\r\n this.setState({selectedData: [], detailPanelVisible: false});\r\n this.dataGrid?.showDetailPanel(false);\r\n }\r\n }\r\n\r\n protected adaptNewRecord(newRecord: T) {\r\n newRecord;\r\n }\r\n\r\n protected getDataToDelete() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.TRUE);\r\n }\r\n\r\n protected getDataToRecover() {\r\n return this.state.selectedData.filter(data => data.ano_platny === DbBoolean.FALSE);\r\n }\r\n\r\n protected isValidityChangeDisabled(): boolean {\r\n return this.state.loading || this.state.selectedData[0]?.id === undefined;\r\n }\r\n\r\n protected renderValidityButton(): React.ReactNode | undefined {\r\n const operationDisabled = this.isValidityChangeDisabled();\r\n\r\n const dataToDelete = this.getDataToDelete();\r\n const dataToRecover = this.getDataToRecover();\r\n\r\n let allowedAction: \"delete\" | \"recover\" | \"none\" = \"none\";\r\n if (dataToDelete.length > 0) {\r\n allowedAction = \"delete\";\r\n } else if (dataToRecover.length > 0) {\r\n allowedAction = \"recover\";\r\n } else {\r\n allowedAction = \"none\";\r\n }\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={allowedAction === \"recover\" ? i18n(\"Mark Record As Valid\") : i18n(\"Mark Record As Deleted\")}\r\n disabled={operationDisabled || allowedAction === \"none\"}\r\n icon={allowedAction === \"recover\" ? <CheckCircleOutlined/> : <CloseCircleOutlined/>}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title: <span style={{whiteSpace: \"nowrap\"}}>\r\n {allowedAction === \"recover\" ? i18n(\"Mark %n records as valid?\", dataToRecover.length) : i18n(\"Mark %n records as deleted?\", dataToDelete.length)}\r\n </span>,\r\n icon:\r\n allowedAction === \"delete\" ?\r\n <CloseCircleOutlined style={{color: ERROR_COLOR}}/>\r\n :\r\n <CheckCircleOutlined style={{color: SUCCESS_COLOR}}/>,\r\n onOk: async () => {\r\n for (const data of allowedAction === \"delete\" ? dataToDelete : dataToRecover) {\r\n const isOk = await this.props.api.setValidity(data, allowedAction === \"recover\");\r\n if (!isOk) {\r\n return;\r\n }\r\n }\r\n this.gridApi?.refreshInfiniteCache();\r\n }\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderAdvancedFilterButton(): React.ReactNode | undefined {\r\n const advancedFilterConfig = this.getAdvancedFilterConfig();\r\n\r\n if (advancedFilterConfig) {\r\n return (\r\n <AdvancedFilterButton\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n listName={advancedFilterConfig.listName}\r\n columnDefinitions={this.getAdvancedFilterColumnDefinitions()}\r\n filterConditions={this.state.filterConditions}\r\n onApplyFilter={this.onApplyFilter}\r\n onMenuItemClicked={() => {\r\n this.setState({dropdownMenuVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected isMobile(): boolean {\r\n return window.innerWidth <= MAX_WIDTH_MOBILE;\r\n }\r\n\r\n protected renderCopyButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Create Copy\")}\r\n disabled={disabled}\r\n loading={this.state.waitingForEntityCopy}\r\n icon={<CopyOutlined/>}\r\n onClick={async () => {\r\n this.setState({waitingForEntityCopy: true});\r\n const newRecord = await this.props.api.createNewEntity(this.state.selectedData[0]);\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], dropdownMenuVisible: false, waitingForEntityCopy: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n setTimeout(() => this.focusFieldInDetailPanel());\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderNewRecordButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"New Record\")}\r\n disabled={this.state.loading}\r\n loading={this.state.waitingForNewEntity}\r\n icon={<PlusCircleOutlined/>}\r\n onClick={() => {\r\n this.gridApi?.deselectAll();\r\n setTimeout(async () => {\r\n this.setState({waitingForNewEntity: true});\r\n const newRecord = await this.props.api.createNewEntity();\r\n this.adaptNewRecord(newRecord);\r\n this.setState({selectedData: [newRecord], waitingForNewEntity: false});\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n this.setState({detailPanelVisible: true});\r\n this.dataGrid?.showDetailPanel(true);\r\n this.focusFieldInDetailPanel();\r\n }\r\n })\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderDetailPanelButton(): React.ReactNode | undefined {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.detailPanelVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.detailPanelVisible ? \"Hide Detail\" : \"Show Detail\")}\r\n disabled={disabled}\r\n icon={<ProfileOutlined/>}\r\n onClick={() => {\r\n if (this.isMobile()) {\r\n this.setState({modalDetailPanelVisible: true})\r\n } else {\r\n const detailPanelVisible = this.state.detailPanelVisible;\r\n this.setState({detailPanelVisible: !detailPanelVisible});\r\n this.dataGrid?.showDetailPanel(!detailPanelVisible);\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderTrashButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n type={this.state.deletedRecordsVisible ? \"primary\" : \"default\"}\r\n title={i18n(this.state.deletedRecordsVisible ? \"Hide Deleted Records\" : \"Show Deleted Records\")}\r\n icon={<DeleteOutlined/>}\r\n onClick={() => {\r\n this.setState({deletedRecordsVisible: !this.state.deletedRecordsVisible}, () => {\r\n this.gridApi?.refreshInfiniteCache();\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n\r\n protected renderShortcutButton(): React.ReactNode | undefined {\r\n if (this.renderShortcutPanel()) {\r\n const disabled = this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined;\r\n\r\n return (\r\n <Button\r\n style={{width: 44}}\r\n title={i18n(\"Quick Actions\")}\r\n disabled={disabled}\r\n icon={<BulbOutlined/>}\r\n onClick={() => {\r\n this.setState({quickActionsListVisible: true, dropdownMenuVisible: false});\r\n }}\r\n />\r\n )\r\n }\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalButtons(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderHistoryButton(): React.ReactNode | undefined {\r\n return (\r\n <Button\r\n disabled={this.state.loading || this.state.selectedData.length !== 1 || this.state.selectedData[0].id === undefined}\r\n onClick={() => {\r\n this.setState({historyModalVisible: true});\r\n }}\r\n >\r\n <HistoryOutlined/>\r\n </Button>\r\n );\r\n }\r\n\r\n protected renderShortcutPanel(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderShortcutDrawer() {\r\n return (\r\n <Drawer\r\n title={<TitleWithCodePanel title={this.getPageTitle()} code={this.getBreadcrumbCode() ?? \"\"}/>}\r\n styles={{body: {padding: 0}}}\r\n placement=\"top\"\r\n height={240}\r\n onClose={() => {\r\n this.setState({quickActionsListVisible: false})\r\n }}\r\n open={this.state.quickActionsListVisible}\r\n >\r\n {this.renderShortcutPanel()}\r\n </Drawer>\r\n );\r\n }\r\n\r\n protected renderToolbar(originalSearchBar: React.ReactElement): React.ReactElement {\r\n return originalSearchBar;\r\n }\r\n\r\n renderToolbarButtons() {\r\n if (this.isMobile()) {\r\n return (\r\n <>\r\n <Popover\r\n open={this.state.dropdownMenuVisible}\r\n onOpenChange={visible => {\r\n this.setState({dropdownMenuVisible: visible})\r\n }}\r\n content={\r\n <>\r\n <div>{this.renderAdvancedFilterButton()}</div>\r\n <div>{this.renderCopyButton()}</div>\r\n <div>{this.renderValidityButton()}</div>\r\n <div>{this.renderTrashButton()}</div>\r\n <div>{this.renderShortcutButton()}</div>\r\n <div>{this.renderAdditionalButtons()}</div>\r\n </>\r\n }\r\n trigger=\"click\"\r\n >\r\n <Button>\r\n <MoreOutlined/>\r\n </Button>\r\n </Popover>\r\n {this.renderNewRecordButton()}\r\n {this.renderDetailPanelButton()}\r\n </>\r\n )\r\n } else {\r\n return <>\r\n {this.renderAdvancedFilterButton()}\r\n {this.renderNewRecordButton()}\r\n {this.renderCopyButton()}\r\n {this.renderDetailPanelButton()}\r\n {this.renderValidityButton()}\r\n {this.renderTrashButton()}\r\n {this.renderHistoryButton()}\r\n {this.renderShortcutButton()}\r\n {this.renderAdditionalButtons()}\r\n </>\r\n }\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected onFirstDataRendered(event: FirstDataRenderedEvent) {\r\n event;\r\n }\r\n\r\n protected getRowSelection(): \"single\" | \"multiple\" {\r\n return \"multiple\";\r\n }\r\n\r\n protected getRowModelType(): RowModelType {\r\n return \"infinite\";\r\n }\r\n\r\n protected getRowData(): T[] | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getRowStyle(params: any): GridRowStyle | undefined {\r\n params;\r\n return undefined;\r\n }\r\n\r\n abstract getPageTitle(): string\r\n\r\n protected getLoadedData(): T[] {\r\n const data: T[] = [];\r\n this.gridApi?.forEachNode(value => data.push(value.data));\r\n\r\n return data;\r\n }\r\n\r\n private renderDetailPanelModalDialog() {\r\n return (\r\n <ModalDialog\r\n className=\"modal-no-header full-screen-modal\"\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n closable={false}\r\n open={this.state.modalDetailPanelVisible}\r\n styles={{body: {padding: 0}}}\r\n initialWidth={window.innerWidth}\r\n initialHeight={window.innerHeight}\r\n forceRender\r\n >\r\n {this.renderDetailPanel()}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected onHistoryListPanelSelectionChanged() {\r\n }\r\n\r\n protected isEqualCustomizerForHistory(key: string, value: any, other: any): boolean | undefined {\r\n key;\r\n value;\r\n other;\r\n return undefined;\r\n }\r\n\r\n private renderHistoryModalDialog(): React.ReactElement {\r\n const selectedEntity = this.state.selectedData[0];\r\n\r\n return (\r\n <ModalDialog\r\n styles={{body: {padding: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.historyModalVisible}\r\n onCancel={() => this.setState({historyModalVisible: false})}\r\n title={<TitleWithCodePanel title={i18n(\"History\")} code={selectedEntity?.code ?? \"\"}/>}\r\n initialWidth={window.innerWidth * 0.99}\r\n initialHeight={window.innerHeight * 0.95}\r\n >\r\n <EntityHistoryListPanel\r\n ref={component => this.entityHistoryListPanel = component}\r\n api={this.props.api}\r\n entity={selectedEntity}\r\n renderDetail={this.renderDetailPanelForHistory}\r\n detailPanelWidth={this.getDetailPanelDefaultWidth() * 2}\r\n onSelectionChanged={this.onHistoryListPanelSelectionChanged}\r\n isEqualCustomizer={this.isEqualCustomizerForHistory}\r\n />\r\n </ModalDialog>\r\n );\r\n }\r\n\r\n private renderBreadcrumbItem(pageName: React.ReactNode, code?: string): ItemType {\r\n return {\r\n title: <>\r\n {pageName}\r\n {code && <ColorTag style={{margin: \"0 0 0 4px\", fontSize: 14}}>{code}</ColorTag>}\r\n </>,\r\n }\r\n }\r\n\r\n private renderBreadcrumb() {\r\n const pageTitle = this.getPageTitle();\r\n\r\n if (pageTitle) {\r\n const breadcrumbCode = this.getBreadcrumbCode();\r\n return (\r\n <Breadcrumb\r\n style={{paddingBottom: 10, fontSize: 20, overflowX: \"auto\"}}\r\n items={\r\n [\r\n ...this.props.breadcrumbPath?.map(value => this.renderBreadcrumbItem(value.pageName, value.code)) ?? [],\r\n this.renderBreadcrumbItem(pageTitle, breadcrumbCode),\r\n ]\r\n }\r\n />\r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n protected getBreadcrumbCode() {\r\n return this.state.selectedData[0]?.code ?? undefined;\r\n }\r\n\r\n protected getExtendedBreadcrumbPath() {\r\n return [\r\n ...this.props.breadcrumbPath ?? [],\r\n {pageName: this.getPageTitle() ?? \"\", code: this.getBreadcrumbCode() ?? \"\"}\r\n ]\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\"}}>\r\n <WithCss useStyles={useStyles}>{(css) =>\r\n <div className={css.styles.breadcrumbPanel}>\r\n {this.renderBreadcrumb()}\r\n </div>\r\n }</WithCss>\r\n <div style={{position: \"relative\", height: \"100%\"}}>\r\n {this.renderHistoryModalDialog()}\r\n {this.renderDetailPanelModalDialog()}\r\n {this.renderShortcutDrawer()}\r\n <ExtendedDataGrid<T>\r\n tablePanelStyle={{\r\n marginTop: 8,\r\n }}\r\n panelStyle={{\r\n paddingTop: 8,\r\n }}\r\n ref={(dataGrid) => {\r\n this.dataGrid = dataGrid;\r\n }}\r\n defaultGridConfiguration={this.state.panelConfiguration.gridConfiguration}\r\n onChangeConfiguration={gridConfiguration => {\r\n this.onPanelConfigurationChanged({gridConfiguration: gridConfiguration});\r\n }}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n rowModelType={this.getRowModelType()}\r\n rowData={this.getRowData()}\r\n datasource={this.state.datasource}\r\n onLoadData={this.onLoadData}\r\n onSelectionChanged={this.onSelectionChanged}\r\n columnDefs={this.state.columnDefs}\r\n search={{\r\n onSearch: () => {\r\n this.dataGrid?.loadData();\r\n },\r\n hidden: true,\r\n }}\r\n onSortChanged={() => {\r\n this.dataGrid?.loadData();\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n detailPanel={{\r\n defaultWidth: this.getDetailPanelDefaultWidth(),\r\n renderer: this.renderDetailPanel\r\n }}\r\n toolbar={{\r\n toolbarButtons: this.renderToolbarButtons(),\r\n renderToolbar: this.renderToolbar,\r\n }}\r\n rowSelection={this.getRowSelection()}\r\n getRowStyle={this.getRowStyle}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n noRecordsOverlayRenderer={() => <div/>}\r\n filterPanel={this.getExtendedDataGridFilterPanel()}\r\n onFirstDataRendered={this.onFirstDataRendered}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n}"]}
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import { AdvancedFilterApi, AdvancedFilterCondition } from "../../../api/advancedFilterApi";
3
- import { AdvancedFilterColumnDefinition } from "../../../api/types/advancedFilter";
3
+ import { AdvancedFilterColumnContext } from "../../../api/types/advancedFilter";
4
4
  interface Props {
5
5
  advancedFilterApi: AdvancedFilterApi;
6
6
  listName: string;
7
- columnDefinitions: AdvancedFilterColumnDefinition[];
7
+ columnDefinitions: AdvancedFilterColumnContext[];
8
8
  filterConditions: AdvancedFilterCondition[];
9
9
  onApplyFilter(filterConditions: AdvancedFilterCondition[]): void;
10
10
  onMenuItemClicked?(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"advancedFilterButton.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilterButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport AdvancedFilterConditionListModalDialog from \"./conditionList/advancedFilterConditionListModalDialog\";\r\nimport {AdvancedFilterApi, AdvancedFilterCondition,} from \"../../../api/advancedFilterApi\";\r\nimport {Button, Dropdown} from \"antd\";\r\nimport {\r\n CloseCircleOutlined,\r\n DownloadOutlined,\r\n EditOutlined,\r\n FilterOutlined,\r\n PlusCircleOutlined,\r\n SaveOutlined\r\n} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport FilterSaveModalDialog from \"./filterSave/filterSaveModalDialog\";\r\nimport AdvancedFilterListModalDialog from \"./filterList/advancedFilterListModalDialog\";\r\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\r\nimport {AdvancedFilterColumnDefinition} from \"../../../api/types/advancedFilter\";\r\n\r\ninterface Props {\r\n advancedFilterApi: AdvancedFilterApi\r\n listName: string\r\n columnDefinitions: AdvancedFilterColumnDefinition[]\r\n filterConditions: AdvancedFilterCondition[]\r\n\r\n onApplyFilter(filterConditions: AdvancedFilterCondition[]): void\r\n\r\n onMenuItemClicked?(): void\r\n}\r\n\r\ninterface State {\r\n conditionListModalDialogVisible: boolean\r\n filterSaveModalDialogVisible: boolean\r\n filterListModalDialogVisible: boolean\r\n\r\n saving: boolean\r\n}\r\n\r\nexport default class AdvancedFilterButton extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n props.advancedFilterApi.entityListName = props.listName;\r\n\r\n this.state = {\r\n conditionListModalDialogVisible: false,\r\n filterSaveModalDialogVisible: false,\r\n filterListModalDialogVisible: false,\r\n\r\n saving: false,\r\n }\r\n }\r\n\r\n private applyFilterConditions(filterConditions: AdvancedFilterCondition[]) {\r\n this.props.onApplyFilter(filterConditions);\r\n }\r\n\r\n private renderConditionListModalDialog() {\r\n return (\r\n <AdvancedFilterConditionListModalDialog\r\n visible={this.state.conditionListModalDialogVisible}\r\n columnDefinitions={this.props.columnDefinitions}\r\n filterConditions={this.props.filterConditions}\r\n onOk={filterConditions => {\r\n this.applyFilterConditions(filterConditions);\r\n this.setState({conditionListModalDialogVisible: false});\r\n }}\r\n onCancel={() => {\r\n this.setState({conditionListModalDialogVisible: false})\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterSaveModalDialog() {\r\n return (\r\n <FilterSaveModalDialog\r\n visible={this.state.filterSaveModalDialogVisible}\r\n saving={this.state.saving}\r\n onOk={async filterName => {\r\n this.setState({saving: true});\r\n const filter = await this.props.advancedFilterApi.createNewEntity();\r\n filter.code = filterName;\r\n filter.name = filterName;\r\n filter.filterConditions = AdvancedFilterUtils.serializeConditionValues(this.props.filterConditions);\r\n\r\n const savedEntity = await this.props.advancedFilterApi.saveEntity(filter);\r\n\r\n if (savedEntity) {\r\n this.setState({\r\n filterSaveModalDialogVisible: false,\r\n saving: false,\r\n });\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterSaveModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterListModalDialog() {\r\n return (\r\n <AdvancedFilterListModalDialog\r\n api={this.props.advancedFilterApi}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n visible={this.state.filterListModalDialogVisible}\r\n multiSelect\r\n onItemsSelected={async selectedItems => {\r\n const selectedFilter = selectedItems[0];\r\n if (selectedFilter) {\r\n const filterConditions = await this.props.advancedFilterApi.getFilterConditions(selectedFilter.id);\r\n const parsedFilterConditions = AdvancedFilterUtils.parseConditionValues(filterConditions);\r\n this.applyFilterConditions(parsedFilterConditions);\r\n this.setState({filterListModalDialogVisible: false});\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterListModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n const filterNotPresented = this.props.filterConditions.length === 0;\r\n\r\n return (\r\n <div>\r\n {this.renderConditionListModalDialog()}\r\n {this.renderFilterSaveModalDialog()}\r\n {this.renderFilterListModalDialog()}\r\n <Dropdown\r\n trigger={[\"click\"]}\r\n menu={{\r\n items: [\r\n {\r\n key: \"new\",\r\n icon: filterNotPresented ? <PlusCircleOutlined/> : <EditOutlined/>,\r\n label: i18n(filterNotPresented ? \"New Filter\" : \"Edit Filter\"),\r\n onClick: () => {\r\n this.setState({conditionListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"destroy\",\r\n danger: true,\r\n disabled: filterNotPresented,\r\n icon: <CloseCircleOutlined/>,\r\n label: i18n(\"Deactivate Filter\"),\r\n onClick: () => {\r\n this.props.onApplyFilter([]);\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"save\",\r\n disabled: filterNotPresented,\r\n icon: <SaveOutlined/>,\r\n label: i18n(\"Save Filter\"),\r\n onClick: () => {\r\n this.setState({filterSaveModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"load\",\r\n icon: <DownloadOutlined/>,\r\n label: i18n(\"Load Filter\"),\r\n onClick: () => {\r\n this.setState({filterListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n ]\r\n }}\r\n >\r\n <Button\r\n style={{width: 44}}\r\n type={this.props.filterConditions.length !== 0 ? \"primary\" : undefined}\r\n icon={<FilterOutlined/>}\r\n />\r\n </Dropdown>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"advancedFilterButton.js","sourceRoot":"","sources":["../../../../../coreui/components/advancedFilter/advancedFilterButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport AdvancedFilterConditionListModalDialog from \"./conditionList/advancedFilterConditionListModalDialog\";\r\nimport {AdvancedFilterApi, AdvancedFilterCondition,} from \"../../../api/advancedFilterApi\";\r\nimport {Button, Dropdown} from \"antd\";\r\nimport {\r\n CloseCircleOutlined,\r\n DownloadOutlined,\r\n EditOutlined,\r\n FilterOutlined,\r\n PlusCircleOutlined,\r\n SaveOutlined\r\n} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport FilterSaveModalDialog from \"./filterSave/filterSaveModalDialog\";\r\nimport AdvancedFilterListModalDialog from \"./filterList/advancedFilterListModalDialog\";\r\nimport AdvancedFilterUtils from \"./advancedFilterUtils\";\r\nimport {AdvancedFilterColumnContext} from \"../../../api/types/advancedFilter\";\r\n\r\ninterface Props {\r\n advancedFilterApi: AdvancedFilterApi\r\n listName: string\r\n columnDefinitions: AdvancedFilterColumnContext[]\r\n filterConditions: AdvancedFilterCondition[]\r\n\r\n onApplyFilter(filterConditions: AdvancedFilterCondition[]): void\r\n\r\n onMenuItemClicked?(): void\r\n}\r\n\r\ninterface State {\r\n conditionListModalDialogVisible: boolean\r\n filterSaveModalDialogVisible: boolean\r\n filterListModalDialogVisible: boolean\r\n\r\n saving: boolean\r\n}\r\n\r\nexport default class AdvancedFilterButton extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n props.advancedFilterApi.entityListName = props.listName;\r\n\r\n this.state = {\r\n conditionListModalDialogVisible: false,\r\n filterSaveModalDialogVisible: false,\r\n filterListModalDialogVisible: false,\r\n\r\n saving: false,\r\n }\r\n }\r\n\r\n private applyFilterConditions(filterConditions: AdvancedFilterCondition[]) {\r\n this.props.onApplyFilter(filterConditions);\r\n }\r\n\r\n private renderConditionListModalDialog() {\r\n return (\r\n <AdvancedFilterConditionListModalDialog\r\n visible={this.state.conditionListModalDialogVisible}\r\n columnDefinitions={this.props.columnDefinitions}\r\n filterConditions={this.props.filterConditions}\r\n onOk={filterConditions => {\r\n this.applyFilterConditions(filterConditions);\r\n this.setState({conditionListModalDialogVisible: false});\r\n }}\r\n onCancel={() => {\r\n this.setState({conditionListModalDialogVisible: false})\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterSaveModalDialog() {\r\n return (\r\n <FilterSaveModalDialog\r\n visible={this.state.filterSaveModalDialogVisible}\r\n saving={this.state.saving}\r\n onOk={async filterName => {\r\n this.setState({saving: true});\r\n const filter = await this.props.advancedFilterApi.createNewEntity();\r\n filter.code = filterName;\r\n filter.name = filterName;\r\n filter.filterConditions = AdvancedFilterUtils.serializeConditionValues(this.props.filterConditions);\r\n\r\n const savedEntity = await this.props.advancedFilterApi.saveEntity(filter);\r\n\r\n if (savedEntity) {\r\n this.setState({\r\n filterSaveModalDialogVisible: false,\r\n saving: false,\r\n });\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterSaveModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n private renderFilterListModalDialog() {\r\n return (\r\n <AdvancedFilterListModalDialog\r\n api={this.props.advancedFilterApi}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n visible={this.state.filterListModalDialogVisible}\r\n multiSelect\r\n onItemsSelected={async selectedItems => {\r\n const selectedFilter = selectedItems[0];\r\n if (selectedFilter) {\r\n const filterConditions = await this.props.advancedFilterApi.getFilterConditions(selectedFilter.id);\r\n const parsedFilterConditions = AdvancedFilterUtils.parseConditionValues(filterConditions);\r\n this.applyFilterConditions(parsedFilterConditions);\r\n this.setState({filterListModalDialogVisible: false});\r\n }\r\n }}\r\n onCancel={() => {\r\n this.setState({filterListModalDialogVisible: false});\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n const filterNotPresented = this.props.filterConditions.length === 0;\r\n\r\n return (\r\n <div>\r\n {this.renderConditionListModalDialog()}\r\n {this.renderFilterSaveModalDialog()}\r\n {this.renderFilterListModalDialog()}\r\n <Dropdown\r\n trigger={[\"click\"]}\r\n menu={{\r\n items: [\r\n {\r\n key: \"new\",\r\n icon: filterNotPresented ? <PlusCircleOutlined/> : <EditOutlined/>,\r\n label: i18n(filterNotPresented ? \"New Filter\" : \"Edit Filter\"),\r\n onClick: () => {\r\n this.setState({conditionListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"destroy\",\r\n danger: true,\r\n disabled: filterNotPresented,\r\n icon: <CloseCircleOutlined/>,\r\n label: i18n(\"Deactivate Filter\"),\r\n onClick: () => {\r\n this.props.onApplyFilter([]);\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"save\",\r\n disabled: filterNotPresented,\r\n icon: <SaveOutlined/>,\r\n label: i18n(\"Save Filter\"),\r\n onClick: () => {\r\n this.setState({filterSaveModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n {\r\n key: \"load\",\r\n icon: <DownloadOutlined/>,\r\n label: i18n(\"Load Filter\"),\r\n onClick: () => {\r\n this.setState({filterListModalDialogVisible: true});\r\n this.props.onMenuItemClicked?.();\r\n }\r\n },\r\n ]\r\n }}\r\n >\r\n <Button\r\n style={{width: 44}}\r\n type={this.props.filterConditions.length !== 0 ? \"primary\" : undefined}\r\n icon={<FilterOutlined/>}\r\n />\r\n </Dropdown>\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
@@ -3,7 +3,7 @@ import { AdvancedFilterApi, AdvancedFilterCondition } from "../../../api/advance
3
3
  import Entity from "../../../api/types/entity";
4
4
  import ExtendedDataGrid from "d2coreui/components/grid/extendedDataGrid";
5
5
  import { GridApi, IDatasource } from "ag-grid-community";
6
- import { AdvancedFilterColumnDefinition } from "../../../api/types/advancedFilter";
6
+ import { AdvancedFilterColumnContext, AdvancedFilterColumnDefinition } from "../../../api/types/advancedFilter";
7
7
  import { DataGridColDef, OnLoadDataCallback } from "d2coreui/components/grid/dataGrid";
8
8
  import AbstractEntityApi, { PageableList } from "../../../api/abstractEntityApi";
9
9
  export interface AdvancedFilterConfig {
@@ -40,7 +40,7 @@ export default abstract class AdvancedFilteredGrid<T extends Entity, P extends A
40
40
  protected getLoadedData(): T[];
41
41
  private saveConfiguration;
42
42
  abstract getAdvancedFilterConfig(): AdvancedFilterConfig | undefined;
43
- protected getAdvancedFilterColumnDefinitions(): AdvancedFilterColumnDefinition[];
43
+ protected getAdvancedFilterColumnDefinitions(): AdvancedFilterColumnContext[];
44
44
  protected renderFloatingFilter(columnDefinition: AdvancedFilterColumnDefinition): React.JSX.Element;
45
45
  protected onApplyFilter(filterConditions: AdvancedFilterCondition[]): void;
46
46
  private onAddCondition;
@@ -50,6 +50,7 @@ export default abstract class AdvancedFilteredGrid<T extends Entity, P extends A
50
50
  protected getCodeColumn(params?: Partial<DataGridColDef>): DataGridColDef;
51
51
  protected getCodeColumnWithBackgroundColor(): DataGridColDef;
52
52
  protected getNameColumn(params?: Partial<DataGridColDef>): DataGridColDef;
53
+ protected getNoteColumn(params?: Partial<DataGridColDef>): DataGridColDef;
53
54
  protected getEntityColumn(columnConfig: {
54
55
  codeColumn: string;
55
56
  nameColumn: string;
@@ -98,7 +98,12 @@ export default class AdvancedFilteredGrid extends React.Component {
98
98
  getAdvancedFilterColumnDefinitions() {
99
99
  return this.dataGrid?.props.columnDefs
100
100
  .filter(value => value.renderFilter && value.context)
101
- .map(value => value.context)
101
+ .map(value => {
102
+ return {
103
+ ...value.context,
104
+ displayName: value.headerName ?? "",
105
+ };
106
+ })
102
107
  ?? [];
103
108
  }
104
109
  renderFloatingFilter(columnDefinition) {
@@ -164,6 +169,9 @@ export default class AdvancedFilteredGrid extends React.Component {
164
169
  getNameColumn(params) {
165
170
  return getNameColumn(() => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NAME)), { context: getStringAdvancedFilterColumn(GeneralEntityColumn.NAME), ...params });
166
171
  }
172
+ getNoteColumn(params) {
173
+ return getStringColumn(GeneralEntityColumn.NOTE, () => this.renderFloatingFilter(getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE)), { headerName: i18n("Note"), initialWidth: 200, context: getStringAdvancedFilterColumn(GeneralEntityColumn.NOTE), ...params });
174
+ }
167
175
  getEntityColumn(columnConfig, params, omitFilter) {
168
176
  return getEntityColumn(columnConfig, omitFilter ? undefined : () => this.renderFloatingFilter(getStringAdvancedFilterColumn(columnConfig.codeColumn)), { context: getStringAdvancedFilterColumn(columnConfig.codeColumn), ...params });
169
177
  }