@beinformed/ui 1.13.4 → 1.13.5

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 (142) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/esm/models/attributes/AttributeContent.js +3 -3
  3. package/esm/models/attributes/AttributeContent.js.map +1 -1
  4. package/esm/models/attributes/AttributeModel.js.map +1 -1
  5. package/esm/models/attributes/BooleanAttributeModel.js +1 -0
  6. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  7. package/esm/models/attributes/ChoiceAttributeModel.js +1 -0
  8. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  9. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  10. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  11. package/esm/models/attributes/CompositeAttributeChildCollection.js +1 -1
  12. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  13. package/esm/models/attributes/CompositeAttributeModel.js +2 -1
  14. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  15. package/esm/models/base/BaseCollection.js.map +1 -1
  16. package/esm/models/base/ResourceCollection.js +4 -2
  17. package/esm/models/base/ResourceCollection.js.map +1 -1
  18. package/esm/models/base/ResourceModel.js +1 -0
  19. package/esm/models/base/ResourceModel.js.map +1 -1
  20. package/esm/models/concepts/BusinessScenarioModel.js +2 -1
  21. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  22. package/esm/models/concepts/ConceptDetailModel.js +2 -1
  23. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  24. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  25. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  26. package/esm/models/content/ContentLinkModel.js +2 -0
  27. package/esm/models/content/ContentLinkModel.js.map +1 -1
  28. package/esm/models/href/Href.js +1 -1
  29. package/esm/models/href/Href.js.map +1 -1
  30. package/esm/react-server/renderSSRComplete.js +1 -2
  31. package/esm/react-server/renderSSRComplete.js.map +1 -1
  32. package/esm/react-server/serverNoSSR.js +1 -1
  33. package/esm/react-server/serverNoSSR.js.map +1 -1
  34. package/esm/redux/_modularui/actions.js +16 -17
  35. package/esm/redux/_modularui/actions.js.map +1 -1
  36. package/esm/redux/_modularui/reducer.js +1 -2
  37. package/esm/redux/_modularui/reducer.js.map +1 -1
  38. package/esm/redux/actions/SignIn.js +5 -9
  39. package/esm/redux/actions/SignIn.js.map +1 -1
  40. package/esm/utils/helpers/objects.js +2 -1
  41. package/esm/utils/helpers/objects.js.map +1 -1
  42. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
  43. package/lib/models/attributes/AttributeContent.js +3 -3
  44. package/lib/models/attributes/AttributeContent.js.flow +3 -3
  45. package/lib/models/attributes/AttributeContent.js.map +1 -1
  46. package/lib/models/attributes/AttributeModel.js.flow +10 -2
  47. package/lib/models/attributes/AttributeModel.js.map +1 -1
  48. package/lib/models/attributes/BooleanAttributeModel.js +1 -0
  49. package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
  50. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  51. package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
  52. package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
  53. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  54. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
  55. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  56. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
  57. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  58. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
  59. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
  60. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  61. package/lib/models/attributes/CompositeAttributeModel.js +2 -1
  62. package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
  63. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  64. package/lib/models/base/BaseCollection.js.flow +2 -2
  65. package/lib/models/base/BaseCollection.js.map +1 -1
  66. package/lib/models/base/ResourceCollection.js +4 -2
  67. package/lib/models/base/ResourceCollection.js.flow +4 -6
  68. package/lib/models/base/ResourceCollection.js.map +1 -1
  69. package/lib/models/base/ResourceModel.js +1 -0
  70. package/lib/models/base/ResourceModel.js.flow +3 -2
  71. package/lib/models/base/ResourceModel.js.map +1 -1
  72. package/lib/models/concepts/BusinessScenarioModel.js +3 -1
  73. package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
  74. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  75. package/lib/models/concepts/ConceptDetailModel.js +3 -1
  76. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  77. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  78. package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
  79. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  80. package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
  81. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  82. package/lib/models/content/ContentLinkModel.js +2 -0
  83. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  84. package/lib/models/content/ContentLinkModel.js.map +1 -1
  85. package/lib/models/href/Href.js +1 -1
  86. package/lib/models/href/Href.js.flow +4 -3
  87. package/lib/models/href/Href.js.map +1 -1
  88. package/lib/models/types.js.flow +2 -2
  89. package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
  90. package/lib/react-server/renderSSRComplete.js +1 -2
  91. package/lib/react-server/renderSSRComplete.js.flow +2 -1
  92. package/lib/react-server/renderSSRComplete.js.map +1 -1
  93. package/lib/react-server/serverNoSSR.js +1 -1
  94. package/lib/react-server/serverNoSSR.js.flow +1 -1
  95. package/lib/react-server/serverNoSSR.js.map +1 -1
  96. package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
  97. package/lib/redux/_modularui/actions.js +12 -12
  98. package/lib/redux/_modularui/actions.js.flow +12 -12
  99. package/lib/redux/_modularui/actions.js.map +1 -1
  100. package/lib/redux/_modularui/reducer.js +1 -2
  101. package/lib/redux/_modularui/reducer.js.flow +0 -1
  102. package/lib/redux/_modularui/reducer.js.map +1 -1
  103. package/lib/redux/actions/SignIn.js +6 -9
  104. package/lib/redux/actions/SignIn.js.flow +5 -11
  105. package/lib/redux/actions/SignIn.js.map +1 -1
  106. package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
  107. package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
  108. package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
  109. package/lib/utils/helpers/objects.js +3 -1
  110. package/lib/utils/helpers/objects.js.flow +2 -2
  111. package/lib/utils/helpers/objects.js.map +1 -1
  112. package/package.json +8 -8
  113. package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
  114. package/src/models/attributes/AttributeContent.js +3 -3
  115. package/src/models/attributes/AttributeModel.js +10 -2
  116. package/src/models/attributes/BooleanAttributeModel.js +4 -1
  117. package/src/models/attributes/ChoiceAttributeModel.js +4 -1
  118. package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
  119. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
  120. package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
  121. package/src/models/attributes/CompositeAttributeModel.js +1 -0
  122. package/src/models/base/BaseCollection.js +2 -2
  123. package/src/models/base/ResourceCollection.js +4 -6
  124. package/src/models/base/ResourceModel.js +3 -2
  125. package/src/models/concepts/BusinessScenarioModel.js +2 -1
  126. package/src/models/concepts/ConceptDetailModel.js +2 -2
  127. package/src/models/concepts/ConceptLinkModel.js +5 -2
  128. package/src/models/concepts/ConceptRelationModel.js +6 -2
  129. package/src/models/content/ContentLinkModel.js +2 -0
  130. package/src/models/href/Href.js +4 -3
  131. package/src/models/types.js +2 -2
  132. package/src/react-server/__tests__/serverUtil.spec.js +15 -14
  133. package/src/react-server/renderSSRComplete.js +2 -1
  134. package/src/react-server/serverNoSSR.js +1 -1
  135. package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
  136. package/src/redux/_modularui/actions.js +12 -12
  137. package/src/redux/_modularui/reducer.js +0 -1
  138. package/src/redux/actions/SignIn.js +5 -11
  139. package/src/redux/actions/__tests__/Application.spec.js +1 -0
  140. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
  141. package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
  142. package/src/utils/helpers/objects.js +2 -2
@@ -13,13 +13,16 @@ import AttributeCollection from "./AttributeCollection";
13
13
  import ConceptDetailModel from "../concepts/ConceptDetailModel";
14
14
  import AttributeContent from "./AttributeContent";
15
15
 
16
- import type { ModularUIModel } from "../types";
16
+ import type { IModelWithChildModels, ModularUIModel } from "../types";
17
17
  import type ListItemModel from "../list/ListItemModel";
18
18
  import type LinkModel from "../links/LinkModel";
19
19
 
20
20
  /**
21
21
  */
22
- class ChoiceAttributeOptionModel extends BaseModel {
22
+ class ChoiceAttributeOptionModel
23
+ extends BaseModel
24
+ implements IModelWithChildModels
25
+ {
23
26
  _code: string;
24
27
  _isSelected: boolean;
25
28
  _referenceDate: ISO_DATE;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"names":["ChoiceAttributeOptionModel","selectedValues","option","referenceDate","DateUtil","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","ChoiceAttributeOptionCollection","create","options","links","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","withOption","mergeOptions","listitem","id","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel extends BaseModel {\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection;\n option.links = listitem.links;\n\n return option;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref)\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\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 createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\"\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"file":"ChoiceAttributeOptionModel.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"names":["ChoiceAttributeOptionModel","selectedValues","option","referenceDate","DateUtil","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","ChoiceAttributeOptionCollection","create","options","links","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","withOption","mergeOptions","listitem","id","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAMA;AACA;IACMA,0B;;;;;AAcJ;AACF;AACE,wCAIE;AAAA;;AAAA;;AAAA,QAHAC,cAGA,uEAHgC,EAGhC;AAAA,QAFAC,MAEA,uEAFiB,EAEjB;AAAA,QADAC,aACA,uEAD0BC,uBAASC,GAAT,EAC1B;AAAA;AACA,8BAAM,EAAN,EAAUH,MAAV;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,UAAKI,IAAL,oCAAY,MAAKC,aAAL,CAAmBD,IAA/B,yEAAuC,MAAKC,aAAL,CAAmBC,GAA1D,uCAAiE,EAAjE;AAEA,UAAKC,WAAL,GAAmB,uBAAAR,cAAc,MAAd,CAAAA,cAAc,EAAU,MAAKK,IAAf,CAAjC;AAEA,UAAKI,cAAL,GAAsBP,aAAtB;AAEA,UAAKQ,MAAL,GAAc,CAAd;AAEA,UAAKC,oBAAL,GAA4B,MAAKC,yBAAL,EAA5B;AACA,UAAKC,SAAL,GAAiB,MAAKC,WAAL,CAAiBd,cAAjB,EAAiCC,MAAjC,EAAyCC,aAAzC,CAAjB;AAEA,UAAKa,MAAL,GAAc,IAAIC,uBAAJ,CAAmB,MAAKV,aAAL,CAAmBS,MAAtC,CAAd;AAEA,UAAKE,QAAL,GAAgB,IAAIC,yBAAJ,CAAqBjB,MAAM,CAACkB,OAA5B,CAAhB;AAhBA;AAiBD;AAED;AACF;;;;;;AAaE;AACF;AACE,yCAA8C;AAC5C,UAAMC,YAAY,GAAG,EAArB;;AAEA,UAAI,CAAC,KAAKC,kBAAN,IAA4B,KAAKC,WAAL,KAAqB,IAArD,EAA2D;AACzDF,QAAAA,YAAY,CAACG,IAAb,CAAkB,KAAKD,WAAvB;AACD;;AAED,UAAI,KAAKE,QAAT,EAAmB;AACjBJ,QAAAA,YAAY,CAACG,IAAb,OAAAH,YAAY,mCAAS,KAAKI,QAAL,CAAcC,yBAAd,EAAT,EAAZ;AACD;;AAED,aAAOL,YAAP;AACD;AAED;AACF;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,UAAI,KAAKJ,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,YAAMK,WAAW,GAAG,KAAKL,WAAL,CAAiBM,IAArC;AAEA,aAAKC,OAAL,GAAe,mBAAAH,MAAM,MAAN,CAAAA,MAAM,EAAM,UAACI,KAAD;AAAA,iBACzBA,KAAK,CAACC,QAAN,CAAeC,oBAAf,CAAoCL,WAApC,CADyB;AAAA,SAAN,CAArB;AAGD;;AAED,UAAI,KAAKH,QAAT,EAAmB;AACjB,aAAKA,QAAL,CAAcS,cAAd,CAA6BP,MAA7B;AACD;AACF;AAED;AACF;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKQ,KAAZ;AACD;AAED;AACF;;SACE,aAAS7B,IAAT,EAAuB;AACrB,WAAK6B,KAAL,GAAa7B,IAAb;AACD;AAED;AACF;;;;WACE,gBAAOyB,KAAP,EAAmD;AACjD,aAAO,KAAKzB,IAAL,CAAU8B,QAAV,OAAyBL,KAAK,CAACzB,IAAN,CAAW8B,QAAX,EAAhC;AACD;AAED;AACF;AACA;;;;SACE,eAA+C;AAC7C,aAAO,KAAKxB,oBAAZ;AACD;AAED;AACF;;SACE,aAAwByB,mBAAxB,EAAkE;AAChE,WAAKzB,oBAAL,GAA4ByB,mBAA5B;AACD;AAED;AACF;;;;WACE,qCAAiD;AAC/C,UAAM9B,aAAa,GAAG,KAAK+B,eAAL,CAAqB,uBAArB,EAA8C,EAA9C,CAAtB;;AAEA,UAAI,kBAAI,KAAK/B,aAAT,EAAwB,UAAxB,CAAJ,EAAyC;AACvC,YAAMgC,IAAI,GAAG,KAAKD,eAAL,CAAqB,UAArB,EAAiC,EAAjC,CAAb;AACA,eAAO,IAAIE,4BAAJ,CAAwBD,IAAxB,EAA8BhC,aAA9B,EAA6C,IAA7C,CAAP;AACD;;AAED,aAAO,IAAIiC,4BAAJ,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,UAAI,KAAKjC,aAAL,CAAmBkC,KAAvB,EAA8B;AAC5B,eAAO,KAAKlC,aAAL,CAAmBkC,KAA1B;AACD;;AAED,UAAI,KAAKJ,mBAAL,CAAyBK,QAA7B,EAAuC;AACrC,YAAMC,KAAK,GAAG,KAAKN,mBAAL,CAAyBO,wBAAzB,CAAkDC,kBAAlD,CAAd;;AAEA,YAAIF,KAAJ,EAAW;AACT,iBAAOA,KAAK,CAACG,aAAb;AACD;;AAED,YAAI,KAAKT,mBAAL,CAAyBU,KAA7B,EAAoC;AAClC,iBAAO,KAAKV,mBAAL,CAAyBU,KAAzB,CAA+BD,aAAtC;AACD;AACF;;AAED,aAAO,EAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,mCAA0BE,oBAA1B,EAAgE;AAAA;;AAC9D,UAAMC,yBAAyB,4BAC7BD,oBAD6B,aAC7BA,oBAD6B,iDAC7BA,oBAAoB,CAAEE,WADO,qFAC7B,uBAAoC,CAApC,CAD6B,2DAC7B,uBAAwCC,KADX,yEACoB,EADnD;;AAGA,UACE,CAAC,KAAK7B,kBAAN,IACA,KAAKQ,OADL,IAEAmB,yBAAyB,CAACG,MAA1B,GAAmC,CAHrC,EAIE;AAAA;;AACA,YAAMC,gBAAgB,GAAG,qCAAKvB,OAAL,CACtBwB,oBADsB,CACDL,yBADC,kBAGrB,UAACM,eAAD;AAAA,iBACEA,eAAe,CAACC,KAAhB,IAAyBD,eAAe,CAACC,KAAhB,KAA0B,EADrD;AAAA,SAHqB,CAAzB;;AAOA,YAAIH,gBAAgB,CAACD,MAAjB,GAA0B,CAA9B,EAAiC;AAAA;;AAC/B,iBAAO,mDAAAH,yBAAyB,MAAzB,CAAAA,yBAAyB,EACtB,UAACQ,uBAAD;AAAA,mBACNJ,gBAAgB,CAACK,IAAjB,CACE,UAACH,eAAD;AAAA,qBACEA,eAAe,CAACI,GAAhB,KAAwBF,uBAD1B;AAAA,aADF,CADM;AAAA,WADsB,CAAzB,kBAOA,UAACA,uBAAD;AAAA,mBACH,mBAAAJ,gBAAgB,MAAhB,CAAAA,gBAAgB,EACd,UAACE,eAAD;AAAA,qBACEA,eAAe,CAACI,GAAhB,KAAwBF,uBAD1B;AAAA,aADc,CADb;AAAA,WAPA,EAYH,CAZG,EAYAD,KAZP;AAaD;AACF;;AAED,aAAO,KAAKf,KAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKhC,WAAZ;AACD;AAED;AACF;AACA;;SACE,aAAamD,QAAb,EAAgC;AAC9B,WAAKnD,WAAL,GAAmBmD,QAAnB;AACD;AAED;AACF;AACA;;;;SACE,eAA2B;AACzB,aAAO,KAAKtB,eAAL,CAAqB,OAArB,CAAP;AACD;AAED;AACF;;;;WACE,uBAImC;AAAA;;AAAA,UAHjCrC,cAGiC,uEAHD,EAGC;AAAA,UAFjCC,MAEiC,uEAFhB,EAEgB;AAAA,UADjCC,aACiC,uEADPC,uBAASC,GAAT,EACO;;AACjC;AACA,UAAI,kBAAIH,MAAJ,EAAY,UAAZ,CAAJ,EAA6B;AAC3B,eAAO,IAAI2D,wCAAJ,EAAP;AACD;;AAED,aAAOA,yCAAgCC,MAAhC,CACL;AACEN,QAAAA,KAAK,EAAEvD;AADT,OADK,EAIL;AAAE8D,QAAAA,OAAO,sBAAE7D,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEuB,QAAV,+DAAsB;AAA/B,OAJK,EAKLtB,aALK,CAAP;AAOD;AAED;AACF;AACA;;;;SACE,eAAgD;AAC9C,aAAO,KAAKW,SAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,aAAO,KAAKE,MAAZ;AACD;AAED;AACF;;SACE,aAAUgD,KAAV,EAAiC;AAC/B,WAAKhD,MAAL,GAAcgD,KAAd;AACD;AAED;AACF;AACA;;;;SACE,eAA8B;AAC5B,aAAO,KAAKtD,cAAZ;AACD;AAED;AACF;;SACE,aAAkBuD,IAAlB,EAAkC;AAChC,WAAKvD,cAAL,GAAsBuD,IAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAoC;AAClC,UAAM1C,WAAW,GAAG,KAAKyC,KAAL,CAAWE,YAAX,CAAwB,SAAxB,CAApB;;AACA,UAAI3C,WAAW,KAAK,IAApB,EAA0B;AACxBA,QAAAA,WAAW,CAACM,IAAZ,GAAmBN,WAAW,CAACM,IAAZ,CAAiBsC,YAAjB,CACjBC,kCADiB,EAEjB,KAAKjE,aAFY,CAAnB;AAKAoB,QAAAA,WAAW,CAAC8C,WAAZ,GAA0B,IAA1B;AACD;;AAED,aAAO9C,WAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAyC;AACvC,aAAO,KAAK+C,QAAL,IAAiB,IAAxB;AACD;AAED;AACF;AACA;;SACE,aAAYxC,OAAZ,EAAsC;AACpC,WAAKwC,QAAL,GAAgBxC,OAAO,YAAYyC,2BAAnB,GAAwCzC,OAAxC,GAAkD,IAAlE;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKnB,MAAZ;AACD;AAED;AACF;AACA;;SACE,aAAU6D,KAAV,EAAyB;AACvB,WAAK7D,MAAL,GAAc6D,KAAd;AACD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,KAAKlC,eAAL,CAAqB,eAArB,EAAsC,KAAtC,CAAP;AACD;AAED;AACF;;;;SACE,eAAmC;AACjC,aAAO,KAAKA,eAAL,CAAqB,qBAArB,EAA4C,KAA5C,CAAP;AACD;AAED;AACF;;;;WACE,qBAAYmC,UAAZ,EAAoD;AAClD,WAAK3C,OAAL,GAAe2C,UAAU,CAAC3C,OAA1B;;AAEA,UAAI,KAAKL,QAAL,IAAiB,IAAjB,IAAyBgD,UAAU,CAAChD,QAAX,IAAuB,IAApD,EAA0D;AACxD,aAAKA,QAAL,CAAciD,YAAd,CAA2BD,UAAU,CAAChD,QAAtC;AACD;AACF;AAED;AACF;AACA;;;;SACE,eAAkC;AAChC,aAAO,oCAAP;AACD;AAED;AACF;;;;SACE,eAAgC;AAC9B,aAAO,KAAKP,QAAZ;AACD;;;WAjTD,iCACEyD,QADF,EAE8B;AAC5B,UAAMzE,MAAM,GAAG,IAAIF,0BAAJ,EAAf;AAEAE,MAAAA,MAAM,CAACI,IAAP,GAAcqE,QAAQ,CAACC,EAAT,CAAYxC,QAAZ,EAAd;AACAlC,MAAAA,MAAM,CAACmC,mBAAP,GAA6BsC,QAAQ,CAACtC,mBAAtC;AACAnC,MAAAA,MAAM,CAAC8D,KAAP,GAAeW,QAAQ,CAACX,KAAxB;AAEA,aAAO9D,MAAP;AACD;;;EAlDO2E,mB;;eA4VK7E,0B","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection;\n option.links = listitem.links;\n\n return option;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref)\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\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 createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\"\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"file":"ChoiceAttributeOptionModel.js"}
@@ -147,6 +147,7 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
147
147
  if (this.first instanceof CompositeAttributeChildCollection) {
148
148
  var _context2;
149
149
 
150
+ // $FlowFixMe[missing-type-arg]
150
151
  return (0, _map.default)(_context2 = this.collection).call(_context2, function (collection) {
151
152
  return collection.initvalue;
152
153
  });
@@ -182,7 +183,6 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
182
183
  var children = {};
183
184
  this.collection.forEach(function (attribute) {
184
185
  if (attribute.formdata !== null && !attribute.readonly) {
185
- // $FlowIgnore[cannot-spread-indexer]
186
186
  children = _objectSpread(_objectSpread({}, children), attribute.formdata);
187
187
  }
188
188
  });
@@ -165,6 +165,7 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
165
165
  */
166
166
  get initvalue(): any {
167
167
  if (this.first instanceof CompositeAttributeChildCollection) {
168
+ // $FlowFixMe[missing-type-arg]
168
169
  return this.collection.map<Array<Object>>(
169
170
  (collection) => collection.initvalue
170
171
  );
@@ -195,7 +196,6 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
195
196
 
196
197
  this.collection.forEach((attribute) => {
197
198
  if (attribute.formdata !== null && !attribute.readonly) {
198
- // $FlowIgnore[cannot-spread-indexer]
199
199
  children = {
200
200
  ...children,
201
201
  ...attribute.formdata,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"names":["CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","ErrorCollection","errorCollection","serverErrors","length","some","hasServerErrors","hasItems","hasErrors","forEach","reset","first","initvalue","children","key","value","attribute","formdata","readonly","readonlyvalue","prefix","errors","attributeErrors","error","anchor","elementid","updateValidations","hasValue","data","contributions","Array","isArray","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","contribution","attributeData","attr","attributeContribution","type","replace","dynamicschema","parentKey","childData","create","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n // $FlowIgnore[cannot-spread-indexer]\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"file":"CompositeAttributeChildCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"names":["CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","ErrorCollection","errorCollection","serverErrors","length","some","hasServerErrors","hasItems","hasErrors","forEach","reset","first","initvalue","children","key","value","attribute","formdata","readonly","readonlyvalue","prefix","errors","attributeErrors","error","anchor","elementid","updateValidations","hasValue","data","contributions","Array","isArray","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","contribution","attributeData","attr","attributeContribution","type","replace","dynamicschema","parentKey","childData","create","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"file":"CompositeAttributeChildCollection.js"}
@@ -460,7 +460,8 @@ var CompositeAttributeModel = /*#__PURE__*/function (_AttributeModel) {
460
460
  }, {
461
461
  key: "equals",
462
462
  value: function equals(otherAttribute) {
463
- return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some(function (child) {
463
+ return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some( //$FlowFixMe[method-unbinding]
464
+ function (child) {
464
465
  return child.equals && child.equals(otherAttribute);
465
466
  });
466
467
  }
@@ -375,6 +375,7 @@ class CompositeAttributeModel extends AttributeModel {
375
375
  (this.key === otherAttribute.key &&
376
376
  this.parentKey === otherAttribute.parentKey) ||
377
377
  this.children.some(
378
+ //$FlowFixMe[method-unbinding]
378
379
  (child) => child.equals && child.equals(otherAttribute)
379
380
  )
380
381
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"names":["CompositeAttributeModel","data","contributions","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","NumberAttributeModel","DatetimeAttributeModel","all","size","getInputValue","some","child","hasValue","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","IllegalArgumentException","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","AttributeModel"],"mappings":"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","sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled)\n );\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children)\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate();\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\"\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate();\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n (child) => child.equals && child.equals(otherAttribute)\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"file":"CompositeAttributeModel.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"names":["CompositeAttributeModel","data","contributions","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","NumberAttributeModel","DatetimeAttributeModel","all","size","getInputValue","some","child","hasValue","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","IllegalArgumentException","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","AttributeModel"],"mappings":"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","sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled)\n );\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children)\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate();\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\"\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate();\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute)\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"file":"CompositeAttributeModel.js"}
@@ -154,9 +154,9 @@ class BaseCollection<T> {
154
154
  */
155
155
  map<U>(
156
156
  callbackfn: (value: T, index: number, array: Array<T>) => U,
157
- thisArg?: any
157
+ thisArg?: T
158
158
  ): Array<U> {
159
- return this.collection.map<U>(callbackfn, thisArg);
159
+ return this.collection.map<U, ?T>(callbackfn, thisArg);
160
160
  }
161
161
 
162
162
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":"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","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: any\n ): Array<U> {\n return this.collection.map<U>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":"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","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
@@ -50,7 +50,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
50
50
  function getInitialChildModelLinks() {
51
51
  var initialChildModelLinks = [];
52
52
  this.collection.forEach(function (item) {
53
- if (item && item.getInitialChildModelLinks && typeof item.getInitialChildModelLinks === "function") {
53
+ // $FlowFixMe[method-unbinding]
54
+ if (typeof (item === null || item === void 0 ? void 0 : item.getInitialChildModelLinks) === "function") {
54
55
  initialChildModelLinks.push.apply(initialChildModelLinks, (0, _toConsumableArray2.default)(item.getInitialChildModelLinks()));
55
56
  }
56
57
  });
@@ -64,7 +65,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
64
65
  key: "setChildModels",
65
66
  value: function setChildModels(models) {
66
67
  this.collection.forEach(function (item) {
67
- if (typeof item.setChildModels === "function") {
68
+ // $FlowFixMe[prop-missing]
69
+ if (typeof item["setChildModels"] === "function") {
68
70
  item.setChildModels(models);
69
71
  }
70
72
  });
@@ -16,11 +16,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
16
16
  const initialChildModelLinks = [];
17
17
 
18
18
  this.collection.forEach((item: T) => {
19
- if (
20
- item &&
21
- item.getInitialChildModelLinks &&
22
- typeof item.getInitialChildModelLinks === "function"
23
- ) {
19
+ // $FlowFixMe[method-unbinding]
20
+ if (typeof item?.getInitialChildModelLinks === "function") {
24
21
  initialChildModelLinks.push(...item.getInitialChildModelLinks());
25
22
  }
26
23
  });
@@ -33,7 +30,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
33
30
  */
34
31
  setChildModels(models: Array<ModularUIModel>) {
35
32
  this.collection.forEach((item) => {
36
- if (typeof item.setChildModels === "function") {
33
+ // $FlowFixMe[prop-missing]
34
+ if (typeof item["setChildModels"] === "function") {
37
35
  item.setChildModels(models);
38
36
  }
39
37
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC,YACEA,IAAI,IACJA,IAAI,CAACC,yBADL,IAEA,OAAOD,IAAI,CAACC,yBAAZ,KAA0C,UAH5C,EAIE;AACAJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OARD;AAUA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC,YAAI,OAAOA,IAAI,CAACI,cAAZ,KAA+B,UAAnC,EAA+C;AAC7CJ,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OAJD;AAKD;;;EA7BwDE,wB;;eAgC5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n if (\n item &&\n item.getInitialChildModelLinks &&\n typeof item.getInitialChildModelLinks === \"function\"\n ) {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n if (typeof item.setChildModels === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC;AACA,YAAI,QAAOA,IAAP,aAAOA,IAAP,uBAAOA,IAAI,CAAEC,yBAAb,MAA2C,UAA/C,EAA2D;AACzDJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OALD;AAOA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC;AACA,YAAI,OAAOA,IAAI,CAAC,gBAAD,CAAX,KAAkC,UAAtC,EAAkD;AAChDA,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OALD;AAMD;;;EA3BwDE,wB;;eA8B5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n // $FlowFixMe[method-unbinding]\n if (typeof item?.getInitialChildModelLinks === \"function\") {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n // $FlowFixMe[prop-missing]\n if (typeof item[\"setChildModels\"] === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
@@ -258,6 +258,7 @@ var ResourceModel = /*#__PURE__*/function (_BaseModel) {
258
258
  return _objectSpread(_objectSpread({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ResourceModel.prototype), "dehydrate", this).call(this)), {}, {
259
259
  key: this._key,
260
260
  locale: this._locale,
261
+ // $FlowFixMe[missing-type-arg]
261
262
  childModels: (0, _map.default)(_context = this._childModels).call(_context, function (childModel) {
262
263
  return childModel.dehydrate();
263
264
  })
@@ -200,8 +200,9 @@ class ResourceModel extends BaseModel implements IModelWithChildModels {
200
200
  ...super.dehydrate(),
201
201
  key: this._key,
202
202
  locale: this._locale,
203
- childModels: this._childModels.map<ModularUIModel>((childModel) =>
204
- childModel.dehydrate()
203
+ // $FlowFixMe[missing-type-arg]
204
+ childModels: this._childModels.map<ModularUIModel>(
205
+ (childModel: ModularUIModel) => childModel.dehydrate()
205
206
  ),
206
207
  };
207
208
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AAEA;;;;;;;;;;AASA;AACA;AACA;IACMA,a;;;;;AAOJ;AACF;AACA;AACE,2BAA4E;AAAA;;AAAA,QAAhEC,iBAAgE,uEAAzB,IAAIC,0BAAJ,EAAyB;AAAA;AAC1E,8BAAMD,iBAAiB,CAACE,IAAxB,EAA8BF,iBAAiB,CAACG,aAAhD;AAD0E;AAAA;AAAA;AAAA;AAAA;AAG1E,UAAKC,IAAL,GAAYJ,iBAAiB,CAACK,GAA9B;AACA,UAAKC,OAAL,GAAeN,iBAAiB,CAACO,MAAjC;AAEA,UAAKC,YAAL,GAAoB,EAApB;AAEA,UAAKC,iBAAL,GAAyBC,IAAI,CAACC,GAAL,EAAzB;AAR0E;AAS3E;AAED;AACF;AACA;AACA;AACA;;;;;;AAWE;AACF;AACE,mBAA+B;AAC7B,aAAO,KAAKF,iBAAZ;AACD;AAED;AACF;;SACE,aAAqBG,gBAArB,EAA+C;AAC7C,WAAKH,iBAAL,GAAyBG,gBAAzB;AACD;AAED;AACF;;;;SACE,eAAqB;AACnB,aAAO,KAAKN,OAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKF,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAmB;AACjB,YAAM,IAAIS,iCAAJ,sDAC0C,KAAKR,GAD/C,EAAN;AAGD;AAED;AACF;AACA;;;;SACE,eAA2B;AACzB,aAAO,KAAKS,eAAL,CAAqB,cAArB,EAAqC,SAArC,CAAP;AACD;AAED;AACF;;;;SACE,eAAoB;AAClB,aAAO,KAAKA,eAAL,CAAqB,OAArB,EAA8B,EAA9B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,UAAI,CAAC,KAAKC,MAAV,EAAkB;AAChB,aAAKA,MAAL,GAAc,IAAIC,uBAAJ,CACZC,KAAK,CAACC,OAAN,CAAc,KAAKhB,IAAL,CAAUa,MAAxB,IACI,KAAKb,IAAL,CAAUa,MAAV,CAAiB,CAAjB,CADJ,GAEI,KAAKb,IAAL,CAAUa,MAHF;AAKVI,UAAAA,IAAI,EAAE;AACJC,YAAAA,YAAY,EAAE,KAAKA;AADf;AALI,WAQP,KAAKjB,aAAL,CAAmBY,MARZ,EAAd;AAWD;;AACD,aAAO,KAAKA,MAAZ;AACD;AAED;AACF;;SACE,aAAUM,KAAV,EAAiC;AAC/B,WAAKN,MAAL,GAAcM,KAAd;AACD;AAED;AACF;AACA;;;;SACE,eAA0B;AACxB,UAAMC,QAAQ,GAAG,KAAKD,KAAL,CAAWE,YAAX,CAAwB,MAAxB,CAAjB;;AAEA,UAAID,QAAQ,KAAK,IAAjB,EAAuB;AACrB,cAAM,IAAIT,iCAAJ,wCAEF,KAAKR,GAAL,KAAa,IAAb,GAAoB,SAApB,GAAgC,KAAKA,GAFnC,EAAN;AAKD;;AAED,aAAOiB,QAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,aAAO,KAAKA,QAAL,CAAcE,IAArB;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,qCAA8C;AAC5C,aAAO,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAyC;AACvC,aAAO,KAAKhB,YAAZ;AACD;AAED;AACF;AACA;;;;WACE,wBAAeiB,MAAf,EAAoD;AAAA;;AAClD,UAAMC,aAAa,GAAG,6EAAaD,MAAb,EAAtB;AAEA,WAAKjB,YAAL,GAAoBkB,aAApB;AAEA,WAAKC,cAAL,CAAoBD,aAApB;AAEA,aAAO,IAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAAeD,MAAf,EAA8C;AAC5C,UAAI,CAACA,MAAL,EAAa;AACX,cAAM,IAAIG,oCAAJ,CAA6B,kCAA7B,CAAN;AACD;AACF;AAED;AACF;;;;WACE,qBAAoB;AAAA;;AAClB;AAEEvB,QAAAA,GAAG,EAAE,KAAKD,IAFZ;AAGEG,QAAAA,MAAM,EAAE,KAAKD,OAHf;AAIEuB,QAAAA,WAAW,EAAE,kCAAKrB,YAAL,iBAAsC,UAACsB,UAAD;AAAA,iBACjDA,UAAU,CAACC,SAAX,EADiD;AAAA,SAAtC;AAJf;AAQD;;;WAlKD,2BAAyB7B,IAAzB,EAA2D;AACzD,UAAI,EAAEA,IAAI,YAAYD,0BAAlB,CAAJ,EAA0C;AACxC,cAAM,IAAI2B,oCAAJ,CACJ,iEADI,CAAN;AAGD;;AAED,YAAM,IAAII,KAAJ,CAAU,qDAAV,CAAN;AACD;;;EAlCyBC,mB;;eA+LblC,a","sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Base model\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\"\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (!models) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n childModels: this._childModels.map<ModularUIModel>((childModel) =>\n childModel.dehydrate()\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"file":"ResourceModel.js"}
1
+ {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AAEA;;;;;;;;;;AASA;AACA;AACA;IACMA,a;;;;;AAOJ;AACF;AACA;AACE,2BAA4E;AAAA;;AAAA,QAAhEC,iBAAgE,uEAAzB,IAAIC,0BAAJ,EAAyB;AAAA;AAC1E,8BAAMD,iBAAiB,CAACE,IAAxB,EAA8BF,iBAAiB,CAACG,aAAhD;AAD0E;AAAA;AAAA;AAAA;AAAA;AAG1E,UAAKC,IAAL,GAAYJ,iBAAiB,CAACK,GAA9B;AACA,UAAKC,OAAL,GAAeN,iBAAiB,CAACO,MAAjC;AAEA,UAAKC,YAAL,GAAoB,EAApB;AAEA,UAAKC,iBAAL,GAAyBC,IAAI,CAACC,GAAL,EAAzB;AAR0E;AAS3E;AAED;AACF;AACA;AACA;AACA;;;;;;AAWE;AACF;AACE,mBAA+B;AAC7B,aAAO,KAAKF,iBAAZ;AACD;AAED;AACF;;SACE,aAAqBG,gBAArB,EAA+C;AAC7C,WAAKH,iBAAL,GAAyBG,gBAAzB;AACD;AAED;AACF;;;;SACE,eAAqB;AACnB,aAAO,KAAKN,OAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKF,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;;;SACE,eAAmB;AACjB,YAAM,IAAIS,iCAAJ,sDAC0C,KAAKR,GAD/C,EAAN;AAGD;AAED;AACF;AACA;;;;SACE,eAA2B;AACzB,aAAO,KAAKS,eAAL,CAAqB,cAArB,EAAqC,SAArC,CAAP;AACD;AAED;AACF;;;;SACE,eAAoB;AAClB,aAAO,KAAKA,eAAL,CAAqB,OAArB,EAA8B,EAA9B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,UAAI,CAAC,KAAKC,MAAV,EAAkB;AAChB,aAAKA,MAAL,GAAc,IAAIC,uBAAJ,CACZC,KAAK,CAACC,OAAN,CAAc,KAAKhB,IAAL,CAAUa,MAAxB,IACI,KAAKb,IAAL,CAAUa,MAAV,CAAiB,CAAjB,CADJ,GAEI,KAAKb,IAAL,CAAUa,MAHF;AAKVI,UAAAA,IAAI,EAAE;AACJC,YAAAA,YAAY,EAAE,KAAKA;AADf;AALI,WAQP,KAAKjB,aAAL,CAAmBY,MARZ,EAAd;AAWD;;AACD,aAAO,KAAKA,MAAZ;AACD;AAED;AACF;;SACE,aAAUM,KAAV,EAAiC;AAC/B,WAAKN,MAAL,GAAcM,KAAd;AACD;AAED;AACF;AACA;;;;SACE,eAA0B;AACxB,UAAMC,QAAQ,GAAG,KAAKD,KAAL,CAAWE,YAAX,CAAwB,MAAxB,CAAjB;;AAEA,UAAID,QAAQ,KAAK,IAAjB,EAAuB;AACrB,cAAM,IAAIT,iCAAJ,wCAEF,KAAKR,GAAL,KAAa,IAAb,GAAoB,SAApB,GAAgC,KAAKA,GAFnC,EAAN;AAKD;;AAED,aAAOiB,QAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,aAAO,KAAKA,QAAL,CAAcE,IAArB;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,qCAA8C;AAC5C,aAAO,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAyC;AACvC,aAAO,KAAKhB,YAAZ;AACD;AAED;AACF;AACA;;;;WACE,wBAAeiB,MAAf,EAAoD;AAAA;;AAClD,UAAMC,aAAa,GAAG,6EAAaD,MAAb,EAAtB;AAEA,WAAKjB,YAAL,GAAoBkB,aAApB;AAEA,WAAKC,cAAL,CAAoBD,aAApB;AAEA,aAAO,IAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAAeD,MAAf,EAA8C;AAC5C,UAAI,CAACA,MAAL,EAAa;AACX,cAAM,IAAIG,oCAAJ,CAA6B,kCAA7B,CAAN;AACD;AACF;AAED;AACF;;;;WACE,qBAAoB;AAAA;;AAClB;AAEEvB,QAAAA,GAAG,EAAE,KAAKD,IAFZ;AAGEG,QAAAA,MAAM,EAAE,KAAKD,OAHf;AAIE;AACAuB,QAAAA,WAAW,EAAE,kCAAKrB,YAAL,iBACX,UAACsB,UAAD;AAAA,iBAAgCA,UAAU,CAACC,SAAX,EAAhC;AAAA,SADW;AALf;AASD;;;WAnKD,2BAAyB7B,IAAzB,EAA2D;AACzD,UAAI,EAAEA,IAAI,YAAYD,0BAAlB,CAAJ,EAA0C;AACxC,cAAM,IAAI2B,oCAAJ,CACJ,iEADI,CAAN;AAGD;;AAED,YAAM,IAAII,KAAJ,CAAU,qDAAV,CAAN;AACD;;;EAlCyBC,mB;;eAgMblC,a","sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Base model\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\"\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (!models) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate()\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"file":"ResourceModel.js"}
@@ -35,6 +35,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
35
35
 
36
36
  var _ConceptDetailModel2 = _interopRequireDefault(require("./ConceptDetailModel"));
37
37
 
38
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
39
+
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
41
 
40
42
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -110,7 +112,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
110
112
  value: function setChildModels(models) {
111
113
  // $FlowExpectedError[incompatible-type]
112
114
  this.conceptType = (0, _find.default)(models).call(models, function (model) {
113
- return model.type === "ConceptTypeDetail";
115
+ return model instanceof _ConceptTypeDetailModel.default;
114
116
  });
115
117
  var scenarioSteps = [];
116
118
  var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
@@ -1,5 +1,6 @@
1
1
  // @flow
2
2
  import ConceptDetailModel from "./ConceptDetailModel";
3
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
3
4
 
4
5
  import type { ModularUIResponse } from "../../modularui";
5
6
  import type { ModularUIModel } from "../types";
@@ -58,7 +59,7 @@ class BusinessScenarioModel extends ConceptDetailModel {
58
59
  setChildModels(models: Array<ModularUIModel>) {
59
60
  // $FlowExpectedError[incompatible-type]
60
61
  this.conceptType = models.find(
61
- (model) => model.type === "ConceptTypeDetail"
62
+ (model) => model instanceof ConceptTypeDetailModel
62
63
  );
63
64
 
64
65
  const scenarioSteps = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","type","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAOA;AACA;IACMA,qB;;;;;;;;;;;;;;;;;;;;;;;;AAGJ;AACF;AACE,mBAAmB;AACjB,aAAO,kBAAP;AACD;AAED;AACF;;;;;AASE;AACF;AACE,yCAA8C;AAAA;;AAC5C,UAAMC,eAAe,GAAG,EAAxB;AACA,UAAMC,eAAe,GAAG,KAAKC,KAAL,CAAWC,YAAX,CAAwB,aAAxB,CAAxB;;AAEA,UAAIF,eAAJ,EAAqB;AACnBD,QAAAA,eAAe,CAACI,IAAhB,CAAqBH,eAArB;AACD;;AAED,UAAMI,iBAAiB,GAAG,oEAAKC,mBAAL,CAAyBC,GAAzB,kBAEtB,UAACC,QAAD;AAAA;;AAAA,eACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACA,0BAAAD,QAAQ,CAACE,OAAT,CAAiBC,eAAjB,gFAAkCC,IAAlC,MACE,kEAHJ;AAAA,OAFsB,mBAOnB,UAACJ,QAAD;AAAA,eAAcA,QAAQ,CAACE,OAAT,CAAiBG,WAAjB,EAAd;AAAA,OAPmB,CAA1B;;AASA,UAAIR,iBAAiB,CAACS,MAAlB,GAA2B,CAA/B,EAAkC;AAChCd,QAAAA,eAAe,CAACI,IAAhB,OAAAJ,eAAe,mCAASK,iBAAT,EAAf;AACD;;AAED,aAAOL,eAAP;AACD;AAED;AACF;;;;WACE,wBAAee,MAAf,EAA8C;AAC5C;AACA,WAAKC,WAAL,GAAmB,mBAAAD,MAAM,MAAN,CAAAA,MAAM,EACvB,UAACE,KAAD;AAAA,eAAWA,KAAK,CAACC,IAAN,KAAe,mBAA1B;AAAA,OADuB,CAAzB;AAIA,UAAMC,aAAa,GAAG,EAAtB;AACA,UAAMC,kBAAkB,GACtB,kEADF;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,MAAM,CAACD,MAA3B,EAAmCO,CAAC,EAApC,EAAwC;AAAA;;AACtC,YAAMJ,KAAK,GAAGF,MAAM,CAACM,CAAD,CAApB;;AAEA,YACEJ,KAAK,YAAYK,4BAAjB,IACA,uBAAAL,KAAK,CAACD,WAAN,0EAAmBO,QAAnB,CAA4BX,IAA5B,MAAqCQ,kBAFvC,EAGE;AACAD,UAAAA,aAAa,CAACf,IAAd,CAAmBa,KAAnB;AACD;AACF;;AAED,WAAKE,aAAL,GAAqBA,aAArB;AACD;AAED;AACF;;;;;AAKE;AACF;AACE,mBAA+C;AAC7C,aAAO,KAAKK,cAAZ;AACD;AAED;AACF;;SAXE,aAAkBT,MAAlB,EAAqD;AACnD,WAAKS,cAAL,GAAsBT,MAAtB;AACD;;;SAUD,eAAsC;AACpC,UAAMU,MAAM,GAAG,EAAf;AAEA,WAAKN,aAAL,CAAmBO,OAAnB,CAA2B,UAACC,YAAD,EAAkB;AAAA;;AAC3C,YAAMC,gBAAgB,GAAG,+BAAAD,YAAY,CAACrB,mBAAb,kBACvB,UAACE,QAAD;AAAA;;AAAA,iBACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACA,2BAAAD,QAAQ,CAACE,OAAT,CAAiBC,eAAjB,kFAAkCC,IAAlC,MACE,6DAHJ;AAAA,SADuB,CAAzB;AAOA,YAAMiB,kBAAkB,GACtBD,gBAAgB,IAChB,CAACH,MAAM,CAACK,IAAP,CAAY,UAACC,KAAD;AAAA,iBAAWA,KAAK,CAACC,GAAN,KAAcJ,gBAAgB,CAAClB,OAAjB,CAAyBsB,GAAlD;AAAA,SAAZ,CAFH;;AAIA,YAAIJ,gBAAgB,IAAIC,kBAAxB,EAA4C;AAC1CJ,UAAAA,MAAM,CAACrB,IAAP,CAAYwB,gBAAgB,CAAClB,OAA7B;AACD;AACF,OAfD;AAiBA,aAAOe,MAAP;AACD;;;WA9FD,2BAAyBQ,IAAzB,EAA2D;AAAA;;AACzD,UAAMC,eAAe,GAAGD,IAAH,aAAGA,IAAH,qCAAGA,IAAI,CAAEA,IAAT,oEAAG,WAAYE,MAAf,+EAAG,kBAAoBC,WAAvB,0DAAG,sBAAiCC,IAAzD;AACA,aACEH,eAAe,KACf,sEAFF;AAID;;;EAjBiCZ,4B;;eA4GrBvB,qB","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model.type === \"ConceptTypeDetail\"\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","ConceptTypeDetailModel","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
@@ -53,6 +53,8 @@ var _ConceptRelationCollection = _interopRequireDefault(require("./ConceptRelati
53
53
 
54
54
  var _SourceReferenceCollection = _interopRequireDefault(require("./SourceReferenceCollection"));
55
55
 
56
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
57
+
56
58
  var _Constants = require("../../constants/Constants");
57
59
 
58
60
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -122,7 +124,7 @@ var ConceptDetailModel = /*#__PURE__*/function (_ResourceModel) {
122
124
  value: function setChildModels(models) {
123
125
  // $FlowExpectedError[incompatible-type]
124
126
  var conceptTypeModel = (0, _find.default)(models).call(models, function (model) {
125
- return model.type === "ConceptTypeDetail";
127
+ return model instanceof _ConceptTypeDetailModel.default;
126
128
  });
127
129
 
128
130
  if (conceptTypeModel) {