@apia/query 5.0.0 → 5.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ListController.d.ts +130 -0
- package/dist/ListController.d.ts.map +1 -0
- package/dist/ListController.js +453 -0
- package/dist/ListController.js.map +1 -0
- package/dist/ListFunctionalityController.d.ts +13 -0
- package/dist/ListFunctionalityController.d.ts.map +1 -0
- package/dist/ListFunctionalityController.js +54 -0
- package/dist/ListFunctionalityController.js.map +1 -0
- package/dist/ModalListController.d.ts +14 -0
- package/dist/ModalListController.d.ts.map +1 -0
- package/dist/ModalListController.js +29 -0
- package/dist/ModalListController.js.map +1 -0
- package/dist/QueriesFunctionalityController.d.ts +262 -0
- package/dist/QueriesFunctionalityController.d.ts.map +1 -0
- package/dist/QueriesFunctionalityController.js +340 -0
- package/dist/QueriesFunctionalityController.js.map +1 -0
- package/dist/components/Pagination.d.ts +14 -0
- package/dist/components/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination.js +65 -0
- package/dist/components/Pagination.js.map +1 -0
- package/dist/components/modals/ExportModal.js +146 -0
- package/dist/components/modals/ExportModal.js.map +1 -0
- package/dist/components/modals/FilterTypes.js +53 -0
- package/dist/components/modals/FilterTypes.js.map +1 -0
- package/dist/components/modals/controllers/ExportController.js +38 -0
- package/dist/components/modals/controllers/ExportController.js.map +1 -0
- package/dist/index.d.ts +8 -62
- package/dist/index.js +7 -240
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/getDateFromString.d.ts +4 -0
- package/dist/utils/getDateFromString.d.ts.map +1 -0
- package/dist/utils/getDateFromString.js +8 -0
- package/dist/utils/getDateFromString.js.map +1 -0
- package/dist/utils/getStringFromDate.d.ts +4 -0
- package/dist/utils/getStringFromDate.d.ts.map +1 -0
- package/dist/utils/getStringFromDate.js +8 -0
- package/dist/utils/getStringFromDate.js.map +1 -0
- package/package.json +10 -8
|
@@ -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
|