@apia/query 5.0.0 → 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.
- 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,130 @@
|
|
|
1
|
+
import * as _apia_util from '@apia/util';
|
|
2
|
+
import { TasksQueue, EventEmitter, TBasicAction, TLoadStructure } from '@apia/util';
|
|
3
|
+
import { TQueryEnvironment } from './types.js';
|
|
4
|
+
import { ApiaApi } from '@apia/api2';
|
|
5
|
+
import { TableController, Cell, FilterRenderer } from '@apia/table2-controller';
|
|
6
|
+
import { TApiaChartDefinition, PivotTableConfig } from './QueriesFunctionalityController.js';
|
|
7
|
+
import { FC } from 'react';
|
|
8
|
+
|
|
9
|
+
type ListState = {
|
|
10
|
+
areAllFiltersApplied: boolean;
|
|
11
|
+
attributes?: Record<string, unknown>;
|
|
12
|
+
navigation: {
|
|
13
|
+
pagesCount: number;
|
|
14
|
+
registers: number;
|
|
15
|
+
currentPage: number;
|
|
16
|
+
showPagination?: boolean;
|
|
17
|
+
showRegisterAmount?: boolean;
|
|
18
|
+
avoidRefreshOnClearFilters?: boolean;
|
|
19
|
+
reachedMax?: boolean;
|
|
20
|
+
hasMore?: boolean;
|
|
21
|
+
};
|
|
22
|
+
running: boolean;
|
|
23
|
+
title?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
customLabel?: string;
|
|
26
|
+
avoidExecuteFirstRefresh?: boolean;
|
|
27
|
+
hasBuiltFromGenericTable?: boolean;
|
|
28
|
+
};
|
|
29
|
+
type ListFunctionalityState = {
|
|
30
|
+
fncId: number;
|
|
31
|
+
isFavorite: boolean;
|
|
32
|
+
isMaximized: boolean;
|
|
33
|
+
};
|
|
34
|
+
type TFuntionalityData = {
|
|
35
|
+
chart?: {
|
|
36
|
+
charts: {
|
|
37
|
+
chart: TApiaChartDefinition;
|
|
38
|
+
} | {
|
|
39
|
+
chart: TApiaChartDefinition;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
42
|
+
chartButton?: {
|
|
43
|
+
chartsbuttons: {
|
|
44
|
+
chartbutton: {
|
|
45
|
+
qryChtId: string;
|
|
46
|
+
title: string;
|
|
47
|
+
};
|
|
48
|
+
} | {
|
|
49
|
+
chartbutton: {
|
|
50
|
+
qryChtId: string;
|
|
51
|
+
title: string;
|
|
52
|
+
};
|
|
53
|
+
}[];
|
|
54
|
+
};
|
|
55
|
+
pivot?: {
|
|
56
|
+
pivots: {
|
|
57
|
+
pivot: PivotTableConfig;
|
|
58
|
+
} | {
|
|
59
|
+
pivot: PivotTableConfig;
|
|
60
|
+
}[];
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
type TListRefreshResponse = {
|
|
64
|
+
list: ListState & TLoadStructure;
|
|
65
|
+
} & TFuntionalityData;
|
|
66
|
+
type TListControllerConfiguration = {
|
|
67
|
+
refreshOnDeleteFilters?: boolean;
|
|
68
|
+
canSetRegistersPerPage?: boolean;
|
|
69
|
+
refreshOnStartup?: boolean;
|
|
70
|
+
refreshAction?: string;
|
|
71
|
+
};
|
|
72
|
+
type Arr<T> = T extends Array<any> ? T : Array<T>;
|
|
73
|
+
type TQueryFilter = Arr<TLoadStructure['filters']>[0] & {
|
|
74
|
+
Renderer?: FilterRenderer;
|
|
75
|
+
};
|
|
76
|
+
type TQueryColumn = Arr<TLoadStructure['columns']>[0] & {
|
|
77
|
+
Renderer?: FC<{
|
|
78
|
+
cell: Cell;
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
declare class ListController {
|
|
82
|
+
env: TQueryEnvironment;
|
|
83
|
+
configuration?: TListControllerConfiguration | undefined;
|
|
84
|
+
queue: TasksQueue;
|
|
85
|
+
readonly table: TableController;
|
|
86
|
+
readonly state: ListState;
|
|
87
|
+
registersPerPage: number;
|
|
88
|
+
protected emitter: EventEmitter<{
|
|
89
|
+
refreshFuntionality: TFuntionalityData;
|
|
90
|
+
deleteFilters: any;
|
|
91
|
+
}>;
|
|
92
|
+
constructor(env: TQueryEnvironment, configuration?: TListControllerConfiguration | undefined);
|
|
93
|
+
protected handleClickAction(action: TBasicAction, ev: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>): void;
|
|
94
|
+
protected handleDblClickAction(action: TBasicAction, ev: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>): void;
|
|
95
|
+
protected handleAttributes(attributes: Pick<ListState, 'attributes'>): void;
|
|
96
|
+
protected refreshTimeout: number;
|
|
97
|
+
protected throttleRefresh(): void;
|
|
98
|
+
protected getPageMethodParameters(defaultParams: Record<string, unknown>): Record<string, unknown>;
|
|
99
|
+
protected getRefreshMethodParameters(defaultParams: Record<string, unknown>): Record<string, unknown>;
|
|
100
|
+
protected getFilterTypesMethodParameters(defaultParams: Record<string, unknown>): Record<string, unknown>;
|
|
101
|
+
clearFilters(): Promise<void>;
|
|
102
|
+
page(pageNumber: number): Promise<void>;
|
|
103
|
+
validateFilters(): boolean;
|
|
104
|
+
protected buildRefreshPostData(): Parameters<(typeof ApiaApi)['post']>[2];
|
|
105
|
+
protected buildExportConfirmData(): Record<string, unknown>;
|
|
106
|
+
protected filterChange(parameters?: Partial<{
|
|
107
|
+
fireFilterName?: string;
|
|
108
|
+
subAction?: string;
|
|
109
|
+
}>): Promise<false | undefined>;
|
|
110
|
+
refresh(parameters?: Partial<{
|
|
111
|
+
action: string;
|
|
112
|
+
clearBefore?: boolean;
|
|
113
|
+
}>): Promise<false | undefined>;
|
|
114
|
+
protected refreshFuntionality(data: Omit<TListRefreshResponse, 'list'>): void;
|
|
115
|
+
on: <K extends "refreshFuntionality" | "deleteFilters">(event: K, cb: _apia_util.Callback<{
|
|
116
|
+
refreshFuntionality: TFuntionalityData;
|
|
117
|
+
deleteFilters: any;
|
|
118
|
+
}, K>) => _apia_util.UnSubscriber;
|
|
119
|
+
print(): Promise<false | undefined>;
|
|
120
|
+
filterTypes(): Promise<false | undefined>;
|
|
121
|
+
export(): Promise<false | undefined>;
|
|
122
|
+
kill(): void;
|
|
123
|
+
protected parseResultBeforeBuild(result: ListState & TLoadStructure): ListState & TLoadStructure;
|
|
124
|
+
protected processRefreshResult(result: TListRefreshResponse): void;
|
|
125
|
+
processStructureResult(result: TLoadStructure): void;
|
|
126
|
+
setRegistersPerPage(_n: number): void;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export { ListController, type ListFunctionalityState, type ListState, type TFuntionalityData, type TListControllerConfiguration, type TListRefreshResponse, type TQueryColumn, type TQueryFilter };
|
|
130
|
+
//# sourceMappingURL=ListController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListController.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { ApiaApi } from '@apia/api2';
|
|
3
|
+
import { TasksQueue, EventEmitter, handleAction, getLabel, downloadUrl, arrayOrArray } from '@apia/util';
|
|
4
|
+
import { runInAction, makeObservable, observable } from 'mobx';
|
|
5
|
+
import { notify } from '@apia/notifications';
|
|
6
|
+
import { TableController, DateFilter } from '@apia/table2-controller';
|
|
7
|
+
import { getDateFromString } from './utils/getStringFromDate.js';
|
|
8
|
+
import { getStringFromDate } from './utils/getDateFromString.js';
|
|
9
|
+
import { ApiaUtil } from '@apia/components';
|
|
10
|
+
import { FilterTypes } from './components/modals/FilterTypes.js';
|
|
11
|
+
import { ExportModal } from './components/modals/ExportModal.js';
|
|
12
|
+
import { ExportController } from './components/modals/controllers/ExportController.js';
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
+
var __publicField = (obj, key, value) => {
|
|
17
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
class ListController {
|
|
21
|
+
constructor(env, configuration) {
|
|
22
|
+
this.env = env;
|
|
23
|
+
this.configuration = configuration;
|
|
24
|
+
__publicField(this, "queue", new TasksQueue());
|
|
25
|
+
__publicField(this, "table");
|
|
26
|
+
__publicField(this, "state", {
|
|
27
|
+
areAllFiltersApplied: true,
|
|
28
|
+
navigation: {
|
|
29
|
+
currentPage: 0,
|
|
30
|
+
pagesCount: 0,
|
|
31
|
+
registers: 0,
|
|
32
|
+
showPagination: true,
|
|
33
|
+
showRegisterAmount: true,
|
|
34
|
+
avoidRefreshOnClearFilters: false,
|
|
35
|
+
reachedMax: false,
|
|
36
|
+
hasMore: false
|
|
37
|
+
},
|
|
38
|
+
running: true,
|
|
39
|
+
title: "",
|
|
40
|
+
description: "",
|
|
41
|
+
customLabel: window.MSG_FIRST_TIME,
|
|
42
|
+
avoidExecuteFirstRefresh: false,
|
|
43
|
+
hasBuiltFromGenericTable: false
|
|
44
|
+
});
|
|
45
|
+
__publicField(this, "registersPerPage", 30);
|
|
46
|
+
__publicField(this, "emitter", new EventEmitter());
|
|
47
|
+
__publicField(this, "refreshTimeout", -1);
|
|
48
|
+
__publicField(this, "on", this.emitter.on.bind(this.emitter));
|
|
49
|
+
this.table = new TableController({
|
|
50
|
+
labels: env.context.labels,
|
|
51
|
+
getDateFromString: env.getDateFromString,
|
|
52
|
+
getStringFromDate: env.getStringFromDate
|
|
53
|
+
});
|
|
54
|
+
this.table.setState("customLabel", window.MSG_FIRST_TIME);
|
|
55
|
+
this.table.head.getFiltersRow()?.setState("isHidden", true);
|
|
56
|
+
if (configuration?.refreshOnStartup !== false) {
|
|
57
|
+
this.refresh();
|
|
58
|
+
}
|
|
59
|
+
this.table.on("filterChange", async (filter) => {
|
|
60
|
+
runInAction(() => {
|
|
61
|
+
this.state.areAllFiltersApplied = false;
|
|
62
|
+
});
|
|
63
|
+
await this.filterChange({ fireFilterName: filter.getState("name") });
|
|
64
|
+
if (filter.getState("runAutomatically")) {
|
|
65
|
+
await this.throttleRefresh();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
this.table.on("filterPressEnter", (filter) => {
|
|
69
|
+
if (filter.getState("type") !== "DATE") {
|
|
70
|
+
this.refresh();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
this.table.on("filterBlur", (filter) => {
|
|
74
|
+
if (filter instanceof DateFilter) {
|
|
75
|
+
this.refresh();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
this.table.on("columnSort", () => {
|
|
79
|
+
this.refresh();
|
|
80
|
+
});
|
|
81
|
+
this.table.on("rowDblClick", ({ action, ev }) => {
|
|
82
|
+
this.handleDblClickAction(action, ev);
|
|
83
|
+
});
|
|
84
|
+
this.table.on("rowClick", ({ action, ev }) => {
|
|
85
|
+
this.handleClickAction(action, ev);
|
|
86
|
+
});
|
|
87
|
+
makeObservable(this, { state: observable, table: observable });
|
|
88
|
+
}
|
|
89
|
+
handleClickAction(action, ev) {
|
|
90
|
+
handleAction({}, ev, action);
|
|
91
|
+
}
|
|
92
|
+
handleDblClickAction(action, ev) {
|
|
93
|
+
handleAction({}, ev, action);
|
|
94
|
+
}
|
|
95
|
+
handleAttributes(attributes) {
|
|
96
|
+
runInAction(() => {
|
|
97
|
+
this.state.attributes = attributes;
|
|
98
|
+
});
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
throttleRefresh() {
|
|
102
|
+
clearTimeout(this.refreshTimeout);
|
|
103
|
+
this.refreshTimeout = setTimeout(() => {
|
|
104
|
+
this.refresh();
|
|
105
|
+
}, 300);
|
|
106
|
+
}
|
|
107
|
+
getPageMethodParameters(defaultParams) {
|
|
108
|
+
return defaultParams;
|
|
109
|
+
}
|
|
110
|
+
getRefreshMethodParameters(defaultParams) {
|
|
111
|
+
return defaultParams;
|
|
112
|
+
}
|
|
113
|
+
getFilterTypesMethodParameters(defaultParams) {
|
|
114
|
+
return defaultParams;
|
|
115
|
+
}
|
|
116
|
+
async clearFilters() {
|
|
117
|
+
this.table.getFilters().forEach((c) => c.clear(false));
|
|
118
|
+
runInAction(() => {
|
|
119
|
+
this.state.areAllFiltersApplied = false;
|
|
120
|
+
});
|
|
121
|
+
this.emitter.emit("deleteFilters", null);
|
|
122
|
+
await this.filterChange({ subAction: "clearFilters" });
|
|
123
|
+
if (this.configuration?.refreshOnDeleteFilters) {
|
|
124
|
+
this.throttleRefresh();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async page(pageNumber) {
|
|
128
|
+
this.queue.clear();
|
|
129
|
+
await this.queue.run(async () => {
|
|
130
|
+
if (this.validateFilters()) {
|
|
131
|
+
const result = await ApiaApi.post(
|
|
132
|
+
{ ...this.env.context },
|
|
133
|
+
this.getPageMethodParameters({
|
|
134
|
+
action: this.configuration?.refreshAction || "refresh",
|
|
135
|
+
page: pageNumber
|
|
136
|
+
}),
|
|
137
|
+
this.buildRefreshPostData()
|
|
138
|
+
);
|
|
139
|
+
if (result?.data?.list) {
|
|
140
|
+
this.processRefreshResult(result.data);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
validateFilters() {
|
|
146
|
+
const invalidFilters = this.table.getFilters().filter((c) => !c.validate());
|
|
147
|
+
if (invalidFilters.length) {
|
|
148
|
+
this.table.setState("customLabel", "");
|
|
149
|
+
notify({
|
|
150
|
+
title: getLabel("titWarning").text,
|
|
151
|
+
message: getLabel("msgQryFilterRequiredList", {
|
|
152
|
+
text: {
|
|
153
|
+
TOK1: invalidFilters.map((c) => c.getState("title")).join(", ")
|
|
154
|
+
}
|
|
155
|
+
}).text
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return invalidFilters.length === 0;
|
|
159
|
+
}
|
|
160
|
+
buildRefreshPostData() {
|
|
161
|
+
return {
|
|
162
|
+
postData: {
|
|
163
|
+
...this.table.getFilters().reduce(
|
|
164
|
+
(acc, cur) => ({
|
|
165
|
+
...acc,
|
|
166
|
+
[`filter_${cur.getState("name")}`]: cur.getValueForSubmit()
|
|
167
|
+
}),
|
|
168
|
+
{}
|
|
169
|
+
),
|
|
170
|
+
...this.table.getColumns().reduce(
|
|
171
|
+
(acc, cur) => ({
|
|
172
|
+
...acc,
|
|
173
|
+
[`sort_${cur.getState("colName")}`]: cur.getState("sortState")
|
|
174
|
+
}),
|
|
175
|
+
{}
|
|
176
|
+
),
|
|
177
|
+
amount: this.table.getState("registersToShow")
|
|
178
|
+
},
|
|
179
|
+
postDataTreatement: "stringify",
|
|
180
|
+
postDataStringifyOptions: { arrayFormat: "repeat" }
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
buildExportConfirmData() {
|
|
184
|
+
return {
|
|
185
|
+
format: ExportController.getInstance().getFormat(),
|
|
186
|
+
amount: ExportController.getInstance().getAmount()
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
async filterChange(parameters) {
|
|
190
|
+
if (!this.state.running) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
if (parameters?.fireFilterName && !this.table.getFilter(parameters.fireFilterName)?.getState("hasEvents")) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (!parameters?.fireFilterName && !this.table.getFilters().find((c) => c.getState("hasEvents"))) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
this.queue.clear();
|
|
200
|
+
await this.queue.run(async () => {
|
|
201
|
+
const result = await ApiaApi.post(
|
|
202
|
+
{ ...this.env.context },
|
|
203
|
+
this.getRefreshMethodParameters({
|
|
204
|
+
action: "newLoadStructure",
|
|
205
|
+
//this.configuration?.refreshAction || 'refresh',
|
|
206
|
+
subAction: parameters?.subAction ?? null,
|
|
207
|
+
fireFilterName: parameters?.fireFilterName ?? null
|
|
208
|
+
}),
|
|
209
|
+
this.buildRefreshPostData()
|
|
210
|
+
);
|
|
211
|
+
if (result?.data?.list) {
|
|
212
|
+
this.processStructureResult(result.data.list);
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
async refresh(parameters) {
|
|
217
|
+
if (!this.state.running) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
if (parameters?.clearBefore) {
|
|
221
|
+
this.table.getFilters().forEach((c) => c.clear(false));
|
|
222
|
+
this.state.areAllFiltersApplied = false;
|
|
223
|
+
}
|
|
224
|
+
this.queue.clear();
|
|
225
|
+
await this.queue.run(async () => {
|
|
226
|
+
if (this.validateFilters()) {
|
|
227
|
+
runInAction(() => {
|
|
228
|
+
this.state.areAllFiltersApplied = true;
|
|
229
|
+
});
|
|
230
|
+
const result = await ApiaApi.post(
|
|
231
|
+
{ ...this.env.context },
|
|
232
|
+
this.getRefreshMethodParameters({
|
|
233
|
+
action: parameters?.action ?? (this.configuration?.refreshAction || "refresh")
|
|
234
|
+
}),
|
|
235
|
+
this.buildRefreshPostData()
|
|
236
|
+
);
|
|
237
|
+
if (result?.data?.list) {
|
|
238
|
+
this.processRefreshResult(result.data);
|
|
239
|
+
}
|
|
240
|
+
if (result?.data?.list.attributes) {
|
|
241
|
+
this.handleAttributes(result?.data?.list.attributes);
|
|
242
|
+
}
|
|
243
|
+
if (result?.data) {
|
|
244
|
+
this.refreshFuntionality(result?.data);
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
this.table.body.setState("rows", []);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
refreshFuntionality(data) {
|
|
252
|
+
if (data?.chart || data?.chartButton || data?.pivot) {
|
|
253
|
+
this.emitter.emit("refreshFuntionality", data);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
async print() {
|
|
257
|
+
if (!this.state.running) {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
this.queue.clear();
|
|
261
|
+
const w = window.open(
|
|
262
|
+
`${window.CONTEXT}/react/generic/print.jsp?printComponent=print/query/PrintQuery`,
|
|
263
|
+
"_blank",
|
|
264
|
+
`height=${screen.height}, width=${screen.width},location=no,menubar=yes,resizable=yes,scrollbars=yes,titlebar=yes,toolbar=no`
|
|
265
|
+
);
|
|
266
|
+
if (w) {
|
|
267
|
+
w.onload = () => {
|
|
268
|
+
w.printData = this;
|
|
269
|
+
};
|
|
270
|
+
w.printData = this;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
async filterTypes() {
|
|
274
|
+
if (!this.state.running) {
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
this.queue.clear();
|
|
278
|
+
ApiaUtil.instance.modals.open({
|
|
279
|
+
children: /* @__PURE__ */ jsx(FilterTypes, { controller: this }),
|
|
280
|
+
title: getLabel("sbtQryFilType").text,
|
|
281
|
+
onConfirm: async () => {
|
|
282
|
+
await this.queue.run(async () => {
|
|
283
|
+
await ApiaApi.post(
|
|
284
|
+
{ ...this.env.context },
|
|
285
|
+
// TODO: cuando se implementen las consultas de lista de tareas hay que manejar correctamente el working mode
|
|
286
|
+
this.getFilterTypesMethodParameters({
|
|
287
|
+
action: "setFilterOptions",
|
|
288
|
+
workingMode: "R"
|
|
289
|
+
}),
|
|
290
|
+
{
|
|
291
|
+
postData: this.table.getFilters().reduce((acc, filter, i) => {
|
|
292
|
+
acc[filter.getState("id") ?? `filter_${i}`] = filter.getState("conditionValue") ?? "1";
|
|
293
|
+
return acc;
|
|
294
|
+
}, {}),
|
|
295
|
+
postDataTreatement: "stringify"
|
|
296
|
+
}
|
|
297
|
+
);
|
|
298
|
+
});
|
|
299
|
+
return true;
|
|
300
|
+
},
|
|
301
|
+
size: "md-fixed"
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
async export() {
|
|
305
|
+
if (!this.state.running) {
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
this.queue.clear();
|
|
309
|
+
ApiaUtil.instance.modals.open({
|
|
310
|
+
children: /* @__PURE__ */ jsx(ExportModal, {}),
|
|
311
|
+
title: getLabel("titExport").text,
|
|
312
|
+
onConfirm: async () => {
|
|
313
|
+
const url = ApiaApi.makeUrl(this.env.context, {
|
|
314
|
+
action: "doExport",
|
|
315
|
+
...this.buildExportConfirmData()
|
|
316
|
+
});
|
|
317
|
+
downloadUrl(url);
|
|
318
|
+
return true;
|
|
319
|
+
},
|
|
320
|
+
size: "md-fixed"
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
kill() {
|
|
324
|
+
runInAction(() => {
|
|
325
|
+
this.state.running = false;
|
|
326
|
+
});
|
|
327
|
+
this.queue.clear();
|
|
328
|
+
}
|
|
329
|
+
parseResultBeforeBuild(result) {
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
processRefreshResult(result) {
|
|
333
|
+
runInAction(() => {
|
|
334
|
+
this.processStructureResult({
|
|
335
|
+
behavior: result.list.behavior,
|
|
336
|
+
columns: result.list.columns,
|
|
337
|
+
filters: result.list.filters,
|
|
338
|
+
rows: result.list.rows
|
|
339
|
+
});
|
|
340
|
+
if (arrayOrArray(result.list.rows).length === 0 && this.table.body.rows.length > 0 || this.state.customLabel === window.MSG_FILTER_REQUIRED || !this.state.avoidExecuteFirstRefresh && this.state.hasBuiltFromGenericTable || this.state.avoidExecuteFirstRefresh && this.state.hasBuiltFromGenericTable) {
|
|
341
|
+
this.table.setState("customLabel", window.FINDER_NO_DATA);
|
|
342
|
+
}
|
|
343
|
+
this.table.fromGenericTable(this.parseResultBeforeBuild(result.list), {
|
|
344
|
+
getDateFromString,
|
|
345
|
+
getStringFromDate
|
|
346
|
+
});
|
|
347
|
+
const filters = this.table.head.getFilters();
|
|
348
|
+
if (filters) {
|
|
349
|
+
if (Array.from(filters.filters.values()).some(
|
|
350
|
+
(f) => f.getState("isRequired")
|
|
351
|
+
) && !this.state.hasBuiltFromGenericTable) {
|
|
352
|
+
this.table.setState("customLabel", "");
|
|
353
|
+
}
|
|
354
|
+
const headerFilters = Array.from(filters.filters.values()).filter(
|
|
355
|
+
(f) => !f.asAdditional() || f.getCorrespondingColumn()
|
|
356
|
+
);
|
|
357
|
+
const requiredHeaderFilters = headerFilters.filter(
|
|
358
|
+
(f) => f.getState("isRequired")
|
|
359
|
+
);
|
|
360
|
+
if (!this.state.hasBuiltFromGenericTable) {
|
|
361
|
+
this.table.head.getFiltersRow()?.setState(
|
|
362
|
+
"isHidden",
|
|
363
|
+
requiredHeaderFilters.length > 0 ? false : true
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
if (result.list.title) {
|
|
368
|
+
this.state.title = result.list.title;
|
|
369
|
+
this.table.setState("tableName", result.list.title);
|
|
370
|
+
}
|
|
371
|
+
if (result.list.description) {
|
|
372
|
+
this.state.description = result.list.description;
|
|
373
|
+
}
|
|
374
|
+
this.state.navigation = result.list.navigation;
|
|
375
|
+
if (this.configuration) {
|
|
376
|
+
this.configuration.refreshOnDeleteFilters = !result.list.navigation.avoidRefreshOnClearFilters;
|
|
377
|
+
}
|
|
378
|
+
this.state.hasBuiltFromGenericTable = true;
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
processStructureResult(result) {
|
|
382
|
+
runInAction(() => {
|
|
383
|
+
this.table.setState("allowEdition", result.behavior.allowEdition);
|
|
384
|
+
this.table.setState("allowSelection", result.behavior.allowSelection);
|
|
385
|
+
this.table.setState(
|
|
386
|
+
"isSelectionMultiple",
|
|
387
|
+
result.behavior.isMultipleSelection
|
|
388
|
+
);
|
|
389
|
+
this.table.setState("fetchRowExpand", !!result.behavior.fetchRowExpand);
|
|
390
|
+
this.table.setState(
|
|
391
|
+
"avoidExecuteFirstRefresh",
|
|
392
|
+
!!result.behavior.avoidExecuteFirstRefresh
|
|
393
|
+
);
|
|
394
|
+
this.table.head.build({
|
|
395
|
+
columns: arrayOrArray(result.columns).map(({ attributes, ...c }) => {
|
|
396
|
+
return {
|
|
397
|
+
...c,
|
|
398
|
+
colName: c.name,
|
|
399
|
+
asAdditional: c.showAsAdditional,
|
|
400
|
+
sortable: c.isSortable,
|
|
401
|
+
isHidden: c.isHidden,
|
|
402
|
+
properties: c,
|
|
403
|
+
content: c.title,
|
|
404
|
+
className: c.className,
|
|
405
|
+
sortState: c.sortType,
|
|
406
|
+
showInAccordionTitle: c.showInAccordionTitle,
|
|
407
|
+
domProperties: {
|
|
408
|
+
style: {
|
|
409
|
+
width: c.width
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
}),
|
|
414
|
+
filters: arrayOrArray(result.filters).map(({ attributes, ...f }) => {
|
|
415
|
+
if (f.type === "COMBO") {
|
|
416
|
+
return {
|
|
417
|
+
...f,
|
|
418
|
+
name: f.name,
|
|
419
|
+
title: f.title,
|
|
420
|
+
tooltip: "no tooltip",
|
|
421
|
+
type: f.type,
|
|
422
|
+
isRequired: f.isRequired,
|
|
423
|
+
properties: f,
|
|
424
|
+
runAutomatically: f.runAutomatically,
|
|
425
|
+
columnName: f.columnName,
|
|
426
|
+
value: Array.isArray(f.options) || arrayOrArray(f.options)[0].label !== "" ? f.initialValue : "",
|
|
427
|
+
asAdditional: f.asAdditional
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
return {
|
|
431
|
+
...f,
|
|
432
|
+
name: f.name,
|
|
433
|
+
title: f.title,
|
|
434
|
+
tooltip: "no tooltip",
|
|
435
|
+
type: f.type,
|
|
436
|
+
isRequired: f.isRequired,
|
|
437
|
+
properties: f,
|
|
438
|
+
runAutomatically: f.runAutomatically,
|
|
439
|
+
columnName: f.columnName,
|
|
440
|
+
value: f.initialValue,
|
|
441
|
+
asAdditional: f.asAdditional
|
|
442
|
+
};
|
|
443
|
+
})
|
|
444
|
+
});
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
setRegistersPerPage(_n) {
|
|
448
|
+
throw new Error("Not implemented");
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
export { ListController };
|
|
453
|
+
//# sourceMappingURL=ListController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListController.js","sources":["../src/ListController.tsx"],"sourcesContent":["import { TQueryEnvironment } from './types';\r\nimport { ApiaApi } from '@apia/api2';\r\nimport {\r\n arrayOrArray,\r\n downloadUrl,\r\n EventEmitter,\r\n getLabel,\r\n handleAction,\r\n TasksQueue,\r\n TBasicAction,\r\n TLoadStructure,\r\n} from '@apia/util';\r\nimport { makeObservable, observable, runInAction } from 'mobx';\r\nimport { notify } from '@apia/notifications';\r\nimport {\r\n Cell,\r\n DateFilter,\r\n FilterRenderer,\r\n TableController,\r\n} from '@apia/table2-controller';\r\nimport { getDateFromString } from './utils/getStringFromDate';\r\nimport { getStringFromDate } from './utils/getDateFromString';\r\nimport { ApiaUtil } from '@apia/components';\r\nimport { FilterTypes } from './components/modals/FilterTypes';\r\nimport { ExportModal } from './components/modals/ExportModal';\r\nimport { ExportController } from './components/modals/controllers/ExportController';\r\nimport {\r\n PivotTableConfig,\r\n TApiaChartDefinition,\r\n} from './QueriesFunctionalityController';\r\nimport { FC } from 'react';\r\n\r\nexport type ListState = {\r\n areAllFiltersApplied: boolean;\r\n attributes?: Record<string, unknown>;\r\n navigation: {\r\n pagesCount: number;\r\n registers: number;\r\n currentPage: number;\r\n showPagination?: boolean;\r\n showRegisterAmount?: boolean;\r\n avoidRefreshOnClearFilters?: boolean;\r\n reachedMax?: boolean;\r\n hasMore?: boolean;\r\n };\r\n running: boolean;\r\n title?: string;\r\n description?: string;\r\n customLabel?: string;\r\n avoidExecuteFirstRefresh?: boolean;\r\n hasBuiltFromGenericTable?: boolean;\r\n};\r\n\r\nexport type ListFunctionalityState = {\r\n fncId: number;\r\n isFavorite: boolean;\r\n isMaximized: boolean;\r\n};\r\n\r\nexport type TFuntionalityData = {\r\n chart?: {\r\n charts: { chart: TApiaChartDefinition } | { chart: TApiaChartDefinition }[];\r\n };\r\n chartButton?: {\r\n chartsbuttons:\r\n | { chartbutton: { qryChtId: string; title: string } }\r\n | { chartbutton: { qryChtId: string; title: string } }[];\r\n };\r\n pivot?: {\r\n pivots: { pivot: PivotTableConfig } | { pivot: PivotTableConfig }[];\r\n };\r\n};\r\n\r\nexport type TListRefreshResponse = {\r\n list: ListState & TLoadStructure;\r\n} & TFuntionalityData;\r\n\r\nexport type TListControllerConfiguration = {\r\n refreshOnDeleteFilters?: boolean;\r\n canSetRegistersPerPage?: boolean;\r\n refreshOnStartup?: boolean;\r\n refreshAction?: string;\r\n};\r\n\r\ntype Arr<T> = T extends Array<any> ? T : Array<T>;\r\nexport type TQueryFilter = Arr<TLoadStructure['filters']>[0] & {\r\n Renderer?: FilterRenderer;\r\n};\r\n\r\nexport type TQueryColumn = Arr<TLoadStructure['columns']>[0] & {\r\n Renderer?: FC<{ cell: Cell }>;\r\n};\r\n\r\nexport class ListController {\r\n queue = new TasksQueue();\r\n public readonly table: TableController;\r\n public readonly state: ListState = {\r\n areAllFiltersApplied: true,\r\n navigation: {\r\n currentPage: 0,\r\n pagesCount: 0,\r\n registers: 0,\r\n showPagination: true,\r\n showRegisterAmount: true,\r\n avoidRefreshOnClearFilters: false,\r\n reachedMax: false,\r\n hasMore: false,\r\n },\r\n running: true,\r\n title: '',\r\n description: '',\r\n customLabel: window.MSG_FIRST_TIME,\r\n avoidExecuteFirstRefresh: false,\r\n hasBuiltFromGenericTable: false,\r\n };\r\n registersPerPage = 30;\r\n\r\n protected emitter = new EventEmitter<{\r\n refreshFuntionality: TFuntionalityData;\r\n deleteFilters: any;\r\n }>();\r\n\r\n constructor(\r\n public env: TQueryEnvironment,\r\n public configuration?: TListControllerConfiguration,\r\n ) {\r\n this.table = new TableController({\r\n labels: env.context.labels,\r\n getDateFromString: env.getDateFromString,\r\n getStringFromDate: env.getStringFromDate,\r\n });\r\n this.table.setState('customLabel', window.MSG_FIRST_TIME);\r\n\r\n this.table.head.getFiltersRow()?.setState('isHidden', true);\r\n if (configuration?.refreshOnStartup !== false) {\r\n this.refresh();\r\n }\r\n\r\n this.table.on('filterChange', async (filter) => {\r\n runInAction(() => {\r\n this.state.areAllFiltersApplied = false;\r\n });\r\n\r\n await this.filterChange({ fireFilterName: filter.getState('name') });\r\n\r\n if (filter.getState('runAutomatically')) {\r\n await this.throttleRefresh();\r\n }\r\n });\r\n\r\n this.table.on('filterPressEnter', (filter) => {\r\n if (filter.getState('type') !== 'DATE') {\r\n this.refresh();\r\n }\r\n });\r\n\r\n this.table.on('filterBlur', (filter) => {\r\n if (filter instanceof DateFilter) {\r\n this.refresh();\r\n }\r\n });\r\n\r\n this.table.on('columnSort', () => {\r\n this.refresh();\r\n });\r\n this.table.on('rowDblClick', ({ action, ev }) => {\r\n this.handleDblClickAction(action, ev);\r\n });\r\n\r\n this.table.on('rowClick', ({ action, ev }) => {\r\n this.handleClickAction(action, ev);\r\n });\r\n makeObservable(this, { state: observable, table: observable });\r\n }\r\n\r\n protected handleClickAction(\r\n action: TBasicAction,\r\n ev: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>,\r\n ) {\r\n handleAction({}, ev, action);\r\n }\r\n\r\n protected handleDblClickAction(\r\n action: TBasicAction,\r\n ev: React.KeyboardEvent<Element> | React.MouseEvent<Element, MouseEvent>,\r\n ) {\r\n handleAction({}, ev, action);\r\n }\r\n\r\n protected handleAttributes(attributes: Pick<ListState, 'attributes'>): void {\r\n runInAction(() => {\r\n this.state.attributes = attributes;\r\n });\r\n return;\r\n }\r\n\r\n protected refreshTimeout = -1;\r\n protected throttleRefresh() {\r\n clearTimeout(this.refreshTimeout);\r\n this.refreshTimeout = setTimeout(() => {\r\n this.refresh();\r\n }, 300) as any;\r\n }\r\n\r\n protected getPageMethodParameters(\r\n defaultParams: Record<string, unknown>,\r\n ): Record<string, unknown> {\r\n return defaultParams;\r\n }\r\n\r\n protected getRefreshMethodParameters(\r\n defaultParams: Record<string, unknown>,\r\n ): Record<string, unknown> {\r\n return defaultParams;\r\n }\r\n\r\n protected getFilterTypesMethodParameters(\r\n defaultParams: Record<string, unknown>,\r\n ): Record<string, unknown> {\r\n return defaultParams;\r\n }\r\n\r\n async clearFilters() {\r\n this.table.getFilters().forEach((c) => c.clear(false));\r\n runInAction(() => {\r\n this.state.areAllFiltersApplied = false;\r\n });\r\n\r\n this.emitter.emit('deleteFilters', null);\r\n await this.filterChange({ subAction: 'clearFilters' });\r\n\r\n if (this.configuration?.refreshOnDeleteFilters) {\r\n this.throttleRefresh();\r\n }\r\n }\r\n\r\n async page(pageNumber: number) {\r\n this.queue.clear();\r\n await this.queue.run(async () => {\r\n if (this.validateFilters()) {\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n { ...this.env.context },\r\n this.getPageMethodParameters({\r\n action: this.configuration?.refreshAction || 'refresh',\r\n page: pageNumber,\r\n }),\r\n this.buildRefreshPostData(),\r\n );\r\n\r\n if (result?.data?.list) {\r\n this.processRefreshResult(result.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public validateFilters() {\r\n const invalidFilters = this.table.getFilters().filter((c) => !c.validate());\r\n if (invalidFilters.length) {\r\n this.table.setState('customLabel', ''); //window.MSG_FILTER_REQUIRED);\r\n notify({\r\n title: getLabel('titWarning').text,\r\n message: getLabel('msgQryFilterRequiredList', {\r\n text: {\r\n TOK1: invalidFilters.map((c) => c.getState('title')).join(', '),\r\n },\r\n }).text,\r\n });\r\n }\r\n return invalidFilters.length === 0;\r\n }\r\n\r\n protected buildRefreshPostData(): Parameters<(typeof ApiaApi)['post']>[2] {\r\n return {\r\n postData: {\r\n ...this.table.getFilters().reduce(\r\n (acc, cur) => ({\r\n ...acc,\r\n [`filter_${cur.getState('name')}`]: cur.getValueForSubmit(),\r\n }),\r\n {},\r\n ),\r\n ...this.table.getColumns().reduce(\r\n (acc, cur) => ({\r\n ...acc,\r\n [`sort_${cur.getState('colName')}`]: cur.getState('sortState'),\r\n }),\r\n {},\r\n ),\r\n amount: this.table.getState('registersToShow'),\r\n },\r\n postDataTreatement: 'stringify',\r\n postDataStringifyOptions: { arrayFormat: 'repeat' },\r\n };\r\n }\r\n\r\n protected buildExportConfirmData(): Record<string, unknown> {\r\n return {\r\n format: ExportController.getInstance().getFormat(),\r\n amount: ExportController.getInstance().getAmount(),\r\n };\r\n }\r\n\r\n protected async filterChange(\r\n parameters?: Partial<{\r\n fireFilterName?: string;\r\n subAction?: string;\r\n }>,\r\n ) {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n\r\n if (\r\n parameters?.fireFilterName &&\r\n !this.table.getFilter(parameters.fireFilterName)?.getState('hasEvents')\r\n ) {\r\n return;\r\n }\r\n\r\n if (\r\n !parameters?.fireFilterName &&\r\n !this.table.getFilters().find((c) => c.getState('hasEvents'))\r\n ) {\r\n return;\r\n }\r\n\r\n this.queue.clear();\r\n await this.queue.run(async () => {\r\n const result = await ApiaApi.post<{ list: TLoadStructure }>(\r\n { ...this.env.context },\r\n this.getRefreshMethodParameters({\r\n action: 'newLoadStructure', //this.configuration?.refreshAction || 'refresh',\r\n subAction: parameters?.subAction ?? null,\r\n fireFilterName: parameters?.fireFilterName ?? null,\r\n }),\r\n this.buildRefreshPostData(),\r\n );\r\n\r\n if (result?.data?.list) {\r\n this.processStructureResult(result.data.list);\r\n }\r\n });\r\n }\r\n\r\n async refresh(\r\n parameters?: Partial<{ action: string; clearBefore?: boolean }>,\r\n ) {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n\r\n if (parameters?.clearBefore) {\r\n this.table.getFilters().forEach((c) => c.clear(false));\r\n this.state.areAllFiltersApplied = false;\r\n }\r\n\r\n this.queue.clear();\r\n await this.queue.run(async () => {\r\n if (this.validateFilters()) {\r\n runInAction(() => {\r\n this.state.areAllFiltersApplied = true;\r\n });\r\n\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n { ...this.env.context },\r\n this.getRefreshMethodParameters({\r\n action:\r\n parameters?.action ??\r\n (this.configuration?.refreshAction || 'refresh'),\r\n }),\r\n this.buildRefreshPostData(),\r\n );\r\n\r\n if (result?.data?.list) {\r\n this.processRefreshResult(result.data);\r\n }\r\n if (result?.data?.list.attributes) {\r\n this.handleAttributes(result?.data?.list.attributes);\r\n }\r\n\r\n if (result?.data) {\r\n this.refreshFuntionality(result?.data);\r\n }\r\n } else {\r\n this.table.body.setState('rows', []);\r\n }\r\n });\r\n }\r\n\r\n protected refreshFuntionality(data: Omit<TListRefreshResponse, 'list'>) {\r\n if (data?.chart || data?.chartButton || data?.pivot) {\r\n this.emitter.emit('refreshFuntionality', data);\r\n }\r\n }\r\n\r\n on = this.emitter.on.bind(this.emitter);\r\n\r\n async print() {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n this.queue.clear();\r\n\r\n const w = window.open(\r\n `${window.CONTEXT}/react/generic/print.jsp?printComponent=print/query/PrintQuery`,\r\n '_blank',\r\n `height=${screen.height}, width=${screen.width},location=no,menubar=yes,resizable=yes,scrollbars=yes,titlebar=yes,toolbar=no`,\r\n );\r\n if (w) {\r\n w.onload = () => {\r\n w.printData = this as unknown as string;\r\n };\r\n w.printData = this as unknown as string;\r\n }\r\n }\r\n\r\n async filterTypes() {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n this.queue.clear();\r\n // await this.queue.run(async () => {\r\n // await ApiaApi.post({ ...this.env.context }, { action: 'filterOptions' });\r\n // });\r\n ApiaUtil.instance.modals.open({\r\n children: <FilterTypes controller={this} />,\r\n title: getLabel('sbtQryFilType').text,\r\n onConfirm: async () => {\r\n await this.queue.run(async () => {\r\n await ApiaApi.post(\r\n { ...this.env.context },\r\n // TODO: cuando se implementen las consultas de lista de tareas hay que manejar correctamente el working mode\r\n this.getFilterTypesMethodParameters({\r\n action: 'setFilterOptions',\r\n workingMode: 'R',\r\n }),\r\n {\r\n postData: this.table\r\n .getFilters()\r\n .reduce<Record<string, string>>((acc, filter, i) => {\r\n acc[filter.getState('id') ?? `filter_${i}`] =\r\n filter.getState('conditionValue') ?? '1';\r\n return acc;\r\n }, {}),\r\n postDataTreatement: 'stringify',\r\n },\r\n );\r\n });\r\n return true;\r\n },\r\n size: 'md-fixed',\r\n });\r\n }\r\n\r\n async export() {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n this.queue.clear();\r\n ApiaUtil.instance.modals.open({\r\n children: <ExportModal />,\r\n title: getLabel('titExport').text,\r\n onConfirm: async () => {\r\n const url = ApiaApi.makeUrl(this.env.context, {\r\n action: 'doExport',\r\n ...this.buildExportConfirmData(),\r\n });\r\n downloadUrl(url);\r\n return true;\r\n },\r\n size: 'md-fixed',\r\n });\r\n }\r\n\r\n public kill() {\r\n runInAction(() => {\r\n this.state.running = false;\r\n });\r\n this.queue.clear();\r\n }\r\n\r\n protected parseResultBeforeBuild(\r\n result: ListState & TLoadStructure,\r\n ): ListState & TLoadStructure {\r\n return result;\r\n }\r\n\r\n protected processRefreshResult(result: TListRefreshResponse) {\r\n runInAction(() => {\r\n this.processStructureResult({\r\n behavior: result.list.behavior,\r\n columns: result.list.columns,\r\n filters: result.list.filters,\r\n rows: result.list.rows,\r\n });\r\n if (\r\n (arrayOrArray(result.list.rows).length === 0 &&\r\n this.table.body.rows.length > 0) ||\r\n this.state.customLabel === window.MSG_FILTER_REQUIRED ||\r\n (!this.state.avoidExecuteFirstRefresh &&\r\n this.state.hasBuiltFromGenericTable) ||\r\n (this.state.avoidExecuteFirstRefresh &&\r\n this.state.hasBuiltFromGenericTable)\r\n ) {\r\n this.table.setState('customLabel', window.FINDER_NO_DATA);\r\n }\r\n this.table.fromGenericTable(this.parseResultBeforeBuild(result.list), {\r\n getDateFromString,\r\n getStringFromDate,\r\n });\r\n\r\n const filters = this.table.head.getFilters();\r\n if (filters) {\r\n if (\r\n Array.from(filters.filters.values()).some((f) =>\r\n f.getState('isRequired'),\r\n ) &&\r\n !this.state.hasBuiltFromGenericTable\r\n ) {\r\n this.table.setState('customLabel', '');\r\n }\r\n const headerFilters = Array.from(filters.filters.values()).filter(\r\n (f) => !f.asAdditional() || f.getCorrespondingColumn(),\r\n );\r\n\r\n const requiredHeaderFilters = headerFilters.filter((f) =>\r\n f.getState('isRequired'),\r\n );\r\n\r\n if (!this.state.hasBuiltFromGenericTable) {\r\n this.table.head\r\n .getFiltersRow()\r\n ?.setState(\r\n 'isHidden',\r\n requiredHeaderFilters.length > 0 ? false : true,\r\n );\r\n }\r\n }\r\n if (result.list.title) {\r\n this.state.title = result.list.title;\r\n this.table.setState('tableName', result.list.title);\r\n }\r\n if (result.list.description) {\r\n this.state.description = result.list.description;\r\n }\r\n this.state.navigation = result.list.navigation;\r\n if (this.configuration) {\r\n this.configuration.refreshOnDeleteFilters =\r\n !result.list.navigation.avoidRefreshOnClearFilters;\r\n }\r\n this.state.hasBuiltFromGenericTable = true;\r\n });\r\n }\r\n\r\n public processStructureResult(result: TLoadStructure) {\r\n runInAction(() => {\r\n this.table.setState('allowEdition', result.behavior.allowEdition);\r\n this.table.setState('allowSelection', result.behavior.allowSelection);\r\n this.table.setState(\r\n 'isSelectionMultiple',\r\n result.behavior.isMultipleSelection,\r\n );\r\n this.table.setState('fetchRowExpand', !!result.behavior.fetchRowExpand);\r\n this.table.setState(\r\n 'avoidExecuteFirstRefresh',\r\n !!result.behavior.avoidExecuteFirstRefresh,\r\n );\r\n this.table.head.build({\r\n columns: arrayOrArray(result.columns).map(({ attributes, ...c }) => {\r\n return {\r\n ...c,\r\n colName: c.name,\r\n asAdditional: c.showAsAdditional,\r\n sortable: c.isSortable,\r\n isHidden: c.isHidden,\r\n properties: c,\r\n content: c.title,\r\n className: c.className,\r\n sortState: c.sortType,\r\n showInAccordionTitle: c.showInAccordionTitle,\r\n domProperties: {\r\n style: {\r\n width: c.width,\r\n },\r\n },\r\n };\r\n }),\r\n filters: arrayOrArray(result.filters).map(({ attributes, ...f }) => {\r\n if (f.type === 'COMBO') {\r\n return {\r\n ...f,\r\n name: f.name,\r\n title: f.title,\r\n tooltip: 'no tooltip',\r\n type: f.type,\r\n isRequired: f.isRequired,\r\n properties: f,\r\n runAutomatically: f.runAutomatically,\r\n columnName: f.columnName,\r\n value:\r\n Array.isArray(f.options) ||\r\n arrayOrArray(f.options)[0].label !== ''\r\n ? f.initialValue\r\n : '',\r\n asAdditional: f.asAdditional,\r\n };\r\n }\r\n return {\r\n ...f,\r\n name: f.name,\r\n title: f.title,\r\n tooltip: 'no tooltip',\r\n type: f.type,\r\n isRequired: f.isRequired,\r\n properties: f,\r\n runAutomatically: f.runAutomatically,\r\n columnName: f.columnName,\r\n value: f.initialValue,\r\n asAdditional: f.asAdditional,\r\n };\r\n }),\r\n });\r\n });\r\n }\r\n\r\n public setRegistersPerPage(_n: number) {\r\n throw new Error('Not implemented');\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ListFunctionalityState } from './ListController.js';
|
|
2
|
+
import { TQueryEnvironment } from './types.js';
|
|
3
|
+
|
|
4
|
+
declare class ListFunctionalityController {
|
|
5
|
+
protected env: TQueryEnvironment;
|
|
6
|
+
readonly state: ListFunctionalityState;
|
|
7
|
+
constructor(env: TQueryEnvironment);
|
|
8
|
+
protected initializeFavoriteAction(): Promise<void>;
|
|
9
|
+
toggleFavoriteFunctionality(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { ListFunctionalityController };
|
|
13
|
+
//# sourceMappingURL=ListFunctionalityController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListFunctionalityController.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|