@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.
- package/dist/data/TableController.d.ts +174 -0
- package/dist/data/TableController.d.ts.map +1 -0
- package/dist/data/TableController.js +348 -0
- package/dist/data/TableController.js.map +1 -0
- package/dist/data/body/TableBody.d.ts +16 -0
- package/dist/data/body/TableBody.d.ts.map +1 -0
- package/dist/data/body/TableBody.js +35 -0
- package/dist/data/body/TableBody.js.map +1 -0
- package/dist/data/filter/ComboFilter.d.ts +18 -0
- package/dist/data/filter/ComboFilter.d.ts.map +1 -0
- package/dist/data/filter/ComboFilter.js +32 -0
- package/dist/data/filter/ComboFilter.js.map +1 -0
- package/dist/data/filter/DateFilter.d.ts +7 -0
- package/dist/data/filter/DateFilter.d.ts.map +1 -0
- package/dist/data/filter/DateFilter.js +7 -0
- package/dist/data/filter/DateFilter.js.map +1 -0
- package/dist/data/filter/DateRangeFilter.d.ts +52 -0
- package/dist/data/filter/DateRangeFilter.d.ts.map +1 -0
- package/dist/data/filter/DateRangeFilter.js +208 -0
- package/dist/data/filter/DateRangeFilter.js.map +1 -0
- package/dist/data/filter/DateTimeRangeFilter.d.ts +23 -0
- package/dist/data/filter/DateTimeRangeFilter.d.ts.map +1 -0
- package/dist/data/filter/DateTimeRangeFilter.js +87 -0
- package/dist/data/filter/DateTimeRangeFilter.js.map +1 -0
- package/dist/data/filter/Filter.d.ts +49 -0
- package/dist/data/filter/Filter.d.ts.map +1 -0
- package/dist/data/filter/Filter.js +63 -0
- package/dist/data/filter/Filter.js.map +1 -0
- package/dist/data/head/Column.d.ts +23 -0
- package/dist/data/head/Column.d.ts.map +1 -0
- package/dist/data/head/Column.js +26 -0
- package/dist/data/head/Column.js.map +1 -0
- package/dist/data/head/Columns.d.ts +16 -0
- package/dist/data/head/Columns.d.ts.map +1 -0
- package/dist/data/head/Columns.js +57 -0
- package/dist/data/head/Columns.js.map +1 -0
- package/dist/data/head/Filters.d.ts +20 -0
- package/dist/data/head/Filters.d.ts.map +1 -0
- package/dist/data/head/Filters.js +132 -0
- package/dist/data/head/Filters.js.map +1 -0
- package/dist/data/head/NullFilter.js +25 -0
- package/dist/data/head/NullFilter.js.map +1 -0
- package/dist/data/head/TableHead.d.ts +26 -0
- package/dist/data/head/TableHead.d.ts.map +1 -0
- package/dist/data/head/TableHead.js +59 -0
- package/dist/data/head/TableHead.js.map +1 -0
- package/dist/data/plugins/FocusControllerPlugin/index.d.ts +26 -0
- package/dist/data/plugins/FocusControllerPlugin/index.d.ts.map +1 -0
- package/dist/data/plugins/FocusControllerPlugin/index.js +130 -0
- package/dist/data/plugins/FocusControllerPlugin/index.js.map +1 -0
- package/dist/data/plugins/FocusControllerPlugin/useFocusByClick.js +80 -0
- package/dist/data/plugins/FocusControllerPlugin/useFocusByClick.js.map +1 -0
- package/dist/data/plugins/FocusControllerPlugin/useFocusByKey.js +156 -0
- package/dist/data/plugins/FocusControllerPlugin/useFocusByKey.js.map +1 -0
- package/dist/data/plugins/TablePlugin.d.ts +30 -0
- package/dist/data/plugins/TablePlugin.d.ts.map +1 -0
- package/dist/data/plugins/TablePlugin.js +10 -0
- package/dist/data/plugins/TablePlugin.js.map +1 -0
- package/dist/data/plugins/WaiAriaPlugin.d.ts +42 -0
- package/dist/data/plugins/WaiAriaPlugin.d.ts.map +1 -0
- package/dist/data/plugins/WaiAriaPlugin.js +29 -0
- package/dist/data/plugins/WaiAriaPlugin.js.map +1 -0
- package/dist/data/primitive/AdditionalCell.d.ts +11 -0
- package/dist/data/primitive/AdditionalCell.d.ts.map +1 -0
- package/dist/data/primitive/AdditionalCell.js +38 -0
- package/dist/data/primitive/AdditionalCell.js.map +1 -0
- package/dist/data/primitive/AdditionalRow.d.ts +12 -0
- package/dist/data/primitive/AdditionalRow.d.ts.map +1 -0
- package/dist/data/primitive/AdditionalRow.js +16 -0
- package/dist/data/primitive/AdditionalRow.js.map +1 -0
- package/dist/data/primitive/Cell.d.ts +39 -0
- package/dist/data/primitive/Cell.d.ts.map +1 -0
- package/dist/data/primitive/Cell.js +41 -0
- package/dist/data/primitive/Cell.js.map +1 -0
- package/dist/data/primitive/Element.d.ts +18 -0
- package/dist/data/primitive/Element.d.ts.map +1 -0
- package/dist/data/primitive/Element.js +40 -0
- package/dist/data/primitive/Element.js.map +1 -0
- package/dist/data/primitive/Row.d.ts +58 -0
- package/dist/data/primitive/Row.d.ts.map +1 -0
- package/dist/data/primitive/Row.js +193 -0
- package/dist/data/primitive/Row.js.map +1 -0
- package/dist/data/primitive/RowsGroup.d.ts +29 -0
- package/dist/data/primitive/RowsGroup.d.ts.map +1 -0
- package/dist/data/primitive/RowsGroup.js +86 -0
- package/dist/data/primitive/RowsGroup.js.map +1 -0
- package/dist/index.d.ts +20 -433
- package/dist/index.js +20 -1300
- package/dist/index.js.map +1 -1
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"DateFilter.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -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
|