tuain-ng-forms-lib 17.3.7 → 19.0.1
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/README.md +280 -335
- package/fesm2022/tuain-ng-forms-lib.mjs +297 -103
- package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
- package/lib/classes/forms/action.d.ts +3 -2
- package/lib/classes/forms/element.d.ts +2 -1
- package/lib/classes/forms/field.d.ts +5 -4
- package/lib/classes/forms/form.d.ts +4 -2
- package/lib/classes/forms/piece-propagate.d.ts +2 -1
- package/lib/classes/forms/piece.d.ts +4 -3
- package/lib/classes/forms/section.d.ts +3 -2
- package/lib/classes/forms/subsection.d.ts +2 -1
- package/lib/classes/forms/table/action.d.ts +2 -1
- package/lib/classes/forms/table/column.d.ts +2 -1
- package/lib/classes/forms/table/row-data.d.ts +3 -2
- package/lib/classes/forms/table/table.d.ts +3 -1
- package/lib/components/elements/layout/piece.component.d.ts +2 -2
- package/lib/components/forms/basic-form.d.ts +4 -4
- package/lib/interfaces/action.interface.d.ts +23 -0
- package/lib/interfaces/field.interface.d.ts +70 -0
- package/lib/interfaces/form-config.interface.d.ts +24 -16
- package/lib/interfaces/form.interface.d.ts +106 -0
- package/lib/interfaces/index.d.ts +7 -0
- package/lib/interfaces/piece.interface.d.ts +67 -0
- package/lib/interfaces/section.interface.d.ts +56 -0
- package/lib/interfaces/sse-live-connection.interface.d.ts +67 -0
- package/lib/interfaces/table.interface.d.ts +139 -0
- package/lib/services/file-manager.service.d.ts +4 -4
- package/lib/services/form-manager.service.d.ts +3 -3
- package/lib/services/icon-dictionary.service.d.ts +1 -1
- package/lib/services/sse-live-connection.service.d.ts +56 -0
- package/lib/tokens/sse-live-connection.token.d.ts +7 -0
- package/package.json +6 -7
- package/public-api.d.ts +2 -0
- package/esm2022/lib/classes/forms/action.mjs +0 -112
- package/esm2022/lib/classes/forms/element.mjs +0 -25
- package/esm2022/lib/classes/forms/field.mjs +0 -484
- package/esm2022/lib/classes/forms/form.constants.mjs +0 -55
- package/esm2022/lib/classes/forms/form.mjs +0 -589
- package/esm2022/lib/classes/forms/piece-propagate.mjs +0 -36
- package/esm2022/lib/classes/forms/piece.mjs +0 -139
- package/esm2022/lib/classes/forms/section.mjs +0 -150
- package/esm2022/lib/classes/forms/subsection.mjs +0 -96
- package/esm2022/lib/classes/forms/table/action.mjs +0 -49
- package/esm2022/lib/classes/forms/table/column.mjs +0 -74
- package/esm2022/lib/classes/forms/table/row-data.mjs +0 -116
- package/esm2022/lib/classes/forms/table/table.mjs +0 -537
- package/esm2022/lib/components/elements/action.component.mjs +0 -71
- package/esm2022/lib/components/elements/field.component.mjs +0 -113
- package/esm2022/lib/components/elements/layout/element.component.mjs +0 -23
- package/esm2022/lib/components/elements/layout/form-error.component.mjs +0 -25
- package/esm2022/lib/components/elements/layout/form-header.component.mjs +0 -25
- package/esm2022/lib/components/elements/layout/piece.component.mjs +0 -59
- package/esm2022/lib/components/elements/layout/section.component.mjs +0 -57
- package/esm2022/lib/components/elements/layout/sub-section.component.mjs +0 -57
- package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +0 -71
- package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +0 -32
- package/esm2022/lib/components/elements/tables/table.component.mjs +0 -109
- package/esm2022/lib/components/forms/basic-form.mjs +0 -1408
- package/esm2022/lib/components/shared/constants.mjs +0 -2
- package/esm2022/lib/interfaces/form-config.interface.mjs +0 -2
- package/esm2022/lib/interfaces/icon-resolver.interface.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -3
- package/esm2022/lib/services/base-icon-resolver.service.mjs +0 -40
- package/esm2022/lib/services/event-manager.service.mjs +0 -55
- package/esm2022/lib/services/file-manager.service.mjs +0 -14
- package/esm2022/lib/services/form-manager.service.mjs +0 -88
- package/esm2022/lib/services/icon-dictionary.service.mjs +0 -162
- package/esm2022/lib/tokens/icon-resolver.token.mjs +0 -3
- package/esm2022/lib/tuain-ng-forms-lib.module.mjs +0 -54
- package/esm2022/public-api.mjs +0 -43
- package/esm2022/tuain-ng-forms-lib.mjs +0 -5
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { FormPiece } from '../piece';
|
|
2
|
-
export class RecordTableColumn extends FormPiece {
|
|
3
|
-
fieldCode = '';
|
|
4
|
-
fieldTitle = '';
|
|
5
|
-
fieldType = '';
|
|
6
|
-
fieldAlignment = '';
|
|
7
|
-
fieldFormat = '';
|
|
8
|
-
sortable = true;
|
|
9
|
-
searchable = true;
|
|
10
|
-
sortDirections = [];
|
|
11
|
-
// Filtros
|
|
12
|
-
filterVisible = false;
|
|
13
|
-
filterDef = null;
|
|
14
|
-
filterSetup = null;
|
|
15
|
-
constructor(recTableColReceived, formConfig) {
|
|
16
|
-
super(recTableColReceived, formConfig);
|
|
17
|
-
this.filterDef = null;
|
|
18
|
-
if (recTableColReceived) {
|
|
19
|
-
this.fieldCode = recTableColReceived.fieldCode;
|
|
20
|
-
this.fieldTitle = recTableColReceived.fieldTitle ?? '';
|
|
21
|
-
this.fieldType = recTableColReceived.fieldTypeCode || this._formConfig.fieldTypes.text;
|
|
22
|
-
const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null) ? this._formConfig.tableFieldStyles[this.fieldType]['text-align'] : 'left';
|
|
23
|
-
this.fieldAlignment = (recTableColReceived.alignment != null) ? recTableColReceived.alignment.toLowerCase() : defaultTypeAlignment;
|
|
24
|
-
this._absoluteVisible = recTableColReceived?.visible ?? true;
|
|
25
|
-
this.sortable = recTableColReceived?.sortable ?? false;
|
|
26
|
-
this.searchable = recTableColReceived?.searchable ?? true;
|
|
27
|
-
this.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [];
|
|
28
|
-
this.fieldFormat = recTableColReceived.format || '';
|
|
29
|
-
this.customAttributes = recTableColReceived?.customAttributes ?? {};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
setSearchable(searchable = true) { this.searchable = searchable; }
|
|
33
|
-
hideFilter() {
|
|
34
|
-
this.filterVisible = false;
|
|
35
|
-
}
|
|
36
|
-
addFilterDefinition(filterDefinition) {
|
|
37
|
-
this.filterDef = {
|
|
38
|
-
operators: filterDefinition.operators,
|
|
39
|
-
options: filterDefinition.options ?? null,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
get filterDefinition() {
|
|
43
|
-
return this.filterDef;
|
|
44
|
-
}
|
|
45
|
-
addFilter(columnValues, operator) {
|
|
46
|
-
this.filterSetup = {
|
|
47
|
-
fieldCode: this.fieldCode,
|
|
48
|
-
operator: operator ?? this.filterDef?.operators[0] ?? 'IN',
|
|
49
|
-
values: columnValues,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
get filter() {
|
|
53
|
-
return this.filterSetup;
|
|
54
|
-
}
|
|
55
|
-
removeFilter() {
|
|
56
|
-
this.filterSetup = null;
|
|
57
|
-
}
|
|
58
|
-
get options() {
|
|
59
|
-
if (this.filterDef?.operators?.length === 1 && this.filterDef?.operators[0] === 'IN') {
|
|
60
|
-
return this.filterDef?.options;
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
setSortDirections(ascend, descend) {
|
|
65
|
-
this.sortDirections = [];
|
|
66
|
-
if (ascend) {
|
|
67
|
-
this.sortDirections.unshift('ascend');
|
|
68
|
-
}
|
|
69
|
-
if (descend) {
|
|
70
|
-
this.sortDirections.unshift('descend');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy90YWJsZS9jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWFyQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQUM5QyxTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLElBQUksQ0FBQztJQUN6QixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNCLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDOUIsVUFBVTtJQUNWLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFDL0IsU0FBUyxHQUFxQixJQUFJLENBQUM7SUFDbkMsV0FBVyxHQUF1QixJQUFJLENBQUM7SUFFdkMsWUFBWSxtQkFBcUMsRUFBRSxVQUF1QjtRQUN4RSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDdkYsTUFBTSxvQkFBb0IsR0FBRyxDQUFD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QUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtUGllY2UgfSBmcm9tICcuLi9waWVjZSc7XG5pbXBvcnQgeyBDb2x1bW5EZWZpbml0aW9uLCBJRm9ybUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZm9ybS1jb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJEZWYge1xuICBvcGVyYXRvcnM6IHN0cmluZ1tdO1xuICBvcHRpb25zOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTZXR1cCB7XG4gIGZpZWxkQ29kZTogc3RyaW5nO1xuICBvcGVyYXRvcjogc3RyaW5nO1xuICB2YWx1ZXM6IGFueVtdO1xufVxuZXhwb3J0IGNsYXNzIFJlY29yZFRhYmxlQ29sdW1uIGV4dGVuZHMgRm9ybVBpZWNlIHtcbiAgZmllbGRDb2RlOiBzdHJpbmcgPSAnJztcbiAgZmllbGRUaXRsZTogc3RyaW5nID0gJyc7XG4gIGZpZWxkVHlwZTogc3RyaW5nID0gJyc7XG4gIGZpZWxkQWxpZ25tZW50OiBzdHJpbmcgPSAnJztcbiAgZmllbGRGb3JtYXQ6IHN0cmluZyA9ICcnO1xuICBzb3J0YWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIHNlYXJjaGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBzb3J0RGlyZWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgLy8gRmlsdHJvc1xuICBmaWx0ZXJWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlckRlZjogRmlsdGVyRGVmIHwgbnVsbCA9IG51bGw7XG4gIGZpbHRlclNldHVwOiBGaWx0ZXJTZXR1cCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHJlY1RhYmxlQ29sUmVjZWl2ZWQ6IENvbHVtbkRlZmluaXRpb24sIGZvcm1Db25maWc6IElGb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIocmVjVGFibGVDb2xSZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5maWx0ZXJEZWYgPSBudWxsO1xuICAgIGlmIChyZWNUYWJsZUNvbFJlY2VpdmVkKSB7XG4gICAgICB0aGlzLmZpZWxkQ29kZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQuZmllbGRDb2RlO1xuICAgICAgdGhpcy5maWVsZFRpdGxlID0gcmVjVGFibGVDb2xSZWNlaXZlZC5maWVsZFRpdGxlID8/ICcnO1xuICAgICAgdGhpcy5maWVsZFR5cGUgPSByZWNUYWJsZUNvbFJlY2VpdmVkLmZpZWxkVHlwZUNvZGUgfHwgdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLnRleHQ7XG4gICAgICBjb25zdCBkZWZhdWx0VHlwZUFsaWdubWVudCA9ICh0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5maWVsZFR5cGVdICE9IG51bGwpID8gdGhpcy5fZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzW3RoaXMuZmllbGRUeXBlXVsndGV4dC1hbGlnbiddIDogJ2xlZnQnO1xuICAgICAgdGhpcy5maWVsZEFsaWdubWVudCA9IChyZWNUYWJsZUNvbFJlY2VpdmVkLmFsaWdubWVudCAhPSBudWxsKSA/IHJlY1RhYmxlQ29sUmVjZWl2ZWQuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgOiBkZWZhdWx0VHlwZUFsaWdubWVudDtcbiAgICAgIHRoaXMuX2Fic29sdXRlVmlzaWJsZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQ/LnZpc2libGUgPz8gdHJ1ZTtcbiAgICAgIHRoaXMuc29ydGFibGUgPSByZWNUYWJsZUNvbFJlY2VpdmVkPy5zb3J0YWJsZSA/PyBmYWxzZTtcbiAgICAgIHRoaXMuc2VhcmNoYWJsZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQ/LnNlYXJjaGFibGUgPz8gdHJ1ZTtcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbnMgPSAodGhpcy5zb3J0YWJsZSkgPyBbJ2FzY2VuZCcsICdkZXNjZW5kJ10gOiBbXTtcbiAgICAgIHRoaXMuZmllbGRGb3JtYXQgPSByZWNUYWJsZUNvbFJlY2VpdmVkLmZvcm1hdCB8fCAnJztcbiAgICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcyA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQ/LmN1c3RvbUF0dHJpYnV0ZXMgPz8ge307XG4gICAgfVxuICB9XG5cbiAgc2V0U2VhcmNoYWJsZShzZWFyY2hhYmxlID0gdHJ1ZSk6IHZvaWQgeyB0aGlzLnNlYXJjaGFibGUgPSBzZWFyY2hhYmxlOyB9XG5cbiAgaGlkZUZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIGFkZEZpbHRlckRlZmluaXRpb24oZmlsdGVyRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJEZWYgPSB7XG4gICAgICBvcGVyYXRvcnM6IGZpbHRlckRlZmluaXRpb24ub3BlcmF0b3JzLFxuICAgICAgb3B0aW9uczogZmlsdGVyRGVmaW5pdGlvbi5vcHRpb25zID8/IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJEZWZpbml0aW9uKCk6IEZpbHRlckRlZiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckRlZjtcbiAgfVxuXG4gIGFkZEZpbHRlcihjb2x1bW5WYWx1ZXM6IGFueSwgb3BlcmF0b3I6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclNldHVwID0ge1xuICAgICAgZmllbGRDb2RlOiB0aGlzLmZpZWxkQ29kZSxcbiAgICAgIG9wZXJhdG9yOiBvcGVyYXRvciA/PyB0aGlzLmZpbHRlckRlZj8ub3BlcmF0b3JzWzBdID8/ICdJTicsXG4gICAgICB2YWx1ZXM6IGNvbHVtblZhbHVlcyxcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyKCk6IEZpbHRlclNldHVwIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2V0dXA7XG4gIH1cblxuICByZW1vdmVGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJTZXR1cCA9IG51bGw7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBhbnlbXSB8IG51bGwge1xuICAgIGlmICh0aGlzLmZpbHRlckRlZj8ub3BlcmF0b3JzPy5sZW5ndGggPT09IDEgJiYgdGhpcy5maWx0ZXJEZWY/Lm9wZXJhdG9yc1swXSA9PT0gJ0lOJykge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRGVmPy5vcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHNldFNvcnREaXJlY3Rpb25zKGFzY2VuZDogYm9vbGVhbiwgZGVzY2VuZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc29ydERpcmVjdGlvbnMgPSBbXTtcbiAgICBpZiAoYXNjZW5kKSB7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb25zLnVuc2hpZnQoJ2FzY2VuZCcpO1xuICAgIH1cbiAgICBpZiAoZGVzY2VuZCkge1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9ucy51bnNoaWZ0KCdkZXNjZW5kJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { ComparisonOperator } from '../form.constants';
|
|
2
|
-
export class TableRecordData {
|
|
3
|
-
recordId = null;
|
|
4
|
-
selected = false;
|
|
5
|
-
recordData = {};
|
|
6
|
-
constructor(recordReceived, recordDefinition, selectionFieldName = null) {
|
|
7
|
-
const { tableRecordId, recordData } = recordReceived;
|
|
8
|
-
this.recordId = tableRecordId;
|
|
9
|
-
if (!recordDefinition || recordDefinition.length === 0 || !recordData || recordData.length === 0) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const fieldNames = recordDefinition.map(column => column.fieldCode);
|
|
13
|
-
if (Array.isArray(recordData)) {
|
|
14
|
-
const rawRecordData = recordData.filter(fieldData => fieldData.fieldCode && fieldNames.includes(fieldData.fieldCode));
|
|
15
|
-
rawRecordData.forEach(fieldData => {
|
|
16
|
-
const { fieldCode, fieldValue } = fieldData;
|
|
17
|
-
const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);
|
|
18
|
-
this.recordData[fieldCode] = fieldValue ?? '';
|
|
19
|
-
if (fieldCode === selectionFieldName) {
|
|
20
|
-
this.selected = fieldValue;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const fields = Object.keys(recordData);
|
|
26
|
-
fields.forEach(fieldCode => {
|
|
27
|
-
const fieldValue = recordData[fieldCode];
|
|
28
|
-
const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);
|
|
29
|
-
this.recordData[fieldCode] = fieldValue ?? '';
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
toggleSelect() { this.selected = !this.selected; }
|
|
34
|
-
select() { this.selected = true; }
|
|
35
|
-
unselect() { this.selected = false; }
|
|
36
|
-
get recordIdKey() {
|
|
37
|
-
return (typeof this.recordId === 'object')
|
|
38
|
-
? JSON.stringify(this.recordId) : this.recordId;
|
|
39
|
-
}
|
|
40
|
-
getFieldValue(fieldCode) {
|
|
41
|
-
return (fieldCode && this.recordData) ? this.recordData[fieldCode] : null;
|
|
42
|
-
}
|
|
43
|
-
hasPattern(words, columnObj) {
|
|
44
|
-
if (!words || words.length === 0) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
for (const word of words) {
|
|
48
|
-
let wordIsPresent = false;
|
|
49
|
-
for (const fieldCode in this.recordData) {
|
|
50
|
-
const columnDef = columnObj?.[fieldCode];
|
|
51
|
-
if (columnDef?.searchable && this.recordData.hasOwnProperty(fieldCode)) {
|
|
52
|
-
const term = word.toUpperCase();
|
|
53
|
-
let fieldValue;
|
|
54
|
-
if (columnDef.fieldType.toUpperCase().includes('DATE')) {
|
|
55
|
-
fieldValue = this.recordData[fieldCode].substring(0, 16);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
fieldValue = this.recordData[fieldCode];
|
|
59
|
-
}
|
|
60
|
-
if (fieldValue.toString().toUpperCase().includes(term)) {
|
|
61
|
-
wordIsPresent = true;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!wordIsPresent) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
hasCondition(columnFilters) {
|
|
73
|
-
if (!columnFilters || columnFilters.length === 0) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
for (const condition of columnFilters) {
|
|
77
|
-
const { fieldCode, operator, values } = condition;
|
|
78
|
-
if (this.recordData.hasOwnProperty(fieldCode)) {
|
|
79
|
-
const fieldValue = this.recordData[fieldCode];
|
|
80
|
-
const stringValue = fieldValue.toString().toUpperCase();
|
|
81
|
-
if (operator === ComparisonOperator.G && fieldValue <= values[0]) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
if (operator === ComparisonOperator.L && fieldValue >= values[0]) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
if (operator === ComparisonOperator.GE && fieldValue < values[0]) {
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
if (operator === ComparisonOperator.LE && fieldValue > values[0]) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
if (operator === ComparisonOperator.IN && !values.includes(fieldValue)) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
if (operator === ComparisonOperator.EQ) {
|
|
97
|
-
return fieldValue === values[0];
|
|
98
|
-
}
|
|
99
|
-
if (operator === ComparisonOperator.NEQ && fieldValue === values[0]) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
if (operator === ComparisonOperator.HAS && !stringValue.includes(values[0].toString().toUpperCase())) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
if (operator === ComparisonOperator.NOTHAS && stringValue.includes(values[0].toString().toUpperCase())) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
if (operator === ComparisonOperator.BETWEEN && (fieldValue < values[0] || fieldValue > values[1])) {
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3Jvdy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFFBQVEsR0FBa0IsSUFBSSxDQUFDO0lBQy9CLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUF3QixFQUFFLENBQUM7SUFFckMsWUFBWSxjQUFtQixFQUFFLGdCQUFxQyxFQUFFLHFCQUFvQyxJQUFJO1FBQzlHLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakcsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0SCxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNo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LFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDdkcsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxJQUFJLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNsRyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY29yZFRhYmxlQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW4nO1xuaW1wb3J0IHsgQ29tcGFyaXNvbk9wZXJhdG9yIH0gZnJvbSAnLi4vZm9ybS5jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVGFibGVSZWNvcmREYXRhIHtcbiAgcmVjb3JkSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICByZWNvcmREYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgY29uc3RydWN0b3IocmVjb3JkUmVjZWl2ZWQ6IGFueSwgcmVjb3JkRGVmaW5pdGlvbjogUmVjb3JkVGFibGVDb2x1bW5bXSwgc2VsZWN0aW9uRmllbGROYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHsgdGFibGVSZWNvcmRJZCwgcmVjb3JkRGF0YSB9ID0gcmVjb3JkUmVjZWl2ZWQ7XG4gICAgdGhpcy5yZWNvcmRJZCA9IHRhYmxlUmVjb3JkSWQ7XG4gICAgaWYgKCFyZWNvcmREZWZpbml0aW9uIHx8IHJlY29yZERlZmluaXRpb24ubGVuZ3RoID09PSAwIHx8ICFyZWNvcmREYXRhIHx8IHJlY29yZERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkTmFtZXMgPSByZWNvcmREZWZpbml0aW9uLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpZWxkQ29kZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVjb3JkRGF0YSkpIHtcbiAgICAgIGNvbnN0IHJhd1JlY29yZERhdGEgPSByZWNvcmREYXRhLmZpbHRlcihmaWVsZERhdGEgPT4gZmllbGREYXRhLmZpZWxkQ29kZSAmJiBmaWVsZE5hbWVzLmluY2x1ZGVzKGZpZWxkRGF0YS5maWVsZENvZGUpKTtcbiAgICAgIHJhd1JlY29yZERhdGEuZm9yRWFjaChmaWVsZERhdGEgPT4ge1xuICAgICAgICBjb25zdCB7IGZpZWxkQ29kZSwgZmllbGRWYWx1ZSB9ID0gZmllbGREYXRhO1xuICAgICAgICBjb25zdCBmaWVsZERlZiA9IHJlY29yZERlZmluaXRpb24uZmluZChjb2x1bW4gPT4gY29sdW1uLmZpZWxkQ29kZSA9PT0gZmllbGRDb2RlKTtcbiAgICAgICAgdGhpcy5yZWNvcmREYXRhW2ZpZWxkQ29kZV0gPSBmaWVsZFZhbHVlID8/ICcnO1xuICAgICAgICBpZiAoZmllbGRDb2RlID09PSBzZWxlY3Rpb25GaWVsZE5hbWUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gZmllbGRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKHJlY29yZERhdGEpO1xuICAgICAgZmllbGRzLmZvckVhY2goZmllbGRDb2RlID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHJlY29yZERhdGFbZmllbGRDb2RlXTtcbiAgICAgICAgY29uc3QgZmllbGREZWYgPSByZWNvcmREZWZpbml0aW9uLmZpbmQoY29sdW1uID0+IGNvbHVtbi5maWVsZENvZGUgPT09IGZpZWxkQ29kZSk7XG4gICAgICAgIHRoaXMucmVjb3JkRGF0YVtmaWVsZENvZGVdID0gZmllbGRWYWx1ZSA/PyAnJztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdCgpIHsgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkOyB9XG4gIHNlbGVjdCgpIHsgdGhpcy5zZWxlY3RlZCA9IHRydWU7IH1cbiAgdW5zZWxlY3QoKSB7IHRoaXMuc2VsZWN0ZWQgPSBmYWxzZTsgfVxuXG4gIGdldCByZWNvcmRJZEtleSgpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB0aGlzLnJlY29yZElkID09PSAnb2JqZWN0JylcbiAgICAgID8gSlNPTi5zdHJpbmdpZnkodGhpcy5yZWNvcmRJZCkgOiB0aGlzLnJlY29yZElkO1xuICB9XG5cbiAgZ2V0RmllbGRWYWx1ZShmaWVsZENvZGU6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIChmaWVsZENvZGUgJiYgdGhpcy5yZWNvcmREYXRhKSA/IHRoaXMucmVjb3JkRGF0YVtmaWVsZENvZGVdIDogbnVsbDtcbiAgfVxuXG4gIGhhc1BhdHRlcm4od29yZHM6IHN0cmluZ1tdLCBjb2x1bW5PYmo6IGFueSkge1xuICAgIGlmICghd29yZHMgfHwgd29yZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB3b3JkIG9mIHdvcmRzKSB7XG4gICAgICBsZXQgd29yZElzUHJlc2VudCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCBmaWVsZENvZGUgaW4gdGhpcy5yZWNvcmREYXRhKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbkRlZiA9IGNvbHVtbk9iaj8uW2ZpZWxkQ29kZV07XG4gICAgICAgIGlmIChjb2x1bW5EZWY/LnNlYXJjaGFibGUgJiYgdGhpcy5yZWNvcmREYXRhLmhhc093blByb3BlcnR5KGZpZWxkQ29kZSkpIHtcbiAgICAgICAgICBjb25zdCB0ZXJtID0gd29yZC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIGxldCBmaWVsZFZhbHVlO1xuICAgICAgICAgIGlmIChjb2x1bW5EZWYuZmllbGRUeXBlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ0RBVEUnKSkge1xuICAgICAgICAgICAgZmllbGRWYWx1ZSA9IHRoaXMucmVjb3JkRGF0YVtmaWVsZENvZGVdLnN1YnN0cmluZygwLCAxNik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkVmFsdWUgPSB0aGlzLnJlY29yZERhdGFbZmllbGRDb2RlXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkVmFsdWUudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pKSB7XG4gICAgICAgICAgICB3b3JkSXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF3b3JkSXNQcmVzZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBoYXNDb25kaXRpb24oY29sdW1uRmlsdGVyczogYW55W10pIHtcbiAgICBpZiAoIWNvbHVtbkZpbHRlcnMgfHwgY29sdW1uRmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb2x1bW5GaWx0ZXJzKSB7XG4gICAgICBjb25zdCB7IGZpZWxkQ29kZSwgb3BlcmF0b3IsIHZhbHVlcyB9ID0gY29uZGl0aW9uO1xuICAgICAgaWYgKHRoaXMucmVjb3JkRGF0YS5oYXNPd25Qcm9wZXJ0eShmaWVsZENvZGUpKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLnJlY29yZERhdGFbZmllbGRDb2RlXTtcbiAgICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSBmaWVsZFZhbHVlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSBDb21wYXJpc29uT3BlcmF0b3IuRyAmJiBmaWVsZFZhbHVlIDw9IHZhbHVlc1swXSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0b3IgPT09IENvbXBhcmlzb25PcGVyYXRvci5MICYmIGZpZWxkVmFsdWUgPj0gdmFsdWVzWzBdKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gQ29tcGFyaXNvbk9wZXJhdG9yLkdFICYmIGZpZWxkVmFsdWUgPCB2YWx1ZXNbMF0pIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSBDb21wYXJpc29uT3BlcmF0b3IuTEUgJiYgZmllbGRWYWx1ZSA+IHZhbHVlc1swXSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0b3IgPT09IENvbXBhcmlzb25PcGVyYXRvci5JTiAmJiAhdmFsdWVzLmluY2x1ZGVzKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gQ29tcGFyaXNvbk9wZXJhdG9yLkVRKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUgPT09IHZhbHVlc1swXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0b3IgPT09IENvbXBhcmlzb25PcGVyYXRvci5ORVEgJiYgZmllbGRWYWx1ZSA9PT0gdmFsdWVzWzBdKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gQ29tcGFyaXNvbk9wZXJhdG9yLkhBUyAmJiAhc3RyaW5nVmFsdWUuaW5jbHVkZXModmFsdWVzWzBdLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSBDb21wYXJpc29uT3BlcmF0b3IuTk9USEFTICYmIHN0cmluZ1ZhbHVlLmluY2x1ZGVzKHZhbHVlc1swXS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gQ29tcGFyaXNvbk9wZXJhdG9yLkJFVFdFRU4gJiYgKGZpZWxkVmFsdWUgPCB2YWx1ZXNbMF0gfHwgZmllbGRWYWx1ZSA+IHZhbHVlc1sxXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|