@apia/query 4.0.44 → 4.0.46

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,10 +1,161 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { TasksQueue, TLoadStructure } from '@apia/util';
3
- import { TableController } from '@apia/table2-controller';
2
+ import { EventEmitter } from '@apia/util';
3
+ import { Cell, 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
+ }
8
159
 
9
160
  type ListState = {
10
161
  areAllFiltersApplied: boolean;
@@ -16,7 +167,6 @@ type ListState = {
16
167
  fncId: number;
17
168
  isFavorite: boolean;
18
169
  isMaximized: boolean;
19
- running: boolean;
20
170
  };
21
171
  type TListRefreshResponse = {
22
172
  list: ListState & TLoadStructure;
@@ -28,8 +178,7 @@ type TListControllerConfiguration = {
28
178
  declare class ListController {
29
179
  protected env: TQueryEnvironment;
30
180
  protected configuration?: TListControllerConfiguration | undefined;
31
- queue: TasksQueue;
32
- readonly table: TableController;
181
+ readonly table: ListTableController;
33
182
  readonly state: ListState;
34
183
  constructor(env: TQueryEnvironment, configuration?: TListControllerConfiguration | undefined);
35
184
  protected refreshTimeout: number;
@@ -38,9 +187,8 @@ declare class ListController {
38
187
  clearFilters(): Promise<void>;
39
188
  page(pageNumber: number): Promise<void>;
40
189
  protected validateFilters(): boolean;
41
- refresh(): Promise<false | undefined>;
190
+ refresh(): Promise<void>;
42
191
  protected initializeFavoriteAction(): Promise<void>;
43
- kill(): void;
44
192
  toggleFavoriteFunctionality(): Promise<void>;
45
193
  protected processRefreshResult(result: TListRefreshResponse): void;
46
194
  }
@@ -59,5 +207,5 @@ declare class ModalListController extends ListController {
59
207
  toggleFavoriteFunctionality(): Promise<void>;
60
208
  }
61
209
 
62
- export { ListController, type ListState, ModalListController, Pagination, type TListControllerConfiguration, type TListRefreshResponse, type TQueryEnvironment };
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 };
63
211
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { observer } from 'mobx-react-lite';
3
- import { Pagination as Pagination$1 } from '@apia/components';
4
- import { getLabel, TasksQueue, Url } from '@apia/util';
3
+ import { Pagination as Pagination$1, DateInput } from '@apia/components';
4
+ import { getLabel, EventEmitter, getDateFormat, arrayOrArray, Url } from '@apia/util';
5
5
  import { ApiaApi, makeApiaUrl } from '@apia/api';
6
+ import { Cell, TableController, Row } from '@apia/table2-controller';
6
7
  import { makeObservable, observable, runInAction } from 'mobx';
8
+ import { Input, Label, Box } from '@apia/theme';
9
+ import dayjs from 'dayjs';
7
10
  import { notify } from '@apia/notifications';
8
- import { TableController, DateFilter } from '@apia/table2-controller';
9
11
 
10
12
  const labels = {
11
13
  deleteFilters: getLabel("btnClearFilter").text,
@@ -55,6 +57,416 @@ const Pagination = observer(
55
57
  }
56
58
  );
57
59
 
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
+
58
470
  var __defProp$1 = Object.defineProperty;
59
471
  var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
60
472
  var __publicField$1 = (obj, key, value) => {
@@ -65,18 +477,16 @@ class ListController {
65
477
  constructor(env, configuration) {
66
478
  this.env = env;
67
479
  this.configuration = configuration;
68
- __publicField$1(this, "queue", new TasksQueue());
69
480
  __publicField$1(this, "table");
70
481
  __publicField$1(this, "state", {
71
482
  areAllFiltersApplied: true,
72
483
  navigation: { currentPage: 0, pagesCount: 0, registers: 0 },
73
484
  fncId: -1,
74
485
  isFavorite: false,
75
- isMaximized: false,
76
- running: true
486
+ isMaximized: false
77
487
  });
78
488
  __publicField$1(this, "refreshTimeout", -1);
79
- this.table = new TableController();
489
+ this.table = new ListTableController(this);
80
490
  this.initializeFavoriteAction();
81
491
  if (configuration?.refreshOnStartup !== false) {
82
492
  this.refresh();
@@ -87,26 +497,19 @@ class ListController {
87
497
  this.throttleRefresh();
88
498
  }
89
499
  });
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
- }
99
- });
100
- this.table.on("columnSort", () => {
500
+ this.table.on("filterPressEnter", () => {
101
501
  this.refresh();
102
502
  });
503
+ this.table.on("filterBlur", () => {
504
+ console.log("blur");
505
+ });
103
506
  makeObservable(this, { state: observable });
104
507
  }
105
508
  throttleRefresh() {
106
509
  clearTimeout(this.refreshTimeout);
107
510
  this.refreshTimeout = setTimeout(() => {
108
511
  this.refresh();
109
- }, 300);
512
+ }, 100);
110
513
  }
111
514
  getAjaxParameters() {
112
515
  return { ajaxUrl: this.env.window.URL_REQUEST_AJAX };
@@ -118,25 +521,23 @@ class ListController {
118
521
  });
119
522
  }
120
523
  async page(pageNumber) {
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
- }
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);
134
534
  }
135
- });
535
+ }
136
536
  }
137
537
  validateFilters() {
138
538
  const invalidFilters = this.table.getFilters().filter((c) => !c.validate());
139
539
  if (invalidFilters.length) {
540
+ this.table.clear();
140
541
  notify({
141
542
  title: getLabel("titWarning").text,
142
543
  message: getLabel("msgQryFilterRequiredList", {
@@ -149,44 +550,31 @@ class ListController {
149
550
  return invalidFilters.length === 0;
150
551
  }
151
552
  async refresh() {
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);
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" }
187
572
  }
573
+ );
574
+ if (result?.data?.list) {
575
+ this.processRefreshResult(result.data);
188
576
  }
189
- });
577
+ }
190
578
  }
191
579
  async initializeFavoriteAction() {
192
580
  this.state.fncId = Number.parseInt(
@@ -199,10 +587,6 @@ class ListController {
199
587
  this.state.isFavorite = res.data.isFavorite;
200
588
  }
201
589
  }
202
- kill() {
203
- this.state.running = false;
204
- this.queue.clear();
205
- }
206
590
  async toggleFavoriteFunctionality() {
207
591
  const res = await ApiaApi.post(makeApiaUrl({ action: "toggleFavorite", favFncId: this.state.fncId }));
208
592
  if (res?.data) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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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"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/query",
3
- "version": "4.0.44",
3
+ "version": "4.0.46",
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.44",
32
- "@apia/components": "^4.0.44",
33
- "@apia/table2-controller": "^4.0.44",
34
- "@apia/theme": "^4.0.44",
35
- "@apia/util": "^4.0.44",
31
+ "@apia/api": "^4.0.46",
32
+ "@apia/components": "^4.0.46",
33
+ "@apia/table2-controller": "^4.0.46",
34
+ "@apia/theme": "^4.0.46",
35
+ "@apia/util": "^4.0.46",
36
36
  "dayjs": "^1.11.13",
37
37
  "mobx": "^6.13.7"
38
38
  },
39
- "gitHead": "0822e3a7f4a7fa49b47087e8097caab678d36ef6"
39
+ "gitHead": "4e62bf323a961a7725868bf069566daf21b084f8"
40
40
  }