tuain-ng-forms-lib 13.0.15 → 14.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/.browserslistrc +16 -0
- package/.yarn/cache/nanoid-npm-4.0.0-924f5c6312-7d5946df5c.zip +0 -0
- package/.yarn/cache/tslib-npm-2.4.0-9cb6dc5030-8c4aa6a3c5.zip +0 -0
- package/.yarn/cache/yn-npm-5.0.0-b001dab23c-f0ec7710d3.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/karma.conf.js +44 -0
- package/ng-package.json +11 -0
- package/package.json +6 -26
- package/src/lib/classes/forms/action.ts +55 -0
- package/src/lib/classes/forms/element.ts +98 -0
- package/src/lib/classes/forms/field.ts +408 -0
- package/src/lib/classes/forms/form.constants.ts +28 -0
- package/src/lib/classes/forms/form.ts +495 -0
- package/src/lib/classes/forms/section.ts +154 -0
- package/src/lib/classes/forms/subsection.ts +91 -0
- package/src/lib/classes/forms/table/action.ts +41 -0
- package/src/lib/classes/forms/table/column.ts +91 -0
- package/src/lib/classes/forms/table/row-data.ts +118 -0
- package/src/lib/classes/forms/table/table.ts +438 -0
- package/src/lib/components/elements/action.component.ts +53 -0
- package/src/lib/components/elements/field.component.ts +118 -0
- package/src/lib/components/elements/layout/element.component.ts +28 -0
- package/src/lib/components/elements/layout/form-error.component.ts +11 -0
- package/src/lib/components/elements/layout/form-header.component.ts +17 -0
- package/src/lib/components/elements/layout/section.component.ts +16 -0
- package/src/lib/components/elements/layout/sub-section.component.ts +17 -0
- package/src/lib/components/elements/tables/table-record-action.component.ts +37 -0
- package/src/lib/components/elements/tables/table-record-field.component.ts +19 -0
- package/src/lib/components/elements/tables/table.component.ts +102 -0
- package/src/lib/components/forms/basic-form.ts +1496 -0
- package/src/lib/services/event-manager.service.ts +21 -0
- package/src/lib/services/file-manager.service.ts +6 -0
- package/src/lib/services/form-manager.service.ts +89 -0
- package/src/lib/services/icon-dictionary.service.ts +159 -0
- package/src/lib/tuain-ng-forms-lib.module.ts +40 -0
- package/{public-api.d.ts → src/public-api.ts} +5 -0
- package/src/test.ts +27 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/esm2020/lib/classes/forms/action.mjs +0 -35
- package/esm2020/lib/classes/forms/element.mjs +0 -76
- package/esm2020/lib/classes/forms/field.mjs +0 -321
- package/esm2020/lib/classes/forms/form.constants.mjs +0 -26
- package/esm2020/lib/classes/forms/form.mjs +0 -422
- package/esm2020/lib/classes/forms/section.mjs +0 -132
- package/esm2020/lib/classes/forms/subsection.mjs +0 -70
- package/esm2020/lib/classes/forms/table/action.mjs +0 -22
- package/esm2020/lib/classes/forms/table/column.mjs +0 -61
- package/esm2020/lib/classes/forms/table/row-data.mjs +0 -111
- package/esm2020/lib/classes/forms/table/table.mjs +0 -372
- package/esm2020/lib/components/elements/action.component.mjs +0 -58
- package/esm2020/lib/components/elements/field.component.mjs +0 -90
- package/esm2020/lib/components/elements/layout/element.component.mjs +0 -31
- package/esm2020/lib/components/elements/layout/form-error.component.mjs +0 -20
- package/esm2020/lib/components/elements/layout/form-header.component.mjs +0 -30
- package/esm2020/lib/components/elements/layout/section.component.mjs +0 -22
- package/esm2020/lib/components/elements/layout/sub-section.component.mjs +0 -24
- package/esm2020/lib/components/elements/tables/table-record-action.component.mjs +0 -40
- package/esm2020/lib/components/elements/tables/table-record-field.component.mjs +0 -25
- package/esm2020/lib/components/elements/tables/table.component.mjs +0 -95
- package/esm2020/lib/components/forms/basic-form.mjs +0 -1425
- package/esm2020/lib/services/event-manager.service.mjs +0 -18
- package/esm2020/lib/services/file-manager.service.mjs +0 -6
- package/esm2020/lib/services/form-manager.service.mjs +0 -80
- package/esm2020/lib/tuain-ng-forms-lib.module.mjs +0 -73
- package/esm2020/public-api.mjs +0 -19
- package/esm2020/tuain-ng-forms-lib.mjs +0 -5
- package/fesm2015/tuain-ng-forms-lib.mjs +0 -3805
- package/fesm2015/tuain-ng-forms-lib.mjs.map +0 -1
- package/fesm2020/tuain-ng-forms-lib.mjs +0 -3636
- package/fesm2020/tuain-ng-forms-lib.mjs.map +0 -1
- package/lib/classes/forms/action.d.ts +0 -22
- package/lib/classes/forms/element.d.ts +0 -41
- package/lib/classes/forms/field.d.ts +0 -109
- package/lib/classes/forms/form.constants.d.ts +0 -25
- package/lib/classes/forms/form.d.ts +0 -134
- package/lib/classes/forms/section.d.ts +0 -39
- package/lib/classes/forms/subsection.d.ts +0 -26
- package/lib/classes/forms/table/action.d.ts +0 -20
- package/lib/classes/forms/table/column.d.ts +0 -33
- package/lib/classes/forms/table/row-data.d.ts +0 -14
- package/lib/classes/forms/table/table.d.ts +0 -100
- package/lib/components/elements/action.component.d.ts +0 -21
- package/lib/components/elements/field.component.d.ts +0 -43
- package/lib/components/elements/layout/element.component.d.ts +0 -14
- package/lib/components/elements/layout/form-error.component.d.ts +0 -8
- package/lib/components/elements/layout/form-header.component.d.ts +0 -12
- package/lib/components/elements/layout/section.component.d.ts +0 -10
- package/lib/components/elements/layout/sub-section.component.d.ts +0 -11
- package/lib/components/elements/tables/table-record-action.component.d.ts +0 -15
- package/lib/components/elements/tables/table-record-field.component.d.ts +0 -11
- package/lib/components/elements/tables/table.component.d.ts +0 -47
- package/lib/components/forms/basic-form.d.ts +0 -307
- package/lib/services/event-manager.service.d.ts +0 -9
- package/lib/services/file-manager.service.d.ts +0 -5
- package/lib/services/form-manager.service.d.ts +0 -28
- package/lib/tuain-ng-forms-lib.module.d.ts +0 -20
- package/tuain-ng-forms-lib.d.ts +0 -5
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { FormAction } from './action';
|
|
2
|
+
import { elementTypes } from './form.constants';
|
|
3
|
+
|
|
4
|
+
export class RecordFormSubSection {
|
|
5
|
+
visible: boolean;
|
|
6
|
+
_customRender: string;
|
|
7
|
+
subsectionId: string;
|
|
8
|
+
subsectionCode: string;
|
|
9
|
+
subsectionTitle: string;
|
|
10
|
+
visibleStates: string[];
|
|
11
|
+
|
|
12
|
+
subSectionElements: any[];
|
|
13
|
+
subSectionFields: any[];
|
|
14
|
+
subSectionTables: any[];
|
|
15
|
+
subSectionActions: any[];
|
|
16
|
+
elementsArray: any;
|
|
17
|
+
|
|
18
|
+
constructor(subsectionReceived, formObject) {
|
|
19
|
+
if (!subsectionReceived) { return; }
|
|
20
|
+
this._customRender = null;
|
|
21
|
+
this.visible = true;
|
|
22
|
+
this.subSectionElements = [];
|
|
23
|
+
this.subSectionFields = [];
|
|
24
|
+
this.subSectionTables = [];
|
|
25
|
+
this.subSectionActions = [];
|
|
26
|
+
this.elementsArray = {};
|
|
27
|
+
this.subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';
|
|
28
|
+
this.subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';
|
|
29
|
+
this.subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';
|
|
30
|
+
this.visibleStates = subsectionReceived.visibleStates || [];
|
|
31
|
+
if (subsectionReceived.elements) {
|
|
32
|
+
for (const receivedElement of subsectionReceived.elements) {
|
|
33
|
+
let elementObject = null;
|
|
34
|
+
let arrayToAdd = null;
|
|
35
|
+
const { type, code } = receivedElement;
|
|
36
|
+
switch (type) {
|
|
37
|
+
case elementTypes.field:
|
|
38
|
+
elementObject = formObject.getField(code);
|
|
39
|
+
arrayToAdd = this.subSectionFields;
|
|
40
|
+
break;
|
|
41
|
+
case elementTypes.table:
|
|
42
|
+
elementObject = formObject.getTable(code);
|
|
43
|
+
arrayToAdd = this.subSectionTables;
|
|
44
|
+
break;
|
|
45
|
+
case elementTypes.action:
|
|
46
|
+
elementObject = formObject.getAction(code);
|
|
47
|
+
arrayToAdd = this.subSectionActions;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
if (elementObject) {
|
|
51
|
+
elementObject.elementType = type;
|
|
52
|
+
arrayToAdd.push(elementObject);
|
|
53
|
+
this.subSectionElements.push(elementObject);
|
|
54
|
+
this.elementsArray[code] = elementObject;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
show() { this.visible = true; }
|
|
61
|
+
hide() { this.visible = false; }
|
|
62
|
+
|
|
63
|
+
get customRender() { return this._customRender; }
|
|
64
|
+
set customRender(customRenderName) { this._customRender = customRenderName; }
|
|
65
|
+
|
|
66
|
+
getField(name) {
|
|
67
|
+
return this.subSectionFields.find(fld => fld.name === name);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
getFields() {
|
|
71
|
+
return this.subSectionFields;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getFieldNames() {
|
|
75
|
+
return this.subSectionFields.map(field => field.fieldCode);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
getActions(): FormAction[] {
|
|
79
|
+
return this.subSectionActions;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
getActionNames(): string[] {
|
|
83
|
+
return this.subSectionActions.map(action => action.actionCode);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
viewOnState(state) {
|
|
87
|
+
return this.visibleStates.includes(state);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
supportMode(state) { return this.viewOnState(state); }
|
|
91
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class TableAction {
|
|
2
|
+
visibleStates: string[];
|
|
3
|
+
enabledStates: string[];
|
|
4
|
+
newState: string;
|
|
5
|
+
|
|
6
|
+
actionCode: string;
|
|
7
|
+
actionTitle: string;
|
|
8
|
+
iconName: string;
|
|
9
|
+
actionType: string;
|
|
10
|
+
actionClass: string;
|
|
11
|
+
stateField: string;
|
|
12
|
+
|
|
13
|
+
backend: boolean;
|
|
14
|
+
restrictedOnField: string;
|
|
15
|
+
restrictedOnValue: string;
|
|
16
|
+
restrictedOnOperator: string;
|
|
17
|
+
customAttributes: any;
|
|
18
|
+
|
|
19
|
+
constructor(actionDefinition) {
|
|
20
|
+
this.actionCode = actionDefinition.actionCode;
|
|
21
|
+
this.actionTitle = actionDefinition.actionTitle;
|
|
22
|
+
this.iconName = actionDefinition.iconName || this.actionCode;
|
|
23
|
+
this.actionType = actionDefinition.actionType || 'STANDARD';
|
|
24
|
+
this.actionClass = actionDefinition.actionClass || 'INLINE';
|
|
25
|
+
this.newState = actionDefinition.newState;
|
|
26
|
+
this.stateField = actionDefinition.stateField || '';
|
|
27
|
+
|
|
28
|
+
this.visibleStates = actionDefinition.visibleStates || [];
|
|
29
|
+
this.enabledStates = actionDefinition.enabledStates || [];
|
|
30
|
+
this.backend = actionDefinition?.serverAction ?? false;
|
|
31
|
+
this.restrictedOnField = actionDefinition.fieldRestrictedCode || '';
|
|
32
|
+
this.restrictedOnValue = actionDefinition.valueRestricted ?? '';
|
|
33
|
+
this.restrictedOnOperator = actionDefinition.operatorRestricted || '';
|
|
34
|
+
this.customAttributes = actionDefinition?.customAttributes ?? {};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
supportMode(state) { return this.viewOnState(state); }
|
|
38
|
+
|
|
39
|
+
viewOnState(state) { return this.visibleStates.includes(state); }
|
|
40
|
+
enabledOnState(state) { return this.enabledStates.includes(state); }
|
|
41
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export interface FilterDef {
|
|
2
|
+
operators: string[];
|
|
3
|
+
options: any[];
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface FilterSetup {
|
|
7
|
+
fieldCode: string;
|
|
8
|
+
operator: string;
|
|
9
|
+
values: any[];
|
|
10
|
+
}
|
|
11
|
+
export class RecordTableColumn {
|
|
12
|
+
_formConfig: any;
|
|
13
|
+
fieldCode: string;
|
|
14
|
+
fieldTitle: string;
|
|
15
|
+
fieldType: string;
|
|
16
|
+
fieldAlignment: string;
|
|
17
|
+
fieldFormat: string;
|
|
18
|
+
visible: boolean;
|
|
19
|
+
sortable: boolean;
|
|
20
|
+
sortDirections: string[];
|
|
21
|
+
customAttributes: any;
|
|
22
|
+
// Filtros
|
|
23
|
+
filterVisible: boolean = false;
|
|
24
|
+
filterDef: FilterDef;
|
|
25
|
+
filterSetup: FilterSetup;
|
|
26
|
+
|
|
27
|
+
constructor(recTableColReceived, formConfig) {
|
|
28
|
+
this._formConfig = formConfig;
|
|
29
|
+
this.filterDef = null;
|
|
30
|
+
if (recTableColReceived) {
|
|
31
|
+
this.fieldCode = recTableColReceived.fieldCode;
|
|
32
|
+
this.fieldTitle = recTableColReceived.fieldTitle;
|
|
33
|
+
this.fieldType = recTableColReceived.fieldTypeCode || this._formConfig.fieldTypes.text;
|
|
34
|
+
const defaultTypeAlignment = (this._formConfig.tableFieldStyles[this.fieldType] != null) ? this._formConfig.tableFieldStyles[this.fieldType]['text-align'] : 'left';
|
|
35
|
+
this.fieldAlignment = (recTableColReceived.alignment != null) ? recTableColReceived.alignment.toLowerCase() : defaultTypeAlignment;
|
|
36
|
+
this.visible = recTableColReceived?.visible ?? true;
|
|
37
|
+
this.sortable = recTableColReceived?.sortable ?? false;
|
|
38
|
+
this.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [null];
|
|
39
|
+
this.fieldFormat = recTableColReceived.format || '';
|
|
40
|
+
this.customAttributes = recTableColReceived?.customAttributes ?? {};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
hideFilter() {
|
|
45
|
+
this.filterVisible = false;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
addFilterDefinition(filterDefinition) {
|
|
49
|
+
this.filterDef = {
|
|
50
|
+
operators: filterDefinition.operators,
|
|
51
|
+
options: filterDefinition.options ?? null,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
get filterDefinition() {
|
|
56
|
+
return this.filterDef;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
addFilter(columnValues, operator) {
|
|
60
|
+
this.filterSetup = {
|
|
61
|
+
fieldCode: this.fieldCode,
|
|
62
|
+
operator: operator ?? this.filterDef.operators[0],
|
|
63
|
+
values: columnValues,
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
get filter() {
|
|
68
|
+
return this.filterSetup;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
removeFilter() {
|
|
72
|
+
this.filterSetup = null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
get options() {
|
|
76
|
+
if (this.filterDef?.operators?.length === 1 && this.filterDef?.operators[0] === 'IN') {
|
|
77
|
+
return this.filterDef?.options;
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
serSortDirections(ascend: boolean, descend: boolean) {
|
|
83
|
+
this.sortDirections = [];
|
|
84
|
+
if (ascend) {
|
|
85
|
+
this.sortDirections.unshift('ascend');
|
|
86
|
+
}
|
|
87
|
+
if (descend) {
|
|
88
|
+
this.sortDirections.unshift('descend');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { RecordTableColumn } from './column';
|
|
2
|
+
import { operators } from '../form.constants';
|
|
3
|
+
|
|
4
|
+
export class TableRecordData {
|
|
5
|
+
recordId: string;
|
|
6
|
+
selected: boolean;
|
|
7
|
+
recordData: any = {};
|
|
8
|
+
|
|
9
|
+
constructor(recordReceived, recordDefinition: RecordTableColumn[], selectionFieldName = null) {
|
|
10
|
+
const { tableRecordId, recordData } = recordReceived;
|
|
11
|
+
this.recordId = tableRecordId;
|
|
12
|
+
this.selected = false;
|
|
13
|
+
this.recordData = {};
|
|
14
|
+
if (!recordDefinition || recordDefinition.length === 0 || !recordData || recordData.length === 0) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const fieldNames = recordDefinition.map(column => column.fieldCode);
|
|
18
|
+
if (Array.isArray(recordData)) {
|
|
19
|
+
const rawRecordData = recordData.filter(fieldData => fieldData.fieldCode && fieldNames.includes(fieldData.fieldCode));
|
|
20
|
+
rawRecordData.forEach(fieldData => {
|
|
21
|
+
const { fieldCode, fieldValue } = fieldData;
|
|
22
|
+
const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);
|
|
23
|
+
this.recordData[fieldCode] = fieldValue ?? '';
|
|
24
|
+
if (fieldCode === selectionFieldName) {
|
|
25
|
+
this.selected = fieldValue;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
const fields = Object.keys(recordData);
|
|
30
|
+
fields.forEach(fieldCode => {
|
|
31
|
+
const fieldValue = recordData[fieldCode];
|
|
32
|
+
const fieldDef = recordDefinition.find(column => column.fieldCode === fieldCode);
|
|
33
|
+
this.recordData[fieldCode] = fieldValue ?? '';
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
toggleSelect() { this.selected = !this.selected; }
|
|
39
|
+
select() { this.selected = true; }
|
|
40
|
+
unselect() { this.selected = false; }
|
|
41
|
+
|
|
42
|
+
get recordIdKey() {
|
|
43
|
+
return (typeof this.recordId === 'object')
|
|
44
|
+
? JSON.stringify(this.recordId) : this.recordId;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getFieldValue(fieldCode): any {
|
|
48
|
+
return (fieldCode && this.recordData) ? this.recordData[fieldCode] : null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
hasPattern(words, columnObj) {
|
|
52
|
+
if (!words || words.length === 0) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
for (const fieldCode in this.recordData) {
|
|
56
|
+
const columnDef = columnObj?.[fieldCode];
|
|
57
|
+
if (columnDef && columnDef?.visible && this.recordData.hasOwnProperty(fieldCode)) {
|
|
58
|
+
for (const word of words) {
|
|
59
|
+
const term = word.toUpperCase();
|
|
60
|
+
let fieldValue;
|
|
61
|
+
if (columnDef.fieldType.toUpperCase().includes('DATE')) {
|
|
62
|
+
fieldValue = this.recordData[fieldCode].substring(0,16);
|
|
63
|
+
}else {
|
|
64
|
+
fieldValue = this.recordData[fieldCode];
|
|
65
|
+
}
|
|
66
|
+
if (fieldValue.toString().toUpperCase().includes(term)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
hasCondition(columnFilters) {
|
|
76
|
+
if (!columnFilters || columnFilters.length === 0) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
for (const condition of columnFilters) {
|
|
80
|
+
const { fieldCode, operator, values } = condition;
|
|
81
|
+
if (this.recordData.hasOwnProperty(fieldCode)) {
|
|
82
|
+
const fieldValue = this.recordData[fieldCode];
|
|
83
|
+
const stringValue = fieldValue.toString().toUpperCase();
|
|
84
|
+
if (operator === operators.G && fieldValue <= values[0]) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (operator === operators.L && fieldValue >= values[0]) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (operator === operators.GE && fieldValue < values[0]) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (operator === operators.LE && fieldValue > values[0]) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (operator === operators.IN && !values.includes(fieldValue)) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (operator === operators.EQ) {
|
|
100
|
+
return fieldValue === values[0];
|
|
101
|
+
}
|
|
102
|
+
if (operator === operators.NEQ && fieldValue === values[0]) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (operator === operators.HAS && !stringValue.includes(values[0].toString().toUpperCase())) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (operator === operators.NOTHAS && stringValue.includes(values[0].toString().toUpperCase())) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
if (operator === operators.BETWEEN && (fieldValue < values[0] || fieldValue > values[1])) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|