d2aura 26.0.17 → 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 (37) hide show
  1. package/api/eda/edaManagerApi.d.ts +5 -3
  2. package/api/eda/edaManagerApi.js +36 -2
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +63 -61
  5. package/api/eda/generated/events.js +143 -141
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +35 -6
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/api/webAuthn/webAuthnManageApi.js +2 -2
  10. package/api/webAuthn/webAuthnManageApi.js.map +1 -1
  11. package/core/i18n/d2aura.sk.json +4 -0
  12. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +2 -1
  13. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  14. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +4 -1
  15. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  16. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +57 -46
  17. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  18. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +2 -2
  19. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -1
  20. package/coreui/components/edaManagerComponent/dialogs/importDialog.js +55 -4
  21. package/coreui/components/edaManagerComponent/dialogs/importDialog.js.map +1 -1
  22. package/coreui/components/edaManagerComponent/dialogs/importExport/import.d.ts +7 -0
  23. package/coreui/components/edaManagerComponent/dialogs/importExport/import.js.map +1 -1
  24. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.d.ts +8 -1
  25. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js +10 -4
  26. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js.map +1 -1
  27. package/coreui/components/edaManagerComponent/edaDetail.d.ts +2 -3
  28. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  29. package/coreui/components/edaManagerComponent/utils/utils.d.ts +1 -2
  30. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  31. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +4 -0
  32. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +34 -0
  33. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +5 -5
  34. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +18 -2
  35. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +377 -16
  36. package/d2configuration/edaManager/SD.EM_Tree_Item.xml +22 -0
  37. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"edaTypes.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/constants/edaTypes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,aAeX;AAfD,WAAY,aAAa;IACrB,qEAAkB,CAAA;IAClB,iDAAI,CAAA;IACJ,+CAAG,CAAA;IACH,+DAAW,CAAA;IACX,yDAAQ,CAAA;IACR,6EAAkB,CAAA;IAClB,yDAAQ,CAAA;IACR,uDAAO,CAAA;IACP,qDAAM,CAAA;IACN,8DAAU,CAAA;IACV,kDAAI,CAAA;IACJ,0DAAQ,CAAA;IACR,kEAAY,CAAA;IACZ,8DAAU,CAAA;AACd,CAAC,EAfW,aAAa,KAAb,aAAa,QAexB;AAED,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,2DAAS,CAAA;IACT,iEAAQ,CAAA;AACZ,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,iEAAc,CAAA;IACd,yEAAc,CAAA;IACd,2DAAO,CAAA;IACP,uDAAK,CAAA;AACT,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,qDAAU,CAAA;IACV,uDAAO,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,iEAAS,CAAA;IACT,iEAAK,CAAA;IACL,iEAAK,CAAA;IACL,iEAAK,CAAA;AACT,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,4DAAY,CAAA;IACZ,2DAAW,CAAA;IACX,2EAAoB,CAAA;IACpB,wDAAW,CAAA;IACX,uDAAW,CAAA;IACX,0DAAgB,CAAA;IAChB,6DAAkB,CAAA;IAClB,iEAAwB,CAAA;IACxB,oEAAyB,CAAA;IACzB,4DAAyB,CAAA;IACzB,gEAA2B,CAAA;AAC/B,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAN,IAAkB,MAKjB;AALD,WAAkB,MAAM;IACpB,uCAAM,CAAA;IACN,qCAAK,CAAA;IACL,2CAAQ,CAAA;IACR,iCAAG,CAAA;AACP,CAAC,EALiB,MAAM,KAAN,MAAM,QAKvB;AAED,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,2CAAU,CAAA;IACV,yCAAK,CAAA;IACL,2CAAM,CAAA;IACN,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,yDAAa,CAAA;AACjB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,iDAAQ,CAAA;IACR,iDAAI,CAAA;IACJ,iDAAI,CAAA;IACJ,+CAAG,CAAA;IACH,yDAAQ,CAAA;AACZ,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,6DAAS,CAAA;IACT,iFAAe,CAAA;IACf,+EAAc,CAAA;IACd,6EAAa,CAAA;AACjB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B","sourcesContent":["import {GroupData, ScenarioData, TreeItem, VectorData} from \"../../../../api/eda/edaManagerApi\";\r\n\r\nexport enum EdaVectorType {\r\n FifteenMinutes = 1,\r\n Hour,\r\n Day,\r\n Descriptive,\r\n Interval,\r\n FifteenMinutesCalc,\r\n HourCalc,\r\n DayCalc,\r\n Change,\r\n ChangeCalc,\r\n Pair,\r\n Periodic,\r\n PeriodicCalc,\r\n Functional,\r\n}\r\n\r\nexport enum EdaValueClassType {\r\n Value = 1,\r\n Integral,\r\n}\r\n\r\nexport enum EdaRoundingType {\r\n NoRounding = 1,\r\n RoundToNearest,\r\n Ceiling,\r\n Floor,\r\n}\r\n\r\nexport enum EdaAccessType {\r\n Public = 1,\r\n Private,\r\n}\r\n\r\nexport enum EdaUserInputFlagType {\r\n FlagA = 0,\r\n FlagB,\r\n FlagC,\r\n FlagD\r\n}\r\n\r\nexport enum EdaSamplingType {\r\n Changes = -1,\r\n Default = 0,\r\n FifteenMinutes = 900,\r\n Hour = 3600,\r\n Day = 86400,\r\n Week = 7 * 86400,\r\n Month = 30 * 86400,\r\n Quarter = 3 * 30 * 86400,\r\n HalfYear = 6 * 30 * 86400,\r\n Year = 4 * 3 * 30 * 86400,\r\n Season = 6 * 30 * 86400 + 1\r\n}\r\n\r\nexport const enum IdType {\r\n VECTOR,\r\n GROUP,\r\n SCENARIO,\r\n SET,\r\n}\r\n\r\nexport enum StepType {\r\n Hourly = 0,\r\n Daily,\r\n Weekly,\r\n Monthly,\r\n Yearly,\r\n WholeInterval,\r\n}\r\n\r\nexport enum EdaPeriodType {\r\n Base = 1,\r\n Year,\r\n Week,\r\n Day,\r\n Interval,\r\n}\r\n\r\nexport enum EdaPeriodValueType {\r\n Value = 1,\r\n CoefficientPlus,\r\n CoefficientMul,\r\n Interpolation\r\n}\r\n\r\nexport type TypedIndex = { type: IdType, id: number }\r\n\r\nexport type TypedData =\r\n | {type: IdType.VECTOR; data: VectorData}\r\n | {type: IdType.GROUP; data: GroupData}\r\n | {type: IdType.SCENARIO; data: ScenarioData}\r\n | {type: IdType.SET, data: TreeItem[]}"]}
1
+ {"version":3,"file":"edaTypes.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/constants/edaTypes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,aAeX;AAfD,WAAY,aAAa;IACrB,qEAAkB,CAAA;IAClB,iDAAI,CAAA;IACJ,+CAAG,CAAA;IACH,+DAAW,CAAA;IACX,yDAAQ,CAAA;IACR,6EAAkB,CAAA;IAClB,yDAAQ,CAAA;IACR,uDAAO,CAAA;IACP,qDAAM,CAAA;IACN,8DAAU,CAAA;IACV,kDAAI,CAAA;IACJ,0DAAQ,CAAA;IACR,kEAAY,CAAA;IACZ,8DAAU,CAAA;AACd,CAAC,EAfW,aAAa,KAAb,aAAa,QAexB;AAED,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,2DAAS,CAAA;IACT,iEAAQ,CAAA;AACZ,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,iEAAc,CAAA;IACd,yEAAc,CAAA;IACd,2DAAO,CAAA;IACP,uDAAK,CAAA;AACT,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,qDAAU,CAAA;IACV,uDAAO,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,iEAAS,CAAA;IACT,iEAAK,CAAA;IACL,iEAAK,CAAA;IACL,iEAAK,CAAA;AACT,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,4DAAY,CAAA;IACZ,2DAAW,CAAA;IACX,2EAAoB,CAAA;IACpB,wDAAW,CAAA;IACX,uDAAW,CAAA;IACX,0DAAgB,CAAA;IAChB,6DAAkB,CAAA;IAClB,iEAAwB,CAAA;IACxB,oEAAyB,CAAA;IACzB,4DAAyB,CAAA;IACzB,gEAA2B,CAAA;AAC/B,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAN,IAAkB,MAKjB;AALD,WAAkB,MAAM;IACpB,uCAAM,CAAA;IACN,qCAAK,CAAA;IACL,2CAAQ,CAAA;IACR,iCAAG,CAAA;AACP,CAAC,EALiB,MAAM,KAAN,MAAM,QAKvB;AAED,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,2CAAU,CAAA;IACV,yCAAK,CAAA;IACL,2CAAM,CAAA;IACN,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,yDAAa,CAAA;AACjB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,iDAAQ,CAAA;IACR,iDAAI,CAAA;IACJ,iDAAI,CAAA;IACJ,+CAAG,CAAA;IACH,yDAAQ,CAAA;AACZ,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,6DAAS,CAAA;IACT,iFAAe,CAAA;IACf,+EAAc,CAAA;IACd,6EAAa,CAAA;AACjB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B","sourcesContent":["import {GroupData, ScenarioData, TreeItem, VectorData} from \"../../../../api/eda/edaManagerApi\";\r\n\r\nexport enum EdaVectorType {\r\n FifteenMinutes = 1,\r\n Hour,\r\n Day,\r\n Descriptive,\r\n Interval,\r\n FifteenMinutesCalc,\r\n HourCalc,\r\n DayCalc,\r\n Change,\r\n ChangeCalc,\r\n Pair,\r\n Periodic,\r\n PeriodicCalc,\r\n Functional,\r\n}\r\n\r\nexport enum EdaValueClassType {\r\n Value = 1,\r\n Integral,\r\n}\r\n\r\nexport enum EdaRoundingType {\r\n NoRounding = 1,\r\n RoundToNearest,\r\n Ceiling,\r\n Floor,\r\n}\r\n\r\nexport enum EdaAccessType {\r\n Public = 1,\r\n Private,\r\n}\r\n\r\nexport enum EdaUserInputFlagType {\r\n FlagA = 0,\r\n FlagB,\r\n FlagC,\r\n FlagD\r\n}\r\n\r\nexport enum EdaSamplingType {\r\n Changes = -1,\r\n Default = 0,\r\n FifteenMinutes = 900,\r\n Hour = 3600,\r\n Day = 86400,\r\n Week = 7 * 86400,\r\n Month = 30 * 86400,\r\n Quarter = 3 * 30 * 86400,\r\n HalfYear = 6 * 30 * 86400,\r\n Year = 4 * 3 * 30 * 86400,\r\n Season = 6 * 30 * 86400 + 1\r\n}\r\n\r\nexport const enum IdType {\r\n VECTOR,\r\n GROUP,\r\n SCENARIO,\r\n SET,\r\n}\r\n\r\nexport enum StepType {\r\n Hourly = 0,\r\n Daily,\r\n Weekly,\r\n Monthly,\r\n Yearly,\r\n WholeInterval,\r\n}\r\n\r\nexport enum EdaPeriodType {\r\n Base = 1,\r\n Year,\r\n Week,\r\n Day,\r\n Interval,\r\n}\r\n\r\nexport enum EdaPeriodValueType {\r\n Value = 1,\r\n CoefficientPlus,\r\n CoefficientMul,\r\n Interpolation\r\n}\r\n\r\nexport type ItemType = (TreeItem | number)[] | TypedIndex\r\n\r\nexport type TypedIndex = { type: IdType, id: number }\r\n\r\nexport type TypedData =\r\n | {type: IdType.VECTOR; data: VectorData}\r\n | {type: IdType.GROUP; data: GroupData}\r\n | {type: IdType.SCENARIO; data: ScenarioData}\r\n | {type: IdType.SET, data: (TreeItem | number)[]}"]}
@@ -8,9 +8,12 @@ export interface VectorDataState {
8
8
  to: dayjs.Dayjs;
9
9
  sampling: EdaSamplingType;
10
10
  }
11
+ export interface DataTreeItem extends TreeItem {
12
+ _isCustom: boolean;
13
+ }
11
14
  export interface EdaVectorDataState {
12
15
  data: Record<number, VectorDataState>;
13
- vectors: TreeItem[];
16
+ vectors: DataTreeItem[];
14
17
  visible: Set<number>;
15
18
  initialized: boolean;
16
19
  loadedData?: TypedData;
@@ -1 +1 @@
1
- {"version":3,"file":"edaVectorDataContext.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AA4BhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAwC,SAAS,CAAC,CAAC;AAEpG,MAAM,UAAU,gBAAgB;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC","sourcesContent":["import {TreeItem, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {EdaSamplingType, TypedData} from \"../constants/edaTypes\";\r\nimport {createContext, useContext} from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {SharedSampleRangeContext} from \"./sharedSampleRangeContext\";\r\n\r\nexport interface VectorDataState {\r\n data: VectorValuesData\r\n from: dayjs.Dayjs\r\n to: dayjs.Dayjs\r\n sampling: EdaSamplingType\r\n}\r\n\r\nexport interface EdaVectorDataState {\r\n data: Record<number, VectorDataState>\r\n vectors: TreeItem[]\r\n visible: Set<number>\r\n initialized: boolean\r\n\r\n loadedData?: TypedData\r\n loadedRange?: SharedSampleRangeContext\r\n}\r\n\r\nexport interface EdaVectorDataContextValue extends EdaVectorDataState {\r\n loadAllData: (data: TypedData) => void\r\n loadSpecificVectors: (vectors: TreeItem[], forceUpdate?: boolean) => void\r\n toggleVectorVisibility: (id: number, visible: boolean) => void\r\n setAllVectorVisibility: (visible: boolean) => void\r\n}\r\n\r\nexport const EdaVectorDataContext = createContext<EdaVectorDataContextValue | undefined>(undefined);\r\n\r\nexport function useEdaVectorData() {\r\n const context = useContext(EdaVectorDataContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useEdaVectorData must be used within an EdaVectorDataProvider\");\r\n }\r\n\r\n return context;\r\n}"]}
1
+ {"version":3,"file":"edaVectorDataContext.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAgChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAwC,SAAS,CAAC,CAAC;AAEpG,MAAM,UAAU,gBAAgB;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC","sourcesContent":["import {TreeItem, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {EdaSamplingType, TypedData} from \"../constants/edaTypes\";\r\nimport {createContext, useContext} from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {SharedSampleRangeContext} from \"./sharedSampleRangeContext\";\r\n\r\nexport interface VectorDataState {\r\n data: VectorValuesData\r\n from: dayjs.Dayjs\r\n to: dayjs.Dayjs\r\n sampling: EdaSamplingType\r\n}\r\n\r\nexport interface DataTreeItem extends TreeItem {\r\n _isCustom: boolean\r\n}\r\n\r\nexport interface EdaVectorDataState {\r\n data: Record<number, VectorDataState>\r\n vectors: DataTreeItem[]\r\n visible: Set<number>\r\n initialized: boolean\r\n\r\n loadedData?: TypedData\r\n loadedRange?: SharedSampleRangeContext\r\n}\r\n\r\nexport interface EdaVectorDataContextValue extends EdaVectorDataState {\r\n loadAllData: (data: TypedData) => void\r\n loadSpecificVectors: (vectors: TreeItem[], forceUpdate?: boolean) => void\r\n toggleVectorVisibility: (id: number, visible: boolean) => void\r\n setAllVectorVisibility: (visible: boolean) => void\r\n}\r\n\r\nexport const EdaVectorDataContext = createContext<EdaVectorDataContextValue | undefined>(undefined);\r\n\r\nexport function useEdaVectorData() {\r\n const context = useContext(EdaVectorDataContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useEdaVectorData must be used within an EdaVectorDataProvider\");\r\n }\r\n\r\n return context;\r\n}"]}
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback, useRef, useState } from "react";
2
2
  import { EdaVectorDataContext } from "./edaVectorDataContext";
3
3
  import { useSampleRange } from "./sharedSampleRangeContext";
4
+ import { EdaValueClassType } from "../constants/edaTypes";
4
5
  import { useLoading } from "./loadingContext";
5
6
  import { App } from "antd";
6
7
  import i18n from "d2core/i18n/i18n";
@@ -18,24 +19,24 @@ export const EdaVectorDataProvider = ({ api, children }) => {
18
19
  visible: new Set(),
19
20
  initialized: false,
20
21
  });
21
- const safeReadVectorValues = useCallback(async (id, name, from, to, step) => {
22
+ const safeReadVectorValues = useCallback(async (vector, from, to, step) => {
22
23
  try {
23
- return await api.readVectorValues(id, from, to, step);
24
+ return await api.readVectorValues(vector.ID, from, to, step);
24
25
  }
25
26
  catch (e) {
26
- message.warning(React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: name, e: e?.value })));
27
+ message.warning(React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: vector.DisplayName, e: e?.value })));
27
28
  console.error(e);
28
29
  return {
29
30
  data: []
30
31
  };
31
32
  }
32
33
  }, [api, message]);
33
- const safeCalcVectorValues = useCallback(async (type, prescription, name, from, to, step) => {
34
+ const safeCalcVectorValues = useCallback(async (vector, from, to, step) => {
34
35
  try {
35
- return await api.calcValuesForUnsavedVector(type, prescription, from, to, step);
36
+ return await api.calcValuesForUnsavedVector(vector.Type, vector.Prescription ?? "", from, to, step);
36
37
  }
37
38
  catch (e) {
38
- message.warning(React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: name, e: e?.value })));
39
+ message.warning(React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: vector.DisplayName, e: e?.value })));
39
40
  console.error(e);
40
41
  return {
41
42
  data: []
@@ -57,7 +58,7 @@ export const EdaVectorDataProvider = ({ api, children }) => {
57
58
  try {
58
59
  const { btTotal, etTotal, sampling, vectorPage } = range;
59
60
  const result = {};
60
- const columns = [];
61
+ const vectors = [];
61
62
  const visible = new Set();
62
63
  let { btWindow, etWindow } = range;
63
64
  if (!detail?.showTimeWindow) {
@@ -67,39 +68,39 @@ export const EdaVectorDataProvider = ({ api, children }) => {
67
68
  switch (data.type) {
68
69
  case 1:
69
70
  case 2: {
70
- let vectors;
71
+ let resultVectors;
71
72
  if (range.vectors) {
72
- vectors = { items: range.vectors, leftCount: 0 };
73
+ resultVectors = { items: range.vectors, leftCount: 0 };
73
74
  }
74
75
  else {
75
76
  try {
76
77
  if (data.type === 1) {
77
- vectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);
78
+ resultVectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);
78
79
  }
79
80
  else {
80
- vectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);
81
+ resultVectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);
81
82
  }
82
83
  }
83
84
  catch (error) {
84
85
  console.error(error);
85
- vectors = { items: [], leftCount: 0 };
86
+ resultVectors = { items: [], leftCount: 0 };
86
87
  }
87
- loading.updateLoading({ loadingCount: vectors.items.length });
88
+ loading.updateLoading({ loadingCount: resultVectors.items.length });
88
89
  if (range.vectorPage === 1) {
89
- range.updateTotalCount(vectors.items.length + vectors.leftCount);
90
+ range.updateTotalCount(resultVectors.items.length + resultVectors.leftCount);
90
91
  }
91
92
  if (requestId !== lastRequestId.current) {
92
93
  return;
93
94
  }
94
95
  }
95
- for (const vector of vectors.items) {
96
- columns.push(vector);
96
+ for (const vector of resultVectors.items) {
97
+ vectors.push({ ...vector, _isCustom: false });
97
98
  visible.add(vector.ID);
98
99
  }
99
- for (let i = 0; i < vectors.items.length; i++) {
100
- const vector = vectors.items[i];
100
+ for (let i = 0; i < resultVectors.items.length; i++) {
101
+ const vector = resultVectors.items[i];
101
102
  loading.updateLoading({ loadingItem: vector.DisplayName ?? "" });
102
- const valuesData = await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling);
103
+ const valuesData = await safeReadVectorValues(vector, btWindow, etWindow, sampling);
103
104
  if (!loadingRef.current) {
104
105
  break;
105
106
  }
@@ -109,25 +110,13 @@ export const EdaVectorDataProvider = ({ api, children }) => {
109
110
  to: etWindow,
110
111
  sampling: sampling,
111
112
  };
112
- loading.updateLoading({ loadingPercentage: (i + 1) / vectors.items.length * 100 });
113
+ loading.updateLoading({ loadingPercentage: (i + 1) / resultVectors.items.length * 100 });
113
114
  }
114
115
  break;
115
116
  }
116
117
  case 0: {
117
118
  const column = data.data.data;
118
- const id = data.data.data.ID_VEKTOR;
119
- loading.updateLoading({ loadingCount: 1, loadingItem: column.ZOBRAZ_MENO });
120
- result[id] = {
121
- data: await safeReadVectorValues(id, column.ZOBRAZ_MENO, btWindow, etWindow, sampling),
122
- from: btWindow,
123
- to: etWindow,
124
- sampling: sampling,
125
- };
126
- if (requestId !== lastRequestId.current) {
127
- return;
128
- }
129
- visible.add(column.ID_VEKTOR);
130
- columns.push({
119
+ const vector = {
131
120
  ID: column.ID_VEKTOR,
132
121
  DisplayName: column.ZOBRAZ_MENO,
133
122
  Name: column.MENO,
@@ -136,25 +125,47 @@ export const EdaVectorDataProvider = ({ api, children }) => {
136
125
  Type: column.TYP,
137
126
  Units: column.TECH_JEDNOTKY,
138
127
  RoundingType: column.VIEW_ROUND,
139
- RoundingPlaces: column.VIEW_DEC_PL
140
- });
128
+ RoundingPlaces: column.VIEW_DEC_PL,
129
+ IsIntegral: column.INTEGRAL === EdaValueClassType.Integral,
130
+ _isCustom: false,
131
+ };
132
+ loading.updateLoading({ loadingCount: 1, loadingItem: vector.DisplayName });
133
+ result[vector.ID] = {
134
+ data: await safeReadVectorValues(vector, btWindow, etWindow, sampling),
135
+ from: btWindow,
136
+ to: etWindow,
137
+ sampling: sampling,
138
+ };
139
+ if (requestId !== lastRequestId.current) {
140
+ return;
141
+ }
142
+ visible.add(vector.ID);
143
+ vectors.push(vector);
141
144
  break;
142
145
  }
143
146
  case 3: {
144
- for (let item of data.data) {
145
- visible.add(item.ID);
146
- columns.push(item);
147
- if (item.Prescription === undefined) {
148
- result[item.ID] = {
149
- data: await safeReadVectorValues(item.ID, item.DisplayName, btWindow, etWindow, sampling),
147
+ for (let entry of data.data) {
148
+ if (typeof entry === "number") {
149
+ const id = entry;
150
+ const item = await api.getVector(id);
151
+ if (!item) {
152
+ console.log("Invalid vector ID " + id);
153
+ continue;
154
+ }
155
+ visible.add(id);
156
+ vectors.push({ ...item, _isCustom: false });
157
+ result[id] = {
158
+ data: await safeReadVectorValues(item, btWindow, etWindow, sampling),
150
159
  from: btWindow,
151
160
  to: etWindow,
152
161
  sampling: sampling,
153
162
  };
154
163
  }
155
164
  else {
156
- result[item.ID] = {
157
- data: await safeCalcVectorValues(item.Type, item.Prescription, item.DisplayName, btWindow, etWindow, sampling),
165
+ visible.add(entry.ID);
166
+ vectors.push({ ...entry, _isCustom: true });
167
+ result[entry.ID] = {
168
+ data: await safeCalcVectorValues(entry, btWindow, etWindow, sampling),
158
169
  from: btWindow,
159
170
  to: etWindow,
160
171
  sampling: sampling,
@@ -163,7 +174,7 @@ export const EdaVectorDataProvider = ({ api, children }) => {
163
174
  }
164
175
  }
165
176
  }
166
- setDataState((s) => ({ ...s, data: result, vectors: columns, visible: visible }));
177
+ setDataState((s) => ({ ...s, data: result, vectors: vectors, visible: visible }));
167
178
  loading.updateLoading({ loadingPercentage: 100 });
168
179
  }
169
180
  catch (e) {
@@ -213,7 +224,7 @@ export const EdaVectorDataProvider = ({ api, children }) => {
213
224
  loading.updateLoading({ loadingItem: vector.DisplayName ?? "" });
214
225
  if (dataState.loadedData.type === 3 && vector.Prescription !== undefined) {
215
226
  result[vector.ID] = {
216
- data: await safeCalcVectorValues(vector.Type, vector.Prescription, vector.DisplayName, btWindow, etWindow, sampling),
227
+ data: await safeCalcVectorValues(vector, btWindow, etWindow, sampling),
217
228
  from: btWindow,
218
229
  to: etWindow,
219
230
  sampling: sampling,
@@ -221,7 +232,7 @@ export const EdaVectorDataProvider = ({ api, children }) => {
221
232
  }
222
233
  else {
223
234
  result[vector.ID] = {
224
- data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),
235
+ data: await safeReadVectorValues(vector, btWindow, etWindow, sampling),
225
236
  from: btWindow,
226
237
  to: etWindow,
227
238
  sampling: sampling,
@@ -1 +1 @@
1
- {"version":3,"file":"edaVectorDataProvider.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, PropsWithChildren, useCallback, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {TreeItem, TreeItemsResult, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {EdaVectorDataContext, EdaVectorDataState, VectorDataState} from \"./edaVectorDataContext\";\r\nimport {useSampleRange} from \"./sharedSampleRangeContext\";\r\nimport {EdaSamplingType, EdaVectorType, IdType, TypedData} from \"../constants/edaTypes\";\r\nimport {useLoading} from \"./loadingContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {App} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {useEdaConfig} from \"./edaConfigContext\";\r\n\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n}\r\n\r\nexport const EdaVectorDataProvider: FC<PropsWithChildren<Props>> = ({api, children}) => {\r\n const {detail} = useEdaConfig();\r\n const {message} = App.useApp();\r\n const range = useSampleRange();\r\n const loading = useLoading();\r\n\r\n const lastRequestId = useRef(0);\r\n const loadingRef = useRef(false);\r\n\r\n const [dataState, setDataState] = useState<EdaVectorDataState>({\r\n data: {},\r\n vectors: [],\r\n visible: new Set<number>(),\r\n initialized: false,\r\n });\r\n\r\n const safeReadVectorValues = useCallback(async (id: number, name: string, from: dayjs.Dayjs, to: dayjs.Dayjs, step: EdaSamplingType): Promise<VectorValuesData> => {\r\n try {\r\n return await api.readVectorValues(id, from, to, step);\r\n } catch (e: any) {\r\n message.warning(<span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: name, e: e?.value})}</span>);\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }, [api, message]);\r\n\r\n const safeCalcVectorValues = useCallback(async (type: EdaVectorType, prescription: string, name: string, from: dayjs.Dayjs, to: dayjs.Dayjs, step: EdaSamplingType): Promise<VectorValuesData> => {\r\n try {\r\n return await api.calcValuesForUnsavedVector(type, prescription, from, to, step);\r\n } catch (e: any) {\r\n message.warning(<span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: name, e: e?.value})}</span>);\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }, [api, message]);\r\n\r\n const cancelLoading = useCallback(async () => {\r\n await api.cancelSession();\r\n }, [api]);\r\n\r\n const cancelLoadingAll = useCallback(async () => {\r\n loadingRef.current = false;\r\n await api.cancelSession();\r\n }, [api]);\r\n\r\n const loadAllData = useCallback(async (data: TypedData) => {\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, vectors: [], loadedData: data, loadedRange: range}));\r\n loading.startLoading(cancelLoading, cancelLoadingAll);\r\n\r\n try {\r\n const {btTotal, etTotal, sampling, vectorPage} = range;\r\n const result: { [id: number]: VectorDataState } = {};\r\n const columns: TreeItem[] = [];\r\n const visible: Set<number> = new Set<number>();\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n switch (data.type) {\r\n case IdType.GROUP:\r\n case IdType.SCENARIO: {\r\n let vectors: TreeItemsResult;\r\n\r\n if (range.vectors) {\r\n vectors = {items: range.vectors, leftCount: 0}\r\n } else {\r\n try {\r\n if (data.type === IdType.GROUP) {\r\n vectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);\r\n } else {\r\n vectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n vectors = {items: [], leftCount: 0};\r\n }\r\n\r\n loading.updateLoading({loadingCount: vectors.items.length});\r\n\r\n if (range.vectorPage === 1) {\r\n range.updateTotalCount(vectors.items.length + vectors.leftCount);\r\n }\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n }\r\n\r\n for (const vector of vectors.items) {\r\n columns.push(vector);\r\n visible.add(vector.ID);\r\n }\r\n\r\n for (let i = 0; i < vectors.items.length; i++) {\r\n const vector = vectors.items[i];\r\n\r\n loading.updateLoading({loadingItem: vector.DisplayName ?? \"\"});\r\n\r\n const valuesData: VectorValuesData = await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling);\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n\r\n result[vector.ID] = {\r\n data: valuesData,\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: (i + 1) / vectors.items.length * 100});\r\n }\r\n\r\n break;\r\n }\r\n case IdType.VECTOR: {\r\n const column = data.data.data;\r\n const id = data.data.data.ID_VEKTOR;\r\n\r\n loading.updateLoading({loadingCount: 1, loadingItem: column.ZOBRAZ_MENO})\r\n result[id] = {\r\n data: await safeReadVectorValues(id, column.ZOBRAZ_MENO, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n visible.add(column.ID_VEKTOR);\r\n columns.push({\r\n ID: column.ID_VEKTOR,\r\n DisplayName: column.ZOBRAZ_MENO,\r\n Name: column.MENO,\r\n ParentID: column.ID_SKVEKTOR,\r\n Path: \"\",\r\n Type: column.TYP,\r\n Units: column.TECH_JEDNOTKY,\r\n RoundingType: column.VIEW_ROUND,\r\n RoundingPlaces: column.VIEW_DEC_PL\r\n });\r\n\r\n break;\r\n }\r\n case IdType.SET: {\r\n for (let item of data.data) {\r\n visible.add(item.ID);\r\n columns.push(item);\r\n\r\n if (item.Prescription === undefined) {\r\n result[item.ID] = {\r\n data: await safeReadVectorValues(item.ID, item.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n } else {\r\n result[item.ID] = {\r\n data: await safeCalcVectorValues(item.Type, item.Prescription, item.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, vectors: columns, visible: visible}));\r\n loading.updateLoading({loadingPercentage: 100});\r\n } catch (e) {\r\n console.error(\"Failed to load all data\", e);\r\n await api.cancelSession();\r\n } finally {\r\n if (requestId === lastRequestId.current) {\r\n setDataState((s): EdaVectorDataState => ({...s, initialized: true}));\r\n loading.stopLoading();\r\n }\r\n\r\n loadingRef.current = false;\r\n }\r\n }, [api, cancelLoading, cancelLoadingAll, detail, loading, range, safeCalcVectorValues, safeReadVectorValues]);\r\n\r\n const loadSpecificVectors = useCallback(async (vectors: TreeItem[], forceUpdate?: boolean) => {\r\n const {btTotal, etTotal, sampling} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (!forceUpdate) {\r\n vectors = vectors.filter((vector) => {\r\n const loadedVector = dataState.data[vector.ID];\r\n\r\n if (!loadedVector) {\r\n return true;\r\n }\r\n\r\n return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;\r\n });\r\n }\r\n\r\n if (vectors.length === 0 || !dataState.loadedData) {\r\n return;\r\n }\r\n\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, loadedRange: range}));\r\n loading.startLoading(cancelLoading, cancelLoadingAll);\r\n\r\n try {\r\n const result: { [id: number]: VectorDataState } = {...dataState.data};\r\n const visible = new Set(dataState.visible);\r\n\r\n loading.updateLoading({loadingPercentage: 0, loadingCount: vectors.length});\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < vectors.length; i++) {\r\n const vector = vectors[i];\r\n\r\n loading.updateLoading({loadingItem: vector.DisplayName ?? \"\"});\r\n\r\n if (dataState.loadedData.type === IdType.SET && vector.Prescription !== undefined) {\r\n result[vector.ID] = {\r\n data: await safeCalcVectorValues(vector.Type, vector.Prescription, vector.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n } else {\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n }\r\n\r\n visible.add(vector.ID);\r\n loading.updateLoading({loadingPercentage: (i + 1) / vectors.length * 100});\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: 100});\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, visible}));\r\n } catch (e) {\r\n console.log(\"Failed to load specific vectors\", e);\r\n await api.cancelSession();\r\n } finally {\r\n loadingRef.current = false;\r\n loading.stopLoading();\r\n }\r\n }, [range, detail, dataState.loadedData, dataState.data, dataState.visible, loading, cancelLoading, cancelLoadingAll, safeReadVectorValues, safeCalcVectorValues, api]);\r\n\r\n const toggleVectorVisibility = useCallback(async (id: number, visible: boolean) => {\r\n setDataState((prev) => {\r\n const state = prev.data[id];\r\n const visibleSet = new Set<number>(prev.visible);\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (visible) {\r\n if (needsLoadData) {\r\n loadSpecificVectors(prev.vectors.filter((v) => v.ID === id));\r\n }\r\n\r\n visibleSet.add(id);\r\n } else {\r\n visibleSet.delete(id);\r\n }\r\n\r\n return {...prev, visible: visibleSet};\r\n });\r\n }, [range, detail?.showTimeWindow, loadSpecificVectors]);\r\n\r\n const setAllVectorVisibility = useCallback(async (visible: boolean) => {\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (visible) {\r\n const toLoad: TreeItem[] = [];\r\n const visibleSet = new Set<number>(dataState.visible);\r\n\r\n for (let vector of dataState.vectors) {\r\n const id = vector.ID;\r\n const state = dataState.data[id];\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (needsLoadData) {\r\n toLoad.push(vector);\r\n }\r\n\r\n visibleSet.add(id);\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, visible: visibleSet}));\r\n await loadSpecificVectors(toLoad);\r\n } else {\r\n setDataState((s): EdaVectorDataState => ({...s, visible: new Set<number>()}));\r\n }\r\n }, [range, dataState.vectors, dataState.data, loadSpecificVectors, dataState.visible, detail?.showTimeWindow]);\r\n\r\n return (\r\n <EdaVectorDataContext.Provider\r\n value={{\r\n ...dataState,\r\n loadAllData,\r\n loadSpecificVectors,\r\n toggleVectorVisibility,\r\n setAllVectorVisibility,\r\n }}\r\n >\r\n {children}\r\n </EdaVectorDataContext.Provider>\r\n )\r\n}\r\n"]}
1
+ {"version":3,"file":"edaVectorDataProvider.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, PropsWithChildren, useCallback, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {TreeItem, TreeItemsResult, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {DataTreeItem, EdaVectorDataContext, EdaVectorDataState, VectorDataState} from \"./edaVectorDataContext\";\r\nimport {useSampleRange} from \"./sharedSampleRangeContext\";\r\nimport {EdaSamplingType, EdaValueClassType, IdType, TypedData} from \"../constants/edaTypes\";\r\nimport {useLoading} from \"./loadingContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {App} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {useEdaConfig} from \"./edaConfigContext\";\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n}\r\n\r\nexport const EdaVectorDataProvider: FC<PropsWithChildren<Props>> = ({api, children}) => {\r\n const {detail} = useEdaConfig();\r\n const {message} = App.useApp();\r\n const range = useSampleRange();\r\n const loading = useLoading();\r\n\r\n const lastRequestId = useRef(0);\r\n const loadingRef = useRef(false);\r\n\r\n const [dataState, setDataState] = useState<EdaVectorDataState>({\r\n data: {},\r\n vectors: [],\r\n visible: new Set<number>(),\r\n initialized: false,\r\n });\r\n\r\n const safeReadVectorValues = useCallback(async (vector: TreeItem, from: dayjs.Dayjs, to: dayjs.Dayjs, step: EdaSamplingType): Promise<VectorValuesData> => {\r\n try {\r\n return await api.readVectorValues(vector.ID, from, to, step);\r\n } catch (e: any) {\r\n message.warning(<span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: vector.DisplayName, e: e?.value})}</span>);\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }, [api, message]);\r\n\r\n const safeCalcVectorValues = useCallback(async (vector: TreeItem, from: dayjs.Dayjs, to: dayjs.Dayjs, step: EdaSamplingType): Promise<VectorValuesData> => {\r\n try {\r\n return await api.calcValuesForUnsavedVector(vector.Type, vector.Prescription ?? \"\", from, to, step);\r\n } catch (e: any) {\r\n message.warning(<span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: vector.DisplayName, e: e?.value})}</span>);\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }, [api, message]);\r\n\r\n const cancelLoading = useCallback(async () => {\r\n await api.cancelSession();\r\n }, [api]);\r\n\r\n const cancelLoadingAll = useCallback(async () => {\r\n loadingRef.current = false;\r\n await api.cancelSession();\r\n }, [api]);\r\n\r\n const loadAllData = useCallback(async (data: TypedData) => {\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, vectors: [], loadedData: data, loadedRange: range}));\r\n loading.startLoading(cancelLoading, cancelLoadingAll);\r\n\r\n try {\r\n const {btTotal, etTotal, sampling, vectorPage} = range;\r\n const result: { [id: number]: VectorDataState } = {};\r\n const vectors: DataTreeItem[] = [];\r\n const visible: Set<number> = new Set<number>();\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n switch (data.type) {\r\n case IdType.GROUP:\r\n case IdType.SCENARIO: {\r\n let resultVectors: TreeItemsResult;\r\n\r\n if (range.vectors) {\r\n resultVectors = {items: range.vectors, leftCount: 0}\r\n } else {\r\n try {\r\n if (data.type === IdType.GROUP) {\r\n resultVectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);\r\n } else {\r\n resultVectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n resultVectors = {items: [], leftCount: 0};\r\n }\r\n\r\n loading.updateLoading({loadingCount: resultVectors.items.length});\r\n\r\n if (range.vectorPage === 1) {\r\n range.updateTotalCount(resultVectors.items.length + resultVectors.leftCount);\r\n }\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n }\r\n\r\n for (const vector of resultVectors.items) {\r\n vectors.push({...vector, _isCustom: false});\r\n visible.add(vector.ID);\r\n }\r\n\r\n for (let i = 0; i < resultVectors.items.length; i++) {\r\n const vector = resultVectors.items[i];\r\n\r\n loading.updateLoading({loadingItem: vector.DisplayName ?? \"\"});\r\n\r\n const valuesData: VectorValuesData = await safeReadVectorValues(vector, btWindow, etWindow, sampling);\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n\r\n result[vector.ID] = {\r\n data: valuesData,\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: (i + 1) / resultVectors.items.length * 100});\r\n }\r\n\r\n break;\r\n }\r\n case IdType.VECTOR: {\r\n const column = data.data.data;\r\n const vector: DataTreeItem = {\r\n ID: column.ID_VEKTOR,\r\n DisplayName: column.ZOBRAZ_MENO,\r\n Name: column.MENO,\r\n ParentID: column.ID_SKVEKTOR,\r\n Path: \"\",\r\n Type: column.TYP,\r\n Units: column.TECH_JEDNOTKY,\r\n RoundingType: column.VIEW_ROUND,\r\n RoundingPlaces: column.VIEW_DEC_PL,\r\n IsIntegral: column.INTEGRAL === EdaValueClassType.Integral,\r\n _isCustom: false,\r\n }\r\n\r\n loading.updateLoading({loadingCount: 1, loadingItem: vector.DisplayName})\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n visible.add(vector.ID);\r\n vectors.push(vector);\r\n\r\n break;\r\n }\r\n case IdType.SET: {\r\n for (let entry of data.data) {\r\n if (typeof entry === \"number\") {\r\n const id = entry;\r\n\r\n const item = await api.getVector(id);\r\n\r\n if (!item) {\r\n console.log(\"Invalid vector ID \" + id)\r\n continue;\r\n }\r\n\r\n visible.add(id);\r\n vectors.push({...item, _isCustom: false});\r\n\r\n result[id] = {\r\n data: await safeReadVectorValues(item, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n } else {\r\n visible.add(entry.ID);\r\n vectors.push({...entry, _isCustom: true});\r\n\r\n result[entry.ID] = {\r\n data: await safeCalcVectorValues(entry, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, vectors: vectors, visible: visible}));\r\n loading.updateLoading({loadingPercentage: 100});\r\n } catch (e) {\r\n console.error(\"Failed to load all data\", e);\r\n await api.cancelSession();\r\n } finally {\r\n if (requestId === lastRequestId.current) {\r\n setDataState((s): EdaVectorDataState => ({...s, initialized: true}));\r\n loading.stopLoading();\r\n }\r\n\r\n loadingRef.current = false;\r\n }\r\n }, [api, cancelLoading, cancelLoadingAll, detail, loading, range, safeCalcVectorValues, safeReadVectorValues]);\r\n\r\n const loadSpecificVectors = useCallback(async (vectors: TreeItem[], forceUpdate?: boolean) => {\r\n const {btTotal, etTotal, sampling} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (!forceUpdate) {\r\n vectors = vectors.filter((vector) => {\r\n const loadedVector = dataState.data[vector.ID];\r\n\r\n if (!loadedVector) {\r\n return true;\r\n }\r\n\r\n return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;\r\n });\r\n }\r\n\r\n if (vectors.length === 0 || !dataState.loadedData) {\r\n return;\r\n }\r\n\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, loadedRange: range}));\r\n loading.startLoading(cancelLoading, cancelLoadingAll);\r\n\r\n try {\r\n const result: { [id: number]: VectorDataState } = {...dataState.data};\r\n const visible = new Set(dataState.visible);\r\n\r\n loading.updateLoading({loadingPercentage: 0, loadingCount: vectors.length});\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < vectors.length; i++) {\r\n const vector = vectors[i];\r\n\r\n loading.updateLoading({loadingItem: vector.DisplayName ?? \"\"});\r\n\r\n if (dataState.loadedData.type === IdType.SET && vector.Prescription !== undefined) {\r\n result[vector.ID] = {\r\n data: await safeCalcVectorValues(vector, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n } else {\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n }\r\n\r\n visible.add(vector.ID);\r\n loading.updateLoading({loadingPercentage: (i + 1) / vectors.length * 100});\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: 100});\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, visible}));\r\n } catch (e) {\r\n console.log(\"Failed to load specific vectors\", e);\r\n await api.cancelSession();\r\n } finally {\r\n loadingRef.current = false;\r\n loading.stopLoading();\r\n }\r\n }, [range, detail, dataState.loadedData, dataState.data, dataState.visible, loading, cancelLoading, cancelLoadingAll, safeReadVectorValues, safeCalcVectorValues, api]);\r\n\r\n const toggleVectorVisibility = useCallback(async (id: number, visible: boolean) => {\r\n setDataState((prev) => {\r\n const state = prev.data[id];\r\n const visibleSet = new Set<number>(prev.visible);\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (visible) {\r\n if (needsLoadData) {\r\n loadSpecificVectors(prev.vectors.filter((v) => v.ID === id));\r\n }\r\n\r\n visibleSet.add(id);\r\n } else {\r\n visibleSet.delete(id);\r\n }\r\n\r\n return {...prev, visible: visibleSet};\r\n });\r\n }, [range, detail?.showTimeWindow, loadSpecificVectors]);\r\n\r\n const setAllVectorVisibility = useCallback(async (visible: boolean) => {\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (visible) {\r\n const toLoad: TreeItem[] = [];\r\n const visibleSet = new Set<number>(dataState.visible);\r\n\r\n for (let vector of dataState.vectors) {\r\n const id = vector.ID;\r\n const state = dataState.data[id];\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (needsLoadData) {\r\n toLoad.push(vector);\r\n }\r\n\r\n visibleSet.add(id);\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, visible: visibleSet}));\r\n await loadSpecificVectors(toLoad);\r\n } else {\r\n setDataState((s): EdaVectorDataState => ({...s, visible: new Set<number>()}));\r\n }\r\n }, [range, dataState.vectors, dataState.data, loadSpecificVectors, dataState.visible, detail?.showTimeWindow]);\r\n\r\n return (\r\n <EdaVectorDataContext.Provider\r\n value={{\r\n ...dataState,\r\n loadAllData,\r\n loadSpecificVectors,\r\n toggleVectorVisibility,\r\n setAllVectorVisibility,\r\n }}\r\n >\r\n {children}\r\n </EdaVectorDataContext.Provider>\r\n )\r\n}\r\n"]}
@@ -6,7 +6,7 @@ import dayjs from "d2core/dayjs";
6
6
  import DateRangeInput, { DateRangeInputMode } from "d2coreui/components/date/dateRangeInput";
7
7
  import { LocaleHolder } from "d2core/i18n/localeHolder";
8
8
  import { useLoading } from "../context/loadingContext";
9
- import { exportGroup, exportScenario, exportVector } from "./importExport/export";
9
+ import { CalculatedVectors, exportGroup, exportScenario, exportVector, SpecifiedVectors } from "./importExport/export";
10
10
  import JSZip from "jszip";
11
11
  import { EdaDialogTitle } from "../components/edaDialogTitle";
12
12
  import { VectorTypeSelection } from "./importExport/vectorTypeSelection";
@@ -108,7 +108,7 @@ export const ExportDialog = ({ api, data, ...props }) => {
108
108
  React.createElement(DateRangeInput, { mask: mask, disabled: !showExportRange, fromValue: watchValues?.from ?? null, toValue: watchValues?.to ?? null, defaultMode: DateRangeInputMode.ADVANCED, onChange: (from, to) => {
109
109
  form.setFieldsValue({ from: from ?? undefined, to: to ?? undefined });
110
110
  } })))),
111
- data.type !== 0 && (React.createElement(VectorTypeSelection, null))))));
111
+ data.type !== 0 && (React.createElement(VectorTypeSelection, { vectorTypes: form.getFieldValue("vectorTypes") ?? {}, onSelectAllSpecified: (selected) => form.setFieldsValue({ vectorTypes: SpecifiedVectors.reduce((acc, vector) => ({ ...acc, [vector]: selected }), {}) }), onSelectAllCalculated: (selected) => form.setFieldsValue({ vectorTypes: CalculatedVectors.reduce((acc, vector) => ({ ...acc, [vector]: selected }), {}) }) }))))));
112
112
  };
113
113
  function getTitle(type) {
114
114
  switch (type) {
@@ -1 +1 @@
1
- {"version":3,"file":"exportDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/exportDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, MouseEvent, useEffect, useMemo} from \"react\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {App, Button, Card, Checkbox, Form, Input, Modal, ModalProps, Space} from \"antd\";\r\nimport {EdaVectorType, IdType, TypedData} from \"../constants/edaTypes\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport DateRangeInput, {DateRangeInputMode} from \"d2coreui/components/date/dateRangeInput\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport {useLoading} from \"../context/loadingContext\";\r\nimport {exportGroup, exportScenario, exportVector, XmlVectorExportConfig} from \"./importExport/export\";\r\nimport JSZip from \"jszip\";\r\nimport {EdaDialogTitle} from \"../components/edaDialogTitle\";\r\nimport {VectorTypeSelection} from \"./importExport/vectorTypeSelection\";\r\n\r\nconst DefaultConfiguration: XmlVectorExportConfig = {\r\n exportSubgroups: true,\r\n exportValues: true,\r\n vectorTypes: Object.values(EdaVectorType)\r\n .filter((v): v is EdaVectorType => typeof v === \"number\")\r\n .reduce((acc, type) => ({...acc, [type]: true}), {} as Record<EdaVectorType, boolean>)\r\n}\r\n\r\ninterface Props extends Omit<ModalProps, \"mode\"> {\r\n api: EdaManagerApi\r\n data: TypedData\r\n}\r\n\r\nexport const ExportDialog: FC<Props> = ({api, data, ...props}) => {\r\n const [form] = Form.useForm();\r\n const loading = useLoading();\r\n const watchValues = Form.useWatch<XmlVectorExportConfig>([], form);\r\n\r\n const {message} = App.useApp();\r\n\r\n const [showExportRange, setShowExportRange] = React.useState<boolean>(false);\r\n\r\n const mask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);\r\n\r\n useEffect(() => {\r\n if (!showExportRange) {\r\n form.setFieldsValue({form: undefined, to: undefined});\r\n }\r\n }, [showExportRange, form]);\r\n\r\n const handleExportData = async (event: MouseEvent<HTMLButtonElement>) => {\r\n const configuration: XmlVectorExportConfig = form.getFieldsValue();\r\n const resultData: [string, string][] = [];\r\n const controller = new AbortController();\r\n\r\n loading.startLoading(() => {\r\n controller.abort();\r\n loading.stopLoading();\r\n });\r\n\r\n try {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n resultData.push(...(await exportVector(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n case IdType.GROUP:\r\n resultData.push(...(await exportGroup(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n case IdType.SCENARIO:\r\n resultData.push(...(await exportScenario(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n }\r\n } catch (e) {\r\n loading.stopLoading();\r\n message.error(i18n(\"An error occurred while exporting data: %{n}\", {n: String(e)}));\r\n console.error(e);\r\n return;\r\n }\r\n\r\n if (resultData.length > 0) {\r\n try {\r\n const zip = new JSZip();\r\n\r\n for (const [filename, content] of resultData) {\r\n zip.file(filename + \".xml\", content);\r\n }\r\n\r\n loading.updateLoading({loadingItem: i18n(\"Compressing data, please wait...\")})\r\n\r\n const zipBlob = await zip.generateAsync({type: \"blob\"});\r\n\r\n if (controller.signal.aborted) {\r\n return;\r\n }\r\n\r\n const url = window.URL.createObjectURL(zipBlob);\r\n const link = document.createElement(\"a\");\r\n\r\n link.href = url;\r\n link.setAttribute('download', `export_${dayjs().format(mask)}.zip`);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } catch (e) {\r\n message.error(i18n(\"An error occurred while exporting data: %{n}\", {n: String(e)}));\r\n }\r\n } else {\r\n message.info(i18n(\"Nothing to export.\"));\r\n }\r\n\r\n loading.stopLoading();\r\n props.onOk?.(event);\r\n }\r\n\r\n if (data.type === IdType.SET) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <Modal\r\n {...props}\r\n styles={{body: {paddingTop: 0}}}\r\n title={<EdaDialogTitle title={getTitle(data.type)} name={data.data.data.ZOBRAZ_MENO} code={data.data.data.MENO}/>}\r\n footer={(\r\n <>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleExportData}\r\n >\r\n {i18n(\"Export\")}\r\n </Button>\r\n <Button\r\n danger\r\n onClick={props?.onCancel}\r\n >\r\n {i18n(\"Cancel\")}\r\n </Button>\r\n </>\r\n )}\r\n >\r\n <Form<XmlVectorExportConfig>\r\n form={form}\r\n initialValues={DefaultConfiguration}\r\n >\r\n <Space direction={\"vertical\"} style={{width: '100%'}}>\r\n <Card title={i18n(\"Export Parameters\")}>\r\n <Space direction=\"vertical\">\r\n {data.type !== IdType.VECTOR && (\r\n <Form.Item\r\n name={\"exportSubgroups\"}\r\n valuePropName={\"checked\"}\r\n noStyle\r\n >\r\n <Checkbox>{i18n(\"Export all subgroups\")}</Checkbox>\r\n </Form.Item>\r\n )}\r\n <Form.Item\r\n name={\"exportValues\"}\r\n valuePropName={\"checked\"}\r\n noStyle\r\n >\r\n <Checkbox>{i18n(\"Export values\")}</Checkbox>\r\n </Form.Item>\r\n <Checkbox\r\n checked={showExportRange}\r\n onChange={(e) => setShowExportRange(e.target.checked)}\r\n >\r\n {i18n(\"Export range for export values\")}\r\n </Checkbox>\r\n <Form.Item name=\"from\" hidden>\r\n <Input type={\"hidden\"} />\r\n </Form.Item>\r\n <Form.Item name=\"to\" hidden>\r\n <Input type={\"hidden\"}/>\r\n </Form.Item>\r\n <Form.Item noStyle>\r\n <DateRangeInput\r\n mask={mask}\r\n disabled={!showExportRange}\r\n fromValue={watchValues?.from ?? null}\r\n toValue={watchValues?.to ?? null}\r\n defaultMode={DateRangeInputMode.ADVANCED}\r\n onChange={(from, to) => {\r\n form.setFieldsValue({from: from ?? undefined, to: to ?? undefined});\r\n }}\r\n />\r\n </Form.Item>\r\n </Space>\r\n </Card>\r\n {data.type !== IdType.VECTOR && (\r\n <VectorTypeSelection />\r\n )}\r\n </Space>\r\n </Form>\r\n </Modal>\r\n );\r\n}\r\n\r\nfunction getTitle(type: IdType) {\r\n switch (type) {\r\n case IdType.VECTOR:\r\n return i18n(\"Export EDA Vector\");\r\n case IdType.GROUP:\r\n return i18n(\"Export EDA Group\");\r\n case IdType.SCENARIO:\r\n return i18n(\"Export EDA Scenario\");\r\n case IdType.SET:\r\n return \"Unsupported\";\r\n }\r\n}"]}
1
+ {"version":3,"file":"exportDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/exportDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, MouseEvent, useEffect, useMemo} from \"react\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {App, Button, Card, Checkbox, Form, Input, Modal, ModalProps, Space} from \"antd\";\r\nimport {EdaVectorType, IdType, TypedData} from \"../constants/edaTypes\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport DateRangeInput, {DateRangeInputMode} from \"d2coreui/components/date/dateRangeInput\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport {useLoading} from \"../context/loadingContext\";\r\nimport {CalculatedVectors, exportGroup, exportScenario, exportVector, SpecifiedVectors, XmlVectorExportConfig} from \"./importExport/export\";\r\nimport JSZip from \"jszip\";\r\nimport {EdaDialogTitle} from \"../components/edaDialogTitle\";\r\nimport {VectorTypeSelection} from \"./importExport/vectorTypeSelection\";\r\n\r\nconst DefaultConfiguration: XmlVectorExportConfig = {\r\n exportSubgroups: true,\r\n exportValues: true,\r\n vectorTypes: Object.values(EdaVectorType)\r\n .filter((v): v is EdaVectorType => typeof v === \"number\")\r\n .reduce((acc, type) => ({...acc, [type]: true}), {} as Record<EdaVectorType, boolean>)\r\n}\r\n\r\ninterface Props extends Omit<ModalProps, \"mode\"> {\r\n api: EdaManagerApi\r\n data: TypedData\r\n}\r\n\r\nexport const ExportDialog: FC<Props> = ({api, data, ...props}) => {\r\n const [form] = Form.useForm();\r\n const loading = useLoading();\r\n const watchValues = Form.useWatch<XmlVectorExportConfig>([], form);\r\n\r\n const {message} = App.useApp();\r\n\r\n const [showExportRange, setShowExportRange] = React.useState<boolean>(false);\r\n\r\n const mask = useMemo(() => LocaleHolder.getDateTimeFormat(true, false, false), []);\r\n\r\n useEffect(() => {\r\n if (!showExportRange) {\r\n form.setFieldsValue({form: undefined, to: undefined});\r\n }\r\n }, [showExportRange, form]);\r\n\r\n const handleExportData = async (event: MouseEvent<HTMLButtonElement>) => {\r\n const configuration: XmlVectorExportConfig = form.getFieldsValue();\r\n const resultData: [string, string][] = [];\r\n const controller = new AbortController();\r\n\r\n loading.startLoading(() => {\r\n controller.abort();\r\n loading.stopLoading();\r\n });\r\n\r\n try {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n resultData.push(...(await exportVector(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n case IdType.GROUP:\r\n resultData.push(...(await exportGroup(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n case IdType.SCENARIO:\r\n resultData.push(...(await exportScenario(api, data.data, configuration, mask, loading, message, controller.signal)));\r\n break;\r\n }\r\n } catch (e) {\r\n loading.stopLoading();\r\n message.error(i18n(\"An error occurred while exporting data: %{n}\", {n: String(e)}));\r\n console.error(e);\r\n return;\r\n }\r\n\r\n if (resultData.length > 0) {\r\n try {\r\n const zip = new JSZip();\r\n\r\n for (const [filename, content] of resultData) {\r\n zip.file(filename + \".xml\", content);\r\n }\r\n\r\n loading.updateLoading({loadingItem: i18n(\"Compressing data, please wait...\")})\r\n\r\n const zipBlob = await zip.generateAsync({type: \"blob\"});\r\n\r\n if (controller.signal.aborted) {\r\n return;\r\n }\r\n\r\n const url = window.URL.createObjectURL(zipBlob);\r\n const link = document.createElement(\"a\");\r\n\r\n link.href = url;\r\n link.setAttribute('download', `export_${dayjs().format(mask)}.zip`);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } catch (e) {\r\n message.error(i18n(\"An error occurred while exporting data: %{n}\", {n: String(e)}));\r\n }\r\n } else {\r\n message.info(i18n(\"Nothing to export.\"));\r\n }\r\n\r\n loading.stopLoading();\r\n props.onOk?.(event);\r\n }\r\n\r\n if (data.type === IdType.SET) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <Modal\r\n {...props}\r\n styles={{body: {paddingTop: 0}}}\r\n title={<EdaDialogTitle title={getTitle(data.type)} name={data.data.data.ZOBRAZ_MENO} code={data.data.data.MENO}/>}\r\n footer={(\r\n <>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleExportData}\r\n >\r\n {i18n(\"Export\")}\r\n </Button>\r\n <Button\r\n danger\r\n onClick={props?.onCancel}\r\n >\r\n {i18n(\"Cancel\")}\r\n </Button>\r\n </>\r\n )}\r\n >\r\n <Form<XmlVectorExportConfig>\r\n form={form}\r\n initialValues={DefaultConfiguration}\r\n >\r\n <Space direction={\"vertical\"} style={{width: '100%'}}>\r\n <Card title={i18n(\"Export Parameters\")}>\r\n <Space direction=\"vertical\">\r\n {data.type !== IdType.VECTOR && (\r\n <Form.Item\r\n name={\"exportSubgroups\"}\r\n valuePropName={\"checked\"}\r\n noStyle\r\n >\r\n <Checkbox>{i18n(\"Export all subgroups\")}</Checkbox>\r\n </Form.Item>\r\n )}\r\n <Form.Item\r\n name={\"exportValues\"}\r\n valuePropName={\"checked\"}\r\n noStyle\r\n >\r\n <Checkbox>{i18n(\"Export values\")}</Checkbox>\r\n </Form.Item>\r\n <Checkbox\r\n checked={showExportRange}\r\n onChange={(e) => setShowExportRange(e.target.checked)}\r\n >\r\n {i18n(\"Export range for export values\")}\r\n </Checkbox>\r\n <Form.Item name=\"from\" hidden>\r\n <Input type={\"hidden\"} />\r\n </Form.Item>\r\n <Form.Item name=\"to\" hidden>\r\n <Input type={\"hidden\"}/>\r\n </Form.Item>\r\n <Form.Item noStyle>\r\n <DateRangeInput\r\n mask={mask}\r\n disabled={!showExportRange}\r\n fromValue={watchValues?.from ?? null}\r\n toValue={watchValues?.to ?? null}\r\n defaultMode={DateRangeInputMode.ADVANCED}\r\n onChange={(from, to) => {\r\n form.setFieldsValue({from: from ?? undefined, to: to ?? undefined});\r\n }}\r\n />\r\n </Form.Item>\r\n </Space>\r\n </Card>\r\n {data.type !== IdType.VECTOR && (\r\n <VectorTypeSelection\r\n vectorTypes={form.getFieldValue(\"vectorTypes\") ?? {}}\r\n onSelectAllSpecified={(selected) => form.setFieldsValue({vectorTypes: SpecifiedVectors.reduce((acc, vector) => ({...acc, [vector]: selected}), {})})}\r\n onSelectAllCalculated={(selected) => form.setFieldsValue({vectorTypes: CalculatedVectors.reduce((acc, vector) => ({...acc, [vector]: selected}), {})})}\r\n />\r\n )}\r\n </Space>\r\n </Form>\r\n </Modal>\r\n );\r\n}\r\n\r\nfunction getTitle(type: IdType) {\r\n switch (type) {\r\n case IdType.VECTOR:\r\n return i18n(\"Export EDA Vector\");\r\n case IdType.GROUP:\r\n return i18n(\"Export EDA Group\");\r\n case IdType.SCENARIO:\r\n return i18n(\"Export EDA Scenario\");\r\n case IdType.SET:\r\n return \"Unsupported\";\r\n }\r\n}"]}
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
2
  import { createStyles } from "antd-style";
3
- import { Button, Card, Checkbox, Col, Flex, Form, Radio, Row, Tabs, theme, Tree, Upload } from "antd";
3
+ import { Button, Card, Checkbox, Col, Flex, Form, Input, Radio, Row, Tabs, theme, Tree, Upload } from "antd";
4
4
  import { EdaVectorType } from "../constants/edaTypes";
5
5
  import i18n from "d2core/i18n/i18n";
6
6
  import { EdaDialogTitle } from "../components/edaDialogTitle";
@@ -12,6 +12,7 @@ import JSZip from "jszip";
12
12
  import { VectorTypeSelection } from "./importExport/vectorTypeSelection";
13
13
  import { EdaImportValidationStatus, importData, LocationType, Setting } from "./importExport/import";
14
14
  import ExtendedDataGrid from "d2coreui/components/grid/extendedDataGrid";
15
+ import { CalculatedVectors, SpecifiedVectors } from "./importExport/export";
15
16
  const useStyles = createStyles(({ css, token }) => {
16
17
  return {
17
18
  baseLayout: css `
@@ -58,7 +59,14 @@ const DefaultConfiguration = {
58
59
  settings: [],
59
60
  vectorTypes: Object.values(EdaVectorType)
60
61
  .filter((v) => typeof v === "number")
61
- .reduce((acc, type) => ({ ...acc, [type]: true }), {})
62
+ .reduce((acc, type) => ({ ...acc, [type]: true }), {}),
63
+ replace: {
64
+ search: "",
65
+ replace: "",
66
+ append: "",
67
+ changeCode: true,
68
+ changePrescription: true
69
+ }
62
70
  };
63
71
  export const ImportDialog = ({ api, data, ...props }) => {
64
72
  const loading = useLoading();
@@ -66,6 +74,7 @@ export const ImportDialog = ({ api, data, ...props }) => {
66
74
  const { message } = useApp();
67
75
  const { token } = theme.useToken();
68
76
  const [form] = Form.useForm();
77
+ Form.useWatch([], form);
69
78
  const [fileList, setFileList] = useState([]);
70
79
  const [treeData, setTreeData] = useState([]);
71
80
  const [tableData, setTableData] = useState([]);
@@ -123,6 +132,27 @@ export const ImportDialog = ({ api, data, ...props }) => {
123
132
  [field]: checked,
124
133
  })));
125
134
  }, []);
135
+ const handleReplace = useCallback(() => {
136
+ const config = form.getFieldsValue();
137
+ setTableData((prevData) => {
138
+ const updatedData = [...prevData];
139
+ for (let data of updatedData) {
140
+ if (config.replace.changeCode) {
141
+ if (config.replace.search) {
142
+ data.newName = data.newName.split(config.replace.search).join(config.replace.replace);
143
+ }
144
+ data.newName += config.replace.append;
145
+ }
146
+ if (config.replace.changePrescription) {
147
+ if (config.replace.search) {
148
+ data.newDisplayName = data.newDisplayName.split(config.replace.search).join(config.replace.replace) + config.replace.append;
149
+ }
150
+ data.newDisplayName += config.replace.append;
151
+ }
152
+ }
153
+ return updatedData;
154
+ });
155
+ }, [form]);
126
156
  const allImport = tableData.every((d) => d.import);
127
157
  const noImport = tableData.every((d) => !d.import);
128
158
  const allImportValues = tableData.filter((d) => d.data.type === 0).every((d) => d.importValues);
@@ -331,9 +361,30 @@ export const ImportDialog = ({ api, data, ...props }) => {
331
361
  React.createElement(Upload, { maxCount: 1, fileList: fileList, onRemove: () => setFileList([]), beforeUpload: handleBeforeUpload },
332
362
  React.createElement(Button, { icon: React.createElement(UploadOutlined, null), disabled: fileList.length > 0 }, i18n("Select File")))))),
333
363
  React.createElement(Col, { span: 8 },
334
- React.createElement(VectorTypeSelection, null)),
364
+ React.createElement(VectorTypeSelection, { vectorTypes: form.getFieldValue("vectorTypes") ?? {}, onSelectAllSpecified: (selected) => form.setFieldsValue({ vectorTypes: SpecifiedVectors.reduce((acc, vector) => ({ ...acc, [vector]: selected }), {}) }), onSelectAllCalculated: (selected) => form.setFieldsValue({ vectorTypes: CalculatedVectors.reduce((acc, vector) => ({ ...acc, [vector]: selected }), {}) }) })),
335
365
  React.createElement(Col, { span: 8 },
336
- React.createElement(Card, { title: i18n("Replace"), style: { height: '100%', display: 'flex', flexDirection: 'column' } }))),
366
+ React.createElement(Card, { title: i18n("Replace"), style: { height: '100%', display: 'flex', flexDirection: 'column' }, styles: { body: { flex: 1, display: "flex", flexDirection: 'column', gap: 8 } } },
367
+ React.createElement(Row, null,
368
+ React.createElement(Col, { span: 8 }, i18n("Search")),
369
+ React.createElement(Col, { span: 16 },
370
+ React.createElement(Form.Item, { noStyle: true, name: ["replace", "search"] },
371
+ React.createElement(Input, null)))),
372
+ React.createElement(Row, null,
373
+ React.createElement(Col, { span: 8 }, i18n("Replace with")),
374
+ React.createElement(Col, { span: 16 },
375
+ React.createElement(Form.Item, { noStyle: true, name: ["replace", "replace"] },
376
+ React.createElement(Input, null)))),
377
+ React.createElement(Row, null,
378
+ React.createElement(Col, { span: 8 }, i18n("Append")),
379
+ React.createElement(Col, { span: 16 },
380
+ React.createElement(Form.Item, { noStyle: true, name: ["replace", "append"] },
381
+ React.createElement(Input, null)))),
382
+ React.createElement(Form.Item, { name: ["replace", "changeCode"], valuePropName: "checked" },
383
+ React.createElement(Checkbox, null, i18n("Change codes"))),
384
+ React.createElement(Flex, null,
385
+ React.createElement(Form.Item, { style: { flex: "1 1 auto" }, name: ["replace", "changePrescription"], valuePropName: "checked" },
386
+ React.createElement(Checkbox, null, i18n("Change names"))),
387
+ React.createElement(Button, { onClick: handleReplace }, i18n("Apply")))))),
337
388
  React.createElement(Tabs, { className: styles.tabs, type: "card", activeKey: activeTab, onChange: setActiveTab, tabBarExtraContent: {
338
389
  right: (React.createElement(Button, { type: "primary", icon: React.createElement(ReloadOutlined, null), disabled: fileList.length === 0, onClick: handleUpload }, i18n("Upload")))
339
390
  }, items: [