@apia/query 4.0.102 → 5.0.1

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 (41) hide show
  1. package/dist/ListController.d.ts +130 -0
  2. package/dist/ListController.d.ts.map +1 -0
  3. package/dist/ListController.js +453 -0
  4. package/dist/ListController.js.map +1 -0
  5. package/dist/ListFunctionalityController.d.ts +13 -0
  6. package/dist/ListFunctionalityController.d.ts.map +1 -0
  7. package/dist/ListFunctionalityController.js +54 -0
  8. package/dist/ListFunctionalityController.js.map +1 -0
  9. package/dist/ModalListController.d.ts +14 -0
  10. package/dist/ModalListController.d.ts.map +1 -0
  11. package/dist/ModalListController.js +29 -0
  12. package/dist/ModalListController.js.map +1 -0
  13. package/dist/QueriesFunctionalityController.d.ts +262 -0
  14. package/dist/QueriesFunctionalityController.d.ts.map +1 -0
  15. package/dist/QueriesFunctionalityController.js +340 -0
  16. package/dist/QueriesFunctionalityController.js.map +1 -0
  17. package/dist/components/Pagination.d.ts +14 -0
  18. package/dist/components/Pagination.d.ts.map +1 -0
  19. package/dist/components/Pagination.js +65 -0
  20. package/dist/components/Pagination.js.map +1 -0
  21. package/dist/components/modals/ExportModal.js +146 -0
  22. package/dist/components/modals/ExportModal.js.map +1 -0
  23. package/dist/components/modals/FilterTypes.js +53 -0
  24. package/dist/components/modals/FilterTypes.js.map +1 -0
  25. package/dist/components/modals/controllers/ExportController.js +38 -0
  26. package/dist/components/modals/controllers/ExportController.js.map +1 -0
  27. package/dist/index.d.ts +8 -210
  28. package/dist/index.js +7 -624
  29. package/dist/index.js.map +1 -1
  30. package/dist/types.d.ts +10 -0
  31. package/dist/types.d.ts.map +1 -0
  32. package/dist/utils/getDateFromString.d.ts +4 -0
  33. package/dist/utils/getDateFromString.d.ts.map +1 -0
  34. package/dist/utils/getDateFromString.js +8 -0
  35. package/dist/utils/getDateFromString.js.map +1 -0
  36. package/dist/utils/getStringFromDate.d.ts +4 -0
  37. package/dist/utils/getStringFromDate.d.ts.map +1 -0
  38. package/dist/utils/getStringFromDate.js +8 -0
  39. package/dist/utils/getStringFromDate.js.map +1 -0
  40. package/package.json +8 -8
  41. package/LICENSE.md +0 -6
@@ -0,0 +1,340 @@
1
+ import { ListFunctionalityController } from './ListFunctionalityController.js';
2
+ import { EventEmitter, arrayOrArray } from '@apia/util';
3
+ import { ApiaApi } from '@apia/api2';
4
+ import { ApiaUtil, TabsController } from '@apia/components';
5
+ import { makeObservable, observable } from 'mobx';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => {
10
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
+ return value;
12
+ };
13
+ class AsideTabs extends TabsController {
14
+ constructor(id, props, onTabChange) {
15
+ super(id, {
16
+ ...props,
17
+ initialState: {
18
+ showAtLeastOneTab: true,
19
+ isMultiple: true
20
+ }
21
+ });
22
+ this.id = id;
23
+ this.props = props;
24
+ this.onTabChange = onTabChange;
25
+ }
26
+ openTab(tabId, _closeOthers) {
27
+ this.onTabChange(tabId);
28
+ super.openTab(tabId, true);
29
+ }
30
+ }
31
+ const _QueriesFunctionalityController = class _QueriesFunctionalityController extends ListFunctionalityController {
32
+ constructor(env, tabs) {
33
+ super(env);
34
+ this.env = env;
35
+ this.tabs = tabs;
36
+ __publicField(this, "asideTabsController", new AsideTabs(
37
+ "asideTabs",
38
+ {
39
+ orientation: "vertical"
40
+ },
41
+ async (tabId) => {
42
+ if (tabId === "Chart" && this.queryState.defaultChart) {
43
+ this.loadMainChart();
44
+ } else if (tabId === "Pivot" && this.queryState.defaultPivot) {
45
+ this.loadMainPivot();
46
+ } else {
47
+ this.queryState.currentChart = void 0;
48
+ this.queryState.currentPivot = void 0;
49
+ }
50
+ }
51
+ ));
52
+ __publicField(this, "queryState", { isLoading: false });
53
+ __publicField(this, "emitter", new EventEmitter());
54
+ if (tabs && tabs.length > 0) {
55
+ tabs.forEach((tab) => this.asideTabsController.append(tab));
56
+ }
57
+ makeObservable(this, { queryState: observable });
58
+ }
59
+ async loadChart(chartId) {
60
+ const result = await ApiaApi.get(this.env.context, {
61
+ action: "showChart",
62
+ qryChtId: chartId
63
+ });
64
+ return _QueriesFunctionalityController.convertChartDefinitionToChartData(
65
+ result.data.chart
66
+ );
67
+ }
68
+ async loadMainChart() {
69
+ this.queryState.currentPivot = void 0;
70
+ const retrievedChart = await this.loadChart(
71
+ this.queryState.defaultChart
72
+ );
73
+ if (retrievedChart) {
74
+ const actualRetrievedChart = {
75
+ ...retrievedChart,
76
+ chartId: this.queryState.defaultChart
77
+ };
78
+ this.queryState.currentChart = actualRetrievedChart;
79
+ }
80
+ }
81
+ async loadPivot(props) {
82
+ this.queryState.isLoading = true;
83
+ if (props.offline && !props.rowId) {
84
+ return false;
85
+ }
86
+ const result = await ApiaApi.get(this.env.context, {
87
+ action: "showPivot",
88
+ qryPvtId: props.pivotId,
89
+ react: true,
90
+ preventAsXmlParameter: true,
91
+ id: props.rowId,
92
+ asXml: true
93
+ });
94
+ const config = result.data.pivot;
95
+ this.queryState.isLoading = false;
96
+ return {
97
+ load: {
98
+ pivots: [
99
+ {
100
+ title: config.title,
101
+ description: config.description,
102
+ mainPivot: config.mainPivot,
103
+ columnSort: config.columnSort,
104
+ rowSort: config.rowSort,
105
+ renderer: config.renderer,
106
+ aggregator: config.aggregator,
107
+ columns: arrayOrArray(config.columns.column).map((col) => ({
108
+ title: col.title,
109
+ showAs: col.showAs,
110
+ AggColumnOrder: col.AggColumnOrder,
111
+ isAnAggColumn: col.isAnAggColumn
112
+ })),
113
+ rows: arrayOrArray(config.rows.row).map((r) => ({
114
+ cell: arrayOrArray(r.cell).map((cell) => {
115
+ return _QueriesFunctionalityController.stripHtml(
116
+ typeof cell === "object" ? cell.content : cell.toString()
117
+ );
118
+ })
119
+ }))
120
+ }
121
+ ]
122
+ }
123
+ };
124
+ }
125
+ async loadMainPivot() {
126
+ this.queryState.currentChart = void 0;
127
+ const retrievedPivot = await this.loadPivot({
128
+ pivotId: this.queryState.defaultPivot,
129
+ offline: false
130
+ });
131
+ if (retrievedPivot) {
132
+ const actualRetrievedPivot = {
133
+ ...retrievedPivot,
134
+ pivotId: this.queryState.defaultPivot
135
+ };
136
+ this.queryState.currentPivot = actualRetrievedPivot;
137
+ }
138
+ }
139
+ static stripHtml(html) {
140
+ const div = document.createElement("div");
141
+ div.innerHTML = html;
142
+ return div.textContent || div.innerText || "";
143
+ }
144
+ handleCloseChart() {
145
+ this.queryState.currentChart = void 0;
146
+ this.asideTabsController.openTab("Table");
147
+ }
148
+ handleClosePivot() {
149
+ this.queryState.currentPivot = void 0;
150
+ this.asideTabsController.openTab("Table");
151
+ }
152
+ openAndReadFile(pivot, accept) {
153
+ new Promise((resolve) => {
154
+ const input = document.createElement("input");
155
+ input.type = "file";
156
+ input.style.display = "none";
157
+ input.accept = accept || "*";
158
+ document.body.append(input);
159
+ input.click();
160
+ input.addEventListener("change", (ev) => {
161
+ const fileInput = ev.target;
162
+ const file = fileInput?.files?.[0];
163
+ if (file) {
164
+ const isValidFile = file.name.endsWith(".csv");
165
+ if (!isValidFile) {
166
+ ApiaUtil.instance.notifications.notify({
167
+ message: window.WRONG_FILE_TYPE
168
+ });
169
+ fileInput.value = "";
170
+ resolve(null);
171
+ return;
172
+ }
173
+ const reader = new FileReader();
174
+ reader.onload = (event) => {
175
+ fileInput.value = "";
176
+ const content = event.target?.result;
177
+ if (content) {
178
+ resolve(content);
179
+ }
180
+ };
181
+ reader.readAsText(file);
182
+ } else {
183
+ resolve(null);
184
+ }
185
+ });
186
+ }).then((value) => {
187
+ if (typeof value === "string") {
188
+ const csvString = ApiaUtil.instance.parsers.fromCsv(value);
189
+ const actualRetrievedPivot = {
190
+ pivotId: this.queryState.currentPivot?.pivotId ?? "",
191
+ load: {
192
+ pivots: [
193
+ {
194
+ ...pivot,
195
+ columns: csvString[0].map((e) => {
196
+ return {
197
+ showAs: "none",
198
+ title: e,
199
+ isAnAggColumn: false
200
+ };
201
+ }),
202
+ rows: csvString.filter((_, i) => i !== 0).map((e) => ({ cell: e }))
203
+ }
204
+ ]
205
+ }
206
+ };
207
+ this.queryState.currentPivot = actualRetrievedPivot;
208
+ }
209
+ });
210
+ }
211
+ convertColumnSortToTQuerySort(sort) {
212
+ switch (sort) {
213
+ case "label_asc":
214
+ return "key_a_to_z";
215
+ case "value_asc":
216
+ return "value_a_to_z";
217
+ case "value_desc":
218
+ return "value_z_to_a";
219
+ }
220
+ }
221
+ parsePivotProps(pivot) {
222
+ const parsedData = [
223
+ pivot.columns.map((col) => col.title),
224
+ ...pivot.rows.map((row) => row.cell)
225
+ ];
226
+ return {
227
+ data: parsedData,
228
+ rows: pivot.columns.filter((col) => col.showAs === "row").map((col) => col.title),
229
+ cols: pivot.columns.filter((col) => col.showAs === "column").map((col) => col.title),
230
+ aggregatorName: pivot.aggregator,
231
+ rendererName: pivot.renderer,
232
+ colOrder: this.convertColumnSortToTQuerySort(pivot.columnSort),
233
+ rowOrder: this.convertColumnSortToTQuerySort(pivot.rowSort),
234
+ vals: pivot.columns.filter((col) => col.isAnAggColumn && col.AggColumnOrder).sort((a, b) => {
235
+ const orderA = a.AggColumnOrder ?? Infinity;
236
+ const orderB = b.AggColumnOrder ?? Infinity;
237
+ return orderA - orderB;
238
+ }).map((col) => col.title)
239
+ };
240
+ }
241
+ async pivotRefresh() {
242
+ const retrievedPivot = await this.loadPivot({
243
+ pivotId: this.queryState.currentPivot?.pivotId,
244
+ offline: false,
245
+ rowId: void 0
246
+ });
247
+ if (retrievedPivot) {
248
+ const actualRetrievedPivot = {
249
+ ...retrievedPivot,
250
+ pivotId: this.queryState.currentPivot?.pivotId
251
+ };
252
+ this.queryState.currentPivot = actualRetrievedPivot;
253
+ }
254
+ }
255
+ };
256
+ __publicField(_QueriesFunctionalityController, "convertChartDefinitionToChartData", (chartDefinition) => {
257
+ const {
258
+ title,
259
+ chartType,
260
+ axisXTitle,
261
+ axisYTitle,
262
+ showValues,
263
+ showLegend,
264
+ showAxisXTitle,
265
+ showAxisYTitle,
266
+ dataSets,
267
+ colorSchema,
268
+ showGrid
269
+ } = chartDefinition;
270
+ let type;
271
+ let indexAxis;
272
+ switch (chartType) {
273
+ case "barH2D":
274
+ case "barV2D":
275
+ case "barH3D":
276
+ case "barV3D":
277
+ type = "bar";
278
+ indexAxis = chartType === "barH2D" || chartType === "barH3D" ? "y" : "x";
279
+ break;
280
+ case "linear":
281
+ type = "line";
282
+ indexAxis = "x";
283
+ break;
284
+ case "waterfall":
285
+ type = "waterfall";
286
+ indexAxis = "x";
287
+ break;
288
+ case "pie2D":
289
+ case "pie3D":
290
+ type = "pie";
291
+ indexAxis = "x";
292
+ break;
293
+ default:
294
+ throw new Error(`Unsupported chart type: ${chartType}`);
295
+ }
296
+ const datasets = dataSets ? arrayOrArray(dataSets.data).length === 1 && chartType !== "linear" && chartType !== "waterfall" && chartType !== "pie2D" && chartType !== "pie3D" && arrayOrArray(dataSets.data)[0].sets ? arrayOrArray(arrayOrArray(dataSets.data)[0].sets).map((set) => {
297
+ const backgroundColor = arrayOrArray(
298
+ arrayOrArray(dataSets.data)[0].sets
299
+ ).map(
300
+ (set2) => set2.color || arrayOrArray(dataSets.data)[0].color || colorSchema || ""
301
+ );
302
+ const borderColor = backgroundColor;
303
+ const label = _QueriesFunctionalityController.stripHtml(set.key);
304
+ const data = [parseFloat(set.value)];
305
+ const borderWidth = 1;
306
+ return { backgroundColor, borderColor, label, data, borderWidth };
307
+ }) : arrayOrArray(dataSets.data).map((column) => {
308
+ const backgroundColor = arrayOrArray(column.sets).map(
309
+ (set) => set.color || column.color || colorSchema || ""
310
+ );
311
+ const borderColor = backgroundColor;
312
+ const label = _QueriesFunctionalityController.stripHtml(column.name);
313
+ const data = arrayOrArray(column.sets).map(
314
+ (set) => parseFloat(set.value)
315
+ );
316
+ const borderWidth = 1;
317
+ return { backgroundColor, borderColor, label, data, borderWidth };
318
+ }) : [];
319
+ const labels = dataSets ? arrayOrArray(dataSets.data).length === 1 && chartType !== "linear" && chartType !== "waterfall" && chartType !== "pie2D" && chartType !== "pie3D" ? [arrayOrArray(dataSets.data)[0].name] : arrayOrArray(arrayOrArray(dataSets.data)[0].sets).map((set) => {
320
+ return _QueriesFunctionalityController.stripHtml(set.key);
321
+ }) : [];
322
+ return {
323
+ title,
324
+ type,
325
+ datasets,
326
+ indexAxis,
327
+ labels,
328
+ showValues: showValues ? "true" : "false",
329
+ showLegend: showLegend ? "true" : "false",
330
+ showXAxisValues: showAxisXTitle ? "true" : void 0,
331
+ showYAxisValues: showAxisYTitle ? "true" : void 0,
332
+ showTable: showGrid ? "true" : "false",
333
+ xAxisTitle: axisXTitle || "",
334
+ yAxisTitle: axisYTitle || ""
335
+ };
336
+ });
337
+ let QueriesFunctionalityController = _QueriesFunctionalityController;
338
+
339
+ export { QueriesFunctionalityController };
340
+ //# sourceMappingURL=QueriesFunctionalityController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueriesFunctionalityController.js","sources":["../src/QueriesFunctionalityController.ts"],"sourcesContent":["import { ListFunctionalityController } from './ListFunctionalityController';\r\nimport {\r\n ColumnSort,\r\n Pivot,\r\n PivotTableUIProps,\r\n TApiaChartColumn,\r\n TPivotTableData,\r\n TQuerySort,\r\n} from '@apia/charts';\r\nimport { TQueryEnvironment } from './types';\r\nimport { arrayOrArray, EventEmitter, TApiaLoadForm } from '@apia/util';\r\nimport { ApiaApi } from '@apia/api2';\r\nimport {\r\n ApiaUtil,\r\n TabsController,\r\n TabsControllerProps,\r\n TTab,\r\n} from '@apia/components';\r\nimport { makeObservable, observable } from 'mobx';\r\n\r\nexport type PivotTableConfig = {\r\n renderer: string;\r\n columnSort: string;\r\n aggregator: string;\r\n mainPivot: boolean;\r\n description: string;\r\n title: string;\r\n rowSort: string;\r\n columns: {\r\n column: {\r\n showAs: 'row' | 'column' | 'none';\r\n title: string;\r\n AggColumnOrder?: number;\r\n isAnAggColumn: boolean;\r\n }[];\r\n };\r\n rows: {\r\n row:\r\n | {\r\n cell: (string | number | { content: string; isHTML: boolean })[];\r\n }\r\n | {\r\n cell: (string | number | { content: string; isHTML: boolean })[];\r\n }[];\r\n };\r\n};\r\ntype Renderer =\r\n | 'Table'\r\n | 'Table Heatmap'\r\n | 'Table Col Heatmap'\r\n | 'Table Row Heatmap'\r\n | 'Exportable TSV'\r\n | 'Grouped Column Chart'\r\n | 'Stacked Column Chart'\r\n | 'Grouped Bar Chart'\r\n | 'Stacked Bar Chart'\r\n | 'Line Chart'\r\n | 'Dot Chart'\r\n | 'Area Chart'\r\n | 'Scatter Chart'\r\n | 'Multiple Pie Chart';\r\ntype Aggregator =\r\n | 'Count'\r\n | 'Count Unique Values'\r\n | 'List Unique Values'\r\n | 'Sum'\r\n | 'Integer Sum'\r\n | 'Average'\r\n | 'Median'\r\n | 'Sample Variance'\r\n | 'Sample Standard Deviation'\r\n | 'Minimum'\r\n | 'Maximum'\r\n | 'First'\r\n | 'Last'\r\n | 'Sum over Sum'\r\n | 'Sum as Fraction of Total'\r\n | 'Sum as Fraction of Rows'\r\n | 'Sum as Fraction of Columns'\r\n | 'Count as Fraction of Total'\r\n | 'Count as Fraction of Rows'\r\n | 'Count as Fraction of Columns';\r\nexport type TChartData = {\r\n title: string;\r\n type:\r\n | 'bar'\r\n | 'line'\r\n | 'scatter'\r\n | 'bubble'\r\n | 'pie'\r\n | 'doughnut'\r\n | 'polarArea'\r\n | 'radar'\r\n | 'waterfall';\r\n datasets: {\r\n backgroundColor: string | string[];\r\n borderColor: string | string[];\r\n borderWidth: number;\r\n label: string;\r\n data: number[] | [number, number][];\r\n }[];\r\n indexAxis: 'x' | 'y';\r\n labels: string[];\r\n showValues: string;\r\n showLegend: string;\r\n showXAxisValues: string | undefined;\r\n showYAxisValues: string | undefined;\r\n showTable: string | undefined;\r\n xAxisTitle: string;\r\n yAxisTitle: string;\r\n};\r\n\r\nexport type TApiaChartDefinition = {\r\n chartType?:\r\n | 'barH3D'\r\n | 'barV3D'\r\n | 'barH2D'\r\n | 'barV2D'\r\n | 'linear'\r\n | 'waterfall'\r\n | 'pie2D'\r\n | 'pie3D';\r\n aspectRatio?: number;\r\n axisXTitle?: string;\r\n axisYTitle?: string;\r\n hideSelector?: boolean;\r\n /**\r\n * The colors of the waterfall chart are defined by the bars with positive\r\n * values and the bars with negative values. So in order to mantain cohesion\r\n * in the color schema of the chart, this prop establishes the required colors\r\n * for the chart\r\n */\r\n waterfallColors?: {\r\n positive: string;\r\n negative: string;\r\n total: string;\r\n stepConnector: string;\r\n };\r\n /**\r\n * Name of the schema of colors shown in the chart. Pie charts must always include a schema\r\n */\r\n colorSchema?: string;\r\n /**\r\n * Main data to be parsed and shown in the chart.\r\n * Depending on the ```chartType``` and the amount of ```column``` objects,\r\n * the data can be considered differently.\r\n * \r\n * Examples:\r\n * ```\r\n * const columnsWithSingleColumnObject = columns: {\r\n * column: {\r\n * color: 'red',\r\n * coordinate: [\r\n * { xValue: '1', yValue: '1' },\r\n * ...,\r\n * ],\r\n * name: 'col1',\r\n * }\r\n * };\r\n * ```\r\n * ```\r\n * const columnsWithMultipleColumnObject = columns: {\r\n * column: [\r\n * {\r\n * color: 'red',\r\n * coordinate: [\r\n * { xValue: '1', yValue: '1' },\r\n * ...,\r\n * ],\r\n * name: 'col1',\r\n * },\r\n * ...,\r\n * ]\r\n * };\r\n *```\r\n *\r\n *\r\n * ***Horizontal and Vertical bars***:\r\n *\r\n * ```1 column object```:\r\n *\r\n * Each ```coordinate``` is considered an individual separate 'column bar',\r\n * and the ```colorSchema``` is separated between each ```coordinate``` made\r\n * 'column bar'.\r\n *\r\n *\r\n * ```Multiple column objects```:\r\n * \r\n * Each ```column``` object should have the same amount of coordinates and\r\n * the coordinates in the same index of the array should have the same\r\n * ```xValue```\r\n *\r\n * Each ```coordinate``` is considered an individual separate 'column bar',\r\n * but the coordinates of each column are re-accommodated based on their\r\n * ```xValue``` in order to make groups of columns with the same value on the\r\n * X axis.\r\n *\r\n * In this case there will be 6 groups of columns (based on the length of the\r\n * coordinate array), each group containing 3 'column bars' (based on the\r\n * amount of column objects) and the ```colorSchema``` will be distributed\r\n * inside each group, meaning each column having one single color.\r\n *\r\n *\r\n * ***Linear***:\r\n *\r\n * ```N column objects```:\r\n\r\n *\r\n * Each ```column``` object is considered a line path, the coordinates being\r\n * the nodes of said line.\r\n *\r\n * ***Pie charts***:\r\n *\r\n * ```N column objects```:\r\n *\r\n * Each ```column``` object is considered a unique Pie chart, the coordinates\r\n * being the slices of said pie.\r\n *\r\n * ***Waterfall***:\r\n *\r\n * ```N column objects```:\r\n *\r\n * Each ```column``` object is considered a unique Waterfall chart, the coordinates\r\n * being bars with the ```yValue``` determining if it goes up or down. Only this \r\n * type of chart admits negative values on its coordinates.\r\n *\r\n */\r\n dataSets: {\r\n data: TApiaChartColumn | TApiaChartColumn[];\r\n };\r\n margin?:\r\n | { top: number; left: number; bottom: number; right: number }\r\n | number;\r\n pnl_id?: string;\r\n showAxisXTitle?: boolean;\r\n showAxisYTitle?: boolean;\r\n showGrid?: boolean;\r\n showLegend?: boolean;\r\n showValues?: boolean;\r\n /**\r\n * Specific for waterfall charts to show the total sum of the values of the\r\n * chart at the end while each column shows its value. Otherwise the values\r\n * shown on each bar will represent the current sum of values\r\n */\r\n showTotal?: boolean;\r\n title: string;\r\n ratio: {\r\n height: number;\r\n width: number;\r\n maxWidth: number;\r\n };\r\n};\r\nclass AsideTabs extends TabsController {\r\n constructor(\r\n public id: string,\r\n public props: Omit<TabsControllerProps<TTab>, 'id' | 'initialState'>,\r\n protected onTabChange: (newTab: string) => unknown,\r\n ) {\r\n super(id, {\r\n ...props,\r\n initialState: {\r\n showAtLeastOneTab: true,\r\n isMultiple: true,\r\n },\r\n });\r\n }\r\n\r\n openTab(tabId: string, _closeOthers?: boolean): void {\r\n this.onTabChange(tabId);\r\n super.openTab(tabId, true);\r\n }\r\n}\r\nexport class QueriesFunctionalityController extends ListFunctionalityController {\r\n asideTabsController: AsideTabs = new AsideTabs(\r\n 'asideTabs',\r\n {\r\n orientation: 'vertical',\r\n },\r\n async (tabId) => {\r\n // this.emitter.emit('changeTab', tabId);\r\n if (tabId === 'Chart' && this.queryState.defaultChart) {\r\n this.loadMainChart();\r\n } else if (tabId === 'Pivot' && this.queryState.defaultPivot) {\r\n this.loadMainPivot();\r\n } else {\r\n this.queryState.currentChart = undefined;\r\n this.queryState.currentPivot = undefined;\r\n }\r\n },\r\n );\r\n public queryState: {\r\n currentChart?:\r\n | (TChartData & { chartId: string | number })\r\n | (TChartData[] & { chartId: string | number });\r\n\r\n currentPivot?: TPivotTableData & { pivotId: string };\r\n defaultChart?: string;\r\n defaultPivot?: string;\r\n isLoading: boolean;\r\n } = { isLoading: false };\r\n\r\n protected emitter = new EventEmitter<{\r\n changeTab: string;\r\n }>();\r\n\r\n constructor(\r\n protected env: TQueryEnvironment,\r\n public tabs?: TTab[],\r\n ) {\r\n super(env);\r\n\r\n if (tabs && tabs.length > 0) {\r\n tabs.forEach((tab) => this.asideTabsController.append(tab));\r\n }\r\n makeObservable(this, { queryState: observable });\r\n }\r\n\r\n public async loadChart(chartId: string) {\r\n const result = await ApiaApi.get<\r\n TApiaLoadForm & { chart: TApiaChartDefinition }\r\n >(this.env.context, {\r\n action: 'showChart',\r\n qryChtId: chartId,\r\n });\r\n\r\n return QueriesFunctionalityController.convertChartDefinitionToChartData(\r\n result!.data!.chart,\r\n );\r\n }\r\n\r\n public async loadMainChart() {\r\n this.queryState.currentPivot = undefined;\r\n const retrievedChart = await this.loadChart(\r\n this.queryState.defaultChart as string,\r\n );\r\n if (retrievedChart) {\r\n const actualRetrievedChart = {\r\n ...retrievedChart,\r\n chartId: this.queryState.defaultChart as string,\r\n };\r\n /**guardar grafica en store */\r\n this.queryState.currentChart = actualRetrievedChart;\r\n }\r\n }\r\n\r\n private static convertChartDefinitionToChartData = (\r\n chartDefinition: TApiaChartDefinition,\r\n ): TChartData => {\r\n const {\r\n title,\r\n chartType,\r\n axisXTitle,\r\n axisYTitle,\r\n showValues,\r\n showLegend,\r\n showAxisXTitle,\r\n showAxisYTitle,\r\n dataSets,\r\n colorSchema,\r\n showGrid,\r\n } = chartDefinition;\r\n let type: TChartData['type'];\r\n let indexAxis: TChartData['indexAxis'];\r\n switch (chartType) {\r\n case 'barH2D':\r\n case 'barV2D':\r\n case 'barH3D':\r\n case 'barV3D':\r\n type = 'bar';\r\n indexAxis =\r\n chartType === 'barH2D' || chartType === 'barH3D' ? 'y' : 'x';\r\n break;\r\n case 'linear':\r\n type = 'line';\r\n indexAxis = 'x';\r\n break;\r\n case 'waterfall':\r\n type = 'waterfall';\r\n indexAxis = 'x';\r\n break;\r\n case 'pie2D':\r\n case 'pie3D':\r\n type = 'pie';\r\n indexAxis = 'x';\r\n break;\r\n default:\r\n throw new Error(`Unsupported chart type: ${chartType}`);\r\n }\r\n const datasets: TChartData['datasets'] = dataSets\r\n ? arrayOrArray(dataSets.data).length === 1 &&\r\n chartType !== 'linear' &&\r\n chartType !== 'waterfall' &&\r\n chartType !== 'pie2D' &&\r\n chartType !== 'pie3D' &&\r\n arrayOrArray(dataSets.data)[0].sets\r\n ? arrayOrArray(arrayOrArray(dataSets.data)[0].sets).map((set) => {\r\n const backgroundColor = arrayOrArray(\r\n arrayOrArray(dataSets.data)[0].sets,\r\n ).map(\r\n (set) =>\r\n set.color ||\r\n arrayOrArray(dataSets.data)[0].color ||\r\n colorSchema ||\r\n '',\r\n );\r\n const borderColor = backgroundColor;\r\n const label = QueriesFunctionalityController.stripHtml(set.key);\r\n const data = [parseFloat(set.value)];\r\n const borderWidth = 1;\r\n return { backgroundColor, borderColor, label, data, borderWidth };\r\n })\r\n : arrayOrArray(dataSets.data).map((column) => {\r\n const backgroundColor = arrayOrArray(column.sets).map(\r\n (set) => set.color || column.color || colorSchema || '',\r\n );\r\n const borderColor = backgroundColor;\r\n const label = QueriesFunctionalityController.stripHtml(column.name);\r\n const data = arrayOrArray(column.sets).map((set) =>\r\n parseFloat(set.value),\r\n );\r\n const borderWidth = 1;\r\n return { backgroundColor, borderColor, label, data, borderWidth };\r\n })\r\n : [];\r\n\r\n const labels: string[] = dataSets\r\n ? arrayOrArray(dataSets.data).length === 1 &&\r\n chartType !== 'linear' &&\r\n chartType !== 'waterfall' &&\r\n chartType !== 'pie2D' &&\r\n chartType !== 'pie3D'\r\n ? [arrayOrArray(dataSets.data)[0].name]\r\n : arrayOrArray(arrayOrArray(dataSets.data)[0].sets).map((set) => {\r\n return QueriesFunctionalityController.stripHtml(set.key);\r\n })\r\n : [];\r\n\r\n return {\r\n title,\r\n type,\r\n datasets,\r\n indexAxis,\r\n labels,\r\n showValues: showValues ? 'true' : 'false',\r\n showLegend: showLegend ? 'true' : 'false',\r\n showXAxisValues: showAxisXTitle ? 'true' : undefined,\r\n showYAxisValues: showAxisYTitle ? 'true' : undefined,\r\n showTable: showGrid ? 'true' : 'false',\r\n xAxisTitle: axisXTitle || '',\r\n yAxisTitle: axisYTitle || '',\r\n };\r\n };\r\n\r\n public async loadPivot(props: {\r\n pivotId: string;\r\n offline: boolean;\r\n rowId?: string;\r\n }) {\r\n this.queryState.isLoading = true;\r\n if (props.offline && !props.rowId) {\r\n return false;\r\n }\r\n const result = await ApiaApi.get<\r\n TApiaLoadForm & { pivot: PivotTableConfig }\r\n >(this.env.context, {\r\n action: 'showPivot',\r\n qryPvtId: props.pivotId,\r\n react: true,\r\n preventAsXmlParameter: true,\r\n id: props.rowId,\r\n asXml: true,\r\n });\r\n\r\n const config = result!.data!.pivot;\r\n this.queryState.isLoading = false;\r\n return {\r\n load: {\r\n pivots: [\r\n {\r\n title: config.title,\r\n description: config.description,\r\n mainPivot: config.mainPivot,\r\n columnSort: config.columnSort as ColumnSort,\r\n rowSort: config.rowSort as ColumnSort,\r\n renderer: config.renderer as Renderer,\r\n aggregator: config.aggregator as Aggregator,\r\n columns: arrayOrArray(config.columns.column).map((col) => ({\r\n title: col.title,\r\n showAs: col.showAs,\r\n AggColumnOrder: col.AggColumnOrder,\r\n isAnAggColumn: col.isAnAggColumn,\r\n })),\r\n rows: arrayOrArray(config.rows.row).map((r) => ({\r\n cell: arrayOrArray(r.cell).map((cell) => {\r\n // if (typeof cell === 'object') {\r\n return QueriesFunctionalityController.stripHtml(\r\n typeof cell === 'object' ? cell.content : cell.toString(),\r\n );\r\n // } else {\r\n // return cell.toString();\r\n // }\r\n }),\r\n })),\r\n },\r\n ],\r\n },\r\n };\r\n }\r\n\r\n public async loadMainPivot() {\r\n this.queryState.currentChart = undefined;\r\n const retrievedPivot = await this.loadPivot({\r\n pivotId: this.queryState.defaultPivot as string,\r\n offline: false,\r\n });\r\n if (retrievedPivot) {\r\n const actualRetrievedPivot = {\r\n ...retrievedPivot,\r\n pivotId: this.queryState.defaultPivot as string,\r\n };\r\n this.queryState.currentPivot = actualRetrievedPivot;\r\n }\r\n }\r\n\r\n private static stripHtml(html: string): string {\r\n const div = document.createElement('div');\r\n div.innerHTML = html;\r\n return div.textContent || div.innerText || '';\r\n }\r\n\r\n public handleCloseChart() {\r\n this.queryState.currentChart = undefined;\r\n this.asideTabsController.openTab('Table');\r\n }\r\n\r\n public handleClosePivot() {\r\n this.queryState.currentPivot = undefined;\r\n this.asideTabsController.openTab('Table');\r\n }\r\n\r\n public openAndReadFile(pivot: Pivot, accept?: string) {\r\n new Promise<string | ArrayBuffer | null>((resolve) => {\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n input.style.display = 'none';\r\n input.accept = accept || '*';\r\n\r\n document.body.append(input);\r\n\r\n input.click();\r\n input.addEventListener('change', (ev) => {\r\n const fileInput = ev.target as HTMLInputElement;\r\n const file = fileInput?.files?.[0];\r\n\r\n if (file) {\r\n // Validate file extension if 'accept' is set to 'text/csv'\r\n const isValidFile = file.name.endsWith('.csv');\r\n if (!isValidFile) {\r\n ApiaUtil.instance.notifications.notify({\r\n message: window.WRONG_FILE_TYPE,\r\n });\r\n fileInput.value = ''; // Clear the input\r\n resolve(null);\r\n return;\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n fileInput.value = '';\r\n const content = event.target?.result;\r\n if (content) {\r\n resolve(content);\r\n }\r\n };\r\n reader.readAsText(file);\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n }).then((value) => {\r\n if (typeof value === 'string') {\r\n const csvString = ApiaUtil.instance.parsers.fromCsv(value);\r\n\r\n const actualRetrievedPivot: TPivotTableData & {\r\n pivotId: string;\r\n } = {\r\n pivotId: this.queryState.currentPivot?.pivotId ?? '',\r\n load: {\r\n pivots: [\r\n {\r\n ...pivot,\r\n columns: csvString[0].map((e) => {\r\n return {\r\n showAs: 'none',\r\n title: e,\r\n isAnAggColumn: false,\r\n };\r\n }),\r\n rows: csvString\r\n .filter((_, i) => i !== 0)\r\n .map((e) => ({ cell: e })),\r\n },\r\n ],\r\n },\r\n };\r\n\r\n this.queryState.currentPivot = actualRetrievedPivot;\r\n }\r\n });\r\n }\r\n\r\n public convertColumnSortToTQuerySort(sort: ColumnSort): TQuerySort {\r\n switch (sort) {\r\n case 'label_asc':\r\n return 'key_a_to_z';\r\n case 'value_asc':\r\n return 'value_a_to_z';\r\n case 'value_desc':\r\n return 'value_z_to_a';\r\n }\r\n }\r\n\r\n public parsePivotProps(pivot: Pivot) {\r\n const parsedData: string[][] = [\r\n pivot.columns.map((col) => col.title),\r\n ...pivot.rows.map((row) => row.cell),\r\n ];\r\n\r\n return {\r\n data: parsedData,\r\n rows: pivot.columns\r\n .filter((col) => col.showAs === 'row')\r\n .map((col) => col.title),\r\n cols: pivot.columns\r\n .filter((col) => col.showAs === 'column')\r\n .map((col) => col.title),\r\n aggregatorName: pivot.aggregator,\r\n rendererName: pivot.renderer,\r\n colOrder: this.convertColumnSortToTQuerySort(pivot.columnSort),\r\n rowOrder: this.convertColumnSortToTQuerySort(pivot.rowSort),\r\n vals: pivot.columns\r\n .filter((col) => col.isAnAggColumn && col.AggColumnOrder)\r\n .sort((a, b) => {\r\n // Treat undefined as Infinity for ascending sort\r\n const orderA = a.AggColumnOrder ?? Infinity;\r\n const orderB = b.AggColumnOrder ?? Infinity;\r\n return orderA - orderB;\r\n })\r\n .map((col) => col.title),\r\n } as Omit<PivotTableUIProps, 'onChange'>;\r\n }\r\n\r\n public async pivotRefresh() {\r\n const retrievedPivot = await this.loadPivot({\r\n pivotId: this.queryState.currentPivot?.pivotId as string,\r\n offline: false,\r\n rowId: undefined,\r\n });\r\n if (retrievedPivot) {\r\n const actualRetrievedPivot = {\r\n ...retrievedPivot,\r\n pivotId: this.queryState.currentPivot?.pivotId as string,\r\n };\r\n this.queryState.currentPivot = actualRetrievedPivot;\r\n }\r\n }\r\n}\r\n"],"names":["set"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ListFunctionalityController } from '../ListFunctionalityController.js';
3
+ import { ListController } from '../ListController.js';
4
+
5
+ declare const Pagination: (({ controller, fncController, variant, }: {
6
+ controller: ListController;
7
+ fncController?: ListFunctionalityController;
8
+ variant?: "primary" | "secondary" | "datagrid";
9
+ }) => react_jsx_runtime.JSX.Element) & {
10
+ displayName: string;
11
+ };
12
+
13
+ export { Pagination };
14
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { observer } from 'mobx-react-lite';
3
+ import { Pagination as Pagination$1 } from '@apia/components';
4
+ import { getLabel } from '@apia/util';
5
+
6
+ const labels = {
7
+ deleteFilters: getLabel("btnClearFilter").text,
8
+ firstPage: getLabel("btnNavFirst").text,
9
+ information: getLabel("lblInfo").text,
10
+ lastPage: getLabel("btnNavLast").text,
11
+ nextPage: getLabel("btnNavNext").text,
12
+ maximize: getLabel("lblMaximizeWindow").text,
13
+ minimize: getLabel("lblMinimizeWindow").text,
14
+ moreData: getLabel("lblMoreData").text,
15
+ page: getLabel("lblPage").text,
16
+ pageInputInstructions: getLabel("btnNavFirst").text,
17
+ previousPage: getLabel("btnNavPrev").text,
18
+ refresh: getLabel("btnAct").text,
19
+ totalRecords: getLabel("lblTotReg").text,
20
+ totalRecordsReached: getLabel("msgTotRegReached").text,
21
+ registersPerPage: getLabel("lblQryParamPagNum").text
22
+ };
23
+ const Pagination = observer(
24
+ ({
25
+ controller,
26
+ fncController,
27
+ variant
28
+ }) => {
29
+ return /* @__PURE__ */ jsx(
30
+ Pagination$1,
31
+ {
32
+ onRegistersPerPageChange: controller.configuration?.canSetRegistersPerPage ? controller.setRegistersPerPage.bind(controller) : void 0,
33
+ registersPerPage: controller.registersPerPage,
34
+ variant,
35
+ currentPage: controller.state.navigation.currentPage,
36
+ onPageChange: (page) => {
37
+ controller.page(page);
38
+ },
39
+ onRefresh: () => {
40
+ controller.refresh();
41
+ },
42
+ pageCount: controller.state.navigation.showPagination ? controller.state.navigation.pagesCount <= 0 ? 1 : controller.state.navigation.pagesCount : 0,
43
+ recordsCount: controller.state.navigation.showRegisterAmount ? controller.state.navigation.registers : -1,
44
+ appliedFilters: controller.table.getFilters().filter((c) => c.hasValue()).length,
45
+ reachedMax: controller.state.navigation.reachedMax,
46
+ hasMore: controller.state.navigation.hasMore,
47
+ areAllFiltersApplied: controller.state.areAllFiltersApplied,
48
+ onDeleteFilters: () => controller.clearFilters(),
49
+ labels,
50
+ isMaximized: fncController?.state.isMaximized,
51
+ onMaximize: fncController ? () => {
52
+ fncController.state.isMaximized = !fncController?.state.isMaximized;
53
+ if (fncController?.state.isMaximized) {
54
+ document.querySelector(".twoColumnsList")?.classList.add("maximized");
55
+ } else {
56
+ document.querySelector(".twoColumnsList")?.classList.remove("maximized");
57
+ }
58
+ } : void 0
59
+ }
60
+ );
61
+ }
62
+ );
63
+
64
+ export { Pagination };
65
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","sources":["../../src/components/Pagination.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite';\r\nimport { Pagination as PG } from '@apia/components';\r\nimport { getLabel } from '@apia/util';\r\nimport { ListFunctionalityController } from '../ListFunctionalityController';\r\nimport { ListController } from '../ListController';\r\n\r\nconst labels = {\r\n deleteFilters: getLabel('btnClearFilter').text,\r\n firstPage: getLabel('btnNavFirst').text,\r\n information: getLabel('lblInfo').text,\r\n lastPage: getLabel('btnNavLast').text,\r\n nextPage: getLabel('btnNavNext').text,\r\n maximize: getLabel('lblMaximizeWindow').text,\r\n minimize: getLabel('lblMinimizeWindow').text,\r\n moreData: getLabel('lblMoreData').text,\r\n page: getLabel('lblPage').text,\r\n pageInputInstructions: getLabel('btnNavFirst').text,\r\n previousPage: getLabel('btnNavPrev').text,\r\n refresh: getLabel('btnAct').text,\r\n totalRecords: getLabel('lblTotReg').text,\r\n totalRecordsReached: getLabel('msgTotRegReached').text,\r\n registersPerPage: getLabel('lblQryParamPagNum').text,\r\n};\r\n\r\nexport const Pagination = observer(\r\n ({\r\n controller,\r\n fncController,\r\n variant,\r\n }: {\r\n controller: ListController;\r\n fncController?: ListFunctionalityController;\r\n variant?: 'primary' | 'secondary' | 'datagrid';\r\n }) => {\r\n return (\r\n <PG\r\n onRegistersPerPageChange={\r\n controller.configuration?.canSetRegistersPerPage\r\n ? controller.setRegistersPerPage.bind(controller)\r\n : undefined\r\n }\r\n registersPerPage={controller.registersPerPage}\r\n variant={variant}\r\n currentPage={controller.state.navigation.currentPage}\r\n onPageChange={(page) => {\r\n controller.page(page);\r\n }}\r\n onRefresh={() => {\r\n controller.refresh();\r\n }}\r\n pageCount={\r\n controller.state.navigation.showPagination\r\n ? controller.state.navigation.pagesCount <= 0\r\n ? 1\r\n : controller.state.navigation.pagesCount\r\n : 0\r\n }\r\n recordsCount={\r\n controller.state.navigation.showRegisterAmount\r\n ? controller.state.navigation.registers\r\n : -1\r\n }\r\n appliedFilters={\r\n controller.table.getFilters().filter((c) => c.hasValue()).length\r\n }\r\n reachedMax={controller.state.navigation.reachedMax}\r\n hasMore={controller.state.navigation.hasMore}\r\n areAllFiltersApplied={controller.state.areAllFiltersApplied}\r\n onDeleteFilters={() => controller.clearFilters()}\r\n labels={labels}\r\n isMaximized={fncController?.state.isMaximized}\r\n onMaximize={\r\n fncController\r\n ? () => {\r\n fncController!.state.isMaximized =\r\n !fncController?.state.isMaximized;\r\n if (fncController?.state.isMaximized) {\r\n document\r\n .querySelector('.twoColumnsList')\r\n ?.classList.add('maximized');\r\n } else {\r\n document\r\n .querySelector('.twoColumnsList')\r\n ?.classList.remove('maximized');\r\n }\r\n }\r\n : undefined\r\n }\r\n />\r\n );\r\n },\r\n);\r\n"],"names":["PG"],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { observer } from 'mobx-react-lite';
3
+ import { Box, Label, Radio } from '@apia/theme';
4
+ import { getLabel } from '@apia/util';
5
+ import { ExportController } from './controllers/ExportController.js';
6
+
7
+ const ExportFormat = () => {
8
+ return /* @__PURE__ */ jsxs(Box, { children: [
9
+ /* @__PURE__ */ jsxs(Label, { children: [
10
+ /* @__PURE__ */ jsx(
11
+ Radio,
12
+ {
13
+ name: "format",
14
+ value: "pdf",
15
+ onChange: (ev) => {
16
+ ExportController.getInstance().setFormat(
17
+ ev.target.value
18
+ );
19
+ }
20
+ }
21
+ ),
22
+ getLabel("lblPdf").text
23
+ ] }),
24
+ /* @__PURE__ */ jsxs(Label, { children: [
25
+ /* @__PURE__ */ jsx(
26
+ Radio,
27
+ {
28
+ name: "format",
29
+ value: "excel",
30
+ onChange: (ev) => {
31
+ ExportController.getInstance().setFormat(
32
+ ev.target.value
33
+ );
34
+ }
35
+ }
36
+ ),
37
+ getLabel("lblExcel").text
38
+ ] }),
39
+ /* @__PURE__ */ jsxs(Label, { children: [
40
+ /* @__PURE__ */ jsx(
41
+ Radio,
42
+ {
43
+ name: "format",
44
+ value: "excelx",
45
+ onChange: (ev) => {
46
+ ExportController.getInstance().setFormat(
47
+ ev.target.value
48
+ );
49
+ }
50
+ }
51
+ ),
52
+ getLabel("lblExcelX").text
53
+ ] }),
54
+ /* @__PURE__ */ jsxs(Label, { children: [
55
+ /* @__PURE__ */ jsx(
56
+ Radio,
57
+ {
58
+ name: "format",
59
+ value: "cvs",
60
+ onChange: (ev) => {
61
+ ExportController.getInstance().setFormat(
62
+ ev.target.value
63
+ );
64
+ }
65
+ }
66
+ ),
67
+ getLabel("lblCsv").text
68
+ ] }),
69
+ /* @__PURE__ */ jsxs(Label, { children: [
70
+ /* @__PURE__ */ jsx(
71
+ Radio,
72
+ {
73
+ name: "format",
74
+ value: "txt",
75
+ defaultChecked: true,
76
+ onChange: (ev) => {
77
+ ExportController.getInstance().setFormat(
78
+ ev.target.value
79
+ );
80
+ }
81
+ }
82
+ ),
83
+ getLabel("lblTxt").text
84
+ ] }),
85
+ /* @__PURE__ */ jsxs(Label, { children: [
86
+ /* @__PURE__ */ jsx(
87
+ Radio,
88
+ {
89
+ name: "format",
90
+ value: "html",
91
+ onChange: (ev) => {
92
+ ExportController.getInstance().setFormat(
93
+ ev.target.value
94
+ );
95
+ }
96
+ }
97
+ ),
98
+ getLabel("lblHtml").text
99
+ ] })
100
+ ] });
101
+ };
102
+ const ExportAmount = () => {
103
+ return /* @__PURE__ */ jsxs(Box, { children: [
104
+ /* @__PURE__ */ jsxs(Label, { children: [
105
+ /* @__PURE__ */ jsx(
106
+ Radio,
107
+ {
108
+ name: "amount",
109
+ value: "all",
110
+ onChange: (ev) => {
111
+ ExportController.getInstance().setAmount(
112
+ ev.target.value
113
+ );
114
+ }
115
+ }
116
+ ),
117
+ getLabel("lblExpAll").text
118
+ ] }),
119
+ /* @__PURE__ */ jsxs(Label, { children: [
120
+ /* @__PURE__ */ jsx(
121
+ Radio,
122
+ {
123
+ name: "amount",
124
+ value: "current",
125
+ defaultChecked: true,
126
+ onChange: (ev) => {
127
+ ExportController.getInstance().setAmount(
128
+ ev.target.value
129
+ );
130
+ }
131
+ }
132
+ ),
133
+ getLabel("lblExpAct").text
134
+ ] })
135
+ ] });
136
+ };
137
+ const ExportModal = observer(() => {
138
+ return /* @__PURE__ */ jsxs(Box, { children: [
139
+ /* @__PURE__ */ jsx(ExportFormat, {}),
140
+ /* @__PURE__ */ jsx("br", {}),
141
+ /* @__PURE__ */ jsx(ExportAmount, {})
142
+ ] });
143
+ });
144
+
145
+ export { ExportModal };
146
+ //# sourceMappingURL=ExportModal.js.map