d2aura 26.0.17 → 26.0.19

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 (84) hide show
  1. package/api/abstractApi.d.ts +1 -1
  2. package/api/abstractApi.js +2 -2
  3. package/api/abstractApi.js.map +1 -1
  4. package/api/eda/edaManagerApi.d.ts +15 -10
  5. package/api/eda/edaManagerApi.js +78 -11
  6. package/api/eda/edaManagerApi.js.map +1 -1
  7. package/api/eda/generated/events.d.ts +108 -73
  8. package/api/eda/generated/events.js +202 -140
  9. package/api/eda/generated/events.js.map +1 -1
  10. package/api/eda/generated/structures.d.ts +118 -89
  11. package/api/eda/generated/structures.js.map +1 -1
  12. package/api/webAuthn/webAuthnManageApi.js +2 -2
  13. package/api/webAuthn/webAuthnManageApi.js.map +1 -1
  14. package/core/i18n/d2aura.sk.json +6 -0
  15. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +11 -11
  16. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -1
  17. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +2 -2
  18. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  19. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +1 -1
  20. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  21. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +1 -1
  22. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  23. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +3 -2
  24. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  25. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +5 -5
  26. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  27. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +3 -0
  28. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -1
  29. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +1 -0
  30. package/coreui/components/edaManagerComponent/components/edaTreeView.js +82 -33
  31. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  32. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +11 -1
  33. package/coreui/components/edaManagerComponent/constants/edaTypes.js +6 -0
  34. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  35. package/coreui/components/edaManagerComponent/context/edaConfigContext.d.ts +5 -4
  36. package/coreui/components/edaManagerComponent/context/edaConfigContext.js +4 -1
  37. package/coreui/components/edaManagerComponent/context/edaConfigContext.js.map +1 -1
  38. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +4 -1
  39. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  40. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +81 -57
  41. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  42. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +1 -1
  43. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -1
  44. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +5 -5
  45. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -1
  46. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js +4 -2
  47. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -1
  48. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +2 -2
  49. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -1
  50. package/coreui/components/edaManagerComponent/dialogs/importDialog.js +111 -12
  51. package/coreui/components/edaManagerComponent/dialogs/importDialog.js.map +1 -1
  52. package/coreui/components/edaManagerComponent/dialogs/importExport/export.js +48 -28
  53. package/coreui/components/edaManagerComponent/dialogs/importExport/export.js.map +1 -1
  54. package/coreui/components/edaManagerComponent/dialogs/importExport/import.d.ts +11 -2
  55. package/coreui/components/edaManagerComponent/dialogs/importExport/import.js +26 -2
  56. package/coreui/components/edaManagerComponent/dialogs/importExport/import.js.map +1 -1
  57. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.d.ts +8 -1
  58. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js +9 -4
  59. package/coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.js.map +1 -1
  60. package/coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.js +4 -5
  61. package/coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.js.map +1 -1
  62. package/coreui/components/edaManagerComponent/edaDetail.d.ts +2 -3
  63. package/coreui/components/edaManagerComponent/edaDetail.js +3 -1
  64. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  65. package/coreui/components/edaManagerComponent/edaManager.d.ts +1 -1
  66. package/coreui/components/edaManagerComponent/edaManager.js +1 -1
  67. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
  68. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +1 -0
  69. package/coreui/components/edaManagerComponent/edaNavigator.js +4 -4
  70. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  71. package/coreui/components/edaManagerComponent/utils/utils.d.ts +2 -3
  72. package/coreui/components/edaManagerComponent/utils/utils.js +4 -5
  73. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  74. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +22 -0
  75. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +34 -0
  76. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +8 -8
  77. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +8 -42
  78. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +224 -79
  79. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +18 -2
  80. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +380 -19
  81. package/d2configuration/edaManager/SD.EM_EDA_CalcFunction_Params_V2.xml +245 -0
  82. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_Params_V2.xml +159 -0
  83. package/d2configuration/edaManager/SD.EM_Tree_Item.xml +22 -0
  84. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { EdaVectorType } from "../../constants/edaTypes";
2
- import { GroupAttributes, PairVectorAttributes, ScenarioAttributes, VectorAttributes } from "./types";
2
+ import { DescriptiveVectorAttributes, GroupAttributes, PairVectorAttributes, ScenarioAttributes, VectorAttributes } from "./types";
3
3
  import * as sax from "sax";
4
4
  import xml2js from "xml2js";
5
5
  import dayjs from "d2core/dayjs";
@@ -17,6 +17,7 @@ export var Setting;
17
17
  (function (Setting) {
18
18
  Setting[Setting["IGNORE_TIME_ZONES"] = 0] = "IGNORE_TIME_ZONES";
19
19
  Setting[Setting["DEFAULT_ID_VALUE"] = 1] = "DEFAULT_ID_VALUE";
20
+ Setting[Setting["REPLACE_CODES_IN_PRESCRIPTION"] = 2] = "REPLACE_CODES_IN_PRESCRIPTION";
20
21
  })(Setting || (Setting = {}));
21
22
  export var EdaImportValidationStatus;
22
23
  (function (EdaImportValidationStatus) {
@@ -214,13 +215,36 @@ export async function importData(api, loadedZip, rootData, settings, loading, si
214
215
  function importVector(doc) {
215
216
  const vectorData = {};
216
217
  const pairData = {};
218
+ const descrData = [];
219
+ let prescription = undefined;
217
220
  VectorAttributes.importFromJson(doc, vectorData);
221
+ switch (vectorData.TYP) {
222
+ case EdaVectorType.Pair:
223
+ PairVectorAttributes.importFromJson(doc, pairData);
224
+ break;
225
+ case EdaVectorType.Descriptive:
226
+ case EdaVectorType.Interval:
227
+ if (doc.popis) {
228
+ for (const descr of doc.popis) {
229
+ const data = {};
230
+ DescriptiveVectorAttributes.importFromJson(descr, data);
231
+ descrData.push(data);
232
+ }
233
+ }
234
+ break;
235
+ case EdaVectorType.FifteenMinutesCalc:
236
+ case EdaVectorType.HourCalc:
237
+ case EdaVectorType.DayCalc:
238
+ case EdaVectorType.ChangeCalc:
239
+ prescription = doc.predpis?._;
240
+ break;
241
+ }
218
242
  if (vectorData.TYP === EdaVectorType.Pair) {
219
243
  PairVectorAttributes.importFromJson(doc, pairData);
220
244
  }
221
245
  return {
222
246
  type: 0,
223
- data: { data: vectorData, pair: pairData, prescription: doc.predpis?._ }
247
+ data: { data: vectorData, pair: pairData, prescription, descr: descrData }
224
248
  };
225
249
  }
226
250
  function importVectorValues(doc) {
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/importExport/import.tsx"],"names":[],"mappings":"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","sourcesContent":["import {EdaVectorType, IdType, TypedData} from \"../../constants/edaTypes\";\r\nimport EdaManagerApi, {GroupDetail, PairVectorDetail, ScenarioDetail, TreeItem, VectorDetail, VectorValue} from \"../../../../../api/eda/edaManagerApi\";\r\nimport {GroupAttributes, PairVectorAttributes, ScenarioAttributes, VectorAttributes} from \"./types\";\r\nimport * as sax from \"sax\";\r\nimport xml2js from \"xml2js\";\r\nimport JSZip from \"jszip\";\r\nimport {TreeDataNode} from \"antd\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {FlagValue, UnivalTypeEnum} from \"d2jsapi\";\r\nimport {LoadingContextType} from \"../../context/loadingContext\";\r\nimport {awaitNextRenderFrame, getVectorIcon} from \"../../utils/utils\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport React, {ReactNode} from \"react\";\r\nimport {FolderOpenOutlined} from \"@ant-design/icons\";\r\n\r\nexport enum LocationType {\r\n SIBLING,\r\n CHILD\r\n}\r\n\r\nexport enum Setting {\r\n IGNORE_TIME_ZONES,\r\n DEFAULT_ID_VALUE,\r\n}\r\n\r\nexport enum EdaImportValidationStatus {\r\n NEW = \"New\",\r\n EXISTS = \"Exists\",\r\n DUPLICATE = \"Duplicate\",\r\n ERROR = \"Error\",\r\n}\r\n\r\nexport interface XmlVectorImportConfig {\r\n vectorTypes: Record<EdaVectorType, boolean>\r\n location: LocationType\r\n settings: Setting[]\r\n}\r\n\r\nexport interface DataNode extends Omit<TreeDataNode, \"children\"> {\r\n id: string\r\n data: ResolvedData\r\n values?: VectorValue[]\r\n children?: DataNode[]\r\n newName: string\r\n newDisplayName: string\r\n import: boolean\r\n importValues: boolean\r\n validationStatus: EdaImportValidationStatus\r\n}\r\n\r\ninterface XmlContent<T = any> {\r\n result: T;\r\n doctype: string | null\r\n}\r\n\r\ntype VectorXML = {\r\n $: { [k: string]: string }\r\n predpis?: {\r\n _: string\r\n }\r\n}\r\n\r\ntype VectorDataXML = {\r\n value: { $: { [k: string]: string } }[]\r\n\r\n}\r\n\r\ntype GroupXML = {\r\n $: { [k: string]: string }\r\n vektor?: { $: { meno: string } }[]\r\n podskupina?: { $: { meno: string } }[]\r\n}\r\n\r\ntype ScenarioXML = {\r\n $: { [k: string]: string }\r\n vektor?: { $: { meno: string } }[]\r\n podscenar?: { $: { meno: string } }[]\r\n}\r\n\r\nexport type ResolvedData =\r\n | { type: IdType.VECTOR; data: { data: Partial<VectorDetail>, pair: Partial<PairVectorDetail>, prescription?: string } }\r\n | { type: IdType.GROUP; data: { data: Partial<GroupDetail> }, subgroup: string[], vectors: string[] }\r\n | { type: IdType.SCENARIO; data: { data: Partial<ScenarioDetail> }, subscenario: string[], vectors: string[] }\r\n\r\nexport async function importData(api: EdaManagerApi, loadedZip: JSZip, rootData: TypedData, settings: XmlVectorImportConfig, loading: LoadingContextType, signal: AbortSignal): Promise<[DataNode | undefined, DataNode[]]> {\r\n const resolvedData: ResolvedData[] = [];\r\n const vectors: Map<string, XmlContent> = new Map();\r\n const files = Object.entries(loadedZip.files);\r\n const rootId = rootData.type === IdType.GROUP ? rootData.data.data.ID_SKVEKTOR : (rootData.type === IdType.SCENARIO ? rootData.data.data.ID_SCENAR : undefined);\r\n const rootParentId = rootData.type === IdType.GROUP ? rootData.data.data.EDA_ID_SKVEKTOR : (rootData.type === IdType.SCENARIO ? rootData.data.data.EDA_ID_SCENAR : undefined);\r\n\r\n for (let i = 0; i < files.length; i++){\r\n const [name, fileEntry] = files[i];\r\n\r\n loading.updateLoading({loadingItem: name, loadingPercentage: i / files.length * 100});\r\n\r\n if (!fileEntry.dir) {\r\n const content = await fileEntry.async(\"string\");\r\n const doc = await parseXmlWithDoctype(content);\r\n const doctype = doc.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n\r\n switch (doctype) {\r\n case \"vektor\":\r\n vectors.set(fileEntry.name, doc);\r\n break;\r\n case \"skupina\":\r\n importGroup(doc.result.skupina, resolvedData);\r\n break;\r\n case \"scenar\":\r\n importScenario(doc.result.scenar, resolvedData);\r\n break;\r\n default:\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: fileEntry.name, d: String(doc.doctype)}));\r\n }\r\n }\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: undefined, loadingItem: i18n(\"Processing data...\")});\r\n\r\n let treeData: DataNode | undefined = undefined;\r\n let tableData: DataNode[] = [];\r\n\r\n if (resolvedData.length > 0) {\r\n const allNodes: DataNode[] = [];\r\n\r\n for (const item of resolvedData) {\r\n if (item.data.data.MENO) {\r\n allNodes.push(createNode(item.data.data.MENO, item, settings));\r\n } else {\r\n throw new Error(i18n(\"Missing object code\"));\r\n }\r\n }\r\n\r\n const rootNodes: DataNode[] = [];\r\n\r\n for (const node of allNodes) {\r\n const id = node.key as string;\r\n const data = node.data;\r\n\r\n const parentEntry = allNodes.find((d) => {\r\n if (d.data.type === IdType.GROUP && data.type === IdType.GROUP) {\r\n return d.data.subgroup.includes(id);\r\n } else if (d.data.type === IdType.SCENARIO && data.type === IdType.SCENARIO) {\r\n return d.data.subscenario.includes(id);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n if (parentEntry) {\r\n const parentId = parentEntry.data.type === IdType.GROUP\r\n ? parentEntry.data.data.data.ID_SKVEKTOR\r\n : (parentEntry.data.type === IdType.SCENARIO ? parentEntry.data.data.data.ID_SCENAR : undefined);\r\n\r\n if (!parentEntry.children) {\r\n parentEntry.children = [];\r\n }\r\n\r\n switch (node.data.type) {\r\n case IdType.VECTOR:\r\n node.data.data.data.ID_SKVEKTOR = parentId;\r\n break;\r\n case IdType.GROUP:\r\n node.data.data.data.EDA_ID_SKVEKTOR = parentId;\r\n break;\r\n case IdType.SCENARIO:\r\n node.data.data.data.EDA_ID_SCENAR = parentId;\r\n break;\r\n }\r\n\r\n parentEntry.children.push(node);\r\n } else {\r\n switch (node.data.type) {\r\n case IdType.VECTOR:\r\n node.data.data.data.ID_SKVEKTOR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n case IdType.GROUP:\r\n node.data.data.data.EDA_ID_SKVEKTOR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n case IdType.SCENARIO:\r\n node.data.data.data.EDA_ID_SCENAR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n }\r\n\r\n rootNodes.push(node);\r\n }\r\n\r\n await awaitNextRenderFrame();\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n }\r\n\r\n if (rootNodes.length > 1) {\r\n throw new Error(i18n(\"Multiple root nodes found (%{n})\", {n: String(rootNodes.length)}));\r\n }\r\n\r\n treeData = rootNodes[0];\r\n\r\n for (const node of allNodes) {\r\n if (node.data.type === IdType.GROUP || node.data.type === IdType.SCENARIO) {\r\n for (let vector of node.data.vectors) {\r\n const fileName = `vekt_${vector}`;\r\n let regex = new RegExp(`^${fileName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(_U[0-9]+)?\\.xml`);\r\n let fileNameWithExt: string | undefined = undefined;\r\n let resolved: ResolvedData | undefined = undefined;\r\n\r\n for (let [key, doc] of vectors) {\r\n if (regex.test(key)) {\r\n const doctype = doc?.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (doctype !== \"vektor\") {\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: key, d: String(doc.doctype)}));\r\n }\r\n\r\n fileNameWithExt = key;\r\n resolved = importVector(doc.result.vektor);\r\n }\r\n }\r\n\r\n if (!resolved || !fileNameWithExt) {\r\n throw new Error(i18n(\"No vector found with code %{i}\", {i: fileName}));\r\n }\r\n\r\n const vectorValues: VectorValue[] = [];\r\n\r\n if (!resolved.data.data.MENO || resolved.type !== IdType.VECTOR) {\r\n throw new Error(i18n(\"Missing object code\"));\r\n }\r\n\r\n const children: DataNode = createNode(resolved.data.data.MENO, resolved, settings, vectorValues);\r\n const parentId = node.data.type === IdType.GROUP\r\n ? node.data.data.data.ID_SKVEKTOR\r\n : (node.data.type === IdType.SCENARIO ? node.data.data.data.ID_SCENAR : undefined);\r\n\r\n if (!node.children) {\r\n node.children = [];\r\n }\r\n\r\n resolved.data.data.ID_SKVEKTOR = parentId;\r\n vectors.delete(fileNameWithExt)\r\n node.children.push(children);\r\n\r\n const dataVectors: string[] = [];\r\n regex = new RegExp(`^${fileName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(_U[0-9]+)?_DATA_([0-9]{4})\\\\.xml`);\r\n\r\n for (let [key, doc] of vectors) {\r\n if (regex.test(key)) {\r\n const doctype = doc?.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (doctype !== \"vektor\") {\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: key, d: String(doc.doctype)}));\r\n }\r\n\r\n dataVectors.push(key);\r\n vectorValues.push(...importVectorValues(doc.result.vektor));\r\n }\r\n }\r\n\r\n for (let key of dataVectors) {\r\n vectors.delete(key);\r\n }\r\n }\r\n }\r\n\r\n await awaitNextRenderFrame();\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n }\r\n\r\n if (vectors.size > 0) {\r\n throw new Error(i18n(\"Found %{n} orphan objects\", {n: String(vectors.size)}));\r\n }\r\n\r\n flattenTree(treeData, tableData);\r\n loading.updateLoading({loadingItem: i18n(\"Validating data...\")});\r\n\r\n let existType = EdaImportValidationStatus.EXISTS;\r\n let isRoot = true;\r\n\r\n for (let data of tableData) {\r\n const result = await loadDataFromResolvedData(api, data.data);\r\n\r\n if (isRoot) {\r\n isRoot = false;\r\n\r\n if (result) {\r\n if (settings.location === LocationType.CHILD && rootId === result.ParentID) {\r\n existType = EdaImportValidationStatus.DUPLICATE;\r\n } else if (settings.location === LocationType.SIBLING && rootParentId === result.ParentID) {\r\n existType = EdaImportValidationStatus.DUPLICATE;\r\n }\r\n }\r\n }\r\n\r\n if (result !== undefined) {\r\n data.validationStatus = !isRoot && result.ParentID === getParentId(data.data) ? existType : EdaImportValidationStatus.EXISTS;\r\n } else {\r\n data.validationStatus = EdaImportValidationStatus.NEW;\r\n }\r\n }\r\n }\r\n\r\n return [treeData, tableData];\r\n}\r\n\r\nfunction importVector(doc: VectorXML): ResolvedData {\r\n const vectorData: Partial<VectorDetail> = {}\r\n const pairData: Partial<PairVectorDetail> = {}\r\n\r\n VectorAttributes.importFromJson(doc, vectorData);\r\n\r\n if (vectorData.TYP === EdaVectorType.Pair) {\r\n PairVectorAttributes.importFromJson(doc, pairData);\r\n }\r\n\r\n return {\r\n type: IdType.VECTOR,\r\n data: {data: vectorData, pair: pairData, prescription: doc.predpis?._}\r\n };\r\n}\r\n\r\nfunction importVectorValues(doc: VectorDataXML): VectorValue[] {\r\n const result: VectorValue[] = [];\r\n\r\n for (let value of doc.value) {\r\n const time = dayjs(readProperty(value, \"time\"), LocaleHolder.getDateTimeFormat(true, false, false))\r\n const val = readProperty(value, \"value\");\r\n const flagA = readProperty(value, \"flagA\");\r\n const flagB = readProperty(value, \"flagB\");\r\n const flagC = readProperty(value, \"flagC\");\r\n const flagD = readProperty(value, \"flagD\");\r\n let flags: FlagValue[] | undefined = undefined;\r\n\r\n if (flagA || flagB || flagC || flagD) {\r\n flags = [];\r\n\r\n if (flagA) flags.push(\"A\");\r\n if (flagB) flags.push(\"B\");\r\n if (flagC) flags.push(\"C\");\r\n if (flagD) flags.push(\"D\");\r\n }\r\n\r\n result.push({\r\n val: {\r\n type: UnivalTypeEnum.REAL,\r\n value: val ? Number(val) : undefined,\r\n valueTime: time.valueOf(),\r\n flags: flags,\r\n }\r\n })\r\n }\r\n return result;\r\n}\r\n\r\nfunction importGroup(doc: GroupXML, result: ResolvedData[]) {\r\n const groupData: Partial<GroupDetail> = {}\r\n\r\n GroupAttributes.importFromJson(doc, groupData);\r\n\r\n result.push({\r\n type: IdType.GROUP,\r\n data: {data: groupData},\r\n subgroup: doc.podskupina?.map((p) => p.$.meno) ?? [],\r\n vectors: doc.vektor?.map((v) => v.$.meno) ?? [],\r\n });\r\n}\r\n\r\nfunction importScenario(doc: ScenarioXML, result: ResolvedData[]) {\r\n const scenarioData: Partial<ScenarioDetail> = {}\r\n\r\n ScenarioAttributes.importFromJson(doc, scenarioData);\r\n\r\n result.push({\r\n type: IdType.SCENARIO,\r\n data: {data: scenarioData},\r\n subscenario: doc.podscenar?.map((p) => p.$.meno) ?? [],\r\n vectors: doc.vektor?.map((v) => v.$.meno) ?? [],\r\n });\r\n}\r\n\r\nasync function parseXmlWithDoctype<T = any>(xmlString: string): Promise<XmlContent<T>> {\r\n const getDoctype = (): Promise<string | null> => {\r\n return new Promise((resolve) => {\r\n const saxStream = sax.parser(true);\r\n let foundDoctype: string | null = null;\r\n\r\n saxStream.ondoctype = (doctypeStr: any) => {\r\n foundDoctype = doctypeStr.trim();\r\n saxStream.close();\r\n };\r\n saxStream.onend = () => resolve(foundDoctype);\r\n saxStream.onerror = () => resolve(null);\r\n saxStream.write(xmlString).close();\r\n });\r\n };\r\n\r\n const doctype = await getDoctype();\r\n\r\n return new Promise((resolve, reject) => {\r\n const parser = new xml2js.Parser({explicitArray: true});\r\n parser.parseString(xmlString, (err, result) => {\r\n if (err) return reject(err);\r\n resolve({result: result as T, doctype});\r\n });\r\n });\r\n}\r\n\r\nfunction readProperty(value: { $: { [k: string]: string } }, name: string): string | undefined {\r\n const v = value.$[name];\r\n\r\n if (v !== undefined && v !== null) {\r\n return v;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction flattenTree(node: DataNode, result: DataNode[]) {\r\n result.push(node);\r\n\r\n if (node.children && node.children.length > 0) {\r\n for (let child of node.children) {\r\n flattenTree(child, result);\r\n }\r\n }\r\n}\r\n\r\nfunction createNode(id: string, item: ResolvedData, settings: XmlVectorImportConfig, values?: VectorValue[]): DataNode {\r\n const isVector = item.type === IdType.VECTOR;\r\n\r\n return {\r\n id,\r\n key: id,\r\n data: item,\r\n import: (isVector && item.data.data.TYP !== undefined) ? (settings.vectorTypes[item.data.data.TYP as EdaVectorType]) : true,\r\n importValues: true,\r\n validationStatus: EdaImportValidationStatus.ERROR,\r\n title: item.data.data.ZOBRAZ_MENO,\r\n newName: item.data.data.MENO ?? \"\",\r\n newDisplayName: item.data.data.ZOBRAZ_MENO ?? \"\",\r\n isLeaf: item.type === IdType.VECTOR,\r\n icon: getIcon(item),\r\n values,\r\n };\r\n}\r\n\r\nfunction getIcon(item: ResolvedData): ReactNode {\r\n if (item.type === IdType.VECTOR && item.data.data.TYP !== undefined) {\r\n return getVectorIcon(item.data.data.TYP);\r\n }\r\n\r\n return (<FolderOpenOutlined />);\r\n}\r\n\r\nasync function loadDataFromResolvedData(api: EdaManagerApi, data: ResolvedData): Promise<TreeItem | undefined> {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n if (data.data.data.ID_VEKTOR) {\r\n return await api.getVector(data.data.data.ID_VEKTOR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n case IdType.GROUP:\r\n if (data.data.data.ID_SKVEKTOR) {\r\n return await api.getGroup(data.data.data.ID_SKVEKTOR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n case IdType.SCENARIO:\r\n if (data.data.data.ID_SCENAR) {\r\n return await api.getScenario(data.data.data.ID_SCENAR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n }\r\n}\r\n\r\nfunction getParentId(data: ResolvedData) {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n return data.data.data.ID_SKVEKTOR;\r\n case IdType.GROUP:\r\n return data.data.data.EDA_ID_SKVEKTOR;\r\n case IdType.SCENARIO:\r\n return data.data.data.EDA_ID_SCENAR;\r\n }\r\n}"]}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/importExport/import.tsx"],"names":[],"mappings":"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","sourcesContent":["import {EdaVectorType, IdType, TypedData} from \"../../constants/edaTypes\";\r\nimport EdaManagerApi, {DescriptiveVectorDetail, GroupDetail, PairVectorDetail, ScenarioDetail, TreeItem, VectorDetail, VectorValue} from \"../../../../../api/eda/edaManagerApi\";\r\nimport {DescriptiveVectorAttributes, GroupAttributes, PairVectorAttributes, ScenarioAttributes, VectorAttributes} from \"./types\";\r\nimport * as sax from \"sax\";\r\nimport xml2js from \"xml2js\";\r\nimport JSZip from \"jszip\";\r\nimport {TreeDataNode} from \"antd\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {FlagValue, UnivalTypeEnum} from \"d2jsapi\";\r\nimport {LoadingContextType} from \"../../context/loadingContext\";\r\nimport {awaitNextRenderFrame, getVectorIcon} from \"../../utils/utils\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport React, {ReactNode} from \"react\";\r\nimport {FolderOpenOutlined} from \"@ant-design/icons\";\r\n\r\nexport enum LocationType {\r\n SIBLING,\r\n CHILD\r\n}\r\n\r\nexport enum Setting {\r\n IGNORE_TIME_ZONES,\r\n DEFAULT_ID_VALUE,\r\n REPLACE_CODES_IN_PRESCRIPTION,\r\n}\r\n\r\nexport enum EdaImportValidationStatus {\r\n NEW = \"New\",\r\n EXISTS = \"Exists\",\r\n DUPLICATE = \"Duplicate\",\r\n ERROR = \"Error\",\r\n}\r\n\r\nexport interface XmlVectorImportConfig {\r\n vectorTypes: Record<EdaVectorType, boolean>\r\n location: LocationType\r\n settings: Setting[]\r\n replace: {\r\n search: string\r\n replace: string\r\n append: string\r\n changeCode: boolean\r\n changePrescription: boolean\r\n }\r\n}\r\n\r\nexport interface DataNode extends Omit<TreeDataNode, \"children\"> {\r\n id: string\r\n data: ResolvedData\r\n values?: VectorValue[]\r\n children?: DataNode[]\r\n newName: string\r\n newDisplayName: string\r\n import: boolean\r\n importValues: boolean\r\n validationStatus: EdaImportValidationStatus\r\n}\r\n\r\ninterface XmlContent<T = any> {\r\n result: T;\r\n doctype: string | null\r\n}\r\n\r\ntype VectorXML = {\r\n $: { [k: string]: string }\r\n predpis?: {\r\n _: string\r\n }\r\n popis?: { $: { [k: string]: string } }[]\r\n}\r\n\r\ntype VectorDataXML = {\r\n value: { $: { [k: string]: string } }[]\r\n}\r\n\r\ntype GroupXML = {\r\n $: { [k: string]: string }\r\n vektor?: { $: { meno: string } }[]\r\n podskupina?: { $: { meno: string } }[]\r\n}\r\n\r\ntype ScenarioXML = {\r\n $: { [k: string]: string }\r\n vektor?: { $: { meno: string } }[]\r\n podscenar?: { $: { meno: string } }[]\r\n}\r\n\r\nexport type ResolvedData =\r\n | { type: IdType.VECTOR; data: { data: Partial<VectorDetail>, pair: Partial<PairVectorDetail>, prescription?: string, descr: Partial<DescriptiveVectorDetail>[] } }\r\n | { type: IdType.GROUP; data: { data: Partial<GroupDetail> }, subgroup: string[], vectors: string[] }\r\n | { type: IdType.SCENARIO; data: { data: Partial<ScenarioDetail> }, subscenario: string[], vectors: string[] }\r\n\r\nexport async function importData(api: EdaManagerApi, loadedZip: JSZip, rootData: TypedData, settings: XmlVectorImportConfig, loading: LoadingContextType, signal: AbortSignal): Promise<[DataNode | undefined, DataNode[]]> {\r\n const resolvedData: ResolvedData[] = [];\r\n const vectors: Map<string, XmlContent> = new Map();\r\n const files = Object.entries(loadedZip.files);\r\n const rootId = rootData.type === IdType.GROUP ? rootData.data.data.ID_SKVEKTOR : (rootData.type === IdType.SCENARIO ? rootData.data.data.ID_SCENAR : undefined);\r\n const rootParentId = rootData.type === IdType.GROUP ? rootData.data.data.EDA_ID_SKVEKTOR : (rootData.type === IdType.SCENARIO ? rootData.data.data.EDA_ID_SCENAR : undefined);\r\n\r\n for (let i = 0; i < files.length; i++){\r\n const [name, fileEntry] = files[i];\r\n\r\n loading.updateLoading({loadingItem: name, loadingPercentage: i / files.length * 100});\r\n\r\n if (!fileEntry.dir) {\r\n const content = await fileEntry.async(\"string\");\r\n const doc = await parseXmlWithDoctype(content);\r\n const doctype = doc.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n\r\n switch (doctype) {\r\n case \"vektor\":\r\n vectors.set(fileEntry.name, doc);\r\n break;\r\n case \"skupina\":\r\n importGroup(doc.result.skupina, resolvedData);\r\n break;\r\n case \"scenar\":\r\n importScenario(doc.result.scenar, resolvedData);\r\n break;\r\n default:\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: fileEntry.name, d: String(doc.doctype)}));\r\n }\r\n }\r\n }\r\n\r\n loading.updateLoading({loadingPercentage: undefined, loadingItem: i18n(\"Processing data...\")});\r\n\r\n let treeData: DataNode | undefined = undefined;\r\n let tableData: DataNode[] = [];\r\n\r\n if (resolvedData.length > 0) {\r\n const allNodes: DataNode[] = [];\r\n\r\n for (const item of resolvedData) {\r\n if (item.data.data.MENO) {\r\n allNodes.push(createNode(item.data.data.MENO, item, settings));\r\n } else {\r\n throw new Error(i18n(\"Missing object code\"));\r\n }\r\n }\r\n\r\n const rootNodes: DataNode[] = [];\r\n\r\n for (const node of allNodes) {\r\n const id = node.key as string;\r\n const data = node.data;\r\n\r\n const parentEntry = allNodes.find((d) => {\r\n if (d.data.type === IdType.GROUP && data.type === IdType.GROUP) {\r\n return d.data.subgroup.includes(id);\r\n } else if (d.data.type === IdType.SCENARIO && data.type === IdType.SCENARIO) {\r\n return d.data.subscenario.includes(id);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n if (parentEntry) {\r\n const parentId = parentEntry.data.type === IdType.GROUP\r\n ? parentEntry.data.data.data.ID_SKVEKTOR\r\n : (parentEntry.data.type === IdType.SCENARIO ? parentEntry.data.data.data.ID_SCENAR : undefined);\r\n\r\n if (!parentEntry.children) {\r\n parentEntry.children = [];\r\n }\r\n\r\n switch (node.data.type) {\r\n case IdType.VECTOR:\r\n node.data.data.data.ID_SKVEKTOR = parentId;\r\n break;\r\n case IdType.GROUP:\r\n node.data.data.data.EDA_ID_SKVEKTOR = parentId;\r\n break;\r\n case IdType.SCENARIO:\r\n node.data.data.data.EDA_ID_SCENAR = parentId;\r\n break;\r\n }\r\n\r\n parentEntry.children.push(node);\r\n } else {\r\n switch (node.data.type) {\r\n case IdType.VECTOR:\r\n node.data.data.data.ID_SKVEKTOR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n case IdType.GROUP:\r\n node.data.data.data.EDA_ID_SKVEKTOR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n case IdType.SCENARIO:\r\n node.data.data.data.EDA_ID_SCENAR = settings.location === LocationType.CHILD ? rootId : rootParentId;\r\n break;\r\n }\r\n\r\n rootNodes.push(node);\r\n }\r\n\r\n await awaitNextRenderFrame();\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n }\r\n\r\n if (rootNodes.length > 1) {\r\n throw new Error(i18n(\"Multiple root nodes found (%{n})\", {n: String(rootNodes.length)}));\r\n }\r\n\r\n treeData = rootNodes[0];\r\n\r\n for (const node of allNodes) {\r\n if (node.data.type === IdType.GROUP || node.data.type === IdType.SCENARIO) {\r\n for (let vector of node.data.vectors) {\r\n const fileName = `vekt_${vector}`;\r\n let regex = new RegExp(`^${fileName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(_U[0-9]+)?\\.xml`);\r\n let fileNameWithExt: string | undefined = undefined;\r\n let resolved: ResolvedData | undefined = undefined;\r\n\r\n for (let [key, doc] of vectors) {\r\n if (regex.test(key)) {\r\n const doctype = doc?.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (doctype !== \"vektor\") {\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: key, d: String(doc.doctype)}));\r\n }\r\n\r\n fileNameWithExt = key;\r\n resolved = importVector(doc.result.vektor);\r\n }\r\n }\r\n\r\n if (!resolved || !fileNameWithExt) {\r\n throw new Error(i18n(\"No vector found with code %{i}\", {i: fileName}));\r\n }\r\n\r\n const vectorValues: VectorValue[] = [];\r\n\r\n if (!resolved.data.data.MENO || resolved.type !== IdType.VECTOR) {\r\n throw new Error(i18n(\"Missing object code\"));\r\n }\r\n\r\n const children: DataNode = createNode(resolved.data.data.MENO, resolved, settings, vectorValues);\r\n const parentId = node.data.type === IdType.GROUP\r\n ? node.data.data.data.ID_SKVEKTOR\r\n : (node.data.type === IdType.SCENARIO ? node.data.data.data.ID_SCENAR : undefined);\r\n\r\n if (!node.children) {\r\n node.children = [];\r\n }\r\n\r\n resolved.data.data.ID_SKVEKTOR = parentId;\r\n vectors.delete(fileNameWithExt)\r\n node.children.push(children);\r\n\r\n const dataVectors: string[] = [];\r\n regex = new RegExp(`^${fileName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(_U[0-9]+)?_DATA_([0-9]{4})\\\\.xml`);\r\n\r\n for (let [key, doc] of vectors) {\r\n if (regex.test(key)) {\r\n const doctype = doc?.doctype ? doc.doctype.match(/\\w+/)?.[0] : undefined;\r\n\r\n if (doctype !== \"vektor\") {\r\n throw new Error(i18n(\"Invalid doctype in %{i} (%{d})\", {i: key, d: String(doc.doctype)}));\r\n }\r\n\r\n dataVectors.push(key);\r\n vectorValues.push(...importVectorValues(doc.result.vektor));\r\n }\r\n }\r\n\r\n for (let key of dataVectors) {\r\n vectors.delete(key);\r\n }\r\n }\r\n }\r\n\r\n await awaitNextRenderFrame();\r\n\r\n if (signal.aborted) {\r\n throw new Error(i18n(\"Aborted\"));\r\n }\r\n }\r\n\r\n if (vectors.size > 0) {\r\n throw new Error(i18n(\"Found %{n} orphan objects\", {n: String(vectors.size)}));\r\n }\r\n\r\n flattenTree(treeData, tableData);\r\n loading.updateLoading({loadingItem: i18n(\"Validating data...\")});\r\n\r\n let existType = EdaImportValidationStatus.EXISTS;\r\n let isRoot = true;\r\n\r\n for (let data of tableData) {\r\n const result = await loadDataFromResolvedData(api, data.data);\r\n\r\n if (isRoot) {\r\n isRoot = false;\r\n\r\n if (result) {\r\n if (settings.location === LocationType.CHILD && rootId === result.ParentID) {\r\n existType = EdaImportValidationStatus.DUPLICATE;\r\n } else if (settings.location === LocationType.SIBLING && rootParentId === result.ParentID) {\r\n existType = EdaImportValidationStatus.DUPLICATE;\r\n }\r\n }\r\n }\r\n\r\n if (result !== undefined) {\r\n data.validationStatus = !isRoot && result.ParentID === getParentId(data.data) ? existType : EdaImportValidationStatus.EXISTS;\r\n } else {\r\n data.validationStatus = EdaImportValidationStatus.NEW;\r\n }\r\n }\r\n }\r\n\r\n return [treeData, tableData];\r\n}\r\n\r\nfunction importVector(doc: VectorXML): ResolvedData {\r\n const vectorData: Partial<VectorDetail> = {};\r\n const pairData: Partial<PairVectorDetail> = {};\r\n const descrData: Partial<DescriptiveVectorDetail>[] = [];\r\n let prescription: string | undefined = undefined;\r\n\r\n VectorAttributes.importFromJson(doc, vectorData);\r\n\r\n switch (vectorData.TYP) {\r\n case EdaVectorType.Pair:\r\n PairVectorAttributes.importFromJson(doc, pairData);\r\n break;\r\n case EdaVectorType.Descriptive:\r\n case EdaVectorType.Interval:\r\n if (doc.popis) {\r\n for (const descr of doc.popis) {\r\n const data: Partial<DescriptiveVectorDetail> = {};\r\n\r\n DescriptiveVectorAttributes.importFromJson(descr, data);\r\n descrData.push(data);\r\n }\r\n }\r\n break;\r\n case EdaVectorType.FifteenMinutesCalc:\r\n case EdaVectorType.HourCalc:\r\n case EdaVectorType.DayCalc:\r\n case EdaVectorType.ChangeCalc:\r\n prescription = doc.predpis?._;\r\n break;\r\n }\r\n\r\n if (vectorData.TYP === EdaVectorType.Pair) {\r\n PairVectorAttributes.importFromJson(doc, pairData);\r\n }\r\n\r\n return {\r\n type: IdType.VECTOR,\r\n data: {data: vectorData, pair: pairData, prescription, descr: descrData}\r\n };\r\n}\r\n\r\nfunction importVectorValues(doc: VectorDataXML): VectorValue[] {\r\n const result: VectorValue[] = [];\r\n\r\n for (let value of doc.value) {\r\n const time = dayjs(readProperty(value, \"time\"), LocaleHolder.getDateTimeFormat(true, false, false))\r\n const val = readProperty(value, \"value\");\r\n const flagA = readProperty(value, \"flagA\");\r\n const flagB = readProperty(value, \"flagB\");\r\n const flagC = readProperty(value, \"flagC\");\r\n const flagD = readProperty(value, \"flagD\");\r\n let flags: FlagValue[] | undefined = undefined;\r\n\r\n if (flagA || flagB || flagC || flagD) {\r\n flags = [];\r\n\r\n if (flagA) flags.push(\"A\");\r\n if (flagB) flags.push(\"B\");\r\n if (flagC) flags.push(\"C\");\r\n if (flagD) flags.push(\"D\");\r\n }\r\n\r\n result.push({\r\n val: {\r\n type: UnivalTypeEnum.REAL,\r\n value: val ? Number(val) : undefined,\r\n valueTime: time.valueOf(),\r\n flags: flags,\r\n }\r\n })\r\n }\r\n return result;\r\n}\r\n\r\nfunction importGroup(doc: GroupXML, result: ResolvedData[]) {\r\n const groupData: Partial<GroupDetail> = {}\r\n\r\n GroupAttributes.importFromJson(doc, groupData);\r\n\r\n result.push({\r\n type: IdType.GROUP,\r\n data: {data: groupData},\r\n subgroup: doc.podskupina?.map((p) => p.$.meno) ?? [],\r\n vectors: doc.vektor?.map((v) => v.$.meno) ?? [],\r\n });\r\n}\r\n\r\nfunction importScenario(doc: ScenarioXML, result: ResolvedData[]) {\r\n const scenarioData: Partial<ScenarioDetail> = {}\r\n\r\n ScenarioAttributes.importFromJson(doc, scenarioData);\r\n\r\n result.push({\r\n type: IdType.SCENARIO,\r\n data: {data: scenarioData},\r\n subscenario: doc.podscenar?.map((p) => p.$.meno) ?? [],\r\n vectors: doc.vektor?.map((v) => v.$.meno) ?? [],\r\n });\r\n}\r\n\r\nasync function parseXmlWithDoctype<T = any>(xmlString: string): Promise<XmlContent<T>> {\r\n const getDoctype = (): Promise<string | null> => {\r\n return new Promise((resolve) => {\r\n const saxStream = sax.parser(true);\r\n let foundDoctype: string | null = null;\r\n\r\n saxStream.ondoctype = (doctypeStr: any) => {\r\n foundDoctype = doctypeStr.trim();\r\n saxStream.close();\r\n };\r\n saxStream.onend = () => resolve(foundDoctype);\r\n saxStream.onerror = () => resolve(null);\r\n saxStream.write(xmlString).close();\r\n });\r\n };\r\n\r\n const doctype = await getDoctype();\r\n\r\n return new Promise((resolve, reject) => {\r\n const parser = new xml2js.Parser({explicitArray: true});\r\n parser.parseString(xmlString, (err, result) => {\r\n if (err) return reject(err);\r\n resolve({result: result as T, doctype});\r\n });\r\n });\r\n}\r\n\r\nfunction readProperty(value: { $: { [k: string]: string } }, name: string): string | undefined {\r\n const v = value.$[name];\r\n\r\n if (v !== undefined && v !== null) {\r\n return v;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction flattenTree(node: DataNode, result: DataNode[]) {\r\n result.push(node);\r\n\r\n if (node.children && node.children.length > 0) {\r\n for (let child of node.children) {\r\n flattenTree(child, result);\r\n }\r\n }\r\n}\r\n\r\nfunction createNode(id: string, item: ResolvedData, settings: XmlVectorImportConfig, values?: VectorValue[]): DataNode {\r\n const isVector = item.type === IdType.VECTOR;\r\n\r\n return {\r\n id,\r\n key: id,\r\n data: item,\r\n import: (isVector && item.data.data.TYP !== undefined) ? (settings.vectorTypes[item.data.data.TYP as EdaVectorType]) : true,\r\n importValues: true,\r\n validationStatus: EdaImportValidationStatus.ERROR,\r\n title: item.data.data.ZOBRAZ_MENO,\r\n newName: item.data.data.MENO ?? \"\",\r\n newDisplayName: item.data.data.ZOBRAZ_MENO ?? \"\",\r\n isLeaf: item.type === IdType.VECTOR,\r\n icon: getIcon(item),\r\n values,\r\n };\r\n}\r\n\r\nfunction getIcon(item: ResolvedData): ReactNode {\r\n if (item.type === IdType.VECTOR && item.data.data.TYP !== undefined) {\r\n return getVectorIcon(item.data.data.TYP);\r\n }\r\n\r\n return (<FolderOpenOutlined />);\r\n}\r\n\r\nasync function loadDataFromResolvedData(api: EdaManagerApi, data: ResolvedData): Promise<TreeItem | undefined> {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n if (data.data.data.ID_VEKTOR) {\r\n return await api.getVector(data.data.data.ID_VEKTOR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n case IdType.GROUP:\r\n if (data.data.data.ID_SKVEKTOR) {\r\n return await api.getGroup(data.data.data.ID_SKVEKTOR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n case IdType.SCENARIO:\r\n if (data.data.data.ID_SCENAR) {\r\n return await api.getScenario(data.data.data.ID_SCENAR);\r\n } else {\r\n throw new Error(i18n(\"Missing object ID in %{i}\", {i: String(data.data.data.MENO)}));\r\n }\r\n }\r\n}\r\n\r\nfunction getParentId(data: ResolvedData) {\r\n switch (data.type) {\r\n case IdType.VECTOR:\r\n return data.data.data.ID_SKVEKTOR;\r\n case IdType.GROUP:\r\n return data.data.data.EDA_ID_SKVEKTOR;\r\n case IdType.SCENARIO:\r\n return data.data.data.EDA_ID_SCENAR;\r\n }\r\n}"]}
@@ -1,2 +1,9 @@
1
1
  import { FC } from "react";
2
- export declare const VectorTypeSelection: FC;
2
+ import { EdaVectorType } from "../../constants/edaTypes";
3
+ interface Props {
4
+ vectorTypes: Record<EdaVectorType, boolean>;
5
+ onSelectAllSpecified: (selected: boolean) => void;
6
+ onSelectAllCalculated: (selected: boolean) => void;
7
+ }
8
+ export declare const VectorTypeSelection: FC<Props>;
9
+ export {};
@@ -1,15 +1,20 @@
1
1
  import React from "react";
2
- import { Card, Col, Row, Typography } from "antd";
2
+ import { Card, Checkbox, Col, Divider, Row } from "antd";
3
3
  import i18n from "d2core/i18n/i18n";
4
4
  import { CalculatedVectors, SpecifiedVectors } from "./export";
5
5
  import { VectorTypeCheckbox } from "./vectorTypeCheckbox";
6
- export const VectorTypeSelection = () => {
6
+ export const VectorTypeSelection = ({ vectorTypes, onSelectAllSpecified, onSelectAllCalculated }) => {
7
+ const allSpecifiedSelected = SpecifiedVectors.every(vector => vectorTypes[vector]);
8
+ const noneSpecifiedSelected = !SpecifiedVectors.some(vector => vectorTypes[vector]);
9
+ const allCalculatedSelected = CalculatedVectors.every(vector => vectorTypes[vector]);
10
+ const noneCalculatedSelected = !CalculatedVectors.some(vector => vectorTypes[vector]);
7
11
  return (React.createElement(Card, { title: i18n("Select by vector type") },
8
12
  React.createElement(Row, { gutter: 8 },
9
13
  React.createElement(Col, { span: 12 },
10
- React.createElement(Typography.Text, { type: "secondary" }, i18n("Specified"))),
14
+ React.createElement(Checkbox, { checked: allSpecifiedSelected, indeterminate: !noneSpecifiedSelected && !allSpecifiedSelected, onChange: e => onSelectAllSpecified(e.target.checked) }, i18n("Specified"))),
11
15
  React.createElement(Col, { span: 12 },
12
- React.createElement(Typography.Text, { type: "secondary" }, i18n("Calculated")))),
16
+ React.createElement(Checkbox, { checked: allCalculatedSelected, indeterminate: !noneCalculatedSelected && !allCalculatedSelected, onChange: e => onSelectAllCalculated(e.target.checked) }, i18n("Calculated")))),
17
+ React.createElement(Divider, null),
13
18
  Array.from({ length: Math.max(SpecifiedVectors.length, CalculatedVectors.length) }).map((_, index) => (React.createElement(Row, { key: index, gutter: 8 },
14
19
  React.createElement(Col, { span: 12 }, SpecifiedVectors[index] !== undefined && React.createElement(VectorTypeCheckbox, { type: SpecifiedVectors[index] })),
15
20
  React.createElement(Col, { span: 12 }, CalculatedVectors[index] !== undefined && React.createElement(VectorTypeCheckbox, { type: CalculatedVectors[index] })))))));
@@ -1 +1 @@
1
- {"version":3,"file":"vectorTypeSelection.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AAChD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAO,GAAG,EAAE;IACxC,OAAO,CACH,oBAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC;QACtC,oBAAC,GAAG,IAAC,MAAM,EAAE,CAAC;YACV,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE;gBAAE,oBAAC,UAAU,CAAC,IAAI,IAAC,IAAI,EAAE,WAAW,IAAG,IAAI,CAAC,WAAW,CAAC,CAAmB,CAAM;YAC9F,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE;gBAAE,oBAAC,UAAU,CAAC,IAAI,IAAC,IAAI,EAAE,WAAW,IAAG,IAAI,CAAC,YAAY,CAAC,CAAmB,CAAM,CAC7F;QACL,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACjG,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACtB,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE,IAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,oBAAC,kBAAkB,IAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAO;YACpH,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE,IAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,oBAAC,kBAAkB,IAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAO,CACpH,CACT,CAAC,CACC,CACV,CAAC;AACN,CAAC,CAAA","sourcesContent":["import React, {FC} from \"react\";\r\nimport {Card, Col, Row, Typography} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CalculatedVectors, SpecifiedVectors} from \"./export\";\r\nimport {VectorTypeCheckbox} from \"./vectorTypeCheckbox\";\r\n\r\nexport const VectorTypeSelection: FC = () => {\r\n return (\r\n <Card title={i18n(\"Select by vector type\")}>\r\n <Row gutter={8}>\r\n <Col span={12}><Typography.Text type={\"secondary\"}>{i18n(\"Specified\")}</Typography.Text></Col>\r\n <Col span={12}><Typography.Text type={\"secondary\"}>{i18n(\"Calculated\")}</Typography.Text></Col>\r\n </Row>\r\n {Array.from({length: Math.max(SpecifiedVectors.length, CalculatedVectors.length)}).map((_, index) => (\r\n <Row key={index} gutter={8}>\r\n <Col span={12}>{SpecifiedVectors[index] !== undefined && <VectorTypeCheckbox type={SpecifiedVectors[index]}/>}</Col>\r\n <Col span={12}>{CalculatedVectors[index] !== undefined && <VectorTypeCheckbox type={CalculatedVectors[index]}/>}</Col>\r\n </Row>\r\n ))}\r\n </Card>\r\n );\r\n}"]}
1
+ {"version":3,"file":"vectorTypeSelection.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/importExport/vectorTypeSelection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC,MAAM,MAAM,CAAC;AACvD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AASxD,MAAM,CAAC,MAAM,mBAAmB,GAAc,CAAC,EAAC,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAC,EAAE,EAAE;IACzG,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,qBAAqB,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpF,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,MAAM,sBAAsB,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtF,OAAO,CACH,oBAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC;QACtC,oBAAC,GAAG,IAAC,MAAM,EAAE,CAAC;YACV,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE;gBACT,oBAAC,QAAQ,IACL,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,CAAC,qBAAqB,IAAI,CAAC,oBAAoB,EAC9D,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAEpD,IAAI,CAAC,WAAW,CAAC,CACX,CACT;YACN,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE;gBACT,oBAAC,QAAQ,IACL,OAAO,EAAE,qBAAqB,EAC9B,aAAa,EAAE,CAAC,sBAAsB,IAAI,CAAC,qBAAqB,EAChE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAErD,IAAI,CAAC,YAAY,CAAC,CACZ,CACT,CACJ;QACN,oBAAC,OAAO,OAAG;QACV,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACjG,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACtB,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE,IAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,oBAAC,kBAAkB,IAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAO;YACpH,oBAAC,GAAG,IAAC,IAAI,EAAE,EAAE,IAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,oBAAC,kBAAkB,IAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAO,CACpH,CACT,CAAC,CACC,CACV,CAAC;AACN,CAAC,CAAA","sourcesContent":["import React, {FC} from \"react\";\r\nimport {Card, Checkbox, Col, Divider, Row} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CalculatedVectors, SpecifiedVectors} from \"./export\";\r\nimport {VectorTypeCheckbox} from \"./vectorTypeCheckbox\";\r\nimport {EdaVectorType} from \"../../constants/edaTypes\";\r\n\r\ninterface Props {\r\n vectorTypes: Record<EdaVectorType, boolean>\r\n onSelectAllSpecified: (selected: boolean) => void\r\n onSelectAllCalculated: (selected: boolean) => void\r\n}\r\n\r\nexport const VectorTypeSelection: FC<Props> = ({vectorTypes, onSelectAllSpecified, onSelectAllCalculated}) => {\r\n const allSpecifiedSelected = SpecifiedVectors.every(vector => vectorTypes[vector]);\r\n const noneSpecifiedSelected = !SpecifiedVectors.some(vector => vectorTypes[vector]);\r\n\r\n const allCalculatedSelected = CalculatedVectors.every(vector => vectorTypes[vector]);\r\n const noneCalculatedSelected = !CalculatedVectors.some(vector => vectorTypes[vector]);\r\n\r\n return (\r\n <Card title={i18n(\"Select by vector type\")}>\r\n <Row gutter={8}>\r\n <Col span={12}>\r\n <Checkbox\r\n checked={allSpecifiedSelected}\r\n indeterminate={!noneSpecifiedSelected && !allSpecifiedSelected}\r\n onChange={e => onSelectAllSpecified(e.target.checked)}\r\n >\r\n {i18n(\"Specified\")}\r\n </Checkbox>\r\n </Col>\r\n <Col span={12}>\r\n <Checkbox\r\n checked={allCalculatedSelected}\r\n indeterminate={!noneCalculatedSelected && !allCalculatedSelected}\r\n onChange={e => onSelectAllCalculated(e.target.checked)}\r\n >\r\n {i18n(\"Calculated\")}\r\n </Checkbox>\r\n </Col>\r\n </Row>\r\n <Divider />\r\n {Array.from({length: Math.max(SpecifiedVectors.length, CalculatedVectors.length)}).map((_, index) => (\r\n <Row key={index} gutter={8}>\r\n <Col span={12}>{SpecifiedVectors[index] !== undefined && <VectorTypeCheckbox type={SpecifiedVectors[index]}/>}</Col>\r\n <Col span={12}>{CalculatedVectors[index] !== undefined && <VectorTypeCheckbox type={CalculatedVectors[index]}/>}</Col>\r\n </Row>\r\n ))}\r\n </Card>\r\n );\r\n}"]}
@@ -28,21 +28,20 @@ export const VectorSelectionDialog = ({ api, data, displayedVectors, onSelected,
28
28
  const id = data.type === 1 ? data.data.data.ID_SKVEKTOR : data.data.data.ID_SCENAR;
29
29
  try {
30
30
  let vectors;
31
- let page = 0;
31
+ let page = 1;
32
32
  do {
33
- const offset = page * api.pageSize;
34
33
  if (data.type === 1) {
35
- vectors = await api.getGroupVectors(id, offset);
34
+ vectors = await api.getGroupVectors(id, page);
36
35
  }
37
36
  else {
38
- vectors = await api.getScenarioVectors(id, offset, undefined, true);
37
+ vectors = await api.getScenarioVectors(id, page, undefined, true);
39
38
  }
40
39
  if (!isCurrent) {
41
40
  return;
42
41
  }
43
42
  result.push(...vectors.items);
44
43
  page++;
45
- } while (vectors.leftCount > 0);
44
+ } while ((page - 1) * api.pageSize < vectors.totalCount);
46
45
  if (isCurrent) {
47
46
  setAvailableVectors(result);
48
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vectorSelectionDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, Key, useCallback, useEffect, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {TreeItem, TreeItemsResult} from \"../../../../api/eda/edaManagerApi\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {IdType, TypedData} from \"../constants/edaTypes\";\r\nimport {ModalDialog, ModalDialogMode, ModalDialogProps} from \"d2coreui/components/modal/modalDialog\";\r\nimport {Alert, Transfer} from \"antd\";\r\nimport {EdaDialogTitle} from \"../components/edaDialogTitle\";\r\n\r\ninterface Props extends Omit<ModalDialogProps, \"mode\" | \"onOk\"> {\r\n api: EdaManagerApi\r\n data?: TypedData\r\n displayedVectors: TreeItem[]\r\n onSelected: (vectors: TreeItem[]) => void\r\n}\r\n\r\nexport const VectorSelectionDialog: FC<Props> = ({api, data, displayedVectors, onSelected, open, ...props}) => {\r\n const [visibleVectors, setVisibleVectors] = useState<Key[]>([]);\r\n const [availableVectors, setAvailableVectors] = useState<TreeItem[]>(displayedVectors);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const lastLoaded = useRef<TypedData | undefined>(undefined);\r\n\r\n const handleChange = useCallback((targetKeys: Key[]) => setVisibleVectors(targetKeys), []);\r\n\r\n const handleOk = useCallback(() => {\r\n const availableMap = new Map(availableVectors.map(v => [v.ID, v]));\r\n const selected = visibleVectors\r\n .map((id) => availableMap.get(id as number))\r\n .filter((v): v is TreeItem => !!v);\r\n onSelected(selected);\r\n }, [availableVectors, visibleVectors, onSelected]);\r\n\r\n useEffect(() => {\r\n let isCurrent = true;\r\n\r\n if (open && data && (data.type === IdType.GROUP || data.type === IdType.SCENARIO) && data !== lastLoaded.current) {\r\n const fetchAllVectors = async () => {\r\n setIsLoading(true);\r\n setVisibleVectors(displayedVectors.map((v) => v.ID));\r\n setAvailableVectors([]);\r\n lastLoaded.current = data;\r\n\r\n const result: TreeItem[] = [];\r\n const id = data.type === IdType.GROUP ? data.data.data.ID_SKVEKTOR : data.data.data.ID_SCENAR;\r\n\r\n try {\r\n let vectors: TreeItemsResult;\r\n let page = 0;\r\n\r\n do {\r\n const offset = page * api.pageSize;\r\n\r\n if (data.type === IdType.GROUP) {\r\n vectors = await api.getGroupVectors(id, offset);\r\n } else {\r\n vectors = await api.getScenarioVectors(id, offset, undefined, true);\r\n }\r\n\r\n if (!isCurrent) {\r\n return;\r\n }\r\n\r\n result.push(...vectors.items);\r\n page++;\r\n } while (vectors.leftCount > 0);\r\n\r\n if (isCurrent) {\r\n setAvailableVectors(result);\r\n }\r\n } catch (e) {\r\n console.error(\"Failed to load vectors\", e);\r\n } finally {\r\n if (isCurrent) {\r\n setIsLoading(false);\r\n }\r\n }\r\n };\r\n\r\n fetchAllVectors();\r\n }\r\n\r\n return () => {\r\n isCurrent = false;\r\n }\r\n }, [api, data, open, displayedVectors]);\r\n\r\n return (\r\n <ModalDialog\r\n {...props}\r\n mode={ModalDialogMode.OK_CANCEL}\r\n open={open}\r\n styles={{body: {paddingTop: 0}}}\r\n title={<EdaDialogTitle title={i18n(\"User Selection\")}/>}\r\n initialWidth={window.innerWidth * 0.8}\r\n initialHeight={window.innerHeight * 0.8}\r\n okButtonProps={{disabled: visibleVectors.length > api.pageSize || isLoading}}\r\n onOk={handleOk}\r\n >\r\n <Transfer<TreeItem>\r\n style={{width: \"100%\", height: \"100%\"}}\r\n listStyle={{flex: \"1 1 auto\", height: \"100%\"}}\r\n dataSource={availableVectors}\r\n rowKey={(vector) => vector.ID}\r\n titles={[i18n(\"Hidden vectors\"), i18n(\"Displayed vectors\")]}\r\n targetKeys={visibleVectors}\r\n onChange={handleChange}\r\n status={visibleVectors.length > api.pageSize ? \"error\": undefined}\r\n render={(vector) => vector.DisplayName}\r\n footer={(_, info) => {\r\n if (visibleVectors.length > api.pageSize && info?.direction === \"right\") {\r\n return (<Alert type={\"error\"} message={i18n(\"Maximum number of displayed vectors: %{n}\", {n: String(api.pageSize)})} />);\r\n } else {\r\n return undefined;\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n );\r\n}"]}
1
+ {"version":3,"file":"vectorSelectionDialog.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/dialogs/vectorSelectionDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, Key, useCallback, useEffect, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {TreeItem, TreeItemsResult} from \"../../../../api/eda/edaManagerApi\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {IdType, TypedData} from \"../constants/edaTypes\";\r\nimport {ModalDialog, ModalDialogMode, ModalDialogProps} from \"d2coreui/components/modal/modalDialog\";\r\nimport {Alert, Transfer} from \"antd\";\r\nimport {EdaDialogTitle} from \"../components/edaDialogTitle\";\r\n\r\ninterface Props extends Omit<ModalDialogProps, \"mode\" | \"onOk\"> {\r\n api: EdaManagerApi\r\n data?: TypedData\r\n displayedVectors: TreeItem[]\r\n onSelected: (vectors: TreeItem[]) => void\r\n}\r\n\r\nexport const VectorSelectionDialog: FC<Props> = ({api, data, displayedVectors, onSelected, open, ...props}) => {\r\n const [visibleVectors, setVisibleVectors] = useState<Key[]>([]);\r\n const [availableVectors, setAvailableVectors] = useState<TreeItem[]>(displayedVectors);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const lastLoaded = useRef<TypedData | undefined>(undefined);\r\n\r\n const handleChange = useCallback((targetKeys: Key[]) => setVisibleVectors(targetKeys), []);\r\n\r\n const handleOk = useCallback(() => {\r\n const availableMap = new Map(availableVectors.map(v => [v.ID, v]));\r\n const selected = visibleVectors\r\n .map((id) => availableMap.get(id as number))\r\n .filter((v): v is TreeItem => !!v);\r\n onSelected(selected);\r\n }, [availableVectors, visibleVectors, onSelected]);\r\n\r\n useEffect(() => {\r\n let isCurrent = true;\r\n\r\n if (open && data && (data.type === IdType.GROUP || data.type === IdType.SCENARIO) && data !== lastLoaded.current) {\r\n const fetchAllVectors = async () => {\r\n setIsLoading(true);\r\n setVisibleVectors(displayedVectors.map((v) => v.ID));\r\n setAvailableVectors([]);\r\n lastLoaded.current = data;\r\n\r\n const result: TreeItem[] = [];\r\n const id = data.type === IdType.GROUP ? data.data.data.ID_SKVEKTOR : data.data.data.ID_SCENAR;\r\n\r\n try {\r\n let vectors: TreeItemsResult;\r\n let page = 1;\r\n\r\n do {\r\n if (data.type === IdType.GROUP) {\r\n vectors = await api.getGroupVectors(id, page);\r\n } else {\r\n vectors = await api.getScenarioVectors(id, page, undefined, true);\r\n }\r\n\r\n if (!isCurrent) {\r\n return;\r\n }\r\n\r\n result.push(...vectors.items);\r\n page++;\r\n } while ((page - 1) * api.pageSize < vectors.totalCount);\r\n\r\n if (isCurrent) {\r\n setAvailableVectors(result);\r\n }\r\n } catch (e) {\r\n console.error(\"Failed to load vectors\", e);\r\n } finally {\r\n if (isCurrent) {\r\n setIsLoading(false);\r\n }\r\n }\r\n };\r\n\r\n fetchAllVectors();\r\n }\r\n\r\n return () => {\r\n isCurrent = false;\r\n }\r\n }, [api, data, open, displayedVectors]);\r\n\r\n return (\r\n <ModalDialog\r\n {...props}\r\n mode={ModalDialogMode.OK_CANCEL}\r\n open={open}\r\n styles={{body: {paddingTop: 0}}}\r\n title={<EdaDialogTitle title={i18n(\"User Selection\")}/>}\r\n initialWidth={window.innerWidth * 0.8}\r\n initialHeight={window.innerHeight * 0.8}\r\n okButtonProps={{disabled: visibleVectors.length > api.pageSize || isLoading}}\r\n onOk={handleOk}\r\n >\r\n <Transfer<TreeItem>\r\n style={{width: \"100%\", height: \"100%\"}}\r\n listStyle={{flex: \"1 1 auto\", height: \"100%\"}}\r\n dataSource={availableVectors}\r\n rowKey={(vector) => vector.ID}\r\n titles={[i18n(\"Hidden vectors\"), i18n(\"Displayed vectors\")]}\r\n targetKeys={visibleVectors}\r\n onChange={handleChange}\r\n status={visibleVectors.length > api.pageSize ? \"error\": undefined}\r\n render={(vector) => vector.DisplayName}\r\n footer={(_, info) => {\r\n if (visibleVectors.length > api.pageSize && info?.direction === \"right\") {\r\n return (<Alert type={\"error\"} message={i18n(\"Maximum number of displayed vectors: %{n}\", {n: String(api.pageSize)})} />);\r\n } else {\r\n return undefined;\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n );\r\n}"]}
@@ -1,10 +1,9 @@
1
1
  import React, { FC } from "react";
2
- import { TypedIndex } from "./constants/edaTypes";
3
- import EdaManagerApi, { TreeItem } from "../../../api/eda/edaManagerApi";
2
+ import { ItemType } from "./constants/edaTypes";
3
+ import EdaManagerApi from "../../../api/eda/edaManagerApi";
4
4
  import { SizeType } from "antd/lib/config-provider/SizeContext";
5
5
  import { Variant } from "antd/es/config-provider";
6
6
  import { EdaConfiguration } from "./context/edaConfigContext";
7
- export type ItemType = TreeItem[] | TypedIndex;
8
7
  interface Props {
9
8
  api: EdaManagerApi;
10
9
  item?: ItemType;
@@ -131,7 +131,9 @@ export const EdaDetail = ({ api, item, className, style, size, variant }) => {
131
131
  !Array.isArray(item) && item && item.type === 1 && (React.createElement(React.Fragment, null,
132
132
  React.createElement(Button, { icon: React.createElement(ImportOutlined, null), onClick: () => triggerImportToXML(detailData), title: i18n("Import") }),
133
133
  React.createElement(Button, { icon: React.createElement(FileAddOutlined, null), onClick: () => triggerIncludeToGroup(item), title: i18n("Include vector to group") }))),
134
- !Array.isArray(item) && item && item.type === 2 && (React.createElement(Button, { icon: React.createElement(FileAddOutlined, null), onClick: () => triggerIncludeToScenario(item), title: i18n("Include vector to scenario") })))),
134
+ !Array.isArray(item) && item && item.type === 2 && (React.createElement(React.Fragment, null,
135
+ React.createElement(Button, { icon: React.createElement(ImportOutlined, null), onClick: () => triggerImportToXML(detailData), title: i18n("Import") }),
136
+ React.createElement(Button, { icon: React.createElement(FileAddOutlined, null), onClick: () => triggerIncludeToScenario(item), title: i18n("Include vector to scenario") }))))),
135
137
  React.createElement(Button, { disabled: item === undefined, icon: isFullscreen ? React.createElement(FullscreenExitOutlined, null) : React.createElement(FullscreenOutlined, null), onClick: handleToggleFullscreen, title: i18n(isFullscreen ? "Restore" : "Fullscreen") }))),
136
138
  } })));
137
139
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"edaDetail.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaDetail.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {EdaSamplingType, IdType, StepType, TypedData, TypedIndex} from \"./constants/edaTypes\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\nimport {SharedSampleRangeContext, SharedSampleRangeState} from \"./context/sharedSampleRangeContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {loadDetail, loadPreference, savePreference, stepToDayJsType} from \"./utils/utils\";\r\nimport {StorageTypes} from \"./constants/storageTypes\";\r\nimport {getRange} from \"./components/edaTimeWindowPickerPanel\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaDetailPanel} from \"./components/edaDetailPanel\";\r\nimport {EdaTablePanel} from \"./components/edaTablePanel\";\r\nimport {EdaVectorDataProvider} from \"./context/edaVectorDataProvider\";\r\nimport {Button, ConfigProvider, Space, Tabs} from \"antd\";\r\nimport {EdaConfiguration} from \"./context/edaConfigContext\";\r\nimport {EdaGraphPanel} from \"./components/edaGraphPanel\";\r\nimport {AppstoreAddOutlined, ExportOutlined, FileAddOutlined, FolderAddOutlined, FullscreenExitOutlined, FullscreenOutlined, ImportOutlined} from \"@ant-design/icons\";\r\nimport {createPortal} from \"react-dom\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {useEdaActions} from \"./context/useEdaActions\";\r\nimport {LoadingContextProvider} from \"./context/loadingContext\";\r\n\r\nconst useStyles = createStyles(({css},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n overflow: hidden;\r\n\r\n .ant-tabs-content {\r\n height: 100%;\r\n }\r\n `,\r\n fullscreenLayout: css`\r\n .ant-design-draggable-modal-title {\r\n display: none;\r\n }\r\n `\r\n }\r\n});\r\n\r\nexport type ItemType = TreeItem[] | TypedIndex\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n item?: ItemType\r\n className?: string\r\n style?: React.CSSProperties\r\n\r\n size?: SizeType\r\n variant?: Variant\r\n\r\n // Eda detail configuration\r\n configuration?: EdaConfiguration\r\n}\r\n\r\nexport const EdaDetail: FC<Props> = ({api, item, className, style, size, variant}) => {\r\n const {styles} = useStyles();\r\n const {triggerExportToXML, triggerImportToXML, triggerIncludeToScenario, triggerIncludeToGroup, renderActionDialogs} = useEdaActions(api);\r\n\r\n const [activeTabKey, setActiveTabKey] = useState<string>(\"detail\");\r\n const [detailData, setDetailData] = useState<TypedData>();\r\n\r\n const [isFullscreen, setIsFullscreen] = useState<boolean>(false);\r\n const [portalTarget, setPortalTarget] = useState<HTMLDivElement | null>(null);\r\n\r\n const [sampleRange, setSampleRange] = useState<SharedSampleRangeState>(() => {\r\n const btTotal = dayjs(loadPreference(StorageTypes.EDA_DETAIL_BT, dayjs().startOf('day').toISOString()));\r\n const etTotal = dayjs(loadPreference(StorageTypes.EDA_DETAIL_ET, dayjs().endOf('day').toISOString()));\r\n const step = loadPreference(StorageTypes.EDA_DETAIL_STEP, StepType.Daily);\r\n const {bt, et} = getRange(btTotal, etTotal, step);\r\n\r\n return {\r\n btTotal,\r\n etTotal,\r\n btWindow: bt,\r\n etWindow: et,\r\n sampling: EdaSamplingType.Default,\r\n step,\r\n vectorPage: 1,\r\n totalCount: 0,\r\n }\r\n });\r\n\r\n const updateValues = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => {\r\n setSampleRange((s) => {\r\n let {btWindow, etWindow} = s;\r\n const unit = stepToDayJsType(s.step);\r\n\r\n if (unit) {\r\n if (s.btWindow.isBefore(bt)) {\r\n btWindow = bt;\r\n etWindow = bt.endOf(unit);\r\n }\r\n\r\n if (s.etWindow.isAfter(et)) {\r\n btWindow = et.startOf(unit);\r\n etWindow = et;\r\n }\r\n } else {\r\n btWindow = bt;\r\n etWindow = et;\r\n }\r\n\r\n return {...s, btTotal: bt, etTotal: et, btWindow, etWindow, sampling}\r\n });\r\n }, []);\r\n const updatePage = useCallback((page: number) => {\r\n setSampleRange((s) => ({...s, vectorPage: page, vectors: undefined}));\r\n }, []);\r\n const updateVectors = useCallback((vectors: TreeItem[]) => {\r\n setSampleRange((s) => ({...s, vectorPage: 1, vectors: vectors}));\r\n }, []);\r\n const updateTimeWindow = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => {\r\n setSampleRange((s) => ({...s, btWindow: bt, etWindow: et, step}));\r\n }, []);\r\n const updateTotalCount = useCallback((totalCount: number) => {\r\n setSampleRange((s) => ({...s, totalCount}));\r\n }, []);\r\n const contextValue: SharedSampleRangeContext = useMemo(() => ({\r\n ...sampleRange,\r\n updateValues,\r\n updatePage,\r\n updateVectors,\r\n updateTimeWindow,\r\n updateTotalCount,\r\n }), [sampleRange, updateValues, updatePage, updateVectors, updateTimeWindow, updateTotalCount]);\r\n\r\n const handleToggleFullscreen = useCallback(() => {\r\n setIsFullscreen(!isFullscreen);\r\n\r\n if (isFullscreen) {\r\n setPortalTarget(null);\r\n }\r\n }, [isFullscreen]);\r\n\r\n const tabItems = useMemo(() => [\r\n {\r\n key: \"detail\",\r\n label: i18n(\"Detail\"),\r\n children: (\r\n <EdaDetailPanel\r\n api={api}\r\n data={detailData}\r\n />\r\n ),\r\n },\r\n {\r\n key: \"table\",\r\n label: i18n(\"Table\"),\r\n children: (\r\n <EdaTablePanel\r\n api={api}\r\n data={detailData}\r\n isActive={activeTabKey === \"table\"}\r\n />\r\n ),\r\n },\r\n {\r\n key: \"graph\",\r\n label: i18n(\"Graph\"),\r\n children: (\r\n <EdaGraphPanel\r\n api={api}\r\n data={detailData}\r\n isActive={activeTabKey === \"graph\"}\r\n />\r\n ),\r\n },\r\n ], [api, detailData, activeTabKey]);\r\n\r\n const renderTabs = (\r\n <div style={{position: 'relative', height: '100%', width: '100%', display: 'flex', flexDirection: 'column'}}>\r\n <Tabs\r\n type={\"card\"}\r\n className={styles.baseLayout}\r\n onChange={setActiveTabKey}\r\n activeKey={activeTabKey}\r\n destroyOnHidden={false}\r\n items={tabItems}\r\n tabBarExtraContent={{\r\n right: (\r\n <Space.Compact>\r\n {detailData !== undefined && (\r\n <>\r\n {!Array.isArray(item) && item && (\r\n <Button\r\n icon={<ExportOutlined/>}\r\n onClick={() => triggerExportToXML(detailData)}\r\n title={i18n(\"Export\")}\r\n />\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.VECTOR && (\r\n <>\r\n <Button\r\n icon={<AppstoreAddOutlined/>}\r\n onClick={() => triggerIncludeToGroup(item)}\r\n title={i18n(\"Include vector to group\")}\r\n />\r\n <Button\r\n icon={<FolderAddOutlined/>}\r\n onClick={() => triggerIncludeToScenario(item)}\r\n title={i18n(\"Include vector to scenario\")}\r\n />\r\n </>\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.GROUP && (\r\n <>\r\n <Button\r\n icon={<ImportOutlined/>}\r\n onClick={() => triggerImportToXML(detailData)}\r\n title={i18n(\"Import\")}\r\n />\r\n <Button\r\n icon={<FileAddOutlined/>}\r\n onClick={() => triggerIncludeToGroup(item)}\r\n title={i18n(\"Include vector to group\")}\r\n />\r\n </>\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.SCENARIO && (\r\n <Button\r\n icon={<FileAddOutlined/>}\r\n onClick={() => triggerIncludeToScenario(item)}\r\n title={i18n(\"Include vector to scenario\")}\r\n />\r\n )}\r\n </>\r\n )}\r\n <Button\r\n disabled={item === undefined}\r\n icon={isFullscreen ? <FullscreenExitOutlined/> : <FullscreenOutlined/>}\r\n onClick={handleToggleFullscreen}\r\n title={i18n(isFullscreen ? \"Restore\" : \"Fullscreen\")}\r\n />\r\n </Space.Compact>\r\n ),\r\n }}\r\n />\r\n </div>\r\n );\r\n\r\n useEffect(() => {\r\n let isMounted = true;\r\n\r\n if (item) {\r\n loadDetail(api, item).then((result) => {\r\n if (isMounted && result) {\r\n setDetailData(result);\r\n }\r\n });\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n }\r\n }, [api, item]);\r\n\r\n useEffect(() => {\r\n savePreference(StorageTypes.EDA_DETAIL_BT, sampleRange.btTotal.toISOString());\r\n savePreference(StorageTypes.EDA_DETAIL_ET, sampleRange.etTotal.toISOString());\r\n savePreference(StorageTypes.EDA_DETAIL_STEP, sampleRange.step);\r\n }, [sampleRange.btTotal, sampleRange.etTotal, sampleRange.step]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size} variant={variant}>\r\n <div className={className} style={style}>\r\n <SharedSampleRangeContext.Provider value={contextValue}>\r\n <LoadingContextProvider>\r\n <EdaVectorDataProvider api={api}>\r\n {isFullscreen && portalTarget ? createPortal(renderTabs, portalTarget) : renderTabs}\r\n <ModalDialog\r\n classNames={{header: styles.fullscreenLayout}}\r\n open={isFullscreen}\r\n onCancel={handleToggleFullscreen}\r\n footer={null}\r\n closable={false}\r\n initialWidth={window.innerWidth * 0.9}\r\n initialHeight={window.innerHeight * 0.9}\r\n destroyOnHidden={false}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n styles={{\r\n header: {\r\n padding: 0,\r\n margin: 0\r\n },\r\n }}\r\n >\r\n <div\r\n style={{width: '100%', height: '100%'}}\r\n ref={(el) => {\r\n if (el && !portalTarget) {\r\n setPortalTarget(el);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n {renderActionDialogs()}\r\n </EdaVectorDataProvider>\r\n </LoadingContextProvider>\r\n </SharedSampleRangeContext.Provider>\r\n </div>\r\n </ConfigProvider>\r\n );\r\n}"]}
1
+ {"version":3,"file":"edaDetail.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaDetail.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {EdaSamplingType, IdType, ItemType, StepType, TypedData} from \"./constants/edaTypes\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\nimport {SharedSampleRangeContext, SharedSampleRangeState} from \"./context/sharedSampleRangeContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {loadDetail, loadPreference, savePreference, stepToDayJsType} from \"./utils/utils\";\r\nimport {StorageTypes} from \"./constants/storageTypes\";\r\nimport {getRange} from \"./components/edaTimeWindowPickerPanel\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaDetailPanel} from \"./components/edaDetailPanel\";\r\nimport {EdaTablePanel} from \"./components/edaTablePanel\";\r\nimport {EdaVectorDataProvider} from \"./context/edaVectorDataProvider\";\r\nimport {Button, ConfigProvider, Space, Tabs} from \"antd\";\r\nimport {EdaConfiguration} from \"./context/edaConfigContext\";\r\nimport {EdaGraphPanel} from \"./components/edaGraphPanel\";\r\nimport {AppstoreAddOutlined, ExportOutlined, FileAddOutlined, FolderAddOutlined, FullscreenExitOutlined, FullscreenOutlined, ImportOutlined} from \"@ant-design/icons\";\r\nimport {createPortal} from \"react-dom\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {useEdaActions} from \"./context/useEdaActions\";\r\nimport {LoadingContextProvider} from \"./context/loadingContext\";\r\n\r\nconst useStyles = createStyles(({css},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n overflow: hidden;\r\n\r\n .ant-tabs-content {\r\n height: 100%;\r\n }\r\n `,\r\n fullscreenLayout: css`\r\n .ant-design-draggable-modal-title {\r\n display: none;\r\n }\r\n `\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n item?: ItemType\r\n className?: string\r\n style?: React.CSSProperties\r\n\r\n size?: SizeType\r\n variant?: Variant\r\n\r\n // Eda detail configuration\r\n configuration?: EdaConfiguration\r\n}\r\n\r\nexport const EdaDetail: FC<Props> = ({api, item, className, style, size, variant}) => {\r\n const {styles} = useStyles();\r\n const {triggerExportToXML, triggerImportToXML, triggerIncludeToScenario, triggerIncludeToGroup, renderActionDialogs} = useEdaActions(api);\r\n\r\n const [activeTabKey, setActiveTabKey] = useState<string>(\"detail\");\r\n const [detailData, setDetailData] = useState<TypedData>();\r\n\r\n const [isFullscreen, setIsFullscreen] = useState<boolean>(false);\r\n const [portalTarget, setPortalTarget] = useState<HTMLDivElement | null>(null);\r\n\r\n const [sampleRange, setSampleRange] = useState<SharedSampleRangeState>(() => {\r\n const btTotal = dayjs(loadPreference(StorageTypes.EDA_DETAIL_BT, dayjs().startOf('day').toISOString()));\r\n const etTotal = dayjs(loadPreference(StorageTypes.EDA_DETAIL_ET, dayjs().endOf('day').toISOString()));\r\n const step = loadPreference(StorageTypes.EDA_DETAIL_STEP, StepType.Daily);\r\n const {bt, et} = getRange(btTotal, etTotal, step);\r\n\r\n return {\r\n btTotal,\r\n etTotal,\r\n btWindow: bt,\r\n etWindow: et,\r\n sampling: EdaSamplingType.Default,\r\n step,\r\n vectorPage: 1,\r\n totalCount: 0,\r\n }\r\n });\r\n\r\n const updateValues = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => {\r\n setSampleRange((s) => {\r\n let {btWindow, etWindow} = s;\r\n const unit = stepToDayJsType(s.step);\r\n\r\n if (unit) {\r\n if (s.btWindow.isBefore(bt)) {\r\n btWindow = bt;\r\n etWindow = bt.endOf(unit);\r\n }\r\n\r\n if (s.etWindow.isAfter(et)) {\r\n btWindow = et.startOf(unit);\r\n etWindow = et;\r\n }\r\n } else {\r\n btWindow = bt;\r\n etWindow = et;\r\n }\r\n\r\n return {...s, btTotal: bt, etTotal: et, btWindow, etWindow, sampling}\r\n });\r\n }, []);\r\n const updatePage = useCallback((page: number) => {\r\n setSampleRange((s) => ({...s, vectorPage: page, vectors: undefined}));\r\n }, []);\r\n const updateVectors = useCallback((vectors: TreeItem[]) => {\r\n setSampleRange((s) => ({...s, vectorPage: 1, vectors: vectors}));\r\n }, []);\r\n const updateTimeWindow = useCallback((bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => {\r\n setSampleRange((s) => ({...s, btWindow: bt, etWindow: et, step}));\r\n }, []);\r\n const updateTotalCount = useCallback((totalCount: number) => {\r\n setSampleRange((s) => ({...s, totalCount}));\r\n }, []);\r\n const contextValue: SharedSampleRangeContext = useMemo(() => ({\r\n ...sampleRange,\r\n updateValues,\r\n updatePage,\r\n updateVectors,\r\n updateTimeWindow,\r\n updateTotalCount,\r\n }), [sampleRange, updateValues, updatePage, updateVectors, updateTimeWindow, updateTotalCount]);\r\n\r\n const handleToggleFullscreen = useCallback(() => {\r\n setIsFullscreen(!isFullscreen);\r\n\r\n if (isFullscreen) {\r\n setPortalTarget(null);\r\n }\r\n }, [isFullscreen]);\r\n\r\n const tabItems = useMemo(() => [\r\n {\r\n key: \"detail\",\r\n label: i18n(\"Detail\"),\r\n children: (\r\n <EdaDetailPanel\r\n api={api}\r\n data={detailData}\r\n />\r\n ),\r\n },\r\n {\r\n key: \"table\",\r\n label: i18n(\"Table\"),\r\n children: (\r\n <EdaTablePanel\r\n api={api}\r\n data={detailData}\r\n isActive={activeTabKey === \"table\"}\r\n />\r\n ),\r\n },\r\n {\r\n key: \"graph\",\r\n label: i18n(\"Graph\"),\r\n children: (\r\n <EdaGraphPanel\r\n api={api}\r\n data={detailData}\r\n isActive={activeTabKey === \"graph\"}\r\n />\r\n ),\r\n },\r\n ], [api, detailData, activeTabKey]);\r\n\r\n const renderTabs = (\r\n <div style={{position: 'relative', height: '100%', width: '100%', display: 'flex', flexDirection: 'column'}}>\r\n <Tabs\r\n type={\"card\"}\r\n className={styles.baseLayout}\r\n onChange={setActiveTabKey}\r\n activeKey={activeTabKey}\r\n destroyOnHidden={false}\r\n items={tabItems}\r\n tabBarExtraContent={{\r\n right: (\r\n <Space.Compact>\r\n {detailData !== undefined && (\r\n <>\r\n {!Array.isArray(item) && item && (\r\n <Button\r\n icon={<ExportOutlined/>}\r\n onClick={() => triggerExportToXML(detailData)}\r\n title={i18n(\"Export\")}\r\n />\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.VECTOR && (\r\n <>\r\n <Button\r\n icon={<AppstoreAddOutlined/>}\r\n onClick={() => triggerIncludeToGroup(item)}\r\n title={i18n(\"Include vector to group\")}\r\n />\r\n <Button\r\n icon={<FolderAddOutlined/>}\r\n onClick={() => triggerIncludeToScenario(item)}\r\n title={i18n(\"Include vector to scenario\")}\r\n />\r\n </>\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.GROUP && (\r\n <>\r\n <Button\r\n icon={<ImportOutlined/>}\r\n onClick={() => triggerImportToXML(detailData)}\r\n title={i18n(\"Import\")}\r\n />\r\n <Button\r\n icon={<FileAddOutlined/>}\r\n onClick={() => triggerIncludeToGroup(item)}\r\n title={i18n(\"Include vector to group\")}\r\n />\r\n </>\r\n )}\r\n {!Array.isArray(item) && item && item.type === IdType.SCENARIO && (\r\n <>\r\n <Button\r\n icon={<ImportOutlined/>}\r\n onClick={() => triggerImportToXML(detailData)}\r\n title={i18n(\"Import\")}\r\n />\r\n <Button\r\n icon={<FileAddOutlined/>}\r\n onClick={() => triggerIncludeToScenario(item)}\r\n title={i18n(\"Include vector to scenario\")}\r\n />\r\n </>\r\n )}\r\n </>\r\n )}\r\n <Button\r\n disabled={item === undefined}\r\n icon={isFullscreen ? <FullscreenExitOutlined/> : <FullscreenOutlined/>}\r\n onClick={handleToggleFullscreen}\r\n title={i18n(isFullscreen ? \"Restore\" : \"Fullscreen\")}\r\n />\r\n </Space.Compact>\r\n ),\r\n }}\r\n />\r\n </div>\r\n );\r\n\r\n useEffect(() => {\r\n let isMounted = true;\r\n\r\n if (item) {\r\n loadDetail(api, item).then((result) => {\r\n if (isMounted && result) {\r\n setDetailData(result);\r\n }\r\n });\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n }\r\n }, [api, item]);\r\n\r\n useEffect(() => {\r\n savePreference(StorageTypes.EDA_DETAIL_BT, sampleRange.btTotal.toISOString());\r\n savePreference(StorageTypes.EDA_DETAIL_ET, sampleRange.etTotal.toISOString());\r\n savePreference(StorageTypes.EDA_DETAIL_STEP, sampleRange.step);\r\n }, [sampleRange.btTotal, sampleRange.etTotal, sampleRange.step]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size} variant={variant}>\r\n <div className={className} style={style}>\r\n <SharedSampleRangeContext.Provider value={contextValue}>\r\n <LoadingContextProvider>\r\n <EdaVectorDataProvider api={api}>\r\n {isFullscreen && portalTarget ? createPortal(renderTabs, portalTarget) : renderTabs}\r\n <ModalDialog\r\n classNames={{header: styles.fullscreenLayout}}\r\n open={isFullscreen}\r\n onCancel={handleToggleFullscreen}\r\n footer={null}\r\n closable={false}\r\n initialWidth={window.innerWidth * 0.9}\r\n initialHeight={window.innerHeight * 0.9}\r\n destroyOnHidden={false}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n styles={{\r\n header: {\r\n padding: 0,\r\n margin: 0\r\n },\r\n }}\r\n >\r\n <div\r\n style={{width: '100%', height: '100%'}}\r\n ref={(el) => {\r\n if (el && !portalTarget) {\r\n setPortalTarget(el);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n {renderActionDialogs()}\r\n </EdaVectorDataProvider>\r\n </LoadingContextProvider>\r\n </SharedSampleRangeContext.Provider>\r\n </div>\r\n </ConfigProvider>\r\n );\r\n}"]}
@@ -7,7 +7,7 @@ interface Props {
7
7
  api: EdaManagerApi;
8
8
  size?: SizeType;
9
9
  variant?: Variant;
10
- configuration?: EdaConfiguration;
10
+ configuration?: Partial<EdaConfiguration>;
11
11
  }
12
12
  export declare const EdaManager: FC<Props>;
13
13
  export {};
@@ -34,7 +34,7 @@ export const EdaManager = ({ api, size, variant, configuration }) => {
34
34
  React.createElement(Splitter, { className: styles.baseLayout },
35
35
  React.createElement(Splitter.Panel, { defaultSize: "25%" },
36
36
  React.createElement("div", { className: styles.navPanel },
37
- React.createElement(EdaNavigator, { api: api, onDoubleClick: handleDoubleClick }))),
37
+ React.createElement(EdaNavigator, { api: api, onDoubleClick: handleDoubleClick, allowDrag: true }))),
38
38
  React.createElement(Splitter.Panel, null,
39
39
  React.createElement("div", { className: styles.detailPanel },
40
40
  React.createElement(EdaDetail, { api: api, item: selectedItem, style: { width: '100%', height: '100%' } }))))))));
@@ -1 +1 @@
1
- {"version":3,"file":"edaManager.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAmB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;uBAGA,KAAK,CAAC,UAAU;SAC9B;QACD,QAAQ,EAAE,GAAG,CAAA;;kCAEa,KAAK,EAAE,UAAU;SAC1C;QACD,WAAW,EAAE,GAAG,CAAA;;oCAEY,KAAK,EAAE,UAAU;SAC5C;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAYH,MAAM,CAAC,MAAM,UAAU,GAAc,CAAC,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAC,EAAE,EAAE;IACzE,MAAM,EAAC,MAAM,EAAC,GAAG,SAAS,EAAE,CAAC;IAE7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAc,CAAC;IAE/D,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QACvD,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,oBAAC,iBAAiB,IAAC,MAAM,EAAE,aAAa;QACpC,oBAAC,cAAc,IAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;YACjD,oBAAC,sBAAsB;gBACnB,oBAAC,QAAQ,IAAC,SAAS,EAAE,MAAM,CAAC,UAAU;oBAClC,oBAAC,QAAQ,CAAC,KAAK,IAAC,WAAW,EAAE,KAAK;wBAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ;4BAC3B,oBAAC,YAAY,IACT,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,iBAAiB,GAClC,CACA,CACO;oBACjB,oBAAC,QAAQ,CAAC,KAAK;wBACX,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW;4BAC9B,oBAAC,SAAS,IACN,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GACxC,CACA,CACO,CACV,CACU,CACZ,CACD,CACvB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React, {FC, useCallback, useState} from \"react\";\r\nimport {ConfigProvider, Splitter} from \"antd\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\nimport {TypedIndex} from \"./constants/edaTypes\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\nimport {EdaConfigProvider, EdaConfiguration} from \"./context/edaConfigContext\";\r\nimport {LoadingContextProvider} from \"./context/loadingContext\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n padding: ${token.paddingXXS}px;\r\n `,\r\n navPanel: css`\r\n height: 100%;\r\n padding-inline-end: ${token?.paddingXXS}px;\r\n `,\r\n detailPanel: css`\r\n height: 100%;\r\n padding-inline-start: ${token?.paddingXXS}px;\r\n `,\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n // Size of AntD components\r\n size?: SizeType\r\n // Variant of AntD components\r\n variant?: Variant\r\n // Eda manager configuration\r\n configuration?: EdaConfiguration\r\n}\r\n\r\nexport const EdaManager: FC<Props> = ({api, size, variant, configuration}) => {\r\n const {styles} = useStyles();\r\n\r\n const [selectedItem, setSelectedItem] = useState<TypedIndex>();\r\n\r\n const handleDoubleClick = useCallback((item: TypedIndex) => {\r\n setSelectedItem(item);\r\n }, []);\r\n\r\n return (\r\n <EdaConfigProvider config={configuration}>\r\n <ConfigProvider componentSize={size} variant={variant}>\r\n <LoadingContextProvider>\r\n <Splitter className={styles.baseLayout}>\r\n <Splitter.Panel defaultSize={\"25%\"}>\r\n <div className={styles.navPanel}>\r\n <EdaNavigator\r\n api={api}\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n <Splitter.Panel>\r\n <div className={styles.detailPanel}>\r\n <EdaDetail\r\n api={api}\r\n item={selectedItem}\r\n style={{width: '100%', height: '100%'}}\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n </Splitter>\r\n </LoadingContextProvider>\r\n </ConfigProvider>\r\n </EdaConfigProvider>\r\n );\r\n};"]}
1
+ {"version":3,"file":"edaManager.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAmB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;uBAGA,KAAK,CAAC,UAAU;SAC9B;QACD,QAAQ,EAAE,GAAG,CAAA;;kCAEa,KAAK,EAAE,UAAU;SAC1C;QACD,WAAW,EAAE,GAAG,CAAA;;oCAEY,KAAK,EAAE,UAAU;SAC5C;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAYH,MAAM,CAAC,MAAM,UAAU,GAAc,CAAC,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAC,EAAE,EAAE;IACzE,MAAM,EAAC,MAAM,EAAC,GAAG,SAAS,EAAE,CAAC;IAE7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAc,CAAC;IAE/D,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QACvD,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,oBAAC,iBAAiB,IAAC,MAAM,EAAE,aAAa;QACpC,oBAAC,cAAc,IAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;YACjD,oBAAC,sBAAsB;gBACnB,oBAAC,QAAQ,IAAC,SAAS,EAAE,MAAM,CAAC,UAAU;oBAClC,oBAAC,QAAQ,CAAC,KAAK,IAAC,WAAW,EAAE,KAAK;wBAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ;4BAC3B,oBAAC,YAAY,IACT,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,iBAAiB,EAChC,SAAS,SACX,CACA,CACO;oBACjB,oBAAC,QAAQ,CAAC,KAAK;wBACX,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW;4BAC9B,oBAAC,SAAS,IACN,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GACxC,CACA,CACO,CACV,CACU,CACZ,CACD,CACvB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React, {FC, useCallback, useState} from \"react\";\r\nimport {ConfigProvider, Splitter} from \"antd\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\nimport {TypedIndex} from \"./constants/edaTypes\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\nimport {EdaConfigProvider, EdaConfiguration} from \"./context/edaConfigContext\";\r\nimport {LoadingContextProvider} from \"./context/loadingContext\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n padding: ${token.paddingXXS}px;\r\n `,\r\n navPanel: css`\r\n height: 100%;\r\n padding-inline-end: ${token?.paddingXXS}px;\r\n `,\r\n detailPanel: css`\r\n height: 100%;\r\n padding-inline-start: ${token?.paddingXXS}px;\r\n `,\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n // Size of AntD components\r\n size?: SizeType\r\n // Variant of AntD components\r\n variant?: Variant\r\n // Eda manager configuration\r\n configuration?: Partial<EdaConfiguration>\r\n}\r\n\r\nexport const EdaManager: FC<Props> = ({api, size, variant, configuration}) => {\r\n const {styles} = useStyles();\r\n\r\n const [selectedItem, setSelectedItem] = useState<TypedIndex>();\r\n\r\n const handleDoubleClick = useCallback((item: TypedIndex) => {\r\n setSelectedItem(item);\r\n }, []);\r\n\r\n return (\r\n <EdaConfigProvider config={configuration}>\r\n <ConfigProvider componentSize={size} variant={variant}>\r\n <LoadingContextProvider>\r\n <Splitter className={styles.baseLayout}>\r\n <Splitter.Panel defaultSize={\"25%\"}>\r\n <div className={styles.navPanel}>\r\n <EdaNavigator\r\n api={api}\r\n onDoubleClick={handleDoubleClick}\r\n allowDrag\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n <Splitter.Panel>\r\n <div className={styles.detailPanel}>\r\n <EdaDetail\r\n api={api}\r\n item={selectedItem}\r\n style={{width: '100%', height: '100%'}}\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n </Splitter>\r\n </LoadingContextProvider>\r\n </ConfigProvider>\r\n </EdaConfigProvider>\r\n );\r\n};"]}
@@ -7,6 +7,7 @@ interface Props {
7
7
  style?: React.CSSProperties;
8
8
  showOmitted?: boolean;
9
9
  hideContextMenu?: boolean;
10
+ allowDrag?: boolean;
10
11
  size?: SizeType;
11
12
  onDoubleClick?: (id: TypedIndex, item: TreeItem) => void;
12
13
  }
@@ -31,7 +31,7 @@ const useStyles = createStyles(({ css, token }) => {
31
31
  `
32
32
  };
33
33
  });
34
- export const EdaNavigator = memo(({ api, style, showOmitted, hideContextMenu, size, onDoubleClick }) => {
34
+ export const EdaNavigator = memo(({ api, style, showOmitted, hideContextMenu, allowDrag, size, onDoubleClick }) => {
35
35
  const { styles } = useStyles();
36
36
  const tabs = useMemo(() => [
37
37
  {
@@ -43,15 +43,15 @@ export const EdaNavigator = memo(({ api, style, showOmitted, hideContextMenu, si
43
43
  React.createElement(Space.Compact, null,
44
44
  React.createElement(Button, { icon: React.createElement(SearchOutlined, null) }))),
45
45
  React.createElement("div", { className: "tree" },
46
- React.createElement(EdaTreeView, { api: api, type: TreeViewType.GROUP, showOmitted: showOmitted, hideContextMenu: hideContextMenu, onItemDoubleClick: onDoubleClick })))),
46
+ React.createElement(EdaTreeView, { api: api, type: TreeViewType.GROUP, showOmitted: showOmitted, hideContextMenu: hideContextMenu, onItemDoubleClick: onDoubleClick, allowDrag: allowDrag })))),
47
47
  },
48
48
  {
49
49
  key: "scenarios",
50
50
  label: i18n("Scenarios"),
51
51
  closable: false,
52
- children: (React.createElement(EdaTreeView, { api: api, type: TreeViewType.SCENARIO, showOmitted: showOmitted, onItemDoubleClick: onDoubleClick })),
52
+ children: (React.createElement(EdaTreeView, { api: api, type: TreeViewType.SCENARIO, showOmitted: showOmitted, onItemDoubleClick: onDoubleClick, allowDrag: allowDrag })),
53
53
  },
54
- ], [api, styles, showOmitted, hideContextMenu, onDoubleClick]);
54
+ ], [api, styles, showOmitted, hideContextMenu, allowDrag, onDoubleClick]);
55
55
  return (React.createElement(ConfigProvider, { componentSize: size },
56
56
  React.createElement("div", { className: styles.baseLayout, style: style },
57
57
  React.createElement(Tabs, { type: "editable-card", style: { height: "100%" }, destroyOnHidden: false, items: tabs }))));