@beinformed/ui 1.9.0-beta.10 → 1.9.0-beta.14

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 (89) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/esm/hooks/useForm.js.map +1 -1
  3. package/esm/hooks/useNotification.js.map +1 -1
  4. package/esm/hooks/useRouter.js.map +1 -1
  5. package/esm/models/attributes/AttributeContent.js +49 -20
  6. package/esm/models/attributes/AttributeContent.js.map +1 -1
  7. package/esm/models/attributes/AttributeDataHelper.js +1 -1
  8. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  9. package/esm/models/caseview/CaseViewModel.js +16 -12
  10. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  11. package/esm/models/form/FormObjectModel.js +7 -1
  12. package/esm/models/form/FormObjectModel.js.map +1 -1
  13. package/esm/models/layouthint/LayoutHintCollection.js +3 -2
  14. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  15. package/esm/models/list/ListDetailModel.js +25 -0
  16. package/esm/models/list/ListDetailModel.js.map +1 -1
  17. package/esm/models/list/ListModel.js +22 -16
  18. package/esm/models/list/ListModel.js.map +1 -1
  19. package/esm/models/panels/GroupingPanelModel.js +19 -17
  20. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  21. package/esm/modularui/ModularUIRequest.js +2 -1
  22. package/esm/modularui/ModularUIRequest.js.map +1 -1
  23. package/lib/hooks/useForm.js.flow +10 -5
  24. package/lib/hooks/useForm.js.map +1 -1
  25. package/lib/hooks/useNotification.js.flow +5 -2
  26. package/lib/hooks/useNotification.js.map +1 -1
  27. package/lib/hooks/useRouter.js.flow +12 -5
  28. package/lib/hooks/useRouter.js.map +1 -1
  29. package/lib/models/attributes/AttributeContent.js +51 -20
  30. package/lib/models/attributes/AttributeContent.js.flow +38 -13
  31. package/lib/models/attributes/AttributeContent.js.map +1 -1
  32. package/lib/models/attributes/AttributeDataHelper.js +1 -1
  33. package/lib/models/attributes/AttributeDataHelper.js.flow +2 -1
  34. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  35. package/lib/models/attributes/__tests__/AttributeContent.spec.js.flow +4 -2
  36. package/lib/models/attributes/__tests__/AttributeDataHelper.spec.js.flow +9 -3
  37. package/lib/models/caseview/CaseViewModel.js +17 -13
  38. package/lib/models/caseview/CaseViewModel.js.flow +9 -7
  39. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  40. package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +68 -184
  41. package/lib/models/form/FormObjectModel.js +7 -1
  42. package/lib/models/form/FormObjectModel.js.flow +4 -0
  43. package/lib/models/form/FormObjectModel.js.map +1 -1
  44. package/lib/models/layouthint/LayoutHintCollection.js +4 -2
  45. package/lib/models/layouthint/LayoutHintCollection.js.flow +8 -7
  46. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  47. package/lib/models/list/ListDetailModel.js +25 -0
  48. package/lib/models/list/ListDetailModel.js.flow +19 -0
  49. package/lib/models/list/ListDetailModel.js.map +1 -1
  50. package/lib/models/list/ListModel.js +23 -16
  51. package/lib/models/list/ListModel.js.flow +9 -5
  52. package/lib/models/list/ListModel.js.map +1 -1
  53. package/lib/models/list/__tests__/ListDetailModel.spec.js.flow +64 -0
  54. package/lib/models/list/__tests__/ListModel.spec.js.flow +64 -2
  55. package/lib/models/panels/GroupingPanelModel.js +21 -18
  56. package/lib/models/panels/GroupingPanelModel.js.flow +10 -9
  57. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  58. package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +90 -0
  59. package/lib/models/types.js.flow +24 -6
  60. package/lib/modularui/ModularUIRequest.js +2 -1
  61. package/lib/modularui/ModularUIRequest.js.flow +1 -0
  62. package/lib/modularui/ModularUIRequest.js.map +1 -1
  63. package/package.json +11 -11
  64. package/src/hooks/useForm.js +10 -5
  65. package/src/hooks/useNotification.js +5 -2
  66. package/src/hooks/useRouter.js +12 -5
  67. package/src/models/attributes/AttributeContent.js +38 -13
  68. package/src/models/attributes/AttributeDataHelper.js +2 -1
  69. package/src/models/attributes/__tests__/AttributeContent.spec.js +4 -2
  70. package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +9 -3
  71. package/src/models/caseview/CaseViewModel.js +9 -7
  72. package/src/models/caseview/__tests__/CaseViewModel.spec.js +68 -184
  73. package/src/models/caseview/__tests__/caseview.json +38 -0
  74. package/src/models/caseview/__tests__/caseviewContributions.json +147 -0
  75. package/src/models/form/FormObjectModel.js +4 -0
  76. package/src/models/form/__tests__/FormWithContentData.json +2 -1
  77. package/src/models/layouthint/LayoutHintCollection.js +8 -7
  78. package/src/models/list/ListDetailModel.js +19 -0
  79. package/src/models/list/ListModel.js +9 -5
  80. package/src/models/list/__tests__/ListDetailModel.spec.js +64 -0
  81. package/src/models/list/__tests__/ListModel.spec.js +64 -2
  82. package/src/models/list/__tests__/caselist-34.contributions.json +1 -1
  83. package/src/models/list/__tests__/listContributions.json +1 -1
  84. package/src/models/panels/GroupingPanelModel.js +10 -9
  85. package/src/models/panels/__tests__/GroupingPanelModel.spec.js +90 -0
  86. package/src/models/panels/__tests__/groupingPanel.json +30 -0
  87. package/src/models/panels/__tests__/groupingPanelContributions.json +46 -0
  88. package/src/models/types.js +24 -6
  89. package/src/modularui/ModularUIRequest.js +1 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.9.0-beta.14](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.13...v1.9.0-beta.14) (2021-09-21)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **form-content:** update structure of content in data ([044078f](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/044078f5ced2c61c9fcba7fe585029a022e3f3dd))
10
+
11
+ ## [1.9.0-beta.13](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.12...v1.9.0-beta.13) (2021-09-21)
12
+
13
+ ### Bug Fixes
14
+
15
+ - **data-helper:** handle content on result elements ([13be04c](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/13be04ca46198ddec964401c5eda001111555260))
16
+
17
+ ## [1.9.0-beta.12](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.11...v1.9.0-beta.12) (2021-09-21)
18
+
19
+ ### Bug Fixes
20
+
21
+ - **attribute-content:** update structure of content ([d7496d2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/d7496d2862021d658a433fb5d016fc481acd5777))
22
+
23
+ ## [1.9.0-beta.11](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.10...v1.9.0-beta.11) (2021-09-20)
24
+
25
+ ### Bug Fixes
26
+
27
+ - **text:** update for new structure of introtext in contributions ([47bf99d](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/47bf99d4143678608b52f556be9158f6ced41807))
28
+
5
29
  ## [1.9.0-beta.10](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.9...v1.9.0-beta.10) (2021-09-16)
6
30
 
7
31
  ## [1.9.0-beta.9](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.9.0-beta.8...v1.9.0-beta.9) (2021-09-14)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useDispatch","Href","getSetting","HTTP_METHODS","loadModularUI","removeModelByKey","useModularUI","addRepeatableAttributeSet","cancelForm","cancelRepeatableAttributeSet","previousObject","removeRepeatableAttributeSet","showFormNotification","updateFormAttribute","FormModel","useForm","href","formHref","addParameter","form","method","POST","targetModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","useAttributeUpdate","object","attribute","value","options","useAttributeSet","save"],"mappings":"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","sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { FormObjectModel } from \"../models\";\nimport type { AttributeType } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\ntype FormNavigationHook = {\n previous: (form: FormModel) => void,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => void,\n};\n\ntype AttributeSetHook = {\n save: () => void,\n cancel: (object: FormObjectModel) => void,\n remove: (object: FormObjectModel) => void,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateModel: form,\n targetModel: FormModel,\n })\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Update attributes of a form\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"file":"useForm.js"}
1
+ {"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useDispatch","Href","getSetting","HTTP_METHODS","loadModularUI","removeModelByKey","useModularUI","addRepeatableAttributeSet","cancelForm","cancelRepeatableAttributeSet","previousObject","removeRepeatableAttributeSet","showFormNotification","updateFormAttribute","FormModel","useForm","href","formHref","addParameter","form","method","POST","targetModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","useAttributeUpdate","object","attribute","value","options","useAttributeSet","save"],"mappings":"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","sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { FormObjectModel } from \"../models\";\nimport type { AttributeType } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\nimport type {\n RemoveModelByKeyAction,\n UpdateModelAction,\n} from \"../redux/_modularui\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateModelAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateModelAction,\n cancel: (object: FormObjectModel) => UpdateModelAction,\n remove: (object: FormObjectModel) => UpdateModelAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateModel: form,\n targetModel: FormModel,\n })\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Update attributes of a form\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"file":"useForm.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useNotification.js"],"names":["useSelector","useDispatch","dismissNotification","useNotification","dispatch","state","notification","render","messageType","message","error","dismiss"],"mappings":"AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AACA,SAASC,mBAAT,QAAoC,kBAApC;;AAQA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAwB;AACrD,MAAMC,QAAQ,GAAGH,WAAW,EAA5B;;AACA,qBAAgDD,WAAW,CACzD,UAACK,KAAD;AAAA,WAAWA,KAAK,CAACC,YAAjB;AAAA,GADyD,CAA3D;AAAA,MAAQC,MAAR,gBAAQA,MAAR;AAAA,MAAgBC,WAAhB,gBAAgBA,WAAhB;AAAA,MAA6BC,OAA7B,gBAA6BA,OAA7B;AAAA,MAAsCC,KAAtC,gBAAsCA,KAAtC;;AAIA,SAAO;AACLH,IAAAA,MAAM,EAANA,MADK;AAELC,IAAAA,WAAW,EAAXA,WAFK;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILC,IAAAA,KAAK,EAALA,KAJK;AAKLC,IAAAA,OAAO,EAAE;AAAA,aAAMP,QAAQ,CAACF,mBAAmB,EAApB,CAAd;AAAA;AALJ,GAAP;AAOD,CAbM","sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { dismissNotification } from \"../redux/actions\";\n\nimport type { NotificationState } from \"../redux/types\";\ntype NotificationHook = {\n ...NotificationState,\n dismiss: () => void,\n};\n\n/**\n */\nexport const useNotification = (): NotificationHook => {\n const dispatch = useDispatch();\n const { render, messageType, message, error } = useSelector(\n (state) => state.notification\n );\n\n return {\n render,\n messageType,\n message,\n error,\n dismiss: () => dispatch(dismissNotification()),\n };\n};\n"],"file":"useNotification.js"}
1
+ {"version":3,"sources":["../../src/hooks/useNotification.js"],"names":["useSelector","useDispatch","dismissNotification","useNotification","dispatch","state","notification","render","messageType","message","error","dismiss"],"mappings":"AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AACA,SAASC,mBAAT,QAAoC,kBAApC;;AAWA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAwB;AACrD,MAAMC,QAAQ,GAAGH,WAAW,EAA5B;;AACA,qBAAgDD,WAAW,CACzD,UAACK,KAAD;AAAA,WAAWA,KAAK,CAACC,YAAjB;AAAA,GADyD,CAA3D;AAAA,MAAQC,MAAR,gBAAQA,MAAR;AAAA,MAAgBC,WAAhB,gBAAgBA,WAAhB;AAAA,MAA6BC,OAA7B,gBAA6BA,OAA7B;AAAA,MAAsCC,KAAtC,gBAAsCA,KAAtC;;AAIA,SAAO;AACLH,IAAAA,MAAM,EAANA,MADK;AAELC,IAAAA,WAAW,EAAXA,WAFK;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILC,IAAAA,KAAK,EAALA,KAJK;AAKLC,IAAAA,OAAO,EAAE;AAAA,aAAMP,QAAQ,CAACF,mBAAmB,EAApB,CAAd;AAAA;AALJ,GAAP;AAOD,CAbM","sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { dismissNotification } from \"../redux/actions\";\n\nimport type {\n DismissNotificationAction,\n NotificationState,\n} from \"../redux/types\";\ntype NotificationHook = {\n ...NotificationState,\n dismiss: () => DismissNotificationAction,\n};\n\n/**\n */\nexport const useNotification = (): NotificationHook => {\n const dispatch = useDispatch();\n const { render, messageType, message, error } = useSelector(\n (state) => state.notification\n );\n\n return {\n render,\n messageType,\n message,\n error,\n dismiss: () => dispatch(dismissNotification()),\n };\n};\n"],"file":"useNotification.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useRouter.js"],"names":["useDispatch","useSelector","push","replace","go","goBack","goForward","useLocation","state","router","location","useLocationKey","key","useQuerystring","search","usePathname","pathname","useNavigation","dispatch","delta"],"mappings":"AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AAGA,SAASC,IAAI,IAAJA,KAAT,EAAeC,OAAO,IAAPA,QAAf,EAAwBC,EAAE,IAAFA,GAAxB,EAA4BC,MAAM,IAANA,OAA5B,EAAoCC,SAAS,IAATA,UAApC,QAAqD,0BAArD;;AAcA;AACA;AACA,OAAO,IAAMC,WAA4B,GAAG,SAA/BA,WAA+B;AAAA,SAC1CN,WAAW,CAAC,UAACO,KAAD;AAAA,WAAWA,KAAK,CAACC,MAAN,CAAaC,QAAxB;AAAA,GAAD,CAD+B;AAAA,CAArC;AAGP;AACA;;AACA,OAAO,IAAMC,cAAkC,GAAG,SAArCA,cAAqC;AAAA;;AAAA,6CAChDJ,WAAW,EADqC,iDAChD,aAAeK,GADiC,+DAC1B,EAD0B;AAAA,CAA3C;AAGP;AACA;;AACA,OAAO,IAAMC,cAAkC,GAAG,SAArCA,cAAqC;AAAA;;AAAA,0BAAMN,WAAW,EAAjB,kDAAM,cAAeO,MAArB;AAAA,CAA3C;AAEP;AACA;;AACA,OAAO,IAAMC,WAA4B,GAAG,SAA/BA,WAA+B;AAAA;;AAAA,0BAAMR,WAAW,EAAjB,kDAAM,cAAeS,QAArB;AAAA,CAArC;AAEP;AACA;;AACA,OAAO,IAAMC,aAAgC,GAAG,SAAnCA,aAAmC,GAAM;AACpD,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,SAAO;AACLE,IAAAA,IAAI,EAAE,cAACQ,QAAD,EAAmCF,KAAnC;AAAA,aACJU,QAAQ,CAAChB,KAAI,CAACQ,QAAD,EAAWF,KAAX,CAAL,CADJ;AAAA,KADD;AAGLL,IAAAA,OAAO,EAAE,iBAACO,QAAD,EAAmCF,KAAnC;AAAA,aACPU,QAAQ,CAACf,QAAO,CAACO,QAAD,EAAWF,KAAX,CAAR,CADD;AAAA,KAHJ;AAKLJ,IAAAA,EAAE,EAAE,YAACe,KAAD;AAAA,aAAmBD,QAAQ,CAACd,GAAE,CAACe,KAAD,CAAH,CAA3B;AAAA,KALC;AAMLd,IAAAA,MAAM,EAAE;AAAA,aAAMa,QAAQ,CAACb,OAAM,EAAP,CAAd;AAAA,KANH;AAOLC,IAAAA,SAAS,EAAE;AAAA,aAAMY,QAAQ,CAACZ,UAAS,EAAV,CAAd;AAAA;AAPN,GAAP;AASD,CAZM","sourcesContent":["// @flow\nimport { useDispatch, useSelector } from \"react-redux\";\nimport type { Location, LocationShape } from \"react-router\";\n\nimport { push, replace, go, goBack, goForward } from \"../redux/_router/actions\";\n\ntype UseLocationHook = () => Location;\ntype UseLocationKeyHook = () => string;\ntype UseQuerystringHook = () => string;\ntype UsePathnameHook = () => string;\ntype UseNavigationHook = () => {\n push: (location: LocationShape | string, state?: { ... }) => void,\n replace: (location: LocationShape | string, state?: { ... }) => void,\n go: (delta: number) => void,\n goBack: () => void,\n goForward: () => void,\n};\n\n/**\n */\nexport const useLocation: UseLocationHook = () =>\n useSelector((state) => state.router.location);\n\n/**\n */\nexport const useLocationKey: UseLocationKeyHook = () =>\n useLocation()?.key ?? \"\";\n\n/**\n */\nexport const useQuerystring: UseQuerystringHook = () => useLocation()?.search;\n\n/**\n */\nexport const usePathname: UsePathnameHook = () => useLocation()?.pathname;\n\n/**\n */\nexport const useNavigation: UseNavigationHook = () => {\n const dispatch = useDispatch();\n\n return {\n push: (location: LocationShape | string, state?: { ... }) =>\n dispatch(push(location, state)),\n replace: (location: LocationShape | string, state?: { ... }) =>\n dispatch(replace(location, state)),\n go: (delta: number) => dispatch(go(delta)),\n goBack: () => dispatch(goBack()),\n goForward: () => dispatch(goForward()),\n };\n};\n"],"file":"useRouter.js"}
1
+ {"version":3,"sources":["../../src/hooks/useRouter.js"],"names":["useDispatch","useSelector","push","replace","go","goBack","goForward","useLocation","state","router","location","useLocationKey","key","useQuerystring","search","usePathname","pathname","useNavigation","dispatch","delta"],"mappings":"AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AAGA,SAASC,IAAI,IAAJA,KAAT,EAAeC,OAAO,IAAPA,QAAf,EAAwBC,EAAE,IAAFA,GAAxB,EAA4BC,MAAM,IAANA,OAA5B,EAAoCC,SAAS,IAATA,UAApC,QAAqD,0BAArD;;AAqBA;AACA;AACA,OAAO,IAAMC,WAA4B,GAAG,SAA/BA,WAA+B;AAAA,SAC1CN,WAAW,CAAC,UAACO,KAAD;AAAA,WAAWA,KAAK,CAACC,MAAN,CAAaC,QAAxB;AAAA,GAAD,CAD+B;AAAA,CAArC;AAGP;AACA;;AACA,OAAO,IAAMC,cAAkC,GAAG,SAArCA,cAAqC;AAAA;;AAAA,6CAChDJ,WAAW,EADqC,iDAChD,aAAeK,GADiC,+DAC1B,EAD0B;AAAA,CAA3C;AAGP;AACA;;AACA,OAAO,IAAMC,cAAkC,GAAG,SAArCA,cAAqC;AAAA;;AAAA,0BAAMN,WAAW,EAAjB,kDAAM,cAAeO,MAArB;AAAA,CAA3C;AAEP;AACA;;AACA,OAAO,IAAMC,WAA4B,GAAG,SAA/BA,WAA+B;AAAA;;AAAA,0BAAMR,WAAW,EAAjB,kDAAM,cAAeS,QAArB;AAAA,CAArC;AAEP;AACA;;AACA,OAAO,IAAMC,aAAgC,GAAG,SAAnCA,aAAmC,GAAM;AACpD,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,SAAO;AACLE,IAAAA,IAAI,EAAE,cAACQ,QAAD,EAAmCF,KAAnC;AAAA,aACJU,QAAQ,CAAChB,KAAI,CAACQ,QAAD,EAAWF,KAAX,CAAL,CADJ;AAAA,KADD;AAGLL,IAAAA,OAAO,EAAE,iBAACO,QAAD,EAAmCF,KAAnC;AAAA,aACPU,QAAQ,CAACf,QAAO,CAACO,QAAD,EAAWF,KAAX,CAAR,CADD;AAAA,KAHJ;AAKLJ,IAAAA,EAAE,EAAE,YAACe,KAAD;AAAA,aAAmBD,QAAQ,CAACd,GAAE,CAACe,KAAD,CAAH,CAA3B;AAAA,KALC;AAMLd,IAAAA,MAAM,EAAE;AAAA,aAAMa,QAAQ,CAACb,OAAM,EAAP,CAAd;AAAA,KANH;AAOLC,IAAAA,SAAS,EAAE;AAAA,aAAMY,QAAQ,CAACZ,UAAS,EAAV,CAAd;AAAA;AAPN,GAAP;AASD,CAZM","sourcesContent":["// @flow\nimport { useDispatch, useSelector } from \"react-redux\";\nimport type { Location, LocationShape } from \"react-router\";\n\nimport { push, replace, go, goBack, goForward } from \"../redux/_router/actions\";\nimport type {\n GoAction,\n GoBackAction,\n GoForwardAction,\n PushAction,\n ReplaceAction,\n} from \"../redux\";\n\ntype UseLocationHook = () => Location;\ntype UseLocationKeyHook = () => string;\ntype UseQuerystringHook = () => string;\ntype UsePathnameHook = () => string;\ntype UseNavigationHook = () => {\n push: (location: LocationShape | string, state?: { ... }) => PushAction,\n replace: (location: LocationShape | string, state?: { ... }) => ReplaceAction,\n go: (delta: number) => GoAction,\n goBack: () => GoBackAction,\n goForward: () => GoForwardAction,\n};\n\n/**\n */\nexport const useLocation: UseLocationHook = () =>\n useSelector((state) => state.router.location);\n\n/**\n */\nexport const useLocationKey: UseLocationKeyHook = () =>\n useLocation()?.key ?? \"\";\n\n/**\n */\nexport const useQuerystring: UseQuerystringHook = () => useLocation()?.search;\n\n/**\n */\nexport const usePathname: UsePathnameHook = () => useLocation()?.pathname;\n\n/**\n */\nexport const useNavigation: UseNavigationHook = () => {\n const dispatch = useDispatch();\n\n return {\n push: (location: LocationShape | string, state?: { ... }) =>\n dispatch(push(location, state)),\n replace: (location: LocationShape | string, state?: { ... }) =>\n dispatch(replace(location, state)),\n go: (delta: number) => dispatch(go(delta)),\n goBack: () => dispatch(goBack()),\n goForward: () => dispatch(goForward()),\n };\n};\n"],"file":"useRouter.js"}
@@ -28,6 +28,8 @@ import _getIteratorMethod from "@babel/runtime-corejs3/core-js/get-iterator-meth
28
28
  import { retrieveText } from "../../utils/helpers/text";
29
29
  import { hasAllContentInData } from "../../constants/Settings";
30
30
  import SectionModel from "../content/SectionModel";
31
+ import LayoutHintCollection from "../layouthint/LayoutHintCollection";
32
+ import { isPlainObject } from "../../utils";
31
33
 
32
34
  var AttributeContent = /*#__PURE__*/function () {
33
35
  function AttributeContent(content) {
@@ -52,13 +54,29 @@ var AttributeContent = /*#__PURE__*/function () {
52
54
  }, {
53
55
  key: "header",
54
56
  get: function get() {
55
- var _this$_content, _this$_content$header, _this$_content2, _this$_content2$heade, _this$_content2$heade2;
57
+ var _this$_content, _this$_content$header, _this$_content2, _this$_content2$heade;
56
58
 
59
+ var headerLabel = null;
60
+ var headerDescription = null;
57
61
  var label = (_this$_content = this._content) === null || _this$_content === void 0 ? void 0 : (_this$_content$header = _this$_content.header) === null || _this$_content$header === void 0 ? void 0 : _this$_content$header.label;
58
- var description = (_this$_content2 = this._content) === null || _this$_content2 === void 0 ? void 0 : (_this$_content2$heade = _this$_content2.header) === null || _this$_content2$heade === void 0 ? void 0 : (_this$_content2$heade2 = _this$_content2$heade.description) === null || _this$_content2$heade2 === void 0 ? void 0 : _this$_content2$heade2.message;
62
+
63
+ if (label) {
64
+ headerLabel = label;
65
+ }
66
+
67
+ var description = (_this$_content2 = this._content) === null || _this$_content2 === void 0 ? void 0 : (_this$_content2$heade = _this$_content2.header) === null || _this$_content2$heade === void 0 ? void 0 : _this$_content2$heade.description;
68
+
69
+ if (description) {
70
+ if (isPlainObject(description) && "message" in description) {
71
+ headerDescription = description.message;
72
+ } else if (typeof description === "string") {
73
+ headerDescription = description;
74
+ }
75
+ }
76
+
59
77
  return {
60
- label: label,
61
- description: description
78
+ label: headerLabel,
79
+ description: headerDescription
62
80
  };
63
81
  }
64
82
  /**
@@ -73,16 +91,31 @@ var AttributeContent = /*#__PURE__*/function () {
73
91
  var _this$_content$elemen;
74
92
 
75
93
  return (_this$_content$elemen = this._content.elements) === null || _this$_content$elemen === void 0 ? void 0 : _mapInstanceProperty(_this$_content$elemen).call(_this$_content$elemen, function (element) {
76
- if ("textFragmentElement" in element) {
94
+ if ("propertyElement" in element) {
77
95
  // $FlowIssue
78
- var _element$textFragment = element.textFragmentElement,
79
- label = _element$textFragment.label,
80
- id = _element$textFragment.id,
96
+ var _element$propertyElem = element.propertyElement,
97
+ label = _element$propertyElem.label,
98
+ layouthint = _element$propertyElem.layouthint,
99
+ properties = _element$propertyElem.properties;
100
+ return {
101
+ propertyElement: {
102
+ label: label,
103
+ layouthint: new LayoutHintCollection(layouthint),
104
+ properties: properties
105
+ }
106
+ };
107
+ }
108
+
109
+ if ("textFragmentElement" in element) {
110
+ var _element$textFragment = // $FlowIssue
111
+ element.textFragmentElement,
112
+ _label = _element$textFragment.label,
113
+ _layouthint = _element$textFragment.layouthint,
81
114
  textfragments = _element$textFragment.textfragments;
82
115
  return {
83
116
  textFragmentElement: {
84
- id: id,
85
- label: label,
117
+ label: _label,
118
+ layouthint: new LayoutHintCollection(_layouthint),
86
119
  textfragments: _mapInstanceProperty(textfragments).call(textfragments, function (textfragment) {
87
120
  return _objectSpread(_objectSpread({}, textfragment), {}, {
88
121
  text: retrieveText(textfragment.text)
@@ -95,11 +128,13 @@ var AttributeContent = /*#__PURE__*/function () {
95
128
  if ("contentElement" in element) {
96
129
  // $FlowIssue
97
130
  var _element$contentEleme = element.contentElement,
98
- _label = _element$contentEleme.label,
131
+ _label2 = _element$contentEleme.label,
132
+ _layouthint2 = _element$contentEleme.layouthint,
99
133
  sections = _element$contentEleme.sections;
100
134
  return {
101
135
  contentElement: {
102
- label: _label,
136
+ label: _label2,
137
+ layouthint: new LayoutHintCollection(_layouthint2),
103
138
  sections: _mapInstanceProperty(sections).call(sections, function (section) {
104
139
  return new SectionModel(section, null);
105
140
  })
@@ -120,15 +155,9 @@ var AttributeContent = /*#__PURE__*/function () {
120
155
  }, {
121
156
  key: "label",
122
157
  get: function get() {
123
- return this.header.label;
124
- }
125
- /**
126
- */
158
+ var _this$_content4;
127
159
 
128
- }, {
129
- key: "description",
130
- get: function get() {
131
- return this.header.description;
160
+ return (_this$_content4 = this._content) === null || _this$_content4 === void 0 ? void 0 : _this$_content4.label;
132
161
  }
133
162
  /**
134
163
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","AttributeContent","content","_content","label","header","description","message","elements","element","textFragmentElement","id","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","ids","properties","property","type","keys","types","referredSections","push","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport type {\n ContentData,\n PropertyData,\n TextFragmentData,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n const label = this._content?.header?.label;\n const description = this._content?.header?.description?.message;\n\n return { label, description };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (\"textFragmentElement\" in element) {\n // $FlowIssue\n const { label, id, textfragments } = element.textFragmentElement;\n return {\n textFragmentElement: {\n id,\n label,\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (\"contentElement\" in element) {\n // $FlowIssue\n const { label, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this.header.label;\n }\n\n /**\n */\n get description(): ?string {\n return this.header.description;\n }\n\n /**\n */\n getContentElements<T>(elementName: string, collectionName: string): Array<T> {\n return this.elements\n .filter((element) => elementName in element)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElements<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<PropertyData> {\n return this.properties.filter((property) => ids.includes(property.type));\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElements<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by type\n */\n getTextFragmentByKeys(keys: Array<string>): Array<TextFragmentData> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElements<SectionModel>(\"contentElement\", \"sections\");\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","content","_content","headerLabel","headerDescription","label","header","description","message","elements","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","ids","property","type","keys","types","referredSections","push","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport type {\n ContentData,\n PropertyData,\n TextFragmentData,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (\"propertyElement\" in element) {\n // $FlowIssue\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (\"textFragmentElement\" in element) {\n const { label, layouthint, textfragments } =\n // $FlowIssue\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (\"contentElement\" in element) {\n // $FlowIssue\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string, collectionName: string): Array<T> {\n return this.elements\n .filter((element) => elementName in element)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElements<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<PropertyData> {\n return this.properties.filter((property) => ids.includes(property.type));\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElements<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by type\n */\n getTextFragmentByKeys(keys: Array<string>): Array<TextFragmentData> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElements<SectionModel>(\"contentElement\", \"sections\");\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
@@ -300,7 +300,7 @@ var AttributeDataHelper = /*#__PURE__*/function () {
300
300
  key: "content",
301
301
  get: function get() {
302
302
  if (this._attribute.content) {
303
- var pickedContent = pick(this._attribute.content, ["header", "label", "description", "elements"]);
303
+ var pickedContent = pick(this._attribute.content, ["header", "label", "elements", "layouthint"]);
304
304
 
305
305
  if (_Object$keys(pickedContent).length > 0) {
306
306
  return pickedContent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"names":["cloneDeep","pick","has","isPlainObject","AttributeDataHelper","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","parentKey","childKey","elements","element","parentData","content","childData","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","createChild","attribute","suggestions","suggestion","options","option","selected","code","static","attrDS","message","isResult","referenceDate","pickedContent","length","links","child","subChild","getData"],"mappings":";;;;;;;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,kBAAtB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AAEA,SAASC,GAAT,EAAcC,aAAd,QAAmC,6BAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;;IACMC,mB;AAMJ;AACF;AACE,+BACEC,IADF,EAEEC,GAFF,EAGEC,YAHF,EAIE;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA,SAAKC,IAAL,GAAYF,GAAZ;;AAEA,QAAIG,KAAK,CAACC,OAAN,CAAcL,IAAd,CAAJ,EAAyB;AACvB,WAAKM,UAAL,GACE,sBAAAN,IAAI,MAAJ,CAAAA,IAAI,EACF,UAACO,IAAD;AAAA,eACEA,IAAI,CAACC,SAAL,KAAmBP,GAAnB,IAA0BM,IAAI,CAACE,IAAL,KAAcR,GAAxC,IAA+CM,IAAI,CAACG,KAAL,KAAeT,GADhE;AAAA,OADE,CAAJ,IAGK,EAJP;AAKA,WAAKU,MAAL,GAAc,KAAKC,QAAL,CAAc,KAAKN,UAAnB,CAAd;AACD,KAPD,MAOO;AACL,UAAMO,aAAa,GAAGlB,SAAS,CAACK,IAAD,CAA/B;AACAa,MAAAA,aAAa,CAACC,MAAd,GAAuBlB,IAAI,CAACI,IAAI,CAACc,MAAN,EAAc,CACvC,SADuC,EAEvC,UAFuC,EAGvC,eAHuC,EAIvC,YAJuC,CAAd,CAA3B;AAOA,WAAKR,UAAL,GAAkBO,aAAlB;AAEA,WAAKF,MAAL,GAAcX,IAAI,CAACC,GAAD,CAAJ,KAAcc,SAAd,GAA0B,KAAKH,QAAL,CAAcZ,IAAd,CAA1B,GAAgDA,IAAI,CAACC,GAAD,CAAlE;AACD;;AAED,SAAKe,SAAL,GAAiB,KAAKC,cAAL,CAAoBjB,IAApB,EAA0BE,YAA1B,CAAjB;AACD;AAED;AACF;;;;;WACE,mBACEF,IADF,EAEEkB,SAFF,EAGEC,QAHF,EAIU;AACR,UAAIf,KAAK,CAACC,OAAN,CAAcL,IAAd,CAAJ,EAAyB;AACvB,YAAII,KAAK,CAACC,OAAN,CAAc,KAAKC,UAAL,CAAgBc,QAA9B,CAAJ,EAA6C;AAAA;;AAC3C,iBAAO,sCAAKd,UAAL,CAAgBc,QAAhB,iBACL,UAACC,OAAD;AAAA,mBAAaA,OAAO,CAACb,SAAR,KAAsBW,QAAnC;AAAA,WADK,CAAP;AAGD;AACF,OAND,MAMO,IAAItB,GAAG,CAACG,IAAD,EAAOkB,SAAP,CAAH,IAAwBpB,aAAa,CAACE,IAAI,CAACkB,SAAD,CAAL,CAAzC,EAA4D;AAAA;;AACjE,YAAMI,UAAU,GAAGtB,IAAI,CAACkB,SAAD,CAAvB;;AACA,YAAIpB,aAAa,CAACwB,UAAD,CAAb,qBAA6BtB,IAAI,CAACuB,OAAlC,0CAA6B,cAAeJ,QAAf,CAAjC,EAA2D;AACzD,iDAAYG,UAAZ;AAAwBC,YAAAA,OAAO,EAAEvB,IAAI,CAACuB,OAAL,CAAaJ,QAAb;AAAjC;AACD;;AACD,eAAOG,UAAP;AACD,OANM,MAMA,IAAIzB,GAAG,CAACG,IAAD,EAAOmB,QAAP,CAAH,IAAuBrB,aAAa,CAACE,IAAI,CAACmB,QAAD,CAAL,CAAxC,EAA0D;AAC/D,eAAOnB,IAAI,CAACmB,QAAD,CAAX;AACD;;AAED,UAAIrB,aAAa,CAACE,IAAD,CAAjB,EAAyB;AACvB,eAAOA,IAAP;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;WACE,qBACEA,IADF,EAEEwB,SAFF,EAGEC,SAHF,EAIuB;AACrB,UAAMC,aAAa,GACjB5B,aAAa,CAACE,IAAD,CAAb,IAAuB,CAACI,KAAK,CAACC,OAAN,CAAcL,IAAd,CAAxB,GACIA,IAAI,CAAC0B,aADT,GAEIX,SAHN;AAKA,UAAIY,eAAe,GAAG,IAAtB;;AACA,UAAIF,SAAS,CAACE,eAAd,EAA+B;AAC7BA,QAAAA,eAAe,GAAGF,SAAS,CAACE,eAA5B;AACD,OAFD,MAEO,IACL7B,aAAa,CAACE,IAAD,CAAb,IACA,OAAOA,IAAI,CAACC,GAAZ,KAAoB,QADpB,IAEAwB,SAAS,CAACxB,GAHL,EAIL;AAAA;;AACA0B,QAAAA,eAAe,iDAAM3B,IAAI,CAACC,GAAX,wBAAkBwB,SAAS,CAACxB,GAA5B,CAAf;AACD;;AAED,aAAO,IAAIF,mBAAJ,iCAEAyB,SAFA;AAGHE,QAAAA,aAAa,EAAbA,aAHG;AAIHC,QAAAA,eAAe,EAAfA;AAJG,UAMLF,SAAS,CAACxB,GANL,EAOLwB,SAAS,CAACG,QAPL,CAAP;AASD;AAED;AACF;;;;WACE,wBACE5B,IADF,EAG8B;AAAA;;AAAA,UAD5BE,YAC4B,uEADE,EACF;AAC5B,UAAM2B,eAAe,GAAGzB,KAAK,CAACC,OAAN,CAAc,KAAKyB,KAAnB,CAAxB;;AAEA,UAAID,eAAJ,EAAqB;AAAA;;AACnB,eAAO,sCAAKC,KAAL,kBAAe,UAACA,KAAD;AAAA,iBACpB,qBAAA5B,YAAY,MAAZ,CAAAA,YAAY,EAAK,UAACuB,SAAD,EAAe;AAC9B,gBAAMD,SAAS,GAAG,KAAI,CAACA,SAAL,CAAeM,KAAf,EAAsB,KAAI,CAAC7B,GAA3B,EAAgCwB,SAAS,CAACxB,GAA1C,CAAlB;;AAEA,mBAAO,KAAI,CAAC8B,WAAL,CAAiB/B,IAAjB,EAAuBwB,SAAvB,EAAkCC,SAAlC,CAAP;AACD,WAJW,CADQ;AAAA,SAAf,CAAP;AAOD;;AAED,aAAO,qBAAAvB,YAAY,MAAZ,CAAAA,YAAY,EAAK,UAACuB,SAAD,EAAe;AACrC,YAAMD,SAAS,GAAG,KAAI,CAACA,SAAL,CAAexB,IAAf,EAAqB,KAAI,CAACC,GAA1B,EAA+BwB,SAAS,CAACxB,GAAzC,CAAlB;;AAEA,eAAO,KAAI,CAAC8B,WAAL,CAAiB/B,IAAjB,EAAuBwB,SAAvB,EAAkCC,SAAlC,CAAP;AACD,OAJkB,CAAnB;AAKD;AAED;AACF;;;;WACE,kBAASO,SAAT,EAAiC;AAC/B,UAAI,YAAYA,SAAhB,EAA2B;AACzB,uCAAOA,SAAP;AACD;;AAED,UAAI,WAAWA,SAAf,EAA0B;AACxB,eAAOA,SAAS,CAACF,KAAjB;AACD;;AAED,UAAI,iBAAiBE,SAArB,EAAgC;AAC9B,eAAOA,SAAS,CAACC,WAAjB;AACD;;AAED,UAAI,gBAAgBD,SAApB,EAA+B;AAC7B,eAAOA,SAAS,CAACE,UAAjB;AACD;;AAED,UAAI9B,KAAK,CAACC,OAAN,CAAc2B,SAAS,CAACG,OAAxB,CAAJ,EAAsC;AAAA;;AACpC,eAAO,qEAAAH,SAAS,CAACG,OAAV,kBACG,UAACC,MAAD;AAAA,iBAAYA,MAAM,CAACC,QAAnB;AAAA,SADH,mBAEA,UAACD,MAAD;AAAA,iBAAYA,MAAM,CAACE,IAAP,IAAeF,MAAM,CAACnC,GAAlC;AAAA,SAFA,CAAP;AAGD;;AAED,aAAO,IAAP;AACD;AAED;AACF;;;;SACE,eAAkB;AAChB,aAAO,KAAKE,IAAZ;AACD;AAED;AACF;;;;SACE,eAAiB;AACf,aAAO,KAAKQ,MAAZ;AACD;AAED;AACF;;;;SACE,eAAsB;AACpB,aAAO,KAAKL,UAAL,CAAgBiC,MAAhB,IAA0B,KAAjC;AACD;AAED;AACF;;;;SACE,eAAiB;AACf,aAAO,KAAKjC,UAAL,CAAgBQ,MAAhB,IAA0B,KAAK,CAAtC;AACD;AAED;AACF;;;;SACE,eAA8B;AAC5B,aAAO,KAAKR,UAAL,CAAgBqB,eAAhB,IAAmC,KAAK1B,GAA/C;AACD;AAED;AACF;AACA;AACA;;AACE;AACF;;;;SACE,eAAyB;AACvB,UAAQyB,aAAR,GAA0B,KAAKpB,UAA/B,CAAQoB,aAAR;;AACA,UAAI,CAACA,aAAL,EAAoB;AAClB,eAAO,KAAK,CAAZ;AACD;;AAED,UAAItB,KAAK,CAACC,OAAN,CAAcqB,aAAd,CAAJ,EAAkC;AAChC,eAAOA,aAAP;AACD,OAFD,MAEO,IAAIA,aAAa,CAAC,KAAKC,eAAN,CAAjB,EAAyC;AAC9C,YAAMa,MAAM,GAAGd,aAAa,CAAC,KAAKC,eAAN,CAA5B;AACA,eAAO,qBAAAa,MAAM,MAAN,CAAAA,MAAM,EAAK,UAACjC,IAAD,EAAU;AAC1B,cAAIA,IAAI,CAACa,QAAT,EAAmB;AACjB,mDACKb,IADL;AAEEa,cAAAA,QAAQ,kCACHb,IAAI,CAACa,QADF;AAENM,gBAAAA,aAAa,EAAbA;AAFM;AAFV;AAOD;;AAED,iBAAOnB,IAAP;AACD,SAZY,CAAb;AAaD;;AAED,aAAO,KAAK,CAAZ;AACD;AAED;AACF;;;;SACE,eAAmB;AACjB,aAAO,KAAKD,UAAL,CAAgB6B,OAAhB,IAA2B,KAAK,CAAvC;AACD;AAED;AACF;;;;SACE,eAAmB;AACjB,aAAO,KAAK7B,UAAL,CAAgBmC,OAAhB,IAA2B,KAAK,CAAvC;AACD;AAED;AACF;;;;SACE,eAAwB;AACtB,aAAO,KAAKnC,UAAL,CAAgBoC,QAAhB,IAA4B,KAAnC;AACD;AAED;AACF;;;;SACE,eAAyB;AACvB,aAAO,KAAKpC,UAAL,CAAgBqC,aAAhB,IAAiC,KAAK,CAA7C;AACD;AAED;AACF;;;;SACE,eAA2C;AACzC,aAAO,KAAK3B,SAAL,IAAkB,EAAzB;AACD;AAED;AACF;;;;SACE,eAAsB;AACpB,UAAI,KAAKV,UAAL,CAAgBiB,OAApB,EAA6B;AAC3B,YAAMqB,aAAa,GAAGhD,IAAI,CAAC,KAAKU,UAAL,CAAgBiB,OAAjB,EAA0B,CAClD,QADkD,EAElD,OAFkD,EAGlD,aAHkD,EAIlD,UAJkD,CAA1B,CAA1B;;AAMA,YAAI,aAAYqB,aAAZ,EAA2BC,MAA3B,GAAoC,CAAxC,EAA2C;AACzC,iBAAOD,aAAP;AACD;AACF;;AAED,aAAO,IAAP;AACD;AAED;AACF;;;;WACE,mBAAkB;AAAA;;AAChB,aAAO;AACL3C,QAAAA,GAAG,EAAE,KAAKA,GADL;AAEL6B,QAAAA,KAAK,EAAE,KAAKA,KAFP;AAGLS,QAAAA,MAAM,EAAE,KAAKA,MAHR;AAILzB,QAAAA,MAAM,EAAE,KAAKgC,KAJR;AAKLpB,QAAAA,aAAa,EAAE,KAAKA,aALf;AAMLC,QAAAA,eAAe,EAAE,KAAKA,eANjB;AAOLQ,QAAAA,OAAO,EAAE,KAAKA,OAPT;AAQLM,QAAAA,OAAO,EAAE,KAAKA,OART;AASLC,QAAAA,QAAQ,EAAE,KAAKA,QATV;AAULC,QAAAA,aAAa,EAAE,KAAKA,aAVf;AAWLf,QAAAA,QAAQ,EAAE,sCAAKA,QAAL,kBAAkB,UAACmB,KAAD;AAAA,iBAC1B3C,KAAK,CAACC,OAAN,CAAc0C,KAAd,IACI,qBAAAA,KAAK,MAAL,CAAAA,KAAK,EAAK,UAACC,QAAD;AAAA,mBAAcA,QAAQ,CAACC,OAAT,EAAd;AAAA,WAAL,CADT,GAEIF,KAAK,CAACE,OAAN,EAHsB;AAAA,SAAlB,CAXL;AAgBL1B,QAAAA,OAAO,EAAE,KAAKA;AAhBT,OAAP;AAkBD;;;;;;AAGH,eAAexB,mBAAf","sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n this._value = data[key] === undefined ? this.getValue(data) : data[key];\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"description\",\n \"elements\",\n ]);\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"file":"AttributeDataHelper.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"names":["cloneDeep","pick","has","isPlainObject","AttributeDataHelper","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","parentKey","childKey","elements","element","parentData","content","childData","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","createChild","attribute","suggestions","suggestion","options","option","selected","code","static","attrDS","message","isResult","referenceDate","pickedContent","length","links","child","subChild","getData"],"mappings":"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","sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n this._value = data[key] === undefined ? this.getValue(data) : data[key];\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"file":"AttributeDataHelper.js"}
@@ -7,9 +7,9 @@ import _inherits from "@babel/runtime-corejs3/helpers/esm/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime-corejs3/helpers/esm/getPrototypeOf";
9
9
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
- import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
11
10
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
12
11
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
12
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
13
13
 
14
14
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15
15
 
@@ -124,16 +124,20 @@ var CaseViewModel = /*#__PURE__*/function (_DetailModel) {
124
124
  }, {
125
125
  key: "introtext",
126
126
  get: function get() {
127
- if (this.contributions.texts) {
128
- var _context;
127
+ if (this.data._text) {
128
+ var _this$data$_text$mess;
129
129
 
130
- var text = _findInstanceProperty(_context = this.contributions.texts).call(_context, function (item) {
131
- return item.type === "master";
132
- });
130
+ return (_this$data$_text$mess = this.data._text.message) !== null && _this$data$_text$mess !== void 0 ? _this$data$_text$mess : this.data._text;
131
+ }
133
132
 
134
- if (text) {
135
- return text.text;
136
- }
133
+ if (this.contributions.text) {
134
+ var _this$contributions$t;
135
+
136
+ return (_this$contributions$t = this.contributions.text.rawText) !== null && _this$contributions$t !== void 0 ? _this$contributions$t : this.contributions.text;
137
+ }
138
+
139
+ if (Array.isArray(this.contributions.texts)) {
140
+ return this.contributions.texts[0].text;
137
141
  }
138
142
 
139
143
  return "";
@@ -159,15 +163,15 @@ var CaseViewModel = /*#__PURE__*/function (_DetailModel) {
159
163
  }, {
160
164
  key: "createTaskGroupCollection",
161
165
  value: function createTaskGroupCollection() {
162
- var _context2;
166
+ var _context;
163
167
 
164
168
  var allTaskgroupData = this.getData("taskgroups", []);
165
169
  var allTaskgroupContributions = this.getContribution("taskgroups", []);
166
- this.taskGroupCollection = _mapInstanceProperty(_context2 = _filterInstanceProperty(allTaskgroupData).call(allTaskgroupData, function (taskgroup) {
170
+ this.taskGroupCollection = _mapInstanceProperty(_context = _filterInstanceProperty(allTaskgroupData).call(allTaskgroupData, function (taskgroup) {
167
171
  return allTaskgroupContributions.some(function (taskgroupContribution) {
168
172
  return taskgroupContribution.name === taskgroup.name;
169
173
  });
170
- })).call(_context2, function (taskgroup) {
174
+ })).call(_context, function (taskgroup) {
171
175
  var taskgroupContributions = _findInstanceProperty(allTaskgroupContributions).call(allTaskgroupContributions, function (taskgroupContribution) {
172
176
  return taskgroupContribution.name === taskgroup.name;
173
177
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/caseview/CaseViewModel.js"],"names":["DetailModel","Href","TaskGroupCollection","TaskGroupModel","TITLE","CaseViewModel","caseviewData","createTaskGroupCollection","links","getLinksByGroup","all","models","taskGroupModels","i","length","push","taskGroupCollection","add","attributeCollection","getAttributeByLayoutHint","casename","value","introtext","contributions","texts","text","item","type","selfLink","getLinkByKey","Error","href","allTaskgroupData","getData","allTaskgroupContributions","getContribution","taskgroup","some","taskgroupContribution","name","taskgroupContributions","create","_taskGroupCollection","taskgroups","hasItems","data","resourcetype"],"mappings":"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","sourcesContent":["// @flow\nimport DetailModel from \"../detail/DetailModel\";\nimport Href from \"../href/Href\";\nimport TaskGroupCollection from \"../taskgroup/TaskGroupCollection\";\nimport TaskGroupModel from \"../taskgroup/TaskGroupModel\";\n\nimport { TITLE } from \"../../constants/LayoutHints\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model containing the details of one case.\n */\nexport default class CaseViewModel extends DetailModel {\n _taskGroupCollection: TaskGroupCollection;\n\n /**\n */\n constructor(caseviewData: ModularUIResponse) {\n super(caseviewData);\n\n this.createTaskGroupCollection();\n }\n\n /**\n */\n get type(): string {\n return \"CaseView\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"CaseView\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.links.getLinksByGroup(\"taskgroup\").all;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"panel\");\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n super.setChildModels(models);\n\n const taskGroupModels = [];\n for (let i = 0; i < models.length; i++) {\n if (models[i] instanceof TaskGroupModel) {\n taskGroupModels.push(models[i]);\n }\n }\n\n this.taskGroupCollection.add(taskGroupModels);\n }\n\n /**\n * Getting the case name\n */\n get casename(): ?AttributeType {\n return this.attributeCollection.getAttributeByLayoutHint(TITLE);\n }\n\n /**\n */\n get label(): string {\n return this.casename ? this.casename.value : \"\";\n }\n\n /**\n * Check if an introtext exists for this caseview\n */\n hasIntroText(): boolean {\n return this.introtext !== \"\";\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.contributions.texts) {\n const text = this.contributions.texts.find(\n (item) => item.type === \"master\"\n );\n\n if (text) {\n return text.text;\n }\n }\n\n return \"\";\n }\n\n /**\n * Getting the self href\n */\n get selfhref(): Href {\n const selfLink = this.links.getLinkByKey(\"self\");\n\n if (selfLink === null) {\n throw new Error(\"No self href available\");\n }\n\n return new Href(selfLink.href);\n }\n\n /**\n */\n createTaskGroupCollection() {\n const allTaskgroupData = this.getData(\"taskgroups\", []);\n const allTaskgroupContributions = this.getContribution(\"taskgroups\", []);\n\n this.taskGroupCollection = allTaskgroupData\n .filter((taskgroup) =>\n allTaskgroupContributions.some(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n )\n )\n .map((taskgroup) => {\n const taskgroupContributions = allTaskgroupContributions.find(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n );\n\n return TaskGroupModel.create(\n taskgroup.name,\n taskgroup,\n taskgroupContributions\n );\n });\n }\n\n /**\n * Setting the taskgroup panel collection\n */\n set taskGroupCollection(taskgroups: Array<TaskGroupModel>) {\n this._taskGroupCollection = new TaskGroupCollection(taskgroups);\n }\n\n /**\n * Getting the taskgrouppanels on the tab\n */\n get taskGroupCollection(): TaskGroupCollection {\n return this._taskGroupCollection;\n }\n\n /**\n * Has taskgroups\n */\n hasTaskGroups(): boolean {\n return this.taskGroupCollection && this.taskGroupCollection.hasItems;\n }\n}\n"],"file":"CaseViewModel.js"}
1
+ {"version":3,"sources":["../../../src/models/caseview/CaseViewModel.js"],"names":["DetailModel","Href","TaskGroupCollection","TaskGroupModel","TITLE","CaseViewModel","caseviewData","createTaskGroupCollection","links","getLinksByGroup","all","models","taskGroupModels","i","length","push","taskGroupCollection","add","attributeCollection","getAttributeByLayoutHint","casename","value","introtext","data","_text","message","contributions","text","rawText","Array","isArray","texts","selfLink","getLinkByKey","Error","href","allTaskgroupData","getData","allTaskgroupContributions","getContribution","taskgroup","some","taskgroupContribution","name","taskgroupContributions","create","_taskGroupCollection","taskgroups","hasItems","resourcetype"],"mappings":"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","sourcesContent":["// @flow\nimport DetailModel from \"../detail/DetailModel\";\nimport Href from \"../href/Href\";\nimport TaskGroupCollection from \"../taskgroup/TaskGroupCollection\";\nimport TaskGroupModel from \"../taskgroup/TaskGroupModel\";\n\nimport { TITLE } from \"../../constants/LayoutHints\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model containing the details of one case.\n */\nexport default class CaseViewModel extends DetailModel {\n _taskGroupCollection: TaskGroupCollection;\n\n /**\n */\n constructor(caseviewData: ModularUIResponse) {\n super(caseviewData);\n\n this.createTaskGroupCollection();\n }\n\n /**\n */\n get type(): string {\n return \"CaseView\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"CaseView\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.links.getLinksByGroup(\"taskgroup\").all;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"panel\");\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n super.setChildModels(models);\n\n const taskGroupModels = [];\n for (let i = 0; i < models.length; i++) {\n if (models[i] instanceof TaskGroupModel) {\n taskGroupModels.push(models[i]);\n }\n }\n\n this.taskGroupCollection.add(taskGroupModels);\n }\n\n /**\n * Getting the case name\n */\n get casename(): ?AttributeType {\n return this.attributeCollection.getAttributeByLayoutHint(TITLE);\n }\n\n /**\n */\n get label(): string {\n return this.casename ? this.casename.value : \"\";\n }\n\n /**\n * Check if an introtext exists for this caseview\n */\n hasIntroText(): boolean {\n return this.introtext !== \"\";\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._text) {\n return this.data._text.message ?? this.data._text;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.rawText ?? 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 self href\n */\n get selfhref(): Href {\n const selfLink = this.links.getLinkByKey(\"self\");\n\n if (selfLink === null) {\n throw new Error(\"No self href available\");\n }\n\n return new Href(selfLink.href);\n }\n\n /**\n */\n createTaskGroupCollection() {\n const allTaskgroupData = this.getData(\"taskgroups\", []);\n const allTaskgroupContributions = this.getContribution(\"taskgroups\", []);\n\n this.taskGroupCollection = allTaskgroupData\n .filter((taskgroup) =>\n allTaskgroupContributions.some(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n )\n )\n .map((taskgroup) => {\n const taskgroupContributions = allTaskgroupContributions.find(\n (taskgroupContribution) =>\n taskgroupContribution.name === taskgroup.name\n );\n\n return TaskGroupModel.create(\n taskgroup.name,\n taskgroup,\n taskgroupContributions\n );\n });\n }\n\n /**\n * Setting the taskgroup panel collection\n */\n set taskGroupCollection(taskgroups: Array<TaskGroupModel>) {\n this._taskGroupCollection = new TaskGroupCollection(taskgroups);\n }\n\n /**\n * Getting the taskgrouppanels on the tab\n */\n get taskGroupCollection(): TaskGroupCollection {\n return this._taskGroupCollection;\n }\n\n /**\n * Has taskgroups\n */\n hasTaskGroups(): boolean {\n return this.taskGroupCollection && this.taskGroupCollection.hasItems;\n }\n}\n"],"file":"CaseViewModel.js"}
@@ -361,7 +361,13 @@ var FormObjectModel = /*#__PURE__*/function (_BaseModel) {
361
361
  }, {
362
362
  key: "introText",
363
363
  get: function get() {
364
- var _this$contributions$i, _this$contributions$i2;
364
+ var _this$data$content, _this$contributions$i, _this$contributions$i2;
365
+
366
+ if ((_this$data$content = this.data.content) !== null && _this$data$content !== void 0 && _this$data$content.text) {
367
+ var _this$data$content$te;
368
+
369
+ return (_this$data$content$te = this.data.content.text.message) !== null && _this$data$content$te !== void 0 ? _this$data$content$te : this.data.content.text;
370
+ }
365
371
 
366
372
  return (_this$contributions$i = (_this$contributions$i2 = this.contributions.introText) === null || _this$contributions$i2 === void 0 ? void 0 : _this$contributions$i2.rawText) !== null && _this$contributions$i !== void 0 ? _this$contributions$i : this.contributions.introText;
367
373
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/form/FormObjectModel.js"],"names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","FormObjectModel","object","objectContributions","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","withRepeatIndex","key","objectContainsOneOfTheAttributes","all","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","dataResults","result","elementid","contributions","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","models","setChildModels","objectid","getContribution","_repeatIndex","index","isRepeatable","maxRepeats","last","label","introText","rawText","assistent","oldObject","forEach","mergeWithAttribute","mergeAttribute","value","attributeToUpdate","Error","name","update","timestamp","isChangedSince","resetErrors","error","anchor","addServerError","id","message","properties","errorCollection","hasItems","hasServerErrors","hasErrors","visible","every","isValid","_dynamicValidationsLoaded","dynamicValidationsLoaded","attributeErrors","Array","isArray","errors","missing","anchors","updateValidations","formdata","validationData","getFormData","formObjectModel"],"mappings":"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","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions()\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {}\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\"\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key)\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n return (\n this.contributions.introText?.rawText ?? this.contributions.introText\n );\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp)\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n const attributeErrors = [];\n\n if (Array.isArray(data.errors)) {\n data.errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties\n );\n }\n }\n });\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n attributeErrors.push(\n ...data.missing.anchors.map((anchor) => ({\n anchor,\n id: \"Constraint.Mandatory\",\n }))\n );\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"file":"FormObjectModel.js"}
1
+ {"version":3,"sources":["../../../src/models/form/FormObjectModel.js"],"names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","FormObjectModel","object","objectContributions","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","withRepeatIndex","key","objectContainsOneOfTheAttributes","all","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","dataResults","result","elementid","contributions","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","models","setChildModels","objectid","getContribution","_repeatIndex","index","isRepeatable","maxRepeats","last","label","text","message","introText","rawText","assistent","oldObject","forEach","mergeWithAttribute","mergeAttribute","value","attributeToUpdate","Error","name","update","timestamp","isChangedSince","resetErrors","error","anchor","addServerError","id","properties","errorCollection","hasItems","hasServerErrors","hasErrors","visible","every","isValid","_dynamicValidationsLoaded","dynamicValidationsLoaded","attributeErrors","Array","isArray","errors","missing","anchors","updateValidations","formdata","validationData","getFormData","formObjectModel"],"mappings":"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","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions()\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {}\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\"\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key)\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message ?? this.data.content.text;\n }\n\n return (\n this.contributions.introText?.rawText ?? this.contributions.introText\n );\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp)\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n const attributeErrors = [];\n\n if (Array.isArray(data.errors)) {\n data.errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties\n );\n }\n }\n });\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n attributeErrors.push(\n ...data.missing.anchors.map((anchor) => ({\n anchor,\n id: \"Constraint.Mandatory\",\n }))\n );\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"file":"FormObjectModel.js"}