@beinformed/ui 1.65.6 → 1.65.8
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 +20 -0
- package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +1 -0
- package/esm/hooks/index.js +1 -0
- package/esm/hooks/index.js.flow +1 -0
- package/esm/hooks/index.js.map +1 -1
- package/esm/hooks/useForm.js +3 -3
- package/esm/hooks/useForm.js.flow +7 -4
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useList.js +47 -3
- package/esm/hooks/useList.js.flow +74 -2
- package/esm/hooks/useList.js.map +1 -1
- package/esm/hooks/useLookup.js +62 -0
- package/esm/hooks/useLookup.js.flow +82 -0
- package/esm/hooks/useLookup.js.map +1 -0
- package/esm/hooks/usePanel.js +6 -1
- package/esm/hooks/usePanel.js.flow +6 -4
- package/esm/hooks/usePanel.js.map +1 -1
- package/esm/hooks/useProgressIndicator.js +21 -6
- package/esm/hooks/useProgressIndicator.js.flow +27 -10
- package/esm/hooks/useProgressIndicator.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js +1 -1
- package/esm/models/attributes/AttributeSetModel.js.flow +1 -1
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +19 -2
- package/esm/models/attributes/ChoiceAttributeModel.js.flow +23 -2
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js +1 -12
- package/esm/models/filters/AssignmentFilterModel.js.flow +6 -14
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +12 -0
- package/esm/models/filters/BaseFilterModel.js.flow +12 -0
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/ConceptIndexFilterModel.js.flow +5 -2
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +26 -8
- package/esm/models/filters/FilterCollection.js.flow +23 -6
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/FilterModel.js.flow +2 -2
- package/esm/models/filters/FilterModel.js.map +1 -1
- package/esm/models/filters/RangeFilterModel.js.flow +2 -2
- package/esm/models/filters/RangeFilterModel.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js.flow +2 -2
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/links/LinkModel.js +17 -1
- package/esm/models/links/LinkModel.js.flow +18 -1
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/list/ListModel.js.flow +2 -2
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/search/CaseSearchModel.js.flow +2 -2
- package/esm/models/search/CaseSearchModel.js.map +1 -1
- package/esm/models/types.js +1 -1
- package/esm/models/types.js.flow +28 -10
- package/esm/models/types.js.map +1 -1
- package/esm/react-server/serverUtil.js +2 -2
- package/esm/react-server/serverUtil.js.flow +2 -2
- package/esm/react-server/serverUtil.js.map +1 -1
- package/lib/hooks/index.js +11 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useForm.js +5 -5
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useList.js +47 -3
- package/lib/hooks/useList.js.map +1 -1
- package/lib/hooks/useLookup.js +70 -0
- package/lib/hooks/useLookup.js.map +1 -0
- package/lib/hooks/usePanel.js +6 -1
- package/lib/hooks/usePanel.js.map +1 -1
- package/lib/hooks/useProgressIndicator.js +23 -7
- package/lib/hooks/useProgressIndicator.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js +1 -1
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +18 -1
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js +0 -12
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +12 -0
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +26 -8
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/FilterModel.js.map +1 -1
- package/lib/models/filters/RangeFilterModel.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/links/LinkModel.js +17 -0
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/search/CaseSearchModel.js.map +1 -1
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -1
- package/lib/react-server/serverUtil.js +5 -5
- package/lib/react-server/serverUtil.js.map +1 -1
- package/package.json +3 -3
- package/src/hooks/__tests__/UseModularUIModel.spec.js +1 -0
- package/src/hooks/index.js +1 -0
- package/src/hooks/useForm.js +7 -4
- package/src/hooks/useList.js +74 -2
- package/src/hooks/useLookup.js +82 -0
- package/src/hooks/usePanel.js +6 -4
- package/src/hooks/useProgressIndicator.js +27 -10
- package/src/models/attributes/AttributeSetModel.js +1 -1
- package/src/models/attributes/ChoiceAttributeModel.js +23 -2
- package/src/models/filters/AssignmentFilterModel.js +6 -14
- package/src/models/filters/BaseFilterModel.js +12 -0
- package/src/models/filters/ConceptIndexFilterModel.js +5 -2
- package/src/models/filters/FilterCollection.js +23 -6
- package/src/models/filters/FilterModel.js +2 -2
- package/src/models/filters/RangeFilterModel.js +2 -2
- package/src/models/filters/StringFilterModel.js +2 -2
- package/src/models/links/LinkModel.js +18 -1
- package/src/models/list/ListModel.js +2 -2
- package/src/models/search/CaseSearchModel.js +2 -2
- package/src/models/types.js +28 -10
- package/src/react-server/serverUtil.js +2 -2
|
@@ -69,7 +69,7 @@ export default class FilterCollection extends BaseCollection {
|
|
|
69
69
|
/**
|
|
70
70
|
* Call the reset function on all filters
|
|
71
71
|
*
|
|
72
|
-
* @see {
|
|
72
|
+
* @see {IFilter#reset()}
|
|
73
73
|
*/
|
|
74
74
|
reset() {
|
|
75
75
|
var _context4;
|
|
@@ -95,19 +95,29 @@ export default class FilterCollection extends BaseCollection {
|
|
|
95
95
|
return filter.key === key || filter.user?.key === key || filter.assignmenttype?.key === key;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
/**
|
|
99
|
+
*/
|
|
100
|
+
getFilterByName(name) {
|
|
101
|
+
var _context5;
|
|
102
|
+
return _findInstanceProperty(_context5 = this).call(_context5, filter => filter.name === name) || null;
|
|
103
|
+
}
|
|
104
|
+
|
|
98
105
|
/**
|
|
99
106
|
* Getting the filter by name
|
|
100
107
|
*/
|
|
101
108
|
getFilterByAttributeKey(key) {
|
|
102
|
-
var
|
|
103
|
-
return _findInstanceProperty(
|
|
109
|
+
var _context6;
|
|
110
|
+
return _findInstanceProperty(_context6 = this).call(_context6, filter => {
|
|
104
111
|
if (filter instanceof RangeFilterModel) {
|
|
105
112
|
return this.checkRangeFilterByAttributeKey(filter, key);
|
|
106
113
|
}
|
|
107
114
|
if (filter instanceof AssignmentFilterModel) {
|
|
108
115
|
return this.checkAssignmentFilterByAttributeKey(filter, key);
|
|
109
116
|
}
|
|
110
|
-
|
|
117
|
+
if (filter instanceof FilterModel) {
|
|
118
|
+
return filter.attribute.key === key;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
111
121
|
}) || null;
|
|
112
122
|
}
|
|
113
123
|
|
|
@@ -115,14 +125,14 @@ export default class FilterCollection extends BaseCollection {
|
|
|
115
125
|
* Update Filter by input name and value
|
|
116
126
|
*/
|
|
117
127
|
update(attribute, value) {
|
|
118
|
-
var
|
|
128
|
+
var _context7;
|
|
119
129
|
const filterToUpdate = attribute.parentKey ? this.getFilterByAttributeKey(attribute.parentKey) : this.getFilterByAttributeKey(attribute.key);
|
|
120
130
|
if (!filterToUpdate) {
|
|
121
131
|
throw new Error(`Can not find filter by attribute key: ${attribute.key}`);
|
|
122
132
|
}
|
|
123
133
|
const newFilter = filterToUpdate.clone();
|
|
124
134
|
newFilter.update(attribute, value);
|
|
125
|
-
this.collection = _mapInstanceProperty(
|
|
135
|
+
this.collection = _mapInstanceProperty(_context7 = this.collection).call(_context7, filter => {
|
|
126
136
|
if (filter.name === newFilter.name) {
|
|
127
137
|
return newFilter;
|
|
128
138
|
}
|
|
@@ -144,11 +154,19 @@ export default class FilterCollection extends BaseCollection {
|
|
|
144
154
|
return this.collection.some(filter => filter.isActive());
|
|
145
155
|
}
|
|
146
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Retrieve all filters with a value
|
|
159
|
+
*/
|
|
160
|
+
getActiveFilters() {
|
|
161
|
+
var _context8;
|
|
162
|
+
return _filterInstanceProperty(_context8 = this.collection).call(_context8, filter => filter.isActive());
|
|
163
|
+
}
|
|
164
|
+
|
|
147
165
|
/**
|
|
148
166
|
*/
|
|
149
167
|
get formdata() {
|
|
150
|
-
var
|
|
151
|
-
const bodyFields = _filterInstanceProperty(
|
|
168
|
+
var _context9;
|
|
169
|
+
const bodyFields = _filterInstanceProperty(_context9 = this).call(_context9, f => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue() && f.formdata);
|
|
152
170
|
if (bodyFields.length === 0) {
|
|
153
171
|
return null;
|
|
154
172
|
}
|
|
@@ -8,13 +8,13 @@ import ConceptIndexFilterModel from "../filters/ConceptIndexFilterModel";
|
|
|
8
8
|
import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
|
|
9
9
|
import FilterModel from "../filters/FilterModel";
|
|
10
10
|
|
|
11
|
-
import type { AttributeType,
|
|
11
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
12
12
|
import { PARAMETER_TYPES } from "../../constants";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Contains a collection of filters
|
|
16
16
|
*/
|
|
17
|
-
export default class FilterCollection extends BaseCollection<
|
|
17
|
+
export default class FilterCollection extends BaseCollection<IFilter> {
|
|
18
18
|
/**
|
|
19
19
|
* Construct a collection of filters
|
|
20
20
|
*/
|
|
@@ -68,7 +68,7 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
68
68
|
data: Object,
|
|
69
69
|
contributions: Object,
|
|
70
70
|
modelOptions?: ModelOptions,
|
|
71
|
-
):
|
|
71
|
+
): IFilter {
|
|
72
72
|
const type = contributions.type || "stringfilter";
|
|
73
73
|
if (type === "choicefilter" && filterKey === "index") {
|
|
74
74
|
return new ConceptIndexFilterModel(data, contributions, modelOptions);
|
|
@@ -92,7 +92,7 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
92
92
|
/**
|
|
93
93
|
* Call the reset function on all filters
|
|
94
94
|
*
|
|
95
|
-
* @see {
|
|
95
|
+
* @see {IFilter#reset()}
|
|
96
96
|
*/
|
|
97
97
|
reset(): FilterCollection {
|
|
98
98
|
this.collection = this.collection.map((filter) => filter.reset());
|
|
@@ -134,10 +134,16 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
134
134
|
);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
*/
|
|
139
|
+
getFilterByName(name: string): IFilter | null {
|
|
140
|
+
return this.find((filter) => filter.name === name) || null;
|
|
141
|
+
}
|
|
142
|
+
|
|
137
143
|
/**
|
|
138
144
|
* Getting the filter by name
|
|
139
145
|
*/
|
|
140
|
-
getFilterByAttributeKey(key: string):
|
|
146
|
+
getFilterByAttributeKey(key: string): IFilter | null {
|
|
141
147
|
return (
|
|
142
148
|
this.find((filter) => {
|
|
143
149
|
if (filter instanceof RangeFilterModel) {
|
|
@@ -148,7 +154,11 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
148
154
|
return this.checkAssignmentFilterByAttributeKey(filter, key);
|
|
149
155
|
}
|
|
150
156
|
|
|
151
|
-
|
|
157
|
+
if (filter instanceof FilterModel) {
|
|
158
|
+
return filter.attribute.key === key;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return false;
|
|
152
162
|
}) || null
|
|
153
163
|
);
|
|
154
164
|
}
|
|
@@ -191,6 +201,13 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
191
201
|
return this.collection.some((filter) => filter.isActive());
|
|
192
202
|
}
|
|
193
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Retrieve all filters with a value
|
|
206
|
+
*/
|
|
207
|
+
getActiveFilters(): Array<IFilter> {
|
|
208
|
+
return this.collection.filter((filter) => filter.isActive());
|
|
209
|
+
}
|
|
210
|
+
|
|
194
211
|
/**
|
|
195
212
|
*/
|
|
196
213
|
get formdata(): { [string]: any } | null {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterCollection.js","names":["BaseCollection","StringFilterModel","RangeFilterModel","AssignmentFilterModel","ConceptIndexFilterModel","CompositeAttributeModel","FilterModel","PARAMETER_TYPES","FilterCollection","constructor","data","contributions","modelOptions","Array","isArray","_filterInstanceProperty","_context","_context2","collection","_mapInstanceProperty","call","filterContribution","_Object$keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_findInstanceProperty","context","id","type","_includesInstanceProperty","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","formdata","_context7","bodyFields","f","parameterType","BODY","hasValue","length","reduce","_Object$assign"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { PARAMETER_TYPES } from \"../../constants\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(\n data: Object = {},\n contributions: Object = {},\n modelOptions?: ModelOptions,\n ) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n modelOptions,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions, modelOptions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions, modelOptions);\n }\n\n return new FilterModel(data, contributions, modelOptions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n const bodyFields = this.filter(\n (f) =>\n f.parameterType === PARAMETER_TYPES.BODY && f.hasValue() && f.formdata,\n );\n\n if (bodyFields.length === 0) {\n return null;\n }\n\n return bodyFields.reduce((data, f) => {\n return Object.assign(data, f.formdata);\n }, {});\n }\n}\n"],"mappings":";;;;;;AACA,OAAOA,cAAc,MAAM,wBAAwB;AAEnD,OAAOC,iBAAiB,MAAM,8BAA8B;AAC5D,OAAOC,gBAAgB,MAAM,6BAA6B;AAC1D,OAAOC,qBAAqB,MAAM,kCAAkC;AACpE,OAAOC,uBAAuB,MAAM,oCAAoC;AACxE,OAAOC,uBAAuB,MAAM,uCAAuC;AAC3E,OAAOC,WAAW,MAAM,wBAAwB;AAGhD,SAASC,eAAe,QAAQ,iBAAiB;;AAEjD;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASR,cAAc,CAAa;EACvE;AACF;AACA;EACES,WAAWA,CACTC,IAAY,GAAG,CAAC,CAAC,EACjBC,aAAqB,GAAG,CAAC,CAAC,EAC1BC,YAA2B,EAC3B;IACA,KAAK,CAAC,CAAC;IAEP,IAAIF,IAAI,IAAIC,aAAa,IAAIE,KAAK,CAACC,OAAO,CAAAC,uBAAA,CAACJ,aAAa,CAAO,CAAC,EAAE;MAAA,IAAAK,QAAA,EAAAC,SAAA;MAChE,IAAI,CAACC,UAAU,GAAGC,oBAAA,CAAAH,QAAA,GAAAD,uBAAA,CAAAE,SAAA,GAAAF,uBAAA,CAAAJ,aAAa,GAAAS,IAAA,CAAAH,SAAA,EACpBI,kBAAkB,IAAKC,YAAA,CAAYD,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAAD,IAAA,CAAAJ,QAAA,EAC7DK,kBAAkB,IAAK;QAC3B,MAAM,CAACE,SAAS,CAAC,GAAGD,YAAA,CAAYD,kBAAkB,CAAC;QACnD,MAAMG,UAAU,GAAGd,IAAI,CAACa,SAAS,CAAC;QAClC,MAAME,uBAAuB,GAAGJ,kBAAkB,CAACE,SAAS,CAAC;QAE7D,MAAMG,MAAM,GAAG,IAAI,CAACC,YAAY,CAC9BJ,SAAS,EACT;UACE,GAAGC,UAAU;UACbI,aAAa,EAAEjB,aAAa,CAACiB;QAC/B,CAAC,EACDH,uBAAuB,EACvBb,YACF,CAAC;QAED,IAAID,aAAa,CAACkB,OAAO,EAAE;UACzBH,MAAM,CAACG,OAAO,GAAGlB,aAAa,CAACkB,OAAO;QACxC;QAEA,IAAIlB,aAAa,CAACmB,QAAQ,IAAIL,uBAAuB,CAACM,SAAS,EAAE;UAAA,IAAAC,SAAA;UAC/D,MAAMC,aAAa,GAAGC,qBAAA,CAAAF,SAAA,GAAArB,aAAa,CAACmB,QAAQ,EAAAV,IAAA,CAAAY,SAAA,EACzCG,OAAO,IAAKA,OAAO,CAACC,EAAE,KAAKX,uBAAuB,CAACM,SACtD,CAAC;UACD,IAAIE,aAAa,EAAE;YACjBP,MAAM,CAACS,OAAO,GAAGF,aAAa;UAChC;QACF;QAEA,OAAOP,MAAM;MACf,CAAC,CAAC;IACN;EACF;;EAEA;AACF;EACEC,YAAYA,CACVJ,SAAiB,EACjBb,IAAY,EACZC,aAAqB,EACrBC,YAA2B,EACf;IACZ,MAAMyB,IAAI,GAAG1B,aAAa,CAAC0B,IAAI,IAAI,cAAc;IACjD,IAAIA,IAAI,KAAK,cAAc,IAAId,SAAS,KAAK,OAAO,EAAE;MACpD,OAAO,IAAInB,uBAAuB,CAACM,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;IACvE;IAEA,IAAI0B,yBAAA,CAAAD,IAAI,EAAAjB,IAAA,CAAJiB,IAAI,EAAU,aAAa,CAAC,EAAE;MAChC,OAAO,IAAInC,gBAAgB,CAACQ,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;IAChE;IAEA,IAAIyB,IAAI,KAAK,kBAAkB,EAAE;MAC/B,OAAO,IAAIlC,qBAAqB,CAACO,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;IACrE;IAEA,IAAIyB,IAAI,KAAK,cAAc,EAAE;MAC3B,OAAO,IAAIpC,iBAAiB,CAACS,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;IACjE;IAEA,OAAO,IAAIN,WAAW,CAACI,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;EAC3D;;EAEA;AACF;AACA;AACA;AACA;EACE2B,KAAKA,CAAA,EAAqB;IAAA,IAAAC,SAAA;IACxB,IAAI,CAACtB,UAAU,GAAGC,oBAAA,CAAAqB,SAAA,OAAI,CAACtB,UAAU,EAAAE,IAAA,CAAAoB,SAAA,EAAMd,MAAM,IAAKA,MAAM,CAACa,KAAK,CAAC,CAAC,CAAC;IAEjE,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEE,8BAA8BA,CAC5Bf,MAAwB,EACxBgB,GAAW,EACF;IACT,MAAMC,cAAc,GAAGjB,MAAM,CAACkB,SAAS;IAEvC,IAAID,cAAc,YAAYtC,uBAAuB,EAAE;MACrD,OACEsC,cAAc,CAACD,GAAG,KAAKA,GAAG,IACzBC,cAAc,CAACE,KAAK,IAAIF,cAAc,CAACE,KAAK,CAACH,GAAG,KAAKA,GAAI,IACzDC,cAAc,CAACG,GAAG,IAAIH,cAAc,CAACG,GAAG,CAACJ,GAAG,KAAKA,GAAI;IAE1D;IAEA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;EACEK,mCAAmCA,CACjCrB,MAA6B,EAC7BgB,GAAW,EACF;IACT,OACEhB,MAAM,CAACgB,GAAG,KAAKA,GAAG,IAClBhB,MAAM,CAACsB,IAAI,EAAEN,GAAG,KAAKA,GAAG,IACxBhB,MAAM,CAACuB,cAAc,EAAEP,GAAG,KAAKA,GAAG;EAEtC;;EAEA;AACF;AACA;EACEQ,uBAAuBA,CAACR,GAAW,EAAqB;IAAA,IAAAS,SAAA;IACtD,OACEjB,qBAAA,CAAAiB,SAAA,OAAI,EAAA/B,IAAA,CAAA+B,SAAA,EAAOzB,MAAM,IAAK;MACpB,IAAIA,MAAM,YAAYxB,gBAAgB,EAAE;QACtC,OAAO,IAAI,CAACuC,8BAA8B,CAACf,MAAM,EAAEgB,GAAG,CAAC;MACzD;MAEA,IAAIhB,MAAM,YAAYvB,qBAAqB,EAAE;QAC3C,OAAO,IAAI,CAAC4C,mCAAmC,CAACrB,MAAM,EAAEgB,GAAG,CAAC;MAC9D;MAEA,OAAOhB,MAAM,CAACkB,SAAS,EAAEF,GAAG,KAAKA,GAAG;IACtC,CAAC,CAAC,IAAI,IAAI;EAEd;;EAEA;AACF;AACA;EACEU,MAAMA,CAACR,SAAwB,EAAES,KAAa,EAAQ;IAAA,IAAAC,SAAA;IACpD,MAAMC,cAAc,GAAGX,SAAS,CAACY,SAAS,GACtC,IAAI,CAACN,uBAAuB,CAACN,SAAS,CAACY,SAAS,CAAC,GACjD,IAAI,CAACN,uBAAuB,CAACN,SAAS,CAACF,GAAG,CAAC;IAE/C,IAAI,CAACa,cAAc,EAAE;MACnB,MAAM,IAAIE,KAAK,CAAC,yCAAyCb,SAAS,CAACF,GAAG,EAAE,CAAC;IAC3E;IAEA,MAAMgB,SAAS,GAAGH,cAAc,CAACI,KAAK,CAAC,CAAC;IACxCD,SAAS,CAACN,MAAM,CAACR,SAAS,EAAES,KAAK,CAAC;IAElC,IAAI,CAACnC,UAAU,GAAGC,oBAAA,CAAAmC,SAAA,OAAI,CAACpC,UAAU,EAAAE,IAAA,CAAAkC,SAAA,EAAM5B,MAAM,IAAK;MAChD,IAAIA,MAAM,CAACkC,IAAI,KAAKF,SAAS,CAACE,IAAI,EAAE;QAClC,OAAOF,SAAS;MAClB;MAEA,OAAOhC,MAAM;IACf,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,IAAImC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAAC3C,UAAU,CAAC4C,KAAK,CAAEpC,MAAM,IAAKA,MAAM,CAACmC,OAAO,CAAC;EAC1D;;EAEA;AACF;AACA;EACEE,gBAAgBA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAAC7C,UAAU,CAAC8C,IAAI,CAAEtC,MAAM,IAAKA,MAAM,CAACuC,QAAQ,CAAC,CAAC,CAAC;EAC5D;;EAEA;AACF;EACE,IAAIC,QAAQA,CAAA,EAA6B;IAAA,IAAAC,SAAA;IACvC,MAAMC,UAAU,GAAGrD,uBAAA,CAAAoD,SAAA,OAAI,EAAA/C,IAAA,CAAA+C,SAAA,EACpBE,CAAC,IACAA,CAAC,CAACC,aAAa,KAAK/D,eAAe,CAACgE,IAAI,IAAIF,CAAC,CAACG,QAAQ,CAAC,CAAC,IAAIH,CAAC,CAACH,QAClE,CAAC;IAED,IAAIE,UAAU,CAACK,MAAM,KAAK,CAAC,EAAE;MAC3B,OAAO,IAAI;IACb;IAEA,OAAOL,UAAU,CAACM,MAAM,CAAC,CAAChE,IAAI,EAAE2D,CAAC,KAAK;MACpC,OAAOM,cAAA,CAAcjE,IAAI,EAAE2D,CAAC,CAACH,QAAQ,CAAC;IACxC,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FilterCollection.js","names":["BaseCollection","StringFilterModel","RangeFilterModel","AssignmentFilterModel","ConceptIndexFilterModel","CompositeAttributeModel","FilterModel","PARAMETER_TYPES","FilterCollection","constructor","data","contributions","modelOptions","Array","isArray","_filterInstanceProperty","_context","_context2","collection","_mapInstanceProperty","call","filterContribution","_Object$keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_findInstanceProperty","context","id","type","_includesInstanceProperty","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByName","name","_context5","getFilterByAttributeKey","_context6","update","value","_context7","filterToUpdate","parentKey","Error","newFilter","clone","isValid","every","hasActiveFilters","some","isActive","getActiveFilters","_context8","formdata","_context9","bodyFields","f","parameterType","BODY","hasValue","length","reduce","_Object$assign"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, IFilter, ModelOptions } from \"../types\";\nimport { PARAMETER_TYPES } from \"../../constants\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<IFilter> {\n /**\n * Construct a collection of filters\n */\n constructor(\n data: Object = {},\n contributions: Object = {},\n modelOptions?: ModelOptions,\n ) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n modelOptions,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): IFilter {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions, modelOptions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions, modelOptions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions, modelOptions);\n }\n\n return new FilterModel(data, contributions, modelOptions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {IFilter#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n */\n getFilterByName(name: string): IFilter | null {\n return this.find((filter) => filter.name === name) || null;\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): IFilter | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof FilterModel) {\n return filter.attribute.key === key;\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n\n /**\n * Retrieve all filters with a value\n */\n getActiveFilters(): Array<IFilter> {\n return this.collection.filter((filter) => filter.isActive());\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n const bodyFields = this.filter(\n (f) =>\n f.parameterType === PARAMETER_TYPES.BODY && f.hasValue() && f.formdata,\n );\n\n if (bodyFields.length === 0) {\n return null;\n }\n\n return bodyFields.reduce((data, f) => {\n return Object.assign(data, f.formdata);\n }, {});\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,11 @@ import BaseFilterModel from "../filters/BaseFilterModel";
|
|
|
3
3
|
import createAttribute from "../attributes/_createAttribute";
|
|
4
4
|
import { IllegalStateException } from "../../exceptions";
|
|
5
5
|
|
|
6
|
-
import type { AttributeType, ModelOptions } from "../types";
|
|
6
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*/
|
|
10
|
-
export default class FilterModel extends BaseFilterModel {
|
|
10
|
+
export default class FilterModel extends BaseFilterModel implements IFilter {
|
|
11
11
|
_attribute: AttributeType | null = null;
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterModel.js","names":["BaseFilterModel","createAttribute","IllegalStateException","FilterModel","constructor","data","contributions","modelOptions","_defineProperty","_attribute","type","param","attribute","label","params","name","value","inputvalue","hasValue","reset","update","isActive","initvalue","isValid","readonlyvalue","formdata"],"sources":["../../../src/models/filters/FilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { IllegalStateException } from \"../../exceptions\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n */\nexport default class FilterModel extends BaseFilterModel {\n _attribute: AttributeType | null = null;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\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(\n param,\n data,\n {\n ...contributions,\n type: type,\n },\n this.modelOptions,\n );\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 * Indicates if the filter has a value.\n */\n hasValue(): boolean {\n return this.value !== null && this.value !== \"\";\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterModel {\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 * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute?.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute?.isValid || true;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.attribute.formdata ?? null;\n }\n}\n"],"mappings":";AACA,OAAOA,eAAe,MAAM,4BAA4B;AACxD,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,SAASC,qBAAqB,QAAQ,kBAAkB;AAIxD;AACA;AACA,eAAe,MAAMC,WAAW,SAASH,eAAe,
|
|
1
|
+
{"version":3,"file":"FilterModel.js","names":["BaseFilterModel","createAttribute","IllegalStateException","FilterModel","constructor","data","contributions","modelOptions","_defineProperty","_attribute","type","param","attribute","label","params","name","value","inputvalue","hasValue","reset","update","isActive","initvalue","isValid","readonlyvalue","formdata"],"sources":["../../../src/models/filters/FilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { IllegalStateException } from \"../../exceptions\";\n\nimport type { AttributeType, IFilter, ModelOptions } from \"../types\";\n\n/**\n */\nexport default class FilterModel extends BaseFilterModel implements IFilter {\n _attribute: AttributeType | null = null;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\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(\n param,\n data,\n {\n ...contributions,\n type: type,\n },\n this.modelOptions,\n );\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 * Indicates if the filter has a value.\n */\n hasValue(): boolean {\n return this.value !== null && this.value !== \"\";\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterModel {\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 * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute?.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute?.isValid || true;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.attribute.formdata ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import FilterModel from "../filters/FilterModel";
|
|
3
3
|
|
|
4
4
|
import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
|
|
5
|
-
import type { AttributeType } from "../types";
|
|
5
|
+
import type { AttributeType, IFilter } from "../types";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Range filter, for instance a date range filter or a number range filter
|
|
9
9
|
*/
|
|
10
|
-
export default class RangeFilterModel extends FilterModel {
|
|
10
|
+
export default class RangeFilterModel extends FilterModel implements IFilter {
|
|
11
11
|
/**
|
|
12
12
|
*/
|
|
13
13
|
update(attribute: AttributeType, value: string) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeFilterModel.js","names":["FilterModel","CompositeAttributeModel","RangeFilterModel","update","attribute","value","params","_context","_mapInstanceProperty","children","call","child","param","data","name"],"sources":["../../../src/models/filters/RangeFilterModel.js"],"sourcesContent":["// @flow\nimport FilterModel from \"../filters/FilterModel\";\n\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport type { AttributeType } from \"../types\";\n\n/**\n * Range filter, for instance a date range filter or a number range filter\n */\nexport default class RangeFilterModel extends FilterModel {\n /**\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute instanceof CompositeAttributeModel) {\n this.attribute.update(value, attribute);\n } else if (this.attribute !== null) {\n this.attribute.update(value);\n }\n }\n\n /**\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (this.attribute instanceof CompositeAttributeModel) {\n return this.attribute.children.map((child) => {\n const { param } = this.data[child.name];\n return {\n name: param,\n value: child.value,\n };\n });\n }\n\n return [];\n }\n}\n"],"mappings":";AACA,OAAOA,WAAW,MAAM,wBAAwB;AAEhD,OAAOC,uBAAuB,MAAM,uCAAuC;AAG3E;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASF,WAAW,
|
|
1
|
+
{"version":3,"file":"RangeFilterModel.js","names":["FilterModel","CompositeAttributeModel","RangeFilterModel","update","attribute","value","params","_context","_mapInstanceProperty","children","call","child","param","data","name"],"sources":["../../../src/models/filters/RangeFilterModel.js"],"sourcesContent":["// @flow\nimport FilterModel from \"../filters/FilterModel\";\n\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport type { AttributeType, IFilter } from \"../types\";\n\n/**\n * Range filter, for instance a date range filter or a number range filter\n */\nexport default class RangeFilterModel extends FilterModel implements IFilter {\n /**\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute instanceof CompositeAttributeModel) {\n this.attribute.update(value, attribute);\n } else if (this.attribute !== null) {\n this.attribute.update(value);\n }\n }\n\n /**\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (this.attribute instanceof CompositeAttributeModel) {\n return this.attribute.children.map((child) => {\n const { param } = this.data[child.name];\n return {\n name: param,\n value: child.value,\n };\n });\n }\n\n return [];\n }\n}\n"],"mappings":";AACA,OAAOA,WAAW,MAAM,wBAAwB;AAEhD,OAAOC,uBAAuB,MAAM,uCAAuC;AAG3E;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASF,WAAW,CAAoB;EAC3E;AACF;EACEG,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,IAAI,CAACD,SAAS,YAAYH,uBAAuB,EAAE;MACrD,IAAI,CAACG,SAAS,CAACD,MAAM,CAACE,KAAK,EAAED,SAAS,CAAC;IACzC,CAAC,MAAM,IAAI,IAAI,CAACA,SAAS,KAAK,IAAI,EAAE;MAClC,IAAI,CAACA,SAAS,CAACD,MAAM,CAACE,KAAK,CAAC;IAC9B;EACF;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAA4C;IACpD,IAAI,IAAI,CAACF,SAAS,YAAYH,uBAAuB,EAAE;MAAA,IAAAM,QAAA;MACrD,OAAOC,oBAAA,CAAAD,QAAA,OAAI,CAACH,SAAS,CAACK,QAAQ,EAAAC,IAAA,CAAAH,QAAA,EAAMI,KAAK,IAAK;QAC5C,MAAM;UAAEC;QAAM,CAAC,GAAG,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QACvC,OAAO;UACLA,IAAI,EAAEF,KAAK;UACXP,KAAK,EAAEM,KAAK,CAACN;QACf,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,OAAO,EAAE;EACX;AACF","ignoreList":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import type { AttributeType, ModelOptions } from "../types";
|
|
3
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
4
4
|
import FilterModel from "./FilterModel";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* StringFilterModel can handle string filters with multiple setting
|
|
8
8
|
*/
|
|
9
|
-
export default class StringFilterModel extends FilterModel {
|
|
9
|
+
export default class StringFilterModel extends FilterModel implements IFilter {
|
|
10
10
|
_isValid: boolean = true;
|
|
11
11
|
_value: string | null;
|
|
12
12
|
_inputvalue: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringFilterModel.js","names":["FilterModel","StringFilterModel","constructor","data","contributions","modelOptions","_defineProperty","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_mapInstanceProperty","split","call","val","_trimInstanceProperty","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","formdata"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, ModelOptions } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\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(): StringFilterModel {\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._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\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.shouldHandleFormat()) {\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 (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return {\n [this.param]: this.value,\n };\n }\n}\n"],"mappings":";;;AAGA,OAAOA,WAAW,MAAM,eAAe;;AAEvC;AACA;AACA;AACA,eAAe,MAAMC,iBAAiB,SAASD,WAAW,
|
|
1
|
+
{"version":3,"file":"StringFilterModel.js","names":["FilterModel","StringFilterModel","constructor","data","contributions","modelOptions","_defineProperty","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_mapInstanceProperty","split","call","val","_trimInstanceProperty","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","formdata"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, IFilter, ModelOptions } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel implements IFilter {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\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(): StringFilterModel {\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._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\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.shouldHandleFormat()) {\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 (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return {\n [this.param]: this.value,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import Href from "../href/Href";
|
|
|
9
9
|
import LinkCollection from "../links/LinkCollection";
|
|
10
10
|
import { INITIAL_FILTER } from "../../constants/LayoutHints";
|
|
11
11
|
import Parameter from "../parameter/Parameter";
|
|
12
|
-
|
|
12
|
+
import { HTTP_METHODS } from "../../constants";
|
|
13
13
|
/**
|
|
14
14
|
* Defines a Link. For instance below example of a link to the tab 'books'
|
|
15
15
|
* <br/>
|
|
@@ -28,7 +28,9 @@ class LinkModel extends BaseModel {
|
|
|
28
28
|
_defineProperty(this, "_isCacheable", void 0);
|
|
29
29
|
_defineProperty(this, "_icon", void 0);
|
|
30
30
|
_defineProperty(this, "_targetModel", void 0);
|
|
31
|
+
_defineProperty(this, "_method", void 0);
|
|
31
32
|
this.createHref(modelOptions);
|
|
33
|
+
this._method = HTTP_METHODS.GET;
|
|
32
34
|
this._isCacheable = false;
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -109,6 +111,20 @@ class LinkModel extends BaseModel {
|
|
|
109
111
|
this._href = href;
|
|
110
112
|
}
|
|
111
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Indicate how this link must be called, GET by default
|
|
116
|
+
*/
|
|
117
|
+
get method() {
|
|
118
|
+
return this._method;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Set http method for this link
|
|
123
|
+
*/
|
|
124
|
+
set method(method) {
|
|
125
|
+
this._method = method;
|
|
126
|
+
}
|
|
127
|
+
|
|
112
128
|
/**
|
|
113
129
|
* Getting the label of the link
|
|
114
130
|
*/
|
|
@@ -6,9 +6,10 @@ import BaseModel from "../base/BaseModel";
|
|
|
6
6
|
import Href from "../href/Href";
|
|
7
7
|
import LinkCollection from "../links/LinkCollection";
|
|
8
8
|
import { INITIAL_FILTER } from "../../constants/LayoutHints";
|
|
9
|
+
import Parameter from "../parameter/Parameter";
|
|
10
|
+
import { HTTP_METHODS } from "../../constants";
|
|
9
11
|
|
|
10
12
|
import type { ModelOptions, ModularUIModel } from "../types";
|
|
11
|
-
import Parameter from "../parameter/Parameter";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Defines a Link. For instance below example of a link to the tab 'books'
|
|
@@ -23,6 +24,7 @@ class LinkModel extends BaseModel {
|
|
|
23
24
|
_isCacheable: boolean;
|
|
24
25
|
_icon: string;
|
|
25
26
|
_targetModel: ?Class<ModularUIModel>;
|
|
27
|
+
_method: $Keys<typeof HTTP_METHODS>;
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* Create a Link
|
|
@@ -36,6 +38,7 @@ class LinkModel extends BaseModel {
|
|
|
36
38
|
|
|
37
39
|
this.createHref(modelOptions);
|
|
38
40
|
|
|
41
|
+
this._method = HTTP_METHODS.GET;
|
|
39
42
|
this._isCacheable = false;
|
|
40
43
|
}
|
|
41
44
|
|
|
@@ -121,6 +124,20 @@ class LinkModel extends BaseModel {
|
|
|
121
124
|
this._href = href;
|
|
122
125
|
}
|
|
123
126
|
|
|
127
|
+
/**
|
|
128
|
+
* Indicate how this link must be called, GET by default
|
|
129
|
+
*/
|
|
130
|
+
get method(): $Keys<typeof HTTP_METHODS> {
|
|
131
|
+
return this._method;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Set http method for this link
|
|
136
|
+
*/
|
|
137
|
+
set method(method: $Keys<typeof HTTP_METHODS>) {
|
|
138
|
+
this._method = method;
|
|
139
|
+
}
|
|
140
|
+
|
|
124
141
|
/**
|
|
125
142
|
* Getting the label of the link
|
|
126
143
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkModel.js","names":["has","ProcessStatusSettingsModel","BaseModel","Href","LinkCollection","INITIAL_FILTER","Parameter","LinkModel","constructor","data","contributions","modelOptions","_defineProperty","createHref","_isCacheable","create","name","href","label","resourcetype","handleInitialFilters","layouthint","_context","filters","_filterInstanceProperty","call","hint","_startsWithInstanceProperty","forEach","param","substr","length","p","fromString","value","push","_Object$keys","key","join","addParameter","group","getContribution","_href","links","components","isActive","link","_context2","icon","_icon","targetModel","_targetModel","isCacheable","filterName","hasProcessStatusSettings","processStatus","getData"],"sources":["../../../src/models/links/LinkModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport { INITIAL_FILTER } from \"../../constants/LayoutHints\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport Parameter from \"../parameter/Parameter\";\n\n/**\n * Defines a Link. For instance below example of a link to the tab 'books'\n * <br/>\n * \"Books\": {\n * \"href\": \"/books\",\n * \"profile\": \"/profiles/tab\"\n * }\n */\nclass LinkModel extends BaseModel {\n _href: Href;\n _isCacheable: boolean;\n _icon: string;\n _targetModel: ?Class<ModularUIModel>;\n\n /**\n * Create a Link\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this.createHref(modelOptions);\n\n this._isCacheable = false;\n }\n\n /**\n * Create a simple Link Model\n */\n static create(\n name: string,\n href: string | Href,\n label: string,\n modelOptions?: ModelOptions,\n ): LinkModel {\n const data = { name, href };\n const contributions = { label };\n return new LinkModel(data, contributions, modelOptions);\n }\n\n /**\n */\n createHref(modelOptions: ?ModelOptions) {\n const href = new Href(this.data.href, this.resourcetype, modelOptions);\n this.handleInitialFilters(href);\n\n this.href = href;\n }\n\n /**\n * Handle initial filter hints\n * @param href\n */\n handleInitialFilters(href: Href) {\n if (this.layouthint.has(INITIAL_FILTER)) {\n const filters: { [string]: Array<string> } = {};\n this.layouthint\n .filter((hint) => hint.startsWith(INITIAL_FILTER))\n .forEach((hint) => {\n const param = hint.substr(INITIAL_FILTER.length);\n const p = Parameter.fromString(param);\n\n if (p != null) {\n if (!filters[p.name]) {\n filters[p.name] = [];\n }\n\n if (p.value != null) {\n filters[p.name].push(p.value);\n }\n }\n });\n\n Object.keys(filters).forEach((key) => {\n const value = filters[key].join(\",\");\n href.addParameter(key, value);\n });\n }\n }\n\n /**\n * Getting link group\n */\n get group(): string {\n return this.getContribution(\"group\", this.data.group);\n }\n\n /**\n * Getting the key/name of this link\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Retrieve the href of the link\n */\n get href(): Href {\n return this._href;\n }\n\n /**\n * Set the href of the Link\n */\n set href(href: Href) {\n this._href = href;\n }\n\n /**\n * Getting the label of the link\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n * Getting the type of the link\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"\");\n }\n\n /**\n */\n get links(): LinkCollection {\n if (this.data.components) {\n return new LinkCollection(\n { components: this.data.components },\n { components: this.contributions.components },\n );\n }\n\n return new LinkCollection();\n }\n\n /**\n * Check if the href startswith the URI of the given href\n */\n isActive(link: ?LinkModel): boolean {\n if (link) {\n return link.href.startsWith(this.href);\n }\n\n return false;\n }\n\n /**\n * Setter for icon of LinkModel\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n\n /**\n * Retrieve icon of LinkModel\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n get targetModel(): ?Class<ModularUIModel> {\n return this._targetModel;\n }\n\n /**\n */\n set targetModel(targetModel: Class<ModularUIModel>) {\n this._targetModel = targetModel;\n }\n\n /**\n */\n get isCacheable(): boolean {\n return this._isCacheable;\n }\n\n /**\n */\n set isCacheable(isCacheable: boolean) {\n this._isCacheable = isCacheable;\n }\n\n /**\n */\n get filterName(): string {\n return this.data.filter.name;\n }\n\n /**\n */\n get hasProcessStatusSettings(): boolean {\n return (\n has(this.data, \"processStatus\") &&\n has(this.contributions, \"processStatus\")\n );\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.hasProcessStatusSettings) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processStatus\", {}),\n );\n }\n\n return null;\n }\n}\n\nexport default LinkModel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LinkModel.js","names":["has","ProcessStatusSettingsModel","BaseModel","Href","LinkCollection","INITIAL_FILTER","Parameter","HTTP_METHODS","LinkModel","constructor","data","contributions","modelOptions","_defineProperty","createHref","_method","GET","_isCacheable","create","name","href","label","resourcetype","handleInitialFilters","layouthint","_context","filters","_filterInstanceProperty","call","hint","_startsWithInstanceProperty","forEach","param","substr","length","p","fromString","value","push","_Object$keys","key","join","addParameter","group","getContribution","_href","method","links","components","isActive","link","_context2","icon","_icon","targetModel","_targetModel","isCacheable","filterName","hasProcessStatusSettings","processStatus","getData"],"sources":["../../../src/models/links/LinkModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport { INITIAL_FILTER } from \"../../constants/LayoutHints\";\nimport Parameter from \"../parameter/Parameter\";\nimport { HTTP_METHODS } from \"../../constants\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\n\n/**\n * Defines a Link. For instance below example of a link to the tab 'books'\n * <br/>\n * \"Books\": {\n * \"href\": \"/books\",\n * \"profile\": \"/profiles/tab\"\n * }\n */\nclass LinkModel extends BaseModel {\n _href: Href;\n _isCacheable: boolean;\n _icon: string;\n _targetModel: ?Class<ModularUIModel>;\n _method: $Keys<typeof HTTP_METHODS>;\n\n /**\n * Create a Link\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this.createHref(modelOptions);\n\n this._method = HTTP_METHODS.GET;\n this._isCacheable = false;\n }\n\n /**\n * Create a simple Link Model\n */\n static create(\n name: string,\n href: string | Href,\n label: string,\n modelOptions?: ModelOptions,\n ): LinkModel {\n const data = { name, href };\n const contributions = { label };\n return new LinkModel(data, contributions, modelOptions);\n }\n\n /**\n */\n createHref(modelOptions: ?ModelOptions) {\n const href = new Href(this.data.href, this.resourcetype, modelOptions);\n this.handleInitialFilters(href);\n\n this.href = href;\n }\n\n /**\n * Handle initial filter hints\n * @param href\n */\n handleInitialFilters(href: Href) {\n if (this.layouthint.has(INITIAL_FILTER)) {\n const filters: { [string]: Array<string> } = {};\n this.layouthint\n .filter((hint) => hint.startsWith(INITIAL_FILTER))\n .forEach((hint) => {\n const param = hint.substr(INITIAL_FILTER.length);\n const p = Parameter.fromString(param);\n\n if (p != null) {\n if (!filters[p.name]) {\n filters[p.name] = [];\n }\n\n if (p.value != null) {\n filters[p.name].push(p.value);\n }\n }\n });\n\n Object.keys(filters).forEach((key) => {\n const value = filters[key].join(\",\");\n href.addParameter(key, value);\n });\n }\n }\n\n /**\n * Getting link group\n */\n get group(): string {\n return this.getContribution(\"group\", this.data.group);\n }\n\n /**\n * Getting the key/name of this link\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Retrieve the href of the link\n */\n get href(): Href {\n return this._href;\n }\n\n /**\n * Set the href of the Link\n */\n set href(href: Href) {\n this._href = href;\n }\n\n /**\n * Indicate how this link must be called, GET by default\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set http method for this link\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method;\n }\n\n /**\n * Getting the label of the link\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n * Getting the type of the link\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"\");\n }\n\n /**\n */\n get links(): LinkCollection {\n if (this.data.components) {\n return new LinkCollection(\n { components: this.data.components },\n { components: this.contributions.components },\n );\n }\n\n return new LinkCollection();\n }\n\n /**\n * Check if the href startswith the URI of the given href\n */\n isActive(link: ?LinkModel): boolean {\n if (link) {\n return link.href.startsWith(this.href);\n }\n\n return false;\n }\n\n /**\n * Setter for icon of LinkModel\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n\n /**\n * Retrieve icon of LinkModel\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n get targetModel(): ?Class<ModularUIModel> {\n return this._targetModel;\n }\n\n /**\n */\n set targetModel(targetModel: Class<ModularUIModel>) {\n this._targetModel = targetModel;\n }\n\n /**\n */\n get isCacheable(): boolean {\n return this._isCacheable;\n }\n\n /**\n */\n set isCacheable(isCacheable: boolean) {\n this._isCacheable = isCacheable;\n }\n\n /**\n */\n get filterName(): string {\n return this.data.filter.name;\n }\n\n /**\n */\n get hasProcessStatusSettings(): boolean {\n return (\n has(this.data, \"processStatus\") &&\n has(this.contributions, \"processStatus\")\n );\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.hasProcessStatusSettings) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processStatus\", {}),\n );\n }\n\n return null;\n }\n}\n\nexport default LinkModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
SHOW_ONE_RESULT_AS_DETAIL,
|
|
21
21
|
} from "../../constants/LayoutHints";
|
|
22
22
|
|
|
23
|
-
import type { ModularUIModel,
|
|
23
|
+
import type { ModularUIModel, IFilter } from "../types";
|
|
24
24
|
import type LinkModel from "../links/LinkModel";
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -288,7 +288,7 @@ export default class ListModel extends ResourceModel {
|
|
|
288
288
|
/**
|
|
289
289
|
* Set filterCollection
|
|
290
290
|
*/
|
|
291
|
-
set filterCollection(filterCollection: FilterCollection | Array<
|
|
291
|
+
set filterCollection(filterCollection: FilterCollection | Array<IFilter>) {
|
|
292
292
|
if (Array.isArray(filterCollection)) {
|
|
293
293
|
this._filterCollection.collection = filterCollection;
|
|
294
294
|
} else {
|