@apia/table2-controller 5.0.0 → 5.0.3

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.
Files changed (90) hide show
  1. package/dist/data/TableController.d.ts +174 -0
  2. package/dist/data/TableController.d.ts.map +1 -0
  3. package/dist/data/TableController.js +348 -0
  4. package/dist/data/TableController.js.map +1 -0
  5. package/dist/data/body/TableBody.d.ts +16 -0
  6. package/dist/data/body/TableBody.d.ts.map +1 -0
  7. package/dist/data/body/TableBody.js +35 -0
  8. package/dist/data/body/TableBody.js.map +1 -0
  9. package/dist/data/filter/ComboFilter.d.ts +18 -0
  10. package/dist/data/filter/ComboFilter.d.ts.map +1 -0
  11. package/dist/data/filter/ComboFilter.js +32 -0
  12. package/dist/data/filter/ComboFilter.js.map +1 -0
  13. package/dist/data/filter/DateFilter.d.ts +7 -0
  14. package/dist/data/filter/DateFilter.d.ts.map +1 -0
  15. package/dist/data/filter/DateFilter.js +7 -0
  16. package/dist/data/filter/DateFilter.js.map +1 -0
  17. package/dist/data/filter/DateRangeFilter.d.ts +52 -0
  18. package/dist/data/filter/DateRangeFilter.d.ts.map +1 -0
  19. package/dist/data/filter/DateRangeFilter.js +208 -0
  20. package/dist/data/filter/DateRangeFilter.js.map +1 -0
  21. package/dist/data/filter/DateTimeRangeFilter.d.ts +23 -0
  22. package/dist/data/filter/DateTimeRangeFilter.d.ts.map +1 -0
  23. package/dist/data/filter/DateTimeRangeFilter.js +87 -0
  24. package/dist/data/filter/DateTimeRangeFilter.js.map +1 -0
  25. package/dist/data/filter/Filter.d.ts +49 -0
  26. package/dist/data/filter/Filter.d.ts.map +1 -0
  27. package/dist/data/filter/Filter.js +63 -0
  28. package/dist/data/filter/Filter.js.map +1 -0
  29. package/dist/data/head/Column.d.ts +23 -0
  30. package/dist/data/head/Column.d.ts.map +1 -0
  31. package/dist/data/head/Column.js +26 -0
  32. package/dist/data/head/Column.js.map +1 -0
  33. package/dist/data/head/Columns.d.ts +16 -0
  34. package/dist/data/head/Columns.d.ts.map +1 -0
  35. package/dist/data/head/Columns.js +57 -0
  36. package/dist/data/head/Columns.js.map +1 -0
  37. package/dist/data/head/Filters.d.ts +20 -0
  38. package/dist/data/head/Filters.d.ts.map +1 -0
  39. package/dist/data/head/Filters.js +132 -0
  40. package/dist/data/head/Filters.js.map +1 -0
  41. package/dist/data/head/NullFilter.js +25 -0
  42. package/dist/data/head/NullFilter.js.map +1 -0
  43. package/dist/data/head/TableHead.d.ts +26 -0
  44. package/dist/data/head/TableHead.d.ts.map +1 -0
  45. package/dist/data/head/TableHead.js +59 -0
  46. package/dist/data/head/TableHead.js.map +1 -0
  47. package/dist/data/plugins/FocusControllerPlugin/index.d.ts +26 -0
  48. package/dist/data/plugins/FocusControllerPlugin/index.d.ts.map +1 -0
  49. package/dist/data/plugins/FocusControllerPlugin/index.js +130 -0
  50. package/dist/data/plugins/FocusControllerPlugin/index.js.map +1 -0
  51. package/dist/data/plugins/FocusControllerPlugin/useFocusByClick.js +80 -0
  52. package/dist/data/plugins/FocusControllerPlugin/useFocusByClick.js.map +1 -0
  53. package/dist/data/plugins/FocusControllerPlugin/useFocusByKey.js +156 -0
  54. package/dist/data/plugins/FocusControllerPlugin/useFocusByKey.js.map +1 -0
  55. package/dist/data/plugins/TablePlugin.d.ts +30 -0
  56. package/dist/data/plugins/TablePlugin.d.ts.map +1 -0
  57. package/dist/data/plugins/TablePlugin.js +10 -0
  58. package/dist/data/plugins/TablePlugin.js.map +1 -0
  59. package/dist/data/plugins/WaiAriaPlugin.d.ts +42 -0
  60. package/dist/data/plugins/WaiAriaPlugin.d.ts.map +1 -0
  61. package/dist/data/plugins/WaiAriaPlugin.js +29 -0
  62. package/dist/data/plugins/WaiAriaPlugin.js.map +1 -0
  63. package/dist/data/primitive/AdditionalCell.d.ts +11 -0
  64. package/dist/data/primitive/AdditionalCell.d.ts.map +1 -0
  65. package/dist/data/primitive/AdditionalCell.js +38 -0
  66. package/dist/data/primitive/AdditionalCell.js.map +1 -0
  67. package/dist/data/primitive/AdditionalRow.d.ts +12 -0
  68. package/dist/data/primitive/AdditionalRow.d.ts.map +1 -0
  69. package/dist/data/primitive/AdditionalRow.js +16 -0
  70. package/dist/data/primitive/AdditionalRow.js.map +1 -0
  71. package/dist/data/primitive/Cell.d.ts +39 -0
  72. package/dist/data/primitive/Cell.d.ts.map +1 -0
  73. package/dist/data/primitive/Cell.js +41 -0
  74. package/dist/data/primitive/Cell.js.map +1 -0
  75. package/dist/data/primitive/Element.d.ts +18 -0
  76. package/dist/data/primitive/Element.d.ts.map +1 -0
  77. package/dist/data/primitive/Element.js +40 -0
  78. package/dist/data/primitive/Element.js.map +1 -0
  79. package/dist/data/primitive/Row.d.ts +58 -0
  80. package/dist/data/primitive/Row.d.ts.map +1 -0
  81. package/dist/data/primitive/Row.js +193 -0
  82. package/dist/data/primitive/Row.js.map +1 -0
  83. package/dist/data/primitive/RowsGroup.d.ts +29 -0
  84. package/dist/data/primitive/RowsGroup.d.ts.map +1 -0
  85. package/dist/data/primitive/RowsGroup.js +86 -0
  86. package/dist/data/primitive/RowsGroup.js.map +1 -0
  87. package/dist/index.d.ts +20 -433
  88. package/dist/index.js +20 -1300
  89. package/dist/index.js.map +1 -1
  90. package/package.json +5 -5
@@ -0,0 +1,32 @@
1
+ import { Filter } from './Filter.js';
2
+ import { arrayOrArray } from '@apia/util';
3
+
4
+ class ComboFilter extends Filter {
5
+ constructor(state) {
6
+ super(state);
7
+ this.state = state;
8
+ this.state.options = state.options;
9
+ if (!Array.isArray(state.options) || arrayOrArray(state.options)[0].label === "") {
10
+ this.state.value = "";
11
+ }
12
+ this.state.sorted && arrayOrArray(this.getOptions()).sort(
13
+ (x, y) => x.label.localeCompare(y.label)
14
+ );
15
+ }
16
+ getOptions() {
17
+ return this.state.options;
18
+ }
19
+ set options(options) {
20
+ this.state.options = options;
21
+ if (!Array.isArray(options) || arrayOrArray(options)[0].label === "") {
22
+ this.state.value = "";
23
+ }
24
+ }
25
+ getSelected() {
26
+ const value = this.getValue();
27
+ return value ? this.getOptions().find((x) => x.value === value)?.label : "";
28
+ }
29
+ }
30
+
31
+ export { ComboFilter };
32
+ //# sourceMappingURL=ComboFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboFilter.js","sources":["../../../src/data/filter/ComboFilter.ts"],"sourcesContent":["import { Filter, FilterState } from './Filter';\r\nimport { arrayOrArray, TOption } from '@apia/util';\r\n\r\nexport type ComboFilterState<T> = FilterState<T> & {\r\n options: TOption[];\r\n sorted: boolean;\r\n};\r\n\r\nexport type ComboFilterValueType = string | null;\r\n\r\nexport class ComboFilter extends Filter<ComboFilterValueType> {\r\n constructor(protected state: ComboFilterState<ComboFilterValueType>) {\r\n super(state);\r\n this.state.options = state.options;\r\n if (\r\n !Array.isArray(state.options) ||\r\n arrayOrArray(state.options)[0].label === ''\r\n ) {\r\n this.state.value = '';\r\n }\r\n this.state.sorted &&\r\n arrayOrArray(this.getOptions()).sort((x, y) =>\r\n x.label.localeCompare(y.label),\r\n );\r\n }\r\n\r\n getOptions() {\r\n return this.state.options;\r\n }\r\n\r\n set options(options: TOption[]) {\r\n this.state.options = options;\r\n if (!Array.isArray(options) || arrayOrArray(options)[0].label === '') {\r\n this.state.value = '';\r\n }\r\n }\r\n\r\n getSelected() {\r\n const value = this.getValue();\r\n return value ? this.getOptions().find((x) => x.value === value)?.label : '';\r\n }\r\n}\r\n"],"names":[],"mappings":";;;AAUO,MAAM,oBAAoB,MAAA,CAA6B;AAAA,EAC5D,YAAsB,KAAA,EAA+C;AACnE,IAAA,KAAA,CAAM,KAAK,CAAA;AADS,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAEpB,IAAA,IAAA,CAAK,KAAA,CAAM,UAAU,KAAA,CAAM,OAAA;AAC3B,IAAA,IACE,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA,IAC5B,YAAA,CAAa,KAAA,CAAM,OAAO,CAAA,CAAE,CAAC,CAAA,CAAE,UAAU,EAAA,EACzC;AACA,MAAA,IAAA,CAAK,MAAM,KAAA,GAAQ,EAAA;AAAA;AAErB,IAAA,IAAA,CAAK,MAAM,MAAA,IACT,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,IAAA;AAAA,MAAK,CAAC,CAAA,EAAG,CAAA,KACvC,EAAE,KAAA,CAAM,aAAA,CAAc,EAAE,KAAK;AAAA,KAC/B;AAAA;AACJ,EAEA,UAAA,GAAa;AACX,IAAA,OAAO,KAAK,KAAA,CAAM,OAAA;AAAA;AACpB,EAEA,IAAI,QAAQ,OAAA,EAAoB;AAC9B,IAAA,IAAA,CAAK,MAAM,OAAA,GAAU,OAAA;AACrB,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,IAAK,YAAA,CAAa,OAAO,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,KAAU,EAAA,EAAI;AACpE,MAAA,IAAA,CAAK,MAAM,KAAA,GAAQ,EAAA;AAAA;AACrB;AACF,EAEA,WAAA,GAAc;AACZ,IAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,EAAS;AAC5B,IAAA,OAAO,KAAA,GAAQ,IAAA,CAAK,UAAA,EAAW,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,KAAK,CAAA,EAAG,KAAA,GAAQ,EAAA;AAAA;AAE7E;;;;"}
@@ -0,0 +1,7 @@
1
+ import { Filter } from './Filter.js';
2
+
3
+ declare class DateFilter extends Filter<string | null> {
4
+ }
5
+
6
+ export { DateFilter };
7
+ //# sourceMappingURL=DateFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { Filter } from './Filter.js';
2
+
3
+ class DateFilter extends Filter {
4
+ }
5
+
6
+ export { DateFilter };
7
+ //# sourceMappingURL=DateFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilter.js","sources":["../../../src/data/filter/DateFilter.ts"],"sourcesContent":["import { Filter } from './Filter';\r\n// TODO: HACER QUE EL SET VALUE CHECKEE QUE LA FECHA SEA VÁLIDA\r\nexport class DateFilter extends Filter<string | null> {}\r\n"],"names":[],"mappings":";;AAEO,MAAM,mBAAmB,MAAA,CAAsB;AAAC;;;;"}
@@ -0,0 +1,52 @@
1
+ import { Filter, FilterState } from './Filter.js';
2
+
3
+ type DateRangeFilterState<T> = FilterState<T> & {
4
+ isRequiredFrom: boolean;
5
+ isRequiredTo: boolean;
6
+ initialValueFrom?: string;
7
+ initialValueTo?: string;
8
+ initialValue?: string;
9
+ initialPreset?: TDateInputProps;
10
+ jsonValue?: string;
11
+ };
12
+ type DateRangeFilterValueType = string | null;
13
+ type TDateInputProps = {
14
+ dateFrom: {
15
+ fromStartOfValue: string;
16
+ amountOf: number;
17
+ fixedValue: string;
18
+ };
19
+ dateTo: {
20
+ fixedValue: string;
21
+ };
22
+ chkFromStartOf: boolean;
23
+ };
24
+ declare class DateRangeFilter extends Filter<DateRangeFilterValueType> {
25
+ protected state: DateRangeFilterState<DateRangeFilterValueType>;
26
+ protected values: [string, string];
27
+ protected preset: TDateInputProps;
28
+ errorFromMessage: string;
29
+ errorToMessage: string;
30
+ constructor(state: DateRangeFilterState<DateRangeFilterValueType>);
31
+ hasValue(): boolean;
32
+ clear(emitEvent?: boolean): void;
33
+ setValueFrom(value: string, emitEvent?: boolean): void;
34
+ setValueTo(value: string, emitEvent?: boolean): void;
35
+ setRangeValue(valueFrom: string, valueTo: string, emitEvent?: boolean, preset?: TDateInputProps): void;
36
+ getPreset(): TDateInputProps;
37
+ setPreset(preset: TDateInputProps): void;
38
+ getValueFrom(): string;
39
+ getValueTo(): string;
40
+ getIsRequiredFrom(): boolean;
41
+ getIsRequiredTo(): boolean;
42
+ setErrorFrom(error: string): void;
43
+ setErrorTo(error: string): void;
44
+ getErrorFrom(): string;
45
+ getErrorTo(): string;
46
+ validateOrder(): boolean;
47
+ validate(): boolean;
48
+ getValueForSubmit(): string[];
49
+ }
50
+
51
+ export { DateRangeFilter, type DateRangeFilterState, type DateRangeFilterValueType, type TDateInputProps };
52
+ //# sourceMappingURL=DateRangeFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangeFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,208 @@
1
+ import { makeObservable, observable } from 'mobx';
2
+ import { Filter } from './Filter.js';
3
+ import { getLabel } from '@apia/util';
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => {
8
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
+ return value;
10
+ };
11
+ class DateRangeFilter extends Filter {
12
+ constructor(state) {
13
+ super(state);
14
+ this.state = state;
15
+ __publicField(this, "values", ["", ""]);
16
+ __publicField(this, "preset", {
17
+ chkFromStartOf: false,
18
+ dateTo: { fixedValue: "" },
19
+ dateFrom: {
20
+ fixedValue: "",
21
+ amountOf: 0,
22
+ fromStartOfValue: ""
23
+ }
24
+ });
25
+ __publicField(this, "errorFromMessage", "");
26
+ __publicField(this, "errorToMessage", "");
27
+ if (state.initialValue) {
28
+ this.values[0] = state.initialValue;
29
+ }
30
+ if (state.initialValueFrom) {
31
+ this.values[0] = state.initialValueFrom;
32
+ }
33
+ if (state.initialValueTo) {
34
+ this.values[1] = state.initialValueTo;
35
+ }
36
+ if (state.initialPreset) {
37
+ this.preset = state.initialPreset;
38
+ } else {
39
+ this.preset = {
40
+ chkFromStartOf: false,
41
+ dateTo: { fixedValue: this.values[1] },
42
+ dateFrom: {
43
+ fixedValue: this.values[0],
44
+ amountOf: 0,
45
+ fromStartOfValue: ""
46
+ }
47
+ };
48
+ }
49
+ if (state.jsonValue) {
50
+ this.preset = JSON.parse(state.jsonValue);
51
+ }
52
+ makeObservable(this, {
53
+ values: observable,
54
+ errorFromMessage: observable,
55
+ errorToMessage: observable
56
+ });
57
+ }
58
+ hasValue() {
59
+ return !!this.values.find((c) => !!c);
60
+ }
61
+ clear(emitEvent = true) {
62
+ this.setValueFrom("", emitEvent);
63
+ this.setValueTo("", emitEvent);
64
+ this.setPreset({
65
+ chkFromStartOf: false,
66
+ dateTo: { fixedValue: "" },
67
+ dateFrom: {
68
+ fixedValue: "",
69
+ amountOf: 0,
70
+ fromStartOfValue: ""
71
+ }
72
+ });
73
+ }
74
+ setValueFrom(value, emitEvent = true) {
75
+ this.values[0] = value;
76
+ this.setErrorMessage("");
77
+ this.setErrorFrom("");
78
+ this.preset = {
79
+ chkFromStartOf: false,
80
+ dateTo: { fixedValue: this.values[1] },
81
+ dateFrom: {
82
+ fixedValue: value,
83
+ amountOf: this.preset.dateFrom.amountOf,
84
+ fromStartOfValue: this.preset.dateFrom.fromStartOfValue
85
+ }
86
+ };
87
+ this.table.emit("filterValueChange", this);
88
+ if (emitEvent) {
89
+ this.table.emit("filterChange", this);
90
+ }
91
+ }
92
+ setValueTo(value, emitEvent = true) {
93
+ this.values[1] = value;
94
+ this.setErrorMessage("");
95
+ this.setErrorTo("");
96
+ this.preset = {
97
+ chkFromStartOf: false,
98
+ dateTo: { fixedValue: value },
99
+ dateFrom: {
100
+ fixedValue: this.values[0],
101
+ amountOf: this.preset.dateFrom.amountOf,
102
+ fromStartOfValue: this.preset.dateFrom.fromStartOfValue
103
+ }
104
+ };
105
+ this.table.emit("filterValueChange", this);
106
+ if (emitEvent) {
107
+ this.table.emit("filterChange", this);
108
+ }
109
+ }
110
+ setRangeValue(valueFrom, valueTo, emitEvent = true, preset) {
111
+ this.values[0] = valueFrom;
112
+ this.values[1] = valueTo;
113
+ this.setErrorMessage("");
114
+ this.preset = {
115
+ chkFromStartOf: false,
116
+ dateTo: { fixedValue: valueTo },
117
+ dateFrom: {
118
+ fixedValue: valueFrom,
119
+ amountOf: this.preset.dateFrom.amountOf,
120
+ fromStartOfValue: this.preset.dateFrom.fromStartOfValue
121
+ }
122
+ };
123
+ this.table.emit("filterValueChange", this);
124
+ if (preset) {
125
+ this.preset = preset;
126
+ }
127
+ if (emitEvent) {
128
+ this.table.emit("filterChange", this);
129
+ }
130
+ }
131
+ getPreset() {
132
+ return this.preset;
133
+ }
134
+ setPreset(preset) {
135
+ this.preset = preset;
136
+ }
137
+ getValueFrom() {
138
+ return this.values[0];
139
+ }
140
+ getValueTo() {
141
+ return this.values[1];
142
+ }
143
+ getIsRequiredFrom() {
144
+ return this.state.isRequiredFrom;
145
+ }
146
+ getIsRequiredTo() {
147
+ return this.state.isRequiredTo;
148
+ }
149
+ setErrorFrom(error) {
150
+ this.errorFromMessage = error;
151
+ }
152
+ setErrorTo(error) {
153
+ this.errorToMessage = error;
154
+ }
155
+ getErrorFrom() {
156
+ return this.errorFromMessage;
157
+ }
158
+ getErrorTo() {
159
+ return this.errorToMessage;
160
+ }
161
+ validateOrder() {
162
+ const from = this.getValueFrom();
163
+ const to = this.getValueTo();
164
+ if (this.table.context.getDateFromString(from) > this.table.context.getDateFromString(to)) {
165
+ this.errorMessage = getLabel(
166
+ "lblDateFromIsGreaterThanTo",
167
+ {},
168
+ this.table.context
169
+ ).text;
170
+ return false;
171
+ }
172
+ return true;
173
+ }
174
+ validate() {
175
+ const from = this.getValueFrom();
176
+ const to = this.getValueTo();
177
+ if (this.state.isRequired && (!from || !to)) {
178
+ this.errorMessage = getLabel("lblReq", {}, this.table.context).text;
179
+ return false;
180
+ }
181
+ if (this.state.isRequiredFrom && !from) {
182
+ this.errorFromMessage = getLabel(
183
+ "lblRequiredFrom",
184
+ {},
185
+ this.table.context
186
+ ).text;
187
+ return false;
188
+ }
189
+ if (this.state.isRequiredTo && !to) {
190
+ this.errorToMessage = getLabel(
191
+ "lblRequiredTo",
192
+ {},
193
+ this.table.context
194
+ ).text;
195
+ return false;
196
+ }
197
+ return this.validateOrder();
198
+ }
199
+ getValueForSubmit() {
200
+ return [
201
+ this.preset.chkFromStartOf ? JSON.stringify(this.preset) : this.getValueFrom(),
202
+ this.getValueTo()
203
+ ];
204
+ }
205
+ }
206
+
207
+ export { DateRangeFilter };
208
+ //# sourceMappingURL=DateRangeFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateRangeFilter.js","sources":["../../../src/data/filter/DateRangeFilter.ts"],"sourcesContent":["import { makeObservable, observable } from 'mobx';\r\nimport { Filter, FilterState } from './Filter';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport type DateRangeFilterState<T> = FilterState<T> & {\r\n isRequiredFrom: boolean;\r\n isRequiredTo: boolean;\r\n initialValueFrom?: string;\r\n initialValueTo?: string;\r\n initialValue?: string;\r\n initialPreset?: TDateInputProps;\r\n jsonValue?: string;\r\n};\r\n\r\nexport type DateRangeFilterValueType = string | null;\r\n\r\nexport type TDateInputProps = {\r\n dateFrom: {\r\n fromStartOfValue: string;\r\n amountOf: number;\r\n fixedValue: string;\r\n };\r\n dateTo: { fixedValue: string };\r\n chkFromStartOf: boolean;\r\n};\r\n\r\nexport class DateRangeFilter extends Filter<DateRangeFilterValueType> {\r\n protected values: [string, string] = ['', ''];\r\n protected preset: TDateInputProps = {\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: '' },\r\n dateFrom: {\r\n fixedValue: '',\r\n amountOf: 0,\r\n fromStartOfValue: '',\r\n },\r\n };\r\n errorFromMessage: string = '';\r\n errorToMessage: string = '';\r\n\r\n constructor(protected state: DateRangeFilterState<DateRangeFilterValueType>) {\r\n super(state);\r\n\r\n if (state.initialValue) {\r\n this.values[0] = state.initialValue;\r\n }\r\n if (state.initialValueFrom) {\r\n this.values[0] = state.initialValueFrom;\r\n }\r\n if (state.initialValueTo) {\r\n this.values[1] = state.initialValueTo;\r\n }\r\n if (state.initialPreset) {\r\n this.preset = state.initialPreset;\r\n } else {\r\n this.preset = {\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: this.values[1] },\r\n dateFrom: {\r\n fixedValue: this.values[0],\r\n amountOf: 0,\r\n fromStartOfValue: '',\r\n },\r\n };\r\n }\r\n if (state.jsonValue) {\r\n this.preset = JSON.parse(state.jsonValue) as TDateInputProps;\r\n }\r\n\r\n makeObservable<DateRangeFilter, 'values'>(this, {\r\n values: observable,\r\n errorFromMessage: observable,\r\n errorToMessage: observable,\r\n });\r\n }\r\n\r\n hasValue() {\r\n return !!this.values.find((c) => !!c);\r\n }\r\n\r\n clear(emitEvent = true) {\r\n this.setValueFrom('', emitEvent);\r\n this.setValueTo('', emitEvent);\r\n this.setPreset({\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: '' },\r\n dateFrom: {\r\n fixedValue: '',\r\n amountOf: 0,\r\n fromStartOfValue: '',\r\n },\r\n });\r\n }\r\n\r\n setValueFrom(value: string, emitEvent = true) {\r\n this.values[0] = value;\r\n this.setErrorMessage('');\r\n this.setErrorFrom('');\r\n\r\n this.preset = {\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: this.values[1] },\r\n dateFrom: {\r\n fixedValue: value,\r\n amountOf: this.preset.dateFrom.amountOf,\r\n fromStartOfValue: this.preset.dateFrom.fromStartOfValue,\r\n },\r\n };\r\n this.table.emit('filterValueChange', this);\r\n if (emitEvent) {\r\n this.table.emit('filterChange', this);\r\n }\r\n }\r\n\r\n setValueTo(value: string, emitEvent = true) {\r\n this.values[1] = value;\r\n this.setErrorMessage('');\r\n this.setErrorTo('');\r\n this.preset = {\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: value },\r\n dateFrom: {\r\n fixedValue: this.values[0],\r\n amountOf: this.preset.dateFrom.amountOf,\r\n fromStartOfValue: this.preset.dateFrom.fromStartOfValue,\r\n },\r\n };\r\n this.table.emit('filterValueChange', this);\r\n if (emitEvent) {\r\n this.table.emit('filterChange', this);\r\n }\r\n }\r\n\r\n setRangeValue(\r\n valueFrom: string,\r\n valueTo: string,\r\n emitEvent = true,\r\n preset?: TDateInputProps,\r\n ) {\r\n this.values[0] = valueFrom;\r\n this.values[1] = valueTo;\r\n this.setErrorMessage('');\r\n\r\n this.preset = {\r\n chkFromStartOf: false,\r\n dateTo: { fixedValue: valueTo },\r\n dateFrom: {\r\n fixedValue: valueFrom,\r\n amountOf: this.preset.dateFrom.amountOf,\r\n fromStartOfValue: this.preset.dateFrom.fromStartOfValue,\r\n },\r\n };\r\n this.table.emit('filterValueChange', this);\r\n if (preset) {\r\n this.preset = preset;\r\n }\r\n if (emitEvent) {\r\n this.table.emit('filterChange', this);\r\n }\r\n }\r\n\r\n getPreset() {\r\n return this.preset;\r\n }\r\n\r\n setPreset(preset: TDateInputProps) {\r\n this.preset = preset;\r\n }\r\n\r\n getValueFrom() {\r\n return this.values[0];\r\n }\r\n\r\n getValueTo() {\r\n return this.values[1];\r\n }\r\n getIsRequiredFrom() {\r\n return this.state.isRequiredFrom;\r\n }\r\n\r\n getIsRequiredTo() {\r\n return this.state.isRequiredTo;\r\n }\r\n\r\n setErrorFrom(error: string) {\r\n this.errorFromMessage = error;\r\n }\r\n\r\n setErrorTo(error: string) {\r\n this.errorToMessage = error;\r\n }\r\n getErrorFrom() {\r\n return this.errorFromMessage;\r\n }\r\n\r\n getErrorTo() {\r\n return this.errorToMessage;\r\n }\r\n\r\n validateOrder() {\r\n const from = this.getValueFrom();\r\n const to = this.getValueTo();\r\n if (\r\n this.table.context.getDateFromString!(from)! >\r\n this.table.context.getDateFromString!(to)!\r\n ) {\r\n this.errorMessage = getLabel(\r\n 'lblDateFromIsGreaterThanTo',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validate(): boolean {\r\n const from = this.getValueFrom();\r\n const to = this.getValueTo();\r\n\r\n if (this.state.isRequired && (!from || !to)) {\r\n this.errorMessage = getLabel('lblReq', {}, this.table.context).text;\r\n\r\n return false;\r\n }\r\n if (this.state.isRequiredFrom && !from) {\r\n this.errorFromMessage = getLabel(\r\n 'lblRequiredFrom',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n if (this.state.isRequiredTo && !to) {\r\n this.errorToMessage = getLabel(\r\n 'lblRequiredTo',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n\r\n return this.validateOrder();\r\n }\r\n\r\n getValueForSubmit() {\r\n return [\r\n this.preset.chkFromStartOf\r\n ? JSON.stringify(this.preset)\r\n : this.getValueFrom(),\r\n this.getValueTo(),\r\n ];\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { DateRangeFilter } from './DateRangeFilter.js';
2
+ import { FilterState } from './Filter.js';
3
+
4
+ type DateRangeFilterState<T> = FilterState<T> & {
5
+ isRequiredFrom: boolean;
6
+ isRequiredTo: boolean;
7
+ };
8
+ type DateRangeFilterValueType = string | null;
9
+ declare class DateTimeRangeFilter extends DateRangeFilter {
10
+ protected state: DateRangeFilterState<DateRangeFilterValueType>;
11
+ protected timeValues: [string, string];
12
+ constructor(state: DateRangeFilterState<DateRangeFilterValueType>);
13
+ hasValue(): boolean;
14
+ setValueTimeFrom(value: string): void;
15
+ setValueTimeTo(value: string): void;
16
+ getValueTimeFrom(): string;
17
+ getValueTimeTo(): string;
18
+ validate(): boolean;
19
+ getValueForSubmit(): string[];
20
+ }
21
+
22
+ export { type DateRangeFilterState, type DateRangeFilterValueType, DateTimeRangeFilter };
23
+ //# sourceMappingURL=DateTimeRangeFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeRangeFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import { DateRangeFilter } from './DateRangeFilter.js';
2
+ import { getLabel } from '@apia/util';
3
+ import { makeObservable, observable } from 'mobx';
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => {
8
+ __defNormalProp(obj, key + "" , value);
9
+ return value;
10
+ };
11
+ class DateTimeRangeFilter extends DateRangeFilter {
12
+ constructor(state) {
13
+ super(state);
14
+ this.state = state;
15
+ __publicField(this, "timeValues", ["", ""]);
16
+ makeObservable(this, {
17
+ timeValues: observable
18
+ });
19
+ }
20
+ hasValue() {
21
+ return super.hasValue() || !!this.timeValues.find((c) => !!c);
22
+ }
23
+ setValueTimeFrom(value) {
24
+ this.timeValues[0] = value;
25
+ }
26
+ setValueTimeTo(value) {
27
+ this.timeValues[1] = value;
28
+ }
29
+ getValueTimeFrom() {
30
+ return this.timeValues[0];
31
+ }
32
+ getValueTimeTo() {
33
+ return this.timeValues[1];
34
+ }
35
+ validate() {
36
+ const from = this.getValueFrom();
37
+ const to = this.getValueTo();
38
+ const fromTime = this.getValueTimeFrom();
39
+ const toTime = this.getValueTimeTo();
40
+ if (this.state.isRequired && (!from || !to)) {
41
+ this.errorMessage = getLabel("lblReq", {}, this.table.context).text;
42
+ return false;
43
+ }
44
+ if (this.state.isRequiredFrom && (!from || !fromTime)) {
45
+ this.errorMessage = getLabel(
46
+ "lblRequiredFrom",
47
+ {},
48
+ this.table.context
49
+ ).text;
50
+ return false;
51
+ }
52
+ if (this.state.isRequiredTo && (!to || !toTime)) {
53
+ this.errorMessage = getLabel(
54
+ "lblRequiredTo",
55
+ {},
56
+ this.table.context
57
+ ).text;
58
+ return false;
59
+ }
60
+ if (this.table.context.getDateFromString(
61
+ from + (fromTime ? " " + fromTime : ""),
62
+ !!fromTime
63
+ ) > this.table.context.getDateFromString(
64
+ to + (toTime ? " " + toTime : ""),
65
+ !!toTime
66
+ )) {
67
+ this.errorMessage = getLabel(
68
+ "lblDateFromIsGreaterThanTo",
69
+ {},
70
+ this.table.context
71
+ ).text;
72
+ return false;
73
+ }
74
+ return true;
75
+ }
76
+ getValueForSubmit() {
77
+ return [
78
+ this.getValueFrom(),
79
+ this.getValueTo(),
80
+ this.getValueTimeFrom(),
81
+ this.getValueTimeTo()
82
+ ];
83
+ }
84
+ }
85
+
86
+ export { DateTimeRangeFilter };
87
+ //# sourceMappingURL=DateTimeRangeFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeRangeFilter.js","sources":["../../../src/data/filter/DateTimeRangeFilter.ts"],"sourcesContent":["import { DateRangeFilter } from './DateRangeFilter';\r\nimport { FilterState } from './Filter';\r\nimport { getLabel } from '@apia/util';\r\nimport { makeObservable, observable } from 'mobx';\r\n\r\nexport type DateRangeFilterState<T> = FilterState<T> & {\r\n isRequiredFrom: boolean;\r\n isRequiredTo: boolean;\r\n};\r\n\r\nexport type DateRangeFilterValueType = string | null;\r\n\r\nexport class DateTimeRangeFilter extends DateRangeFilter {\r\n protected timeValues: [string, string] = ['', ''];\r\n\r\n constructor(protected state: DateRangeFilterState<DateRangeFilterValueType>) {\r\n super(state);\r\n makeObservable<DateTimeRangeFilter, 'timeValues'>(this, {\r\n timeValues: observable,\r\n });\r\n }\r\n\r\n hasValue() {\r\n return super.hasValue() || !!this.timeValues.find((c) => !!c);\r\n }\r\n\r\n setValueTimeFrom(value: string) {\r\n this.timeValues[0] = value;\r\n }\r\n\r\n setValueTimeTo(value: string) {\r\n this.timeValues[1] = value;\r\n }\r\n getValueTimeFrom() {\r\n return this.timeValues[0];\r\n }\r\n\r\n getValueTimeTo() {\r\n return this.timeValues[1];\r\n }\r\n\r\n validate(): boolean {\r\n const from = this.getValueFrom();\r\n const to = this.getValueTo();\r\n const fromTime = this.getValueTimeFrom();\r\n const toTime = this.getValueTimeTo();\r\n\r\n if (this.state.isRequired && (!from || !to)) {\r\n this.errorMessage = getLabel('lblReq', {}, this.table.context).text;\r\n\r\n return false;\r\n }\r\n if (this.state.isRequiredFrom && (!from || !fromTime)) {\r\n this.errorMessage = getLabel(\r\n 'lblRequiredFrom',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n if (this.state.isRequiredTo && (!to || !toTime)) {\r\n this.errorMessage = getLabel(\r\n 'lblRequiredTo',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n\r\n if (\r\n this.table.context.getDateFromString!(\r\n from + (fromTime ? ' ' + fromTime : ''),\r\n !!fromTime,\r\n )! >\r\n this.table.context.getDateFromString!(\r\n to + (toTime ? ' ' + toTime : ''),\r\n !!toTime,\r\n )!\r\n ) {\r\n this.errorMessage = getLabel(\r\n 'lblDateFromIsGreaterThanTo',\r\n {},\r\n this.table.context,\r\n ).text;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getValueForSubmit() {\r\n return [\r\n this.getValueFrom(),\r\n this.getValueTo(),\r\n this.getValueTimeFrom(),\r\n this.getValueTimeTo(),\r\n ];\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Cell, CellState } from '../primitive/Cell.js';
2
+ import { TableEvents } from '../TableController.js';
3
+ import { FC } from 'react';
4
+ import { Filters } from '../head/Filters.js';
5
+ import { Column } from '../head/Column.js';
6
+
7
+ type FilterRenderer = FC<{
8
+ cell: Filter<any>;
9
+ }>;
10
+ type TFilterValueType = 'NUMBER' | 'STRING';
11
+ type TFilterType = 'DATE' | 'INPUT' | 'COMBO' | 'DATERANGE' | 'SIZE' | 'SIZERANGE' | 'DATEHOUR' | 'DATEHOURRANGE';
12
+ type FilterState<ValueType = string, T extends FilterState<any> = FilterState<ValueType, any>> = CellState<T> & {
13
+ asAdditional?: boolean;
14
+ name: string;
15
+ columnName?: string;
16
+ conditionValue?: string;
17
+ hasEvents?: boolean;
18
+ id?: string;
19
+ isRequired?: boolean;
20
+ readOnly?: boolean;
21
+ Renderer?: FilterRenderer;
22
+ runAutomatically?: boolean;
23
+ showAsInteger?: boolean;
24
+ title: string;
25
+ tooltip: string;
26
+ value: ValueType;
27
+ valueType?: TFilterValueType;
28
+ type: TFilterType;
29
+ };
30
+ type FilterEvents = Pick<TableEvents, 'filterBlur' | 'filterChange' | 'filterPressEnter' | 'filterValueChange'>;
31
+ declare class Filter<ValueType = string> extends Cell<FilterState<ValueType>> {
32
+ private parse;
33
+ errorMessage: string;
34
+ asAdditional(): boolean;
35
+ constructor(state: FilterState<ValueType>, parse?: ((v: ValueType) => ValueType) | undefined);
36
+ clear(emitEvent?: boolean): void;
37
+ getCorrespondingColumn(): Column | undefined;
38
+ fire(ev: keyof FilterEvents): void;
39
+ getRow(): Filters;
40
+ getValue(): ValueType;
41
+ hasValue(): boolean;
42
+ setValue(val: ValueType, emitEvent?: boolean): void;
43
+ setErrorMessage(error: string): void;
44
+ getValueForSubmit(): any;
45
+ validate(): boolean;
46
+ }
47
+
48
+ export { Filter, type FilterEvents, type FilterRenderer, type FilterState, type TFilterType, type TFilterValueType };
49
+ //# sourceMappingURL=Filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import { Cell } from '../primitive/Cell.js';
2
+ import { makeObservable, observable } from 'mobx';
3
+ import { getLabel } from '@apia/util';
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => {
8
+ __defNormalProp(obj, key + "" , value);
9
+ return value;
10
+ };
11
+ class Filter extends Cell {
12
+ constructor(state, parse = void 0) {
13
+ super(state);
14
+ this.parse = parse;
15
+ __publicField(this, "errorMessage", "");
16
+ makeObservable(this, { errorMessage: observable });
17
+ }
18
+ asAdditional() {
19
+ return !!this.state.asAdditional || !this.getCorrespondingColumn();
20
+ }
21
+ clear(emitEvent = true) {
22
+ this.setValue("", emitEvent);
23
+ }
24
+ getCorrespondingColumn() {
25
+ return this?.getRow()?.getContainer()?.getHeaderRow()?.getShownColumns().find((c) => c.getState("colName") === this.getState("colName"));
26
+ }
27
+ fire(ev) {
28
+ this.table.emit(ev, this);
29
+ }
30
+ getRow() {
31
+ return super.getRow();
32
+ }
33
+ getValue() {
34
+ return this.state.value;
35
+ }
36
+ hasValue() {
37
+ return !!this.getValue();
38
+ }
39
+ setValue(val, emitEvent = true) {
40
+ this.state.value = this.parse ? this.parse(val) : val;
41
+ this.setErrorMessage("");
42
+ this.table.emit("filterValueChange", this);
43
+ if (emitEvent) {
44
+ this.table.emit("filterChange", this);
45
+ }
46
+ }
47
+ setErrorMessage(error) {
48
+ this.errorMessage = error;
49
+ }
50
+ getValueForSubmit() {
51
+ return this.getValue();
52
+ }
53
+ validate() {
54
+ const isValid = this.state.isRequired ? this.hasValue() : true;
55
+ if (!isValid) {
56
+ this.errorMessage = getLabel("lblReq", {}, this.getTable().context).text;
57
+ }
58
+ return isValid;
59
+ }
60
+ }
61
+
62
+ export { Filter };
63
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sources":["../../../src/data/filter/Filter.ts"],"sourcesContent":["import { Cell, type CellState } from '../primitive/Cell';\r\nimport type { FC } from 'react';\r\nimport type { Filters } from '../head/Filters';\r\nimport type { TableEvents } from '../TableController';\r\nimport { makeObservable, observable } from 'mobx';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport type FilterRenderer = FC<{ cell: Filter<any> }>;\r\n\r\nexport type TFilterValueType = 'NUMBER' | 'STRING';\r\n\r\nexport type TFilterType =\r\n | 'DATE'\r\n | 'INPUT'\r\n | 'COMBO'\r\n | 'DATERANGE'\r\n | 'SIZE'\r\n | 'SIZERANGE'\r\n | 'DATEHOUR'\r\n | 'DATEHOURRANGE';\r\n\r\nexport type FilterState<\r\n ValueType = string,\r\n T extends FilterState<any> = FilterState<ValueType, any>,\r\n> = CellState<T> & {\r\n asAdditional?: boolean;\r\n name: string;\r\n columnName?: string;\r\n conditionValue?: string;\r\n hasEvents?: boolean;\r\n id?: string;\r\n isRequired?: boolean;\r\n readOnly?: boolean;\r\n Renderer?: FilterRenderer;\r\n runAutomatically?: boolean;\r\n showAsInteger?: boolean;\r\n title: string;\r\n tooltip: string;\r\n value: ValueType;\r\n valueType?: TFilterValueType;\r\n type: TFilterType;\r\n};\r\n\r\nexport type FilterEvents = Pick<\r\n TableEvents,\r\n 'filterBlur' | 'filterChange' | 'filterPressEnter' | 'filterValueChange'\r\n>;\r\n\r\nexport class Filter<ValueType = string> extends Cell<FilterState<ValueType>> {\r\n errorMessage: string = '';\r\n\r\n public asAdditional() {\r\n return !!this.state.asAdditional || !this.getCorrespondingColumn();\r\n }\r\n\r\n constructor(\r\n state: FilterState<ValueType>,\r\n private parse: ((v: ValueType) => ValueType) | undefined = undefined,\r\n ) {\r\n super(state);\r\n\r\n makeObservable(this, { errorMessage: observable });\r\n }\r\n\r\n clear(emitEvent = true) {\r\n this.setValue('' as ValueType, emitEvent);\r\n }\r\n\r\n getCorrespondingColumn() {\r\n return this?.getRow()\r\n ?.getContainer()\r\n ?.getHeaderRow()\r\n ?.getShownColumns()\r\n .find((c) => c.getState('colName') === this.getState('colName'));\r\n }\r\n\r\n fire(ev: keyof FilterEvents) {\r\n this.table.emit(ev, this);\r\n }\r\n\r\n getRow() {\r\n return super.getRow() as Filters;\r\n }\r\n\r\n getValue() {\r\n return this.state.value;\r\n }\r\n\r\n hasValue() {\r\n return !!this.getValue();\r\n }\r\n\r\n setValue(val: ValueType, emitEvent = true) {\r\n this.state.value = this.parse ? this.parse(val) : val;\r\n this.setErrorMessage('');\r\n\r\n this.table.emit('filterValueChange', this);\r\n if (emitEvent) {\r\n this.table.emit('filterChange', this);\r\n }\r\n }\r\n\r\n setErrorMessage(error: string) {\r\n this.errorMessage = error;\r\n }\r\n\r\n getValueForSubmit(): any {\r\n return this.getValue();\r\n }\r\n\r\n validate() {\r\n const isValid = this.state.isRequired ? this.hasValue() : true;\r\n\r\n if (!isValid) {\r\n this.errorMessage = getLabel('lblReq', {}, this.getTable().context).text;\r\n }\r\n\r\n return isValid;\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;;;;;AAgDO,MAAM,eAAmC,IAAA,CAA6B;AAAA,EAO3E,WAAA,CACE,KAAA,EACQ,KAAA,GAAmD,MAAA,EAC3D;AACA,IAAA,KAAA,CAAM,KAAK,CAAA;AAFH,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AARV,IAAA,aAAA,CAAA,IAAA,EAAA,cAAA,EAAuB,EAAA,CAAA;AAYrB,IAAA,cAAA,CAAe,IAAA,EAAM,EAAE,YAAA,EAAc,UAAA,EAAY,CAAA;AAAA;AACnD,EAXO,YAAA,GAAe;AACpB,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,MAAM,YAAA,IAAgB,CAAC,KAAK,sBAAA,EAAuB;AAAA;AACnE,EAWA,KAAA,CAAM,YAAY,IAAA,EAAM;AACtB,IAAA,IAAA,CAAK,QAAA,CAAS,IAAiB,SAAS,CAAA;AAAA;AAC1C,EAEA,sBAAA,GAAyB;AACvB,IAAA,OAAO,MAAM,MAAA,EAAO,EAChB,cAAa,EACb,YAAA,IACA,eAAA,EAAgB,CACjB,KAAK,CAAC,CAAA,KAAM,EAAE,QAAA,CAAS,SAAS,MAAM,IAAA,CAAK,QAAA,CAAS,SAAS,CAAC,CAAA;AAAA;AACnE,EAEA,KAAK,EAAA,EAAwB;AAC3B,IAAA,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,EAAA,EAAI,IAAI,CAAA;AAAA;AAC1B,EAEA,MAAA,GAAS;AACP,IAAA,OAAO,MAAM,MAAA,EAAO;AAAA;AACtB,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,KAAK,KAAA,CAAM,KAAA;AAAA;AACpB,EAEA,QAAA,GAAW;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,QAAA,EAAS;AAAA;AACzB,EAEA,QAAA,CAAS,GAAA,EAAgB,SAAA,GAAY,IAAA,EAAM;AACzC,IAAA,IAAA,CAAK,MAAM,KAAA,GAAQ,IAAA,CAAK,QAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,GAAA;AAClD,IAAA,IAAA,CAAK,gBAAgB,EAAE,CAAA;AAEvB,IAAA,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,mBAAA,EAAqB,IAAI,CAAA;AACzC,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,cAAA,EAAgB,IAAI,CAAA;AAAA;AACtC;AACF,EAEA,gBAAgB,KAAA,EAAe;AAC7B,IAAA,IAAA,CAAK,YAAA,GAAe,KAAA;AAAA;AACtB,EAEA,iBAAA,GAAyB;AACvB,IAAA,OAAO,KAAK,QAAA,EAAS;AAAA;AACvB,EAEA,QAAA,GAAW;AACT,IAAA,MAAM,UAAU,IAAA,CAAK,KAAA,CAAM,UAAA,GAAa,IAAA,CAAK,UAAS,GAAI,IAAA;AAE1D,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAA,CAAK,YAAA,GAAe,SAAS,QAAA,EAAU,IAAI,IAAA,CAAK,QAAA,EAAS,CAAE,OAAO,CAAA,CAAE,IAAA;AAAA;AAGtE,IAAA,OAAO,OAAA;AAAA;AAEX;;;;"}
@@ -0,0 +1,23 @@
1
+ import { TSortType } from '@apia/util';
2
+ import { Cell, CellState } from '../primitive/Cell.js';
3
+
4
+ type ColumnState<T extends ColumnState<any> = ColumnState<any>> = CellState<T> & {
5
+ asAdditional?: boolean;
6
+ sortable?: boolean;
7
+ sortState?: TSortType;
8
+ showInAccordionTitle?: boolean;
9
+ adjustWidthToTitle?: boolean;
10
+ };
11
+ declare class Column extends Cell<ColumnState> {
12
+ constructor(state: ColumnState);
13
+ get asAdditional(): boolean;
14
+ get isHidden(): boolean;
15
+ /**
16
+ * A visible column is that which is not additional nor hidden.
17
+ */
18
+ get isVisible(): boolean;
19
+ sort(order?: ColumnState['sortState']): void;
20
+ }
21
+
22
+ export { Column, type ColumnState };
23
+ //# sourceMappingURL=Column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { Cell } from '../primitive/Cell.js';
2
+
3
+ class Column extends Cell {
4
+ constructor(state) {
5
+ super(state);
6
+ }
7
+ get asAdditional() {
8
+ return !!this.state.asAdditional;
9
+ }
10
+ get isHidden() {
11
+ return !!this.state.isHidden;
12
+ }
13
+ /**
14
+ * A visible column is that which is not additional nor hidden.
15
+ */
16
+ get isVisible() {
17
+ return !this.asAdditional && !this.isHidden;
18
+ }
19
+ sort(order) {
20
+ order = order ?? (this.getState("sortState") === "ASC" ? "DESC" : "ASC");
21
+ this.setState("sortState", order);
22
+ }
23
+ }
24
+
25
+ export { Column };
26
+ //# sourceMappingURL=Column.js.map