@apia/query 4.0.30 → 4.0.31

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,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Cell, TableController } from '@apia/table2-controller';
3
2
  import { EventEmitter } from '@apia/util';
3
+ import { Cell, TableController } from '@apia/table2-controller';
4
4
 
5
5
  type TQueryEnvironment = {
6
6
  window: Window;
@@ -43,8 +43,9 @@ type TFilter = TWithAttributes & TWithOptions & {
43
43
  columnName: string;
44
44
  isRequired: boolean;
45
45
  initialValue: string;
46
+ runAutomatically: boolean;
46
47
  title: string;
47
- type: 'COMBO' | 'DATE' | 'NUMBER' | 'STRING';
48
+ type: 'DATE' | 'INPUT' | 'COMBO' | 'DATERANGE' | 'SIZE' | 'SIZERANGE' | 'DATEHOUR' | 'DATEHOURRANGE';
48
49
  };
49
50
  type TLoadStructure = {
50
51
  behavior: TBehavior;
@@ -109,44 +110,55 @@ interface IStatesSource {
109
110
  isLight: boolean;
110
111
  }
111
112
 
112
- declare class HeaderCell extends Cell {
113
- definition: TColumn;
114
- constructor(definition: TColumn);
115
- updateDefinition(newDef: Partial<TColumn>): void;
116
- }
117
-
118
- declare class Filter extends EventEmitter<{
113
+ type TFilterState = TFilter & {
114
+ value: string;
115
+ };
116
+ declare class Filter<State extends TFilterState = TFilterState> extends EventEmitter<{
119
117
  change: null;
120
- click: null;
118
+ enter: null;
121
119
  blur: null;
122
120
  }> {
123
- state: TFilter;
121
+ protected state: State;
124
122
  focus(): void;
125
123
  constructor(properties: TFilter);
124
+ clear(): void;
125
+ fire(ev: 'enter' | 'blur'): void;
126
+ hasValue(): boolean;
126
127
  getValue(): string;
128
+ getState<K extends keyof State>(prop: K): State[K];
127
129
  setValue(value: any): void;
128
- fire(ev: 'click' | 'blur'): 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;
129
138
  }
130
139
 
131
140
  declare class ListTableController extends EventEmitter<{
132
141
  filterChange: Filter;
133
142
  filterBlur: Filter;
134
- filterClick: Filter;
143
+ filterPressEnter: Filter;
135
144
  }> {
136
145
  list: ListController;
137
146
  controller: TableController;
138
147
  protected columnsMap: Map<string, HeaderCell>;
139
- protected filtersMap: Map<string, Filter>;
148
+ protected filtersMap: Map<string, Filter<TFilterState>>;
140
149
  constructor(list: ListController);
141
150
  protected init(): void;
151
+ clear(): void;
142
152
  fromGenericTable(table: TLoadStructure): void;
143
- getFilter(filterName: string): Filter | undefined;
153
+ getFilter(filterName: string): Filter<TFilterState> | undefined;
154
+ getFilters(): Filter<TFilterState>[];
144
155
  private listeners;
145
- private clearFilters;
156
+ private removeFilter;
146
157
  private makeFilter;
147
158
  }
148
159
 
149
160
  type ListState = {
161
+ areAllFiltersApplied: boolean;
150
162
  navigation: {
151
163
  pagesCount: number;
152
164
  registers: number;
@@ -154,6 +166,7 @@ type ListState = {
154
166
  };
155
167
  fncId: number;
156
168
  isFavorite: boolean;
169
+ isMaximized: boolean;
157
170
  };
158
171
  type TListRefreshResponse = {
159
172
  list: ListState & TLoadStructure;
@@ -163,7 +176,11 @@ declare class ListController {
163
176
  readonly table: ListTableController;
164
177
  readonly state: ListState;
165
178
  constructor(env: TQueryEnvironment);
179
+ protected refreshTimeout: number;
180
+ protected throttleRefresh(): void;
181
+ clearFilters(): Promise<void>;
166
182
  page(pageNumber: number): Promise<void>;
183
+ protected validateFilters(): boolean;
167
184
  refresh(): Promise<void>;
168
185
  protected initializeFavoriteAction(): Promise<void>;
169
186
  toggleFavoriteFunctionality(): Promise<void>;
package/dist/index.js CHANGED
@@ -1,11 +1,30 @@
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';
3
+ import { Pagination as Pagination$1, DateInput } from '@apia/components';
4
+ import { getLabel, EventEmitter, getDateFormat, arrayOrArray, Url } from '@apia/util';
4
5
  import { ApiaApi, makeApiaUrl } from '@apia/api';
5
6
  import { Cell, TableController, Row } from '@apia/table2-controller';
6
- import { EventEmitter, arrayOrArray, Url } from '@apia/util';
7
- import { makeObservable, observable } from 'mobx';
7
+ import { makeObservable, observable, runInAction } from 'mobx';
8
+ import { Input, Label, Box } from '@apia/theme';
9
+ import dayjs from 'dayjs';
10
+ import { notify } from '@apia/notifications';
8
11
 
12
+ const labels = {
13
+ deleteFilters: getLabel("btnClearFilter").text,
14
+ firstPage: getLabel("btnNavFirst").text,
15
+ information: getLabel("lblGridNotNum").text,
16
+ lastPage: getLabel("btnNavLast").text,
17
+ nextPage: getLabel("btnNavNext").text,
18
+ maximize: getLabel("lblMaximizeWindow").text,
19
+ minimize: getLabel("lblMinimizeWindow").text,
20
+ moreData: getLabel("lblMoreData").text,
21
+ page: getLabel("lblPage").text,
22
+ pageInputInstructions: getLabel("btnNavFirst").text,
23
+ previousPage: getLabel("btnNavPrev").text,
24
+ refresh: getLabel("btnAct").text,
25
+ totalRecords: getLabel("lblTotReg").text,
26
+ totalRecordsReached: getLabel("msgTotRegReached").text
27
+ };
9
28
  const Pagination = observer(
10
29
  ({ controller }) => {
11
30
  return /* @__PURE__ */ jsx(
@@ -18,7 +37,21 @@ const Pagination = observer(
18
37
  onRefresh: () => {
19
38
  controller.refresh();
20
39
  },
21
- pageCount: controller.state.navigation.pagesCount
40
+ pageCount: controller.state.navigation.pagesCount,
41
+ recordsCount: controller.state.navigation.registers,
42
+ appliedFilters: controller.table.getFilters().filter((c) => c.hasValue()).length,
43
+ areAllFiltersApplied: controller.state.areAllFiltersApplied,
44
+ onDeleteFilters: () => controller.clearFilters(),
45
+ labels,
46
+ isMaximized: controller.state.isMaximized,
47
+ onMaximize: () => {
48
+ controller.state.isMaximized = !controller.state.isMaximized;
49
+ if (controller.state.isMaximized) {
50
+ document.querySelector(".twoColumnsList")?.classList.add("maximized");
51
+ } else {
52
+ document.querySelector(".twoColumnsList")?.classList.remove("maximized");
53
+ }
54
+ }
22
55
  }
23
56
  );
24
57
  }
@@ -42,37 +75,57 @@ class HeaderCell extends Cell {
42
75
  class FilterCell extends Cell {
43
76
  constructor(colName, filter) {
44
77
  super({
45
- colName
78
+ colName,
79
+ tag: "td"
46
80
  });
47
81
  this.filter = filter;
48
82
  makeObservable(this, { filter: observable });
49
83
  }
50
84
  }
51
85
 
52
- var __defProp$2 = Object.defineProperty;
53
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
54
- var __publicField$2 = (obj, key, value) => {
55
- __defNormalProp$2(obj, key + "" , value);
86
+ var __defProp$3 = Object.defineProperty;
87
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
88
+ var __publicField$3 = (obj, key, value) => {
89
+ __defNormalProp$3(obj, key + "" , value);
56
90
  return value;
57
91
  };
58
92
  class Filter extends EventEmitter {
59
93
  constructor(properties) {
60
94
  super();
61
- __publicField$2(this, "state");
62
- this.state = properties;
95
+ __publicField$3(this, "state");
96
+ this.state = {
97
+ ...properties,
98
+ value: properties.initialValue || ""
99
+ };
63
100
  makeObservable(this, { state: observable });
64
101
  }
65
102
  focus() {
66
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
+ }
67
114
  getValue() {
68
- return this.state.initialValue;
115
+ return this.state.value;
116
+ }
117
+ getState(prop) {
118
+ return this.state[prop];
69
119
  }
70
120
  setValue(value) {
71
- this.state.initialValue = value;
121
+ this.state.value = value;
72
122
  this.emit("change", null);
73
123
  }
74
- fire(ev) {
75
- this.emit(ev, null);
124
+ updateDefinition(def) {
125
+ Object.assign(this.state, def);
126
+ }
127
+ validate() {
128
+ return !this.state.isRequired || !!this.state.value;
76
129
  }
77
130
  }
78
131
 
@@ -91,6 +144,189 @@ class ListCell extends Cell {
91
144
  }
92
145
  }
93
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$2 = Object.defineProperty;
259
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
260
+ var __publicField$2 = (obj, key, value) => {
261
+ __defNormalProp$2(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$2(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
+
94
330
  var __defProp$1 = Object.defineProperty;
95
331
  var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
96
332
  var __publicField$1 = (obj, key, value) => {
@@ -101,15 +337,22 @@ class ListTableController extends EventEmitter {
101
337
  constructor(list) {
102
338
  super();
103
339
  this.list = list;
104
- __publicField$1(this, "controller", new TableController());
340
+ __publicField$1(this, "controller");
105
341
  __publicField$1(this, "columnsMap", /* @__PURE__ */ new Map());
106
342
  __publicField$1(this, "filtersMap", /* @__PURE__ */ new Map());
107
- __publicField$1(this, "listeners", []);
343
+ __publicField$1(this, "listeners", /* @__PURE__ */ new Map());
344
+ this.controller = new TableController();
345
+ this.controller.setPlugins((c) => [...c, new FiltersPlugin()]);
108
346
  this.init();
109
347
  }
110
348
  init() {
111
349
  this.controller.head.addRow(new Row("header"));
112
- this.controller.head.addRow(new Row("filters").setState("isHidden", true));
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();
113
356
  }
114
357
  fromGenericTable(table) {
115
358
  this.controller.setState("allowEdition", table.behavior.allowEdition);
@@ -120,10 +363,18 @@ class ListTableController extends EventEmitter {
120
363
  );
121
364
  const columns = arrayOrArray(table.columns);
122
365
  const filters = arrayOrArray(table.filters);
123
- this.clearFilters();
124
366
  this.columnsMap.clear();
125
367
  for (const filter of filters) {
126
- this.filtersMap.set(filter.name, this.makeFilter(filter));
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
+ }
127
378
  }
128
379
  this.controller.head.rows[0].cells.splice(columns.length);
129
380
  this.controller.head.rows[1].cells.splice(columns.length);
@@ -187,19 +438,31 @@ class ListTableController extends EventEmitter {
187
438
  getFilter(filterName) {
188
439
  return this.filtersMap.get(filterName);
189
440
  }
190
- clearFilters() {
191
- this.listeners.forEach((c) => c());
192
- this.filtersMap.clear();
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);
193
448
  }
194
449
  makeFilter(filter) {
195
- const inst = new Filter(filter);
450
+ let inst;
451
+ if (filter.type === "DATERANGE")
452
+ inst = new DateRangeFilter(filter);
453
+ else
454
+ inst = new Filter(filter);
196
455
  const listenBlur = () => this.emit("filterBlur", inst);
197
456
  const listenChange = () => this.emit("filterChange", inst);
198
- const listenClick = () => this.emit("filterClick", inst);
457
+ const listenEnter = () => this.emit("filterPressEnter", inst);
199
458
  inst.on("blur", listenBlur);
200
459
  inst.on("change", listenChange);
201
- inst.on("click", listenClick);
202
- this.listeners.push(listenBlur, listenChange, listenClick);
460
+ inst.on("enter", listenEnter);
461
+ this.listeners.set(inst.getState("name"), [
462
+ listenBlur,
463
+ listenChange,
464
+ listenEnter
465
+ ]);
203
466
  return inst;
204
467
  }
205
468
  }
@@ -215,29 +478,89 @@ class ListController {
215
478
  this.env = env;
216
479
  __publicField(this, "table");
217
480
  __publicField(this, "state", {
481
+ areAllFiltersApplied: true,
218
482
  navigation: { currentPage: 0, pagesCount: 0, registers: 0 },
219
483
  fncId: -1,
220
- isFavorite: false
484
+ isFavorite: false,
485
+ isMaximized: false
221
486
  });
487
+ __publicField(this, "refreshTimeout", -1);
222
488
  this.table = new ListTableController(this);
223
489
  this.initializeFavoriteAction();
224
490
  this.refresh();
491
+ this.table.on("filterChange", (filter) => {
492
+ this.state.areAllFiltersApplied = false;
493
+ if (filter.getState("runAutomatically")) {
494
+ this.throttleRefresh();
495
+ }
496
+ });
497
+ this.table.on("filterPressEnter", () => {
498
+ this.refresh();
499
+ });
500
+ this.table.on("filterBlur", () => {
501
+ console.log("blur");
502
+ });
225
503
  makeObservable(this, { state: observable });
226
504
  }
505
+ throttleRefresh() {
506
+ clearTimeout(this.refreshTimeout);
507
+ this.refreshTimeout = setTimeout(() => {
508
+ this.refresh();
509
+ }, 100);
510
+ }
511
+ async clearFilters() {
512
+ runInAction(() => {
513
+ this.table.getFilters().forEach((c) => c.clear());
514
+ this.throttleRefresh();
515
+ });
516
+ }
227
517
  async page(pageNumber) {
228
- const result = await ApiaApi.post(
229
- makeApiaUrl({ action: "refresh", page: pageNumber })
230
- );
231
- if (result?.data?.list) {
232
- this.processRefreshResult(result.data);
518
+ if (this.validateFilters()) {
519
+ const result = await ApiaApi.post(
520
+ makeApiaUrl({ action: "refresh", page: pageNumber })
521
+ );
522
+ if (result?.data?.list) {
523
+ this.processRefreshResult(result.data);
524
+ }
525
+ }
526
+ }
527
+ validateFilters() {
528
+ const invalidFilters = this.table.getFilters().filter((c) => !c.validate());
529
+ if (invalidFilters.length) {
530
+ this.table.clear();
531
+ notify({
532
+ title: getLabel("titWarning").text,
533
+ message: getLabel("msgQryFilterRequiredList", {
534
+ text: {
535
+ TOK1: invalidFilters.map((c) => c.getState("title")).join(", ")
536
+ }
537
+ }).text
538
+ });
233
539
  }
540
+ return invalidFilters.length === 0;
234
541
  }
235
542
  async refresh() {
236
- const result = await ApiaApi.post(
237
- makeApiaUrl({ action: "refresh" })
238
- );
239
- if (result?.data?.list) {
240
- this.processRefreshResult(result.data);
543
+ if (this.validateFilters()) {
544
+ this.state.areAllFiltersApplied = true;
545
+ const result = await ApiaApi.post(
546
+ makeApiaUrl({ action: "refresh" }),
547
+ {
548
+ postData: {
549
+ ...this.table.getFilters().reduce(
550
+ (acc, cur) => ({
551
+ ...acc,
552
+ [`filter_${cur.getState("name")}`]: cur.getValue()
553
+ }),
554
+ {}
555
+ )
556
+ },
557
+ postDataTreatement: "stringify",
558
+ stringifyOptions: { arrayFormat: "repeat" }
559
+ }
560
+ );
561
+ if (result?.data?.list) {
562
+ this.processRefreshResult(result.data);
563
+ }
241
564
  }
242
565
  }
243
566
  async initializeFavoriteAction() {
@@ -260,7 +583,6 @@ class ListController {
260
583
  processRefreshResult(result) {
261
584
  this.table.fromGenericTable(result.list);
262
585
  this.state.navigation = result.list.navigation;
263
- console.log(result.list.rows);
264
586
  }
265
587
  }
266
588
 
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/ListTableController/index.ts","../src/ListController.ts"],"sourcesContent":["import { observer } from 'mobx-react-lite';\r\nimport { ListController } from '../ListController';\r\nimport { Pagination as PG } from '@apia/components';\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 />\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 });\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 class Filter extends EventEmitter<{\r\n change: null;\r\n click: null;\r\n blur: null;\r\n}> {\r\n state: TFilter;\r\n\r\n focus() {}\r\n\r\n constructor(properties: TFilter) {\r\n super();\r\n\r\n this.state = properties;\r\n\r\n makeObservable(this, { state: observable });\r\n }\r\n\r\n public getValue() {\r\n return this.state.initialValue;\r\n }\r\n\r\n public setValue(value: any) {\r\n this.state.initialValue = value;\r\n this.emit('change', null);\r\n }\r\n\r\n public fire(ev: 'click' | 'blur') {\r\n this.emit(ev, null);\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 { 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\n\r\nexport class ListTableController extends EventEmitter<{\r\n filterChange: Filter;\r\n filterBlur: Filter;\r\n filterClick: Filter;\r\n}> {\r\n controller = new 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.init();\r\n }\r\n\r\n protected init() {\r\n this.controller.head.addRow(new Row('header'));\r\n this.controller.head.addRow(new Row('filters').setState('isHidden', true));\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.clearFilters();\r\n this.columnsMap.clear();\r\n\r\n for (const filter of filters) {\r\n this.filtersMap.set(filter.name, this.makeFilter(filter));\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 private listeners: (() => unknown)[] = [];\r\n private clearFilters() {\r\n this.listeners.forEach((c) => c());\r\n this.filtersMap.clear();\r\n }\r\n\r\n private makeFilter(filter: TFilter) {\r\n const inst = new Filter(filter);\r\n const listenBlur = () => this.emit('filterBlur', inst);\r\n const listenChange = () => this.emit('filterChange', inst);\r\n const listenClick = () => this.emit('filterClick', inst);\r\n inst.on('blur', listenBlur);\r\n inst.on('change', listenChange);\r\n inst.on('click', listenClick);\r\n this.listeners.push(listenBlur, listenChange, listenClick);\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 { Url } from '@apia/util';\r\nimport { makeObservable, observable } from 'mobx';\r\n\r\nexport type ListState = {\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};\r\n\r\nexport type TListRefreshResponse = {\r\n list: ListState & TLoadStructure;\r\n};\r\n\r\nexport class ListController {\r\n public readonly table: ListTableController;\r\n public readonly state: ListState = {\r\n navigation: { currentPage: 0, pagesCount: 0, registers: 0 },\r\n fncId: -1,\r\n isFavorite: false,\r\n };\r\n\r\n constructor(protected env: TQueryEnvironment) {\r\n this.table = new ListTableController(this);\r\n\r\n this.initializeFavoriteAction();\r\n this.refresh();\r\n\r\n makeObservable(this, { state: observable });\r\n }\r\n\r\n async page(pageNumber: number) {\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({ action: 'refresh', page: pageNumber }),\r\n );\r\n\r\n if (result?.data?.list) {\r\n this.processRefreshResult(result.data);\r\n }\r\n }\r\n\r\n async refresh() {\r\n const result = await ApiaApi.post<TListRefreshResponse>(\r\n makeApiaUrl({ action: 'refresh' }),\r\n );\r\n\r\n if (result?.data?.list) {\r\n this.processRefreshResult(result.data);\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 console.log(result.list.rows);\r\n }\r\n}\r\n"],"names":["PG","__publicField","i"],"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"],"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 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(protected env: TQueryEnvironment) {\r\n this.table = new ListTableController(this);\r\n\r\n this.initializeFavoriteAction();\r\n this.refresh();\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 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({ action: 'refresh', page: pageNumber }),\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({ action: 'refresh' }),\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"],"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.30",
3
+ "version": "4.0.31",
4
4
  "sideEffects": false,
5
5
  "author": "Alexis Leite <alexisleite@live.com>",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "devDependencies": {
18
18
  "@typescript-eslint/eslint-plugin": "^6.14.0",
19
- "axios": "^1.3.5",
19
+ "axios": "^1.11.0",
20
20
  "typescript": "5.4.2"
21
21
  },
22
22
  "peerDependencies": {
@@ -28,12 +28,13 @@
28
28
  "registry": "https://registry.npmjs.org/"
29
29
  },
30
30
  "dependencies": {
31
- "@apia/api": "^4.0.30",
32
- "@apia/components": "^4.0.30",
33
- "@apia/table2-controller": "^4.0.30",
34
- "@apia/theme": "^4.0.30",
35
- "@apia/util": "^4.0.30",
31
+ "@apia/api": "^4.0.31",
32
+ "@apia/components": "^4.0.31",
33
+ "@apia/table2-controller": "^4.0.31",
34
+ "@apia/theme": "^4.0.31",
35
+ "@apia/util": "^4.0.31",
36
+ "dayjs": "^1.11.13",
36
37
  "mobx": "^6.13.7"
37
38
  },
38
- "gitHead": "02b7b1d5b7470fb1ecbab9ca09f6f79c040a45dc"
39
+ "gitHead": "425c4e56d27b07e4e60d993ac35e610873b1a42f"
39
40
  }