d2aura 26.0.16 → 26.0.18

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 (132) hide show
  1. package/api/eda/edaManagerApi.d.ts +10 -4
  2. package/api/eda/edaManagerApi.js +61 -3
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +42 -17
  5. package/api/eda/generated/events.js +87 -44
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +30 -0
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/api/webAuthn/webAuthnManageApi.d.ts +9 -0
  10. package/api/webAuthn/webAuthnManageApi.js +61 -0
  11. package/api/webAuthn/webAuthnManageApi.js.map +1 -0
  12. package/api/webPush/webPushApi.js.map +1 -1
  13. package/api/webPush/webPushUtils.js.map +1 -1
  14. package/core/i18n/d2aura.sk.json +34 -0
  15. package/coreui/auth/passkeyLogin.d.ts +8 -0
  16. package/coreui/auth/passkeyLogin.js +70 -0
  17. package/coreui/auth/passkeyLogin.js.map +1 -0
  18. package/coreui/auth/passkeyLoginButton.d.ts +9 -0
  19. package/coreui/auth/passkeyLoginButton.js +24 -0
  20. package/coreui/auth/passkeyLoginButton.js.map +1 -0
  21. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +1 -1
  22. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -1
  23. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +3 -6
  24. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  25. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +1 -0
  26. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  27. package/coreui/components/edaManagerComponent/components/edaDialogTitle.d.ts +8 -0
  28. package/coreui/components/edaManagerComponent/components/edaDialogTitle.js +10 -0
  29. package/coreui/components/edaManagerComponent/components/edaDialogTitle.js.map +1 -0
  30. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +2 -1
  31. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  32. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +1 -1
  33. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -1
  34. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.d.ts +1 -6
  35. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js +9 -8
  36. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js.map +1 -1
  37. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +0 -1
  38. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +4 -4
  39. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  40. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +1 -1
  41. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -1
  42. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +7 -24
  43. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  44. package/coreui/components/edaManagerComponent/components/edaTreeView.js +117 -145
  45. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  46. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +19 -16
  47. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  48. package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +1 -0
  49. package/coreui/components/edaManagerComponent/constants/actionTypes.js +1 -0
  50. package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -1
  51. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +7 -2
  52. package/coreui/components/edaManagerComponent/constants/edaTypes.js +1 -0
  53. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  54. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +4 -2
  55. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  56. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.d.ts +2 -3
  57. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +118 -67
  58. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  59. package/coreui/components/edaManagerComponent/context/loadingContext.d.ts +11 -1
  60. package/coreui/components/edaManagerComponent/context/loadingContext.js +40 -2
  61. package/coreui/components/edaManagerComponent/context/loadingContext.js.map +1 -1
  62. package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +1 -0
  63. package/coreui/components/edaManagerComponent/context/useEdaActions.js +18 -9
  64. package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -1
  65. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +5 -3
  66. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -1
  67. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +0 -1
  68. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +3 -5
  69. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -1
  70. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +0 -1
  71. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +4 -6
  72. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -1
  73. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +1 -0
  74. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -1
  75. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +46 -12
  76. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -1
  77. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js +10 -8
  78. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -1
  79. package/coreui/components/edaManagerComponent/dialogs/exportDialog.d.ts +1 -9
  80. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +48 -79
  81. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -1
  82. package/coreui/components/edaManagerComponent/dialogs/importDialog.d.ts +10 -0
  83. package/coreui/components/edaManagerComponent/dialogs/importDialog.js +469 -0
  84. package/coreui/components/edaManagerComponent/dialogs/importDialog.js.map +1 -0
  85. package/coreui/components/edaManagerComponent/dialogs/importExport/export.d.ts +17 -0
  86. package/coreui/components/edaManagerComponent/dialogs/importExport/export.js +335 -0
  87. package/coreui/components/edaManagerComponent/dialogs/importExport/export.js.map +1 -0
  88. package/coreui/components/edaManagerComponent/dialogs/importExport/import.d.ts +65 -0
  89. package/coreui/components/edaManagerComponent/dialogs/importExport/import.js +375 -0
  90. package/coreui/components/edaManagerComponent/dialogs/importExport/import.js.map +1 -0
  91. package/coreui/components/edaManagerComponent/dialogs/importExport/types.d.ts +8 -0
  92. package/coreui/components/edaManagerComponent/dialogs/importExport/types.js +98 -0
  93. package/coreui/components/edaManagerComponent/dialogs/importExport/types.js.map +1 -0
  94. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.d.ts +5 -0
  95. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.js +13 -0
  96. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeCheckbox.js.map +1 -0
  97. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.d.ts +9 -0
  98. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js +23 -0
  99. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js.map +1 -0
  100. package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.d.ts +20 -0
  101. package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.js +36 -0
  102. package/coreui/components/edaManagerComponent/dialogs/importExport/xmlAttributeHolder.js.map +1 -0
  103. package/coreui/components/edaManagerComponent/dialogs/{groupVectorSelection.d.ts → vectorSelectionDialog.d.ts} +1 -1
  104. package/coreui/components/edaManagerComponent/dialogs/{groupVectorSelection.js → vectorSelectionDialog.js} +5 -4
  105. package/coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.js.map +1 -0
  106. package/coreui/components/edaManagerComponent/edaDetail.d.ts +2 -3
  107. package/coreui/components/edaManagerComponent/edaDetail.js +24 -20
  108. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  109. package/coreui/components/edaManagerComponent/edaManager.js +9 -7
  110. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
  111. package/coreui/components/edaManagerComponent/edaSelect.js +8 -11
  112. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  113. package/coreui/components/edaManagerComponent/utils/utils.d.ts +6 -6
  114. package/coreui/components/edaManagerComponent/utils/utils.js +63 -5
  115. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  116. package/coreui/components/passkey/passkeyManager.d.ts +7 -0
  117. package/coreui/components/passkey/passkeyManager.js +75 -0
  118. package/coreui/components/passkey/passkeyManager.js.map +1 -0
  119. package/coreui/components/webPush/webPushSwitch.js.map +1 -1
  120. package/coreui/images/logo.svg +9 -9
  121. package/coreui/images/logo_full.svg +11 -11
  122. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +4 -0
  123. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +34 -0
  124. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +5 -5
  125. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +18 -2
  126. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +377 -16
  127. package/d2configuration/edaManager/SD.EM_Tree_Item.xml +22 -0
  128. package/package.json +10 -5
  129. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +0 -1
  130. package/coreui/components/edaManagerComponent/utils/export.d.ts +0 -9
  131. package/coreui/components/edaManagerComponent/utils/export.js +0 -570
  132. package/coreui/components/edaManagerComponent/utils/export.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tablePanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useMemo} from \"react\";\r\nimport {VectorValuesData} from \"../../../../../api/eda/edaManagerApi\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {EdaSamplingType} from \"../../constants/edaTypes\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Card, Empty, Space, theme} from \"antd\";\r\nimport {EdaLoadingOverlay} from \"../../components/edaLoadingOverlay\";\r\nimport {EdaSampleRangePickerPanel} from \"../../components/edaSampleRangePickerPanel\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {UnixTime} from \"d2jsapi\";\r\nimport {UnivalValue} from \"d2jsapi/dist/unival\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, MenuElement} from \"d2coreui/components/grid/dataGrid\";\r\nimport {formatValue} from \"../../utils/utils\";\r\nimport {getOrigModifiedVectors} from \"./utils\";\r\nimport {useEdaConfig} from \"../../context/edaConfigContext\";\r\n\r\nconst useStyles = createStyles(({css, token}) => {\r\n return {\r\n baseLayout: css`\r\n display: flex;\r\n height: 100%;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n\r\n > .ant-card-body {\r\n height: 100%;\r\n padding: ${token.paddingXS}px;\r\n\r\n > div {\r\n height: 100%;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n }\r\n\r\n .eda-detail-no-data {\r\n padding: ${token.padding}px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center !important;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .ant-space-item:last-child {\r\n height: 100%;\r\n }\r\n `,\r\n }\r\n});\r\n\r\ninterface GridRow {\r\n id: number\r\n time?: UnixTime\r\n\r\n [id: number]: UnivalValue\r\n}\r\n\r\ninterface Props {\r\n displayData: Record<number, { data: VectorValuesData }>;\r\n isLoading: boolean;\r\n params: { bt: dayjs.Dayjs; et: dayjs.Dayjs; sampling: EdaSamplingType };\r\n onParamsChange: (params: { bt: dayjs.Dayjs; et: dayjs.Dayjs; sampling: EdaSamplingType }) => void;\r\n}\r\n\r\nexport const TablePanel: FC<Props> = ({displayData, isLoading, params, onParamsChange}) => {\r\n const {token} = theme.useToken();\r\n const {styles} = useStyles();\r\n const {table} = useEdaConfig();\r\n\r\n const vectors = useMemo(() => getOrigModifiedVectors(), []);\r\n\r\n const tablePanelStyle = useMemo(() => ({marginTop: token.paddingXXS}), [token.paddingXXS]);\r\n const panelStyle = useMemo(() => ({padding: `0, ${token.paddingXXS}px`}), [token.paddingXXS]);\r\n\r\n const getRowStyle = useCallback((params: any) => {\r\n if (params.node.isRowPinned()) {\r\n return {backgroundColor: token.colorFillAlter};\r\n }\r\n\r\n return undefined;\r\n }, [token.colorFillAlter]);\r\n\r\n const handleRangeChange = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => onParamsChange({bt, et, sampling}), []);\r\n\r\n const tableData = useMemo(() => {\r\n const ids = Object.keys(displayData).map(Number);\r\n const rowByTime = new Map<number, GridRow>();\r\n\r\n for (const id of ids) {\r\n const vectorPoints = displayData[id]?.data?.data || [];\r\n\r\n for (const point of vectorPoints) {\r\n const time = point.val.valueTime;\r\n\r\n if (time === undefined) continue;\r\n\r\n let row = rowByTime.get(time);\r\n\r\n if (!row) {\r\n row = {\r\n id: time,\r\n time: time\r\n }\r\n rowByTime.set(time, row);\r\n }\r\n\r\n row[id] = point.val;\r\n }\r\n }\r\n\r\n return Array.from(rowByTime.values()).sort((a, b) => (a.time || 0) - (b.time || 0));\r\n }, [displayData]);\r\n\r\n const columnDefs = useMemo(() => {\r\n if (!vectors) {\r\n return []\r\n }\r\n\r\n const columns: DataGridColDef[] = [\r\n {\r\n field: \"time\",\r\n colId: \"time\",\r\n type: [\"dateTimeColumn\"],\r\n headerName: i18n(\"Vector Time\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n ...vectors.map((v): DataGridColDef => ({\r\n field: `${v.ID}.value`,\r\n colId: String(v.ID),\r\n type: [\"alignRight\"],\r\n valueFormatter: (props) => formatValue(props.value, v.RoundingType, v.RoundingPlaces),\r\n headerName: v.DisplayName,\r\n headerTooltip: v.DisplayName,\r\n group: i18n(\"Basic Columns\"),\r\n }))\r\n ];\r\n\r\n return table?.detailTable?.modifyColumns ? table.detailTable.modifyColumns(columns) : columns;\r\n }, [vectors, table?.detailTable?.modifyColumns]);\r\n\r\n return (\r\n <Card className={styles.baseLayout}>\r\n {isLoading && <EdaLoadingOverlay/>}\r\n <Space direction=\"vertical\" style={{width: \"100%\", height: \"100%\"}}>\r\n <EdaSampleRangePickerPanel\r\n bt={params.bt}\r\n et={params.et}\r\n sampling={params.sampling}\r\n totalCount={1}\r\n pageSize={1}\r\n loading={isLoading}\r\n page={1}\r\n onChangeRange={handleRangeChange}\r\n onChangePage={() => {}}\r\n onChangeVectors={() => {}}\r\n />\r\n <div style={{height: '100%'}}>\r\n <ExtendedDataGrid<GridRow>\r\n columnDefs={columnDefs}\r\n onLoadData={handleLoadData}\r\n defaultGridConfiguration={{\r\n pageSize: -1,\r\n }}\r\n rowData={tableData}\r\n tablePanelStyle={tablePanelStyle}\r\n panelStyle={panelStyle}\r\n settingsMenu={{renderer: handleSettingsMenu}}\r\n toolbar={{\r\n hideRecordCount: true,\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n noRecordsOverlayRenderer={renderNoRecordsOverlay}\r\n getRowStyle={getRowStyle}\r\n rowSelection=\"multiple\"\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n </div>\r\n </Space>\r\n </Card>\r\n );\r\n}\r\n\r\nfunction handleLoadData(callback: (v: number) => void) {\r\n callback(1);\r\n}\r\n\r\nfunction renderNoRecordsOverlay() {\r\n return <Empty description={i18n(\"No records found.\")} styles={{image: {height: \"8vh\"}}}/>;\r\n}\r\n\r\nfunction handleSettingsMenu(menuElements: MenuElement[]) {\r\n return menuElements.filter((e) => ![\"columnFilter\", \"columnsConfig\"].includes(e.key as string));\r\n}"]}
1
+ {"version":3,"file":"tablePanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useMemo} from \"react\";\r\nimport {VectorValuesData} from \"../../../../../api/eda/edaManagerApi\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {EdaSamplingType} from \"../../constants/edaTypes\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Card, Empty, Space, theme} from \"antd\";\r\nimport {EdaSampleRangePickerPanel} from \"../../components/edaSampleRangePickerPanel\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {UnixTime} from \"d2jsapi\";\r\nimport {UnivalValue} from \"d2jsapi/dist/unival\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {DataGridColDef, MenuElement} from \"d2coreui/components/grid/dataGrid\";\r\nimport {formatValue} from \"../../utils/utils\";\r\nimport {getOrigModifiedVectors} from \"./utils\";\r\nimport {useEdaConfig} from \"../../context/edaConfigContext\";\r\n\r\nconst useStyles = createStyles(({css, token}) => {\r\n return {\r\n baseLayout: css`\r\n display: flex;\r\n height: 100%;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n\r\n > .ant-card-body {\r\n height: 100%;\r\n padding: ${token.paddingXS}px;\r\n\r\n > div {\r\n height: 100%;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n }\r\n\r\n .eda-detail-no-data {\r\n padding: ${token.padding}px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center !important;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .ant-space-item:last-child {\r\n height: 100%;\r\n }\r\n `,\r\n }\r\n});\r\n\r\ninterface GridRow {\r\n id: number\r\n time?: UnixTime\r\n\r\n [id: number]: UnivalValue\r\n}\r\n\r\ninterface Props {\r\n displayData: Record<number, { data: VectorValuesData }>;\r\n params: { bt: dayjs.Dayjs; et: dayjs.Dayjs; sampling: EdaSamplingType };\r\n onParamsChange: (params: { bt: dayjs.Dayjs; et: dayjs.Dayjs; sampling: EdaSamplingType }) => void;\r\n}\r\n\r\nexport const TablePanel: FC<Props> = ({displayData, params, onParamsChange}) => {\r\n const {token} = theme.useToken();\r\n const {styles} = useStyles();\r\n const {table} = useEdaConfig();\r\n\r\n const vectors = useMemo(() => getOrigModifiedVectors(), []);\r\n\r\n const tablePanelStyle = useMemo(() => ({marginTop: token.paddingXXS}), [token.paddingXXS]);\r\n const panelStyle = useMemo(() => ({padding: `0, ${token.paddingXXS}px`}), [token.paddingXXS]);\r\n\r\n const getRowStyle = useCallback((params: any) => {\r\n if (params.node.isRowPinned()) {\r\n return {backgroundColor: token.colorFillAlter};\r\n }\r\n\r\n return undefined;\r\n }, [token.colorFillAlter]);\r\n\r\n const handleRangeChange = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => onParamsChange({bt, et, sampling}), [onParamsChange]);\r\n\r\n const tableData = useMemo(() => {\r\n const ids = Object.keys(displayData).map(Number);\r\n const rowByTime = new Map<number, GridRow>();\r\n\r\n for (const id of ids) {\r\n const vectorPoints = displayData[id]?.data?.data || [];\r\n\r\n for (const point of vectorPoints) {\r\n const time = point.val.valueTime;\r\n\r\n if (time === undefined) continue;\r\n\r\n let row = rowByTime.get(time);\r\n\r\n if (!row) {\r\n row = {\r\n id: time,\r\n time: time\r\n }\r\n rowByTime.set(time, row);\r\n }\r\n\r\n row[id] = point.val;\r\n }\r\n }\r\n\r\n return Array.from(rowByTime.values()).sort((a, b) => (a.time || 0) - (b.time || 0));\r\n }, [displayData]);\r\n\r\n const columnDefs = useMemo(() => {\r\n if (!vectors) {\r\n return []\r\n }\r\n\r\n const columns: DataGridColDef[] = [\r\n {\r\n field: \"time\",\r\n colId: \"time\",\r\n type: [\"dateTimeColumn\"],\r\n headerName: i18n(\"Vector Time\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n ...vectors.map((v): DataGridColDef => ({\r\n field: `${v.ID}.value`,\r\n colId: String(v.ID),\r\n type: [\"alignRight\"],\r\n valueFormatter: (props) => formatValue(props.value, v.RoundingType, v.RoundingPlaces),\r\n headerName: v.DisplayName,\r\n headerTooltip: v.DisplayName,\r\n group: i18n(\"Basic Columns\"),\r\n }))\r\n ];\r\n\r\n return table?.detailTable?.modifyColumns ? table.detailTable.modifyColumns(columns) : columns;\r\n }, [vectors, table]);\r\n\r\n return (\r\n <Card className={styles.baseLayout}>\r\n <Space direction=\"vertical\" style={{width: \"100%\", height: \"100%\"}}>\r\n <EdaSampleRangePickerPanel\r\n bt={params.bt}\r\n et={params.et}\r\n sampling={params.sampling}\r\n totalCount={1}\r\n pageSize={1}\r\n page={1}\r\n onChangeRange={handleRangeChange}\r\n onChangePage={() => {}}\r\n onChangeVectors={() => {}}\r\n />\r\n <div style={{height: '100%'}}>\r\n <ExtendedDataGrid<GridRow>\r\n columnDefs={columnDefs}\r\n onLoadData={handleLoadData}\r\n defaultGridConfiguration={{\r\n pageSize: -1,\r\n }}\r\n rowData={tableData}\r\n tablePanelStyle={tablePanelStyle}\r\n panelStyle={panelStyle}\r\n settingsMenu={{renderer: handleSettingsMenu}}\r\n toolbar={{\r\n hideRecordCount: true,\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n noRecordsOverlayRenderer={renderNoRecordsOverlay}\r\n getRowStyle={getRowStyle}\r\n rowSelection=\"multiple\"\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n </div>\r\n </Space>\r\n </Card>\r\n );\r\n}\r\n\r\nfunction handleLoadData(callback: (v: number) => void) {\r\n callback(1);\r\n}\r\n\r\nfunction renderNoRecordsOverlay() {\r\n return <Empty description={i18n(\"No records found.\")} styles={{image: {height: \"8vh\"}}}/>;\r\n}\r\n\r\nfunction handleSettingsMenu(menuElements: MenuElement[]) {\r\n return menuElements.filter((e) => ![\"columnFilter\", \"columnsConfig\"].includes(e.key as string));\r\n}"]}
@@ -95,6 +95,7 @@ export function buildTree(data, fullMask, dateMask) {
95
95
  children: children,
96
96
  icon: !d.valid ? React.createElement(FolderFilled, null) : React.createElement(FolderOutlined, null),
97
97
  isLeaf: children.length === 0,
98
+ className: !d.valid ? "disabled-tree-node" : undefined,
98
99
  };
99
100
  });
100
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {EdaPeriodType, EdaPeriodValueType, EdaRoundingType, EdaVectorType} from \"../../constants/edaTypes\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {DaysInWeek, DescriptiveVector, FullPeriodType, TableNode, TreeNode, YearPeriodType} from \"./types\";\r\nimport {FolderFilled, FolderOutlined} from \"@ant-design/icons\";\r\n\r\nexport function getFormattedPeriodTime(periodType: EdaPeriodType, time: dayjs.Dayjs, fullMask: string, dateMask: string): string {\r\n switch (periodType) {\r\n case EdaPeriodType.Base:\r\n return \"\";\r\n case EdaPeriodType.Week:\r\n return i18n(DaysInWeek[time.second()]);\r\n case EdaPeriodType.Day:\r\n return time.format(\"HH:mm\");\r\n case EdaPeriodType.Interval:\r\n return time.format(fullMask);\r\n case EdaPeriodType.Year: {\r\n const year = time.year();\r\n\r\n switch (year) {\r\n case YearPeriodType.Quarter:\r\n return time.format(\"Q\");\r\n case YearPeriodType.Month:\r\n return time.format(\"MMMM\").replace(/^\\w/, (c) => c.toUpperCase());\r\n case YearPeriodType.Week:\r\n return String(time.second());\r\n case YearPeriodType.Day:\r\n return time.format(dateMask);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return \"Invalid\";\r\n}\r\n\r\nexport function getFormattedPeriodValue(valueType: EdaPeriodValueType, value: number, value2: number): string {\r\n switch (valueType) {\r\n case EdaPeriodValueType.Value:\r\n return String(value);\r\n case EdaPeriodValueType.CoefficientPlus:\r\n return `+(${value})`;\r\n case EdaPeriodValueType.CoefficientMul:\r\n return `*(${value})`;\r\n case EdaPeriodValueType.Interpolation:\r\n return `${value} ${i18n(\"To[Till]\")} ${value2}`;\r\n }\r\n}\r\n\r\nexport function toFullPeriodType(data: DescriptiveVector): FullPeriodType {\r\n switch (data.periodType as EdaPeriodType) {\r\n case EdaPeriodType.Base:\r\n return FullPeriodType.Base;\r\n case EdaPeriodType.Interval:\r\n return FullPeriodType.Interval;\r\n case EdaPeriodType.Week:\r\n return FullPeriodType.Week;\r\n case EdaPeriodType.Day:\r\n return FullPeriodType.Day;\r\n case EdaPeriodType.Year:\r\n switch (data.timeFrom.year()) {\r\n case 1972:\r\n return FullPeriodType.YearQuarter;\r\n case 1973:\r\n return FullPeriodType.YearMonth;\r\n case 1974:\r\n return FullPeriodType.YearWeek;\r\n case 1975:\r\n return FullPeriodType.YearDay;\r\n }\r\n }\r\n\r\n throw \"Invalid period type\";\r\n}\r\n\r\nexport function buildTable(data: DescriptiveVector[]): TableNode[] {\r\n const result: TableNode[] = [];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let d = data[i];\r\n\r\n result.push({id: i, ...d});\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function buildTree(data: DescriptiveVector[], fullMask: string, dateMask: string): TreeNode[] {\r\n const parentMap = new Map<number, DescriptiveVector[]>();\r\n\r\n for (const item of data) {\r\n const pId = item.parent ?? 0;\r\n\r\n if (!parentMap.has(pId)) {\r\n parentMap.set(pId, []);\r\n }\r\n\r\n parentMap.get(pId)!.push(item);\r\n }\r\n\r\n function recurse(parentId: number): TreeNode[] {\r\n const childrenData = parentMap.get(parentId) || [];\r\n return childrenData.map((d): TreeNode => {\r\n const children = recurse(d.idx);\r\n return {\r\n key: d.idx,\r\n title: getTitle(d, fullMask, dateMask),\r\n data: d,\r\n children: children,\r\n icon: !d.valid ? <FolderFilled /> : <FolderOutlined />,\r\n isLeaf: children.length === 0,\r\n };\r\n });\r\n }\r\n\r\n return recurse(0);\r\n}\r\n\r\nexport function getPeriodName(period: EdaPeriodType) {\r\n return i18n(\"EdaPeriodType_\" + EdaPeriodType[period]);\r\n}\r\n\r\nexport function canMove(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\"): boolean {\r\n const branch = data.filter((d) => d.parent === selected.parent);\r\n const position = branch.findIndex((b) => b.idx === selected.idx);\r\n\r\n return direction === \"up\" ? position > 0 : position < branch.length - 1;\r\n}\r\n\r\nexport function reorder(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\") {\r\n const result = [...data];\r\n const swapVector = getNextVector(data, selected, direction)!; // always can go UP or DOWN (otherwise button is disabled)\r\n const upperVector = direction === \"up\" ? swapVector : selected;\r\n const insertionIndex = result.findIndex((d) => d.idx === upperVector.idx);\r\n let branch: DescriptiveVector[];\r\n let swap: DescriptiveVector[];\r\n\r\n if (direction === \"up\") {\r\n branch = removeBranch(result, selected.idx);\r\n swap = removeBranch(result, swapVector.idx);\r\n result.splice(insertionIndex, 0, ...branch, ...swap);\r\n } else {\r\n swap = removeBranch(result, swapVector.idx);\r\n branch = removeBranch(result, selected.idx);\r\n result.splice(insertionIndex, 0, ...swap, ...branch);\r\n }\r\n\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function addEntry(data: DescriptiveVector[], selected?: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n\r\n if (!selected) {\r\n result.push(getNewEntry(data.length + 1, 0));\r\n return {data: result, selected};\r\n }\r\n\r\n const selectedIndex = result.findIndex((d) => d.idx === selected.idx);\r\n let insertionIndex = selectedIndex + 1;\r\n\r\n while (insertionIndex < result.length && result[insertionIndex].parent >= selected.idx) {\r\n insertionIndex++;\r\n }\r\n\r\n const newEntry = getNewEntry(data.length + 1, selected.parent);\r\n\r\n result.splice(insertionIndex, 0, newEntry);\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function addSubEntry(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n const selectedIndex = result.findIndex((d) => d.idx === selected.idx);\r\n let insertionIndex = selectedIndex + 1;\r\n\r\n while (insertionIndex < result.length && result[insertionIndex].parent >= selected.idx) {\r\n insertionIndex++;\r\n }\r\n\r\n result.splice(insertionIndex, 0, getNewEntry(data.length + 1, selected.idx));\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function removeEntry(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n let next = getNextVector(data, selected, \"down\");\r\n\r\n if (!next) {\r\n next = getNextVector(data, selected, \"up\");\r\n }\r\n\r\n if (!next && selected.parent !== 0) {\r\n next = data.find((d) => d.idx === selected.parent);\r\n }\r\n\r\n removeBranch(result, selected.idx);\r\n return reindexData(result, next);\r\n}\r\n\r\nexport function removeSubEntries(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n const start = result.findIndex((d) => d.idx === selected.idx);\r\n let count = 0;\r\n\r\n while (start + 1 + count < result.length && result[start + 1 + count].parent >= selected.idx) {\r\n count++;\r\n }\r\n\r\n if (count > 0) {\r\n result.splice(start + 1, count);\r\n }\r\n\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function getOrigModifiedVectors() {\r\n return [\r\n {\r\n ID: 0,\r\n DisplayName: i18n(\"Original vector\"),\r\n Type: EdaVectorType.Change,\r\n RoundingType: EdaRoundingType.NoRounding,\r\n RoundingPlaces: 0,\r\n Name: \"OriginalVector\",\r\n },\r\n {\r\n ID: 1,\r\n DisplayName: i18n(\"Modified vector\"),\r\n Type: EdaVectorType.Change,\r\n RoundingType: EdaRoundingType.NoRounding,\r\n RoundingPlaces: 0,\r\n Name: \"ModifiedVector\",\r\n }\r\n ];\r\n}\r\n\r\nfunction getNewEntry(idx: number, parent: number): DescriptiveVector {\r\n return {\r\n idx,\r\n parent,\r\n value: 0,\r\n value2: 0,\r\n valid: true,\r\n valueType: EdaPeriodValueType.Value,\r\n supplement: 0,\r\n status: 0,\r\n periodType: EdaPeriodType.Base,\r\n timeFrom: dayjs().startOf('year'),\r\n timeTo: dayjs().endOf('year').millisecond(0),\r\n }\r\n}\r\n\r\nfunction removeBranch(data: DescriptiveVector[], idx: number) {\r\n const start = data.findIndex((d) => d.idx === idx);\r\n let count = 1;\r\n\r\n while (start + count < data.length && data[start + count].parent >= idx) {\r\n count++;\r\n }\r\n\r\n return data.splice(start, count);\r\n}\r\n\r\nfunction getTitle(data: DescriptiveVector, fullMask: string, dateMask: string): string {\r\n const from = getFormattedPeriodTime(data.periodType, data.timeFrom, fullMask, dateMask);\r\n const to = getFormattedPeriodTime(data.periodType, data.timeTo, fullMask, dateMask);\r\n let description = \"Invalid period type! \" + data.periodType;\r\n\r\n switch (data.periodType) {\r\n case EdaPeriodType.Base:\r\n description = getPeriodName(data.periodType);\r\n break;\r\n case EdaPeriodType.Week: {\r\n description = i18n(`%{from} To %{to}`, {from, to});\r\n break;\r\n }\r\n case EdaPeriodType.Day:\r\n description = i18n(\"Daily From %{from} To %{to}\", {from, to});\r\n break;\r\n case EdaPeriodType.Interval:\r\n description = i18n(\"From %{from} To %{to}\", {from, to});\r\n break;\r\n case EdaPeriodType.Year: {\r\n if (data.timeFrom.year() !== data.timeTo.year()) {\r\n break;\r\n }\r\n\r\n switch (data.timeFrom.year()) {\r\n case YearPeriodType.Quarter: {\r\n description = i18n(`%{from} To %{to}`, {from: `${from}. ${i18n(\"Quarter\")}`, to: `${to}. ${i18n(\"Quarter\")}`});\r\n break;\r\n }\r\n case YearPeriodType.Month: {\r\n description = i18n(`%{from} To %{to}`, {from: from, to: to});\r\n break;\r\n }\r\n case YearPeriodType.Week: {\r\n description = i18n(`%{from} To %{to}`, {from: `${from}.`, to: `${to}. ${i18n(\"Week\")}`});\r\n break;\r\n }\r\n case YearPeriodType.Day: {\r\n description = i18n(\"From %{from} To %{to}\", {from, to});\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return `${description} => ${getFormattedPeriodValue(data.valueType, data.value, data.value2)}`;\r\n}\r\n\r\nfunction getNextVector(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\"): DescriptiveVector | undefined {\r\n if ((direction === \"up\" && !canMove(data, selected, \"up\")) || (direction === \"down\" && !canMove(data, selected, \"down\"))) {\r\n return undefined;\r\n }\r\n\r\n const sameBranch = data.filter((d) => d.parent === selected.parent);\r\n const sameBranchIndex = sameBranch.findIndex((d) => d.idx === selected.idx);\r\n const swapIndex = direction === \"up\" ? sameBranchIndex - 1 : sameBranchIndex + 1;\r\n return sameBranch[swapIndex];\r\n}\r\n\r\nfunction reindexData(data: DescriptiveVector[], selected?: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const idMap = new Map<number, number>();\r\n let updatedSelected: DescriptiveVector | undefined = selected;\r\n const reindexedResult = data.map((item, index) => {\r\n const newIdx = index + 1;\r\n idMap.set(item.idx, newIdx);\r\n\r\n const newItem = {...item, idx: newIdx};\r\n\r\n if (item.idx === selected?.idx) {\r\n updatedSelected = newItem;\r\n }\r\n\r\n return newItem;\r\n });\r\n const finalData = reindexedResult.map((item) => {\r\n if (item.parent && idMap.has(item.parent)) {\r\n const updatedItem = {...item, parent: idMap.get(item.parent)!};\r\n\r\n if (item.idx === updatedSelected?.idx) {\r\n updatedSelected = updatedItem;\r\n }\r\n\r\n return updatedItem;\r\n }\r\n return item;\r\n });\r\n\r\n return {data: finalData, selected: updatedSelected}\r\n}"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {EdaPeriodType, EdaPeriodValueType, EdaRoundingType, EdaVectorType} from \"../../constants/edaTypes\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {DaysInWeek, DescriptiveVector, FullPeriodType, TableNode, TreeNode, YearPeriodType} from \"./types\";\r\nimport {FolderFilled, FolderOutlined} from \"@ant-design/icons\";\r\n\r\nexport function getFormattedPeriodTime(periodType: EdaPeriodType, time: dayjs.Dayjs, fullMask: string, dateMask: string): string {\r\n switch (periodType) {\r\n case EdaPeriodType.Base:\r\n return \"\";\r\n case EdaPeriodType.Week:\r\n return i18n(DaysInWeek[time.second()]);\r\n case EdaPeriodType.Day:\r\n return time.format(\"HH:mm\");\r\n case EdaPeriodType.Interval:\r\n return time.format(fullMask);\r\n case EdaPeriodType.Year: {\r\n const year = time.year();\r\n\r\n switch (year) {\r\n case YearPeriodType.Quarter:\r\n return time.format(\"Q\");\r\n case YearPeriodType.Month:\r\n return time.format(\"MMMM\").replace(/^\\w/, (c) => c.toUpperCase());\r\n case YearPeriodType.Week:\r\n return String(time.second());\r\n case YearPeriodType.Day:\r\n return time.format(dateMask);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return \"Invalid\";\r\n}\r\n\r\nexport function getFormattedPeriodValue(valueType: EdaPeriodValueType, value: number, value2: number): string {\r\n switch (valueType) {\r\n case EdaPeriodValueType.Value:\r\n return String(value);\r\n case EdaPeriodValueType.CoefficientPlus:\r\n return `+(${value})`;\r\n case EdaPeriodValueType.CoefficientMul:\r\n return `*(${value})`;\r\n case EdaPeriodValueType.Interpolation:\r\n return `${value} ${i18n(\"To[Till]\")} ${value2}`;\r\n }\r\n}\r\n\r\nexport function toFullPeriodType(data: DescriptiveVector): FullPeriodType {\r\n switch (data.periodType as EdaPeriodType) {\r\n case EdaPeriodType.Base:\r\n return FullPeriodType.Base;\r\n case EdaPeriodType.Interval:\r\n return FullPeriodType.Interval;\r\n case EdaPeriodType.Week:\r\n return FullPeriodType.Week;\r\n case EdaPeriodType.Day:\r\n return FullPeriodType.Day;\r\n case EdaPeriodType.Year:\r\n switch (data.timeFrom.year()) {\r\n case 1972:\r\n return FullPeriodType.YearQuarter;\r\n case 1973:\r\n return FullPeriodType.YearMonth;\r\n case 1974:\r\n return FullPeriodType.YearWeek;\r\n case 1975:\r\n return FullPeriodType.YearDay;\r\n }\r\n }\r\n\r\n throw \"Invalid period type\";\r\n}\r\n\r\nexport function buildTable(data: DescriptiveVector[]): TableNode[] {\r\n const result: TableNode[] = [];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let d = data[i];\r\n\r\n result.push({id: i, ...d});\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function buildTree(data: DescriptiveVector[], fullMask: string, dateMask: string): TreeNode[] {\r\n const parentMap = new Map<number, DescriptiveVector[]>();\r\n\r\n for (const item of data) {\r\n const pId = item.parent ?? 0;\r\n\r\n if (!parentMap.has(pId)) {\r\n parentMap.set(pId, []);\r\n }\r\n\r\n parentMap.get(pId)!.push(item);\r\n }\r\n\r\n function recurse(parentId: number): TreeNode[] {\r\n const childrenData = parentMap.get(parentId) || [];\r\n return childrenData.map((d): TreeNode => {\r\n const children = recurse(d.idx);\r\n return {\r\n key: d.idx,\r\n title: getTitle(d, fullMask, dateMask),\r\n data: d,\r\n children: children,\r\n icon: !d.valid ? <FolderFilled /> : <FolderOutlined />,\r\n isLeaf: children.length === 0,\r\n className: !d.valid ? \"disabled-tree-node\" : undefined,\r\n };\r\n });\r\n }\r\n\r\n return recurse(0);\r\n}\r\n\r\nexport function getPeriodName(period: EdaPeriodType) {\r\n return i18n(\"EdaPeriodType_\" + EdaPeriodType[period]);\r\n}\r\n\r\nexport function canMove(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\"): boolean {\r\n const branch = data.filter((d) => d.parent === selected.parent);\r\n const position = branch.findIndex((b) => b.idx === selected.idx);\r\n\r\n return direction === \"up\" ? position > 0 : position < branch.length - 1;\r\n}\r\n\r\nexport function reorder(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\") {\r\n const result = [...data];\r\n const swapVector = getNextVector(data, selected, direction)!; // always can go UP or DOWN (otherwise button is disabled)\r\n const upperVector = direction === \"up\" ? swapVector : selected;\r\n const insertionIndex = result.findIndex((d) => d.idx === upperVector.idx);\r\n let branch: DescriptiveVector[];\r\n let swap: DescriptiveVector[];\r\n\r\n if (direction === \"up\") {\r\n branch = removeBranch(result, selected.idx);\r\n swap = removeBranch(result, swapVector.idx);\r\n result.splice(insertionIndex, 0, ...branch, ...swap);\r\n } else {\r\n swap = removeBranch(result, swapVector.idx);\r\n branch = removeBranch(result, selected.idx);\r\n result.splice(insertionIndex, 0, ...swap, ...branch);\r\n }\r\n\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function addEntry(data: DescriptiveVector[], selected?: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n\r\n if (!selected) {\r\n result.push(getNewEntry(data.length + 1, 0));\r\n return {data: result, selected};\r\n }\r\n\r\n const selectedIndex = result.findIndex((d) => d.idx === selected.idx);\r\n let insertionIndex = selectedIndex + 1;\r\n\r\n while (insertionIndex < result.length && result[insertionIndex].parent >= selected.idx) {\r\n insertionIndex++;\r\n }\r\n\r\n const newEntry = getNewEntry(data.length + 1, selected.parent);\r\n\r\n result.splice(insertionIndex, 0, newEntry);\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function addSubEntry(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n const selectedIndex = result.findIndex((d) => d.idx === selected.idx);\r\n let insertionIndex = selectedIndex + 1;\r\n\r\n while (insertionIndex < result.length && result[insertionIndex].parent >= selected.idx) {\r\n insertionIndex++;\r\n }\r\n\r\n result.splice(insertionIndex, 0, getNewEntry(data.length + 1, selected.idx));\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function removeEntry(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n let next = getNextVector(data, selected, \"down\");\r\n\r\n if (!next) {\r\n next = getNextVector(data, selected, \"up\");\r\n }\r\n\r\n if (!next && selected.parent !== 0) {\r\n next = data.find((d) => d.idx === selected.parent);\r\n }\r\n\r\n removeBranch(result, selected.idx);\r\n return reindexData(result, next);\r\n}\r\n\r\nexport function removeSubEntries(data: DescriptiveVector[], selected: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const result = [...data];\r\n const start = result.findIndex((d) => d.idx === selected.idx);\r\n let count = 0;\r\n\r\n while (start + 1 + count < result.length && result[start + 1 + count].parent >= selected.idx) {\r\n count++;\r\n }\r\n\r\n if (count > 0) {\r\n result.splice(start + 1, count);\r\n }\r\n\r\n return reindexData(result, selected);\r\n}\r\n\r\nexport function getOrigModifiedVectors() {\r\n return [\r\n {\r\n ID: 0,\r\n DisplayName: i18n(\"Original vector\"),\r\n Type: EdaVectorType.Change,\r\n RoundingType: EdaRoundingType.NoRounding,\r\n RoundingPlaces: 0,\r\n Name: \"OriginalVector\",\r\n },\r\n {\r\n ID: 1,\r\n DisplayName: i18n(\"Modified vector\"),\r\n Type: EdaVectorType.Change,\r\n RoundingType: EdaRoundingType.NoRounding,\r\n RoundingPlaces: 0,\r\n Name: \"ModifiedVector\",\r\n }\r\n ];\r\n}\r\n\r\nfunction getNewEntry(idx: number, parent: number): DescriptiveVector {\r\n return {\r\n idx,\r\n parent,\r\n value: 0,\r\n value2: 0,\r\n valid: true,\r\n valueType: EdaPeriodValueType.Value,\r\n supplement: 0,\r\n status: 0,\r\n periodType: EdaPeriodType.Base,\r\n timeFrom: dayjs().startOf('year'),\r\n timeTo: dayjs().endOf('year').millisecond(0),\r\n }\r\n}\r\n\r\nfunction removeBranch(data: DescriptiveVector[], idx: number) {\r\n const start = data.findIndex((d) => d.idx === idx);\r\n let count = 1;\r\n\r\n while (start + count < data.length && data[start + count].parent >= idx) {\r\n count++;\r\n }\r\n\r\n return data.splice(start, count);\r\n}\r\n\r\nfunction getTitle(data: DescriptiveVector, fullMask: string, dateMask: string): string {\r\n const from = getFormattedPeriodTime(data.periodType, data.timeFrom, fullMask, dateMask);\r\n const to = getFormattedPeriodTime(data.periodType, data.timeTo, fullMask, dateMask);\r\n let description = \"Invalid period type! \" + data.periodType;\r\n\r\n switch (data.periodType) {\r\n case EdaPeriodType.Base:\r\n description = getPeriodName(data.periodType);\r\n break;\r\n case EdaPeriodType.Week: {\r\n description = i18n(`%{from} To %{to}`, {from, to});\r\n break;\r\n }\r\n case EdaPeriodType.Day:\r\n description = i18n(\"Daily From %{from} To %{to}\", {from, to});\r\n break;\r\n case EdaPeriodType.Interval:\r\n description = i18n(\"From %{from} To %{to}\", {from, to});\r\n break;\r\n case EdaPeriodType.Year: {\r\n if (data.timeFrom.year() !== data.timeTo.year()) {\r\n break;\r\n }\r\n\r\n switch (data.timeFrom.year()) {\r\n case YearPeriodType.Quarter: {\r\n description = i18n(`%{from} To %{to}`, {from: `${from}. ${i18n(\"Quarter\")}`, to: `${to}. ${i18n(\"Quarter\")}`});\r\n break;\r\n }\r\n case YearPeriodType.Month: {\r\n description = i18n(`%{from} To %{to}`, {from: from, to: to});\r\n break;\r\n }\r\n case YearPeriodType.Week: {\r\n description = i18n(`%{from} To %{to}`, {from: `${from}.`, to: `${to}. ${i18n(\"Week\")}`});\r\n break;\r\n }\r\n case YearPeriodType.Day: {\r\n description = i18n(\"From %{from} To %{to}\", {from, to});\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return `${description} => ${getFormattedPeriodValue(data.valueType, data.value, data.value2)}`;\r\n}\r\n\r\nfunction getNextVector(data: DescriptiveVector[], selected: DescriptiveVector, direction: \"up\" | \"down\"): DescriptiveVector | undefined {\r\n if ((direction === \"up\" && !canMove(data, selected, \"up\")) || (direction === \"down\" && !canMove(data, selected, \"down\"))) {\r\n return undefined;\r\n }\r\n\r\n const sameBranch = data.filter((d) => d.parent === selected.parent);\r\n const sameBranchIndex = sameBranch.findIndex((d) => d.idx === selected.idx);\r\n const swapIndex = direction === \"up\" ? sameBranchIndex - 1 : sameBranchIndex + 1;\r\n return sameBranch[swapIndex];\r\n}\r\n\r\nfunction reindexData(data: DescriptiveVector[], selected?: DescriptiveVector): { data: DescriptiveVector[], selected?: DescriptiveVector } {\r\n const idMap = new Map<number, number>();\r\n let updatedSelected: DescriptiveVector | undefined = selected;\r\n const reindexedResult = data.map((item, index) => {\r\n const newIdx = index + 1;\r\n idMap.set(item.idx, newIdx);\r\n\r\n const newItem = {...item, idx: newIdx};\r\n\r\n if (item.idx === selected?.idx) {\r\n updatedSelected = newItem;\r\n }\r\n\r\n return newItem;\r\n });\r\n const finalData = reindexedResult.map((item) => {\r\n if (item.parent && idMap.has(item.parent)) {\r\n const updatedItem = {...item, parent: idMap.get(item.parent)!};\r\n\r\n if (item.idx === updatedSelected?.idx) {\r\n updatedSelected = updatedItem;\r\n }\r\n\r\n return updatedItem;\r\n }\r\n return item;\r\n });\r\n\r\n return {data: finalData, selected: updatedSelected}\r\n}"]}
@@ -69,6 +69,14 @@ const useStyles = createStyles(({ css, token }) => {
69
69
  display: flex;
70
70
  flex-direction: column;
71
71
  }
72
+
73
+ .disabled-tree-node {
74
+ color: ${token.colorTextDisabled} !important;
75
+
76
+ .ant-tree-iconEle {
77
+ color: ${token.colorTextDisabled} !important;
78
+ }
79
+ }
72
80
  `,
73
81
  tableLayout: css `
74
82
  width: 100%;
@@ -87,7 +95,16 @@ const useStyles = createStyles(({ css, token }) => {
87
95
  width: 100%;
88
96
  display: flex;
89
97
  justify-content: center;
90
- `
98
+ `,
99
+ disabledRow: css `
100
+ background-color: ${token.colorBgContainerDisabled} !important;
101
+ color: ${token.colorTextDisabled} !important;
102
+ cursor: not-allowed;
103
+
104
+ .ag-cell {
105
+ color: ${token.colorTextDisabled} !important;
106
+ }
107
+ `,
91
108
  };
92
109
  });
93
110
  var TabType;
@@ -106,11 +123,27 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
106
123
  const [height, setHeight] = useState(0);
107
124
  const [activeTab, setActiveTab] = useState(TabType.TREE);
108
125
  const gridRef = useRef(null);
109
- const { displayData, isLoading, params, setParams } = useSharedEdaData(api, originalData, tableData, activeTab === TabType.GRAPH || activeTab === TabType.VALUES);
126
+ const { displayData, params, setParams } = useSharedEdaData(api, originalData, tableData, activeTab === TabType.GRAPH || activeTab === TabType.VALUES);
110
127
  const fullMask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);
111
128
  const dateMask = useMemo(() => LocaleHolder.getDateFormat(false), []);
129
+ const rowClassRules = useMemo(() => {
130
+ return {
131
+ [styles.disabledRow]: (params) => {
132
+ return params.data && params.data.valid === false;
133
+ },
134
+ };
135
+ }, [styles.disabledRow]);
112
136
  const handleSave = useCallback(() => {
113
- }, [api, vector]);
137
+ api.setDescriptiveVectorData(vector.ID, tableData.map((t) => ({
138
+ ...t,
139
+ timeFrom: t.timeFrom.valueOf(),
140
+ timeTo: t.timeTo.valueOf(),
141
+ }))).then((result) => {
142
+ if (result.isOk === true) {
143
+ setDataModified(false);
144
+ }
145
+ });
146
+ }, [api, tableData, vector.ID]);
114
147
  const divRef = useCallback((node) => {
115
148
  if (!node) {
116
149
  return;
@@ -140,7 +173,7 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
140
173
  return buildTable(prev.map((row) => row.idx === newData.idx ? { ...row, ...newData } : row));
141
174
  });
142
175
  setDataModified(true);
143
- }, [fullMask, dateMask]);
176
+ }, []);
144
177
  const handleRowSelected = useCallback((row) => {
145
178
  if (row.node.isSelected()) {
146
179
  setSelectedRow(row.data);
@@ -159,7 +192,7 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
159
192
  return buildTable(data);
160
193
  });
161
194
  setDataModified(true);
162
- }, [selectedRow, fullMask, dateMask]);
195
+ }, [selectedRow]);
163
196
  const handleAddEntry = useCallback(() => {
164
197
  setTableData((prev) => {
165
198
  const { data, selected } = addEntry(prev, selectedRow);
@@ -214,7 +247,7 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
214
247
  return formatted;
215
248
  }
216
249
  return "";
217
- }, []);
250
+ }, [dateMask, fullMask]);
218
251
  const selectGridRow = useCallback(() => {
219
252
  if (selectedRow && gridRef.current) {
220
253
  gridRef.current.dataGrid?.gridApi?.forEachNode((node) => {
@@ -226,7 +259,7 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
226
259
  else if (!selectedRow) {
227
260
  gridRef.current?.dataGrid?.gridApi?.deselectAll();
228
261
  }
229
- }, [selectedRow, tableData]);
262
+ }, [selectedRow]);
230
263
  const columnDefs = useMemo(() => [
231
264
  {
232
265
  field: "idx",
@@ -276,7 +309,7 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
276
309
  headerName: i18n("Parent"),
277
310
  group: i18n("Basic Columns"),
278
311
  },
279
- ], []);
312
+ ], [valueFormatter]);
280
313
  const treeData = useMemo(() => {
281
314
  return buildTree(tableData, fullMask, dateMask);
282
315
  }, [tableData, fullMask, dateMask]);
@@ -300,20 +333,21 @@ export const EdaDescriptiveVectorEditorDialog = ({ api, vector, onCancel, onSave
300
333
  React.createElement(ExtendedDataGrid, { ref: gridRef, defaultGridConfiguration: { pageSize: -1 }, columnDefs: columnDefs, onLoadData: (callback) => callback(1), detailPanel: {
301
334
  defaultWidth: 350,
302
335
  renderer: () => selectedRow ? (React.createElement(DescriptiveVectorDetailPanel, { data: selectedRow, onChange: handleDataChanged })) : React.createElement(React.Fragment, null),
303
- }, onGridReady: selectGridRow, onRowDoubleClicked: handleRowDoubleClicked, onRowSelected: handleRowSelected, rowSelection: "single", rowData: tableData }),
336
+ }, rowClassRules: rowClassRules, onGridReady: selectGridRow, onRowDoubleClicked: handleRowDoubleClicked, onRowSelected: handleRowSelected, rowSelection: "single", rowData: tableData }),
304
337
  React.createElement(ControlButtons, { tableData: tableData, onMove: handleMove, selectedRow: selectedRow, addEntry: handleAddEntry, addSubEntry: handleAddSubEntry, removeEntry: handleRemoveEntry, removeSubEntries: handleRemoveSubEntries })))
305
338
  },
306
339
  {
307
340
  key: TabType.GRAPH,
308
341
  label: i18n("Graph"),
309
- children: (React.createElement(GraphPanel, { displayData: displayData, isLoading: isLoading, params: params, onParamsChange: setParams }))
342
+ children: (React.createElement(GraphPanel, { displayData: displayData, params: params, onParamsChange: setParams }))
310
343
  },
311
344
  {
312
345
  key: TabType.VALUES,
313
346
  label: i18n("Values"),
314
- children: (React.createElement(TablePanel, { displayData: displayData, isLoading: isLoading, params: params, onParamsChange: setParams }))
347
+ children: (React.createElement(TablePanel, { displayData: displayData, params: params, onParamsChange: setParams }))
315
348
  }
316
- ], [treeData, columnDefs, originalData, tableData, selectedRow, height, handleRowSelected, handleDataChanged, displayData, isLoading, params, setParams, styles, activeTab]);
349
+ ], [styles.treeLayout, styles.tableLayout, divRef, treeData, height, selectedRow, tableData, handleMove, handleAddEntry, handleAddSubEntry, handleRemoveEntry, handleRemoveSubEntries,
350
+ handleDataChanged, columnDefs, selectGridRow, handleRowDoubleClicked, handleRowSelected, displayData, params, setParams]);
317
351
  useEffect(() => {
318
352
  loadData();
319
353
  }, [loadData]);
@@ -1 +1 @@
1
- {"version":3,"file":"edaDescriptiveVectorEditorDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {ModalDialog, ModalDialogMode, ModalDialogProps} from \"d2coreui/components/modal/modalDialog\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../../api/eda/edaManagerApi\";\r\nimport {Button, Space, Splitter, Tabs, TabsProps, Tree} from \"antd\";\r\nimport {DownOutlined, SaveOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {UndoIcon} from \"d2coreui/components/icons/undoIcon\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {EdaPeriodType, EdaPeriodValueType} from \"../constants/edaTypes\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {RowSelectedEvent, ValueFormatterParams} from \"ag-grid-community\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {DescriptiveVectorDetailPanel} from \"./descriptiveVectorDialog/descriptiveVectorDetailPanel\";\r\nimport {DescriptiveVector, FullPeriodType, TableNode} from \"./descriptiveVectorDialog/types\";\r\nimport {addEntry, addSubEntry, buildTable, buildTree, getFormattedPeriodTime, getPeriodName, removeEntry, removeSubEntries, reorder, toFullPeriodType} from \"./descriptiveVectorDialog/utils\";\r\nimport {ControlButtons} from \"./descriptiveVectorDialog/controlButtons\";\r\nimport {GraphPanel} from \"./descriptiveVectorDialog/graphPanel\";\r\nimport {useSharedEdaData} from \"./descriptiveVectorDialog/useSharedData\";\r\nimport {TablePanel} from \"./descriptiveVectorDialog/tablePanel\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n width: 100%;\r\n\r\n .ant-space-item:first-child {\r\n height: 100%;\r\n }\r\n\r\n .ant-tree-node-content-wrapper {\r\n user-select: none;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n\r\n .ant-tree-title {\r\n white-space: nowrap;\r\n }\r\n }\r\n `,\r\n tabsLayout: css`\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n\r\n .ant-tabs-content {\r\n height: 100%;\r\n background-color: ${token.colorBgContainer};\r\n border-radius: ${token.borderRadius}px;\r\n transition: background-color 0.3s;\r\n }\r\n `,\r\n treeLayout: css`\r\n .tree-splitter {\r\n display: flex;\r\n flex-direction: row;\r\n gap: ${token.paddingXS}px;\r\n }\r\n \r\n .tree-view {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n \r\n .tree-mover {\r\n padding: ${token.paddingXS}px;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n `,\r\n tableLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n gap: ${token.paddingXS}px;\r\n\r\n .tree-mover {\r\n padding: ${token.paddingXS}px;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n `,\r\n buttonsLayout: css`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n `\r\n };\r\n});\r\n\r\nenum TabType {\r\n TREE = \"tree\",\r\n TABLE = \"table\",\r\n GRAPH = \"graph\",\r\n VALUES = \"values\",\r\n}\r\n\r\ninterface Props extends Omit<ModalDialogProps, \"mode\" | \"onOk\"> {\r\n api: EdaManagerApi\r\n vector: TreeItem\r\n onSaved: () => void\r\n}\r\n\r\nexport const EdaDescriptiveVectorEditorDialog: FC<Props> = ({api, vector, onCancel, onSaved, ...modalProps}) => {\r\n const {styles} = useStyles();\r\n\r\n const [originalData, setOriginalData] = useState<TableNode[]>([]);\r\n const [tableData, setTableData] = useState<TableNode[]>([]);\r\n const [dataModified, setDataModified] = useState<boolean>(false);\r\n const [selectedRow, setSelectedRow] = useState<DescriptiveVector>();\r\n const [height, setHeight] = useState<number>(0);\r\n const [activeTab, setActiveTab] = useState<TabType>(TabType.TREE);\r\n\r\n const gridRef = useRef<ExtendedDataGrid<TableNode>>(null);\r\n\r\n const {\r\n displayData,\r\n isLoading,\r\n params,\r\n setParams\r\n } = useSharedEdaData(api, originalData, tableData, activeTab === TabType.GRAPH || activeTab === TabType.VALUES);\r\n\r\n const fullMask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);\r\n const dateMask = useMemo(() => LocaleHolder.getDateFormat(false), []);\r\n\r\n const handleSave = useCallback(() => {\r\n //TODO handle save\r\n }, [api, vector]);\r\n\r\n const divRef = useCallback((node: HTMLDivElement | null) => {\r\n if (!node) {\r\n return;\r\n }\r\n\r\n new ResizeObserver((entries) => {\r\n if (entries[0]) {\r\n setHeight(entries[0].contentRect.height);\r\n }\r\n }).observe(node);\r\n }, []);\r\n\r\n const loadData = useCallback(() => {\r\n api.loadDescriptiveVectorData(vector.ID).then((result) => {\r\n const descriptiveVector = result.map((r): DescriptiveVector => ({...r, timeFrom: dayjs(r.timeFrom), timeTo: dayjs(r.timeTo)}));\r\n const data: TableNode[] = buildTable(descriptiveVector);\r\n\r\n gridRef.current?.showDetailPanel(false);\r\n setOriginalData(data);\r\n setTableData(data);\r\n setDataModified(false);\r\n setSelectedRow(undefined);\r\n });\r\n }, [api, vector]);\r\n\r\n const handleRevert = useCallback(() => {\r\n loadData();\r\n }, [loadData]);\r\n\r\n const handleDataChanged = useCallback((newData: DescriptiveVector) => {\r\n setTableData((prev) => {\r\n return buildTable(prev.map((row) => row.idx === newData.idx ? {...row, ...newData} : row));\r\n });\r\n\r\n setDataModified(true);\r\n }, [fullMask, dateMask]);\r\n\r\n const handleRowSelected = useCallback((row: RowSelectedEvent<TableNode>) => {\r\n if (row.node.isSelected()) {\r\n setSelectedRow(row.data);\r\n }\r\n }, []);\r\n\r\n const handleRowDoubleClicked = useCallback(() => {\r\n gridRef.current?.showDetailPanel(true);\r\n }, []);\r\n\r\n const handleMove = useCallback((direction: \"up\" | \"down\") => {\r\n if (!selectedRow) {\r\n return;\r\n }\r\n\r\n setTableData((prev) => {\r\n const {data, selected} = reorder(prev, selectedRow, direction);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }, [selectedRow, fullMask, dateMask]);\r\n\r\n const handleAddEntry = useCallback(() => {\r\n setTableData((prev) => {\r\n const {data, selected} = addEntry(prev, selectedRow);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }, [selectedRow]);\r\n\r\n const handleAddSubEntry = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = addSubEntry(prev, selectedRow);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const handleRemoveEntry = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = removeEntry(prev, selectedRow);\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const handleRemoveSubEntries = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = removeSubEntries(prev, selectedRow);\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n })\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const valueFormatter = useCallback((props: ValueFormatterParams<TableNode, dayjs.Dayjs>): string => {\r\n if (props.data && props.value) {\r\n const data: TableNode = props.data;\r\n const formatted = getFormattedPeriodTime(data.periodType, props.value, fullMask, dateMask);\r\n\r\n if (props.data.periodType === EdaPeriodType.Year) {\r\n const fullPeriodType = toFullPeriodType(data);\r\n\r\n switch (fullPeriodType) {\r\n case FullPeriodType.YearQuarter:\r\n return `${formatted}. ${i18n(\"Quarter\")}`;\r\n case FullPeriodType.YearWeek:\r\n return `${formatted}. ${i18n(\"Week\")}`;\r\n }\r\n }\r\n\r\n return formatted\r\n }\r\n\r\n return \"\";\r\n }, []);\r\n\r\n const selectGridRow = useCallback(() => {\r\n if (selectedRow && gridRef.current) {\r\n gridRef.current.dataGrid?.gridApi?.forEachNode((node) => {\r\n if (node.data?.idx === selectedRow.idx && !node.isSelected()) {\r\n node.setSelected(true);\r\n }\r\n });\r\n } else if (!selectedRow) {\r\n gridRef.current?.dataGrid?.gridApi?.deselectAll();\r\n }\r\n }, [selectedRow, tableData]);\r\n\r\n const columnDefs = useMemo((): DataGridColDef[] => [\r\n {\r\n field: \"idx\",\r\n colId: \"idx\",\r\n width: 100,\r\n headerName: i18n(\"Index\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"periodType\",\r\n colId: \"periodType\",\r\n valueFormatter: (props) => getPeriodName(props.value),\r\n headerName: i18n(\"Period Type\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"timeFrom\",\r\n colId: \"timeFrom\",\r\n valueFormatter: valueFormatter,\r\n headerName: i18n(\"Period From\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"timeTo\",\r\n colId: \"timeTo\",\r\n valueFormatter: valueFormatter,\r\n headerName: i18n(\"Period To\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"value\",\r\n colId: \"value\",\r\n headerName: i18n(\"Value\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"valueType\",\r\n colId: \"valueType\",\r\n valueFormatter: (props) => i18n(\"EdaPeriodValueType_\" + EdaPeriodValueType[props.value]),\r\n headerName: i18n(\"Value Type\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"parent\",\r\n colId: \"parent\",\r\n valueFormatter: (props) => props.value > 0 ? props.value : \"\",\r\n headerName: i18n(\"Parent\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n ], []);\r\n\r\n const treeData = useMemo(() => {\r\n return buildTree(tableData, fullMask, dateMask);\r\n }, [tableData, fullMask, dateMask]);\r\n\r\n const items = useMemo((): TabsProps[\"items\"] => [\r\n {\r\n key: TabType.TREE,\r\n label: i18n(\"Tree\"),\r\n children: (\r\n <Splitter className={styles.treeLayout}>\r\n <Splitter.Panel className={\"tree-splitter\"}>\r\n <div ref={divRef} className={\"tree-view\"}>\r\n <Tree\r\n showIcon\r\n showLine\r\n treeData={treeData}\r\n virtual\r\n blockNode\r\n switcherIcon={<DownOutlined/>}\r\n height={height}\r\n selectedKeys={selectedRow?.idx ? [selectedRow.idx] : []}\r\n onSelect={(_, info) => {\r\n setSelectedRow(info.selected ? info.node.data : undefined);\r\n }}\r\n />\r\n </div>\r\n <ControlButtons\r\n tableData={tableData}\r\n onMove={handleMove}\r\n selectedRow={selectedRow}\r\n addEntry={handleAddEntry}\r\n addSubEntry={handleAddSubEntry}\r\n removeEntry={handleRemoveEntry}\r\n removeSubEntries={handleRemoveSubEntries}\r\n />\r\n </Splitter.Panel>\r\n <Splitter.Panel defaultSize={350}>\r\n {selectedRow && (\r\n <DescriptiveVectorDetailPanel\r\n data={selectedRow}\r\n onChange={handleDataChanged}\r\n />\r\n )}\r\n </Splitter.Panel>\r\n </Splitter>\r\n )\r\n },\r\n {\r\n key: TabType.TABLE,\r\n label: i18n(\"Table\"),\r\n children: (\r\n <div className={styles.tableLayout}>\r\n <ExtendedDataGrid<TableNode>\r\n ref={gridRef}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={columnDefs}\r\n onLoadData={(callback) => callback(1)}\r\n detailPanel={{\r\n defaultWidth: 350,\r\n renderer: () => selectedRow ? (\r\n <DescriptiveVectorDetailPanel\r\n data={selectedRow}\r\n onChange={handleDataChanged}\r\n />\r\n ) : <></>,\r\n }}\r\n onGridReady={selectGridRow}\r\n onRowDoubleClicked={handleRowDoubleClicked}\r\n onRowSelected={handleRowSelected}\r\n rowSelection={\"single\"}\r\n rowData={tableData}\r\n />\r\n <ControlButtons\r\n tableData={tableData}\r\n onMove={handleMove}\r\n selectedRow={selectedRow}\r\n addEntry={handleAddEntry}\r\n addSubEntry={handleAddSubEntry}\r\n removeEntry={handleRemoveEntry}\r\n removeSubEntries={handleRemoveSubEntries}\r\n />\r\n </div>\r\n )\r\n },\r\n {\r\n key: TabType.GRAPH,\r\n label: i18n(\"Graph\"),\r\n children: (\r\n <GraphPanel\r\n displayData={displayData}\r\n isLoading={isLoading}\r\n params={params}\r\n onParamsChange={setParams}\r\n />\r\n )\r\n },\r\n {\r\n key: TabType.VALUES,\r\n label: i18n(\"Values\"),\r\n children: (\r\n <TablePanel\r\n displayData={displayData}\r\n isLoading={isLoading}\r\n params={params}\r\n onParamsChange={setParams}\r\n />\r\n )\r\n }\r\n ], [treeData, columnDefs, originalData, tableData, selectedRow, height, handleRowSelected, handleDataChanged, displayData, isLoading, params, setParams, styles, activeTab]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, [loadData]);\r\n\r\n useEffect(() => {\r\n selectGridRow();\r\n }, [selectGridRow]);\r\n\r\n return (\r\n <ModalDialog\r\n {...modalProps}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n footer={(\r\n <div className={styles.buttonsLayout}>\r\n <Space.Compact>\r\n <Button\r\n type={\"primary\"}\r\n disabled={!dataModified}\r\n icon={<SaveOutlined/>}\r\n onClick={handleSave}\r\n >\r\n {i18n(\"Save\")}\r\n </Button>\r\n <Button\r\n danger\r\n disabled={!dataModified}\r\n icon={<UndoIcon/>}\r\n onClick={handleRevert}\r\n >\r\n {i18n(\"Revert\")}\r\n </Button>\r\n </Space.Compact>\r\n </div>\r\n )}\r\n onCancel={(event) => {\r\n if (!dataModified) {\r\n onCancel?.(event);\r\n } else {\r\n ModalDialog.confirm({\r\n mode: ModalDialogMode.YES_NO,\r\n title: i18n(\"Discard unsaved changes?\"),\r\n onOk: () => {\r\n onCancel?.(event);\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n <div className={styles.tabsLayout}>\r\n <Tabs\r\n type={\"card\"}\r\n items={items}\r\n style={{height: \"100%\"}}\r\n destroyOnHidden={false}\r\n activeKey={activeTab}\r\n onChange={(key) => setActiveTab(key as TabType)}\r\n />\r\n </div>\r\n </ModalDialog>\r\n )\r\n}"]}
1
+ {"version":3,"file":"edaDescriptiveVectorEditorDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {ModalDialog, ModalDialogMode, ModalDialogProps} from \"d2coreui/components/modal/modalDialog\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../../api/eda/edaManagerApi\";\r\nimport {Button, Space, Splitter, Tabs, TabsProps, Tree} from \"antd\";\r\nimport {DownOutlined, SaveOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {UndoIcon} from \"d2coreui/components/icons/undoIcon\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {EdaPeriodType, EdaPeriodValueType} from \"../constants/edaTypes\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {RowSelectedEvent, ValueFormatterParams} from \"ag-grid-community\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {DescriptiveVectorDetailPanel} from \"./descriptiveVectorDialog/descriptiveVectorDetailPanel\";\r\nimport {DescriptiveVector, FullPeriodType, TableNode} from \"./descriptiveVectorDialog/types\";\r\nimport {addEntry, addSubEntry, buildTable, buildTree, getFormattedPeriodTime, getPeriodName, removeEntry, removeSubEntries, reorder, toFullPeriodType} from \"./descriptiveVectorDialog/utils\";\r\nimport {ControlButtons} from \"./descriptiveVectorDialog/controlButtons\";\r\nimport {GraphPanel} from \"./descriptiveVectorDialog/graphPanel\";\r\nimport {useSharedEdaData} from \"./descriptiveVectorDialog/useSharedData\";\r\nimport {TablePanel} from \"./descriptiveVectorDialog/tablePanel\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n width: 100%;\r\n\r\n .ant-space-item:first-child {\r\n height: 100%;\r\n }\r\n\r\n .ant-tree-node-content-wrapper {\r\n user-select: none;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n\r\n .ant-tree-title {\r\n white-space: nowrap;\r\n }\r\n }\r\n `,\r\n tabsLayout: css`\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n\r\n .ant-tabs-content {\r\n height: 100%;\r\n background-color: ${token.colorBgContainer};\r\n border-radius: ${token.borderRadius}px;\r\n transition: background-color 0.3s;\r\n }\r\n `,\r\n treeLayout: css`\r\n .tree-splitter {\r\n display: flex;\r\n flex-direction: row;\r\n gap: ${token.paddingXS}px;\r\n }\r\n \r\n .tree-view {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n \r\n .tree-mover {\r\n padding: ${token.paddingXS}px;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .disabled-tree-node {\r\n color: ${token.colorTextDisabled} !important;\r\n\r\n .ant-tree-iconEle {\r\n color: ${token.colorTextDisabled} !important;\r\n }\r\n }\r\n `,\r\n tableLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n gap: ${token.paddingXS}px;\r\n\r\n .tree-mover {\r\n padding: ${token.paddingXS}px;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n `,\r\n buttonsLayout: css`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n `,\r\n disabledRow: css`\r\n background-color: ${token.colorBgContainerDisabled} !important;\r\n color: ${token.colorTextDisabled} !important;\r\n cursor: not-allowed;\r\n \r\n .ag-cell {\r\n color: ${token.colorTextDisabled} !important;\r\n }\r\n `,\r\n };\r\n});\r\n\r\nenum TabType {\r\n TREE = \"tree\",\r\n TABLE = \"table\",\r\n GRAPH = \"graph\",\r\n VALUES = \"values\",\r\n}\r\n\r\ninterface Props extends Omit<ModalDialogProps, \"mode\" | \"onOk\"> {\r\n api: EdaManagerApi\r\n vector: TreeItem\r\n onSaved: () => void\r\n}\r\n\r\nexport const EdaDescriptiveVectorEditorDialog: FC<Props> = ({api, vector, onCancel, onSaved, ...modalProps}) => {\r\n const {styles} = useStyles();\r\n\r\n const [originalData, setOriginalData] = useState<TableNode[]>([]);\r\n const [tableData, setTableData] = useState<TableNode[]>([]);\r\n const [dataModified, setDataModified] = useState<boolean>(false);\r\n const [selectedRow, setSelectedRow] = useState<DescriptiveVector>();\r\n const [height, setHeight] = useState<number>(0);\r\n const [activeTab, setActiveTab] = useState<TabType>(TabType.TREE);\r\n\r\n const gridRef = useRef<ExtendedDataGrid<TableNode>>(null);\r\n\r\n const {\r\n displayData,\r\n params,\r\n setParams\r\n } = useSharedEdaData(api, originalData, tableData, activeTab === TabType.GRAPH || activeTab === TabType.VALUES);\r\n\r\n const fullMask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);\r\n const dateMask = useMemo(() => LocaleHolder.getDateFormat(false), []);\r\n\r\n const rowClassRules = useMemo(() => {\r\n return {\r\n [styles.disabledRow]: (params: any) => {\r\n return params.data && params.data.valid === false;\r\n },\r\n };\r\n }, [styles.disabledRow]);\r\n\r\n const handleSave = useCallback(() => {\r\n api.setDescriptiveVectorData(vector.ID, tableData.map((t) => ({\r\n ...t,\r\n timeFrom: t.timeFrom.valueOf(),\r\n timeTo: t.timeTo.valueOf(),\r\n }))).then((result) => {\r\n if (result.isOk === true) {\r\n setDataModified(false);\r\n }\r\n });\r\n }, [api, tableData, vector.ID]);\r\n\r\n const divRef = useCallback((node: HTMLDivElement | null) => {\r\n if (!node) {\r\n return;\r\n }\r\n\r\n new ResizeObserver((entries) => {\r\n if (entries[0]) {\r\n setHeight(entries[0].contentRect.height);\r\n }\r\n }).observe(node);\r\n }, []);\r\n\r\n const loadData = useCallback(() => {\r\n api.loadDescriptiveVectorData(vector.ID).then((result) => {\r\n const descriptiveVector = result.map((r): DescriptiveVector => ({...r, timeFrom: dayjs(r.timeFrom), timeTo: dayjs(r.timeTo)}));\r\n const data: TableNode[] = buildTable(descriptiveVector);\r\n\r\n gridRef.current?.showDetailPanel(false);\r\n setOriginalData(data);\r\n setTableData(data);\r\n setDataModified(false);\r\n setSelectedRow(undefined);\r\n });\r\n }, [api, vector]);\r\n\r\n const handleRevert = useCallback(() => {\r\n loadData();\r\n }, [loadData]);\r\n\r\n const handleDataChanged = useCallback((newData: DescriptiveVector) => {\r\n setTableData((prev) => {\r\n return buildTable(prev.map((row) => row.idx === newData.idx ? {...row, ...newData} : row));\r\n });\r\n\r\n setDataModified(true);\r\n }, []);\r\n\r\n const handleRowSelected = useCallback((row: RowSelectedEvent<TableNode>) => {\r\n if (row.node.isSelected()) {\r\n setSelectedRow(row.data);\r\n }\r\n }, []);\r\n\r\n const handleRowDoubleClicked = useCallback(() => {\r\n gridRef.current?.showDetailPanel(true);\r\n }, []);\r\n\r\n const handleMove = useCallback((direction: \"up\" | \"down\") => {\r\n if (!selectedRow) {\r\n return;\r\n }\r\n\r\n setTableData((prev) => {\r\n const {data, selected} = reorder(prev, selectedRow, direction);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }, [selectedRow]);\r\n\r\n const handleAddEntry = useCallback(() => {\r\n setTableData((prev) => {\r\n const {data, selected} = addEntry(prev, selectedRow);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }, [selectedRow]);\r\n\r\n const handleAddSubEntry = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = addSubEntry(prev, selectedRow);\r\n\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const handleRemoveEntry = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = removeEntry(prev, selectedRow);\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n });\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const handleRemoveSubEntries = useCallback(() => {\r\n if (selectedRow) {\r\n setTableData((prev) => {\r\n const {data, selected} = removeSubEntries(prev, selectedRow);\r\n setSelectedRow(selected);\r\n return buildTable(data);\r\n })\r\n setDataModified(true);\r\n }\r\n }, [selectedRow]);\r\n\r\n const valueFormatter = useCallback((props: ValueFormatterParams<TableNode, dayjs.Dayjs>): string => {\r\n if (props.data && props.value) {\r\n const data: TableNode = props.data;\r\n const formatted = getFormattedPeriodTime(data.periodType, props.value, fullMask, dateMask);\r\n\r\n if (props.data.periodType === EdaPeriodType.Year) {\r\n const fullPeriodType = toFullPeriodType(data);\r\n\r\n switch (fullPeriodType) {\r\n case FullPeriodType.YearQuarter:\r\n return `${formatted}. ${i18n(\"Quarter\")}`;\r\n case FullPeriodType.YearWeek:\r\n return `${formatted}. ${i18n(\"Week\")}`;\r\n }\r\n }\r\n\r\n return formatted\r\n }\r\n\r\n return \"\";\r\n }, [dateMask, fullMask]);\r\n\r\n const selectGridRow = useCallback(() => {\r\n if (selectedRow && gridRef.current) {\r\n gridRef.current.dataGrid?.gridApi?.forEachNode((node) => {\r\n if (node.data?.idx === selectedRow.idx && !node.isSelected()) {\r\n node.setSelected(true);\r\n }\r\n });\r\n } else if (!selectedRow) {\r\n gridRef.current?.dataGrid?.gridApi?.deselectAll();\r\n }\r\n }, [selectedRow]);\r\n\r\n const columnDefs = useMemo((): DataGridColDef[] => [\r\n {\r\n field: \"idx\",\r\n colId: \"idx\",\r\n width: 100,\r\n headerName: i18n(\"Index\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"periodType\",\r\n colId: \"periodType\",\r\n valueFormatter: (props) => getPeriodName(props.value),\r\n headerName: i18n(\"Period Type\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"timeFrom\",\r\n colId: \"timeFrom\",\r\n valueFormatter: valueFormatter,\r\n headerName: i18n(\"Period From\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"timeTo\",\r\n colId: \"timeTo\",\r\n valueFormatter: valueFormatter,\r\n headerName: i18n(\"Period To\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n {\r\n field: \"value\",\r\n colId: \"value\",\r\n headerName: i18n(\"Value\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"valueType\",\r\n colId: \"valueType\",\r\n valueFormatter: (props) => i18n(\"EdaPeriodValueType_\" + EdaPeriodValueType[props.value]),\r\n headerName: i18n(\"Value Type\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n {\r\n field: \"parent\",\r\n colId: \"parent\",\r\n valueFormatter: (props) => props.value > 0 ? props.value : \"\",\r\n headerName: i18n(\"Parent\"),\r\n group: i18n(\"Basic Columns\"),\r\n },\r\n ], [valueFormatter]);\r\n\r\n const treeData = useMemo(() => {\r\n return buildTree(tableData, fullMask, dateMask);\r\n }, [tableData, fullMask, dateMask]);\r\n\r\n const items = useMemo((): TabsProps[\"items\"] => [\r\n {\r\n key: TabType.TREE,\r\n label: i18n(\"Tree\"),\r\n children: (\r\n <Splitter className={styles.treeLayout}>\r\n <Splitter.Panel className={\"tree-splitter\"}>\r\n <div ref={divRef} className={\"tree-view\"}>\r\n <Tree\r\n showIcon\r\n showLine\r\n treeData={treeData}\r\n virtual\r\n blockNode\r\n switcherIcon={<DownOutlined/>}\r\n height={height}\r\n selectedKeys={selectedRow?.idx ? [selectedRow.idx] : []}\r\n onSelect={(_, info) => {\r\n setSelectedRow(info.selected ? info.node.data : undefined);\r\n }}\r\n />\r\n </div>\r\n <ControlButtons\r\n tableData={tableData}\r\n onMove={handleMove}\r\n selectedRow={selectedRow}\r\n addEntry={handleAddEntry}\r\n addSubEntry={handleAddSubEntry}\r\n removeEntry={handleRemoveEntry}\r\n removeSubEntries={handleRemoveSubEntries}\r\n />\r\n </Splitter.Panel>\r\n <Splitter.Panel defaultSize={350}>\r\n {selectedRow && (\r\n <DescriptiveVectorDetailPanel\r\n data={selectedRow}\r\n onChange={handleDataChanged}\r\n />\r\n )}\r\n </Splitter.Panel>\r\n </Splitter>\r\n )\r\n },\r\n {\r\n key: TabType.TABLE,\r\n label: i18n(\"Table\"),\r\n children: (\r\n <div className={styles.tableLayout}>\r\n <ExtendedDataGrid<TableNode>\r\n ref={gridRef}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={columnDefs}\r\n onLoadData={(callback) => callback(1)}\r\n detailPanel={{\r\n defaultWidth: 350,\r\n renderer: () => selectedRow ? (\r\n <DescriptiveVectorDetailPanel\r\n data={selectedRow}\r\n onChange={handleDataChanged}\r\n />\r\n ) : <></>,\r\n }}\r\n rowClassRules={rowClassRules}\r\n onGridReady={selectGridRow}\r\n onRowDoubleClicked={handleRowDoubleClicked}\r\n onRowSelected={handleRowSelected}\r\n rowSelection={\"single\"}\r\n rowData={tableData}\r\n />\r\n <ControlButtons\r\n tableData={tableData}\r\n onMove={handleMove}\r\n selectedRow={selectedRow}\r\n addEntry={handleAddEntry}\r\n addSubEntry={handleAddSubEntry}\r\n removeEntry={handleRemoveEntry}\r\n removeSubEntries={handleRemoveSubEntries}\r\n />\r\n </div>\r\n )\r\n },\r\n {\r\n key: TabType.GRAPH,\r\n label: i18n(\"Graph\"),\r\n children: (\r\n <GraphPanel\r\n displayData={displayData}\r\n params={params}\r\n onParamsChange={setParams}\r\n />\r\n )\r\n },\r\n {\r\n key: TabType.VALUES,\r\n label: i18n(\"Values\"),\r\n children: (\r\n <TablePanel\r\n displayData={displayData}\r\n params={params}\r\n onParamsChange={setParams}\r\n />\r\n )\r\n }\r\n ], [styles.treeLayout, styles.tableLayout, divRef, treeData, height, selectedRow, tableData, handleMove, handleAddEntry, handleAddSubEntry, handleRemoveEntry, handleRemoveSubEntries,\r\n handleDataChanged, columnDefs, selectGridRow, handleRowDoubleClicked, handleRowSelected, displayData, params, setParams]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, [loadData]);\r\n\r\n useEffect(() => {\r\n selectGridRow();\r\n }, [selectGridRow]);\r\n\r\n return (\r\n <ModalDialog\r\n {...modalProps}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n footer={(\r\n <div className={styles.buttonsLayout}>\r\n <Space.Compact>\r\n <Button\r\n type={\"primary\"}\r\n disabled={!dataModified}\r\n icon={<SaveOutlined/>}\r\n onClick={handleSave}\r\n >\r\n {i18n(\"Save\")}\r\n </Button>\r\n <Button\r\n danger\r\n disabled={!dataModified}\r\n icon={<UndoIcon/>}\r\n onClick={handleRevert}\r\n >\r\n {i18n(\"Revert\")}\r\n </Button>\r\n </Space.Compact>\r\n </div>\r\n )}\r\n onCancel={(event) => {\r\n if (!dataModified) {\r\n onCancel?.(event);\r\n } else {\r\n ModalDialog.confirm({\r\n mode: ModalDialogMode.YES_NO,\r\n title: i18n(\"Discard unsaved changes?\"),\r\n onOk: () => {\r\n onCancel?.(event);\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n <div className={styles.tabsLayout}>\r\n <Tabs\r\n type={\"card\"}\r\n items={items}\r\n style={{height: \"100%\"}}\r\n destroyOnHidden={false}\r\n activeKey={activeTab}\r\n onChange={(key) => setActiveTab(key as TabType)}\r\n />\r\n </div>\r\n </ModalDialog>\r\n )\r\n}"]}
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useEffect, useMemo, useState } from "react";
1
+ import React, { useCallback, useMemo, useState } from "react";
2
2
  import { App, Button, Space, Tabs, theme } from "antd";
3
3
  import i18n from "d2core/i18n/i18n";
4
4
  import ExtendedDataGrid from "d2coreui/components/grid/extendedDataGrid";
@@ -42,9 +42,14 @@ export const EdaTableEditorDialog = ({ api, data: { data, from, to }, vector, on
42
42
  const { styles } = useStyles();
43
43
  const { token } = theme.useToken();
44
44
  const { message } = App.useApp();
45
+ const [prevData, setPrevData] = useState();
45
46
  const [editedData, setEditedData] = useState(cloneData(data.data ?? []));
46
47
  const [dataModified, setDataModified] = useState(false);
47
48
  const [visibleVectors, setVisibleVectors] = useState(new Set([vector.ID, -1]));
49
+ if (prevData !== data.data) {
50
+ setPrevData(data.data);
51
+ setEditedData(cloneData(data.data ?? []));
52
+ }
48
53
  const tablePanelStyle = useMemo(() => ({ marginTop: token.paddingXXS }), [token.paddingXXS]);
49
54
  const panelStyle = useMemo(() => ({ padding: `0, ${token.paddingXXS}px` }), [token.paddingXXS]);
50
55
  const chartVectors = useMemo(() => [
@@ -103,7 +108,7 @@ export const EdaTableEditorDialog = ({ api, data: { data, from, to }, vector, on
103
108
  headerName: i18n("Flags"),
104
109
  group: i18n("Basic Columns"),
105
110
  },
106
- ], [vector]);
111
+ ], [onValueSetter, vector.RoundingPlaces, vector.RoundingType]);
107
112
  const getRowStyle = useCallback((params) => {
108
113
  if (params.data.isDirty) {
109
114
  return { backgroundColor: token.colorWarningBg };
@@ -144,7 +149,7 @@ export const EdaTableEditorDialog = ({ api, data: { data, from, to }, vector, on
144
149
  label: i18n("Graph"),
145
150
  children: (React.createElement(EdaChartViewer, { vectors: chartVectors, data: chartData, visibleVectors: visibleVectors, isDataInitialized: true, onToggleVisibility: handleToggleVisibility, onToggleAllVisibility: handleToggleAllVisibility }))
146
151
  }
147
- ], [editedData, columnDefs]);
152
+ ], [columnDefs, editedData, panelStyle, getRowStyle, tablePanelStyle, chartVectors, chartData, visibleVectors, handleToggleVisibility, handleToggleAllVisibility]);
148
153
  const handleSave = useCallback(() => {
149
154
  api.insertVectorValues(vector.ID, editedData.filter((v) => v.isDirty === true)).catch((e) => {
150
155
  message.warning(React.createElement("span", null, i18n("Failed to insert data to vector %{n} with error: '%{e}'", { n: vector.DisplayName, e: e?.value })));
@@ -152,11 +157,11 @@ export const EdaTableEditorDialog = ({ api, data: { data, from, to }, vector, on
152
157
  }).then(() => {
153
158
  onSaved();
154
159
  });
155
- }, [api, vector, editedData]);
160
+ }, [api, vector.ID, vector.DisplayName, editedData, message, onSaved]);
156
161
  const handleRevert = useCallback(() => {
157
162
  setEditedData(cloneData(data.data ?? []));
158
163
  setDataModified(false);
159
- }, []);
164
+ }, [data.data]);
160
165
  const handleMassChange = useCallback((config) => {
161
166
  let modified = false;
162
167
  setEditedData((prev) => {
@@ -171,9 +176,6 @@ export const EdaTableEditorDialog = ({ api, data: { data, from, to }, vector, on
171
176
  });
172
177
  setDataModified(modified);
173
178
  }, []);
174
- useEffect(() => {
175
- setEditedData(cloneData(data.data ?? []));
176
- }, [data.data]);
177
179
  return (React.createElement(ModalDialog, { ...modalProps, mode: "NO_BUTTONS", footer: (React.createElement("div", { className: styles.buttonsLayout },
178
180
  React.createElement(Space.Compact, null,
179
181
  React.createElement(Button, { type: "primary", disabled: !dataModified, icon: React.createElement(SaveOutlined, null), onClick: handleSave }, i18n("Save")),