@beinformed/ui 1.33.0-beta.4 → 1.33.0-beta.6
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/CHANGELOG.md +9 -0
- package/esm/models/filters/BaseFilterModel.js +21 -0
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js +36 -13
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +21 -0
- package/lib/models/filters/BaseFilterModel.js.flow +21 -0
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js +36 -13
- package/lib/models/filters/StringFilterModel.js.flow +43 -14
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/filters/__tests__/FilterModel.spec.js.flow +2 -2
- package/lib/models/filters/__tests__/ZipcodeFilter.spec.js.flow +31 -13
- package/package.json +1 -1
- package/src/models/filters/BaseFilterModel.js +21 -0
- package/src/models/filters/StringFilterModel.js +43 -14
- package/src/models/filters/__tests__/FilterModel.spec.js +2 -2
- package/src/models/filters/__tests__/ZipcodeFilter.spec.js +31 -13
- package/types/constants/Constants.d.ts +11 -11
- package/types/constants/LayoutHintConfig.d.ts +75 -75
- package/types/hooks/useI18n.d.ts +4 -0
- package/types/i18n/index.d.ts +1 -1
- package/types/i18n/languages.d.ts +196 -196
- package/types/models/attributes/BooleanAttributeModel.d.ts +0 -1
- package/types/models/attributes/ChoiceAttributeModel.d.ts +0 -1
- package/types/models/attributes/ChoiceAttributeOptionModel.d.ts +5 -0
- package/types/models/attributes/CompositeAttributeModel.d.ts +0 -5
- package/types/models/attributes/DatetimeAttributeModel.d.ts +1 -6
- package/types/models/attributes/layouthint-rules/BaseLayoutHintRule.d.ts +0 -1
- package/types/models/filters/BaseFilterModel.d.ts +16 -0
- package/types/models/filters/StringFilterModel.d.ts +15 -0
- package/types/models/form/FormModel.d.ts +0 -2
- package/types/models/form/FormObjectModel.d.ts +1 -1
- package/types/models/href/Href.d.ts +1 -1
- package/types/models/index.d.ts +1 -1
- package/types/models/layouthint/LayoutHintCollection.d.ts +4 -4
- package/types/models/sorting/SortingModel.d.ts +1 -1
- package/types/modularui/UploadRequest.d.ts +2 -2
- package/types/utils/index.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.33.0-beta.6](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.33.0-beta.5...v1.33.0-beta.6) (2023-08-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **formatting:** remove formatting on exactly and not ([b80518d](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/b80518d5d74a1f54943e1e835a708f193555b85b))
|
|
11
|
+
|
|
12
|
+
## [1.33.0-beta.5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.33.0-beta.4...v1.33.0-beta.5) (2023-08-28)
|
|
13
|
+
|
|
5
14
|
## [1.33.0-beta.4](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.33.0-beta.3...v1.33.0-beta.4) (2023-08-28)
|
|
6
15
|
|
|
7
16
|
|
|
@@ -41,6 +41,13 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Inidiates if filter is multiplechoice
|
|
46
|
+
*/
|
|
47
|
+
get isMultiple() {
|
|
48
|
+
return this.getContribution("multiplechoice", false);
|
|
49
|
+
}
|
|
50
|
+
|
|
44
51
|
/**
|
|
45
52
|
* Getting context data
|
|
46
53
|
*/
|
|
@@ -130,6 +137,13 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
130
137
|
return this.attribute?.value;
|
|
131
138
|
}
|
|
132
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Getting the inputvalue of the filter
|
|
142
|
+
*/
|
|
143
|
+
get inputvalue() {
|
|
144
|
+
return this.attribute?.inputvalue;
|
|
145
|
+
}
|
|
146
|
+
|
|
133
147
|
/**
|
|
134
148
|
* Reset the value of this filter to undefined
|
|
135
149
|
*/
|
|
@@ -178,5 +192,12 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
178
192
|
}
|
|
179
193
|
return "";
|
|
180
194
|
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Get assistant message
|
|
198
|
+
*/
|
|
199
|
+
get assistantMessage() {
|
|
200
|
+
return this.getContribution("assistant");
|
|
201
|
+
}
|
|
181
202
|
}
|
|
182
203
|
//# sourceMappingURL=BaseFilterModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterModel.js","names":["BaseModel","createAttribute","PARAMETER_SEPARATOR","IllegalStateException","BaseFilterModel","constructor","data","contributions","_defineProperty","_attribute","type","param","listKey","listkey","replace","context","_context","contextLabel","label","_listKey","key","
|
|
1
|
+
{"version":3,"file":"BaseFilterModel.js","names":["BaseModel","createAttribute","PARAMETER_SEPARATOR","IllegalStateException","BaseFilterModel","constructor","data","contributions","_defineProperty","_attribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","attribute","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(param, data, {\n ...contributions,\n type: type,\n });\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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"}
|
|
@@ -16,14 +16,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
16
16
|
this.update(this.attribute, data.value ?? "");
|
|
17
17
|
|
|
18
18
|
// when formatted value set this to initial input value
|
|
19
|
-
this._inputvalue = this._value;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Inidiates if filter is multiplechoice
|
|
24
|
-
*/
|
|
25
|
-
get isMultiple() {
|
|
26
|
-
return this.getContribution("multiplechoice");
|
|
19
|
+
this._inputvalue = this._value ?? "";
|
|
27
20
|
}
|
|
28
21
|
|
|
29
22
|
/**
|
|
@@ -35,7 +28,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
35
28
|
}
|
|
36
29
|
return [{
|
|
37
30
|
name: this.param,
|
|
38
|
-
value: this.value
|
|
31
|
+
value: this.removeFormat(this.value)
|
|
39
32
|
}];
|
|
40
33
|
}
|
|
41
34
|
|
|
@@ -56,7 +49,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
56
49
|
* Reset the value of this filter to undefined
|
|
57
50
|
*/
|
|
58
51
|
reset() {
|
|
59
|
-
this._inputvalue =
|
|
52
|
+
this._inputvalue = "";
|
|
60
53
|
this._value = null;
|
|
61
54
|
return this;
|
|
62
55
|
}
|
|
@@ -80,9 +73,9 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
80
73
|
const formattedValue = this.formatValue(val);
|
|
81
74
|
if (formattedValue !== "") {
|
|
82
75
|
outputValues.push(formattedValue);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
if (!this.attribute.validate(formattedValue)) {
|
|
77
|
+
this._isValid = false;
|
|
78
|
+
}
|
|
86
79
|
}
|
|
87
80
|
}
|
|
88
81
|
this._value = outputValues.join(",");
|
|
@@ -105,5 +98,35 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
105
98
|
}
|
|
106
99
|
return value;
|
|
107
100
|
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
*/
|
|
104
|
+
isBSN() {
|
|
105
|
+
return this.layouthint.has("bsn");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
*/
|
|
110
|
+
isIBAN() {
|
|
111
|
+
return this.layouthint.has("iban");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
*/
|
|
116
|
+
isZipcode() {
|
|
117
|
+
return this.layouthint.has("zipcode");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
*/
|
|
122
|
+
removeFormat(value) {
|
|
123
|
+
if (value == null || value.toString() === "") {
|
|
124
|
+
return "";
|
|
125
|
+
}
|
|
126
|
+
if ((this.operator === "exactly" || this.operator === "isNot") && (this.isIBAN() || this.isZipcode() || this.isBSN())) {
|
|
127
|
+
return value.replace(/[^a-z0-9,]/gi, "");
|
|
128
|
+
}
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
108
131
|
}
|
|
109
132
|
//# sourceMappingURL=StringFilterModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringFilterModel.js","names":["BaseFilterModel","StringFilterModel","constructor","data","contributions","_defineProperty","update","attribute","value","_inputvalue","_value","
|
|
1
|
+
{"version":3,"file":"StringFilterModel.js","names":["BaseFilterModel","StringFilterModel","constructor","data","contributions","_defineProperty","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","operator","_context","_context2","values","isMultiple","_mapInstanceProperty","split","call","val","_trimInstanceProperty","outputValues","formattedValue","formatValue","push","validate","join","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"./BaseFilterModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends BaseFilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.operator === \"exactly\" || this.operator === \"isNot\") {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.operator === \"exactly\" || this.operator === \"isNot\") {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n ) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n}\n"],"mappings":"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"}
|
|
@@ -47,6 +47,13 @@ class BaseFilterModel extends _BaseModel.default {
|
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Inidiates if filter is multiplechoice
|
|
52
|
+
*/
|
|
53
|
+
get isMultiple() {
|
|
54
|
+
return this.getContribution("multiplechoice", false);
|
|
55
|
+
}
|
|
56
|
+
|
|
50
57
|
/**
|
|
51
58
|
* Getting context data
|
|
52
59
|
*/
|
|
@@ -136,6 +143,13 @@ class BaseFilterModel extends _BaseModel.default {
|
|
|
136
143
|
return this.attribute?.value;
|
|
137
144
|
}
|
|
138
145
|
|
|
146
|
+
/**
|
|
147
|
+
* Getting the inputvalue of the filter
|
|
148
|
+
*/
|
|
149
|
+
get inputvalue() {
|
|
150
|
+
return this.attribute?.inputvalue;
|
|
151
|
+
}
|
|
152
|
+
|
|
139
153
|
/**
|
|
140
154
|
* Reset the value of this filter to undefined
|
|
141
155
|
*/
|
|
@@ -184,6 +198,13 @@ class BaseFilterModel extends _BaseModel.default {
|
|
|
184
198
|
}
|
|
185
199
|
return "";
|
|
186
200
|
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Get assistant message
|
|
204
|
+
*/
|
|
205
|
+
get assistantMessage() {
|
|
206
|
+
return this.getContribution("assistant");
|
|
207
|
+
}
|
|
187
208
|
}
|
|
188
209
|
exports.default = BaseFilterModel;
|
|
189
210
|
//# sourceMappingURL=BaseFilterModel.js.map
|
|
@@ -59,6 +59,13 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Inidiates if filter is multiplechoice
|
|
64
|
+
*/
|
|
65
|
+
get isMultiple(): boolean {
|
|
66
|
+
return this.getContribution("multiplechoice", false);
|
|
67
|
+
}
|
|
68
|
+
|
|
62
69
|
/**
|
|
63
70
|
* Getting context data
|
|
64
71
|
*/
|
|
@@ -154,6 +161,13 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
154
161
|
return this.attribute?.value;
|
|
155
162
|
}
|
|
156
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Getting the inputvalue of the filter
|
|
166
|
+
*/
|
|
167
|
+
get inputvalue(): string {
|
|
168
|
+
return this.attribute?.inputvalue;
|
|
169
|
+
}
|
|
170
|
+
|
|
157
171
|
/**
|
|
158
172
|
* Reset the value of this filter to undefined
|
|
159
173
|
*/
|
|
@@ -203,4 +217,11 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
203
217
|
}
|
|
204
218
|
return "";
|
|
205
219
|
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Get assistant message
|
|
223
|
+
*/
|
|
224
|
+
get assistantMessage(): string | null {
|
|
225
|
+
return this.getContribution("assistant");
|
|
226
|
+
}
|
|
206
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","context","_context","contextLabel","label","_listKey","key","
|
|
1
|
+
{"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","PARAMETER_SEPARATOR","attribute","IllegalStateException","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","exports"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(param, data, {\n ...contributions,\n type: type,\n });\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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"}
|
|
@@ -23,14 +23,7 @@ class StringFilterModel extends _BaseFilterModel.default {
|
|
|
23
23
|
this.update(this.attribute, data.value ?? "");
|
|
24
24
|
|
|
25
25
|
// when formatted value set this to initial input value
|
|
26
|
-
this._inputvalue = this._value;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Inidiates if filter is multiplechoice
|
|
31
|
-
*/
|
|
32
|
-
get isMultiple() {
|
|
33
|
-
return this.getContribution("multiplechoice");
|
|
26
|
+
this._inputvalue = this._value ?? "";
|
|
34
27
|
}
|
|
35
28
|
|
|
36
29
|
/**
|
|
@@ -42,7 +35,7 @@ class StringFilterModel extends _BaseFilterModel.default {
|
|
|
42
35
|
}
|
|
43
36
|
return [{
|
|
44
37
|
name: this.param,
|
|
45
|
-
value: this.value
|
|
38
|
+
value: this.removeFormat(this.value)
|
|
46
39
|
}];
|
|
47
40
|
}
|
|
48
41
|
|
|
@@ -63,7 +56,7 @@ class StringFilterModel extends _BaseFilterModel.default {
|
|
|
63
56
|
* Reset the value of this filter to undefined
|
|
64
57
|
*/
|
|
65
58
|
reset() {
|
|
66
|
-
this._inputvalue =
|
|
59
|
+
this._inputvalue = "";
|
|
67
60
|
this._value = null;
|
|
68
61
|
return this;
|
|
69
62
|
}
|
|
@@ -87,9 +80,9 @@ class StringFilterModel extends _BaseFilterModel.default {
|
|
|
87
80
|
const formattedValue = this.formatValue(val);
|
|
88
81
|
if (formattedValue !== "") {
|
|
89
82
|
outputValues.push(formattedValue);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
if (!this.attribute.validate(formattedValue)) {
|
|
84
|
+
this._isValid = false;
|
|
85
|
+
}
|
|
93
86
|
}
|
|
94
87
|
}
|
|
95
88
|
this._value = outputValues.join(",");
|
|
@@ -112,6 +105,36 @@ class StringFilterModel extends _BaseFilterModel.default {
|
|
|
112
105
|
}
|
|
113
106
|
return value;
|
|
114
107
|
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
*/
|
|
111
|
+
isBSN() {
|
|
112
|
+
return this.layouthint.has("bsn");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
*/
|
|
117
|
+
isIBAN() {
|
|
118
|
+
return this.layouthint.has("iban");
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
*/
|
|
123
|
+
isZipcode() {
|
|
124
|
+
return this.layouthint.has("zipcode");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
*/
|
|
129
|
+
removeFormat(value) {
|
|
130
|
+
if (value == null || value.toString() === "") {
|
|
131
|
+
return "";
|
|
132
|
+
}
|
|
133
|
+
if ((this.operator === "exactly" || this.operator === "isNot") && (this.isIBAN() || this.isZipcode() || this.isBSN())) {
|
|
134
|
+
return value.replace(/[^a-z0-9,]/gi, "");
|
|
135
|
+
}
|
|
136
|
+
return value;
|
|
137
|
+
}
|
|
115
138
|
}
|
|
116
139
|
exports.default = StringFilterModel;
|
|
117
140
|
//# sourceMappingURL=StringFilterModel.js.map
|
|
@@ -9,7 +9,7 @@ import type { AttributeType, FilterType } from "../types";
|
|
|
9
9
|
export default class StringFilterModel extends BaseFilterModel {
|
|
10
10
|
_isValid: boolean = true;
|
|
11
11
|
_value: string | null;
|
|
12
|
-
_inputvalue: string
|
|
12
|
+
_inputvalue: string;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
*/
|
|
@@ -19,14 +19,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
19
19
|
this.update(this.attribute, data.value ?? "");
|
|
20
20
|
|
|
21
21
|
// when formatted value set this to initial input value
|
|
22
|
-
this._inputvalue = this._value;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Inidiates if filter is multiplechoice
|
|
27
|
-
*/
|
|
28
|
-
get isMultiple(): boolean {
|
|
29
|
-
return this.getContribution("multiplechoice");
|
|
22
|
+
this._inputvalue = this._value ?? "";
|
|
30
23
|
}
|
|
31
24
|
|
|
32
25
|
/**
|
|
@@ -40,7 +33,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
40
33
|
return [
|
|
41
34
|
{
|
|
42
35
|
name: this.param,
|
|
43
|
-
value: this.value,
|
|
36
|
+
value: this.removeFormat(this.value),
|
|
44
37
|
},
|
|
45
38
|
];
|
|
46
39
|
}
|
|
@@ -54,7 +47,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
54
47
|
|
|
55
48
|
/**
|
|
56
49
|
*/
|
|
57
|
-
get inputvalue(): string
|
|
50
|
+
get inputvalue(): string {
|
|
58
51
|
return this._inputvalue;
|
|
59
52
|
}
|
|
60
53
|
|
|
@@ -62,7 +55,7 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
62
55
|
* Reset the value of this filter to undefined
|
|
63
56
|
*/
|
|
64
57
|
reset(): FilterType {
|
|
65
|
-
this._inputvalue =
|
|
58
|
+
this._inputvalue = "";
|
|
66
59
|
this._value = null;
|
|
67
60
|
|
|
68
61
|
return this;
|
|
@@ -91,8 +84,9 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
91
84
|
if (formattedValue !== "") {
|
|
92
85
|
outputValues.push(formattedValue);
|
|
93
86
|
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
if (!this.attribute.validate(formattedValue)) {
|
|
88
|
+
this._isValid = false;
|
|
89
|
+
}
|
|
96
90
|
}
|
|
97
91
|
}
|
|
98
92
|
|
|
@@ -116,4 +110,39 @@ export default class StringFilterModel extends BaseFilterModel {
|
|
|
116
110
|
}
|
|
117
111
|
return value;
|
|
118
112
|
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
*/
|
|
116
|
+
isBSN(): boolean {
|
|
117
|
+
return this.layouthint.has("bsn");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
*/
|
|
122
|
+
isIBAN(): boolean {
|
|
123
|
+
return this.layouthint.has("iban");
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
*/
|
|
128
|
+
isZipcode(): boolean {
|
|
129
|
+
return this.layouthint.has("zipcode");
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
*/
|
|
134
|
+
removeFormat(value: ?string): string {
|
|
135
|
+
if (value == null || value.toString() === "") {
|
|
136
|
+
return "";
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (
|
|
140
|
+
(this.operator === "exactly" || this.operator === "isNot") &&
|
|
141
|
+
(this.isIBAN() || this.isZipcode() || this.isBSN())
|
|
142
|
+
) {
|
|
143
|
+
return value.replace(/[^a-z0-9,]/gi, "");
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return value;
|
|
147
|
+
}
|
|
119
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","StringFilterModel","BaseFilterModel","constructor","data","contributions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","
|
|
1
|
+
{"version":3,"file":"StringFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","StringFilterModel","BaseFilterModel","constructor","data","contributions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","operator","_context","_context2","values","isMultiple","_map","split","call","val","_trim","outputValues","formattedValue","formatValue","push","validate","join","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","exports"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"./BaseFilterModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends BaseFilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.operator === \"exactly\" || this.operator === \"isNot\") {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.operator === \"exactly\" || this.operator === \"isNot\") {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n ) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACA;AACe,MAAMC,iBAAiB,SAASC,wBAAe,CAAC;EAK7D;AACF;EACEC,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAC/C,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,oBAPT,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAStB,IAAI,CAACC,MAAM,CAAC,IAAI,CAACC,SAAS,EAAEL,IAAI,CAACM,KAAK,IAAI,EAAE,CAAC;;IAE7C;IACA,IAAI,CAACC,WAAW,GAAG,IAAI,CAACC,MAAM,IAAI,EAAE;EACtC;;EAEA;AACF;AACA;EACE,IAAIC,MAAMA,CAAA,EAA4C;IACpD,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;MACf,OAAO,EAAE;IACX;IAEA,OAAO,CACL;MACEC,IAAI,EAAE,IAAI,CAACD,KAAK;MAChBJ,KAAK,EAAE,IAAI,CAACM,YAAY,CAAC,IAAI,CAACN,KAAK;IACrC,CAAC,CACF;EACH;;EAEA;AACF;AACA;EACE,IAAIA,KAAKA,CAAA,EAAkB;IACzB,OAAO,IAAI,CAACE,MAAM;EACpB;;EAEA;AACF;EACE,IAAIK,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACN,WAAW;EACzB;;EAEA;AACF;AACA;EACEO,KAAKA,CAAA,EAAe;IAClB,IAAI,CAACP,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,MAAM,GAAG,IAAI;IAElB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIO,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACC,QAAQ;EACtB;;EAEA;AACF;AACA;EACEZ,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,CAACC,WAAW,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACW,QAAQ,CAAC,CAAC,GAAGX,KAAK;IAEvE,IAAI,IAAI,CAACY,QAAQ,KAAK,SAAS,IAAI,IAAI,CAACA,QAAQ,KAAK,OAAO,EAAE;MAAA,IAAAC,QAAA,EAAAC,SAAA;MAC5D,MAAMC,MAAM,GAAG,IAAI,CAACC,UAAU,GAC1B,IAAAC,IAAA,CAAApB,OAAA,EAAAgB,QAAA,OAAI,CAACZ,WAAW,CAACiB,KAAK,CAAC,GAAG,CAAC,EAAAC,IAAA,CAAAN,QAAA,EAAMO,GAAG,IAAK,IAAAC,KAAA,CAAAxB,OAAA,EAAAuB,GAAG,EAAAD,IAAA,CAAHC,GAAS,CAAC,CAAC,GACpD,CAAC,IAAAC,KAAA,CAAAxB,OAAA,EAAAiB,SAAA,OAAI,CAACb,WAAW,EAAAkB,IAAA,CAAAL,SAAM,CAAC,CAAC;MAE7B,MAAMQ,YAAY,GAAG,EAAE;MACvB,KAAK,MAAMF,GAAG,IAAIL,MAAM,EAAE;QACxB,MAAMQ,cAAc,GAAG,IAAI,CAACC,WAAW,CAACJ,GAAG,CAAC;QAC5C,IAAIG,cAAc,KAAK,EAAE,EAAE;UACzBD,YAAY,CAACG,IAAI,CAACF,cAAc,CAAC;UAEjC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAAC2B,QAAQ,CAACH,cAAc,CAAC,EAAE;YAC5C,IAAI,CAACb,QAAQ,GAAG,KAAK;UACvB;QACF;MACF;MAEA,IAAI,CAACR,MAAM,GAAGoB,YAAY,CAACK,IAAI,CAAC,GAAG,CAAC;IACtC,CAAC,MAAM;MACL,IAAI,CAACzB,MAAM,GAAGF,KAAK;IACrB;EACF;;EAEA;AACF;EACE,IAAIY,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACgB,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC;EAC7C;;EAEA;AACF;EACEJ,WAAWA,CAACxB,KAAa,EAAU;IACjC,IAAI,IAAI,CAACY,QAAQ,KAAK,SAAS,IAAI,IAAI,CAACA,QAAQ,KAAK,OAAO,EAAE;MAC5D,OAAO,IAAI,CAACb,SAAS,CAACyB,WAAW,CAACxB,KAAK,CAAC;IAC1C;IACA,OAAOA,KAAK;EACd;;EAEA;AACF;EACE6B,KAAKA,CAAA,EAAY;IACf,OAAO,IAAI,CAACC,UAAU,CAACC,GAAG,CAAC,KAAK,CAAC;EACnC;;EAEA;AACF;EACEC,MAAMA,CAAA,EAAY;IAChB,OAAO,IAAI,CAACF,UAAU,CAACC,GAAG,CAAC,MAAM,CAAC;EACpC;;EAEA;AACF;EACEE,SAASA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACH,UAAU,CAACC,GAAG,CAAC,SAAS,CAAC;EACvC;;EAEA;AACF;EACEzB,YAAYA,CAACN,KAAc,EAAU;IACnC,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACW,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;MAC5C,OAAO,EAAE;IACX;IAEA,IACE,CAAC,IAAI,CAACC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAACA,QAAQ,KAAK,OAAO,MACxD,IAAI,CAACoB,MAAM,CAAC,CAAC,IAAI,IAAI,CAACC,SAAS,CAAC,CAAC,IAAI,IAAI,CAACJ,KAAK,CAAC,CAAC,CAAC,EACnD;MACA,OAAO7B,KAAK,CAACkC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;IAC1C;IAEA,OAAOlC,KAAK;EACd;AACF;AAACmC,OAAA,CAAAtC,OAAA,GAAAN,iBAAA"}
|
|
@@ -22,7 +22,7 @@ describe("filterModel", () => {
|
|
|
22
22
|
expect(filter.label).toBe("");
|
|
23
23
|
expect(filter.name).toBeUndefined();
|
|
24
24
|
expect(filter.value).toBeNull();
|
|
25
|
-
expect(filter.inputvalue).
|
|
25
|
+
expect(filter.inputvalue).toBe("");
|
|
26
26
|
expect(filter.type).toBe("string");
|
|
27
27
|
expect(filter.params).toStrictEqual([]);
|
|
28
28
|
});
|
|
@@ -34,7 +34,7 @@ describe("filterModel", () => {
|
|
|
34
34
|
expect(filter.label).toBe("Stringfilter");
|
|
35
35
|
expect(filter.name).toBe("stringfilter");
|
|
36
36
|
expect(filter.value).toBeNull();
|
|
37
|
-
expect(filter.inputvalue).
|
|
37
|
+
expect(filter.inputvalue).toBe("");
|
|
38
38
|
expect(filter.type).toBe("string");
|
|
39
39
|
});
|
|
40
40
|
|