@beinformed/ui 1.65.6 → 1.65.7

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +1 -0
  3. package/esm/hooks/useList.js +47 -3
  4. package/esm/hooks/useList.js.flow +74 -2
  5. package/esm/hooks/useList.js.map +1 -1
  6. package/esm/hooks/usePanel.js +6 -1
  7. package/esm/hooks/usePanel.js.flow +6 -4
  8. package/esm/hooks/usePanel.js.map +1 -1
  9. package/esm/models/filters/AssignmentFilterModel.js +1 -12
  10. package/esm/models/filters/AssignmentFilterModel.js.flow +6 -14
  11. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  12. package/esm/models/filters/BaseFilterModel.js +12 -0
  13. package/esm/models/filters/BaseFilterModel.js.flow +12 -0
  14. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  15. package/esm/models/filters/ConceptIndexFilterModel.js.flow +5 -2
  16. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  17. package/esm/models/filters/FilterCollection.js +26 -8
  18. package/esm/models/filters/FilterCollection.js.flow +23 -6
  19. package/esm/models/filters/FilterCollection.js.map +1 -1
  20. package/esm/models/filters/FilterModel.js.flow +2 -2
  21. package/esm/models/filters/FilterModel.js.map +1 -1
  22. package/esm/models/filters/RangeFilterModel.js.flow +2 -2
  23. package/esm/models/filters/RangeFilterModel.js.map +1 -1
  24. package/esm/models/filters/StringFilterModel.js.flow +2 -2
  25. package/esm/models/filters/StringFilterModel.js.map +1 -1
  26. package/esm/models/list/ListModel.js.flow +2 -2
  27. package/esm/models/list/ListModel.js.map +1 -1
  28. package/esm/models/search/CaseSearchModel.js.flow +2 -2
  29. package/esm/models/search/CaseSearchModel.js.map +1 -1
  30. package/esm/models/types.js +1 -1
  31. package/esm/models/types.js.flow +28 -10
  32. package/esm/models/types.js.map +1 -1
  33. package/esm/react-server/serverUtil.js +2 -2
  34. package/esm/react-server/serverUtil.js.flow +2 -2
  35. package/esm/react-server/serverUtil.js.map +1 -1
  36. package/lib/hooks/useList.js +47 -3
  37. package/lib/hooks/useList.js.map +1 -1
  38. package/lib/hooks/usePanel.js +6 -1
  39. package/lib/hooks/usePanel.js.map +1 -1
  40. package/lib/models/filters/AssignmentFilterModel.js +0 -12
  41. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  42. package/lib/models/filters/BaseFilterModel.js +12 -0
  43. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  44. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  45. package/lib/models/filters/FilterCollection.js +26 -8
  46. package/lib/models/filters/FilterCollection.js.map +1 -1
  47. package/lib/models/filters/FilterModel.js.map +1 -1
  48. package/lib/models/filters/RangeFilterModel.js.map +1 -1
  49. package/lib/models/filters/StringFilterModel.js.map +1 -1
  50. package/lib/models/list/ListModel.js.map +1 -1
  51. package/lib/models/search/CaseSearchModel.js.map +1 -1
  52. package/lib/models/types.js +2 -0
  53. package/lib/models/types.js.map +1 -1
  54. package/lib/react-server/serverUtil.js +5 -5
  55. package/lib/react-server/serverUtil.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/hooks/__tests__/UseModularUIModel.spec.js +1 -0
  58. package/src/hooks/useList.js +74 -2
  59. package/src/hooks/usePanel.js +6 -4
  60. package/src/models/filters/AssignmentFilterModel.js +6 -14
  61. package/src/models/filters/BaseFilterModel.js +12 -0
  62. package/src/models/filters/ConceptIndexFilterModel.js +5 -2
  63. package/src/models/filters/FilterCollection.js +23 -6
  64. package/src/models/filters/FilterModel.js +2 -2
  65. package/src/models/filters/RangeFilterModel.js +2 -2
  66. package/src/models/filters/StringFilterModel.js +2 -2
  67. package/src/models/list/ListModel.js +2 -2
  68. package/src/models/search/CaseSearchModel.js +2 -2
  69. package/src/models/types.js +28 -10
  70. package/src/react-server/serverUtil.js +2 -2
@@ -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, FilterType, ModelOptions } from "../types";
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<FilterType> {
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
- ): FilterType {
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 {FilterType#reset()}
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): FilterType | null {
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
- return filter.attribute?.key === key;
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":"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","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":"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","ignoreList":[]}
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,CAAC;EACxD;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
+ {"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":"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","ignoreList":[]}
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":[]}
@@ -20,7 +20,7 @@ import {
20
20
  SHOW_ONE_RESULT_AS_DETAIL,
21
21
  } from "../../constants/LayoutHints";
22
22
 
23
- import type { ModularUIModel, FilterType } from "../types";
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<FilterType>) {
291
+ set filterCollection(filterCollection: FilterCollection | Array<IFilter>) {
292
292
  if (Array.isArray(filterCollection)) {
293
293
  this._filterCollection.collection = filterCollection;
294
294
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"ListModel.js","names":["ModularUIResponse","ListItemCollection","ListDetailModel","ActionCollection","FilterCollection","GroupingModel","ListHeaderModel","ListHref","ListItemModel","PagingModel","ResourceModel","SortingModel","HTTP_METHODS","PARAMETER_TYPES","CASEVIEW_LINK","HIDE_WHEN_EMPTY","SHOW_ONE_RESULT_AS_DETAIL","ListModel","constructor","args","_defineProperty","type","modelName","isApplicableModel","data","_context","resourceType","contributions","resourcetype","_endsWithInstanceProperty","call","_includesInstanceProperty","getInitialChildModelLinks","layouthint","has","listItemCollection","length","_context2","_mapInstanceProperty","listItem","listDetailLink","selflink","targetModel","setChildModels","models","detail","_findInstanceProperty","childModel","requestMethod","mustPost","filterCollection","some","filter","parameterType","BODY","hasValue","POST","GET","label","introtext","content","text","message","Array","isArray","texts","_listItemCollection","createFromList","_detail","_context3","listitemHref","selfhref","listitem","equals","grouping","_grouping","setGrouping","dynamicschema","contexts","modelOptions","hasGrouping","hasGroups","hasResults","hasItems","shouldHide","actionCollection","isEmpty","hasActiveFilters","getListItemById","id","_context4","decodedId","decodeURIComponent","toString","result","getListItemByHref","href","_context5","paging","_paging","setPaging","sorting","_sorting","setSorting","getSortingLabels","_filterCollection","setFilters","collection","_filterInstanceProperty","listkey","key","isFiltered","_actionCollection","setActionCollection","actions","hasList","getSelfHref","selfLink","links","getLinkByKey","headers","_headers","setHeaders","tempHeaders","results","_Object$keys","forEach","attributes","attribute","listHeader","exists","tempHeader","push","sortingLabels","attributeKey","getActionsByType","actionType","getAdditionalDetailLabel","resultTypes","resultType","_context6","link","_links","panel","Function","bind","panelLink","formdata","_JSON$stringify"],"sources":["../../../src/models/list/ListModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport ListItemCollection from \"../list/ListItemCollection\";\nimport ListDetailModel from \"../list/ListDetailModel\";\nimport ActionCollection from \"../actions/ActionCollection\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport GroupingModel from \"../grouping/GroupingModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\nimport ListHref from \"../href/ListHref\";\nimport ListItemModel from \"../list/ListItemModel\";\nimport PagingModel from \"../paging/PagingModel\";\nimport ResourceModel from \"../base/ResourceModel\";\nimport SortingModel from \"../sorting/SortingModel\";\nimport { HTTP_METHODS, PARAMETER_TYPES } from \"../../constants\";\n\nimport {\n CASEVIEW_LINK,\n HIDE_WHEN_EMPTY,\n SHOW_ONE_RESULT_AS_DETAIL,\n} from \"../../constants/LayoutHints\";\n\nimport type { ModularUIModel, FilterType } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Defines a list object\n */\nexport default class ListModel extends ResourceModel {\n _detail: ?ListDetailModel = null;\n _headers: Array<ListHeaderModel>;\n _paging: PagingModel;\n _filterCollection: FilterCollection;\n _sorting: SortingModel;\n _actionCollection: ActionCollection;\n _listItemCollection: ListItemCollection;\n _grouping: GroupingModel;\n\n /**\n */\n get type(): string {\n return \"List\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const resourceType = data.contributions?.resourcetype ?? \"\";\n return (\n resourceType.endsWith(\"List\") ||\n resourceType.endsWith(\"ListPanel\") ||\n resourceType.endsWith(\"RelatedDataStorePanel\") ||\n resourceType.endsWith(\"RelatedDatastorePanel\") ||\n [\n \"list-related-cases\",\n \"RecordPanel\",\n \"EventHistoryPanel\",\n \"NotePanel\",\n \"AppointmentPanel\",\n \"DocumentPanel\",\n \"AssignmentPanel\",\n ].includes(resourceType)\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (\n this.layouthint.has(SHOW_ONE_RESULT_AS_DETAIL) &&\n this.listItemCollection.length === 1\n ) {\n return this.listItemCollection.map((listItem) => {\n const listDetailLink = listItem.selflink;\n listDetailLink.targetModel = ListDetailModel;\n return listDetailLink;\n });\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.detail = models.find((childModel) => childModel.type === \"ListDetail\");\n }\n\n /**\n */\n get requestMethod(): $Keys<typeof HTTP_METHODS> {\n const mustPost = this.filterCollection.some(\n (filter) =>\n filter.parameterType === PARAMETER_TYPES.BODY && filter.hasValue(),\n );\n return mustPost ? HTTP_METHODS.POST : HTTP_METHODS.GET;\n }\n\n /**\n * Getting the label of the list\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Getting the introduction text\n */\n get introtext(): string {\n if (this.data.content) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n * Getting the results\n */\n get listItemCollection(): ListItemCollection {\n if (!this._listItemCollection) {\n this._listItemCollection = ListItemCollection.createFromList(this);\n }\n\n return this._listItemCollection;\n }\n\n /**\n * Set results\n */\n set listItemCollection(listItemCollection: ListItemCollection) {\n this._listItemCollection = listItemCollection;\n }\n\n /**\n * Getting the detail\n */\n get detail(): ?ListDetailModel {\n return this._detail;\n }\n\n /**\n * Add detail model to the {ListModel}\n */\n set detail(detail: ?ModularUIModel) {\n if (detail instanceof ListDetailModel) {\n const listitemHref = detail.selfhref;\n\n const listitem = this.listItemCollection.find((listItem) =>\n listItem.selfhref.equals(listitemHref),\n );\n\n if (listitem) {\n detail.listitem = listitem;\n }\n\n this._detail = detail;\n }\n }\n\n /**\n * Retrieve grouping information\n */\n get grouping(): GroupingModel {\n if (!this._grouping) {\n this._grouping = this.setGrouping();\n }\n\n return this._grouping;\n }\n\n /**\n */\n setGrouping(): GroupingModel {\n return new GroupingModel(\n { ...this.data.grouping, dynamicschema: this.data.dynamicschema },\n this.contributions.contexts,\n this.modelOptions,\n );\n }\n\n /**\n */\n hasGrouping(): boolean {\n return this.grouping.hasGroups();\n }\n\n /**\n * Check if list has results\n */\n hasResults(): boolean {\n return this.listItemCollection.hasItems;\n }\n\n /**\n */\n get shouldHide(): boolean {\n return (\n this.layouthint.has(HIDE_WHEN_EMPTY) &&\n !this.hasResults() &&\n this.actionCollection.isEmpty &&\n !this.filterCollection.hasActiveFilters()\n );\n }\n\n /**\n * Get list item by ID\n */\n getListItemById(id: string | number): ListItemModel | null {\n const decodedId = decodeURIComponent(id.toString());\n return this.listItemCollection.find(\n (result) => result.id.toString() === decodedId,\n );\n }\n\n /**\n * Get list item by Href\n */\n getListItemByHref(href: ListHref): ListItemModel | null {\n return this.listItemCollection.find((result) =>\n result.selfhref.equals(href),\n );\n }\n\n /**\n * Getting paging information\n */\n get paging(): PagingModel {\n if (!this._paging) {\n this._paging = this.setPaging();\n }\n return this._paging;\n }\n\n /**\n */\n setPaging(): PagingModel {\n return new PagingModel(this.data.paging, this.contributions.paging);\n }\n\n /**\n * Getting sorting information\n */\n get sorting(): SortingModel {\n if (!this._sorting) {\n this._sorting = this.setSorting();\n }\n\n return this._sorting;\n }\n\n /**\n */\n setSorting(): SortingModel {\n return new SortingModel(\n this.contributions,\n this.getSortingLabels(),\n this.grouping,\n this.data.sorting,\n );\n }\n\n /**\n * Getting the filters\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = this.setFilters();\n }\n\n return this._filterCollection;\n }\n\n /**\n * Set filterCollection\n */\n set filterCollection(filterCollection: FilterCollection | Array<FilterType>) {\n if (Array.isArray(filterCollection)) {\n this._filterCollection.collection = filterCollection;\n } else {\n this._filterCollection = filterCollection;\n }\n }\n\n /**\n */\n setFilters(): FilterCollection {\n return new FilterCollection(\n this.data.filter,\n {\n listkey: this.key,\n filter: this.contributions.filter,\n contexts: this.contributions.contexts,\n dynamicschema: this.data.dynamicschema,\n },\n this.modelOptions,\n );\n }\n\n /**\n * Indicates if list results are filtered\n */\n isFiltered(): boolean {\n return this.filterCollection.hasActiveFilters();\n }\n\n /**\n * Getting actions\n */\n get actionCollection(): ActionCollection {\n if (!this._actionCollection) {\n this._actionCollection = this.setActionCollection();\n }\n return this._actionCollection;\n }\n\n /**\n */\n setActionCollection(): ActionCollection {\n return new ActionCollection(\n this.data.actions,\n this.contributions.actions,\n this.modelOptions,\n );\n }\n\n /**\n * Contains this model list data\n */\n hasList(): boolean {\n return this.key != null;\n }\n\n /**\n * Sets self href from links collection\n */\n getSelfHref(): ListHref {\n const selfLink = this.links ? this.links.getLinkByKey(\"self\") : null;\n\n if (selfLink !== null) {\n return new ListHref(selfLink.href, this);\n }\n\n return new ListHref();\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): ListHref {\n return this.getSelfHref();\n }\n\n /**\n * Getting the headers of this list\n */\n get headers(): Array<ListHeaderModel> {\n if (!this._headers) {\n this._headers = this.setHeaders();\n }\n\n return this._headers;\n }\n\n /**\n * Set initial headers of list\n */\n setHeaders(): Array<ListHeaderModel> {\n const tempHeaders = [];\n\n if (this.contributions.results) {\n const { results } = this.contributions;\n\n Object.keys(results).forEach((key) => {\n results[key].attributes.forEach((attribute) => {\n const listHeader = new ListHeaderModel(attribute, this.sorting);\n\n const exists = tempHeaders.some((tempHeader) =>\n tempHeader.equals(listHeader),\n );\n\n if (!exists && !listHeader.layouthint.has(CASEVIEW_LINK)) {\n tempHeaders.push(listHeader);\n }\n });\n });\n }\n\n return tempHeaders;\n }\n\n /**\n */\n getSortingLabels(): { [string]: string } {\n const sortingLabels: { [string]: string } = {};\n\n if (this.contributions.results) {\n const { results } = this.contributions;\n Object.keys(results).forEach((key) => {\n results[key].attributes.forEach((attribute) => {\n const attributeKey = Object.keys(attribute)[0];\n sortingLabels[attributeKey] = attribute[attributeKey].label;\n });\n });\n }\n\n return sortingLabels;\n }\n\n /**\n * Retrieve all actions by type\n */\n getActionsByType(actionType: string): ActionCollection {\n return this.actionCollection.getActionsByType(actionType);\n }\n\n /**\n * Retrieves the label of the first additional detail link by resource type\n */\n getAdditionalDetailLabel(resourceType: string): string | null {\n const resultTypes = Object.keys(this.contributions.results);\n\n for (const resultType of resultTypes) {\n const link = this.contributions.results[resultType]._links?.panel?.find(\n (panelLink) => panelLink.resourcetype === resourceType,\n );\n if (link) {\n return link.label;\n }\n }\n\n return null;\n }\n\n /**\n */\n get formdata(): string {\n return JSON.stringify(this.filterCollection.formdata);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListModel.js","names":["ModularUIResponse","ListItemCollection","ListDetailModel","ActionCollection","FilterCollection","GroupingModel","ListHeaderModel","ListHref","ListItemModel","PagingModel","ResourceModel","SortingModel","HTTP_METHODS","PARAMETER_TYPES","CASEVIEW_LINK","HIDE_WHEN_EMPTY","SHOW_ONE_RESULT_AS_DETAIL","ListModel","constructor","args","_defineProperty","type","modelName","isApplicableModel","data","_context","resourceType","contributions","resourcetype","_endsWithInstanceProperty","call","_includesInstanceProperty","getInitialChildModelLinks","layouthint","has","listItemCollection","length","_context2","_mapInstanceProperty","listItem","listDetailLink","selflink","targetModel","setChildModels","models","detail","_findInstanceProperty","childModel","requestMethod","mustPost","filterCollection","some","filter","parameterType","BODY","hasValue","POST","GET","label","introtext","content","text","message","Array","isArray","texts","_listItemCollection","createFromList","_detail","_context3","listitemHref","selfhref","listitem","equals","grouping","_grouping","setGrouping","dynamicschema","contexts","modelOptions","hasGrouping","hasGroups","hasResults","hasItems","shouldHide","actionCollection","isEmpty","hasActiveFilters","getListItemById","id","_context4","decodedId","decodeURIComponent","toString","result","getListItemByHref","href","_context5","paging","_paging","setPaging","sorting","_sorting","setSorting","getSortingLabels","_filterCollection","setFilters","collection","_filterInstanceProperty","listkey","key","isFiltered","_actionCollection","setActionCollection","actions","hasList","getSelfHref","selfLink","links","getLinkByKey","headers","_headers","setHeaders","tempHeaders","results","_Object$keys","forEach","attributes","attribute","listHeader","exists","tempHeader","push","sortingLabels","attributeKey","getActionsByType","actionType","getAdditionalDetailLabel","resultTypes","resultType","_context6","link","_links","panel","Function","bind","panelLink","formdata","_JSON$stringify"],"sources":["../../../src/models/list/ListModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport ListItemCollection from \"../list/ListItemCollection\";\nimport ListDetailModel from \"../list/ListDetailModel\";\nimport ActionCollection from \"../actions/ActionCollection\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport GroupingModel from \"../grouping/GroupingModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\nimport ListHref from \"../href/ListHref\";\nimport ListItemModel from \"../list/ListItemModel\";\nimport PagingModel from \"../paging/PagingModel\";\nimport ResourceModel from \"../base/ResourceModel\";\nimport SortingModel from \"../sorting/SortingModel\";\nimport { HTTP_METHODS, PARAMETER_TYPES } from \"../../constants\";\n\nimport {\n CASEVIEW_LINK,\n HIDE_WHEN_EMPTY,\n SHOW_ONE_RESULT_AS_DETAIL,\n} from \"../../constants/LayoutHints\";\n\nimport type { ModularUIModel, IFilter } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Defines a list object\n */\nexport default class ListModel extends ResourceModel {\n _detail: ?ListDetailModel = null;\n _headers: Array<ListHeaderModel>;\n _paging: PagingModel;\n _filterCollection: FilterCollection;\n _sorting: SortingModel;\n _actionCollection: ActionCollection;\n _listItemCollection: ListItemCollection;\n _grouping: GroupingModel;\n\n /**\n */\n get type(): string {\n return \"List\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const resourceType = data.contributions?.resourcetype ?? \"\";\n return (\n resourceType.endsWith(\"List\") ||\n resourceType.endsWith(\"ListPanel\") ||\n resourceType.endsWith(\"RelatedDataStorePanel\") ||\n resourceType.endsWith(\"RelatedDatastorePanel\") ||\n [\n \"list-related-cases\",\n \"RecordPanel\",\n \"EventHistoryPanel\",\n \"NotePanel\",\n \"AppointmentPanel\",\n \"DocumentPanel\",\n \"AssignmentPanel\",\n ].includes(resourceType)\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (\n this.layouthint.has(SHOW_ONE_RESULT_AS_DETAIL) &&\n this.listItemCollection.length === 1\n ) {\n return this.listItemCollection.map((listItem) => {\n const listDetailLink = listItem.selflink;\n listDetailLink.targetModel = ListDetailModel;\n return listDetailLink;\n });\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.detail = models.find((childModel) => childModel.type === \"ListDetail\");\n }\n\n /**\n */\n get requestMethod(): $Keys<typeof HTTP_METHODS> {\n const mustPost = this.filterCollection.some(\n (filter) =>\n filter.parameterType === PARAMETER_TYPES.BODY && filter.hasValue(),\n );\n return mustPost ? HTTP_METHODS.POST : HTTP_METHODS.GET;\n }\n\n /**\n * Getting the label of the list\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Getting the introduction text\n */\n get introtext(): string {\n if (this.data.content) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n * Getting the results\n */\n get listItemCollection(): ListItemCollection {\n if (!this._listItemCollection) {\n this._listItemCollection = ListItemCollection.createFromList(this);\n }\n\n return this._listItemCollection;\n }\n\n /**\n * Set results\n */\n set listItemCollection(listItemCollection: ListItemCollection) {\n this._listItemCollection = listItemCollection;\n }\n\n /**\n * Getting the detail\n */\n get detail(): ?ListDetailModel {\n return this._detail;\n }\n\n /**\n * Add detail model to the {ListModel}\n */\n set detail(detail: ?ModularUIModel) {\n if (detail instanceof ListDetailModel) {\n const listitemHref = detail.selfhref;\n\n const listitem = this.listItemCollection.find((listItem) =>\n listItem.selfhref.equals(listitemHref),\n );\n\n if (listitem) {\n detail.listitem = listitem;\n }\n\n this._detail = detail;\n }\n }\n\n /**\n * Retrieve grouping information\n */\n get grouping(): GroupingModel {\n if (!this._grouping) {\n this._grouping = this.setGrouping();\n }\n\n return this._grouping;\n }\n\n /**\n */\n setGrouping(): GroupingModel {\n return new GroupingModel(\n { ...this.data.grouping, dynamicschema: this.data.dynamicschema },\n this.contributions.contexts,\n this.modelOptions,\n );\n }\n\n /**\n */\n hasGrouping(): boolean {\n return this.grouping.hasGroups();\n }\n\n /**\n * Check if list has results\n */\n hasResults(): boolean {\n return this.listItemCollection.hasItems;\n }\n\n /**\n */\n get shouldHide(): boolean {\n return (\n this.layouthint.has(HIDE_WHEN_EMPTY) &&\n !this.hasResults() &&\n this.actionCollection.isEmpty &&\n !this.filterCollection.hasActiveFilters()\n );\n }\n\n /**\n * Get list item by ID\n */\n getListItemById(id: string | number): ListItemModel | null {\n const decodedId = decodeURIComponent(id.toString());\n return this.listItemCollection.find(\n (result) => result.id.toString() === decodedId,\n );\n }\n\n /**\n * Get list item by Href\n */\n getListItemByHref(href: ListHref): ListItemModel | null {\n return this.listItemCollection.find((result) =>\n result.selfhref.equals(href),\n );\n }\n\n /**\n * Getting paging information\n */\n get paging(): PagingModel {\n if (!this._paging) {\n this._paging = this.setPaging();\n }\n return this._paging;\n }\n\n /**\n */\n setPaging(): PagingModel {\n return new PagingModel(this.data.paging, this.contributions.paging);\n }\n\n /**\n * Getting sorting information\n */\n get sorting(): SortingModel {\n if (!this._sorting) {\n this._sorting = this.setSorting();\n }\n\n return this._sorting;\n }\n\n /**\n */\n setSorting(): SortingModel {\n return new SortingModel(\n this.contributions,\n this.getSortingLabels(),\n this.grouping,\n this.data.sorting,\n );\n }\n\n /**\n * Getting the filters\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = this.setFilters();\n }\n\n return this._filterCollection;\n }\n\n /**\n * Set filterCollection\n */\n set filterCollection(filterCollection: FilterCollection | Array<IFilter>) {\n if (Array.isArray(filterCollection)) {\n this._filterCollection.collection = filterCollection;\n } else {\n this._filterCollection = filterCollection;\n }\n }\n\n /**\n */\n setFilters(): FilterCollection {\n return new FilterCollection(\n this.data.filter,\n {\n listkey: this.key,\n filter: this.contributions.filter,\n contexts: this.contributions.contexts,\n dynamicschema: this.data.dynamicschema,\n },\n this.modelOptions,\n );\n }\n\n /**\n * Indicates if list results are filtered\n */\n isFiltered(): boolean {\n return this.filterCollection.hasActiveFilters();\n }\n\n /**\n * Getting actions\n */\n get actionCollection(): ActionCollection {\n if (!this._actionCollection) {\n this._actionCollection = this.setActionCollection();\n }\n return this._actionCollection;\n }\n\n /**\n */\n setActionCollection(): ActionCollection {\n return new ActionCollection(\n this.data.actions,\n this.contributions.actions,\n this.modelOptions,\n );\n }\n\n /**\n * Contains this model list data\n */\n hasList(): boolean {\n return this.key != null;\n }\n\n /**\n * Sets self href from links collection\n */\n getSelfHref(): ListHref {\n const selfLink = this.links ? this.links.getLinkByKey(\"self\") : null;\n\n if (selfLink !== null) {\n return new ListHref(selfLink.href, this);\n }\n\n return new ListHref();\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): ListHref {\n return this.getSelfHref();\n }\n\n /**\n * Getting the headers of this list\n */\n get headers(): Array<ListHeaderModel> {\n if (!this._headers) {\n this._headers = this.setHeaders();\n }\n\n return this._headers;\n }\n\n /**\n * Set initial headers of list\n */\n setHeaders(): Array<ListHeaderModel> {\n const tempHeaders = [];\n\n if (this.contributions.results) {\n const { results } = this.contributions;\n\n Object.keys(results).forEach((key) => {\n results[key].attributes.forEach((attribute) => {\n const listHeader = new ListHeaderModel(attribute, this.sorting);\n\n const exists = tempHeaders.some((tempHeader) =>\n tempHeader.equals(listHeader),\n );\n\n if (!exists && !listHeader.layouthint.has(CASEVIEW_LINK)) {\n tempHeaders.push(listHeader);\n }\n });\n });\n }\n\n return tempHeaders;\n }\n\n /**\n */\n getSortingLabels(): { [string]: string } {\n const sortingLabels: { [string]: string } = {};\n\n if (this.contributions.results) {\n const { results } = this.contributions;\n Object.keys(results).forEach((key) => {\n results[key].attributes.forEach((attribute) => {\n const attributeKey = Object.keys(attribute)[0];\n sortingLabels[attributeKey] = attribute[attributeKey].label;\n });\n });\n }\n\n return sortingLabels;\n }\n\n /**\n * Retrieve all actions by type\n */\n getActionsByType(actionType: string): ActionCollection {\n return this.actionCollection.getActionsByType(actionType);\n }\n\n /**\n * Retrieves the label of the first additional detail link by resource type\n */\n getAdditionalDetailLabel(resourceType: string): string | null {\n const resultTypes = Object.keys(this.contributions.results);\n\n for (const resultType of resultTypes) {\n const link = this.contributions.results[resultType]._links?.panel?.find(\n (panelLink) => panelLink.resourcetype === resourceType,\n );\n if (link) {\n return link.label;\n }\n }\n\n return null;\n }\n\n /**\n */\n get formdata(): string {\n return JSON.stringify(this.filterCollection.formdata);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
  import ListModel from "../list/ListModel";
3
3
 
4
4
  import type { ModularUIResponse } from "../../modularui";
5
- import type { FilterType } from "../types";
5
+ import type { IFilter } from "../types";
6
6
 
7
7
  /**
8
8
  * Case search model
@@ -32,7 +32,7 @@ export default class CaseSearchModel extends ListModel {
32
32
  /**
33
33
  * Retrieve quick search filters
34
34
  */
35
- getQuickSearchFilters(): Array<FilterType> {
35
+ getQuickSearchFilters(): Array<IFilter> {
36
36
  return this.filterCollection
37
37
  ? this.filterCollection.filter((filter) => filter.isQuickSearch())
38
38
  : [];
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSearchModel.js","names":["ListModel","CaseSearchModel","type","modelName","isApplicableModel","data","contributions","resourcetype","getQuickSearchFilters","_context","filterCollection","_filterInstanceProperty","call","filter","isQuickSearch","hasQuickSearchFilters","length"],"sources":["../../../src/models/search/CaseSearchModel.js"],"sourcesContent":["// @flow\nimport ListModel from \"../list/ListModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { FilterType } from \"../types\";\n\n/**\n * Case search model\n */\nexport default class CaseSearchModel extends ListModel {\n /**\n */\n get type(): string {\n return \"CaseSearch\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"CaseSearchModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"CaseSearch\"\n );\n }\n\n /**\n * Retrieve quick search filters\n */\n getQuickSearchFilters(): Array<FilterType> {\n return this.filterCollection\n ? this.filterCollection.filter((filter) => filter.isQuickSearch())\n : [];\n }\n\n /**\n */\n hasQuickSearchFilters(): boolean {\n return this.getQuickSearchFilters().length > 0;\n }\n}\n"],"mappings":";AACA,OAAOA,SAAS,MAAM,mBAAmB;AAKzC;AACA;AACA;AACA,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EACrD;AACF;EACE,IAAIE,IAAIA,CAAA,EAAW;IACjB,OAAO,YAAY;EACrB;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,iBAAiB;EAC1B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACC,aAAa,CAACC,YAAY,IAC/BF,IAAI,CAACC,aAAa,CAACC,YAAY,KAAK,YAAY;EAEpD;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAAA,EAAsB;IAAA,IAAAC,QAAA;IACzC,OAAO,IAAI,CAACC,gBAAgB,GACxBC,uBAAA,CAAAF,QAAA,OAAI,CAACC,gBAAgB,EAAAE,IAAA,CAAAH,QAAA,EAASI,MAAM,IAAKA,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAChE,EAAE;EACR;;EAEA;AACF;EACEC,qBAAqBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAACP,qBAAqB,CAAC,CAAC,CAACQ,MAAM,GAAG,CAAC;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"CaseSearchModel.js","names":["ListModel","CaseSearchModel","type","modelName","isApplicableModel","data","contributions","resourcetype","getQuickSearchFilters","_context","filterCollection","_filterInstanceProperty","call","filter","isQuickSearch","hasQuickSearchFilters","length"],"sources":["../../../src/models/search/CaseSearchModel.js"],"sourcesContent":["// @flow\nimport ListModel from \"../list/ListModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { IFilter } from \"../types\";\n\n/**\n * Case search model\n */\nexport default class CaseSearchModel extends ListModel {\n /**\n */\n get type(): string {\n return \"CaseSearch\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"CaseSearchModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"CaseSearch\"\n );\n }\n\n /**\n * Retrieve quick search filters\n */\n getQuickSearchFilters(): Array<IFilter> {\n return this.filterCollection\n ? this.filterCollection.filter((filter) => filter.isQuickSearch())\n : [];\n }\n\n /**\n */\n hasQuickSearchFilters(): boolean {\n return this.getQuickSearchFilters().length > 0;\n }\n}\n"],"mappings":";AACA,OAAOA,SAAS,MAAM,mBAAmB;AAKzC;AACA;AACA;AACA,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EACrD;AACF;EACE,IAAIE,IAAIA,CAAA,EAAW;IACjB,OAAO,YAAY;EACrB;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,iBAAiB;EAC1B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACC,aAAa,CAACC,YAAY,IAC/BF,IAAI,CAACC,aAAa,CAACC,YAAY,KAAK,YAAY;EAEpD;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAAA,EAAmB;IAAA,IAAAC,QAAA;IACtC,OAAO,IAAI,CAACC,gBAAgB,GACxBC,uBAAA,CAAAF,QAAA,OAAI,CAACC,gBAAgB,EAAAE,IAAA,CAAAH,QAAA,EAASI,MAAM,IAAKA,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAChE,EAAE;EACR;;EAEA;AACF;EACEC,qBAAqBA,CAAA,EAAY;IAC/B,OAAO,IAAI,CAACP,qBAAqB,CAAC,CAAC,CAACQ,MAAM,GAAG,CAAC;EAChD;AACF","ignoreList":[]}
@@ -1,2 +1,2 @@
1
-
1
+ import { PARAMETER_TYPES } from "../constants";
2
2
  //# sourceMappingURL=types.js.map
@@ -25,10 +25,6 @@ import type SectionModel from "./content/SectionModel";
25
25
  import type ContentTOCModel from "./content/ContentTOCModel";
26
26
  import type ContentTypeModel from "./content/ContentTypeModel";
27
27
  import type DetailModel from "./detail/DetailModel";
28
- import type AssignmentFilterModel from "./filters/AssignmentFilterModel";
29
- import type FilterModel from "./filters/FilterModel";
30
- import type RangeFilterModel from "./filters/RangeFilterModel";
31
- import type ConceptIndexFilterModel from "./filters/ConceptIndexFilterModel";
32
28
  import type FormModel from "./form/FormModel";
33
29
  import type ListDetailModel from "./list/ListDetailModel";
34
30
  import type ListModel from "./list/ListModel";
@@ -45,6 +41,7 @@ import type AttributeCollection from "./attributes/AttributeCollection";
45
41
  import type AttributeModel from "./attributes/AttributeModel";
46
42
  import type LayoutHintCollection from "./layouthint/LayoutHintCollection";
47
43
  import type ErrorResponse from "./error/ErrorResponse";
44
+ import { PARAMETER_TYPES } from "../constants";
48
45
 
49
46
  export type ModularUIModel =
50
47
  | ApplicationModel
@@ -90,12 +87,6 @@ export type RangeChildAttributeType =
90
87
  | NumberAttributeModel
91
88
  | DatetimeAttributeModel;
92
89
 
93
- export type FilterType =
94
- | AssignmentFilterModel
95
- | FilterModel
96
- | RangeFilterModel
97
- | ConceptIndexFilterModel;
98
-
99
90
  export type FormErrorAnchor = {
100
91
  id: string,
101
92
  properties?: {
@@ -135,6 +126,33 @@ export type textfragmentJSON = {
135
126
  type: string,
136
127
  };
137
128
 
129
+ export interface IFilter {
130
+ +type: string;
131
+ +parameterType: $Values<typeof PARAMETER_TYPES>;
132
+ +isMultiple: boolean;
133
+ context: Object;
134
+ +contextid: string;
135
+ +contextLabel: string;
136
+ listkey: string;
137
+ +label: string;
138
+ +key: string;
139
+ +name: string;
140
+ +param: string;
141
+ +params: Array<{ name: string, value: ?string }>;
142
+ isQuickSearch(): boolean;
143
+ +assistantMessage: string | null;
144
+ +value: string | { [string]: string } | null;
145
+ +inputvalue: string | { [string]: string };
146
+ hasValue(): boolean;
147
+ reset(): IFilter;
148
+ update(attribute: AttributeType, value: string): void;
149
+ isActive(): boolean;
150
+ +isValid: boolean;
151
+ +readonlyvalue: string | { [string]: string };
152
+ +formdata: { [string]: any } | null;
153
+ clone(): IFilter;
154
+ }
155
+
138
156
  export interface IConstraintModel {
139
157
  +id: string;
140
158
  +defaultMessage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/models/types.js"],"sourcesContent":["// @flow\nimport type ApplicationModel from \"./application/ApplicationModel\";\nimport type BooleanAttributeModel from \"./attributes/BooleanAttributeModel\";\nimport type CaptchaAttributeModel from \"./attributes/CaptchaAttributeModel\";\nimport type ChoiceAttributeModel from \"./attributes/ChoiceAttributeModel\";\nimport type CompositeAttributeModel from \"./attributes/CompositeAttributeModel\";\nimport type DatetimeAttributeModel from \"./attributes/DatetimeAttributeModel\";\nimport type HelptextAttributeModel from \"./attributes/HelptextAttributeModel\";\nimport type LabelAttributeModel from \"./attributes/LabelAttributeModel\";\nimport type MemoAttributeModel from \"./attributes/MemoAttributeModel\";\nimport type MoneyAttributeModel from \"./attributes/MoneyAttributeModel\";\nimport type NumberAttributeModel from \"./attributes/NumberAttributeModel\";\nimport type PasswordAttributeModel from \"./attributes/PasswordAttributeModel\";\nimport type StringAttributeModel from \"./attributes/StringAttributeModel\";\nimport type UploadAttributeModel from \"./attributes/UploadAttributeModel\";\nimport type XMLAttributeModel from \"./attributes/XMLAttributeModel\";\nimport type CaseViewModel from \"./caseview/CaseViewModel\";\nimport type BusinessScenarioModel from \"./concepts/BusinessScenarioModel\";\nimport type ConceptDetailModel from \"./concepts/ConceptDetailModel\";\nimport type ConceptIndexModel from \"./concepts/ConceptIndexModel\";\nimport type ConceptTypeDetailModel from \"./concepts/ConceptTypeDetailModel\";\nimport type ContentIndexModel from \"./content/ContentIndexModel\";\nimport type ContentModel from \"./content/ContentModel\";\nimport type SectionModel from \"./content/SectionModel\";\nimport type ContentTOCModel from \"./content/ContentTOCModel\";\nimport type ContentTypeModel from \"./content/ContentTypeModel\";\nimport type DetailModel from \"./detail/DetailModel\";\nimport type AssignmentFilterModel from \"./filters/AssignmentFilterModel\";\nimport type FilterModel from \"./filters/FilterModel\";\nimport type RangeFilterModel from \"./filters/RangeFilterModel\";\nimport type ConceptIndexFilterModel from \"./filters/ConceptIndexFilterModel\";\nimport type FormModel from \"./form/FormModel\";\nimport type ListDetailModel from \"./list/ListDetailModel\";\nimport type ListModel from \"./list/ListModel\";\nimport type ModelCatalogModel from \"./modelcatalog/ModelCatalogModel\";\nimport type GroupingPanelModel from \"./panels/GroupingPanelModel\";\nimport type CaseSearchModel from \"./search/CaseSearchModel\";\nimport type TabModel from \"./tab/TabModel\";\nimport type TaskGroupModel from \"./taskgroup/TaskGroupModel\";\nimport type UserModel from \"./user/UserModel\";\nimport type UserServicesModel from \"./user/UserServicesModel\";\nimport type LinkModel from \"./links/LinkModel\";\nimport type LookupOptionsModel from \"./lookup/LookupOptionsModel\";\nimport type AttributeCollection from \"./attributes/AttributeCollection\";\nimport type AttributeModel from \"./attributes/AttributeModel\";\nimport type LayoutHintCollection from \"./layouthint/LayoutHintCollection\";\nimport type ErrorResponse from \"./error/ErrorResponse\";\n\nexport type ModularUIModel =\n | ApplicationModel\n | CaseSearchModel\n | CaseViewModel\n | ListDetailModel\n | DetailModel\n | FormModel\n | GroupingPanelModel\n | ListModel\n | TabModel\n | TaskGroupModel\n | UserModel\n | UserServicesModel\n | ModelCatalogModel\n | ConceptIndexModel\n | ConceptDetailModel\n | BusinessScenarioModel\n | ConceptTypeDetailModel\n | ContentIndexModel\n | ContentTOCModel\n | ContentModel\n | ContentTypeModel\n | LookupOptionsModel;\n\nexport type AttributeType =\n | BooleanAttributeModel\n | CaptchaAttributeModel\n | ChoiceAttributeModel\n | DatetimeAttributeModel\n | HelptextAttributeModel\n | LabelAttributeModel\n | MemoAttributeModel\n | MoneyAttributeModel\n | NumberAttributeModel\n | PasswordAttributeModel\n | CompositeAttributeModel\n | StringAttributeModel\n | UploadAttributeModel\n | XMLAttributeModel;\n\nexport type RangeChildAttributeType =\n | NumberAttributeModel\n | DatetimeAttributeModel;\n\nexport type FilterType =\n | AssignmentFilterModel\n | FilterModel\n | RangeFilterModel\n | ConceptIndexFilterModel;\n\nexport type FormErrorAnchor = {\n id: string,\n properties?: {\n [propertyName: string]: string | number,\n },\n anchor?: {\n objectid: string,\n elementid?: string,\n _links?: Object,\n index?: number,\n \"index-identifier\"?: string,\n },\n layouthint: LayoutHintCollection,\n message: string,\n param?: {\n name: string,\n },\n};\n\nexport type labelsJSON = {\n _id: string,\n label: string,\n value: string,\n};\n\nexport type propertyJSON = {\n _id: string,\n type: string,\n mandatory: string,\n label: string,\n value: string,\n};\n\nexport type textfragmentJSON = {\n label: string,\n text: string,\n type: string,\n};\n\nexport interface IConstraintModel {\n +id: string;\n +defaultMessage: string;\n +parameters: Object;\n +isMandatoryConstraint: boolean;\n validate(value: any): boolean;\n hasValidation(): boolean;\n}\n\nexport interface ILayoutHintRule {\n process(attribute: AttributeModel, attributes: AttributeCollection): void;\n}\n\nexport interface IModelWithChildModels {\n getInitialChildModelLinks(): Array<LinkModel>;\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void;\n}\n\nexport type AuthenticationType = {\n name: string,\n authentication: string,\n redirectUri?: string,\n isPrimary: boolean,\n};\n\nexport type FileEntryType = {\n name: string,\n size?: number,\n progress: number,\n error?: string,\n token?: string,\n};\n\nexport type FilesType = {\n [filename: string]: FileEntryType,\n};\n\nexport type FiletypeConstraintsType = Array<{|\n extensions: Array<string>,\n mimeTypes: Array<string>,\n|}>;\n\nexport type FilesizeConstraintsType = {\n fileSize: ?number,\n maxTotalFileSize: ?number,\n isMaxTotal: boolean,\n};\n\nexport type PropertyData = { type: string, label: string, value: string };\nexport type TextFragmentData = {\n type: string,\n label: string,\n text: string | { id?: string, message: string, properties?: Object },\n};\nexport type SectionData = {\n id: string,\n type: string,\n label?: string,\n number?: string,\n body: string | { id?: string, message: string, properties?: Object },\n _links: { self: { href: string } },\n childSections?: Array<SectionData>,\n sections?: Array<SectionData>,\n subSections: Array<SectionData>,\n};\n\nexport type PropertyElement = {\n propertyElement: {\n label: string,\n layouthint: Array<string>,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElement = {\n textFragmentElement: {\n label: string,\n layouthint: Array<string>,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElement = {\n contentElement: {\n label: string,\n layouthint: Array<string>,\n sections: Array<SectionData>,\n },\n};\n\nexport type PropertyElementMapped = {\n propertyElement: {\n label: string,\n layouthint: LayoutHintCollection,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElementMapped = {\n textFragmentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElementMapped = {\n contentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n sections: Array<SectionModel>,\n },\n};\n\nexport type ContentAll = Array<\n PropertyElementMapped | TextFragmentElementMapped | ContentElementMapped,\n>;\n\nexport type ContentData = {\n header: {\n label?: string,\n description?: { id?: string, message: string, properties?: Object },\n },\n label?: string,\n elements: Array<PropertyElement | TextFragmentElement | ContentElement>,\n};\n\nexport type SectionFragment = {\n text: string,\n startOffset: number,\n endOffset: number,\n};\n\nexport type ModelOptions = {\n origin?: ?string,\n contextPath?: ?string,\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["PARAMETER_TYPES"],"sources":["../../src/models/types.js"],"sourcesContent":["// @flow\nimport type ApplicationModel from \"./application/ApplicationModel\";\nimport type BooleanAttributeModel from \"./attributes/BooleanAttributeModel\";\nimport type CaptchaAttributeModel from \"./attributes/CaptchaAttributeModel\";\nimport type ChoiceAttributeModel from \"./attributes/ChoiceAttributeModel\";\nimport type CompositeAttributeModel from \"./attributes/CompositeAttributeModel\";\nimport type DatetimeAttributeModel from \"./attributes/DatetimeAttributeModel\";\nimport type HelptextAttributeModel from \"./attributes/HelptextAttributeModel\";\nimport type LabelAttributeModel from \"./attributes/LabelAttributeModel\";\nimport type MemoAttributeModel from \"./attributes/MemoAttributeModel\";\nimport type MoneyAttributeModel from \"./attributes/MoneyAttributeModel\";\nimport type NumberAttributeModel from \"./attributes/NumberAttributeModel\";\nimport type PasswordAttributeModel from \"./attributes/PasswordAttributeModel\";\nimport type StringAttributeModel from \"./attributes/StringAttributeModel\";\nimport type UploadAttributeModel from \"./attributes/UploadAttributeModel\";\nimport type XMLAttributeModel from \"./attributes/XMLAttributeModel\";\nimport type CaseViewModel from \"./caseview/CaseViewModel\";\nimport type BusinessScenarioModel from \"./concepts/BusinessScenarioModel\";\nimport type ConceptDetailModel from \"./concepts/ConceptDetailModel\";\nimport type ConceptIndexModel from \"./concepts/ConceptIndexModel\";\nimport type ConceptTypeDetailModel from \"./concepts/ConceptTypeDetailModel\";\nimport type ContentIndexModel from \"./content/ContentIndexModel\";\nimport type ContentModel from \"./content/ContentModel\";\nimport type SectionModel from \"./content/SectionModel\";\nimport type ContentTOCModel from \"./content/ContentTOCModel\";\nimport type ContentTypeModel from \"./content/ContentTypeModel\";\nimport type DetailModel from \"./detail/DetailModel\";\nimport type FormModel from \"./form/FormModel\";\nimport type ListDetailModel from \"./list/ListDetailModel\";\nimport type ListModel from \"./list/ListModel\";\nimport type ModelCatalogModel from \"./modelcatalog/ModelCatalogModel\";\nimport type GroupingPanelModel from \"./panels/GroupingPanelModel\";\nimport type CaseSearchModel from \"./search/CaseSearchModel\";\nimport type TabModel from \"./tab/TabModel\";\nimport type TaskGroupModel from \"./taskgroup/TaskGroupModel\";\nimport type UserModel from \"./user/UserModel\";\nimport type UserServicesModel from \"./user/UserServicesModel\";\nimport type LinkModel from \"./links/LinkModel\";\nimport type LookupOptionsModel from \"./lookup/LookupOptionsModel\";\nimport type AttributeCollection from \"./attributes/AttributeCollection\";\nimport type AttributeModel from \"./attributes/AttributeModel\";\nimport type LayoutHintCollection from \"./layouthint/LayoutHintCollection\";\nimport type ErrorResponse from \"./error/ErrorResponse\";\nimport { PARAMETER_TYPES } from \"../constants\";\n\nexport type ModularUIModel =\n | ApplicationModel\n | CaseSearchModel\n | CaseViewModel\n | ListDetailModel\n | DetailModel\n | FormModel\n | GroupingPanelModel\n | ListModel\n | TabModel\n | TaskGroupModel\n | UserModel\n | UserServicesModel\n | ModelCatalogModel\n | ConceptIndexModel\n | ConceptDetailModel\n | BusinessScenarioModel\n | ConceptTypeDetailModel\n | ContentIndexModel\n | ContentTOCModel\n | ContentModel\n | ContentTypeModel\n | LookupOptionsModel;\n\nexport type AttributeType =\n | BooleanAttributeModel\n | CaptchaAttributeModel\n | ChoiceAttributeModel\n | DatetimeAttributeModel\n | HelptextAttributeModel\n | LabelAttributeModel\n | MemoAttributeModel\n | MoneyAttributeModel\n | NumberAttributeModel\n | PasswordAttributeModel\n | CompositeAttributeModel\n | StringAttributeModel\n | UploadAttributeModel\n | XMLAttributeModel;\n\nexport type RangeChildAttributeType =\n | NumberAttributeModel\n | DatetimeAttributeModel;\n\nexport type FormErrorAnchor = {\n id: string,\n properties?: {\n [propertyName: string]: string | number,\n },\n anchor?: {\n objectid: string,\n elementid?: string,\n _links?: Object,\n index?: number,\n \"index-identifier\"?: string,\n },\n layouthint: LayoutHintCollection,\n message: string,\n param?: {\n name: string,\n },\n};\n\nexport type labelsJSON = {\n _id: string,\n label: string,\n value: string,\n};\n\nexport type propertyJSON = {\n _id: string,\n type: string,\n mandatory: string,\n label: string,\n value: string,\n};\n\nexport type textfragmentJSON = {\n label: string,\n text: string,\n type: string,\n};\n\nexport interface IFilter {\n +type: string;\n +parameterType: $Values<typeof PARAMETER_TYPES>;\n +isMultiple: boolean;\n context: Object;\n +contextid: string;\n +contextLabel: string;\n listkey: string;\n +label: string;\n +key: string;\n +name: string;\n +param: string;\n +params: Array<{ name: string, value: ?string }>;\n isQuickSearch(): boolean;\n +assistantMessage: string | null;\n +value: string | { [string]: string } | null;\n +inputvalue: string | { [string]: string };\n hasValue(): boolean;\n reset(): IFilter;\n update(attribute: AttributeType, value: string): void;\n isActive(): boolean;\n +isValid: boolean;\n +readonlyvalue: string | { [string]: string };\n +formdata: { [string]: any } | null;\n clone(): IFilter;\n}\n\nexport interface IConstraintModel {\n +id: string;\n +defaultMessage: string;\n +parameters: Object;\n +isMandatoryConstraint: boolean;\n validate(value: any): boolean;\n hasValidation(): boolean;\n}\n\nexport interface ILayoutHintRule {\n process(attribute: AttributeModel, attributes: AttributeCollection): void;\n}\n\nexport interface IModelWithChildModels {\n getInitialChildModelLinks(): Array<LinkModel>;\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void;\n}\n\nexport type AuthenticationType = {\n name: string,\n authentication: string,\n redirectUri?: string,\n isPrimary: boolean,\n};\n\nexport type FileEntryType = {\n name: string,\n size?: number,\n progress: number,\n error?: string,\n token?: string,\n};\n\nexport type FilesType = {\n [filename: string]: FileEntryType,\n};\n\nexport type FiletypeConstraintsType = Array<{|\n extensions: Array<string>,\n mimeTypes: Array<string>,\n|}>;\n\nexport type FilesizeConstraintsType = {\n fileSize: ?number,\n maxTotalFileSize: ?number,\n isMaxTotal: boolean,\n};\n\nexport type PropertyData = { type: string, label: string, value: string };\nexport type TextFragmentData = {\n type: string,\n label: string,\n text: string | { id?: string, message: string, properties?: Object },\n};\nexport type SectionData = {\n id: string,\n type: string,\n label?: string,\n number?: string,\n body: string | { id?: string, message: string, properties?: Object },\n _links: { self: { href: string } },\n childSections?: Array<SectionData>,\n sections?: Array<SectionData>,\n subSections: Array<SectionData>,\n};\n\nexport type PropertyElement = {\n propertyElement: {\n label: string,\n layouthint: Array<string>,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElement = {\n textFragmentElement: {\n label: string,\n layouthint: Array<string>,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElement = {\n contentElement: {\n label: string,\n layouthint: Array<string>,\n sections: Array<SectionData>,\n },\n};\n\nexport type PropertyElementMapped = {\n propertyElement: {\n label: string,\n layouthint: LayoutHintCollection,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElementMapped = {\n textFragmentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElementMapped = {\n contentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n sections: Array<SectionModel>,\n },\n};\n\nexport type ContentAll = Array<\n PropertyElementMapped | TextFragmentElementMapped | ContentElementMapped,\n>;\n\nexport type ContentData = {\n header: {\n label?: string,\n description?: { id?: string, message: string, properties?: Object },\n },\n label?: string,\n elements: Array<PropertyElement | TextFragmentElement | ContentElement>,\n};\n\nexport type SectionFragment = {\n text: string,\n startOffset: number,\n endOffset: number,\n};\n\nexport type ModelOptions = {\n origin?: ?string,\n contextPath?: ?string,\n};\n"],"mappings":"AA2CA,SAASA,eAAe,QAAQ,cAAc","ignoreList":[]}
@@ -14,8 +14,8 @@ import { getPreferredLocale } from "./requestInformation";
14
14
  import { setLocales } from "../redux/_i18n/I18nActions";
15
15
  import { setServerPreference, setThemePreference, setPreference, setAllContentInDataSetting, setLoginPreferences, setDateTimeSettings } from "../redux/actions/Preferences";
16
16
  import { getEnabledLocales } from "../constants/Settings";
17
- import { IllegalArgumentException } from "../exceptions";
18
- import { initModels } from "../redux";
17
+ import IllegalArgumentException from "../exceptions/IllegalArgumentException";
18
+ import { initModels } from "../redux/_modularui/ModularUIActions";
19
19
  import { getLocale } from "../redux/selectors/i18n";
20
20
  import ModularUIRequest from "../modularui/ModularUIRequest";
21
21
  /**
@@ -22,9 +22,9 @@ import {
22
22
 
23
23
  import { getEnabledLocales } from "../constants/Settings";
24
24
 
25
- import { IllegalArgumentException } from "../exceptions";
25
+ import IllegalArgumentException from "../exceptions/IllegalArgumentException";
26
26
 
27
- import { initModels } from "../redux";
27
+ import { initModels } from "../redux/_modularui/ModularUIActions";
28
28
  import { getLocale } from "../redux/selectors/i18n";
29
29
 
30
30
  import ModularUIRequest from "../modularui/ModularUIRequest";