@apia/query 4.0.45 → 5.0.0

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/index.d.ts CHANGED
@@ -1,161 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { EventEmitter } from '@apia/util';
3
- import { Cell, TableController } from '@apia/table2-controller';
2
+ import { TasksQueue, TLoadStructure } from '@apia/util';
3
+ import { TableController } from '@apia/table2-controller';
4
4
 
5
5
  type TQueryEnvironment = {
6
6
  window: Window;
7
7
  };
8
- type TAttribute = {
9
- name: string;
10
- value: string;
11
- };
12
- type TOption = {
13
- label: string;
14
- value: string;
15
- };
16
- type TWithAttributes = {
17
- attributes: Record<string, string>;
18
- };
19
- type TWithOptions = {
20
- options: TOption | TOption[];
21
- };
22
- type TBehavior = TWithAttributes & {
23
- allowEdition: boolean;
24
- allowSelection: boolean;
25
- isMultipleSelection: boolean;
26
- hasDynamicStructure: boolean;
27
- showAdditionalInfo: boolean;
28
- };
29
- type TColumn = TWithAttributes & TWithStylesModifiers & {
30
- className: string;
31
- hideFromAccordion: boolean;
32
- isHidden: boolean;
33
- isSortable: boolean;
34
- name: string;
35
- showAsAdditional: boolean;
36
- sortType: 'ASC' | 'DESC' | 'NONE';
37
- title: string;
38
- tooltip: string;
39
- width: string;
40
- };
41
- type TFilter = TWithAttributes & TWithOptions & {
42
- name: string;
43
- columnName: string;
44
- isRequired: boolean;
45
- initialValue: string;
46
- runAutomatically: boolean;
47
- title: string;
48
- type: 'DATE' | 'INPUT' | 'COMBO' | 'DATERANGE' | 'SIZE' | 'SIZERANGE' | 'DATEHOUR' | 'DATEHOURRANGE';
49
- };
50
- type TLoadStructure = {
51
- behavior: TBehavior;
52
- columns: TColumn | TColumn[];
53
- filters: TFilter | TFilter[];
54
- rows?: TRow | TRow[];
55
- };
56
- type TStateIcon = 'ALERT' | 'DISALLOWED' | 'LOCKED' | 'PRIORITY_LOW' | 'PRIORITY_NORMAL' | 'PRIORITY_HIGH' | 'PRIORITY_URGENT';
57
- type TWithAlignment = {
58
- horizontalAlign?: 'Left' | 'Center' | 'Right' | 'Justify';
59
- verticalAlign?: 'Top' | 'Middle' | 'Bottom';
60
- };
61
- type TWithStylesModifiers = {
62
- background: string;
63
- color: string;
64
- isBold: boolean;
65
- isHtml: boolean;
66
- isLight: boolean;
67
- };
68
- type TCell = TWithAttributes & TWithStylesModifiers & TWithAlignment & {
69
- className: string;
70
- colspan: number;
71
- renderer?: string;
72
- text: string;
73
- title: string;
74
- };
75
- type TActionBehavior = 'DO_NOTHING' | 'NAVIGATE_URL' | 'CALL_AJAX_URL' | 'RUN_ACTION' | 'OPEN_TAB' | 'FIRE_EVENT' | 'DOWNLOAD';
76
- type TActionSource = 'CLICK' | 'DOUBLE_CLICK';
77
- type TBasicAction = {
78
- action: string;
79
- actionBehavior: TActionBehavior;
80
- actionSource: TActionSource;
81
- additionalData: string;
82
- text: string;
83
- };
84
- type TRow = TWithAttributes & TWithStylesModifiers & {
85
- action: TBasicAction;
86
- } & TWithAlignment & {
87
- cells: TCell | TCell[];
88
- className: string;
89
- id: string;
90
- isDisabled: boolean;
91
- isHidden: boolean;
92
- isSelected: boolean;
93
- isSeparator: boolean;
94
- states: TState | TState[];
95
- title: string;
96
- };
97
- type TState = {
98
- color: string;
99
- tooltip: string;
100
- className: string;
101
- Icon: TStateIcon;
102
- };
103
- type TRefresh = {
104
- rows: TRow | TRow[];
105
- };
106
- interface IStatesSource {
107
- background: string;
108
- color: string;
109
- isBold: boolean;
110
- isLight: boolean;
111
- }
112
-
113
- type TFilterState = TFilter & {
114
- value: string;
115
- };
116
- declare class Filter<State extends TFilterState = TFilterState> extends EventEmitter<{
117
- change: null;
118
- enter: null;
119
- blur: null;
120
- }> {
121
- protected state: State;
122
- focus(): void;
123
- constructor(properties: TFilter);
124
- clear(): void;
125
- fire(ev: 'enter' | 'blur'): void;
126
- hasValue(): boolean;
127
- getValue(): string;
128
- getState<K extends keyof State>(prop: K): State[K];
129
- setValue(value: any): void;
130
- updateDefinition(def: TFilter): void;
131
- validate(): boolean;
132
- }
133
-
134
- declare class HeaderCell extends Cell {
135
- definition: TColumn;
136
- constructor(definition: TColumn);
137
- updateDefinition(newDef: Partial<TColumn>): void;
138
- }
139
-
140
- declare class ListTableController extends EventEmitter<{
141
- filterChange: Filter;
142
- filterBlur: Filter;
143
- filterPressEnter: Filter;
144
- }> {
145
- list: ListController;
146
- controller: TableController;
147
- protected columnsMap: Map<string, HeaderCell>;
148
- protected filtersMap: Map<string, Filter<TFilterState>>;
149
- constructor(list: ListController);
150
- protected init(): void;
151
- clear(): void;
152
- fromGenericTable(table: TLoadStructure): void;
153
- getFilter(filterName: string): Filter<TFilterState> | undefined;
154
- getFilters(): Filter<TFilterState>[];
155
- private listeners;
156
- private removeFilter;
157
- private makeFilter;
158
- }
159
8
 
160
9
  type ListState = {
161
10
  areAllFiltersApplied: boolean;
@@ -167,6 +16,7 @@ type ListState = {
167
16
  fncId: number;
168
17
  isFavorite: boolean;
169
18
  isMaximized: boolean;
19
+ running: boolean;
170
20
  };
171
21
  type TListRefreshResponse = {
172
22
  list: ListState & TLoadStructure;
@@ -178,7 +28,8 @@ type TListControllerConfiguration = {
178
28
  declare class ListController {
179
29
  protected env: TQueryEnvironment;
180
30
  protected configuration?: TListControllerConfiguration | undefined;
181
- readonly table: ListTableController;
31
+ queue: TasksQueue;
32
+ readonly table: TableController;
182
33
  readonly state: ListState;
183
34
  constructor(env: TQueryEnvironment, configuration?: TListControllerConfiguration | undefined);
184
35
  protected refreshTimeout: number;
@@ -187,8 +38,9 @@ declare class ListController {
187
38
  clearFilters(): Promise<void>;
188
39
  page(pageNumber: number): Promise<void>;
189
40
  protected validateFilters(): boolean;
190
- refresh(): Promise<void>;
41
+ refresh(): Promise<false | undefined>;
191
42
  protected initializeFavoriteAction(): Promise<void>;
43
+ kill(): void;
192
44
  toggleFavoriteFunctionality(): Promise<void>;
193
45
  protected processRefreshResult(result: TListRefreshResponse): void;
194
46
  }
@@ -207,5 +59,5 @@ declare class ModalListController extends ListController {
207
59
  toggleFavoriteFunctionality(): Promise<void>;
208
60
  }
209
61
 
210
- export { type IStatesSource, ListController, type ListState, ModalListController, Pagination, type TActionBehavior, type TActionSource, type TAttribute, type TBasicAction, type TBehavior, type TCell, type TColumn, type TFilter, type TListControllerConfiguration, type TListRefreshResponse, type TLoadStructure, type TOption, type TQueryEnvironment, type TRefresh, type TRow, type TState, type TStateIcon, type TWithAlignment, type TWithAttributes, type TWithOptions, type TWithStylesModifiers };
62
+ export { ListController, type ListState, ModalListController, Pagination, type TListControllerConfiguration, type TListRefreshResponse, type TQueryEnvironment };
211
63
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,13 +1,11 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { observer } from 'mobx-react-lite';
3
- import { Pagination as Pagination$1, DateInput } from '@apia/components';
4
- import { getLabel, EventEmitter, getDateFormat, arrayOrArray, Url } from '@apia/util';
3
+ import { Pagination as Pagination$1 } from '@apia/components';
4
+ import { getLabel, TasksQueue, Url } from '@apia/util';
5
5
  import { ApiaApi, makeApiaUrl } from '@apia/api';
6
- import { Cell, TableController, Row } from '@apia/table2-controller';
7
6
  import { makeObservable, observable, runInAction } from 'mobx';
8
- import { Input, Label, Box } from '@apia/theme';
9
- import dayjs from 'dayjs';
10
7
  import { notify } from '@apia/notifications';
8
+ import { TableController, DateFilter } from '@apia/table2-controller';
11
9
 
12
10
  const labels = {
13
11
  deleteFilters: getLabel("btnClearFilter").text,
@@ -57,416 +55,6 @@ const Pagination = observer(
57
55
  }
58
56
  );
59
57
 
60
- class HeaderCell extends Cell {
61
- constructor(definition) {
62
- super({
63
- colName: definition.name,
64
- content: definition.title,
65
- isHidden: definition.isHidden
66
- });
67
- this.definition = definition;
68
- makeObservable(this, { definition: observable });
69
- }
70
- updateDefinition(newDef) {
71
- Object.assign(this, newDef);
72
- }
73
- }
74
-
75
- class FilterCell extends Cell {
76
- constructor(colName, filter) {
77
- super({
78
- colName,
79
- tag: "td"
80
- });
81
- this.filter = filter;
82
- makeObservable(this, { filter: observable });
83
- }
84
- }
85
-
86
- var __defProp$4 = Object.defineProperty;
87
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
88
- var __publicField$4 = (obj, key, value) => {
89
- __defNormalProp$4(obj, key + "" , value);
90
- return value;
91
- };
92
- class Filter extends EventEmitter {
93
- constructor(properties) {
94
- super();
95
- __publicField$4(this, "state");
96
- this.state = {
97
- ...properties,
98
- value: properties.initialValue || ""
99
- };
100
- makeObservable(this, { state: observable });
101
- }
102
- focus() {
103
- }
104
- clear() {
105
- this.state.value = "";
106
- this.emit("change", null);
107
- }
108
- fire(ev) {
109
- this.emit(ev, null);
110
- }
111
- hasValue() {
112
- return !!this.state.value;
113
- }
114
- getValue() {
115
- return this.state.value;
116
- }
117
- getState(prop) {
118
- return this.state[prop];
119
- }
120
- setValue(value) {
121
- this.state.value = value;
122
- this.emit("change", null);
123
- }
124
- updateDefinition(def) {
125
- Object.assign(this.state, def);
126
- }
127
- validate() {
128
- return !this.state.isRequired || !!this.state.value;
129
- }
130
- }
131
-
132
- class ListCell extends Cell {
133
- constructor(colName, definition) {
134
- super({
135
- colName,
136
- className: definition.className,
137
- content: definition.text
138
- });
139
- this.definition = definition;
140
- }
141
- updateDefinition(definition) {
142
- this.state.className = definition.className;
143
- this.state.content = definition.text;
144
- }
145
- }
146
-
147
- const InputFilter = observer(({ filter }) => {
148
- return /* @__PURE__ */ jsx(
149
- Input,
150
- {
151
- value: filter.getValue(),
152
- onChange: (ev) => {
153
- filter.setValue(ev.target.value);
154
- },
155
- onKeyDown: (ev) => {
156
- if (ev.code === "Enter") {
157
- filter.fire("enter");
158
- }
159
- },
160
- onBlur: () => {
161
- filter.fire("blur");
162
- }
163
- }
164
- );
165
- });
166
-
167
- const DateFilter = observer(({ filter, inline }) => {
168
- if (inline) {
169
- return /* @__PURE__ */ jsx(
170
- DateInput,
171
- {
172
- value: filter.getValue(),
173
- onChange: (ev) => {
174
- filter.setValue(ev);
175
- }
176
- }
177
- );
178
- }
179
- return /* @__PURE__ */ jsxs(Label, { children: [
180
- filter.getState("title"),
181
- /* @__PURE__ */ jsx(
182
- DateInput,
183
- {
184
- value: filter.getValue(),
185
- onChange: (ev) => {
186
- filter.setValue(ev);
187
- }
188
- }
189
- )
190
- ] });
191
- });
192
-
193
- const DateRangeFilter$1 = observer(
194
- ({ filter, inline }) => {
195
- if (inline) {
196
- return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex" }, children: [
197
- /* @__PURE__ */ jsx(
198
- DateInput,
199
- {
200
- value: filter.getValueFrom(),
201
- onChange: (ev) => {
202
- return filter.setValueFrom(ev);
203
- }
204
- }
205
- ),
206
- /* @__PURE__ */ jsx(
207
- DateInput,
208
- {
209
- value: filter.getValueTo(),
210
- onChange: (ev) => {
211
- return filter.setValueTo(ev);
212
- }
213
- }
214
- )
215
- ] });
216
- }
217
- return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex" }, children: [
218
- /* @__PURE__ */ jsxs(Label, { children: [
219
- "Desde",
220
- /* @__PURE__ */ jsx(
221
- DateInput,
222
- {
223
- value: filter.getValueFrom(),
224
- onChange: (ev) => {
225
- return filter.setValueFrom(ev);
226
- }
227
- }
228
- )
229
- ] }),
230
- /* @__PURE__ */ jsxs(Label, { children: [
231
- "Hasta",
232
- /* @__PURE__ */ jsx(
233
- DateInput,
234
- {
235
- value: filter.getValueTo(),
236
- onChange: (ev) => {
237
- return filter.setValueTo(ev);
238
- }
239
- }
240
- )
241
- ] })
242
- ] });
243
- }
244
- );
245
-
246
- const FilterRender = observer(({ filter, inline }) => {
247
- switch (filter?.getState("type")) {
248
- case "INPUT":
249
- return /* @__PURE__ */ jsx(InputFilter, { filter, inline });
250
- case "DATE":
251
- return /* @__PURE__ */ jsx(DateFilter, { filter, inline });
252
- case "DATERANGE":
253
- return /* @__PURE__ */ jsx(DateRangeFilter$1, { filter, inline });
254
- }
255
- return /* @__PURE__ */ jsx(Input, { disabled: true });
256
- });
257
-
258
- var __defProp$3 = Object.defineProperty;
259
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
260
- var __publicField$3 = (obj, key, value) => {
261
- __defNormalProp$3(obj, key + "" , value);
262
- return value;
263
- };
264
- const FilterRenderer = ({ cell }) => {
265
- return cell instanceof FilterCell ? /* @__PURE__ */ jsx(FilterRender, { filter: cell.filter, inline: true }) : cell.getState("content");
266
- };
267
- class FiltersPlugin {
268
- constructor() {
269
- __publicField$3(this, "getRenderers", () => ({
270
- cell: FilterRenderer
271
- }));
272
- }
273
- }
274
-
275
- const dateFormat = getDateFormat();
276
- class DateRangeFilter extends Filter {
277
- setValue() {
278
- throw new Error("Cannot set value on range filter");
279
- }
280
- clear() {
281
- this.state.value = "";
282
- this.state.valueTo = "";
283
- this.emit("change", null);
284
- }
285
- checkDatesOrder(from, to) {
286
- if (!from || !to) {
287
- return true;
288
- }
289
- const fromDate = dayjs(from, dateFormat);
290
- const toDate = dayjs(to, dateFormat);
291
- const isValid = !fromDate.isAfter(toDate);
292
- if (!isValid) {
293
- notify({ message: "Fecha desde no puede ser mayor que fecha hasta" });
294
- }
295
- return isValid;
296
- }
297
- hasValue() {
298
- return !!this.state.value || !!this.state.valueTo;
299
- }
300
- getValue() {
301
- return `${this.state.value || ""}~${this.state.valueTo || ""}`;
302
- }
303
- getValueFrom() {
304
- return this.state.value;
305
- }
306
- getValueTo() {
307
- return this.state.valueTo;
308
- }
309
- setValueFrom(value) {
310
- if (this.checkDatesOrder(value, this.state.valueTo)) {
311
- this.state.value = value;
312
- this.emit("change", null);
313
- return true;
314
- }
315
- return false;
316
- }
317
- setValueTo(value) {
318
- if (this.checkDatesOrder(this.state.value, value)) {
319
- this.state.valueTo = value;
320
- this.emit("change", null);
321
- return true;
322
- }
323
- return false;
324
- }
325
- validate() {
326
- return !this.state.isRequired || !!this.state.value && !!this.state.valueTo;
327
- }
328
- }
329
-
330
- var __defProp$2 = Object.defineProperty;
331
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
332
- var __publicField$2 = (obj, key, value) => {
333
- __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
334
- return value;
335
- };
336
- class ListTableController extends EventEmitter {
337
- constructor(list) {
338
- super();
339
- this.list = list;
340
- __publicField$2(this, "controller");
341
- __publicField$2(this, "columnsMap", /* @__PURE__ */ new Map());
342
- __publicField$2(this, "filtersMap", /* @__PURE__ */ new Map());
343
- __publicField$2(this, "listeners", /* @__PURE__ */ new Map());
344
- this.controller = new TableController();
345
- this.controller.setPlugins((c) => [...c, new FiltersPlugin()]);
346
- this.init();
347
- }
348
- init() {
349
- this.controller.head.addRow(new Row("header"));
350
- this.controller.head.addRow(
351
- new Row("filters").setState("isHidden", true).setState("domProperties", { className: "filtersRow" })
352
- );
353
- }
354
- clear() {
355
- this.controller.body.clear();
356
- }
357
- fromGenericTable(table) {
358
- this.controller.setState("allowEdition", table.behavior.allowEdition);
359
- this.controller.setState("allowSelection", table.behavior.allowSelection);
360
- this.controller.setState(
361
- "isSelectionMultiple",
362
- table.behavior.isMultipleSelection
363
- );
364
- const columns = arrayOrArray(table.columns);
365
- const filters = arrayOrArray(table.filters);
366
- this.columnsMap.clear();
367
- for (const filter of filters) {
368
- if (this.filtersMap.get(filter.name)) {
369
- this.filtersMap.get(filter.name)?.updateDefinition(filter);
370
- } else {
371
- this.filtersMap.set(filter.name, this.makeFilter(filter));
372
- }
373
- }
374
- for (const key of this.filtersMap.keys()) {
375
- if (!filters.find((c) => c.name === key)) {
376
- this.removeFilter(key);
377
- }
378
- }
379
- this.controller.head.rows[0].cells.splice(columns.length);
380
- this.controller.head.rows[1].cells.splice(columns.length);
381
- let i;
382
- for (i = 0; i < columns.length; i++) {
383
- const column = columns[i];
384
- const colName = column.name;
385
- if (!this.controller.head.rows[0].cells[i]) {
386
- this.controller.head.rows[0].addCell(new HeaderCell(column));
387
- } else {
388
- this.controller.head.rows[0].cells[i].updateDefinition(
389
- column
390
- );
391
- }
392
- const filter = filters.find((c) => c.columnName === colName);
393
- if (this.controller.head.rows[1].cells[i]) {
394
- this.controller.head.rows[1].cells[i].setState(
395
- "colName",
396
- colName
397
- );
398
- this.controller.head.rows[1].cells[i].filter = this.filtersMap.get(
399
- filter?.name || "nohayfiltrodefinidiparaestacolumna"
400
- );
401
- } else {
402
- this.controller.head.rows[1].addCell(
403
- new FilterCell(
404
- colName,
405
- this.filtersMap.get(
406
- filter?.name || "nohayfiltrodefinidiparaestacolumna"
407
- )
408
- )
409
- );
410
- }
411
- this.columnsMap.set(
412
- colName,
413
- this.controller.head.rows[0].cells[i]
414
- );
415
- }
416
- const rows = arrayOrArray(table.rows);
417
- this.controller.body.rows.splice(rows.length);
418
- for (let i2 = 0; i2 < rows.length; i2++) {
419
- if (!this.controller.body.rows[i2]) {
420
- this.controller.body.addRow(new Row(rows[i2].id));
421
- } else {
422
- this.controller.body.rows[i2].setState("id", rows[i2].id);
423
- }
424
- this.controller.body.rows[i2].cells.splice(columns.length);
425
- for (let j = 0; j < columns.length; j++) {
426
- if (this.controller.body.rows[i2].cells[j]) {
427
- this.controller.body.rows[i2].cells[j].updateDefinition(
428
- arrayOrArray(rows[i2].cells)[j]
429
- );
430
- } else {
431
- this.controller.body.rows[i2].addCell(
432
- new ListCell(columns[j].name, arrayOrArray(rows[i2].cells)[j])
433
- );
434
- }
435
- }
436
- }
437
- }
438
- getFilter(filterName) {
439
- return this.filtersMap.get(filterName);
440
- }
441
- getFilters() {
442
- return [...this.filtersMap.values()];
443
- }
444
- removeFilter(filterName) {
445
- this.filtersMap.delete(filterName);
446
- this.listeners.get(filterName)?.forEach((listener) => listener());
447
- this.listeners.delete(filterName);
448
- }
449
- makeFilter(filter) {
450
- let inst;
451
- if (filter.type === "DATERANGE")
452
- inst = new DateRangeFilter(filter);
453
- else
454
- inst = new Filter(filter);
455
- const listenBlur = () => this.emit("filterBlur", inst);
456
- const listenChange = () => this.emit("filterChange", inst);
457
- const listenEnter = () => this.emit("filterPressEnter", inst);
458
- inst.on("blur", listenBlur);
459
- inst.on("change", listenChange);
460
- inst.on("enter", listenEnter);
461
- this.listeners.set(inst.getState("name"), [
462
- listenBlur,
463
- listenChange,
464
- listenEnter
465
- ]);
466
- return inst;
467
- }
468
- }
469
-
470
58
  var __defProp$1 = Object.defineProperty;
471
59
  var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
472
60
  var __publicField$1 = (obj, key, value) => {
@@ -477,16 +65,18 @@ class ListController {
477
65
  constructor(env, configuration) {
478
66
  this.env = env;
479
67
  this.configuration = configuration;
68
+ __publicField$1(this, "queue", new TasksQueue());
480
69
  __publicField$1(this, "table");
481
70
  __publicField$1(this, "state", {
482
71
  areAllFiltersApplied: true,
483
72
  navigation: { currentPage: 0, pagesCount: 0, registers: 0 },
484
73
  fncId: -1,
485
74
  isFavorite: false,
486
- isMaximized: false
75
+ isMaximized: false,
76
+ running: true
487
77
  });
488
78
  __publicField$1(this, "refreshTimeout", -1);
489
- this.table = new ListTableController(this);
79
+ this.table = new TableController();
490
80
  this.initializeFavoriteAction();
491
81
  if (configuration?.refreshOnStartup !== false) {
492
82
  this.refresh();
@@ -497,11 +87,18 @@ class ListController {
497
87
  this.throttleRefresh();
498
88
  }
499
89
  });
500
- this.table.on("filterPressEnter", () => {
501
- this.refresh();
90
+ this.table.on("filterPressEnter", (filter) => {
91
+ if (filter.getState("type") !== "DATE") {
92
+ this.refresh();
93
+ }
94
+ });
95
+ this.table.on("filterBlur", (filter) => {
96
+ if (filter instanceof DateFilter) {
97
+ this.refresh();
98
+ }
502
99
  });
503
- this.table.on("filterBlur", () => {
504
- console.log("blur");
100
+ this.table.on("columnSort", () => {
101
+ this.refresh();
505
102
  });
506
103
  makeObservable(this, { state: observable });
507
104
  }
@@ -509,7 +106,7 @@ class ListController {
509
106
  clearTimeout(this.refreshTimeout);
510
107
  this.refreshTimeout = setTimeout(() => {
511
108
  this.refresh();
512
- }, 100);
109
+ }, 300);
513
110
  }
514
111
  getAjaxParameters() {
515
112
  return { ajaxUrl: this.env.window.URL_REQUEST_AJAX };
@@ -521,23 +118,25 @@ class ListController {
521
118
  });
522
119
  }
523
120
  async page(pageNumber) {
524
- if (this.validateFilters()) {
525
- const result = await ApiaApi.post(
526
- makeApiaUrl({
527
- action: "refresh",
528
- page: pageNumber,
529
- ...this.getAjaxParameters()
530
- })
531
- );
532
- if (result?.data?.list) {
533
- this.processRefreshResult(result.data);
121
+ this.queue.clear();
122
+ this.queue.run(async () => {
123
+ if (this.validateFilters()) {
124
+ const result = await ApiaApi.post(
125
+ makeApiaUrl({
126
+ action: "refresh",
127
+ page: pageNumber,
128
+ ...this.getAjaxParameters()
129
+ })
130
+ );
131
+ if (result?.data?.list) {
132
+ this.processRefreshResult(result.data);
133
+ }
534
134
  }
535
- }
135
+ });
536
136
  }
537
137
  validateFilters() {
538
138
  const invalidFilters = this.table.getFilters().filter((c) => !c.validate());
539
139
  if (invalidFilters.length) {
540
- this.table.clear();
541
140
  notify({
542
141
  title: getLabel("titWarning").text,
543
142
  message: getLabel("msgQryFilterRequiredList", {
@@ -550,31 +149,44 @@ class ListController {
550
149
  return invalidFilters.length === 0;
551
150
  }
552
151
  async refresh() {
553
- if (this.validateFilters()) {
554
- this.state.areAllFiltersApplied = true;
555
- const result = await ApiaApi.post(
556
- makeApiaUrl({
557
- action: "refresh",
558
- ...this.getAjaxParameters()
559
- }),
560
- {
561
- postData: {
562
- ...this.table.getFilters().reduce(
563
- (acc, cur) => ({
564
- ...acc,
565
- [`filter_${cur.getState("name")}`]: cur.getValue()
566
- }),
567
- {}
568
- )
569
- },
570
- postDataTreatement: "stringify",
571
- stringifyOptions: { arrayFormat: "repeat" }
152
+ if (!this.state.running) {
153
+ return false;
154
+ }
155
+ this.queue.clear();
156
+ this.queue.run(async () => {
157
+ if (this.validateFilters()) {
158
+ this.state.areAllFiltersApplied = true;
159
+ const result = await ApiaApi.post(
160
+ makeApiaUrl({
161
+ action: "refresh",
162
+ ...this.getAjaxParameters()
163
+ }),
164
+ {
165
+ postData: {
166
+ ...this.table.getFilters().reduce(
167
+ (acc, cur) => ({
168
+ ...acc,
169
+ [`filter_${cur.getState("name")}`]: cur.getValue()
170
+ }),
171
+ {}
172
+ ),
173
+ ...this.table.getColumns().reduce(
174
+ (acc, cur) => ({
175
+ ...acc,
176
+ [`sort_${cur.getState("colName")}`]: cur.getState("sortState")
177
+ }),
178
+ {}
179
+ )
180
+ },
181
+ postDataTreatement: "stringify",
182
+ stringifyOptions: { arrayFormat: "repeat" }
183
+ }
184
+ );
185
+ if (result?.data?.list) {
186
+ this.processRefreshResult(result.data);
572
187
  }
573
- );
574
- if (result?.data?.list) {
575
- this.processRefreshResult(result.data);
576
188
  }
577
- }
189
+ });
578
190
  }
579
191
  async initializeFavoriteAction() {
580
192
  this.state.fncId = Number.parseInt(
@@ -587,6 +199,10 @@ class ListController {
587
199
  this.state.isFavorite = res.data.isFavorite;
588
200
  }
589
201
  }
202
+ kill() {
203
+ this.state.running = false;
204
+ this.queue.clear();
205
+ }
590
206
  async toggleFavoriteFunctionality() {
591
207
  const res = await ApiaApi.post(makeApiaUrl({ action: "toggleFavorite", favFncId: this.state.fncId }));
592
208
  if (res?.data) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/Pagination.tsx","../src/ListTableController/HeaderCell.ts","../src/ListTableController/FilterCell.ts","../src/ListTableController/Filter.ts","../src/ListTableController/ListCell.ts","../src/components/filters/InputFilter.tsx","../src/components/filters/DateFilter.tsx","../src/components/filters/DateRangeFilter.tsx","../src/components/filters/FilterRender.tsx","../src/components/filters/FiltersPlugin.tsx","../src/ListTableController/DateRangeFilter.ts","../src/ListTableController/index.ts","../src/ListController.ts","../src/ModalListController.ts"],"sourcesContent":["import { observer } from 'mobx-react-lite';\r\nimport { ListController } from '../ListController';\r\nimport { Pagination as PG } from '@apia/components';\r\nimport { getLabel } from '@apia/util';\r\n\r\nconst labels = {\r\n deleteFilters: getLabel('btnClearFilter').text,\r\n firstPage: getLabel('btnNavFirst').text,\r\n information: getLabel('lblGridNotNum').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};\r\n\r\nexport const Pagination = observer(\r\n ({ controller }: { controller: ListController }) => {\r\n return (\r\n <PG\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={controller.state.navigation.pagesCount}\r\n recordsCount={controller.state.navigation.registers}\r\n appliedFilters={\r\n controller.table.getFilters().filter((c) => c.hasValue()).length\r\n }\r\n areAllFiltersApplied={controller.state.areAllFiltersApplied}\r\n onDeleteFilters={() => controller.clearFilters()}\r\n labels={labels}\r\n isMaximized={controller.state.isMaximized}\r\n onMaximize={() => {\r\n controller.state.isMaximized = !controller.state.isMaximized;\r\n if (controller.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 />\r\n );\r\n },\r\n);\r\n","import { Cell } from '@apia/table2-controller';\r\nimport { TColumn } from '../types';\r\nimport { makeObservable, observable } from 'mobx';\r\n\r\nexport class HeaderCell extends Cell {\r\n constructor(public definition: TColumn) {\r\n super({\r\n colName: definition.name,\r\n content: definition.title,\r\n isHidden: definition.isHidden,\r\n });\r\n\r\n makeObservable(this, { definition: observable });\r\n }\r\n\r\n public updateDefinition(newDef: Partial<TColumn>) {\r\n Object.assign(this, newDef);\r\n }\r\n}\r\n","import { Cell } from '@apia/table2-controller';\r\nimport { makeObservable, observable } from 'mobx';\r\nimport { Filter } from './Filter';\r\n\r\nexport class FilterCell extends Cell {\r\n constructor(\r\n colName: string,\r\n public filter?: Filter,\r\n ) {\r\n super({\r\n colName,\r\n tag: 'td',\r\n });\r\n\r\n makeObservable(this, { filter: observable });\r\n }\r\n}\r\n","import { makeObservable, observable } from 'mobx';\r\nimport { TFilter } from '../types';\r\nimport { EventEmitter } from '@apia/util';\r\n\r\nexport type TFilterState = TFilter & { value: string };\r\n\r\nexport class Filter<\r\n State extends TFilterState = TFilterState,\r\n> extends EventEmitter<{\r\n change: null;\r\n enter: null;\r\n blur: null;\r\n}> {\r\n protected state: State;\r\n\r\n focus() {}\r\n\r\n constructor(properties: TFilter) {\r\n super();\r\n\r\n this.state = {\r\n ...properties,\r\n value: properties.initialValue || '',\r\n } as State;\r\n\r\n makeObservable<Filter, 'state'>(this, { state: observable });\r\n }\r\n\r\n public clear() {\r\n this.state.value = '';\r\n this.emit('change', null);\r\n }\r\n\r\n public fire(ev: 'enter' | 'blur') {\r\n this.emit(ev, null);\r\n }\r\n\r\n public hasValue() {\r\n return !!this.state.value;\r\n }\r\n\r\n public getValue() {\r\n return this.state.value;\r\n }\r\n\r\n public getState<K extends keyof State>(prop: K): State[K] {\r\n return this.state[prop];\r\n }\r\n\r\n public setValue(value: any) {\r\n this.state.value = value;\r\n this.emit('change', null);\r\n }\r\n\r\n public updateDefinition(def: TFilter) {\r\n Object.assign(this.state, def);\r\n }\r\n\r\n public validate(): boolean {\r\n return !this.state.isRequired || !!this.state.value;\r\n }\r\n}\r\n","import { Cell } from '@apia/table2-controller';\r\nimport { TCell } from '../types';\r\n\r\nexport class ListCell extends Cell {\r\n constructor(\r\n colName: string,\r\n public definition: TCell,\r\n ) {\r\n super({\r\n colName,\r\n className: definition.className,\r\n content: definition.text,\r\n });\r\n }\r\n\r\n public updateDefinition(definition: TCell) {\r\n this.state.className = definition.className;\r\n this.state.content = definition.text;\r\n }\r\n}\r\n","import { observer } from 'mobx-react-lite';\r\nimport type { TFilterRender } from './FilterRender';\r\nimport { Input } from '@apia/theme';\r\n\r\nexport const InputFilter: TFilterRender = observer(({ filter }) => {\r\n return (\r\n <Input\r\n value={filter.getValue()}\r\n onChange={(ev) => {\r\n filter.setValue(ev.target.value);\r\n }}\r\n onKeyDown={(ev) => {\r\n if (ev.code === 'Enter') {\r\n filter.fire('enter');\r\n }\r\n }}\r\n onBlur={() => {\r\n filter.fire('blur');\r\n }}\r\n />\r\n );\r\n});\r\n","import { observer } from 'mobx-react-lite';\r\nimport type { TFilterRender } from './FilterRender';\r\nimport { DateInput } from '@apia/components';\r\nimport { Label } from '@apia/theme';\r\n\r\nexport const DateFilter: TFilterRender = observer(({ filter, inline }) => {\r\n if (inline) {\r\n return (\r\n <DateInput\r\n value={filter.getValue()}\r\n onChange={(ev) => {\r\n filter.setValue(ev);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Label>\r\n {filter.getState('title')}\r\n <DateInput\r\n value={filter.getValue()}\r\n onChange={(ev) => {\r\n filter.setValue(ev);\r\n }}\r\n />\r\n </Label>\r\n );\r\n});\r\n","import { observer } from 'mobx-react-lite';\r\nimport { DateInput } from '@apia/components';\r\nimport { DateRangeFilter as DRFController } from '../../ListTableController/DateRangeFilter';\r\nimport { Box, Label } from '@apia/theme';\r\n\r\nexport const DateRangeFilter = observer(\r\n ({ filter, inline }: { filter: DRFController; inline?: boolean }) => {\r\n if (inline) {\r\n return (\r\n <Box sx={{ display: 'flex' }}>\r\n <DateInput\r\n value={filter.getValueFrom()}\r\n onChange={(ev) => {\r\n return filter.setValueFrom(ev);\r\n }}\r\n />\r\n <DateInput\r\n value={filter.getValueTo()}\r\n onChange={(ev) => {\r\n return filter.setValueTo(ev);\r\n }}\r\n />\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={{ display: 'flex' }}>\r\n <Label>\r\n Desde\r\n <DateInput\r\n value={filter.getValueFrom()}\r\n onChange={(ev) => {\r\n return filter.setValueFrom(ev);\r\n }}\r\n />\r\n </Label>\r\n <Label>\r\n Hasta\r\n <DateInput\r\n value={filter.getValueTo()}\r\n onChange={(ev) => {\r\n return filter.setValueTo(ev);\r\n }}\r\n />\r\n </Label>\r\n </Box>\r\n );\r\n },\r\n);\r\n","import { observer } from 'mobx-react-lite';\r\nimport { Filter } from '../../ListTableController/Filter';\r\nimport { DateRangeFilter as DRFController } from '../../ListTableController/DateRangeFilter';\r\nimport { FC } from 'react';\r\nimport { InputFilter } from './InputFilter';\r\nimport { Input } from '@apia/theme';\r\nimport { DateFilter } from './DateFilter';\r\nimport { DateRangeFilter } from './DateRangeFilter';\r\n\r\nexport type TFilterRender = FC<{ filter: Filter; inline?: boolean }>;\r\n\r\nexport const FilterRender: TFilterRender = observer(({ filter, inline }) => {\r\n switch (filter?.getState('type')) {\r\n case 'INPUT':\r\n return <InputFilter filter={filter} inline={inline} />;\r\n case 'DATE':\r\n return <DateFilter filter={filter} inline={inline} />;\r\n case 'DATERANGE':\r\n return (\r\n <DateRangeFilter filter={filter as DRFController} inline={inline} />\r\n );\r\n }\r\n\r\n return <Input disabled />;\r\n});\r\n","import { Cell, TablePlugin } from '@apia/table2-controller';\r\nimport { FilterCell } from '../../ListTableController/FilterCell';\r\nimport { FilterRender } from './FilterRender';\r\n\r\nconst FilterRenderer = ({ cell }: { cell: Cell }) => {\r\n return cell instanceof FilterCell ? (\r\n <FilterRender filter={cell.filter!} inline />\r\n ) : (\r\n cell.getState('content')\r\n );\r\n};\r\n\r\nexport class FiltersPlugin implements TablePlugin {\r\n getRenderers?: (() => { cell?: React.FC<{ cell: Cell }> }) | undefined =\r\n () => ({\r\n cell: FilterRenderer,\r\n });\r\n}\r\n","import { getDateFormat, TDateFormat } from '@apia/util';\r\nimport { Filter, TFilterState } from './Filter';\r\nimport dayjs from 'dayjs';\r\nimport { notify } from '@apia/notifications';\r\n\r\nexport type TDateRangeFilterState = TFilterState & { valueTo: string };\r\n\r\nconst dateFormat: TDateFormat = getDateFormat();\r\n\r\nexport class DateRangeFilter extends Filter<TDateRangeFilterState> {\r\n public setValue(): void {\r\n throw new Error('Cannot set value on range filter');\r\n }\r\n\r\n public clear() {\r\n this.state.value = '';\r\n this.state.valueTo = '';\r\n this.emit('change', null);\r\n }\r\n\r\n protected checkDatesOrder(from: any, to: any) {\r\n if (!from || !to) {\r\n return true;\r\n }\r\n\r\n const fromDate = dayjs(from, dateFormat);\r\n const toDate = dayjs(to, dateFormat);\r\n\r\n const isValid = !fromDate.isAfter(toDate);\r\n\r\n if (!isValid) {\r\n notify({ message: 'Fecha desde no puede ser mayor que fecha hasta' });\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n public hasValue(): boolean {\r\n return !!this.state.value || !!this.state.valueTo;\r\n }\r\n\r\n public getValue(): string {\r\n return `${this.state.value || ''}~${this.state.valueTo || ''}`;\r\n }\r\n\r\n public getValueFrom() {\r\n return this.state.value;\r\n }\r\n\r\n public getValueTo() {\r\n return this.state.valueTo;\r\n }\r\n\r\n public setValueFrom(value: any) {\r\n if (this.checkDatesOrder(value, this.state.valueTo)) {\r\n this.state.value = value;\r\n this.emit('change', null);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public setValueTo(value: any) {\r\n if (this.checkDatesOrder(this.state.value, value)) {\r\n this.state.valueTo = value;\r\n this.emit('change', null);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public validate(): boolean {\r\n return (\r\n !this.state.isRequired || (!!this.state.value && !!this.state.valueTo)\r\n );\r\n }\r\n}\r\n","import { Row, TableController } from '@apia/table2-controller';\r\nimport { TFilter, TLoadStructure } from '../types';\r\nimport { arrayOrArray, EventEmitter } from '@apia/util';\r\nimport { HeaderCell } from './HeaderCell';\r\nimport { FilterCell } from './FilterCell';\r\nimport { Filter } from './Filter';\r\nimport { ListController } from '../ListController';\r\nimport { ListCell } from './ListCell';\r\nimport { FiltersPlugin } from '../components/filters/FiltersPlugin';\r\nimport { DateRangeFilter } from './DateRangeFilter';\r\n\r\nexport class ListTableController extends EventEmitter<{\r\n filterChange: Filter;\r\n filterBlur: Filter;\r\n filterPressEnter: Filter;\r\n}> {\r\n controller: TableController;\r\n\r\n protected columnsMap = new Map<string, HeaderCell>();\r\n protected filtersMap = new Map<string, Filter>();\r\n\r\n constructor(public list: ListController) {\r\n super();\r\n this.controller = new TableController();\r\n this.controller.setPlugins((c) => [...c, new FiltersPlugin()]);\r\n this.init();\r\n }\r\n\r\n protected init() {\r\n this.controller.head.addRow(new Row('header'));\r\n this.controller.head.addRow(\r\n new Row('filters')\r\n .setState('isHidden', true)\r\n .setState('domProperties', { className: 'filtersRow' }),\r\n );\r\n }\r\n\r\n public clear() {\r\n this.controller.body.clear();\r\n }\r\n\r\n public fromGenericTable(table: TLoadStructure) {\r\n /**\r\n * Parse structure\r\n */\r\n this.controller.setState('allowEdition', table.behavior.allowEdition);\r\n this.controller.setState('allowSelection', table.behavior.allowSelection);\r\n this.controller.setState(\r\n 'isSelectionMultiple',\r\n table.behavior.isMultipleSelection,\r\n );\r\n\r\n /**\r\n * Dont know what to do with\r\n *\r\n * hasDynamicStructure\r\n * showAdditionalInfo\r\n */\r\n\r\n /**\r\n * Parse columns and filters\r\n */\r\n const columns = arrayOrArray(table.columns);\r\n const filters = arrayOrArray(table.filters);\r\n\r\n this.columnsMap.clear();\r\n\r\n for (const filter of filters) {\r\n if (this.filtersMap.get(filter.name)) {\r\n this.filtersMap.get(filter.name)?.updateDefinition(filter);\r\n } else {\r\n this.filtersMap.set(filter.name, this.makeFilter(filter));\r\n }\r\n }\r\n for (const key of this.filtersMap.keys()) {\r\n if (!filters.find((c) => c.name === key)) {\r\n this.removeFilter(key);\r\n }\r\n }\r\n\r\n this.controller.head.rows[0].cells.splice(columns.length);\r\n this.controller.head.rows[1].cells.splice(columns.length);\r\n\r\n let i;\r\n for (i = 0; i < columns.length; i++) {\r\n const column = columns[i];\r\n const colName = column.name;\r\n\r\n if (!this.controller.head.rows[0].cells[i]) {\r\n this.controller.head.rows[0].addCell(new HeaderCell(column));\r\n } else {\r\n (this.controller.head.rows[0].cells[i] as HeaderCell).updateDefinition(\r\n column,\r\n );\r\n }\r\n\r\n const filter = filters.find((c) => c.columnName === colName);\r\n if (this.controller.head.rows[1].cells[i]) {\r\n (this.controller.head.rows[1].cells[i] as FilterCell).setState(\r\n 'colName',\r\n colName,\r\n );\r\n (this.controller.head.rows[1].cells[i] as FilterCell).filter =\r\n this.filtersMap.get(\r\n filter?.name || 'nohayfiltrodefinidiparaestacolumna',\r\n );\r\n } else {\r\n this.controller.head.rows[1].addCell(\r\n new FilterCell(\r\n colName,\r\n this.filtersMap.get(\r\n filter?.name || 'nohayfiltrodefinidiparaestacolumna',\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n this.columnsMap.set(\r\n colName,\r\n this.controller.head.rows[0].cells[i] as HeaderCell,\r\n );\r\n }\r\n\r\n /**\r\n * Process rows\r\n */\r\n const rows = arrayOrArray(table.rows);\r\n this.controller.body.rows.splice(rows.length);\r\n for (let i = 0; i < rows.length; i++) {\r\n if (!this.controller.body.rows[i]) {\r\n this.controller.body.addRow(new Row(rows[i].id));\r\n } else {\r\n this.controller.body.rows[i].setState('id', rows[i].id);\r\n }\r\n\r\n this.controller.body.rows[i].cells.splice(columns.length);\r\n for (let j = 0; j < columns.length; j++) {\r\n if (this.controller.body.rows[i].cells[j]) {\r\n // Hay celda en i,j\r\n (this.controller.body.rows[i].cells[j] as ListCell).updateDefinition(\r\n arrayOrArray(rows[i].cells)[j],\r\n );\r\n } else {\r\n // No hay celda en i,j\r\n this.controller.body.rows[i].addCell(\r\n new ListCell(columns[j].name, arrayOrArray(rows[i].cells)[j]),\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getFilter(filterName: string) {\r\n return this.filtersMap.get(filterName);\r\n }\r\n\r\n public getFilters() {\r\n return [...this.filtersMap.values()];\r\n }\r\n\r\n private listeners: Map<string, (() => unknown)[]> = new Map();\r\n\r\n private removeFilter(filterName: string) {\r\n this.filtersMap.delete(filterName);\r\n this.listeners.get(filterName)?.forEach((listener) => listener());\r\n this.listeners.delete(filterName);\r\n }\r\n\r\n private makeFilter(filter: TFilter) {\r\n let inst: Filter;\r\n\r\n if (filter.type === 'DATERANGE') inst = new DateRangeFilter(filter);\r\n else inst = new Filter(filter);\r\n const listenBlur = () => this.emit('filterBlur', inst);\r\n const listenChange = () => this.emit('filterChange', inst);\r\n const listenEnter = () => this.emit('filterPressEnter', inst);\r\n inst.on('blur', listenBlur);\r\n inst.on('change', listenChange);\r\n inst.on('enter', listenEnter);\r\n this.listeners.set(inst.getState('name'), [\r\n listenBlur,\r\n listenChange,\r\n listenEnter,\r\n ]);\r\n return inst;\r\n }\r\n}\r\n","import { TLoadStructure, TQueryEnvironment } from './types';\r\nimport { ApiaApi, makeApiaUrl } from '@apia/api';\r\nimport { ListTableController } from './ListTableController';\r\nimport { getLabel, Url } from '@apia/util';\r\nimport { makeObservable, observable, runInAction } from 'mobx';\r\nimport { notify } from '@apia/notifications';\r\n\r\nexport type ListState = {\r\n areAllFiltersApplied: boolean;\r\n navigation: {\r\n pagesCount: number;\r\n registers: number;\r\n currentPage: number;\r\n };\r\n fncId: number;\r\n isFavorite: boolean;\r\n isMaximized: boolean;\r\n};\r\n\r\nexport type TListRefreshResponse = {\r\n list: ListState & TLoadStructure;\r\n};\r\n\r\nexport type TListControllerConfiguration = {\r\n ajaxUrl?: string;\r\n refreshOnStartup?: boolean;\r\n};\r\n\r\nexport class ListController {\r\n public readonly table: ListTableController;\r\n public readonly state: ListState = {\r\n areAllFiltersApplied: true,\r\n navigation: { currentPage: 0, pagesCount: 0, registers: 0 },\r\n fncId: -1,\r\n isFavorite: false,\r\n isMaximized: false,\r\n };\r\n\r\n constructor(\r\n protected env: TQueryEnvironment,\r\n protected configuration?: TListControllerConfiguration,\r\n ) {\r\n this.table = new ListTableController(this);\r\n\r\n this.initializeFavoriteAction();\r\n if (configuration?.refreshOnStartup !== false) {\r\n this.refresh();\r\n }\r\n\r\n this.table.on('filterChange', (filter) => {\r\n this.state.areAllFiltersApplied = false;\r\n\r\n if (filter.getState('runAutomatically')) {\r\n this.throttleRefresh();\r\n }\r\n });\r\n\r\n this.table.on('filterPressEnter', () => {\r\n this.refresh();\r\n });\r\n\r\n this.table.on('filterBlur', () => {\r\n console.log('blur');\r\n });\r\n\r\n makeObservable(this, { state: observable });\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 }, 100) as any;\r\n }\r\n\r\n protected getAjaxParameters(): Record<string, unknown> {\r\n return { ajaxUrl: this.env.window.URL_REQUEST_AJAX };\r\n }\r\n\r\n async clearFilters() {\r\n runInAction(() => {\r\n this.table.getFilters().forEach((c) => c.clear());\r\n this.throttleRefresh();\r\n });\r\n }\r\n\r\n async page(pageNumber: number) {\r\n if (this.validateFilters()) {\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({\r\n action: 'refresh',\r\n page: pageNumber,\r\n ...this.getAjaxParameters(),\r\n }),\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 protected validateFilters() {\r\n const invalidFilters = this.table.getFilters().filter((c) => !c.validate());\r\n if (invalidFilters.length) {\r\n this.table.clear();\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 async refresh() {\r\n if (this.validateFilters()) {\r\n this.state.areAllFiltersApplied = true;\r\n\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({\r\n action: 'refresh',\r\n ...this.getAjaxParameters(),\r\n }),\r\n {\r\n postData: {\r\n ...this.table.getFilters().reduce(\r\n (acc, cur) => ({\r\n ...acc,\r\n [`filter_${cur.getState('name')}`]: cur.getValue(),\r\n }),\r\n {},\r\n ),\r\n },\r\n postDataTreatement: 'stringify',\r\n stringifyOptions: { arrayFormat: 'repeat' },\r\n },\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 protected async initializeFavoriteAction() {\r\n this.state.fncId = Number.parseInt(\r\n String(new Url(window.location.href).getParameter('favFncId')),\r\n );\r\n\r\n const res = await ApiaApi.post<{\r\n isFavorite: boolean;\r\n }>(\r\n makeApiaUrl({ action: 'loadFavoriteState', favFncId: this.state.fncId }),\r\n );\r\n\r\n if (res?.data) {\r\n this.state.isFavorite = res.data.isFavorite;\r\n }\r\n }\r\n\r\n public async toggleFavoriteFunctionality() {\r\n const res = await ApiaApi.post<{\r\n isFavorite: boolean;\r\n }>(makeApiaUrl({ action: 'toggleFavorite', favFncId: this.state.fncId }));\r\n\r\n if (res?.data) {\r\n this.state.isFavorite = res.data.isFavorite;\r\n }\r\n }\r\n\r\n protected processRefreshResult(result: TListRefreshResponse) {\r\n this.table.fromGenericTable(result.list);\r\n this.state.navigation = result.list.navigation;\r\n }\r\n}\r\n","import { ListController, TListControllerConfiguration } from './ListController';\r\nimport { TQueryEnvironment } from './types';\r\n\r\nexport class ModalListController extends ListController {\r\n private tabId = Date.now();\r\n\r\n public constructor(\r\n env: TQueryEnvironment,\r\n configuration: TListControllerConfiguration,\r\n ) {\r\n super(env, { ...configuration, refreshOnStartup: false });\r\n }\r\n\r\n protected getAjaxParameters(): Record<string, unknown> {\r\n return { ajaxUrl: this.configuration!.ajaxUrl, tabId: this.tabId };\r\n }\r\n\r\n protected initializeFavoriteAction(): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n public toggleFavoriteFunctionality(): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n}\r\n"],"names":["PG","__publicField","DateRangeFilter","i"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/Pagination.tsx","../src/ListController.ts","../src/ModalListController.ts"],"sourcesContent":["import { observer } from 'mobx-react-lite';\r\nimport { ListController } from '../ListController';\r\nimport { Pagination as PG } from '@apia/components';\r\nimport { getLabel } from '@apia/util';\r\n\r\nconst labels = {\r\n deleteFilters: getLabel('btnClearFilter').text,\r\n firstPage: getLabel('btnNavFirst').text,\r\n information: getLabel('lblGridNotNum').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};\r\n\r\nexport const Pagination = observer(\r\n ({ controller }: { controller: ListController }) => {\r\n return (\r\n <PG\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={controller.state.navigation.pagesCount}\r\n recordsCount={controller.state.navigation.registers}\r\n appliedFilters={\r\n controller.table.getFilters().filter((c) => c.hasValue()).length\r\n }\r\n areAllFiltersApplied={controller.state.areAllFiltersApplied}\r\n onDeleteFilters={() => controller.clearFilters()}\r\n labels={labels}\r\n isMaximized={controller.state.isMaximized}\r\n onMaximize={() => {\r\n controller.state.isMaximized = !controller.state.isMaximized;\r\n if (controller.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 />\r\n );\r\n },\r\n);\r\n","import { TQueryEnvironment } from './types';\r\nimport { ApiaApi, makeApiaUrl } from '@apia/api';\r\nimport { getLabel, TasksQueue, TLoadStructure, Url } from '@apia/util';\r\nimport { makeObservable, observable, runInAction } from 'mobx';\r\nimport { notify } from '@apia/notifications';\r\nimport { DateFilter, TableController } from '@apia/table2-controller';\r\n\r\nexport type ListState = {\r\n areAllFiltersApplied: boolean;\r\n navigation: {\r\n pagesCount: number;\r\n registers: number;\r\n currentPage: number;\r\n };\r\n fncId: number;\r\n isFavorite: boolean;\r\n isMaximized: boolean;\r\n running: boolean;\r\n};\r\n\r\nexport type TListRefreshResponse = {\r\n list: ListState & TLoadStructure;\r\n};\r\n\r\nexport type TListControllerConfiguration = {\r\n ajaxUrl?: string;\r\n refreshOnStartup?: boolean;\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: { currentPage: 0, pagesCount: 0, registers: 0 },\r\n fncId: -1,\r\n isFavorite: false,\r\n isMaximized: false,\r\n running: true,\r\n };\r\n\r\n constructor(\r\n protected env: TQueryEnvironment,\r\n protected configuration?: TListControllerConfiguration,\r\n ) {\r\n this.table = new TableController();\r\n\r\n this.initializeFavoriteAction();\r\n if (configuration?.refreshOnStartup !== false) {\r\n this.refresh();\r\n }\r\n\r\n this.table.on('filterChange', (filter) => {\r\n this.state.areAllFiltersApplied = false;\r\n\r\n if (filter.getState('runAutomatically')) {\r\n 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\r\n makeObservable(this, { state: observable });\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 getAjaxParameters(): Record<string, unknown> {\r\n return { ajaxUrl: this.env.window.URL_REQUEST_AJAX };\r\n }\r\n\r\n async clearFilters() {\r\n runInAction(() => {\r\n this.table.getFilters().forEach((c) => c.clear());\r\n this.throttleRefresh();\r\n });\r\n }\r\n\r\n async page(pageNumber: number) {\r\n this.queue.clear();\r\n this.queue.run(async () => {\r\n if (this.validateFilters()) {\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({\r\n action: 'refresh',\r\n page: pageNumber,\r\n ...this.getAjaxParameters(),\r\n }),\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 protected validateFilters() {\r\n const invalidFilters = this.table.getFilters().filter((c) => !c.validate());\r\n if (invalidFilters.length) {\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 async refresh() {\r\n if (!this.state.running) {\r\n return false;\r\n }\r\n\r\n this.queue.clear();\r\n this.queue.run(async () => {\r\n if (this.validateFilters()) {\r\n this.state.areAllFiltersApplied = true;\r\n\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({\r\n action: 'refresh',\r\n ...this.getAjaxParameters(),\r\n }),\r\n {\r\n postData: {\r\n ...this.table.getFilters().reduce(\r\n (acc, cur) => ({\r\n ...acc,\r\n [`filter_${cur.getState('name')}`]: cur.getValue(),\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')}`]:\r\n cur.getState('sortState'),\r\n }),\r\n {},\r\n ),\r\n },\r\n postDataTreatement: 'stringify',\r\n stringifyOptions: { arrayFormat: 'repeat' },\r\n },\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 protected async initializeFavoriteAction() {\r\n this.state.fncId = Number.parseInt(\r\n String(new Url(window.location.href).getParameter('favFncId')),\r\n );\r\n\r\n const res = await ApiaApi.post<{\r\n isFavorite: boolean;\r\n }>(\r\n makeApiaUrl({ action: 'loadFavoriteState', favFncId: this.state.fncId }),\r\n );\r\n\r\n if (res?.data) {\r\n this.state.isFavorite = res.data.isFavorite;\r\n }\r\n }\r\n\r\n public kill() {\r\n this.state.running = false;\r\n this.queue.clear();\r\n }\r\n\r\n public async toggleFavoriteFunctionality() {\r\n const res = await ApiaApi.post<{\r\n isFavorite: boolean;\r\n }>(makeApiaUrl({ action: 'toggleFavorite', favFncId: this.state.fncId }));\r\n\r\n if (res?.data) {\r\n this.state.isFavorite = res.data.isFavorite;\r\n }\r\n }\r\n\r\n protected processRefreshResult(result: TListRefreshResponse) {\r\n this.table.fromGenericTable(result.list);\r\n this.state.navigation = result.list.navigation;\r\n }\r\n}\r\n","import { ListController, TListControllerConfiguration } from './ListController';\r\nimport { TQueryEnvironment } from './types';\r\n\r\nexport class ModalListController extends ListController {\r\n private tabId = Date.now();\r\n\r\n public constructor(\r\n env: TQueryEnvironment,\r\n configuration: TListControllerConfiguration,\r\n ) {\r\n super(env, { ...configuration, refreshOnStartup: false });\r\n }\r\n\r\n protected getAjaxParameters(): Record<string, unknown> {\r\n return { ajaxUrl: this.configuration!.ajaxUrl, tabId: this.tabId };\r\n }\r\n\r\n protected initializeFavoriteAction(): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n public toggleFavoriteFunctionality(): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n}\r\n"],"names":["PG","__publicField"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/query",
3
- "version": "4.0.45",
3
+ "version": "5.0.0",
4
4
  "sideEffects": false,
5
5
  "author": "Alexis Leite <alexisleite@live.com>",
6
6
  "main": "dist/index.js",
@@ -28,13 +28,13 @@
28
28
  "registry": "https://registry.npmjs.org/"
29
29
  },
30
30
  "dependencies": {
31
- "@apia/api": "^4.0.45",
32
- "@apia/components": "^4.0.45",
33
- "@apia/table2-controller": "^4.0.45",
34
- "@apia/theme": "^4.0.45",
35
- "@apia/util": "^4.0.45",
31
+ "@apia/api": "^5.0.0",
32
+ "@apia/components": "^5.0.0",
33
+ "@apia/table2-controller": "^5.0.0",
34
+ "@apia/theme": "^5.0.0",
35
+ "@apia/util": "^5.0.0",
36
36
  "dayjs": "^1.11.13",
37
37
  "mobx": "^6.13.7"
38
38
  },
39
- "gitHead": "1b035d1b515ceb49207373a4fafcf0ff465bc439"
39
+ "gitHead": "985b675635fb9d3dc5e26a90a6d9898864418b84"
40
40
  }