@apia/query 4.0.31 → 4.0.32
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 +16 -2
- package/dist/index.js +66 -31
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -171,13 +171,19 @@ type ListState = {
|
|
|
171
171
|
type TListRefreshResponse = {
|
|
172
172
|
list: ListState & TLoadStructure;
|
|
173
173
|
};
|
|
174
|
+
type TListControllerConfiguration = {
|
|
175
|
+
ajaxUrl?: string;
|
|
176
|
+
refreshOnStartup?: boolean;
|
|
177
|
+
};
|
|
174
178
|
declare class ListController {
|
|
175
179
|
protected env: TQueryEnvironment;
|
|
180
|
+
protected configuration?: TListControllerConfiguration | undefined;
|
|
176
181
|
readonly table: ListTableController;
|
|
177
182
|
readonly state: ListState;
|
|
178
|
-
constructor(env: TQueryEnvironment);
|
|
183
|
+
constructor(env: TQueryEnvironment, configuration?: TListControllerConfiguration | undefined);
|
|
179
184
|
protected refreshTimeout: number;
|
|
180
185
|
protected throttleRefresh(): void;
|
|
186
|
+
protected getAjaxParameters(): Record<string, unknown>;
|
|
181
187
|
clearFilters(): Promise<void>;
|
|
182
188
|
page(pageNumber: number): Promise<void>;
|
|
183
189
|
protected validateFilters(): boolean;
|
|
@@ -193,5 +199,13 @@ declare const Pagination: (({ controller }: {
|
|
|
193
199
|
displayName: string;
|
|
194
200
|
};
|
|
195
201
|
|
|
196
|
-
|
|
202
|
+
declare class ModalListController extends ListController {
|
|
203
|
+
private tabId;
|
|
204
|
+
constructor(env: TQueryEnvironment, configuration: TListControllerConfiguration);
|
|
205
|
+
protected getAjaxParameters(): Record<string, unknown>;
|
|
206
|
+
protected initializeFavoriteAction(): Promise<void>;
|
|
207
|
+
toggleFavoriteFunctionality(): Promise<void>;
|
|
208
|
+
}
|
|
209
|
+
|
|
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 };
|
|
197
211
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -83,16 +83,16 @@ class FilterCell extends Cell {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
var __defProp$
|
|
87
|
-
var __defNormalProp$
|
|
88
|
-
var __publicField$
|
|
89
|
-
__defNormalProp$
|
|
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
90
|
return value;
|
|
91
91
|
};
|
|
92
92
|
class Filter extends EventEmitter {
|
|
93
93
|
constructor(properties) {
|
|
94
94
|
super();
|
|
95
|
-
__publicField$
|
|
95
|
+
__publicField$4(this, "state");
|
|
96
96
|
this.state = {
|
|
97
97
|
...properties,
|
|
98
98
|
value: properties.initialValue || ""
|
|
@@ -244,7 +244,7 @@ const DateRangeFilter$1 = observer(
|
|
|
244
244
|
);
|
|
245
245
|
|
|
246
246
|
const FilterRender = observer(({ filter, inline }) => {
|
|
247
|
-
switch (filter
|
|
247
|
+
switch (filter?.getState("type")) {
|
|
248
248
|
case "INPUT":
|
|
249
249
|
return /* @__PURE__ */ jsx(InputFilter, { filter, inline });
|
|
250
250
|
case "DATE":
|
|
@@ -255,10 +255,10 @@ const FilterRender = observer(({ filter, inline }) => {
|
|
|
255
255
|
return /* @__PURE__ */ jsx(Input, { disabled: true });
|
|
256
256
|
});
|
|
257
257
|
|
|
258
|
-
var __defProp$
|
|
259
|
-
var __defNormalProp$
|
|
260
|
-
var __publicField$
|
|
261
|
-
__defNormalProp$
|
|
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
262
|
return value;
|
|
263
263
|
};
|
|
264
264
|
const FilterRenderer = ({ cell }) => {
|
|
@@ -266,7 +266,7 @@ const FilterRenderer = ({ cell }) => {
|
|
|
266
266
|
};
|
|
267
267
|
class FiltersPlugin {
|
|
268
268
|
constructor() {
|
|
269
|
-
__publicField$
|
|
269
|
+
__publicField$3(this, "getRenderers", () => ({
|
|
270
270
|
cell: FilterRenderer
|
|
271
271
|
}));
|
|
272
272
|
}
|
|
@@ -327,20 +327,20 @@ class DateRangeFilter extends Filter {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
-
var __defProp$
|
|
331
|
-
var __defNormalProp$
|
|
332
|
-
var __publicField$
|
|
333
|
-
__defNormalProp$
|
|
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
334
|
return value;
|
|
335
335
|
};
|
|
336
336
|
class ListTableController extends EventEmitter {
|
|
337
337
|
constructor(list) {
|
|
338
338
|
super();
|
|
339
339
|
this.list = list;
|
|
340
|
-
__publicField$
|
|
341
|
-
__publicField$
|
|
342
|
-
__publicField$
|
|
343
|
-
__publicField$
|
|
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
344
|
this.controller = new TableController();
|
|
345
345
|
this.controller.setPlugins((c) => [...c, new FiltersPlugin()]);
|
|
346
346
|
this.init();
|
|
@@ -467,27 +467,30 @@ class ListTableController extends EventEmitter {
|
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
469
|
|
|
470
|
-
var __defProp = Object.defineProperty;
|
|
471
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
472
|
-
var __publicField = (obj, key, value) => {
|
|
473
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
470
|
+
var __defProp$1 = Object.defineProperty;
|
|
471
|
+
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
472
|
+
var __publicField$1 = (obj, key, value) => {
|
|
473
|
+
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
474
474
|
return value;
|
|
475
475
|
};
|
|
476
476
|
class ListController {
|
|
477
|
-
constructor(env) {
|
|
477
|
+
constructor(env, configuration) {
|
|
478
478
|
this.env = env;
|
|
479
|
-
|
|
480
|
-
__publicField(this, "
|
|
479
|
+
this.configuration = configuration;
|
|
480
|
+
__publicField$1(this, "table");
|
|
481
|
+
__publicField$1(this, "state", {
|
|
481
482
|
areAllFiltersApplied: true,
|
|
482
483
|
navigation: { currentPage: 0, pagesCount: 0, registers: 0 },
|
|
483
484
|
fncId: -1,
|
|
484
485
|
isFavorite: false,
|
|
485
486
|
isMaximized: false
|
|
486
487
|
});
|
|
487
|
-
__publicField(this, "refreshTimeout", -1);
|
|
488
|
+
__publicField$1(this, "refreshTimeout", -1);
|
|
488
489
|
this.table = new ListTableController(this);
|
|
489
490
|
this.initializeFavoriteAction();
|
|
490
|
-
|
|
491
|
+
if (configuration?.refreshOnStartup !== false) {
|
|
492
|
+
this.refresh();
|
|
493
|
+
}
|
|
491
494
|
this.table.on("filterChange", (filter) => {
|
|
492
495
|
this.state.areAllFiltersApplied = false;
|
|
493
496
|
if (filter.getState("runAutomatically")) {
|
|
@@ -508,6 +511,9 @@ class ListController {
|
|
|
508
511
|
this.refresh();
|
|
509
512
|
}, 100);
|
|
510
513
|
}
|
|
514
|
+
getAjaxParameters() {
|
|
515
|
+
return { ajaxUrl: this.env.window.URL_REQUEST_AJAX };
|
|
516
|
+
}
|
|
511
517
|
async clearFilters() {
|
|
512
518
|
runInAction(() => {
|
|
513
519
|
this.table.getFilters().forEach((c) => c.clear());
|
|
@@ -517,7 +523,11 @@ class ListController {
|
|
|
517
523
|
async page(pageNumber) {
|
|
518
524
|
if (this.validateFilters()) {
|
|
519
525
|
const result = await ApiaApi.post(
|
|
520
|
-
makeApiaUrl({
|
|
526
|
+
makeApiaUrl({
|
|
527
|
+
action: "refresh",
|
|
528
|
+
page: pageNumber,
|
|
529
|
+
...this.getAjaxParameters()
|
|
530
|
+
})
|
|
521
531
|
);
|
|
522
532
|
if (result?.data?.list) {
|
|
523
533
|
this.processRefreshResult(result.data);
|
|
@@ -543,7 +553,10 @@ class ListController {
|
|
|
543
553
|
if (this.validateFilters()) {
|
|
544
554
|
this.state.areAllFiltersApplied = true;
|
|
545
555
|
const result = await ApiaApi.post(
|
|
546
|
-
makeApiaUrl({
|
|
556
|
+
makeApiaUrl({
|
|
557
|
+
action: "refresh",
|
|
558
|
+
...this.getAjaxParameters()
|
|
559
|
+
}),
|
|
547
560
|
{
|
|
548
561
|
postData: {
|
|
549
562
|
...this.table.getFilters().reduce(
|
|
@@ -586,5 +599,27 @@ class ListController {
|
|
|
586
599
|
}
|
|
587
600
|
}
|
|
588
601
|
|
|
589
|
-
|
|
602
|
+
var __defProp = Object.defineProperty;
|
|
603
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
604
|
+
var __publicField = (obj, key, value) => {
|
|
605
|
+
__defNormalProp(obj, key + "" , value);
|
|
606
|
+
return value;
|
|
607
|
+
};
|
|
608
|
+
class ModalListController extends ListController {
|
|
609
|
+
constructor(env, configuration) {
|
|
610
|
+
super(env, { ...configuration, refreshOnStartup: false });
|
|
611
|
+
__publicField(this, "tabId", Date.now());
|
|
612
|
+
}
|
|
613
|
+
getAjaxParameters() {
|
|
614
|
+
return { ajaxUrl: this.configuration.ajaxUrl, tabId: this.tabId };
|
|
615
|
+
}
|
|
616
|
+
initializeFavoriteAction() {
|
|
617
|
+
return Promise.resolve();
|
|
618
|
+
}
|
|
619
|
+
toggleFavoriteFunctionality() {
|
|
620
|
+
return Promise.resolve();
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
export { ListController, ModalListController, Pagination };
|
|
590
625
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/Pagination.tsx","../src/ListTableController/HeaderCell.ts","../src/ListTableController/FilterCell.ts","../src/ListTableController/Filter.ts","../src/ListTableController/ListCell.ts","../src/components/filters/InputFilter.tsx","../src/components/filters/DateFilter.tsx","../src/components/filters/DateRangeFilter.tsx","../src/components/filters/FilterRender.tsx","../src/components/filters/FiltersPlugin.tsx","../src/ListTableController/DateRangeFilter.ts","../src/ListTableController/index.ts","../src/ListController.ts"],"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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"}
|
|
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.
|
|
3
|
+
"version": "4.0.32",
|
|
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.
|
|
32
|
-
"@apia/components": "^4.0.
|
|
33
|
-
"@apia/table2-controller": "^4.0.
|
|
34
|
-
"@apia/theme": "^4.0.
|
|
35
|
-
"@apia/util": "^4.0.
|
|
31
|
+
"@apia/api": "^4.0.32",
|
|
32
|
+
"@apia/components": "^4.0.32",
|
|
33
|
+
"@apia/table2-controller": "^4.0.32",
|
|
34
|
+
"@apia/theme": "^4.0.32",
|
|
35
|
+
"@apia/util": "^4.0.32",
|
|
36
36
|
"dayjs": "^1.11.13",
|
|
37
37
|
"mobx": "^6.13.7"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "eca64d3d15acd91a55b9a21891b623aeca1f4401"
|
|
40
40
|
}
|