d2aura 26.0.13 → 26.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/api/eda/edaManagerApi.d.ts +54 -15
  2. package/api/eda/edaManagerApi.js +106 -29
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +115 -35
  5. package/api/eda/generated/events.js +193 -41
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +110 -33
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/core/i18n/d2aura.en.json +14 -0
  10. package/core/i18n/d2aura.sk.json +92 -2
  11. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.d.ts +1 -1
  12. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js +2 -2
  13. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js.map +1 -1
  14. package/coreui/components/edaManagerComponent/components/edaChartViewer.d.ts +14 -0
  15. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +374 -0
  16. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -0
  17. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.d.ts +4 -8
  18. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +18 -75
  19. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  20. package/coreui/components/edaManagerComponent/components/edaDetailPanel.d.ts +5 -14
  21. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +80 -19
  22. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  23. package/coreui/components/edaManagerComponent/components/edaGraphPanel.d.ts +2 -7
  24. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +22 -390
  25. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  26. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.d.ts +3 -14
  27. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +54 -67
  28. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -1
  29. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.d.ts +7 -0
  30. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js +35 -0
  31. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js.map +1 -0
  32. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +12 -18
  33. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +55 -51
  34. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  35. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.d.ts +3 -14
  36. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +67 -81
  37. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -1
  38. package/coreui/components/edaManagerComponent/components/edaTablePanel.d.ts +2 -6
  39. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +188 -110
  40. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  41. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.d.ts +2 -13
  42. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +57 -88
  43. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -1
  44. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +9 -51
  45. package/coreui/components/edaManagerComponent/components/edaTreeView.js +431 -262
  46. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  47. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.d.ts +3 -21
  48. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +160 -179
  49. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  50. package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +5 -0
  51. package/coreui/components/edaManagerComponent/constants/actionTypes.js +7 -0
  52. package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -0
  53. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +23 -11
  54. package/coreui/components/edaManagerComponent/constants/edaTypes.js +15 -0
  55. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  56. package/coreui/components/edaManagerComponent/context/edaConfigContext.d.ts +26 -0
  57. package/coreui/components/edaManagerComponent/context/edaConfigContext.js +20 -0
  58. package/coreui/components/edaManagerComponent/context/edaConfigContext.js.map +1 -0
  59. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +10 -16
  60. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js +8 -1
  61. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  62. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.d.ts +0 -1
  63. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +90 -92
  64. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  65. package/coreui/components/edaManagerComponent/context/loadingContext.d.ts +1 -1
  66. package/coreui/components/edaManagerComponent/context/loadingContext.js.map +1 -1
  67. package/coreui/components/edaManagerComponent/context/{sharedSampleRange.d.ts → sharedSampleRangeContext.d.ts} +12 -4
  68. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js +10 -0
  69. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js.map +1 -0
  70. package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +9 -0
  71. package/coreui/components/edaManagerComponent/context/useEdaActions.js +36 -0
  72. package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -0
  73. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.d.ts +13 -0
  74. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js +19 -0
  75. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js.map +1 -0
  76. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.d.ts +8 -0
  77. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +171 -0
  78. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -0
  79. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +22 -0
  80. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +75 -0
  81. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -0
  82. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.d.ts +12 -0
  83. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js +52 -0
  84. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js.map +1 -0
  85. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +22 -0
  86. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +130 -0
  87. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -0
  88. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.d.ts +58 -0
  89. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js +51 -0
  90. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js.map +1 -0
  91. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.d.ts +18 -0
  92. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js +74 -0
  93. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js.map +1 -0
  94. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.d.ts +38 -0
  95. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +299 -0
  96. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -0
  97. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.d.ts +10 -0
  98. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +343 -0
  99. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -0
  100. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.d.ts +12 -0
  101. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js +268 -0
  102. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -0
  103. package/coreui/components/edaManagerComponent/dialogs/exportDialog.d.ts +18 -0
  104. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +156 -0
  105. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -0
  106. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.d.ts +12 -0
  107. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js +74 -0
  108. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +1 -0
  109. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.d.ts +16 -0
  110. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js +32 -0
  111. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js.map +1 -0
  112. package/coreui/components/edaManagerComponent/edaDetail.d.ts +7 -26
  113. package/coreui/components/edaManagerComponent/edaDetail.js +138 -106
  114. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  115. package/coreui/components/edaManagerComponent/edaManager.d.ts +4 -11
  116. package/coreui/components/edaManagerComponent/edaManager.js +29 -22
  117. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
  118. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +6 -12
  119. package/coreui/components/edaManagerComponent/edaNavigator.js +36 -41
  120. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  121. package/coreui/components/edaManagerComponent/edaSelect.d.ts +4 -3
  122. package/coreui/components/edaManagerComponent/edaSelect.js +32 -54
  123. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  124. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.d.ts +6 -0
  125. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js +7 -0
  126. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js.map +1 -0
  127. package/coreui/components/edaManagerComponent/utils/export.d.ts +9 -0
  128. package/coreui/components/edaManagerComponent/utils/export.js +570 -0
  129. package/coreui/components/edaManagerComponent/utils/export.js.map +1 -0
  130. package/coreui/components/edaManagerComponent/utils/utils.d.ts +6 -12
  131. package/coreui/components/edaManagerComponent/utils/utils.js +26 -15
  132. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  133. package/d2configuration/edaManager/DB.EM_EDA_FunctionPrescription.xml +65 -0
  134. package/d2configuration/edaManager/DB.EM_EDA_VectorScenario.xml +65 -0
  135. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +67 -1
  136. package/d2configuration/edaManager/E.EM_DETAIL_SQL.xml +85 -0
  137. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +143 -2
  138. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +14 -6
  139. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +12 -1
  140. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +114 -6
  141. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +30 -6
  142. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +119 -17
  143. package/d2configuration/edaManager/SD.EM_EDA_FunctionPrescription.xml +91 -0
  144. package/d2configuration/edaManager/SD.EM_EDA_PairVector.xml +454 -0
  145. package/d2configuration/edaManager/{SD.EM_EDA_StatVectorRec_V1.xml → SD.EM_EDA_VectorScenario.xml} +13 -36
  146. package/d2configuration/edaManager/{SD.EM_EDA_VectorValues.xml → SD.EM_EDA_VectorStats.xml} +39 -6
  147. package/d2configuration/edaManager/SD.EM_Filter_Condition.xml +1 -1
  148. package/package.json +5 -3
  149. package/coreui/components/edaManagerComponent/components/edaBasePanel.d.ts +0 -16
  150. package/coreui/components/edaManagerComponent/components/edaBasePanel.js +0 -85
  151. package/coreui/components/edaManagerComponent/components/edaBasePanel.js.map +0 -1
  152. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js +0 -13
  153. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js.map +0 -1
  154. package/d2configuration/edaManager/EDA_CancelSession.xml +0 -54
  155. package/d2configuration/edaManager/EDA_GetSessionId.xml +0 -54
  156. package/d2configuration/edaManager/EDA_ReadValuesFromVektorRec.xml +0 -54
  157. package/d2configuration/edaManager/EDA_StatVectorRec.xml +0 -56
  158. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +0 -168
@@ -1,10 +1,16 @@
1
- import React, { useCallback, useContext, useRef, useState } from "react";
1
+ import React, { useCallback, useRef, useState } from "react";
2
2
  import { EdaVectorDataContext } from "./edaVectorDataContext";
3
- import { SharedSampleRangeContext } from "./sharedSampleRange";
3
+ import { useSampleRange } from "./sharedSampleRangeContext";
4
4
  import { LoadingContext } from "./loadingContext";
5
- import { message } from "antd";
5
+ import { App } from "antd";
6
6
  import i18n from "d2core/i18n/i18n";
7
- export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
7
+ import { useEdaConfig } from "./edaConfigContext";
8
+ export const EdaVectorDataProvider = ({ api, children }) => {
9
+ const { detail } = useEdaConfig();
10
+ const { message } = App.useApp();
11
+ const range = useSampleRange();
12
+ const lastRequestId = useRef(0);
13
+ const loadingRef = useRef(false);
8
14
  const [dataState, setDataState] = useState({
9
15
  data: {},
10
16
  vectors: [],
@@ -14,34 +20,25 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
14
20
  const [loadingState, setLoadingState] = useState({
15
21
  loading: false,
16
22
  loadingPercentage: 0,
17
- loadingVector: "",
23
+ loadingItem: "",
18
24
  loadingCount: 0,
19
25
  });
20
- const range = useContext(SharedSampleRangeContext);
21
- const lastRequestId = useRef(0);
22
- const loadingRef = useRef(false);
23
- const safeReadVectorValues = async (id, name, from, to, step) => {
26
+ const safeReadVectorValues = useCallback(async (id, name, from, to, step) => {
24
27
  try {
25
28
  return await api.readVectorValues(id, from, to, step);
26
29
  }
27
30
  catch (e) {
28
- message.warning({
29
- type: "warning",
30
- content: React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: name, e: e?.value }))
31
- });
31
+ message.warning(React.createElement("span", null, i18n("Failed to load vector %{n} with error: '%{e}'", { n: name, e: e?.value })));
32
32
  console.error(e);
33
33
  return {
34
34
  data: []
35
35
  };
36
36
  }
37
- };
38
- const loadAllData = useCallback(async (type, data) => {
39
- if (!range) {
40
- return;
41
- }
37
+ }, [api, message]);
38
+ const loadAllData = useCallback(async (data) => {
42
39
  const requestId = ++lastRequestId.current;
43
40
  loadingRef.current = true;
44
- setDataState((s) => ({ ...s, loadedType: type, loadedData: data, loadedRange: range }));
41
+ setDataState((s) => ({ ...s, vectors: [], loadedData: data, loadedRange: range }));
45
42
  setLoadingState((s) => ({ ...s, loading: true, loadingPercentage: 0 }));
46
43
  try {
47
44
  const { btTotal, etTotal, sampling, vectorPage } = range;
@@ -49,29 +46,37 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
49
46
  const columns = [];
50
47
  const visible = new Set();
51
48
  let { btWindow, etWindow } = range;
52
- if (!showTimeWindow) {
49
+ if (!detail?.showTimeWindow) {
53
50
  btWindow = btTotal;
54
51
  etWindow = etTotal;
55
52
  }
56
- switch (type) {
53
+ switch (data.type) {
57
54
  case 1:
58
55
  case 2: {
59
56
  let vectors;
60
- try {
61
- if (type === 1) {
62
- vectors = await api.getGroupVectors(data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);
57
+ if (range.vectors) {
58
+ vectors = { items: range.vectors, leftCount: 0 };
59
+ }
60
+ else {
61
+ try {
62
+ if (data.type === 1) {
63
+ vectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);
64
+ }
65
+ else {
66
+ vectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);
67
+ }
63
68
  }
64
- else {
65
- vectors = await api.getScenarioVectors(data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);
69
+ catch (error) {
70
+ console.error(error);
71
+ vectors = { items: [], leftCount: 0 };
72
+ }
73
+ setLoadingState((s) => ({ ...s, loadingCount: vectors.items.length }));
74
+ if (range.vectorPage === 1) {
75
+ range.updateTotalCount(vectors.items.length + vectors.leftCount);
76
+ }
77
+ if (requestId !== lastRequestId.current) {
78
+ return;
66
79
  }
67
- }
68
- catch (error) {
69
- console.error(error);
70
- vectors = { items: [], leftCount: 0 };
71
- }
72
- setLoadingState((s) => ({ ...s, loadingCount: vectors.items.length }));
73
- if (requestId !== lastRequestId.current) {
74
- return;
75
80
  }
76
81
  for (const vector of vectors.items) {
77
82
  columns.push(vector);
@@ -79,24 +84,25 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
79
84
  }
80
85
  for (let i = 0; i < vectors.items.length; i++) {
81
86
  const vector = vectors.items[i];
82
- setLoadingState((s) => ({ ...s, loadingVector: vector.DisplayName ?? "" }));
87
+ setLoadingState((s) => ({ ...s, loadingItem: vector.DisplayName ?? "" }));
88
+ const valuesData = await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling);
89
+ if (!loadingRef.current) {
90
+ break;
91
+ }
83
92
  result[vector.ID] = {
84
- data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),
93
+ data: valuesData,
85
94
  from: btWindow,
86
95
  to: etWindow,
87
96
  sampling: sampling,
88
97
  };
89
- if (!loadingRef.current) {
90
- break;
91
- }
92
98
  setLoadingState((s) => ({ ...s, loadingPercentage: (i + 1) / vectors.items.length * 100 }));
93
99
  }
94
100
  break;
95
101
  }
96
102
  case 0: {
97
- const column = data.data;
98
- const id = data.data.ID_VEKTOR;
99
- setLoadingState((s) => ({ ...s, loadingCount: 1, loadingVector: column.ZOBRAZ_MENO }));
103
+ const column = data.data.data;
104
+ const id = data.data.data.ID_VEKTOR;
105
+ setLoadingState((s) => ({ ...s, loadingCount: 1, loadingItem: column.ZOBRAZ_MENO }));
100
106
  result[id] = {
101
107
  data: await safeReadVectorValues(id, column.ZOBRAZ_MENO, btWindow, etWindow, sampling),
102
108
  from: btWindow,
@@ -113,7 +119,7 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
113
119
  Name: column.MENO,
114
120
  ParentID: column.ID_SKVEKTOR,
115
121
  Path: "",
116
- Type: 0,
122
+ Type: column.TYP,
117
123
  Units: column.TECH_JEDNOTKY,
118
124
  RoundingType: column.VIEW_ROUND,
119
125
  RoundingPlaces: column.VIEW_DEC_PL
@@ -134,21 +140,23 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
134
140
  }
135
141
  loadingRef.current = false;
136
142
  }
137
- }, [api, showTimeWindow, range]);
138
- const loadSpecificVectors = useCallback(async (vectors) => {
139
- if (!range) {
140
- return;
141
- }
143
+ }, [api, detail?.showTimeWindow, range, safeReadVectorValues]);
144
+ const loadSpecificVectors = useCallback(async (vectors, forceUpdate) => {
142
145
  const { btTotal, etTotal, sampling } = range;
143
146
  let { btWindow, etWindow } = range;
144
- if (!showTimeWindow) {
147
+ if (!detail?.showTimeWindow) {
145
148
  btWindow = btTotal;
146
149
  etWindow = etTotal;
147
150
  }
148
- vectors = vectors.filter((vector) => {
149
- const loadedVector = dataState.data[vector.ID];
150
- return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;
151
- });
151
+ if (!forceUpdate) {
152
+ vectors = vectors.filter((vector) => {
153
+ const loadedVector = dataState.data[vector.ID];
154
+ if (!loadedVector) {
155
+ return true;
156
+ }
157
+ return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;
158
+ });
159
+ }
152
160
  if (vectors.length === 0) {
153
161
  return;
154
162
  }
@@ -166,7 +174,7 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
166
174
  }
167
175
  for (let i = 0; i < vectors.length; i++) {
168
176
  const vector = vectors[i];
169
- setLoadingState((s) => ({ ...s, loadingVector: vector.DisplayName ?? "" }));
177
+ setLoadingState((s) => ({ ...s, loadingItem: vector.DisplayName ?? "" }));
170
178
  result[vector.ID] = {
171
179
  data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),
172
180
  from: btWindow,
@@ -190,42 +198,38 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
190
198
  loadingRef.current = false;
191
199
  setLoadingState((s) => ({ ...s, loading: false }));
192
200
  }
193
- }, [api, showTimeWindow, range, dataState]);
194
- const cancelLoading = async () => {
201
+ }, [api, detail?.showTimeWindow, range, dataState, safeReadVectorValues]);
202
+ const cancelLoading = useCallback(async () => {
195
203
  loadingRef.current = false;
196
204
  await api.cancelSession();
197
- };
198
- const toggleVectorVisibility = async (id, visible) => {
199
- if (!range) {
200
- return;
201
- }
202
- const state = dataState.data[id];
203
- const visibleSet = new Set(dataState.visible);
204
- const { btTotal, etTotal } = range;
205
- let { btWindow, etWindow } = range;
206
- if (!showTimeWindow) {
207
- btWindow = btTotal;
208
- etWindow = etTotal;
209
- }
210
- const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);
211
- if (visible) {
212
- if (needsLoadData) {
213
- await loadSpecificVectors(dataState.vectors.filter((v) => v.ID === id));
205
+ }, [api]);
206
+ const toggleVectorVisibility = useCallback(async (id, visible) => {
207
+ setDataState((prev) => {
208
+ const state = prev.data[id];
209
+ const visibleSet = new Set(prev.visible);
210
+ const { btTotal, etTotal } = range;
211
+ let { btWindow, etWindow } = range;
212
+ if (!detail?.showTimeWindow) {
213
+ btWindow = btTotal;
214
+ etWindow = etTotal;
214
215
  }
215
- visibleSet.add(id);
216
- }
217
- else {
218
- visibleSet.delete(id);
219
- }
220
- setDataState((s) => ({ ...s, visible: visibleSet }));
221
- };
222
- const setAllVectorVisibility = async (visible) => {
223
- if (!range) {
224
- return;
225
- }
216
+ const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);
217
+ if (visible) {
218
+ if (needsLoadData) {
219
+ loadSpecificVectors(prev.vectors.filter((v) => v.ID === id));
220
+ }
221
+ visibleSet.add(id);
222
+ }
223
+ else {
224
+ visibleSet.delete(id);
225
+ }
226
+ return { ...prev, visible: visibleSet };
227
+ });
228
+ }, [range, detail?.showTimeWindow, loadSpecificVectors]);
229
+ const setAllVectorVisibility = useCallback(async (visible) => {
226
230
  const { btTotal, etTotal } = range;
227
231
  let { btWindow, etWindow } = range;
228
- if (!showTimeWindow) {
232
+ if (!detail?.showTimeWindow) {
229
233
  btWindow = btTotal;
230
234
  etWindow = etTotal;
231
235
  }
@@ -247,10 +251,7 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
247
251
  else {
248
252
  setDataState((s) => ({ ...s, visible: new Set() }));
249
253
  }
250
- };
251
- const isVectorVisible = (id) => dataState.visible.has(id);
252
- const allVectorsVisible = () => dataState.visible.size === dataState.vectors.length;
253
- const noVectorsVisible = () => dataState.visible.size === 0;
254
+ }, [range, dataState.vectors, dataState.data, loadSpecificVectors, dataState.visible, detail?.showTimeWindow]);
254
255
  return (React.createElement(EdaVectorDataContext.Provider, { value: {
255
256
  ...dataState,
256
257
  loadAllData,
@@ -258,9 +259,6 @@ export const EdaVectorDataProvider = ({ api, showTimeWindow, children }) => {
258
259
  cancelLoading,
259
260
  toggleVectorVisibility,
260
261
  setAllVectorVisibility,
261
- isVectorVisible,
262
- allVectorsVisible,
263
- noVectorsVisible,
264
262
  } },
265
263
  React.createElement(LoadingContext.Provider, { value: loadingState }, children)));
266
264
  };
@@ -1 +1 @@
1
- {"version":3,"file":"edaVectorDataProvider.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useContext, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {EdaVectorDataContext, EdaVectorDataState, VectorDataState} from \"./edaVectorDataContext\";\r\nimport {SharedSampleRangeContext} from \"./sharedSampleRange\";\r\nimport {GroupData, IdType, ScenarioData, VectorData} from \"../constants/edaTypes\";\r\nimport {SD_EM_Tree_Item} from \"../../../../api/eda/generated/structures\";\r\nimport {LoadingContext, LoadingContextValue} from \"./loadingContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {message} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n showTimeWindow?: boolean\r\n children?: React.ReactNode\r\n}\r\n\r\nexport const EdaVectorDataProvider: FC<Props> = ({api, showTimeWindow, children}) => {\r\n const [dataState, setDataState] = useState<EdaVectorDataState>({\r\n data: {},\r\n vectors: [],\r\n visible: new Set<number>(),\r\n initialized: false,\r\n });\r\n const [loadingState, setLoadingState] = useState<LoadingContextValue>({\r\n loading: false,\r\n loadingPercentage: 0,\r\n loadingVector: \"\",\r\n loadingCount: 0,\r\n })\r\n const range = useContext(SharedSampleRangeContext);\r\n const lastRequestId = useRef(0);\r\n const loadingRef = useRef(false);\r\n\r\n const safeReadVectorValues = async (id: number, name: string, from: dayjs.Dayjs, to: dayjs.Dayjs, step: number): Promise<VectorValuesData> => {\r\n try {\r\n return await api.readVectorValues(id, from, to, step);\r\n } catch (e: any) {\r\n message.warning({\r\n type: \"warning\",\r\n content: <span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: name, e: e?.value})}</span>\r\n });\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }\r\n\r\n const loadAllData = useCallback(async (type: IdType, data: VectorData | GroupData | ScenarioData) => {\r\n if (!range) {\r\n return;\r\n }\r\n\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, loadedType: type, loadedData: data, loadedRange: range}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n\r\n try {\r\n const {btTotal, etTotal, sampling, vectorPage} = range;\r\n const result: { [id: number]: VectorDataState } = {};\r\n const columns: SD_EM_Tree_Item[] = [];\r\n const visible: Set<number> = new Set<number>();\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n switch (type) {\r\n case IdType.GROUP:\r\n case IdType.SCENARIO: {\r\n let vectors: { items: Partial<SD_EM_Tree_Item>[], leftCount: number };\r\n\r\n try {\r\n if (type === IdType.GROUP) {\r\n vectors = await api.getGroupVectors((data as GroupData).data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);\r\n } else {\r\n vectors = await api.getScenarioVectors((data as ScenarioData).data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n vectors = {items: [], leftCount: 0};\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: vectors.items.length}));\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n for (const vector of vectors.items) {\r\n columns.push(vector as SD_EM_Tree_Item);\r\n visible.add(vector.ID!);\r\n }\r\n\r\n for (let i = 0; i < vectors.items.length; i++) {\r\n const vector = vectors.items[i] as SD_EM_Tree_Item;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingVector: vector.DisplayName ?? \"\"}));\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (i + 1) / vectors.items.length * 100}));\r\n }\r\n\r\n break;\r\n }\r\n case IdType.VECTOR: {\r\n const column = (data as VectorData).data;\r\n const id = (data as VectorData).data.ID_VEKTOR;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: 1, loadingVector: column.ZOBRAZ_MENO}));\r\n result[id] = {\r\n data: await safeReadVectorValues(id, column.ZOBRAZ_MENO, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n visible.add(column.ID_VEKTOR);\r\n columns.push({\r\n ID: column.ID_VEKTOR,\r\n DisplayName: column.ZOBRAZ_MENO,\r\n Name: column.MENO,\r\n ParentID: column.ID_SKVEKTOR,\r\n Path: \"\",\r\n Type: 0,\r\n Units: column.TECH_JEDNOTKY,\r\n RoundingType: column.VIEW_ROUND,\r\n RoundingPlaces: column.VIEW_DEC_PL\r\n });\r\n }\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, vectors: columns, visible: visible}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 100}));\r\n } catch (e) {\r\n console.error(\"Failed to load all data\", e);\r\n await api.cancelSession();\r\n } finally {\r\n if (requestId === lastRequestId.current) {\r\n setDataState((s): EdaVectorDataState => ({...s, initialized: true}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: false}));\r\n }\r\n\r\n loadingRef.current = false;\r\n }\r\n }, [api, showTimeWindow, range]);\r\n\r\n const loadSpecificVectors = useCallback(async (vectors: SD_EM_Tree_Item[]) => {\r\n if (!range) {\r\n return;\r\n }\r\n\r\n const {btTotal, etTotal, sampling} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n vectors = vectors.filter((vector) => {\r\n const loadedVector = dataState.data[vector.ID];\r\n return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;\r\n });\r\n\r\n if (vectors.length === 0) {\r\n return;\r\n }\r\n\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, loadedRange: range}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n\r\n try {\r\n const result: { [id: number]: VectorDataState } = {...dataState.data};\r\n const visible = new Set(dataState.visible);\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: vectors.length}));\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < vectors.length; i++) {\r\n const vector = vectors[i] as SD_EM_Tree_Item;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingVector: vector.DisplayName ?? \"\"}));\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n visible.add(vector.ID);\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (i + 1) / vectors.length * 100}));\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 100}));\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, visible}));\r\n } catch (e) {\r\n console.log(\"Failed to load specific vectors\", e);\r\n await api.cancelSession();\r\n } finally {\r\n loadingRef.current = false;\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: false}));\r\n }\r\n }, [api, showTimeWindow, range, dataState]);\r\n\r\n const cancelLoading = async () => {\r\n loadingRef.current = false;\r\n await api.cancelSession();\r\n }\r\n\r\n const toggleVectorVisibility = async (id: number, visible: boolean) => {\r\n if (!range) {\r\n return;\r\n }\r\n\r\n const state = dataState.data[id];\r\n const visibleSet = new Set<number>(dataState.visible);\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (visible) {\r\n if (needsLoadData) {\r\n await loadSpecificVectors(dataState.vectors.filter((v) => v.ID === id));\r\n }\r\n\r\n visibleSet.add(id);\r\n } else {\r\n visibleSet.delete(id);\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, visible: visibleSet}));\r\n };\r\n\r\n const setAllVectorVisibility = async (visible: boolean) => {\r\n if (!range) {\r\n return;\r\n }\r\n\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (visible) {\r\n const toLoad: SD_EM_Tree_Item[] = [];\r\n const visibleSet = new Set<number>(dataState.visible);\r\n\r\n for (let vector of dataState.vectors) {\r\n const id = vector.ID;\r\n const state = dataState.data[id];\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (needsLoadData) {\r\n toLoad.push(vector);\r\n }\r\n\r\n visibleSet.add(id);\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, visible: visibleSet}));\r\n await loadSpecificVectors(toLoad);\r\n } else {\r\n setDataState((s): EdaVectorDataState => ({...s, visible: new Set<number>()}));\r\n }\r\n }\r\n\r\n const isVectorVisible = (id: number) => dataState.visible.has(id);\r\n const allVectorsVisible = () => dataState.visible.size === dataState.vectors.length;\r\n const noVectorsVisible = () => dataState.visible.size === 0;\r\n\r\n return (\r\n <EdaVectorDataContext.Provider\r\n value={{\r\n ...dataState,\r\n loadAllData,\r\n loadSpecificVectors,\r\n cancelLoading,\r\n toggleVectorVisibility,\r\n setAllVectorVisibility,\r\n isVectorVisible,\r\n allVectorsVisible,\r\n noVectorsVisible,\r\n }}\r\n >\r\n <LoadingContext.Provider value={loadingState}>\r\n {children}\r\n </LoadingContext.Provider>\r\n </EdaVectorDataContext.Provider>\r\n )\r\n}\r\n"]}
1
+ {"version":3,"file":"edaVectorDataProvider.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/edaVectorDataProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useRef, useState} from \"react\";\r\nimport EdaManagerApi, {TreeItem, TreeItemsResult, VectorValuesData} from \"../../../../api/eda/edaManagerApi\";\r\nimport {EdaVectorDataContext, EdaVectorDataState, VectorDataState} from \"./edaVectorDataContext\";\r\nimport {useSampleRange} from \"./sharedSampleRangeContext\";\r\nimport {IdType, TypedData} from \"../constants/edaTypes\";\r\nimport {LoadingContext, LoadingContextValue} from \"./loadingContext\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {App} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {useEdaConfig} from \"./edaConfigContext\";\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n children?: React.ReactNode\r\n}\r\n\r\nexport const EdaVectorDataProvider: FC<Props> = ({api, children}) => {\r\n const {detail} = useEdaConfig();\r\n const {message} = App.useApp();\r\n const range = useSampleRange();\r\n\r\n const lastRequestId = useRef(0);\r\n const loadingRef = useRef(false);\r\n\r\n const [dataState, setDataState] = useState<EdaVectorDataState>({\r\n data: {},\r\n vectors: [],\r\n visible: new Set<number>(),\r\n initialized: false,\r\n });\r\n\r\n const [loadingState, setLoadingState] = useState<LoadingContextValue>({\r\n loading: false,\r\n loadingPercentage: 0,\r\n loadingItem: \"\",\r\n loadingCount: 0,\r\n });\r\n\r\n const safeReadVectorValues = useCallback(async (id: number, name: string, from: dayjs.Dayjs, to: dayjs.Dayjs, step: number): Promise<VectorValuesData> => {\r\n try {\r\n return await api.readVectorValues(id, from, to, step);\r\n } catch (e: any) {\r\n message.warning(<span>{i18n(\"Failed to load vector %{n} with error: '%{e}'\", {n: name, e: e?.value})}</span>);\r\n console.error(e);\r\n return {\r\n data: []\r\n };\r\n }\r\n }, [api, message]);\r\n\r\n const loadAllData = useCallback(async (data: TypedData) => {\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, vectors: [], loadedData: data, loadedRange: range}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n\r\n try {\r\n const {btTotal, etTotal, sampling, vectorPage} = range;\r\n const result: { [id: number]: VectorDataState } = {};\r\n const columns: TreeItem[] = [];\r\n const visible: Set<number> = new Set<number>();\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n switch (data.type) {\r\n case IdType.GROUP:\r\n case IdType.SCENARIO: {\r\n let vectors: TreeItemsResult;\r\n\r\n if (range.vectors) {\r\n vectors = {items: range.vectors, leftCount: 0}\r\n } else {\r\n try {\r\n if (data.type === IdType.GROUP) {\r\n vectors = await api.getGroupVectors(data.data.data.ID_SKVEKTOR, (vectorPage - 1) * api.pageSize);\r\n } else {\r\n vectors = await api.getScenarioVectors(data.data.data.ID_SCENAR, (vectorPage - 1) * api.pageSize, undefined, true);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n vectors = {items: [], leftCount: 0};\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: vectors.items.length}));\r\n\r\n if (range.vectorPage === 1) {\r\n range.updateTotalCount(vectors.items.length + vectors.leftCount);\r\n }\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n }\r\n\r\n for (const vector of vectors.items) {\r\n columns.push(vector);\r\n visible.add(vector.ID!);\r\n }\r\n\r\n for (let i = 0; i < vectors.items.length; i++) {\r\n const vector = vectors.items[i];\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.DisplayName ?? \"\"}));\r\n\r\n const valuesData: VectorValuesData = await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling);\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n\r\n result[vector.ID] = {\r\n data: valuesData,\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (i + 1) / vectors.items.length * 100}));\r\n }\r\n\r\n break;\r\n }\r\n case IdType.VECTOR: {\r\n const column = data.data.data;\r\n const id = data.data.data.ID_VEKTOR;\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: 1, loadingItem: column.ZOBRAZ_MENO}));\r\n result[id] = {\r\n data: await safeReadVectorValues(id, column.ZOBRAZ_MENO, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n visible.add(column.ID_VEKTOR);\r\n columns.push({\r\n ID: column.ID_VEKTOR,\r\n DisplayName: column.ZOBRAZ_MENO,\r\n Name: column.MENO,\r\n ParentID: column.ID_SKVEKTOR,\r\n Path: \"\",\r\n Type: column.TYP,\r\n Units: column.TECH_JEDNOTKY,\r\n RoundingType: column.VIEW_ROUND,\r\n RoundingPlaces: column.VIEW_DEC_PL\r\n });\r\n }\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, vectors: columns, visible: visible}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 100}));\r\n } catch (e) {\r\n console.error(\"Failed to load all data\", e);\r\n await api.cancelSession();\r\n } finally {\r\n if (requestId === lastRequestId.current) {\r\n setDataState((s): EdaVectorDataState => ({...s, initialized: true}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: false}));\r\n }\r\n\r\n loadingRef.current = false;\r\n }\r\n }, [api, detail?.showTimeWindow, range, safeReadVectorValues]);\r\n\r\n const loadSpecificVectors = useCallback(async (vectors: TreeItem[], forceUpdate?: boolean) => {\r\n const {btTotal, etTotal, sampling} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (!forceUpdate) {\r\n vectors = vectors.filter((vector) => {\r\n const loadedVector = dataState.data[vector.ID];\r\n\r\n if (!loadedVector) {\r\n return true;\r\n }\r\n\r\n return !loadedVector.from.isSame(btWindow) || !loadedVector.to.isSame(etWindow) || loadedVector.sampling !== sampling;\r\n });\r\n }\r\n\r\n if (vectors.length === 0) {\r\n return;\r\n }\r\n\r\n const requestId = ++lastRequestId.current;\r\n\r\n loadingRef.current = true;\r\n setDataState((s): EdaVectorDataState => ({...s, loadedRange: range}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n\r\n try {\r\n const result: { [id: number]: VectorDataState } = {...dataState.data};\r\n const visible = new Set(dataState.visible);\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: true, loadingPercentage: 0}));\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingCount: vectors.length}));\r\n\r\n if (requestId !== lastRequestId.current) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < vectors.length; i++) {\r\n const vector = vectors[i];\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingItem: vector.DisplayName ?? \"\"}));\r\n result[vector.ID] = {\r\n data: await safeReadVectorValues(vector.ID, vector.DisplayName, btWindow, etWindow, sampling),\r\n from: btWindow,\r\n to: etWindow,\r\n sampling: sampling,\r\n };\r\n visible.add(vector.ID);\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: (i + 1) / vectors.length * 100}));\r\n\r\n if (!loadingRef.current) {\r\n break;\r\n }\r\n }\r\n\r\n setLoadingState((s): LoadingContextValue => ({...s, loadingPercentage: 100}));\r\n setDataState((s): EdaVectorDataState => ({...s, data: result, visible}));\r\n } catch (e) {\r\n console.log(\"Failed to load specific vectors\", e);\r\n await api.cancelSession();\r\n } finally {\r\n loadingRef.current = false;\r\n setLoadingState((s): LoadingContextValue => ({...s, loading: false}));\r\n }\r\n }, [api, detail?.showTimeWindow, range, dataState, safeReadVectorValues]);\r\n\r\n const cancelLoading = useCallback(async () => {\r\n loadingRef.current = false;\r\n await api.cancelSession();\r\n }, [api]);\r\n\r\n const toggleVectorVisibility = useCallback(async (id: number, visible: boolean) => {\r\n setDataState((prev) => {\r\n const state = prev.data[id];\r\n const visibleSet = new Set<number>(prev.visible);\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (visible) {\r\n if (needsLoadData) {\r\n loadSpecificVectors(prev.vectors.filter((v) => v.ID === id));\r\n }\r\n\r\n visibleSet.add(id);\r\n } else {\r\n visibleSet.delete(id);\r\n }\r\n\r\n return {...prev, visible: visibleSet};\r\n });\r\n }, [range, detail?.showTimeWindow, loadSpecificVectors]);\r\n\r\n const setAllVectorVisibility = useCallback(async (visible: boolean) => {\r\n const {btTotal, etTotal} = range;\r\n let {btWindow, etWindow} = range;\r\n\r\n if (!detail?.showTimeWindow) {\r\n btWindow = btTotal;\r\n etWindow = etTotal;\r\n }\r\n\r\n if (visible) {\r\n const toLoad: TreeItem[] = [];\r\n const visibleSet = new Set<number>(dataState.visible);\r\n\r\n for (let vector of dataState.vectors) {\r\n const id = vector.ID;\r\n const state = dataState.data[id];\r\n const needsLoadData = !state.from.isSame(btWindow) || !state.to.isSame(etWindow);\r\n\r\n if (needsLoadData) {\r\n toLoad.push(vector);\r\n }\r\n\r\n visibleSet.add(id);\r\n }\r\n\r\n setDataState((s): EdaVectorDataState => ({...s, visible: visibleSet}));\r\n await loadSpecificVectors(toLoad);\r\n } else {\r\n setDataState((s): EdaVectorDataState => ({...s, visible: new Set<number>()}));\r\n }\r\n }, [range, dataState.vectors, dataState.data, loadSpecificVectors, dataState.visible, detail?.showTimeWindow]);\r\n\r\n return (\r\n <EdaVectorDataContext.Provider\r\n value={{\r\n ...dataState,\r\n loadAllData,\r\n loadSpecificVectors,\r\n cancelLoading,\r\n toggleVectorVisibility,\r\n setAllVectorVisibility,\r\n }}\r\n >\r\n <LoadingContext.Provider value={loadingState}>\r\n {children}\r\n </LoadingContext.Provider>\r\n </EdaVectorDataContext.Provider>\r\n )\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  export interface LoadingContextValue {
2
2
  loading: boolean;
3
3
  loadingPercentage: number;
4
- loadingVector: string;
4
+ loadingItem: string;
5
5
  loadingCount: number;
6
6
  }
7
7
  export declare const LoadingContext: import("react").Context<LoadingContextValue | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"loadingContext.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/loadingContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AASpC,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAkC,SAAS,CAAC,CAAC","sourcesContent":["import {createContext} from \"react\";\r\n\r\nexport interface LoadingContextValue {\r\n loading: boolean\r\n loadingPercentage: number\r\n loadingVector: string\r\n loadingCount: number\r\n}\r\n\r\nexport const LoadingContext = createContext<LoadingContextValue | undefined>(undefined);"]}
1
+ {"version":3,"file":"loadingContext.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/loadingContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AASpC,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAkC,SAAS,CAAC,CAAC","sourcesContent":["import {createContext} from \"react\";\r\n\r\nexport interface LoadingContextValue {\r\n loading: boolean\r\n loadingPercentage: number\r\n loadingItem: string\r\n loadingCount: number\r\n}\r\n\r\nexport const LoadingContext = createContext<LoadingContextValue | undefined>(undefined);"]}
@@ -1,7 +1,8 @@
1
1
  import dayjs from "d2core/dayjs";
2
2
  import { EdaSamplingType, StepType } from "../constants/edaTypes";
3
3
  import React from "react";
4
- export interface SharedSampleRange {
4
+ import { TreeItem } from "../../../../api/eda/edaManagerApi";
5
+ export interface SharedSampleRangeState {
5
6
  btTotal: dayjs.Dayjs;
6
7
  etTotal: dayjs.Dayjs;
7
8
  btWindow: dayjs.Dayjs;
@@ -9,8 +10,15 @@ export interface SharedSampleRange {
9
10
  sampling: EdaSamplingType;
10
11
  step: StepType;
11
12
  vectorPage: number;
12
- updateValues: (bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType, vectorPage: number) => void;
13
+ totalCount: number;
14
+ vectors?: TreeItem[];
15
+ }
16
+ export interface SharedSampleRangeContext extends SharedSampleRangeState {
17
+ updatePage: (page: number) => void;
18
+ updateVectors: (vectors: TreeItem[]) => void;
19
+ updateValues: (bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => void;
13
20
  updateTimeWindow: (bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => void;
21
+ updateTotalCount: (totalCount: number) => void;
14
22
  }
15
- export declare function isSame(a?: SharedSampleRange, b?: SharedSampleRange): boolean;
16
- export declare const SharedSampleRangeContext: React.Context<SharedSampleRange | undefined>;
23
+ export declare const SharedSampleRangeContext: React.Context<SharedSampleRangeContext | undefined>;
24
+ export declare function useSampleRange(): SharedSampleRangeContext;
@@ -0,0 +1,10 @@
1
+ import React, { useContext } from "react";
2
+ export const SharedSampleRangeContext = React.createContext(undefined);
3
+ export function useSampleRange() {
4
+ const context = useContext(SharedSampleRangeContext);
5
+ if (!context) {
6
+ throw new Error("useSampleRange must be used within an context");
7
+ }
8
+ return context;
9
+ }
10
+ //# sourceMappingURL=sharedSampleRangeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedSampleRangeContext.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/sharedSampleRangeContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AAuBxC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,aAAa,CAAuC,SAAS,CAAC,CAAC;AAE7G,MAAM,UAAU,cAAc;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAErD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC","sourcesContent":["import dayjs from \"d2core/dayjs\";\r\nimport {EdaSamplingType, StepType} from \"../constants/edaTypes\";\r\nimport React, {useContext} from \"react\";\r\nimport {TreeItem} from \"../../../../api/eda/edaManagerApi\";\r\n\r\nexport interface SharedSampleRangeState {\r\n btTotal: dayjs.Dayjs\r\n etTotal: dayjs.Dayjs\r\n btWindow: dayjs.Dayjs\r\n etWindow: dayjs.Dayjs\r\n sampling: EdaSamplingType\r\n step: StepType\r\n vectorPage: number\r\n totalCount: number\r\n vectors?: TreeItem[]\r\n}\r\n\r\nexport interface SharedSampleRangeContext extends SharedSampleRangeState {\r\n updatePage: (page: number) => void\r\n updateVectors: (vectors: TreeItem[]) => void\r\n updateValues: (bt: dayjs.Dayjs, et: dayjs.Dayjs, sampling: EdaSamplingType) => void\r\n updateTimeWindow: (bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => void\r\n updateTotalCount: (totalCount: number) => void\r\n}\r\n\r\nexport const SharedSampleRangeContext = React.createContext<SharedSampleRangeContext | undefined>(undefined);\r\n\r\nexport function useSampleRange() {\r\n const context = useContext(SharedSampleRangeContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useSampleRange must be used within an context\");\r\n }\r\n\r\n return context;\r\n}"]}
@@ -0,0 +1,9 @@
1
+ import { TypedData, TypedIndex } from "../constants/edaTypes";
2
+ import EdaManagerApi from "../../../../api/eda/edaManagerApi";
3
+ import React from "react";
4
+ export declare const useEdaActions: (api: EdaManagerApi) => {
5
+ triggerExportToXML: (data: TypedData) => void;
6
+ triggerIncludeToScenario: (data: TypedIndex) => void;
7
+ triggerIncludeToGroup: (data: TypedIndex) => void;
8
+ renderActionDialogs: () => React.JSX.Element;
9
+ };
@@ -0,0 +1,36 @@
1
+ import React, { useCallback, useState } from "react";
2
+ import { ExportDialog } from "../dialogs/exportDialog";
3
+ import { InsertTo, InsertVectorDialog } from "../dialogs/insertVectorDialog";
4
+ export const useEdaActions = (api) => {
5
+ const [exportTarget, setExportTarget] = useState();
6
+ const [includeTarget, setIncludeTarget] = useState();
7
+ const [exportOpen, setExportOpen] = useState(false);
8
+ const [includeToScenarioOpen, setIncludeToScenarioOpen] = useState(false);
9
+ const [includeToGroupOpen, setIncludeToGroupOpen] = useState(false);
10
+ const triggerExportToXML = useCallback((data) => {
11
+ setExportTarget({ data });
12
+ setExportOpen(true);
13
+ }, []);
14
+ const triggerIncludeToScenario = useCallback((data) => {
15
+ setIncludeTarget({ data });
16
+ setIncludeToScenarioOpen(true);
17
+ }, []);
18
+ const triggerIncludeToGroup = useCallback((data) => {
19
+ setIncludeTarget({ data });
20
+ setIncludeToGroupOpen(true);
21
+ }, []);
22
+ const renderActionDialogs = () => {
23
+ return (React.createElement(React.Fragment, null,
24
+ exportTarget && (React.createElement(ExportDialog, { api: api, open: exportOpen, data: exportTarget.data, onCancel: () => setExportOpen(false), onOk: () => setExportOpen(false) })),
25
+ includeTarget && (React.createElement(React.Fragment, null,
26
+ React.createElement(InsertVectorDialog, { api: api, insertTo: InsertTo.SCENARIO, open: includeToScenarioOpen, data: includeTarget.data, onCancel: () => setIncludeToScenarioOpen(false), onOk: () => setIncludeToScenarioOpen(false) }),
27
+ React.createElement(InsertVectorDialog, { api: api, insertTo: InsertTo.GROUP, open: includeToGroupOpen, data: includeTarget.data, onCancel: () => setIncludeToGroupOpen(false), onOk: () => setIncludeToGroupOpen(false) })))));
28
+ };
29
+ return {
30
+ triggerExportToXML,
31
+ triggerIncludeToScenario,
32
+ triggerIncludeToGroup,
33
+ renderActionDialogs,
34
+ };
35
+ };
36
+ //# sourceMappingURL=useEdaActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEdaActions.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/context/useEdaActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAW3E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAkB,EAAE,EAAE;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAgB,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAiB,CAAC;IAEpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,IAAe,EAAE,EAAE;QACvD,eAAe,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,wBAAwB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC9D,gBAAgB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QAC3D,gBAAgB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QACzB,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,OAAO,CACH;YACK,YAAY,IAAI,CACb,oBAAC,YAAY,IACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACpC,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAClC,CACL;YACA,aAAa,IAAI,CACd;gBACI,oBAAC,kBAAkB,IACf,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,IAAI,EAAE,qBAAqB,EAC3B,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAC7C;gBACF,oBAAC,kBAAkB,IACf,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,CAAC,KAAK,EACxB,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAC5C,IAAI,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAC1C,CACH,CACN,CACF,CACN,CAAA;IACL,CAAC,CAAA;IAED,OAAO;QACH,kBAAkB;QAClB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACtB,CAAA;AACL,CAAC,CAAA","sourcesContent":["import {TypedData, TypedIndex} from \"../constants/edaTypes\";\r\nimport EdaManagerApi from \"../../../../api/eda/edaManagerApi\";\r\nimport React, {useCallback, useState} from \"react\";\r\nimport {ExportDialog} from \"../dialogs/exportDialog\";\r\nimport {InsertTo, InsertVectorDialog} from \"../dialogs/insertVectorDialog\";\r\n\r\n//TODO generic?\r\ninterface ExportTarget {\r\n data: TypedData\r\n}\r\n\r\ninterface IncludeTarget {\r\n data: TypedIndex\r\n}\r\n\r\nexport const useEdaActions = (api: EdaManagerApi) => {\r\n const [exportTarget, setExportTarget] = useState<ExportTarget>();\r\n const [includeTarget, setIncludeTarget] = useState<IncludeTarget>();\r\n\r\n const [exportOpen, setExportOpen] = useState(false);\r\n const [includeToScenarioOpen, setIncludeToScenarioOpen] = useState(false);\r\n const [includeToGroupOpen, setIncludeToGroupOpen] = useState(false);\r\n\r\n const triggerExportToXML = useCallback((data: TypedData) => {\r\n setExportTarget({data});\r\n setExportOpen(true);\r\n }, []);\r\n\r\n const triggerIncludeToScenario = useCallback((data: TypedIndex) => {\r\n setIncludeTarget({data});\r\n setIncludeToScenarioOpen(true);\r\n }, []);\r\n\r\n const triggerIncludeToGroup = useCallback((data: TypedIndex) => {\r\n setIncludeTarget({data});\r\n setIncludeToGroupOpen(true);\r\n }, []);\r\n\r\n const renderActionDialogs = () => {\r\n return (\r\n <>\r\n {exportTarget && (\r\n <ExportDialog\r\n api={api}\r\n open={exportOpen}\r\n data={exportTarget.data}\r\n onCancel={() => setExportOpen(false)}\r\n onOk={() => setExportOpen(false)}\r\n />\r\n )}\r\n {includeTarget && (\r\n <>\r\n <InsertVectorDialog\r\n api={api}\r\n insertTo={InsertTo.SCENARIO}\r\n open={includeToScenarioOpen}\r\n data={includeTarget.data}\r\n onCancel={() => setIncludeToScenarioOpen(false)}\r\n onOk={() => setIncludeToScenarioOpen(false)}\r\n />\r\n <InsertVectorDialog\r\n api={api}\r\n insertTo={InsertTo.GROUP}\r\n open={includeToGroupOpen}\r\n data={includeTarget.data}\r\n onCancel={() => setIncludeToGroupOpen(false)}\r\n onOk={() => setIncludeToGroupOpen(false)}\r\n />\r\n </>\r\n )}\r\n </>\r\n )\r\n }\r\n\r\n return {\r\n triggerExportToXML,\r\n triggerIncludeToScenario,\r\n triggerIncludeToGroup,\r\n renderActionDialogs,\r\n }\r\n}"]}
@@ -0,0 +1,13 @@
1
+ import { FC } from "react";
2
+ import { DescriptiveVector, TableNode } from "./types";
3
+ interface Props {
4
+ selectedRow?: DescriptiveVector;
5
+ tableData: TableNode[];
6
+ onMove: (direction: "up" | "down") => void;
7
+ addEntry: () => void;
8
+ addSubEntry: () => void;
9
+ removeEntry: () => void;
10
+ removeSubEntries: () => void;
11
+ }
12
+ export declare const ControlButtons: FC<Props>;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { Button, Flex } from "antd";
3
+ import { canMove } from "./utils";
4
+ import { ArrowDownOutlined, ArrowUpOutlined, FolderAddOutlined, MinusSquareOutlined, PlusSquareOutlined } from "@ant-design/icons";
5
+ import { FolderRemoveOutlined } from "../../icons/folderRemoveOutlined";
6
+ import i18n from "d2core/i18n/i18n";
7
+ export const ControlButtons = ({ selectedRow, tableData, onMove, addEntry, addSubEntry, removeEntry, removeSubEntries }) => {
8
+ return (React.createElement("div", { className: "tree-mover" },
9
+ React.createElement(Flex, { gap: "small", vertical: true },
10
+ React.createElement(Button, { disabled: !selectedRow || !canMove(tableData, selectedRow, "up"), icon: React.createElement(ArrowUpOutlined, null), onClick: () => onMove("up") }),
11
+ React.createElement(Button, { disabled: !selectedRow || !canMove(tableData, selectedRow, "down"), icon: React.createElement(ArrowDownOutlined, null), onClick: () => onMove("down") })),
12
+ React.createElement(Flex, { vertical: true, gap: "middle", justify: "center", style: { flex: 1 } },
13
+ React.createElement(Button, { icon: React.createElement(FolderAddOutlined, null), title: i18n("Add after current entry"), onClick: addEntry }),
14
+ React.createElement(Button, { icon: React.createElement(PlusSquareOutlined, null), disabled: !selectedRow, title: i18n("Add under current entry"), onClick: addSubEntry }),
15
+ React.createElement("div", null),
16
+ React.createElement(Button, { icon: React.createElement(FolderRemoveOutlined, null), disabled: !selectedRow, title: i18n("Remove current entry (with subentries)"), onClick: removeEntry }),
17
+ React.createElement(Button, { icon: React.createElement(MinusSquareOutlined, null), disabled: !selectedRow, title: i18n("Remove subentries from current entry"), onClick: removeSubEntries }))));
18
+ };
19
+ //# sourceMappingURL=controlButtons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlButtons.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AAEtE,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAYpC,MAAM,CAAC,MAAM,cAAc,GAAc,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAC,EAAE,EAAE;IAChI,OAAO,CACH,6BAAK,SAAS,EAAE,YAAY;QACxB,oBAAC,IAAI,IACD,GAAG,EAAE,OAAO,EACZ,QAAQ;YAER,oBAAC,MAAM,IACH,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAChE,IAAI,EAAE,oBAAC,eAAe,OAAE,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAC7B;YACF,oBAAC,MAAM,IACH,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAClE,IAAI,EAAE,oBAAC,iBAAiB,OAAE,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAC/B,CACC;QACP,oBAAC,IAAI,IACD,QAAQ,QACR,GAAG,EAAE,QAAQ,EACb,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC;YAEhB,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,iBAAiB,OAAE,EAC1B,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC,EACtC,OAAO,EAAE,QAAQ,GACnB;YACF,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,kBAAkB,OAAE,EAC3B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC,EACtC,OAAO,EAAE,WAAW,GACtB;YACF,gCAAO;YACP,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,oBAAoB,OAAE,EAC7B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,wCAAwC,CAAC,EACrD,OAAO,EAAE,WAAW,GACtB;YACF,oBAAC,MAAM,IACH,IAAI,EAAE,oBAAC,mBAAmB,OAAE,EAC5B,QAAQ,EAAE,CAAC,WAAW,EACtB,KAAK,EAAE,IAAI,CAAC,sCAAsC,CAAC,EACnD,OAAO,EAAE,gBAAgB,GAC3B,CACC,CACL,CACT,CAAC;AACN,CAAC,CAAA","sourcesContent":["import React, {FC} from \"react\";\r\nimport {Button, Flex} from \"antd\";\r\nimport {canMove} from \"./utils\";\r\nimport {ArrowDownOutlined, ArrowUpOutlined, FolderAddOutlined, MinusSquareOutlined, PlusSquareOutlined} from \"@ant-design/icons\";\r\nimport {FolderRemoveOutlined} from \"../../icons/folderRemoveOutlined\";\r\nimport {DescriptiveVector, TableNode} from \"./types\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ninterface Props {\r\n selectedRow?: DescriptiveVector\r\n tableData: TableNode[]\r\n onMove: (direction: \"up\" | \"down\") => void\r\n addEntry: () => void\r\n addSubEntry: () => void\r\n removeEntry: () => void\r\n removeSubEntries: () => void\r\n}\r\n\r\nexport const ControlButtons: FC<Props> = ({selectedRow, tableData, onMove, addEntry, addSubEntry, removeEntry, removeSubEntries}) => {\r\n return (\r\n <div className={\"tree-mover\"}>\r\n <Flex\r\n gap={\"small\"}\r\n vertical\r\n >\r\n <Button\r\n disabled={!selectedRow || !canMove(tableData, selectedRow, \"up\")}\r\n icon={<ArrowUpOutlined/>}\r\n onClick={() => onMove(\"up\")}\r\n />\r\n <Button\r\n disabled={!selectedRow || !canMove(tableData, selectedRow, \"down\")}\r\n icon={<ArrowDownOutlined/>}\r\n onClick={() => onMove(\"down\")}\r\n />\r\n </Flex>\r\n <Flex\r\n vertical\r\n gap={\"middle\"}\r\n justify=\"center\"\r\n style={{flex: 1}}\r\n >\r\n <Button\r\n icon={<FolderAddOutlined/>}\r\n title={i18n(\"Add after current entry\")}\r\n onClick={addEntry}\r\n />\r\n <Button\r\n icon={<PlusSquareOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Add under current entry\")}\r\n onClick={addSubEntry}\r\n />\r\n <div />\r\n <Button\r\n icon={<FolderRemoveOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Remove current entry (with subentries)\")}\r\n onClick={removeEntry}\r\n />\r\n <Button\r\n icon={<MinusSquareOutlined/>}\r\n disabled={!selectedRow}\r\n title={i18n(\"Remove subentries from current entry\")}\r\n onClick={removeSubEntries}\r\n />\r\n </Flex>\r\n </div>\r\n );\r\n}"]}
@@ -0,0 +1,8 @@
1
+ import { FC } from "react";
2
+ import { DescriptiveVector } from "./types";
3
+ interface Props {
4
+ data: DescriptiveVector;
5
+ onChange: (data: DescriptiveVector) => void;
6
+ }
7
+ export declare const DescriptiveVectorDetailPanel: FC<Props>;
8
+ export {};