@apia/query 4.0.27 → 4.0.29

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,48 +1,176 @@
1
- import { TableController } from '@apia/table2-controller';
2
- import { TApiaFilterOption } from '@apia/util';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Cell, TableController } from '@apia/table2-controller';
3
+ import { EventEmitter } from '@apia/util';
3
4
 
4
5
  type TQueryEnvironment = {
5
6
  window: Window;
6
7
  };
7
- type TQueryColumn = {
8
+ type TAttribute = {
9
+ name: string;
10
+ value: string;
11
+ };
12
+ type TOption = {
8
13
  label: string;
14
+ value: string;
15
+ };
16
+ type TWithAttributes = {
17
+ attributes: Record<string, string>;
18
+ };
19
+ type TWithOptions = {
20
+ options: TOption | TOption[];
21
+ };
22
+ type TBehavior = TWithAttributes & {
23
+ allowEdition: boolean;
24
+ allowSelection: boolean;
25
+ isMultipleSelection: boolean;
26
+ hasDynamicStructure: boolean;
27
+ showAdditionalInfo: boolean;
28
+ };
29
+ type TColumn = TWithAttributes & TWithStylesModifiers & {
30
+ className: string;
31
+ hideFromAccordion: boolean;
32
+ isHidden: boolean;
33
+ isSortable: boolean;
9
34
  name: string;
10
- resizable: string;
11
- sortable: string;
12
- sortState?: 'Asc' | 'Desc';
35
+ showAsAdditional: boolean;
36
+ sortType: 'ASC' | 'DESC' | 'NONE';
37
+ title: string;
38
+ tooltip: string;
13
39
  width: string;
14
40
  };
15
- type TFilter = {
16
- avoidLabel?: boolean;
17
- column?: string;
18
- errorMessage?: string;
41
+ type TFilter = TWithAttributes & TWithOptions & {
42
+ name: string;
43
+ columnName: string;
44
+ isRequired: boolean;
45
+ initialValue: string;
46
+ title: string;
47
+ type: 'COMBO' | 'DATE' | 'NUMBER' | 'STRING';
48
+ };
49
+ type TLoadStructure = {
50
+ behavior: TBehavior;
51
+ columns: TColumn | TColumn[];
52
+ filters: TFilter | TFilter[];
53
+ rows?: TRow | TRow[];
54
+ };
55
+ type TStateIcon = 'ALERT' | 'DISALLOWED' | 'LOCKED' | 'PRIORITY_LOW' | 'PRIORITY_NORMAL' | 'PRIORITY_HIGH' | 'PRIORITY_URGENT';
56
+ type TWithAlignment = {
57
+ horizontalAlign?: 'Left' | 'Center' | 'Right' | 'Justify';
58
+ verticalAlign?: 'Top' | 'Middle' | 'Bottom';
59
+ };
60
+ type TWithStylesModifiers = {
61
+ background: string;
62
+ color: string;
63
+ isBold: boolean;
64
+ isHtml: boolean;
65
+ isLight: boolean;
66
+ };
67
+ type TCell = TWithAttributes & TWithStylesModifiers & TWithAlignment & {
68
+ className: string;
69
+ colspan: number;
70
+ renderer?: string;
71
+ text: string;
72
+ title: string;
73
+ };
74
+ type TActionBehavior = 'DO_NOTHING' | 'NAVIGATE_URL' | 'CALL_AJAX_URL' | 'RUN_ACTION' | 'OPEN_TAB' | 'FIRE_EVENT' | 'DOWNLOAD';
75
+ type TActionSource = 'CLICK' | 'DOUBLE_CLICK';
76
+ type TBasicAction = {
77
+ action: string;
78
+ actionBehavior: TActionBehavior;
79
+ actionSource: TActionSource;
80
+ additionalData: string;
81
+ text: string;
82
+ };
83
+ type TRow = TWithAttributes & TWithStylesModifiers & {
84
+ action: TBasicAction;
85
+ } & TWithAlignment & {
86
+ cells: TCell | TCell[];
87
+ className: string;
19
88
  id: string;
20
- filterToId?: string;
21
- filterToValue?: string;
22
- hideToFilter?: true;
23
- isAdditional?: boolean;
24
- isHidden?: boolean;
25
- options?: TApiaFilterOption[];
26
- placeholder?: string;
27
- multiplier?: number;
28
- readonly?: boolean;
29
- required?: boolean;
30
- runAutomatically?: boolean;
31
- title?: string;
32
- tooltip?: string;
33
- isRange?: boolean;
34
- group?: string;
35
- type?: 'date' | 'D' | 'S' | 'number' | 'N' | 'apiaNumber' | 'triple' | 'dateHour';
36
- value: any;
37
- valueTo?: any;
38
- isSize?: boolean;
89
+ isDisabled: boolean;
90
+ isHidden: boolean;
91
+ isSelected: boolean;
92
+ isSeparator: boolean;
93
+ states: TState | TState[];
94
+ title: string;
39
95
  };
96
+ type TState = {
97
+ color: string;
98
+ tooltip: string;
99
+ className: string;
100
+ Icon: TStateIcon;
101
+ };
102
+ type TRefresh = {
103
+ rows: TRow | TRow[];
104
+ };
105
+ interface IStatesSource {
106
+ background: string;
107
+ color: string;
108
+ isBold: boolean;
109
+ isLight: boolean;
110
+ }
111
+
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<{
119
+ change: null;
120
+ click: null;
121
+ blur: null;
122
+ }> {
123
+ state: TFilter;
124
+ focus(): void;
125
+ constructor(properties: TFilter);
126
+ getValue(): string;
127
+ setValue(value: any): void;
128
+ fire(ev: 'click' | 'blur'): void;
129
+ }
40
130
 
131
+ declare class ListTableController extends EventEmitter<{
132
+ filterChange: Filter;
133
+ filterBlur: Filter;
134
+ filterClick: Filter;
135
+ }> {
136
+ list: ListController;
137
+ controller: TableController;
138
+ protected columnsMap: Map<string, HeaderCell>;
139
+ protected filtersMap: Map<string, Filter>;
140
+ constructor(list: ListController);
141
+ protected init(): void;
142
+ fromGenericTable(table: TLoadStructure): void;
143
+ getFilter(filterName: string): Filter | undefined;
144
+ private listeners;
145
+ private clearFilters;
146
+ private makeFilter;
147
+ }
148
+
149
+ type ListState = {
150
+ navigation: {
151
+ pagesCount: number;
152
+ registers: number;
153
+ currentPage: number;
154
+ };
155
+ };
156
+ type TListRefreshResponse = {
157
+ list: ListState & TLoadStructure;
158
+ };
41
159
  declare class ListController {
42
160
  protected env: TQueryEnvironment;
43
- readonly table: TableController;
161
+ readonly table: ListTableController;
162
+ readonly state: ListState;
44
163
  constructor(env: TQueryEnvironment);
164
+ page(pageNumber: number): Promise<void>;
165
+ refresh(): Promise<void>;
166
+ protected processRefreshResult(result: TListRefreshResponse): void;
45
167
  }
46
168
 
47
- export { ListController, type TFilter, type TQueryColumn, type TQueryEnvironment };
169
+ declare const Pagination: (({ controller }: {
170
+ controller: ListController;
171
+ }) => react_jsx_runtime.JSX.Element) & {
172
+ displayName: string;
173
+ };
174
+
175
+ export { type IStatesSource, ListController, type ListState, Pagination, type TActionBehavior, type TActionSource, type TAttribute, type TBasicAction, type TBehavior, type TCell, type TColumn, type TFilter, type TListRefreshResponse, type TLoadStructure, type TOption, type TQueryEnvironment, type TRefresh, type TRow, type TState, type TStateIcon, type TWithAlignment, type TWithAttributes, type TWithOptions, type TWithStylesModifiers };
48
176
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,18 +1,247 @@
1
- import { TableController } from '@apia/table2-controller';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { observer } from 'mobx-react-lite';
3
+ import { Pagination as Pagination$1 } from '@apia/components';
4
+ import { ApiaApi, makeApiaUrl } from '@apia/api';
5
+ import { Cell, TableController, Row } from '@apia/table2-controller';
6
+ import { EventEmitter, arrayOrArray } from '@apia/util';
7
+ import { makeObservable, observable } from 'mobx';
8
+
9
+ const Pagination = observer(
10
+ ({ controller }) => {
11
+ return /* @__PURE__ */ jsx(
12
+ Pagination$1,
13
+ {
14
+ currentPage: controller.state.navigation.currentPage,
15
+ onPageChange: (page) => {
16
+ controller.page(page);
17
+ },
18
+ onRefresh: () => {
19
+ controller.refresh();
20
+ },
21
+ pageCount: controller.state.navigation.pagesCount
22
+ }
23
+ );
24
+ }
25
+ );
26
+
27
+ class HeaderCell extends Cell {
28
+ constructor(definition) {
29
+ super({
30
+ colName: definition.name,
31
+ content: definition.title,
32
+ isHidden: definition.isHidden
33
+ });
34
+ this.definition = definition;
35
+ makeObservable(this, { definition: observable });
36
+ }
37
+ updateDefinition(newDef) {
38
+ Object.assign(this, newDef);
39
+ }
40
+ }
41
+
42
+ class FilterCell extends Cell {
43
+ constructor(colName, filter) {
44
+ super({
45
+ colName
46
+ });
47
+ this.filter = filter;
48
+ makeObservable(this, { filter: observable });
49
+ }
50
+ }
51
+
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);
56
+ return value;
57
+ };
58
+ class Filter extends EventEmitter {
59
+ constructor(properties) {
60
+ super();
61
+ __publicField$2(this, "state");
62
+ this.state = properties;
63
+ makeObservable(this, { state: observable });
64
+ }
65
+ focus() {
66
+ }
67
+ getValue() {
68
+ return this.state.initialValue;
69
+ }
70
+ setValue(value) {
71
+ this.state.initialValue = value;
72
+ this.emit("change", null);
73
+ }
74
+ fire(ev) {
75
+ this.emit(ev, null);
76
+ }
77
+ }
78
+
79
+ class ListCell extends Cell {
80
+ constructor(colName, definition) {
81
+ super({
82
+ colName,
83
+ className: definition.className,
84
+ content: definition.text
85
+ });
86
+ this.definition = definition;
87
+ }
88
+ updateDefinition(definition) {
89
+ this.state.className = definition.className;
90
+ this.state.content = definition.text;
91
+ }
92
+ }
93
+
94
+ var __defProp$1 = Object.defineProperty;
95
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
96
+ var __publicField$1 = (obj, key, value) => {
97
+ __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
98
+ return value;
99
+ };
100
+ class ListTableController extends EventEmitter {
101
+ constructor(list) {
102
+ super();
103
+ this.list = list;
104
+ __publicField$1(this, "controller", new TableController());
105
+ __publicField$1(this, "columnsMap", /* @__PURE__ */ new Map());
106
+ __publicField$1(this, "filtersMap", /* @__PURE__ */ new Map());
107
+ __publicField$1(this, "listeners", []);
108
+ this.init();
109
+ }
110
+ init() {
111
+ this.controller.head.addRow(new Row("header"));
112
+ this.controller.head.addRow(new Row("filters").setState("isHidden", true));
113
+ }
114
+ fromGenericTable(table) {
115
+ this.controller.setState("allowEdition", table.behavior.allowEdition);
116
+ this.controller.setState("allowSelection", table.behavior.allowSelection);
117
+ this.controller.setState(
118
+ "isSelectionMultiple",
119
+ table.behavior.isMultipleSelection
120
+ );
121
+ const columns = arrayOrArray(table.columns);
122
+ const filters = arrayOrArray(table.filters);
123
+ this.clearFilters();
124
+ this.columnsMap.clear();
125
+ for (const filter of filters) {
126
+ this.filtersMap.set(filter.name, this.makeFilter(filter));
127
+ }
128
+ this.controller.head.rows[0].cells.splice(columns.length);
129
+ this.controller.head.rows[1].cells.splice(columns.length);
130
+ let i;
131
+ for (i = 0; i < columns.length; i++) {
132
+ const column = columns[i];
133
+ const colName = column.name;
134
+ if (!this.controller.head.rows[0].cells[i]) {
135
+ this.controller.head.rows[0].addCell(new HeaderCell(column));
136
+ } else {
137
+ this.controller.head.rows[0].cells[i].updateDefinition(
138
+ column
139
+ );
140
+ }
141
+ const filter = filters.find((c) => c.columnName === colName);
142
+ if (this.controller.head.rows[1].cells[i]) {
143
+ this.controller.head.rows[1].cells[i].setState(
144
+ "colName",
145
+ colName
146
+ );
147
+ this.controller.head.rows[1].cells[i].filter = this.filtersMap.get(
148
+ filter?.name || "nohayfiltrodefinidiparaestacolumna"
149
+ );
150
+ } else {
151
+ this.controller.head.rows[1].addCell(
152
+ new FilterCell(
153
+ colName,
154
+ this.filtersMap.get(
155
+ filter?.name || "nohayfiltrodefinidiparaestacolumna"
156
+ )
157
+ )
158
+ );
159
+ }
160
+ this.columnsMap.set(
161
+ colName,
162
+ this.controller.head.rows[0].cells[i]
163
+ );
164
+ }
165
+ const rows = arrayOrArray(table.rows);
166
+ this.controller.body.rows.splice(rows.length);
167
+ for (let i2 = 0; i2 < rows.length; i2++) {
168
+ if (!this.controller.body.rows[i2]) {
169
+ this.controller.body.addRow(new Row(rows[i2].id));
170
+ } else {
171
+ this.controller.body.rows[i2].setState("id", rows[i2].id);
172
+ }
173
+ this.controller.body.rows[i2].cells.splice(columns.length);
174
+ for (let j = 0; j < columns.length; j++) {
175
+ if (this.controller.body.rows[i2].cells[j]) {
176
+ this.controller.body.rows[i2].cells[j].updateDefinition(
177
+ arrayOrArray(rows[i2].cells)[j]
178
+ );
179
+ } else {
180
+ this.controller.body.rows[i2].addCell(
181
+ new ListCell(columns[j].name, arrayOrArray(rows[i2].cells)[j])
182
+ );
183
+ }
184
+ }
185
+ }
186
+ }
187
+ getFilter(filterName) {
188
+ return this.filtersMap.get(filterName);
189
+ }
190
+ clearFilters() {
191
+ this.listeners.forEach((c) => c());
192
+ this.filtersMap.clear();
193
+ }
194
+ makeFilter(filter) {
195
+ const inst = new Filter(filter);
196
+ const listenBlur = () => this.emit("filterBlur", inst);
197
+ const listenChange = () => this.emit("filterChange", inst);
198
+ const listenClick = () => this.emit("filterClick", inst);
199
+ inst.on("blur", listenBlur);
200
+ inst.on("change", listenChange);
201
+ inst.on("click", listenClick);
202
+ this.listeners.push(listenBlur, listenChange, listenClick);
203
+ return inst;
204
+ }
205
+ }
2
206
 
3
207
  var __defProp = Object.defineProperty;
4
208
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
209
  var __publicField = (obj, key, value) => {
6
- __defNormalProp(obj, key + "" , value);
210
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
211
  return value;
8
212
  };
9
213
  class ListController {
10
214
  constructor(env) {
11
215
  this.env = env;
12
216
  __publicField(this, "table");
13
- this.table = new TableController();
217
+ __publicField(this, "state", {
218
+ navigation: { currentPage: 0, pagesCount: 0, registers: 0 }
219
+ });
220
+ this.table = new ListTableController(this);
221
+ this.refresh();
222
+ }
223
+ async page(pageNumber) {
224
+ const result = await ApiaApi.post(
225
+ makeApiaUrl({ action: "refresh", page: pageNumber })
226
+ );
227
+ if (result?.data?.list) {
228
+ this.processRefreshResult(result.data);
229
+ }
230
+ }
231
+ async refresh() {
232
+ const result = await ApiaApi.post(
233
+ makeApiaUrl({ action: "refresh" })
234
+ );
235
+ if (result?.data?.list) {
236
+ this.processRefreshResult(result.data);
237
+ }
238
+ }
239
+ processRefreshResult(result) {
240
+ this.table.fromGenericTable(result.list);
241
+ this.state.navigation = result.list.navigation;
242
+ console.log(result.list.rows);
14
243
  }
15
244
  }
16
245
 
17
- export { ListController };
246
+ export { ListController, Pagination };
18
247
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ListController.ts"],"sourcesContent":["import { TableController } from '@apia/table2-controller';\nimport { TQueryEnvironment } from './types';\n\nexport class ListController {\n public readonly table: TableController;\n\n constructor(protected env: TQueryEnvironment) {\n this.table = new TableController();\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAGO,MAAM,cAAA,CAAe;AAAA,EAG1B,YAAsB,GAAA,EAAwB;AAAxB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAFtB,IAAA,aAAA,CAAA,IAAA,EAAgB,OAAA,CAAA;AAGd,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,eAAA,EAAgB;AAAA;AAErC;;;;"}
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\n\r\nexport type ListState = {\r\n navigation: {\r\n pagesCount: number;\r\n registers: number;\r\n currentPage: number;\r\n };\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 };\r\n\r\n constructor(protected env: TQueryEnvironment) {\r\n this.table = new ListTableController(this);\r\n\r\n this.refresh();\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 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/query",
3
- "version": "4.0.27",
3
+ "version": "4.0.29",
4
4
  "sideEffects": false,
5
5
  "author": "Alexis Leite <alexisleite@live.com>",
6
6
  "main": "dist/index.js",
@@ -15,8 +15,6 @@
15
15
  "libWatchForDashboards": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:dashboards"
16
16
  },
17
17
  "devDependencies": {
18
- "@types/react": "^18.2.43",
19
- "@types/react-dom": "^18.2.17",
20
18
  "@typescript-eslint/eslint-plugin": "^6.14.0",
21
19
  "axios": "^1.3.5",
22
20
  "typescript": "5.4.2"
@@ -30,8 +28,12 @@
30
28
  "registry": "https://registry.npmjs.org/"
31
29
  },
32
30
  "dependencies": {
33
- "@apia/table2-controller": "^4.0.27",
34
- "@apia/util": "^4.0.27"
31
+ "@apia/api": "^4.0.29",
32
+ "@apia/components": "^4.0.29",
33
+ "@apia/table2-controller": "^4.0.29",
34
+ "@apia/theme": "^4.0.29",
35
+ "@apia/util": "^4.0.29",
36
+ "mobx": "^6.13.7"
35
37
  },
36
- "gitHead": "605f1ac826c47102ca7617f42a791fe7e3ef2444"
38
+ "gitHead": "101366de9e55ee6561309595f0b6949c3c9b123d"
37
39
  }