d2aura 26.0.14 → 26.0.15
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.
- package/api/eda/edaManagerApi.d.ts +7 -3
- package/api/eda/edaManagerApi.js +28 -2
- package/api/eda/edaManagerApi.js.map +1 -1
- package/api/eda/generated/events.d.ts +93 -62
- package/api/eda/generated/events.js +146 -88
- package/api/eda/generated/events.js.map +1 -1
- package/api/eda/generated/structures.d.ts +99 -86
- package/api/eda/generated/structures.js.map +1 -1
- package/core/i18n/d2aura.en.json +14 -0
- package/core/i18n/d2aura.sk.json +62 -0
- package/coreui/components/edaManagerComponent/components/edaChartViewer.js +23 -19
- package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +1 -1
- package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +15 -18
- package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +11 -3
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +31 -24
- package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaTablePanel.js +116 -95
- package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +5 -0
- package/coreui/components/edaManagerComponent/components/edaTreeView.js +189 -60
- package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
- package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +1 -1
- package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
- package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +5 -0
- package/coreui/components/edaManagerComponent/constants/actionTypes.js +7 -0
- package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -0
- package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +13 -0
- package/coreui/components/edaManagerComponent/constants/edaTypes.js +15 -0
- package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +1 -0
- package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js +8 -1
- package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +31 -38
- package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.d.ts +6 -1
- package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js +8 -1
- package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js.map +1 -1
- package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +5 -3
- package/coreui/components/edaManagerComponent/context/useEdaActions.js +21 -7
- package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -1
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.d.ts +13 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js +19 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.d.ts +8 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +171 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +22 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +75 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.d.ts +12 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js +52 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +22 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +130 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.d.ts +58 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js +51 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.d.ts +18 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js +74 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.d.ts +38 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +299 -0
- package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.d.ts +10 -0
- package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +343 -0
- package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/{components → dialogs}/edaTableEditorDialog.js +1 -1
- package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/{components → dialogs}/exportDialog.d.ts +2 -2
- package/coreui/components/edaManagerComponent/{components → dialogs}/exportDialog.js +7 -8
- package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.d.ts +12 -0
- package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js +74 -0
- package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +1 -0
- package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.d.ts +16 -0
- package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js +32 -0
- package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js.map +1 -0
- package/coreui/components/edaManagerComponent/edaDetail.js +21 -7
- package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
- package/coreui/components/edaManagerComponent/edaNavigator.d.ts +2 -0
- package/coreui/components/edaManagerComponent/edaNavigator.js +4 -4
- package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
- package/coreui/components/edaManagerComponent/edaSelect.d.ts +2 -0
- package/coreui/components/edaManagerComponent/edaSelect.js +13 -13
- package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
- package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.d.ts +6 -0
- package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js +7 -0
- package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js.map +1 -0
- package/coreui/components/edaManagerComponent/utils/export.d.ts +1 -1
- package/coreui/components/edaManagerComponent/utils/export.js +20 -23
- package/coreui/components/edaManagerComponent/utils/export.js.map +1 -1
- package/d2configuration/edaManager/{DB.EM_EDA_DescriptiveVector.xml → DB.EM_EDA_VectorScenario.xml} +10 -10
- package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +4 -4
- package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +35 -15
- package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +13 -5
- package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +12 -1
- package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +113 -5
- package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +11 -1
- package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +25 -1
- package/d2configuration/edaManager/{SD.EM_EDA_StatVectorRec_V1.xml → SD.EM_EDA_VectorScenario.xml} +13 -36
- package/package.json +2 -2
- package/coreui/components/edaManagerComponent/components/edaTableEditorDialog.js.map +0 -1
- package/coreui/components/edaManagerComponent/components/exportDialog.js.map +0 -1
- package/d2configuration/edaManager/SD.EM_EDA_DescriptiveVector.xml +0 -179
- package/d2configuration/edaManager/SD.EM_EDA_InsertValuesToVector_V1.xml +0 -227
- package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +0 -178
- package/d2configuration/edaManager/SD.EM_EDA_VectorValues.xml +0 -58
- /package/coreui/components/edaManagerComponent/{components → dialogs}/edaTableEditorDialog.d.ts +0 -0
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
import React, { useCallback, useState } from "react";
|
|
2
|
-
import { ExportDialog } from "../
|
|
2
|
+
import { ExportDialog } from "../dialogs/exportDialog";
|
|
3
|
+
import { InsertTo, InsertVectorDialog } from "../dialogs/insertVectorDialog";
|
|
3
4
|
export const useEdaActions = (api) => {
|
|
4
5
|
const [exportTarget, setExportTarget] = useState();
|
|
6
|
+
const [includeTarget, setIncludeTarget] = useState();
|
|
5
7
|
const [exportOpen, setExportOpen] = useState(false);
|
|
6
|
-
const
|
|
8
|
+
const [includeToScenarioOpen, setIncludeToScenarioOpen] = useState(false);
|
|
9
|
+
const [includeToGroupOpen, setIncludeToGroupOpen] = useState(false);
|
|
10
|
+
const triggerExportToXML = useCallback((data) => {
|
|
7
11
|
setExportTarget({ data });
|
|
8
12
|
setExportOpen(true);
|
|
9
13
|
}, []);
|
|
14
|
+
const triggerIncludeToScenario = useCallback((data) => {
|
|
15
|
+
setIncludeTarget({ data });
|
|
16
|
+
setIncludeToScenarioOpen(true);
|
|
17
|
+
}, []);
|
|
18
|
+
const triggerIncludeToGroup = useCallback((data) => {
|
|
19
|
+
setIncludeTarget({ data });
|
|
20
|
+
setIncludeToGroupOpen(true);
|
|
21
|
+
}, []);
|
|
10
22
|
const renderActionDialogs = () => {
|
|
11
|
-
if (!exportTarget) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
23
|
return (React.createElement(React.Fragment, null,
|
|
15
|
-
React.createElement(ExportDialog, { api: api, open: exportOpen, data: exportTarget.data, onCancel: () => setExportOpen(false), onOk: () => setExportOpen(false) }))
|
|
24
|
+
exportTarget && (React.createElement(ExportDialog, { api: api, open: exportOpen, data: exportTarget.data, onCancel: () => setExportOpen(false), onOk: () => setExportOpen(false) })),
|
|
25
|
+
includeTarget && (React.createElement(React.Fragment, null,
|
|
26
|
+
React.createElement(InsertVectorDialog, { api: api, insertTo: InsertTo.SCENARIO, open: includeToScenarioOpen, data: includeTarget.data, onCancel: () => setIncludeToScenarioOpen(false), onOk: () => setIncludeToScenarioOpen(false) }),
|
|
27
|
+
React.createElement(InsertVectorDialog, { api: api, insertTo: InsertTo.GROUP, open: includeToGroupOpen, data: includeTarget.data, onCancel: () => setIncludeToGroupOpen(false), onOk: () => setIncludeToGroupOpen(false) })))));
|
|
16
28
|
};
|
|
17
29
|
return {
|
|
18
|
-
|
|
30
|
+
triggerExportToXML,
|
|
31
|
+
triggerIncludeToScenario,
|
|
32
|
+
triggerIncludeToGroup,
|
|
19
33
|
renderActionDialogs,
|
|
20
34
|
};
|
|
21
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEdaActions.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/useEdaActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"useEdaActions.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/useEdaActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAW3E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAkB,EAAE,EAAE;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAgB,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAiB,CAAC;IAEpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,IAAe,EAAE,EAAE;QACvD,eAAe,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,wBAAwB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC9D,gBAAgB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC3D,gBAAgB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACzB,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,OAAO,CACH;YACK,YAAY,IAAI,CACb,oBAAC,YAAY,IACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACpC,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAClC,CACL;YACA,aAAa,IAAI,CACd;gBACI,oBAAC,kBAAkB,IACf,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,IAAI,EAAE,qBAAqB,EAC3B,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAC7C;gBACF,oBAAC,kBAAkB,IACf,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,CAAC,KAAK,EACxB,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAC5C,IAAI,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAC1C,CACH,CACN,CACF,CACN,CAAA;IACL,CAAC,CAAA;IAED,OAAO;QACH,kBAAkB;QAClB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACtB,CAAA;AACL,CAAC,CAAA","sourcesContent":["import {TypedData, TypedIndex} from \"../constants/edaTypes\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport React, {useCallback, useState} from \"react\";\r\nimport {ExportDialog} from \"../dialogs/exportDialog\";\r\nimport {InsertTo, InsertVectorDialog} from \"../dialogs/insertVectorDialog\";\r\n\r\n//TODO generic?\r\ninterface ExportTarget {\r\n data: TypedData\r\n}\r\n\r\ninterface IncludeTarget {\r\n data: TypedIndex\r\n}\r\n\r\nexport const useEdaActions = (api: EdaManagerApi) => {\r\n const [exportTarget, setExportTarget] = useState<ExportTarget>();\r\n const [includeTarget, setIncludeTarget] = useState<IncludeTarget>();\r\n\r\n const [exportOpen, setExportOpen] = useState(false);\r\n const [includeToScenarioOpen, setIncludeToScenarioOpen] = useState(false);\r\n const [includeToGroupOpen, setIncludeToGroupOpen] = useState(false);\r\n\r\n const triggerExportToXML = useCallback((data: TypedData) => {\r\n setExportTarget({data});\r\n setExportOpen(true);\r\n }, []);\r\n\r\n const triggerIncludeToScenario = useCallback((data: TypedIndex) => {\r\n setIncludeTarget({data});\r\n setIncludeToScenarioOpen(true);\r\n }, []);\r\n\r\n const triggerIncludeToGroup = useCallback((data: TypedIndex) => {\r\n setIncludeTarget({data});\r\n setIncludeToGroupOpen(true);\r\n }, []);\r\n\r\n const renderActionDialogs = () => {\r\n return (\r\n <>\r\n {exportTarget && (\r\n <ExportDialog\r\n api={api}\r\n open={exportOpen}\r\n data={exportTarget.data}\r\n onCancel={() => setExportOpen(false)}\r\n onOk={() => setExportOpen(false)}\r\n />\r\n )}\r\n {includeTarget && (\r\n <>\r\n <InsertVectorDialog\r\n api={api}\r\n insertTo={InsertTo.SCENARIO}\r\n open={includeToScenarioOpen}\r\n data={includeTarget.data}\r\n onCancel={() => setIncludeToScenarioOpen(false)}\r\n onOk={() => setIncludeToScenarioOpen(false)}\r\n />\r\n <InsertVectorDialog\r\n api={api}\r\n insertTo={InsertTo.GROUP}\r\n open={includeToGroupOpen}\r\n data={includeTarget.data}\r\n onCancel={() => setIncludeToGroupOpen(false)}\r\n onOk={() => setIncludeToGroupOpen(false)}\r\n />\r\n </>\r\n )}\r\n </>\r\n )\r\n }\r\n\r\n return {\r\n triggerExportToXML,\r\n triggerIncludeToScenario,\r\n triggerIncludeToGroup,\r\n renderActionDialogs,\r\n }\r\n}"]}
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { DescriptiveVector, TableNode } from "./types";
|
|
3
|
+
interface Props {
|
|
4
|
+
selectedRow?: DescriptiveVector;
|
|
5
|
+
tableData: TableNode[];
|
|
6
|
+
onMove: (direction: "up" | "down") => void;
|
|
7
|
+
addEntry: () => void;
|
|
8
|
+
addSubEntry: () => void;
|
|
9
|
+
removeEntry: () => void;
|
|
10
|
+
removeSubEntries: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const ControlButtons: FC<Props>;
|
|
13
|
+
export {};
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Button, Flex } from "antd";
|
|
3
|
+
import { canMove } from "./utils";
|
|
4
|
+
import { ArrowDownOutlined, ArrowUpOutlined, FolderAddOutlined, MinusSquareOutlined, PlusSquareOutlined } from "@ant-design/icons";
|
|
5
|
+
import { FolderRemoveOutlined } from "../../icons/folderRemoveOutlined";
|
|
6
|
+
import i18n from "d2core/i18n/i18n";
|
|
7
|
+
export const ControlButtons = ({ selectedRow, tableData, onMove, addEntry, addSubEntry, removeEntry, removeSubEntries }) => {
|
|
8
|
+
return (React.createElement("div", { className: "tree-mover" },
|
|
9
|
+
React.createElement(Flex, { gap: "small", vertical: true },
|
|
10
|
+
React.createElement(Button, { disabled: !selectedRow || !canMove(tableData, selectedRow, "up"), icon: React.createElement(ArrowUpOutlined, null), onClick: () => onMove("up") }),
|
|
11
|
+
React.createElement(Button, { disabled: !selectedRow || !canMove(tableData, selectedRow, "down"), icon: React.createElement(ArrowDownOutlined, null), onClick: () => onMove("down") })),
|
|
12
|
+
React.createElement(Flex, { vertical: true, gap: "middle", justify: "center", style: { flex: 1 } },
|
|
13
|
+
React.createElement(Button, { icon: React.createElement(FolderAddOutlined, null), title: i18n("Add after current entry"), onClick: addEntry }),
|
|
14
|
+
React.createElement(Button, { icon: React.createElement(PlusSquareOutlined, null), disabled: !selectedRow, title: i18n("Add under current entry"), onClick: addSubEntry }),
|
|
15
|
+
React.createElement("div", null),
|
|
16
|
+
React.createElement(Button, { icon: React.createElement(FolderRemoveOutlined, null), disabled: !selectedRow, title: i18n("Remove current entry (with subentries)"), onClick: removeEntry }),
|
|
17
|
+
React.createElement(Button, { icon: React.createElement(MinusSquareOutlined, null), disabled: !selectedRow, title: i18n("Remove subentries from current entry"), onClick: removeSubEntries }))));
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=controlButtons.js.map
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlButtons.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AAEtE,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAYpC,MAAM,CAAC,MAAM,cAAc,GAAc,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAC,EAAE,EAAE;IAChI,OAAO,CACH,6BAAK,SAAS,EAAE,YAAY;QACxB,oBAAC,IAAI,IACD,GAAG,EAAE,OAAO,EACZ,QAAQ;YAER,oBAAC,MAAM,IACH,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAChE,IAAI,EAAE,oBAAC,eAAe,OAAE,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAC7B;YACF,oBAAC,MAAM,IACH,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAClE,IAAI,EAAE,oBAAC,iBAAiB,OAAE,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAC/B,CACC;QACP,oBAAC,IAAI,IACD,QAAQ,QACR,GAAG,EAAE,QAAQ,EACb,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC;YAEhB,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,iBAAiB,OAAE,EAC1B,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC,EACtC,OAAO,EAAE,QAAQ,GACnB;YACF,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,kBAAkB,OAAE,EAC3B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC,EACtC,OAAO,EAAE,WAAW,GACtB;YACF,gCAAO;YACP,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,oBAAoB,OAAE,EAC7B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,wCAAwC,CAAC,EACrD,OAAO,EAAE,WAAW,GACtB;YACF,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,mBAAmB,OAAE,EAC5B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,sCAAsC,CAAC,EACnD,OAAO,EAAE,gBAAgB,GAC3B,CACC,CACL,CACT,CAAC;AACN,CAAC,CAAA","sourcesContent":["import React, {FC} from \"react\";\r\nimport {Button, Flex} from \"antd\";\r\nimport {canMove} from \"./utils\";\r\nimport {ArrowDownOutlined, ArrowUpOutlined, FolderAddOutlined, MinusSquareOutlined, PlusSquareOutlined} from \"@ant-design/icons\";\r\nimport {FolderRemoveOutlined} from \"../../icons/folderRemoveOutlined\";\r\nimport {DescriptiveVector, TableNode} from \"./types\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ninterface Props {\r\n selectedRow?: DescriptiveVector\r\n tableData: TableNode[]\r\n onMove: (direction: \"up\" | \"down\") => void\r\n addEntry: () => void\r\n addSubEntry: () => void\r\n removeEntry: () => void\r\n removeSubEntries: () => void\r\n}\r\n\r\nexport const ControlButtons: FC<Props> = ({selectedRow, tableData, onMove, addEntry, addSubEntry, removeEntry, removeSubEntries}) => {\r\n return (\r\n <div className={\"tree-mover\"}>\r\n <Flex\r\n gap={\"small\"}\r\n vertical\r\n >\r\n <Button\r\n disabled={!selectedRow || !canMove(tableData, selectedRow, \"up\")}\r\n icon={<ArrowUpOutlined/>}\r\n onClick={() => onMove(\"up\")}\r\n />\r\n <Button\r\n disabled={!selectedRow || !canMove(tableData, selectedRow, \"down\")}\r\n icon={<ArrowDownOutlined/>}\r\n onClick={() => onMove(\"down\")}\r\n />\r\n </Flex>\r\n <Flex\r\n vertical\r\n gap={\"middle\"}\r\n justify=\"center\"\r\n style={{flex: 1}}\r\n >\r\n <Button\r\n icon={<FolderAddOutlined/>}\r\n title={i18n(\"Add after current entry\")}\r\n onClick={addEntry}\r\n />\r\n <Button\r\n icon={<PlusSquareOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Add under current entry\")}\r\n onClick={addSubEntry}\r\n />\r\n <div />\r\n <Button\r\n icon={<FolderRemoveOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Remove current entry (with subentries)\")}\r\n onClick={removeEntry}\r\n />\r\n <Button\r\n icon={<MinusSquareOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Remove subentries from current entry\")}\r\n onClick={removeSubEntries}\r\n />\r\n </Flex>\r\n </div>\r\n );\r\n}"]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import React, { useEffect, useMemo, useState } from "react";
|
|
2
|
+
import { Button, Card, Checkbox, Col, Divider, InputNumber, Radio, Row, Space, theme } from "antd";
|
|
3
|
+
import i18n from "d2core/i18n/i18n";
|
|
4
|
+
import { EdaPeriodType, EdaPeriodValueType } from "../../constants/edaTypes";
|
|
5
|
+
import { isEqual } from "lodash";
|
|
6
|
+
import { IntervalInput } from "./intervalInput";
|
|
7
|
+
import { LocaleHolder } from "d2core/i18n/localeHolder";
|
|
8
|
+
import { FullPeriodType } from "./types";
|
|
9
|
+
import { toFullPeriodType } from "./utils";
|
|
10
|
+
import EnumValuePicker from "d2coreui/components/picker/enumValuePicker";
|
|
11
|
+
import dayjs from "d2core/dayjs";
|
|
12
|
+
export const DescriptiveVectorDetailPanel = ({ data, onChange }) => {
|
|
13
|
+
const { token } = theme.useToken();
|
|
14
|
+
const [periodType, setPeriodType] = useState(toFullPeriodType(data));
|
|
15
|
+
const [modifiedData, setModifiedData] = useState({ ...data });
|
|
16
|
+
const fullMask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);
|
|
17
|
+
const dateMask = useMemo(() => LocaleHolder.getDateFormat(false), []);
|
|
18
|
+
const modified = !isEqual(modifiedData, data) || periodType !== toFullPeriodType(data);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
setPeriodType(toFullPeriodType(data));
|
|
21
|
+
setModifiedData({ ...data });
|
|
22
|
+
}, [data]);
|
|
23
|
+
return (React.createElement(Space, { style: { width: "100%", padding: `${token.paddingXXS}px`, overflowY: "auto" }, direction: "vertical" },
|
|
24
|
+
React.createElement(Card, { title: i18n("Period Type") + ":" },
|
|
25
|
+
React.createElement(Radio.Group, { value: periodType, style: { display: 'flex', flexDirection: 'column', gap: '4px' }, onChange: (e) => {
|
|
26
|
+
const period = e.target.value;
|
|
27
|
+
let from;
|
|
28
|
+
let to;
|
|
29
|
+
switch (period) {
|
|
30
|
+
case FullPeriodType.Base:
|
|
31
|
+
case FullPeriodType.Interval:
|
|
32
|
+
from = dayjs().startOf('year');
|
|
33
|
+
to = dayjs().endOf('year').millisecond(0);
|
|
34
|
+
break;
|
|
35
|
+
case FullPeriodType.Day:
|
|
36
|
+
from = dayjs().year(2000).startOf('year');
|
|
37
|
+
to = dayjs().year(2000).startOf('year').endOf('day').millisecond(0);
|
|
38
|
+
break;
|
|
39
|
+
case FullPeriodType.Week:
|
|
40
|
+
from = dayjs().year(2002).startOf('year');
|
|
41
|
+
to = dayjs().year(2002).startOf('year').second(6);
|
|
42
|
+
break;
|
|
43
|
+
case FullPeriodType.YearQuarter:
|
|
44
|
+
from = dayjs().year(1972).startOf('year');
|
|
45
|
+
to = dayjs().year(1972).startOf('year').month(9);
|
|
46
|
+
break;
|
|
47
|
+
case FullPeriodType.YearMonth:
|
|
48
|
+
from = dayjs().year(1973).startOf('year');
|
|
49
|
+
to = dayjs().year(1973).startOf('year').month(11);
|
|
50
|
+
break;
|
|
51
|
+
case FullPeriodType.YearWeek:
|
|
52
|
+
from = dayjs().year(1974).startOf('year').second(1);
|
|
53
|
+
to = dayjs().year(1974).startOf('year').second(52);
|
|
54
|
+
break;
|
|
55
|
+
case FullPeriodType.YearDay:
|
|
56
|
+
from = dayjs().year(1975).startOf('year');
|
|
57
|
+
to = dayjs().year(1975).startOf('year').endOf('year').millisecond(0);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
setPeriodType(period);
|
|
61
|
+
setModifiedData((prev) => ({ ...prev, periodType: toEdaPeriodType(period), timeFrom: from, timeTo: to }));
|
|
62
|
+
} },
|
|
63
|
+
React.createElement(Radio, { value: FullPeriodType.Base }, i18n("Basic (value in every moment)")),
|
|
64
|
+
React.createElement(Divider, { style: { margin: 0 } }),
|
|
65
|
+
React.createElement(Radio, { value: FullPeriodType.Interval }, i18n("Interval")),
|
|
66
|
+
React.createElement(Divider, { style: { margin: 0 } }),
|
|
67
|
+
React.createElement(Radio, { value: FullPeriodType.YearQuarter }, i18n("Quarter of the year (I., II., III, IV.)")),
|
|
68
|
+
React.createElement(Radio, { value: FullPeriodType.YearMonth }, i18n("Month of the year (January - December)")),
|
|
69
|
+
React.createElement(Radio, { value: FullPeriodType.YearWeek }, i18n("Week of the year (1. - 52.)")),
|
|
70
|
+
React.createElement(Radio, { value: FullPeriodType.YearDay }, i18n("Date in year (1.1. - 31.12.)")),
|
|
71
|
+
React.createElement(Divider, { style: { margin: 0 } }),
|
|
72
|
+
React.createElement(Radio, { value: FullPeriodType.Week }, i18n("Day in week (Monday - Sunday)")),
|
|
73
|
+
React.createElement(Divider, { style: { margin: 0 } }),
|
|
74
|
+
React.createElement(Radio, { value: FullPeriodType.Day }, i18n("Time during the day (00:00 - 23:59)")))),
|
|
75
|
+
periodType !== FullPeriodType.Base && (React.createElement(Card, null,
|
|
76
|
+
React.createElement(Row, { gutter: [8, 8] },
|
|
77
|
+
React.createElement(Col, { span: 8 },
|
|
78
|
+
getIntervalDescription(periodType),
|
|
79
|
+
":"),
|
|
80
|
+
React.createElement(Col, { span: 16 },
|
|
81
|
+
React.createElement(Row, { gutter: [8, 8] },
|
|
82
|
+
React.createElement(Col, { span: 6 },
|
|
83
|
+
i18n("From"),
|
|
84
|
+
":"),
|
|
85
|
+
React.createElement(Col, { span: 18 },
|
|
86
|
+
React.createElement(IntervalInput, { value: modifiedData.timeFrom, fullMask: fullMask, dateMask: dateMask, periodType: periodType, onChange: (value) => {
|
|
87
|
+
setModifiedData((prev) => ({ ...prev, timeFrom: value }));
|
|
88
|
+
} })),
|
|
89
|
+
React.createElement(Col, { span: 6 },
|
|
90
|
+
i18n("To"),
|
|
91
|
+
":"),
|
|
92
|
+
React.createElement(Col, { span: 18 },
|
|
93
|
+
React.createElement(IntervalInput, { value: modifiedData.timeTo, fullMask: fullMask, dateMask: dateMask, periodType: periodType, onChange: (value) => {
|
|
94
|
+
setModifiedData((prev) => ({ ...prev, timeTo: value }));
|
|
95
|
+
} }))))))),
|
|
96
|
+
React.createElement(Card, null,
|
|
97
|
+
React.createElement(Row, { gutter: [8, 8] },
|
|
98
|
+
React.createElement(Col, { span: 8 },
|
|
99
|
+
i18n("Operation Type"),
|
|
100
|
+
":"),
|
|
101
|
+
React.createElement(Col, { span: 16 },
|
|
102
|
+
React.createElement(EnumValuePicker, { style: { width: "100%" }, value: modifiedData.valueType, values: EdaPeriodValueType, translateValue: true, translationPrefix: "EdaPeriodValueType_", onChange: (value) => {
|
|
103
|
+
setModifiedData((prev) => ({ ...prev, valueType: value }));
|
|
104
|
+
} })),
|
|
105
|
+
React.createElement(Col, { span: 8 },
|
|
106
|
+
i18n("Value"),
|
|
107
|
+
":"),
|
|
108
|
+
React.createElement(Col, { span: 16 },
|
|
109
|
+
React.createElement(InputNumber, { value: modifiedData.value, style: { width: "100%" }, onChange: (value) => {
|
|
110
|
+
if (value !== null) {
|
|
111
|
+
setModifiedData((prev) => ({ ...prev, value: value }));
|
|
112
|
+
}
|
|
113
|
+
} })),
|
|
114
|
+
modifiedData.valueType === EdaPeriodValueType.Interpolation && (React.createElement(React.Fragment, null,
|
|
115
|
+
React.createElement(Col, { span: 8 },
|
|
116
|
+
i18n("To"),
|
|
117
|
+
":"),
|
|
118
|
+
React.createElement(Col, { span: 16 },
|
|
119
|
+
React.createElement(InputNumber, { value: modifiedData.value2, style: { width: "100%" }, onChange: (value) => {
|
|
120
|
+
if (value !== null) {
|
|
121
|
+
setModifiedData((prev) => ({ ...prev, value2: value }));
|
|
122
|
+
}
|
|
123
|
+
} })))))),
|
|
124
|
+
React.createElement(Card, null,
|
|
125
|
+
React.createElement(Row, { gutter: [8, 8] },
|
|
126
|
+
React.createElement(Col, { span: 12 },
|
|
127
|
+
React.createElement(Checkbox, { checked: modifiedData.valid, onChange: (e) => {
|
|
128
|
+
setModifiedData((prev) => ({ ...prev, valid: e.target.checked }));
|
|
129
|
+
} }, i18n("Valid entry"))),
|
|
130
|
+
React.createElement(Col, { span: 12 },
|
|
131
|
+
i18n("Supplement number"),
|
|
132
|
+
": ",
|
|
133
|
+
modifiedData.supplement))),
|
|
134
|
+
React.createElement("div", { style: { display: "flex", justifyContent: "flex-end" } },
|
|
135
|
+
React.createElement(Button, { type: "primary", disabled: !modified, onClick: () => onChange(modifiedData) }, i18n("Change")))));
|
|
136
|
+
};
|
|
137
|
+
function getIntervalDescription(periodType) {
|
|
138
|
+
switch (periodType) {
|
|
139
|
+
case FullPeriodType.Base:
|
|
140
|
+
return "";
|
|
141
|
+
case FullPeriodType.Interval:
|
|
142
|
+
case FullPeriodType.YearQuarter:
|
|
143
|
+
case FullPeriodType.YearMonth:
|
|
144
|
+
case FullPeriodType.YearWeek:
|
|
145
|
+
return i18n("Annual period");
|
|
146
|
+
case FullPeriodType.Day:
|
|
147
|
+
return i18n("Interval");
|
|
148
|
+
case FullPeriodType.Week:
|
|
149
|
+
return i18n("Daily");
|
|
150
|
+
case FullPeriodType.YearDay:
|
|
151
|
+
return i18n("On the days");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function toEdaPeriodType(period) {
|
|
155
|
+
switch (period) {
|
|
156
|
+
case FullPeriodType.Base:
|
|
157
|
+
return EdaPeriodType.Base;
|
|
158
|
+
case FullPeriodType.Interval:
|
|
159
|
+
return EdaPeriodType.Interval;
|
|
160
|
+
case FullPeriodType.Day:
|
|
161
|
+
return EdaPeriodType.Day;
|
|
162
|
+
case FullPeriodType.Week:
|
|
163
|
+
return EdaPeriodType.Week;
|
|
164
|
+
case FullPeriodType.YearDay:
|
|
165
|
+
case FullPeriodType.YearMonth:
|
|
166
|
+
case FullPeriodType.YearQuarter:
|
|
167
|
+
case FullPeriodType.YearWeek:
|
|
168
|
+
return EdaPeriodType.Year;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=descriptiveVectorDetailPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"descriptiveVectorDetailPanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useEffect, useMemo, useState} from \"react\";\r\nimport {Button, Card, Checkbox, Col, Divider, InputNumber, Radio, Row, Space, theme} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaPeriodType, EdaPeriodValueType} from \"../../constants/edaTypes\";\r\nimport {isEqual} from \"lodash\";\r\nimport {IntervalInput} from \"./intervalInput\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {DescriptiveVector, FullPeriodType} from \"./types\";\r\nimport {toFullPeriodType} from \"./utils\";\r\nimport EnumValuePicker from \"d2coreui/components/picker/enumValuePicker\";\r\nimport dayjs from \"d2core/dayjs\";\r\n\r\ninterface Props {\r\n data: DescriptiveVector\r\n onChange: (data: DescriptiveVector) => void\r\n}\r\n\r\nexport const DescriptiveVectorDetailPanel: FC<Props> = ({data, onChange}) => {\r\n const {token} = theme.useToken();\r\n\r\n const [periodType, setPeriodType] = useState<FullPeriodType>(toFullPeriodType(data));\r\n const [modifiedData, setModifiedData] = useState<DescriptiveVector>({...data});\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 modified = !isEqual(modifiedData, data) || periodType !== toFullPeriodType(data);\r\n\r\n useEffect(() => {\r\n setPeriodType(toFullPeriodType(data));\r\n setModifiedData({...data});\r\n }, [data]);\r\n\r\n return (\r\n <Space style={{width: \"100%\", padding: `${token.paddingXXS}px`, overflowY: \"auto\"}} direction={\"vertical\"}>\r\n <Card title={i18n(\"Period Type\") + \":\"}>\r\n <Radio.Group\r\n value={periodType}\r\n style={{display: 'flex', flexDirection: 'column', gap: '4px'}}\r\n onChange={(e) => {\r\n const period = e.target.value as FullPeriodType;\r\n let from: dayjs.Dayjs;\r\n let to: dayjs.Dayjs;\r\n\r\n switch (period) {\r\n case FullPeriodType.Base:\r\n case FullPeriodType.Interval:\r\n from = dayjs().startOf('year');\r\n to = dayjs().endOf('year').millisecond(0);\r\n break;\r\n case FullPeriodType.Day:\r\n from = dayjs().year(2000).startOf('year');\r\n to = dayjs().year(2000).startOf('year').endOf('day').millisecond(0);\r\n break;\r\n case FullPeriodType.Week:\r\n from = dayjs().year(2002).startOf('year');\r\n to = dayjs().year(2002).startOf('year').second(6);\r\n break;\r\n case FullPeriodType.YearQuarter:\r\n from = dayjs().year(1972).startOf('year');\r\n to = dayjs().year(1972).startOf('year').month(9);\r\n break;\r\n case FullPeriodType.YearMonth:\r\n from = dayjs().year(1973).startOf('year');\r\n to = dayjs().year(1973).startOf('year').month(11);\r\n break;\r\n case FullPeriodType.YearWeek:\r\n from = dayjs().year(1974).startOf('year').second(1);\r\n to = dayjs().year(1974).startOf('year').second(52);\r\n break;\r\n case FullPeriodType.YearDay:\r\n from = dayjs().year(1975).startOf('year');\r\n to = dayjs().year(1975).startOf('year').endOf('year').millisecond(0);\r\n break;\r\n }\r\n\r\n setPeriodType(period);\r\n setModifiedData((prev): DescriptiveVector => ({...prev, periodType: toEdaPeriodType(period), timeFrom: from, timeTo: to}));\r\n }}\r\n >\r\n <Radio value={FullPeriodType.Base}>{i18n(\"Basic (value in every moment)\")}</Radio>\r\n <Divider style={{margin: 0}}/>\r\n <Radio value={FullPeriodType.Interval}>{i18n(\"Interval\")}</Radio>\r\n <Divider style={{margin: 0}}/>\r\n <Radio value={FullPeriodType.YearQuarter}>{i18n(\"Quarter of the year (I., II., III, IV.)\")}</Radio>\r\n <Radio value={FullPeriodType.YearMonth}>{i18n(\"Month of the year (January - December)\")}</Radio>\r\n <Radio value={FullPeriodType.YearWeek}>{i18n(\"Week of the year (1. - 52.)\")}</Radio>\r\n <Radio value={FullPeriodType.YearDay}>{i18n(\"Date in year (1.1. - 31.12.)\")}</Radio>\r\n <Divider style={{margin: 0}}/>\r\n <Radio value={FullPeriodType.Week}>{i18n(\"Day in week (Monday - Sunday)\")}</Radio>\r\n <Divider style={{margin: 0}}/>\r\n <Radio value={FullPeriodType.Day}>{i18n(\"Time during the day (00:00 - 23:59)\")}</Radio>\r\n </Radio.Group>\r\n </Card>\r\n {periodType !== FullPeriodType.Base && (\r\n <Card>\r\n <Row gutter={[8, 8]}>\r\n <Col span={8}>\r\n {getIntervalDescription(periodType)}:\r\n </Col>\r\n <Col span={16}>\r\n <Row gutter={[8, 8]}>\r\n <Col span={6}>{i18n(\"From\")}:</Col>\r\n <Col span={18}>\r\n <IntervalInput\r\n value={modifiedData.timeFrom}\r\n fullMask={fullMask}\r\n dateMask={dateMask}\r\n periodType={periodType}\r\n onChange={(value) => {\r\n setModifiedData((prev): DescriptiveVector => ({...prev, timeFrom: value}))\r\n }}\r\n />\r\n </Col>\r\n\r\n <Col span={6}>{i18n(\"To\")}:</Col>\r\n <Col span={18}>\r\n <IntervalInput\r\n value={modifiedData.timeTo}\r\n fullMask={fullMask}\r\n dateMask={dateMask}\r\n periodType={periodType}\r\n onChange={(value) => {\r\n setModifiedData((prev): DescriptiveVector => ({...prev, timeTo: value}))\r\n }}\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Card>\r\n )}\r\n <Card>\r\n <Row gutter={[8, 8]}>\r\n <Col span={8}>{i18n(\"Operation Type\")}:</Col>\r\n <Col span={16}>\r\n <EnumValuePicker\r\n style={{width: \"100%\"}}\r\n value={modifiedData.valueType}\r\n values={EdaPeriodValueType}\r\n translateValue\r\n translationPrefix={\"EdaPeriodValueType_\"}\r\n onChange={(value) => {\r\n setModifiedData((prev): DescriptiveVector => ({...prev, valueType: value as number}))\r\n }}\r\n />\r\n </Col>\r\n\r\n <Col span={8}>{i18n(\"Value\")}:</Col>\r\n <Col span={16}>\r\n <InputNumber\r\n value={modifiedData.value}\r\n style={{width: \"100%\"}}\r\n onChange={(value) => {\r\n if (value !== null) {\r\n setModifiedData((prev) => ({...prev, value: value}));\r\n }\r\n }}\r\n />\r\n </Col>\r\n\r\n {modifiedData.valueType === EdaPeriodValueType.Interpolation && (\r\n <>\r\n <Col span={8}>{i18n(\"To\")}:</Col>\r\n <Col span={16}>\r\n <InputNumber\r\n value={modifiedData.value2}\r\n style={{width: \"100%\"}}\r\n onChange={(value) => {\r\n if (value !== null) {\r\n setModifiedData((prev) => ({...prev, value2: value}));\r\n }\r\n }}\r\n />\r\n </Col>\r\n </>\r\n )}\r\n </Row>\r\n </Card>\r\n <Card>\r\n <Row gutter={[8, 8]}>\r\n <Col span={12}>\r\n <Checkbox\r\n checked={modifiedData.valid}\r\n onChange={(e) => {\r\n setModifiedData((prev): DescriptiveVector => ({...prev, valid: e.target.checked}));\r\n }}\r\n >\r\n {i18n(\"Valid entry\")}\r\n </Checkbox>\r\n </Col>\r\n <Col span={12}>{i18n(\"Supplement number\")}: {modifiedData.supplement}</Col>\r\n </Row>\r\n </Card>\r\n <div style={{display: \"flex\", justifyContent: \"flex-end\"}}>\r\n <Button\r\n type={\"primary\"}\r\n disabled={!modified}\r\n onClick={() => onChange(modifiedData)}\r\n >\r\n {i18n(\"Change\")}\r\n </Button>\r\n </div>\r\n </Space>\r\n );\r\n}\r\n\r\nfunction getIntervalDescription(periodType: FullPeriodType) {\r\n switch (periodType) {\r\n case FullPeriodType.Base:\r\n return \"\";\r\n case FullPeriodType.Interval:\r\n case FullPeriodType.YearQuarter:\r\n case FullPeriodType.YearMonth:\r\n case FullPeriodType.YearWeek:\r\n return i18n(\"Annual period\");\r\n case FullPeriodType.Day:\r\n return i18n(\"Interval\");\r\n case FullPeriodType.Week:\r\n return i18n(\"Daily\");\r\n case FullPeriodType.YearDay:\r\n return i18n(\"On the days\");\r\n }\r\n}\r\n\r\nfunction toEdaPeriodType(period: FullPeriodType): EdaPeriodType {\r\n switch (period) {\r\n case FullPeriodType.Base:\r\n return EdaPeriodType.Base;\r\n case FullPeriodType.Interval:\r\n return EdaPeriodType.Interval;\r\n case FullPeriodType.Day:\r\n return EdaPeriodType.Day;\r\n case FullPeriodType.Week:\r\n return EdaPeriodType.Week;\r\n case FullPeriodType.YearDay:\r\n case FullPeriodType.YearMonth:\r\n case FullPeriodType.YearQuarter:\r\n case FullPeriodType.YearWeek:\r\n return EdaPeriodType.Year;\r\n }\r\n}"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { EdaSamplingType } from "../../constants/edaTypes";
|
|
3
|
+
import dayjs from "d2core/dayjs";
|
|
4
|
+
import { VectorValuesData } from "../../../../../api/eda/edaManagerApi";
|
|
5
|
+
interface Props {
|
|
6
|
+
displayData: Record<number, {
|
|
7
|
+
data: VectorValuesData;
|
|
8
|
+
}>;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
params: {
|
|
11
|
+
bt: dayjs.Dayjs;
|
|
12
|
+
et: dayjs.Dayjs;
|
|
13
|
+
sampling: EdaSamplingType;
|
|
14
|
+
};
|
|
15
|
+
onParamsChange: (params: {
|
|
16
|
+
bt: dayjs.Dayjs;
|
|
17
|
+
et: dayjs.Dayjs;
|
|
18
|
+
sampling: EdaSamplingType;
|
|
19
|
+
}) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const GraphPanel: FC<Props>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
2
|
+
import { Card, Space } from "antd";
|
|
3
|
+
import { createStyles } from "antd-style";
|
|
4
|
+
import { EdaLoadingOverlay } from "../../components/edaLoadingOverlay";
|
|
5
|
+
import { EdaSampleRangePickerPanel } from "../../components/edaSampleRangePickerPanel";
|
|
6
|
+
import { EdaChartViewer } from "../../components/edaChartViewer";
|
|
7
|
+
import { getOrigModifiedVectors } from "./utils";
|
|
8
|
+
const useStyles = createStyles(({ css, token }) => {
|
|
9
|
+
return {
|
|
10
|
+
baseLayout: css `
|
|
11
|
+
display: flex;
|
|
12
|
+
height: 100%;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
border-top-left-radius: 0;
|
|
16
|
+
border-top-right-radius: 0;
|
|
17
|
+
|
|
18
|
+
> .ant-card-body {
|
|
19
|
+
height: 100%;
|
|
20
|
+
padding: ${token.paddingXS}px;
|
|
21
|
+
|
|
22
|
+
> div {
|
|
23
|
+
height: 100%;
|
|
24
|
+
overflow-x: hidden;
|
|
25
|
+
overflow-y: auto;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.eda-detail-no-data {
|
|
30
|
+
padding: ${token.padding}px;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center !important;
|
|
34
|
+
width: 100%;
|
|
35
|
+
height: 100%;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.ant-space-item:last-child {
|
|
39
|
+
height: 100%;
|
|
40
|
+
}
|
|
41
|
+
`,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
export const GraphPanel = ({ displayData, isLoading, params, onParamsChange }) => {
|
|
45
|
+
const { styles } = useStyles();
|
|
46
|
+
const vectors = useMemo(() => getOrigModifiedVectors(), []);
|
|
47
|
+
const [visibleVectors, setVisibleVectors] = useState(new Set([0, 1]));
|
|
48
|
+
const handleRangeChange = useCallback((bt, et, sampling) => onParamsChange({ bt, et, sampling }), []);
|
|
49
|
+
const handleToggleVisibility = useCallback((id, visible) => {
|
|
50
|
+
setVisibleVectors((prev) => {
|
|
51
|
+
const next = new Set(prev);
|
|
52
|
+
if (visible) {
|
|
53
|
+
next.add(id);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
next.delete(id);
|
|
57
|
+
}
|
|
58
|
+
return next;
|
|
59
|
+
});
|
|
60
|
+
}, []);
|
|
61
|
+
const handleToggleAllVisibility = useCallback((visible) => {
|
|
62
|
+
if (visible) {
|
|
63
|
+
setVisibleVectors(new Set([0, 1]));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
setVisibleVectors(new Set());
|
|
67
|
+
}
|
|
68
|
+
}, []);
|
|
69
|
+
return (React.createElement(Card, { className: styles.baseLayout },
|
|
70
|
+
isLoading && React.createElement(EdaLoadingOverlay, null),
|
|
71
|
+
React.createElement(Space, { direction: "vertical", style: { width: "100%", height: "100%" } },
|
|
72
|
+
React.createElement(EdaSampleRangePickerPanel, { bt: params.bt, et: params.et, sampling: params.sampling, totalCount: 1, pageSize: 1, loading: isLoading, page: 1, onChangeRange: handleRangeChange, onChangePage: () => { }, onChangeVectors: () => { } }),
|
|
73
|
+
React.createElement(EdaChartViewer, { vectors: vectors, data: displayData, visibleVectors: visibleVectors, isDataInitialized: true, onToggleVisibility: handleToggleVisibility, onToggleAllVisibility: handleToggleAllVisibility }))));
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=graphPanel.js.map
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphPanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useMemo, useState} from \"react\";\r\nimport {Card, Space} from \"antd\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {EdaLoadingOverlay} from \"../../components/edaLoadingOverlay\";\r\nimport {EdaSampleRangePickerPanel} from \"../../components/edaSampleRangePickerPanel\";\r\nimport {EdaSamplingType} from \"../../constants/edaTypes\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {VectorValuesData} from \"../../../../../api/eda/edaManagerApi\";\r\nimport {EdaChartViewer} from \"../../components/edaChartViewer\";\r\nimport {getOrigModifiedVectors} from \"./utils\";\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 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 GraphPanel: FC<Props> = ({displayData, isLoading, params, onParamsChange}) => {\r\n const {styles} = useStyles();\r\n\r\n const vectors = useMemo(() => getOrigModifiedVectors(), []);\r\n const [visibleVectors, setVisibleVectors] = useState<Set<number>>(new Set([0, 1]));\r\n\r\n const handleRangeChange = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => onParamsChange({bt, et, sampling}), []);\r\n\r\n const handleToggleVisibility = useCallback((id: number, visible: boolean) => {\r\n setVisibleVectors((prev) => {\r\n const next = new Set(prev);\r\n\r\n if (visible) {\r\n next.add(id);\r\n } else {\r\n next.delete(id);\r\n }\r\n\r\n return next;\r\n });\r\n }, []);\r\n\r\n const handleToggleAllVisibility = useCallback((visible: boolean) => {\r\n if (visible) {\r\n setVisibleVectors(new Set([0, 1]));\r\n } else {\r\n setVisibleVectors(new Set());\r\n }\r\n }, []);\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 <EdaChartViewer\r\n vectors={vectors}\r\n data={displayData}\r\n visibleVectors={visibleVectors}\r\n isDataInitialized\r\n onToggleVisibility={handleToggleVisibility}\r\n onToggleAllVisibility={handleToggleAllVisibility}\r\n />\r\n </Space>\r\n </Card>\r\n );\r\n}"]}
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import dayjs from "d2core/dayjs";
|
|
3
|
+
import { FullPeriodType } from "./types";
|
|
4
|
+
interface Props {
|
|
5
|
+
value: dayjs.Dayjs;
|
|
6
|
+
fullMask: string;
|
|
7
|
+
dateMask: string;
|
|
8
|
+
periodType: FullPeriodType;
|
|
9
|
+
onChange: (value: dayjs.Dayjs) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const IntervalInput: FC<Props>;
|
|
12
|
+
export {};
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DatePicker, InputNumber, TimePicker } from "antd";
|
|
3
|
+
import DateTimeInput from "d2coreui/components/date/dateTimeInput";
|
|
4
|
+
import EnumValuePicker from "d2coreui/components/picker/enumValuePicker";
|
|
5
|
+
import { DaysInWeek, FullPeriodType, MonthsInYear, QuarterType, YearPeriodType } from "./types";
|
|
6
|
+
export const IntervalInput = ({ value, fullMask, dateMask, periodType, onChange }) => {
|
|
7
|
+
switch (periodType) {
|
|
8
|
+
case FullPeriodType.Day:
|
|
9
|
+
return (React.createElement(TimePicker, { value: value, style: { width: "100%" }, onChange: onChange, allowClear: false, showSecond: false }));
|
|
10
|
+
case FullPeriodType.Interval:
|
|
11
|
+
return (React.createElement(DateTimeInput, { value: value, mask: fullMask, allowClear: false, style: { width: "100%" }, onChange: (t) => {
|
|
12
|
+
if (t !== null) {
|
|
13
|
+
onChange(t);
|
|
14
|
+
}
|
|
15
|
+
} }));
|
|
16
|
+
case FullPeriodType.Week: {
|
|
17
|
+
const v = value.second();
|
|
18
|
+
return (React.createElement(EnumValuePicker, { values: DaysInWeek, translateValue: true, value: v, style: { width: "100%" }, onChange: (val) => {
|
|
19
|
+
onChange(value.second(val));
|
|
20
|
+
} }));
|
|
21
|
+
}
|
|
22
|
+
case FullPeriodType.YearQuarter: {
|
|
23
|
+
const v = Number(value.format("Q"));
|
|
24
|
+
return (React.createElement(EnumValuePicker, { values: QuarterType, translateValue: true, translationPrefix: "QuarterType_", value: v, style: { width: "100%" }, onChange: (val) => {
|
|
25
|
+
const targetQuarter = val;
|
|
26
|
+
const monthOffset = value.month() % 3;
|
|
27
|
+
const targetMonth = ((targetQuarter - 1) * 3) + monthOffset;
|
|
28
|
+
onChange(value.month(targetMonth));
|
|
29
|
+
} }));
|
|
30
|
+
}
|
|
31
|
+
case FullPeriodType.YearMonth: {
|
|
32
|
+
const v = value.month();
|
|
33
|
+
return (React.createElement(EnumValuePicker, { values: MonthsInYear, translateValue: true, value: v, style: { width: "100%" }, onChange: (val) => {
|
|
34
|
+
onChange(value.month(val));
|
|
35
|
+
} }));
|
|
36
|
+
}
|
|
37
|
+
case FullPeriodType.YearWeek: {
|
|
38
|
+
return (React.createElement(InputNumber, { value: value.second(), min: 1, max: 52, style: { width: "100%" }, onChange: (val) => {
|
|
39
|
+
if (val) {
|
|
40
|
+
onChange(value.second(val));
|
|
41
|
+
}
|
|
42
|
+
} }));
|
|
43
|
+
}
|
|
44
|
+
case FullPeriodType.YearDay: {
|
|
45
|
+
return (React.createElement(DatePicker, { format: dateMask, value: value, style: { width: "100%" }, allowClear: false, onChange: (val) => {
|
|
46
|
+
onChange(val.year(YearPeriodType.Day));
|
|
47
|
+
} }));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return React.createElement(React.Fragment, null);
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=intervalInput.js.map
|
package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intervalInput.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC} from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {DatePicker, InputNumber, TimePicker} from \"antd\";\r\nimport DateTimeInput from \"d2coreui/components/date/dateTimeInput\";\r\nimport EnumValuePicker from \"d2coreui/components/picker/enumValuePicker\";\r\nimport {DaysInWeek, FullPeriodType, MonthsInYear, QuarterType, YearPeriodType} from \"./types\";\r\n\r\ninterface Props {\r\n value: dayjs.Dayjs\r\n fullMask: string\r\n dateMask: string\r\n periodType: FullPeriodType\r\n onChange: (value: dayjs.Dayjs) => void\r\n}\r\n\r\nexport const IntervalInput: FC<Props> = ({value, fullMask, dateMask, periodType, onChange}) => {\r\n switch (periodType) {\r\n case FullPeriodType.Day:\r\n return (\r\n <TimePicker\r\n value={value}\r\n style={{width: \"100%\"}}\r\n onChange={onChange}\r\n allowClear={false}\r\n showSecond={false}\r\n />\r\n );\r\n case FullPeriodType.Interval:\r\n return (\r\n <DateTimeInput\r\n value={value}\r\n mask={fullMask}\r\n allowClear={false}\r\n style={{width: \"100%\"}}\r\n onChange={(t) => {\r\n if (t !== null) {\r\n onChange(t);\r\n }\r\n }}\r\n />\r\n );\r\n case FullPeriodType.Week: {\r\n const v = value.second();\r\n return (\r\n <EnumValuePicker\r\n values={DaysInWeek}\r\n translateValue\r\n value={v}\r\n style={{width: \"100%\"}}\r\n onChange={(val) => {\r\n onChange(value.second(val as number));\r\n }}\r\n />\r\n );\r\n }\r\n case FullPeriodType.YearQuarter: {\r\n const v = Number(value.format(\"Q\"));\r\n return (\r\n <EnumValuePicker\r\n values={QuarterType}\r\n translateValue\r\n translationPrefix={\"QuarterType_\"}\r\n value={v}\r\n style={{width: \"100%\"}}\r\n onChange={(val) => {\r\n const targetQuarter = val as number;\r\n const monthOffset = value.month() % 3;\r\n const targetMonth = ((targetQuarter - 1) * 3) + monthOffset;\r\n\r\n onChange(value.month(targetMonth));\r\n }}\r\n />\r\n )\r\n }\r\n case FullPeriodType.YearMonth: {\r\n const v = value.month();\r\n return (\r\n <EnumValuePicker\r\n values={MonthsInYear}\r\n translateValue\r\n value={v}\r\n style={{width: \"100%\"}}\r\n onChange={(val) => {\r\n onChange(value.month(val as number));\r\n }}\r\n />\r\n );\r\n }\r\n case FullPeriodType.YearWeek: {\r\n return (\r\n <InputNumber\r\n value={value.second()}\r\n min={1}\r\n max={52}\r\n style={{width: \"100%\"}}\r\n onChange={(val) => {\r\n if (val) {\r\n onChange(value.second(val));\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n case FullPeriodType.YearDay: {\r\n return (\r\n <DatePicker\r\n format={dateMask}\r\n value={value}\r\n style={{width: \"100%\"}}\r\n allowClear={false}\r\n onChange={(val) => {\r\n onChange(val.year(YearPeriodType.Day));\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n return <></>\r\n}"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { VectorValuesData } from "../../../../../api/eda/edaManagerApi";
|
|
3
|
+
import dayjs from "d2core/dayjs";
|
|
4
|
+
import { EdaSamplingType } from "../../constants/edaTypes";
|
|
5
|
+
interface Props {
|
|
6
|
+
displayData: Record<number, {
|
|
7
|
+
data: VectorValuesData;
|
|
8
|
+
}>;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
params: {
|
|
11
|
+
bt: dayjs.Dayjs;
|
|
12
|
+
et: dayjs.Dayjs;
|
|
13
|
+
sampling: EdaSamplingType;
|
|
14
|
+
};
|
|
15
|
+
onParamsChange: (params: {
|
|
16
|
+
bt: dayjs.Dayjs;
|
|
17
|
+
et: dayjs.Dayjs;
|
|
18
|
+
sampling: EdaSamplingType;
|
|
19
|
+
}) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const TablePanel: FC<Props>;
|
|
22
|
+
export {};
|