@beinformed/ui 1.63.13 → 1.64.0

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 (88) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/esm/constants/Constants.js +4 -0
  3. package/esm/constants/Constants.js.flow +5 -0
  4. package/esm/constants/Constants.js.map +1 -1
  5. package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +7 -5
  6. package/esm/hooks/index.js +2 -0
  7. package/esm/hooks/index.js.flow +2 -0
  8. package/esm/hooks/index.js.map +1 -1
  9. package/esm/hooks/useList.js +69 -0
  10. package/esm/hooks/useList.js.flow +90 -0
  11. package/esm/hooks/useList.js.map +1 -0
  12. package/esm/hooks/useModularUIBasic.js +1 -1
  13. package/esm/hooks/useModularUIBasic.js.flow +6 -2
  14. package/esm/hooks/useModularUIBasic.js.map +1 -1
  15. package/esm/hooks/useModularUIModel.js +0 -34
  16. package/esm/hooks/useModularUIModel.js.flow +1 -55
  17. package/esm/hooks/useModularUIModel.js.map +1 -1
  18. package/esm/hooks/usePanel.js +51 -0
  19. package/esm/hooks/usePanel.js.flow +76 -0
  20. package/esm/hooks/usePanel.js.map +1 -0
  21. package/esm/models/filters/BaseFilterModel.js +27 -1
  22. package/esm/models/filters/BaseFilterModel.js.flow +30 -1
  23. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  24. package/esm/models/filters/FilterCollection.js +16 -0
  25. package/esm/models/filters/FilterCollection.js.flow +16 -0
  26. package/esm/models/filters/FilterCollection.js.map +1 -1
  27. package/esm/models/filters/StringFilterModel.js +8 -0
  28. package/esm/models/filters/StringFilterModel.js.flow +8 -0
  29. package/esm/models/filters/StringFilterModel.js.map +1 -1
  30. package/esm/models/href/ListHref.js +3 -1
  31. package/esm/models/href/ListHref.js.flow +11 -8
  32. package/esm/models/href/ListHref.js.map +1 -1
  33. package/esm/models/list/ListModel.js +17 -7
  34. package/esm/models/list/ListModel.js.flow +20 -8
  35. package/esm/models/list/ListModel.js.map +1 -1
  36. package/esm/models/paging/PagesizeModel.js +6 -0
  37. package/esm/models/paging/PagesizeModel.js.flow +6 -0
  38. package/esm/models/paging/PagesizeModel.js.map +1 -1
  39. package/esm/models/paging/PagingModel.js +11 -0
  40. package/esm/models/paging/PagingModel.js.flow +11 -0
  41. package/esm/models/paging/PagingModel.js.map +1 -1
  42. package/esm/redux/actions/SignIn.js +2 -1
  43. package/esm/redux/actions/SignIn.js.flow +3 -2
  44. package/esm/redux/actions/SignIn.js.map +1 -1
  45. package/lib/constants/Constants.js +5 -1
  46. package/lib/constants/Constants.js.map +1 -1
  47. package/lib/hooks/index.js +22 -0
  48. package/lib/hooks/index.js.map +1 -1
  49. package/lib/hooks/useList.js +80 -0
  50. package/lib/hooks/useList.js.map +1 -0
  51. package/lib/hooks/useModularUIBasic.js +2 -2
  52. package/lib/hooks/useModularUIBasic.js.map +1 -1
  53. package/lib/hooks/useModularUIModel.js +1 -39
  54. package/lib/hooks/useModularUIModel.js.map +1 -1
  55. package/lib/hooks/usePanel.js +59 -0
  56. package/lib/hooks/usePanel.js.map +1 -0
  57. package/lib/models/filters/BaseFilterModel.js +26 -0
  58. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  59. package/lib/models/filters/FilterCollection.js +15 -0
  60. package/lib/models/filters/FilterCollection.js.map +1 -1
  61. package/lib/models/filters/StringFilterModel.js +8 -0
  62. package/lib/models/filters/StringFilterModel.js.map +1 -1
  63. package/lib/models/href/ListHref.js +3 -1
  64. package/lib/models/href/ListHref.js.map +1 -1
  65. package/lib/models/list/ListModel.js +17 -7
  66. package/lib/models/list/ListModel.js.map +1 -1
  67. package/lib/models/paging/PagesizeModel.js +6 -0
  68. package/lib/models/paging/PagesizeModel.js.map +1 -1
  69. package/lib/models/paging/PagingModel.js +11 -0
  70. package/lib/models/paging/PagingModel.js.map +1 -1
  71. package/lib/redux/actions/SignIn.js +2 -1
  72. package/lib/redux/actions/SignIn.js.map +1 -1
  73. package/package.json +8 -8
  74. package/src/constants/Constants.js +5 -0
  75. package/src/hooks/__tests__/UseModularUIModel.spec.js +7 -5
  76. package/src/hooks/index.js +2 -0
  77. package/src/hooks/useList.js +90 -0
  78. package/src/hooks/useModularUIBasic.js +6 -2
  79. package/src/hooks/useModularUIModel.js +1 -55
  80. package/src/hooks/usePanel.js +76 -0
  81. package/src/models/filters/BaseFilterModel.js +30 -1
  82. package/src/models/filters/FilterCollection.js +16 -0
  83. package/src/models/filters/StringFilterModel.js +8 -0
  84. package/src/models/href/ListHref.js +11 -8
  85. package/src/models/list/ListModel.js +20 -8
  86. package/src/models/paging/PagesizeModel.js +6 -0
  87. package/src/models/paging/PagingModel.js +11 -0
  88. package/src/redux/actions/SignIn.js +3 -2
@@ -0,0 +1,76 @@
1
+ // @flow
2
+ import { useState, useMemo } from "react";
3
+ import { useLocation, useRouteMatch } from "react-router";
4
+ import Href from "../models/href/Href";
5
+ import { useModularUIBasic } from "./useModularUIBasic";
6
+
7
+ import type { HookOptions } from "./useModularUIBasic";
8
+ import type GroupingPanelModel from "../models/panels/GroupingPanelModel";
9
+ import type ListModel from "../models/list/ListModel";
10
+ import type DetailModel from "../models/detail/DetailModel";
11
+
12
+ const useUrl = (href?: string | Href, fromRoute: boolean = false) => {
13
+ const [previousUrl, setPreviousUrl] = useState(null);
14
+ const [previousExact, setPreviousExact] = useState(false);
15
+
16
+ const match = useRouteMatch();
17
+ const location = useLocation();
18
+
19
+ return useMemo(() => {
20
+ if (href == null && previousUrl == null) {
21
+ return new Href("");
22
+ }
23
+
24
+ const url = href instanceof Href ? href : new Href(href);
25
+
26
+ if (!fromRoute) {
27
+ return url;
28
+ }
29
+
30
+ if (match.isExact) {
31
+ url.addParametersFromString(location.search);
32
+ }
33
+
34
+ // Check equality to prevent unnecessary state updates
35
+ if (url.equalsWithParameters(previousUrl)) {
36
+ return previousUrl || url;
37
+ }
38
+
39
+ const shouldUpdate =
40
+ match.isExact === true ||
41
+ previousExact === match.isExact ||
42
+ !previousUrl?.startsWith(match.url);
43
+
44
+ if (shouldUpdate) {
45
+ setPreviousUrl(url);
46
+ setPreviousExact(match.isExact);
47
+ return url;
48
+ }
49
+
50
+ return previousUrl || new Href("");
51
+ }, [
52
+ href,
53
+ previousUrl,
54
+ fromRoute,
55
+ match.isExact,
56
+ match.url,
57
+ previousExact,
58
+ location.search,
59
+ ]);
60
+ };
61
+
62
+ /**
63
+ */
64
+ export const usePanel = (
65
+ href?: string | Href,
66
+ options?: HookOptions & { fromRoute?: boolean },
67
+ ): ListModel | GroupingPanelModel | DetailModel | null => {
68
+ const { fromRoute = false, ...modUIOptions } = options || {};
69
+
70
+ const url = useUrl(href, fromRoute);
71
+
72
+ return useModularUIBasic("panel", url, {
73
+ expectedModels: ["List", "GroupingPanel", "Detail"],
74
+ ...modUIOptions,
75
+ });
76
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePanel.js","names":["useState","useMemo","useLocation","useRouteMatch","Href","useModularUIBasic","useUrl","href","fromRoute","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","location","_context","url","isExact","addParametersFromString","search","equalsWithParameters","shouldUpdate","Function","call","bind","_startsWithInstanceProperty","usePanel","options","modUIOptions","expectedModels"],"sources":["../../src/hooks/usePanel.js"],"sourcesContent":["// @flow\nimport { useState, useMemo } from \"react\";\nimport { useLocation, useRouteMatch } from \"react-router\";\nimport Href from \"../models/href/Href\";\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type GroupingPanelModel from \"../models/panels/GroupingPanelModel\";\nimport type ListModel from \"../models/list/ListModel\";\nimport type DetailModel from \"../models/detail/DetailModel\";\n\nconst useUrl = (href?: string | Href, fromRoute: boolean = false) => {\n const [previousUrl, setPreviousUrl] = useState(null);\n const [previousExact, setPreviousExact] = useState(false);\n\n const match = useRouteMatch();\n const location = useLocation();\n\n return useMemo(() => {\n if (href == null && previousUrl == null) {\n return new Href(\"\");\n }\n\n const url = href instanceof Href ? href : new Href(href);\n\n if (!fromRoute) {\n return url;\n }\n\n if (match.isExact) {\n url.addParametersFromString(location.search);\n }\n\n // Check equality to prevent unnecessary state updates\n if (url.equalsWithParameters(previousUrl)) {\n return previousUrl || url;\n }\n\n const shouldUpdate =\n match.isExact === true ||\n previousExact === match.isExact ||\n !previousUrl?.startsWith(match.url);\n\n if (shouldUpdate) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n return url;\n }\n\n return previousUrl || new Href(\"\");\n }, [\n href,\n previousUrl,\n fromRoute,\n match.isExact,\n match.url,\n previousExact,\n location.search,\n ]);\n};\n\n/**\n */\nexport const usePanel = (\n href?: string | Href,\n options?: HookOptions & { fromRoute?: boolean },\n): ListModel | GroupingPanelModel | DetailModel | null => {\n const { fromRoute = false, ...modUIOptions } = options || {};\n\n const url = useUrl(href, fromRoute);\n\n return useModularUIBasic(\"panel\", url, {\n expectedModels: [\"List\", \"GroupingPanel\", \"Detail\"],\n ...modUIOptions,\n });\n};\n"],"mappings":";AACA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,aAAa,QAAQ,cAAc;AACzD,OAAOC,IAAI,MAAM,qBAAqB;AACtC,SAASC,iBAAiB,QAAQ,qBAAqB;AAOvD,MAAMC,MAAM,GAAGA,CAACC,IAAoB,EAAEC,SAAkB,GAAG,KAAK,KAAK;EACnE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGV,QAAQ,CAAC,IAAI,CAAC;EACpD,MAAM,CAACW,aAAa,EAAEC,gBAAgB,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMa,KAAK,GAAGV,aAAa,CAAC,CAAC;EAC7B,MAAMW,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAE9B,OAAOD,OAAO,CAAC,MAAM;IAAA,IAAAc,QAAA;IACnB,IAAIR,IAAI,IAAI,IAAI,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvC,OAAO,IAAIL,IAAI,CAAC,EAAE,CAAC;IACrB;IAEA,MAAMY,GAAG,GAAGT,IAAI,YAAYH,IAAI,GAAGG,IAAI,GAAG,IAAIH,IAAI,CAACG,IAAI,CAAC;IAExD,IAAI,CAACC,SAAS,EAAE;MACd,OAAOQ,GAAG;IACZ;IAEA,IAAIH,KAAK,CAACI,OAAO,EAAE;MACjBD,GAAG,CAACE,uBAAuB,CAACJ,QAAQ,CAACK,MAAM,CAAC;IAC9C;;IAEA;IACA,IAAIH,GAAG,CAACI,oBAAoB,CAACX,WAAW,CAAC,EAAE;MACzC,OAAOA,WAAW,IAAIO,GAAG;IAC3B;IAEA,MAAMK,YAAY,GAChBR,KAAK,CAACI,OAAO,KAAK,IAAI,IACtBN,aAAa,KAAKE,KAAK,CAACI,OAAO,IAC/B,CAAC,EAAAF,QAAA,GAAAN,WAAW,qBAAAa,QAAA,CAAAC,IAAA,CAAAC,IAAA,CAAAC,2BAAA,CAAAV,QAAA,GAAAA,QAAA,KAAaF,KAAK,CAACG,GAAG,CAAC;IAErC,IAAIK,YAAY,EAAE;MAChBX,cAAc,CAACM,GAAG,CAAC;MACnBJ,gBAAgB,CAACC,KAAK,CAACI,OAAO,CAAC;MAC/B,OAAOD,GAAG;IACZ;IAEA,OAAOP,WAAW,IAAI,IAAIL,IAAI,CAAC,EAAE,CAAC;EACpC,CAAC,EAAE,CACDG,IAAI,EACJE,WAAW,EACXD,SAAS,EACTK,KAAK,CAACI,OAAO,EACbJ,KAAK,CAACG,GAAG,EACTL,aAAa,EACbG,QAAQ,CAACK,MAAM,CAChB,CAAC;AACJ,CAAC;;AAED;AACA;AACA,OAAO,MAAMO,QAAQ,GAAGA,CACtBnB,IAAoB,EACpBoB,OAA+C,KACS;EACxD,MAAM;IAAEnB,SAAS,GAAG,KAAK;IAAE,GAAGoB;EAAa,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;EAE5D,MAAMX,GAAG,GAAGV,MAAM,CAACC,IAAI,EAAEC,SAAS,CAAC;EAEnC,OAAOH,iBAAiB,CAAC,OAAO,EAAEW,GAAG,EAAE;IACrCa,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;IACnD,GAAGD;EACL,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
2
  import BaseModel from "../base/BaseModel";
3
3
  import createAttribute from "../attributes/_createAttribute";
4
- import { PARAMETER_SEPARATOR } from "../../constants/Constants";
4
+ import { PARAMETER_SEPARATOR, PARAMETER_TYPES } from "../../constants/Constants";
5
5
  import { IllegalStateException } from "../../exceptions";
6
6
 
7
7
  /**
@@ -28,6 +28,19 @@ export default class BaseFilterModel extends BaseModel {
28
28
  return this.contributions.type ? this.contributions.type.replace("filter", "") : "string";
29
29
  }
30
30
 
31
+ /**
32
+ * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.
33
+ */
34
+ get parameterType() {
35
+ const parameterType = this.getContribution("parameterType");
36
+ switch (parameterType) {
37
+ case "bodyParameter":
38
+ return PARAMETER_TYPES.BODY;
39
+ default:
40
+ return PARAMETER_TYPES.QUERY;
41
+ }
42
+ }
43
+
31
44
  /**
32
45
  * Create attribute through the attribute factory. Create type based on filter key without the filter suffix
33
46
  */
@@ -144,6 +157,13 @@ export default class BaseFilterModel extends BaseModel {
144
157
  return this.attribute?.inputvalue;
145
158
  }
146
159
 
160
+ /**
161
+ * Indicates if the filter has a value.
162
+ */
163
+ hasValue() {
164
+ return this.value !== null && this.value !== "";
165
+ }
166
+
147
167
  /**
148
168
  * Reset the value of this filter to undefined
149
169
  */
@@ -199,5 +219,11 @@ export default class BaseFilterModel extends BaseModel {
199
219
  get assistantMessage() {
200
220
  return this.getContribution("assistant");
201
221
  }
222
+
223
+ /**
224
+ */
225
+ get formdata() {
226
+ return this.attribute.formdata ?? null;
227
+ }
202
228
  }
203
229
  //# sourceMappingURL=BaseFilterModel.js.map
@@ -1,7 +1,10 @@
1
1
  // @flow
2
2
  import BaseModel from "../base/BaseModel";
3
3
  import createAttribute from "../attributes/_createAttribute";
4
- import { PARAMETER_SEPARATOR } from "../../constants/Constants";
4
+ import {
5
+ PARAMETER_SEPARATOR,
6
+ PARAMETER_TYPES,
7
+ } from "../../constants/Constants";
5
8
 
6
9
  import type { AttributeType, FilterType, ModelOptions } from "../types";
7
10
  import { IllegalStateException } from "../../exceptions";
@@ -44,6 +47,19 @@ export default class BaseFilterModel extends BaseModel {
44
47
  : "string";
45
48
  }
46
49
 
50
+ /**
51
+ * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.
52
+ */
53
+ get parameterType(): $Values<typeof PARAMETER_TYPES> {
54
+ const parameterType = this.getContribution("parameterType");
55
+ switch (parameterType) {
56
+ case "bodyParameter":
57
+ return PARAMETER_TYPES.BODY;
58
+ default:
59
+ return PARAMETER_TYPES.QUERY;
60
+ }
61
+ }
62
+
47
63
  /**
48
64
  * Create attribute through the attribute factory. Create type based on filter key without the filter suffix
49
65
  */
@@ -177,6 +193,13 @@ export default class BaseFilterModel extends BaseModel {
177
193
  return this.attribute?.inputvalue;
178
194
  }
179
195
 
196
+ /**
197
+ * Indicates if the filter has a value.
198
+ */
199
+ hasValue(): boolean {
200
+ return this.value !== null && this.value !== "";
201
+ }
202
+
180
203
  /**
181
204
  * Reset the value of this filter to undefined
182
205
  */
@@ -233,4 +256,10 @@ export default class BaseFilterModel extends BaseModel {
233
256
  get assistantMessage(): string | null {
234
257
  return this.getContribution("assistant");
235
258
  }
259
+
260
+ /**
261
+ */
262
+ get formdata(): { [string]: any } | null {
263
+ return this.attribute.formdata ?? null;
264
+ }
236
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterModel.js","names":["BaseModel","createAttribute","PARAMETER_SEPARATOR","IllegalStateException","BaseFilterModel","constructor","data","contributions","modelOptions","_defineProperty","_attribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","attribute","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(\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 if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(\n param,\n data,\n {\n ...contributions,\n type: type,\n },\n this.modelOptions,\n );\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseFilterModel.js","names":["BaseModel","createAttribute","PARAMETER_SEPARATOR","PARAMETER_TYPES","IllegalStateException","BaseFilterModel","constructor","data","contributions","modelOptions","_defineProperty","_attribute","type","param","listKey","listkey","replace","parameterType","getContribution","BODY","QUERY","isMultiple","context","_context","contextLabel","label","_listKey","key","name","attribute","params","value","inputvalue","hasValue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","formdata"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport {\n PARAMETER_SEPARATOR,\n PARAMETER_TYPES,\n} from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(\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 if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.\n */\n get parameterType(): $Values<typeof PARAMETER_TYPES> {\n const parameterType = this.getContribution(\"parameterType\");\n switch (parameterType) {\n case \"bodyParameter\":\n return PARAMETER_TYPES.BODY;\n default:\n return PARAMETER_TYPES.QUERY;\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 * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * 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(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.attribute.formdata ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,8 @@ import AssignmentFilterModel from "../filters/AssignmentFilterModel";
10
10
  import ConceptIndexFilterModel from "../filters/ConceptIndexFilterModel";
11
11
  import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
12
12
  import FilterModel from "../filters/FilterModel";
13
+ import { PARAMETER_TYPES } from "../../constants";
14
+
13
15
  /**
14
16
  * Contains a collection of filters
15
17
  */
@@ -140,5 +142,19 @@ export default class FilterCollection extends BaseCollection {
140
142
  hasActiveFilters() {
141
143
  return this.collection.some(filter => filter.isActive());
142
144
  }
145
+
146
+ /**
147
+ */
148
+ get formdata() {
149
+ var _context7;
150
+ let data = {};
151
+ _filterInstanceProperty(_context7 = this).call(_context7, f => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue()).forEach(f => {
152
+ data = {
153
+ ...data,
154
+ ...f.formdata
155
+ };
156
+ });
157
+ return data;
158
+ }
143
159
  }
144
160
  //# sourceMappingURL=FilterCollection.js.map
@@ -9,6 +9,7 @@ import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
9
9
  import FilterModel from "../filters/FilterModel";
10
10
 
11
11
  import type { AttributeType, FilterType, ModelOptions } from "../types";
12
+ import { PARAMETER_TYPES } from "../../constants";
12
13
 
13
14
  /**
14
15
  * Contains a collection of filters
@@ -189,4 +190,19 @@ export default class FilterCollection extends BaseCollection<FilterType> {
189
190
  hasActiveFilters(): boolean {
190
191
  return this.collection.some((filter) => filter.isActive());
191
192
  }
193
+
194
+ /**
195
+ */
196
+ get formdata(): { [string]: any } | null {
197
+ let data = {};
198
+ this.filter(
199
+ (f) => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue(),
200
+ ).forEach((f) => {
201
+ data = {
202
+ ...data,
203
+ ...f.formdata,
204
+ };
205
+ });
206
+ return data;
207
+ }
192
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCollection.js","names":["BaseCollection","StringFilterModel","RangeFilterModel","AssignmentFilterModel","ConceptIndexFilterModel","CompositeAttributeModel","FilterModel","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"],"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\";\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"],"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","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","formdata","_context7","f","parameterType","BODY","hasValue","forEach"],"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 let data = {};\n this.filter(\n (f) => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue(),\n ).forEach((f) => {\n data = {\n ...data,\n ...f.formdata,\n };\n });\n return data;\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,IAAIzD,IAAI,GAAG,CAAC,CAAC;IACbK,uBAAA,CAAAoD,SAAA,OAAI,EAAA/C,IAAA,CAAA+C,SAAA,EACDC,CAAC,IAAKA,CAAC,CAACC,aAAa,KAAK9D,eAAe,CAAC+D,IAAI,IAAIF,CAAC,CAACG,QAAQ,CAAC,CAChE,CAAC,CAACC,OAAO,CAAEJ,CAAC,IAAK;MACf1D,IAAI,GAAG;QACL,GAAGA,IAAI;QACP,GAAG0D,CAAC,CAACF;MACP,CAAC;IACH,CAAC,CAAC;IACF,OAAOxD,IAAI;EACb;AACF","ignoreList":[]}
@@ -136,5 +136,13 @@ export default class StringFilterModel extends FilterModel {
136
136
  shouldHandleFormat() {
137
137
  return (this.operator === "exactly" || this.operator === "isNot") && (this.isIBAN() || this.isZipcode() || this.isBSN());
138
138
  }
139
+
140
+ /**
141
+ */
142
+ get formdata() {
143
+ return {
144
+ [this.param]: this.value
145
+ };
146
+ }
139
147
  }
140
148
  //# sourceMappingURL=StringFilterModel.js.map
@@ -156,4 +156,12 @@ export default class StringFilterModel extends FilterModel {
156
156
  (this.isIBAN() || this.isZipcode() || this.isBSN())
157
157
  );
158
158
  }
159
+
160
+ /**
161
+ */
162
+ get formdata(): { [string]: any } | null {
163
+ return {
164
+ [this.param]: this.value,
165
+ };
166
+ }
159
167
  }
@@ -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"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, FilterType, 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(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._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"],"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, FilterType, 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(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._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,5 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
2
3
  import Href from "./Href";
4
+ import { PARAMETER_TYPES } from "../../constants/Constants";
3
5
  /**
4
6
  * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary
5
7
  *
@@ -112,7 +114,7 @@ export default class ListHref extends Href {
112
114
  if (!filters) {
113
115
  return;
114
116
  }
115
- filters.forEach(filter => {
117
+ _filterInstanceProperty(filters).call(filters, filter => filter.parameterType === PARAMETER_TYPES.QUERY).forEach(filter => {
116
118
  filter.params.forEach(param => {
117
119
  if (param.value != null) {
118
120
  this.setParameter(param.name, param.value, this.prefix);
@@ -1,5 +1,6 @@
1
1
  // @flow
2
2
  import Href from "./Href";
3
+ import { PARAMETER_TYPES } from "../../constants/Constants";
3
4
 
4
5
  import type FilterCollection from "../filters/FilterCollection";
5
6
  import type ListModel from "../list/ListModel";
@@ -133,14 +134,16 @@ export default class ListHref extends Href {
133
134
  return;
134
135
  }
135
136
 
136
- filters.forEach((filter) => {
137
- filter.params.forEach((param) => {
138
- if (param.value != null) {
139
- this.setParameter(param.name, param.value, this.prefix);
140
- } else {
141
- this.removeParameter(param.name, this.prefix);
142
- }
137
+ filters
138
+ .filter((filter) => filter.parameterType === PARAMETER_TYPES.QUERY)
139
+ .forEach((filter) => {
140
+ filter.params.forEach((param) => {
141
+ if (param.value != null) {
142
+ this.setParameter(param.name, param.value, this.prefix);
143
+ } else {
144
+ this.removeParameter(param.name, this.prefix);
145
+ }
146
+ });
143
147
  });
144
- });
145
148
  }
146
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListHref.js","names":["Href","ListHref","constructor","href","list","isPrefixed","undefined","_defineProperty","_isPrefixed","setParameterNamesFromListModel","setParameterNamesFromHref","_prefix","prefix","_pagingName","pagingName","_pagesizeName","pagesizeName","_sortingName","sortingName","key","paging","name","pagesize","sorting","page","options","length","value","sort","param","filterCollection","pageValue","toString","setParameter","getParameter","pageSizeValue","filters","forEach","filter","params","removeParameter"],"sources":["../../../src/models/href/ListHref.js"],"sourcesContent":["// @flow\nimport Href from \"./Href\";\n\nimport type FilterCollection from \"../filters/FilterCollection\";\nimport type ListModel from \"../list/ListModel\";\nimport type { HrefInput } from \"./Href\";\nimport type Parameter from \"../parameter/Parameter\";\n\n/**\n * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary\n *\n * @augments Href\n */\nexport default class ListHref extends Href {\n _isPrefixed: boolean;\n _prefix: ?string;\n _pagingName: string;\n _pagesizeName: string;\n _sortingName: string;\n\n /**\n * Create a ListHref\n */\n constructor(href?: HrefInput, list?: ListModel, isPrefixed: boolean = true) {\n super(href, undefined);\n\n this._isPrefixed = isPrefixed;\n\n if (list != null) {\n this.setParameterNamesFromListModel(list);\n } else if (href != null && href instanceof ListHref) {\n this.setParameterNamesFromHref(href);\n }\n }\n\n /**\n * Retrieve parameter names from Href\n */\n setParameterNamesFromHref(href: ListHref) {\n this._prefix = this._isPrefixed ? href.prefix : null;\n this._pagingName = href.pagingName;\n this._pagesizeName = href.pagesizeName;\n this._sortingName = href.sortingName;\n }\n\n /**\n * Retrieve parameter names and settings from List model\n */\n setParameterNamesFromListModel(list: ListModel) {\n this._prefix = this._isPrefixed ? list.key : null;\n\n this._pagingName = list.paging ? list.paging.name : \"\";\n this._pagesizeName =\n list.paging && list.paging.pagesize ? list.paging.pagesize.name : \"\";\n\n this._sortingName = list.sorting ? list.sorting.name : \"\";\n\n this.page = list.paging ? list.paging.page : null;\n this.pagesize =\n list.paging && list.paging.pagesize.options.length > 0\n ? list.paging.pagesize.value\n : null;\n\n this.sort = list.sorting && list.sorting.param ? list.sorting.param : null;\n\n this.filterCollection = list.filterCollection;\n }\n\n /**\n * Getting prefix\n */\n get prefix(): ?string {\n return this._prefix;\n }\n\n /**\n * Getting paging name\n */\n get pagingName(): string {\n return this._pagingName;\n }\n\n /**\n * Getting pagesize name\n */\n get pagesizeName(): string {\n return this._pagesizeName;\n }\n\n /**\n * Getting sorting name\n */\n get sortingName(): string {\n return this._sortingName;\n }\n\n /**\n * Setting the current page\n */\n set page(page: ?number) {\n const pageValue = page == null ? null : page.toString();\n\n this.setParameter(this.pagingName, pageValue, this.prefix);\n }\n\n /**\n */\n get page(): ?Parameter {\n return this.getParameter(this.pagingName, this.prefix);\n }\n\n /**\n * Setting the sort value\n */\n set sort(sort: ?string) {\n this.setParameter(this.sortingName, sort, this.prefix);\n }\n\n /**\n * Setting the page size\n */\n set pagesize(pagesize: ?number) {\n const pageSizeValue = pagesize == null ? null : pagesize.toString();\n\n this.setParameter(this.pagesizeName, pageSizeValue, this.prefix);\n }\n\n /**\n * Add filter parameters to the parameter collection\n */\n set filterCollection(filters: FilterCollection) {\n if (!filters) {\n return;\n }\n\n filters.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value != null) {\n this.setParameter(param.name, param.value, this.prefix);\n } else {\n this.removeParameter(param.name, this.prefix);\n }\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListHref.js","names":["Href","PARAMETER_TYPES","ListHref","constructor","href","list","isPrefixed","undefined","_defineProperty","_isPrefixed","setParameterNamesFromListModel","setParameterNamesFromHref","_prefix","prefix","_pagingName","pagingName","_pagesizeName","pagesizeName","_sortingName","sortingName","key","paging","name","pagesize","sorting","page","options","length","value","sort","param","filterCollection","pageValue","toString","setParameter","getParameter","pageSizeValue","filters","_filterInstanceProperty","call","filter","parameterType","QUERY","forEach","params","removeParameter"],"sources":["../../../src/models/href/ListHref.js"],"sourcesContent":["// @flow\nimport Href from \"./Href\";\nimport { PARAMETER_TYPES } from \"../../constants/Constants\";\n\nimport type FilterCollection from \"../filters/FilterCollection\";\nimport type ListModel from \"../list/ListModel\";\nimport type { HrefInput } from \"./Href\";\nimport type Parameter from \"../parameter/Parameter\";\n\n/**\n * Class representing the href of a list. It adds paging, sorting and filter parameters where necessary\n *\n * @augments Href\n */\nexport default class ListHref extends Href {\n _isPrefixed: boolean;\n _prefix: ?string;\n _pagingName: string;\n _pagesizeName: string;\n _sortingName: string;\n\n /**\n * Create a ListHref\n */\n constructor(href?: HrefInput, list?: ListModel, isPrefixed: boolean = true) {\n super(href, undefined);\n\n this._isPrefixed = isPrefixed;\n\n if (list != null) {\n this.setParameterNamesFromListModel(list);\n } else if (href != null && href instanceof ListHref) {\n this.setParameterNamesFromHref(href);\n }\n }\n\n /**\n * Retrieve parameter names from Href\n */\n setParameterNamesFromHref(href: ListHref) {\n this._prefix = this._isPrefixed ? href.prefix : null;\n this._pagingName = href.pagingName;\n this._pagesizeName = href.pagesizeName;\n this._sortingName = href.sortingName;\n }\n\n /**\n * Retrieve parameter names and settings from List model\n */\n setParameterNamesFromListModel(list: ListModel) {\n this._prefix = this._isPrefixed ? list.key : null;\n\n this._pagingName = list.paging ? list.paging.name : \"\";\n this._pagesizeName =\n list.paging && list.paging.pagesize ? list.paging.pagesize.name : \"\";\n\n this._sortingName = list.sorting ? list.sorting.name : \"\";\n\n this.page = list.paging ? list.paging.page : null;\n this.pagesize =\n list.paging && list.paging.pagesize.options.length > 0\n ? list.paging.pagesize.value\n : null;\n\n this.sort = list.sorting && list.sorting.param ? list.sorting.param : null;\n\n this.filterCollection = list.filterCollection;\n }\n\n /**\n * Getting prefix\n */\n get prefix(): ?string {\n return this._prefix;\n }\n\n /**\n * Getting paging name\n */\n get pagingName(): string {\n return this._pagingName;\n }\n\n /**\n * Getting pagesize name\n */\n get pagesizeName(): string {\n return this._pagesizeName;\n }\n\n /**\n * Getting sorting name\n */\n get sortingName(): string {\n return this._sortingName;\n }\n\n /**\n * Setting the current page\n */\n set page(page: ?number) {\n const pageValue = page == null ? null : page.toString();\n\n this.setParameter(this.pagingName, pageValue, this.prefix);\n }\n\n /**\n */\n get page(): ?Parameter {\n return this.getParameter(this.pagingName, this.prefix);\n }\n\n /**\n * Setting the sort value\n */\n set sort(sort: ?string) {\n this.setParameter(this.sortingName, sort, this.prefix);\n }\n\n /**\n * Setting the page size\n */\n set pagesize(pagesize: ?number) {\n const pageSizeValue = pagesize == null ? null : pagesize.toString();\n\n this.setParameter(this.pagesizeName, pageSizeValue, this.prefix);\n }\n\n /**\n * Add filter parameters to the parameter collection\n */\n set filterCollection(filters: FilterCollection) {\n if (!filters) {\n return;\n }\n\n filters\n .filter((filter) => filter.parameterType === PARAMETER_TYPES.QUERY)\n .forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value != null) {\n this.setParameter(param.name, param.value, this.prefix);\n } else {\n this.removeParameter(param.name, this.prefix);\n }\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
5
5
  import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
6
6
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
7
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
8
+ import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
8
9
  import ModularUIResponse from "../../modularui/ModularUIResponse";
9
10
  import ListItemCollection from "../list/ListItemCollection";
10
11
  import ListDetailModel from "../list/ListDetailModel";
@@ -17,6 +18,7 @@ import ListItemModel from "../list/ListItemModel";
17
18
  import PagingModel from "../paging/PagingModel";
18
19
  import ResourceModel from "../base/ResourceModel";
19
20
  import SortingModel from "../sorting/SortingModel";
21
+ import { HTTP_METHODS, PARAMETER_TYPES } from "../../constants";
20
22
  import { CASEVIEW_LINK, HIDE_WHEN_EMPTY, SHOW_ONE_RESULT_AS_DETAIL } from "../../constants/LayoutHints";
21
23
  /**
22
24
  * Defines a list object
@@ -32,7 +34,6 @@ export default class ListModel extends ResourceModel {
32
34
  _defineProperty(this, "_actionCollection", void 0);
33
35
  _defineProperty(this, "_listItemCollection", void 0);
34
36
  _defineProperty(this, "_grouping", void 0);
35
- _defineProperty(this, "_selfhref", void 0);
36
37
  }
37
38
  /**
38
39
  */
@@ -74,6 +75,13 @@ export default class ListModel extends ResourceModel {
74
75
  this.detail = _findInstanceProperty(models).call(models, childModel => childModel.type === "ListDetail");
75
76
  }
76
77
 
78
+ /**
79
+ */
80
+ get requestMethod() {
81
+ const mustPost = this.filterCollection.some(filter => filter.parameterType === PARAMETER_TYPES.BODY && filter.hasValue());
82
+ return mustPost ? HTTP_METHODS.POST : HTTP_METHODS.GET;
83
+ }
84
+
77
85
  /**
78
86
  * Getting the label of the list
79
87
  */
@@ -134,7 +142,6 @@ export default class ListModel extends ResourceModel {
134
142
  }
135
143
  this._detail = detail;
136
144
  }
137
- this.setSelfHref();
138
145
  }
139
146
 
140
147
  /**
@@ -285,7 +292,7 @@ export default class ListModel extends ResourceModel {
285
292
  /**
286
293
  * Sets self href from links collection
287
294
  */
288
- setSelfHref() {
295
+ getSelfHref() {
289
296
  const selfLink = this.links ? this.links.getLinkByKey("self") : null;
290
297
  if (selfLink !== null) {
291
298
  return new ListHref(selfLink.href, this);
@@ -297,10 +304,7 @@ export default class ListModel extends ResourceModel {
297
304
  * Getting the self link of this list
298
305
  */
299
306
  get selfhref() {
300
- if (!this._selfhref) {
301
- this._selfhref = this.setSelfHref();
302
- }
303
- return this._selfhref;
307
+ return this.getSelfHref();
304
308
  }
305
309
 
306
310
  /**
@@ -374,5 +378,11 @@ export default class ListModel extends ResourceModel {
374
378
  }
375
379
  return null;
376
380
  }
381
+
382
+ /**
383
+ */
384
+ get formdata() {
385
+ return _JSON$stringify(this.filterCollection.formdata);
386
+ }
377
387
  }
378
388
  //# sourceMappingURL=ListModel.js.map