@beinformed/ui 1.13.3 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +20 -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/attributes/DatetimeAttributeModel.js +3 -2
  16. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  17. package/esm/models/base/BaseCollection.js.map +1 -1
  18. package/esm/models/base/ResourceCollection.js +4 -2
  19. package/esm/models/base/ResourceCollection.js.map +1 -1
  20. package/esm/models/base/ResourceModel.js +1 -0
  21. package/esm/models/base/ResourceModel.js.map +1 -1
  22. package/esm/models/concepts/BusinessScenarioModel.js +2 -1
  23. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  24. package/esm/models/concepts/ConceptDetailModel.js +2 -1
  25. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  26. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  27. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  28. package/esm/models/content/ContentLinkModel.js +2 -0
  29. package/esm/models/content/ContentLinkModel.js.map +1 -1
  30. package/esm/models/href/Href.js +1 -1
  31. package/esm/models/href/Href.js.map +1 -1
  32. package/esm/react-server/renderSSRComplete.js +2 -1
  33. package/esm/react-server/renderSSRComplete.js.map +1 -1
  34. package/esm/react-server/serverNoSSR.js +1 -1
  35. package/esm/react-server/serverNoSSR.js.map +1 -1
  36. package/esm/redux/_modularui/actions.js +16 -17
  37. package/esm/redux/_modularui/actions.js.map +1 -1
  38. package/esm/redux/_modularui/reducer.js +1 -2
  39. package/esm/redux/_modularui/reducer.js.map +1 -1
  40. package/esm/redux/actions/Authorization.js +2 -1
  41. package/esm/redux/actions/Authorization.js.map +1 -1
  42. package/esm/redux/actions/SignIn.js +5 -9
  43. package/esm/redux/actions/SignIn.js.map +1 -1
  44. package/esm/utils/helpers/checkResourceExists.js +23 -0
  45. package/esm/utils/helpers/checkResourceExists.js.map +1 -0
  46. package/esm/utils/helpers/objects.js +2 -1
  47. package/esm/utils/helpers/objects.js.map +1 -1
  48. package/esm/utils/index.js +2 -1
  49. package/esm/utils/index.js.map +1 -1
  50. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
  51. package/lib/models/attributes/AttributeContent.js +3 -3
  52. package/lib/models/attributes/AttributeContent.js.flow +3 -3
  53. package/lib/models/attributes/AttributeContent.js.map +1 -1
  54. package/lib/models/attributes/AttributeModel.js.flow +10 -2
  55. package/lib/models/attributes/AttributeModel.js.map +1 -1
  56. package/lib/models/attributes/BooleanAttributeModel.js +1 -0
  57. package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
  58. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  59. package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
  60. package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
  61. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  62. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
  63. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  64. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
  65. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  66. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
  67. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
  68. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  69. package/lib/models/attributes/CompositeAttributeModel.js +2 -1
  70. package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
  71. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  72. package/lib/models/attributes/DatetimeAttributeModel.js +4 -2
  73. package/lib/models/attributes/DatetimeAttributeModel.js.flow +3 -5
  74. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  75. package/lib/models/base/BaseCollection.js.flow +2 -2
  76. package/lib/models/base/BaseCollection.js.map +1 -1
  77. package/lib/models/base/ResourceCollection.js +4 -2
  78. package/lib/models/base/ResourceCollection.js.flow +4 -6
  79. package/lib/models/base/ResourceCollection.js.map +1 -1
  80. package/lib/models/base/ResourceModel.js +1 -0
  81. package/lib/models/base/ResourceModel.js.flow +3 -2
  82. package/lib/models/base/ResourceModel.js.map +1 -1
  83. package/lib/models/concepts/BusinessScenarioModel.js +3 -1
  84. package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
  85. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  86. package/lib/models/concepts/ConceptDetailModel.js +3 -1
  87. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  88. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  89. package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
  90. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  91. package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
  92. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  93. package/lib/models/content/ContentLinkModel.js +2 -0
  94. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  95. package/lib/models/content/ContentLinkModel.js.map +1 -1
  96. package/lib/models/href/Href.js +1 -1
  97. package/lib/models/href/Href.js.flow +2 -1
  98. package/lib/models/href/Href.js.map +1 -1
  99. package/lib/models/types.js.flow +2 -2
  100. package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
  101. package/lib/react-server/renderSSRComplete.js +2 -1
  102. package/lib/react-server/renderSSRComplete.js.flow +4 -1
  103. package/lib/react-server/renderSSRComplete.js.map +1 -1
  104. package/lib/react-server/serverNoSSR.js +1 -1
  105. package/lib/react-server/serverNoSSR.js.flow +1 -1
  106. package/lib/react-server/serverNoSSR.js.map +1 -1
  107. package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
  108. package/lib/redux/_modularui/actions.js +12 -12
  109. package/lib/redux/_modularui/actions.js.flow +12 -12
  110. package/lib/redux/_modularui/actions.js.map +1 -1
  111. package/lib/redux/_modularui/reducer.js +1 -2
  112. package/lib/redux/_modularui/reducer.js.flow +0 -1
  113. package/lib/redux/_modularui/reducer.js.map +1 -1
  114. package/lib/redux/actions/Authorization.js +2 -1
  115. package/lib/redux/actions/Authorization.js.flow +1 -0
  116. package/lib/redux/actions/Authorization.js.map +1 -1
  117. package/lib/redux/actions/SignIn.js +6 -9
  118. package/lib/redux/actions/SignIn.js.flow +5 -11
  119. package/lib/redux/actions/SignIn.js.map +1 -1
  120. package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
  121. package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
  122. package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
  123. package/lib/utils/helpers/checkResourceExists.js +34 -0
  124. package/lib/utils/helpers/checkResourceExists.js.flow +21 -0
  125. package/lib/utils/helpers/checkResourceExists.js.map +1 -0
  126. package/lib/utils/helpers/objects.js +3 -1
  127. package/lib/utils/helpers/objects.js.flow +2 -2
  128. package/lib/utils/helpers/objects.js.map +1 -1
  129. package/lib/utils/index.js +14 -0
  130. package/lib/utils/index.js.flow +1 -0
  131. package/lib/utils/index.js.map +1 -1
  132. package/package.json +17 -17
  133. package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
  134. package/src/models/attributes/AttributeContent.js +3 -3
  135. package/src/models/attributes/AttributeModel.js +10 -2
  136. package/src/models/attributes/BooleanAttributeModel.js +4 -1
  137. package/src/models/attributes/ChoiceAttributeModel.js +4 -1
  138. package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
  139. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
  140. package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
  141. package/src/models/attributes/CompositeAttributeModel.js +1 -0
  142. package/src/models/attributes/DatetimeAttributeModel.js +3 -5
  143. package/src/models/base/BaseCollection.js +2 -2
  144. package/src/models/base/ResourceCollection.js +4 -6
  145. package/src/models/base/ResourceModel.js +3 -2
  146. package/src/models/concepts/BusinessScenarioModel.js +2 -1
  147. package/src/models/concepts/ConceptDetailModel.js +2 -2
  148. package/src/models/concepts/ConceptLinkModel.js +5 -2
  149. package/src/models/concepts/ConceptRelationModel.js +6 -2
  150. package/src/models/content/ContentLinkModel.js +2 -0
  151. package/src/models/href/Href.js +2 -1
  152. package/src/models/types.js +2 -2
  153. package/src/react-server/__tests__/serverUtil.spec.js +15 -14
  154. package/src/react-server/renderSSRComplete.js +4 -1
  155. package/src/react-server/serverNoSSR.js +1 -1
  156. package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
  157. package/src/redux/_modularui/actions.js +12 -12
  158. package/src/redux/_modularui/reducer.js +0 -1
  159. package/src/redux/actions/Authorization.js +1 -0
  160. package/src/redux/actions/SignIn.js +5 -11
  161. package/src/redux/actions/__tests__/Application.spec.js +1 -0
  162. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
  163. package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
  164. package/src/utils/helpers/checkResourceExists.js +21 -0
  165. package/src/utils/helpers/objects.js +2 -2
  166. package/src/utils/index.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"names":["BaseModel","ChoiceAttributeOptionCollection","DateUtil","has","TIMEVERSION_FILTER_NAME","TITLE","hasAllContentInData","LinkCollection","AttributeCollection","ConceptDetailModel","AttributeContent","ChoiceAttributeOptionModel","selectedValues","option","referenceDate","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","_content","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","label","hasItems","title","getAttributeByLayoutHint","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","create","options","links","date","getLinkByKey","addParameter","isCacheable","_concept","level","withOption","mergeOptions","listitem","id"],"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":["BaseModel","ChoiceAttributeOptionCollection","DateUtil","has","TIMEVERSION_FILTER_NAME","TITLE","hasAllContentInData","LinkCollection","AttributeCollection","ConceptDetailModel","AttributeContent","ChoiceAttributeOptionModel","selectedValues","option","referenceDate","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","_content","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","label","hasItems","title","getAttributeByLayoutHint","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","create","options","links","date","getLinkByKey","addParameter","isCacheable","_concept","level","withOption","mergeOptions","listitem","id"],"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 { 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"}
@@ -118,6 +118,7 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
118
118
  if (this.first instanceof CompositeAttributeChildCollection) {
119
119
  var _context2;
120
120
 
121
+ // $FlowFixMe[missing-type-arg]
121
122
  return _mapInstanceProperty(_context2 = this.collection).call(_context2, function (collection) {
122
123
  return collection.initvalue;
123
124
  });
@@ -154,7 +155,6 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
154
155
  var children = {};
155
156
  this.collection.forEach(function (attribute) {
156
157
  if (attribute.formdata !== null && !attribute.readonly) {
157
- // $FlowIgnore[cannot-spread-indexer]
158
158
  children = _objectSpread(_objectSpread({}, children), attribute.formdata);
159
159
  }
160
160
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"names":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","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"],"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":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","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"],"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"}
@@ -436,7 +436,8 @@ var CompositeAttributeModel = /*#__PURE__*/function (_AttributeModel) {
436
436
  }, {
437
437
  key: "equals",
438
438
  value: function equals(otherAttribute) {
439
- return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some(function (child) {
439
+ return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some( //$FlowFixMe[method-unbinding]
440
+ function (child) {
440
441
  return child.equals && child.equals(otherAttribute);
441
442
  });
442
443
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"names":["AttributeModel","CompositeAttributeChildCollection","ConstraintCollection","RangeConstraint","MandatoryRangeConstraint","ATTRIBUTE_WIDTH","IllegalArgumentException","NumberAttributeModel","DatetimeAttributeModel","CompositeAttributeModel","data","contributions","_children","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","all","size","getInputValue","some","child","hasValue","constraints","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","mandatory","allChildsOptional","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","LARGE","EXTRA_LARGE","MEDIUM"],"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":["AttributeModel","CompositeAttributeChildCollection","ConstraintCollection","RangeConstraint","MandatoryRangeConstraint","ATTRIBUTE_WIDTH","IllegalArgumentException","NumberAttributeModel","DatetimeAttributeModel","CompositeAttributeModel","data","contributions","_children","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","all","size","getInputValue","some","child","hasValue","constraints","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","mandatory","allChildsOptional","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","LARGE","EXTRA_LARGE","MEDIUM"],"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"}
@@ -22,6 +22,7 @@ import DatetimeFormatConstraint from "./input-constraints/DatetimeFormatConstrai
22
22
  import DateBoundaryConstraint from "./input-constraints/DateBoundaryConstraint";
23
23
  import { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from "../../constants";
24
24
  import { getSetting } from "../../constants/Settings";
25
+ import { IGNORE_FORMAT_SETTING } from "../../constants/LayoutHints";
25
26
  // date format of default
26
27
  var PRODUCT_DEFAULT_DATE_FORMAT = "dd-MM-yyyy";
27
28
  /**
@@ -278,9 +279,9 @@ var DatetimeAttributeModel = /*#__PURE__*/function (_StringAttributeModel) {
278
279
  } // setting for date input
279
280
 
280
281
 
281
- var ignoreDateInputFormatSetting = getSetting("IGNORE_FORMAT_SETTING", false);
282
+ var ignoreFormatSetting = this.layouthint.has(IGNORE_FORMAT_SETTING);
282
283
 
283
- if (!ignoreDateInputFormatSetting) {
284
+ if (!ignoreFormatSetting) {
284
285
  var dateInputFormatSetting = getSetting("DATE_INPUT_FORMAT", "");
285
286
 
286
287
  if (dateInputFormatSetting) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"names":["has","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil","StringAttributeModel","ConstraintCollection","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","DateBoundaryConstraint","ATTRIBUTE_WIDTH","ISO_DATE_FORMAT","getSetting","PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","value","data","length","split","hasTime","getTimeValue","timeValue","timeInputFormat","toLowerCase","formatUtil","setHour","setMinute","setSecond","setMilliseconds","getInitValue","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","toString","getInputValue","validate","toISO","format","convertFormat","dateInputFormat","hasDate","ignoreDateInputFormatSetting","dateInputFormatSetting","dateFormat","replace","readonlyFormatSetting","_placeholder","formatLabel","placeholder","timeFormatParts","push","timeFormat","join","hasFormat","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","constraints","add","getFormatConstraint","mindate","maxdate","SMALL","MEDIUM","contributions"],"mappings":";;;;;;;;;;;;;;AACA,SAASA,GAAT,QAAoB,6BAApB;AAEA,SACEC,QADF,EAEEC,YAFF,EAGEC,QAHF,EAIEC,aAJF,QAKO,mCALP;AAOA,OAAOC,oBAAP,MAAiC,wBAAjC;AAEA,OAAOC,oBAAP,MAAiC,0CAAjC;AACA,OAAOC,4BAAP,MAAyC,kDAAzC;AACA,OAAOC,4BAAP,MAAyC,kDAAzC;AACA,OAAOC,wBAAP,MAAqC,8CAArC;AACA,OAAOC,sBAAP,MAAmC,4CAAnC;AAEA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,iBAAjD;AACA,SAASC,UAAT,QAA2B,0BAA3B;AAIA;AACA,IAAMC,2BAA2B,GAAG,YAApC;AAEA;AACA;;IACMC,sB;;;;;AACJ;AACF;AACE,kCAAYC,SAAZ,EAA+BC,sBAA/B,EAA+D;AAAA;;AAAA;;AAC7D,8BAAMD,SAAN,EAAiBC,sBAAjB;;AAEA,UAAKC,eAAL;;AAH6D;AAI9D;AAED;AACF;;;;;;AAOE;AACF;AACE,mBAIoB;AAClB,cAAQ,KAAKC,IAAb;AACE,aAAK,MAAL;AACE,iBAAOhB,QAAP;;AACF,aAAK,WAAL;AACE,iBAAOC,aAAP;;AACF,aAAK,UAAL;AACE,iBAAOF,YAAP;;AACF;AACE,iBAAOD,QAAP;AARJ;AAUD;AAED;AACF;;;;WACE,wBAA8B;AAC5B,UAAImB,KAAK,GAAG,KAAKC,IAAL,CAAUD,KAAtB;;AACA,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,YAAI,KAAKD,IAAL,KAAc,MAAd,IAAwBC,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CF,UAAAA,KAAK,aAAMA,KAAN,QAAL;AACD,SAHgB,CAKjB;;;AACA,YAAI,KAAKD,IAAL,KAAc,UAAd,IAA4B,0BAAAC,KAAK,MAAL,CAAAA,KAAK,EAAU,GAAV,CAArC,EAAqD;AACnDA,UAAAA,KAAK,GAAGA,KAAK,CAACG,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAR;AACD;;AAED,YAAI,KAAKC,OAAT,EAAkB;AAChBJ,UAAAA,KAAK,GAAG,KAAKK,YAAL,CAAkBL,KAAlB,CAAR;AACD;AACF;;AAED,aAAOA,KAAP;AACD;AAED;AACF;;;;WACE,sBAAaA,KAAb,EAAoC;AAAA;;AAClC,UAAIM,SAAS,GAAGN,KAAhB;;AACA,UAAI,CAAC,0CAAKO,eAAL,CAAqBC,WAArB,mBAA4C,GAA5C,CAAL,EAAuD;AACrDF,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBC,OAAhB,CAAwBV,KAAxB,EAA+B,CAA/B,CAAZ;AACD;;AACD,UAAI,CAAC,2CAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBE,SAAhB,CAA0BX,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,CAAC,2CAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBG,SAAhB,CAA0BZ,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,KAAKD,IAAL,KAAc,WAAd,IAA6B,CAAC,2CAAKQ,eAAL,kBAA8B,GAA9B,CAAlC,EAAsE;AACpED,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBI,eAAhB,CAAgCb,KAAhC,EAAuC,CAAvC,CAAZ;AACD;;AACD,aAAOM,SAAP;AACD;AAED;AACF;AACA;;;;WACE,2BAAkB;AAChB,UAAMN,KAAK,GAAG,KAAKc,YAAL,EAAd;;AACA,UAAId,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAKe,UAAL,GAAkBf,KAAlB;AACA,aAAKgB,WAAL,GAAmB,KAAKC,oBAAL,CAA0BjB,KAA1B,CAAnB;AACA,aAAKkB,MAAL,GAAclB,KAAd;AACD;AACF;AAED;AACF;AACA;;;;WACE,8BAAqBA,KAArB,EAA6C;AAC3C,UAAI,CAACA,KAAL,EAAY;AACV,eAAO,EAAP;AACD;;AAED,UAAImB,SAAS,GAAGnB,KAAhB;;AACA,UAAI,KAAKD,IAAL,KAAc,MAAd,IAAwBC,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CiB,QAAAA,SAAS,aAAMnB,KAAN,QAAT;AACD;;AAED,aAAO,KAAKS,UAAL,CAAgBW,QAAhB,CAAyBD,SAAzB,EAAoC,KAAKE,WAAzC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKC,eAAL,CAAqB,MAArB,EAA6B,MAA7B,CAAP;AACD;AAED;AACF;AACA;;;;WACE,yBAAwB;AACtB,aAAO,KAAKN,WAAL,GAAmB,KAAKA,WAAL,CAAiBO,QAAjB,EAAnB,GAAiD,EAAxD;AACD;AAED;AACF;AACA;;;;SACE,eAAyB;AACvB,aAAO,KAAKC,aAAL,EAAP;AACD;AAED;AACF;AACA;;SACE,aAAexB,KAAf,EAA8B;AAC5B,WAAKyB,QAAL,CAAczB,KAAd;AAEA,WAAKgB,WAAL,GAAmBhB,KAAnB;AAEA,WAAKA,KAAL,GACEA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAA5B,GACI,KAAKS,UAAL,CAAgBiB,KAAhB,CAAsB1B,KAAtB,EAA6B,KAAKqB,WAAlC,CADJ,GAEI,IAHN;AAID;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,UAAMM,MAAM,GAAG,KAAKL,eAAL,CAAqB,QAArB,EAA+B,EAA/B,CAAf;AACA,aAAO,KAAKb,UAAL,CAAgBmB,aAAhB,CAA8BD,MAA9B,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aAAO,KAAKL,eAAL,CAAqB,UAArB,EAAiC,EAAjC,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAKvB,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAKA,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAA0B;AACxB,cAAQ,KAAKA,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,KAAK8B,eAAL,CAAqBrB,WAArB,EAAP;;AACF,aAAK,MAAL;AACE,iBAAO,KAAKD,eAAL,CAAqBC,WAArB,EAAP;;AACF;AACE,iBAAO,KAAKmB,MAAL,CAAYnB,WAAZ,EAAP;AANJ;AAQD;AAED;AACF;;;;SACE,eAA0B;AACxB,UAAI,KAAKsB,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,eAAO,gFAAG,KAAKyB,eAAR,wBAA2B,KAAKtB,eAAhC,kBAAP;AACD;;AAED,UAAI,KAAKuB,OAAT,EAAkB;AAChB,eAAO,KAAKD,eAAZ;AACD;;AAED,UAAI,KAAKzB,OAAT,EAAkB;AAChB,eAAO,KAAKG,eAAZ;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;SACE,eAA8B;AAAA;;AAC5B,UAAI,CAAC,KAAKuB,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD,OAH2B,CAK5B;;;AACA,UAAMC,4BAA4B,GAAGtC,UAAU,CAC7C,uBAD6C,EAE7C,KAF6C,CAA/C;;AAIA,UAAI,CAACsC,4BAAL,EAAmC;AACjC,YAAMC,sBAAsB,GAAGvC,UAAU,CAAC,mBAAD,EAAsB,EAAtB,CAAzC;;AACA,YAAIuC,sBAAJ,EAA4B;AAC1B,iBAAOA,sBAAP;AACD;AACF;;AAED,UAAIL,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIM,UAAU,GAAG,KAAK7B,OAAL,GACb,kCAAAuB,MAAM,CAACO,OAAP,CAAe,KAAK3B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,aAAOM,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAAA;;AAC/B,UAAI,CAAC,KAAKH,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAIH,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIM,UAAU,GAAG,KAAK7B,OAAL,GACb,kCAAAuB,MAAM,CAACO,OAAP,CAAe,KAAK3B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,UAAMQ,qBAAqB,GAAG1C,UAAU,CAAC,sBAAD,EAAyB,EAAzB,CAAxC;;AAEA,UAAIwC,UAAU,KAAKvC,2BAAf,IAA8CyC,qBAAlD,EAAyE;AACvEF,QAAAA,UAAU,GAAGE,qBAAb;AACD;;AAED,aAAOF,UAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA0B;AACxB,UAAI,KAAKG,YAAL,KAAsB,EAA1B,EAA8B;AAC5B,eAAO,KAAKA,YAAZ;AACD;;AAED,UAAMJ,sBAAsB,GAAGvC,UAAU,CAAC,mBAAD,EAAsB,EAAtB,CAAzC;;AAEA,UAAIuC,sBAAJ,EAA4B;AAC1B,eAAOA,sBAAsB,CAACxB,WAAvB,EAAP;AACD;;AAED,UAAM6B,WAAW,GAAG,KAAKf,eAAL,CAAqB,aAArB,EAAoC,EAApC,CAApB;;AAEA,UAAI,KAAKQ,OAAL,IAAgB,KAAK1B,OAArB,IAAgC,0BAAAiC,WAAW,MAAX,CAAAA,WAAW,EAAU,GAAV,CAA/C,EAA+D;AAC7D;AACA,eAAOA,WAAW,CAAClC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAP;AACD;;AAED,aAAOkC,WAAP;AACD;AAED;AACF;AACA;;SACE,aAAgBC,WAAhB,EAAqC;AACnC,WAAKF,YAAL,GAAoBE,WAApB;AACD;AAED;AACF;;;;SACE,eAA8B;AAC5B,UAAI,CAAC,KAAKlC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAMuB,MAAM,GAAG,KAAKA,MAApB;AAEA,UAAIY,eAAe,GAAG,EAAtB;;AACA,UAAI,0BAAAZ,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBY,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD,OAFD,MAEO,IAAI,0BAAAb,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AAC/BY,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,0BAAAb,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBY,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,0BAAAb,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBY,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AAED,UAAIC,UAAU,GAAGF,eAAe,CAACG,IAAhB,CAAqB,GAArB,CAAjB;;AACA,UAAI,0BAAAf,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBc,QAAAA,UAAU,aAAMA,UAAN,SAAV;AACD;;AACD,UAAI,0BAAAd,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxB,yBAAUc,UAAV;AACD;;AACD,aAAOA,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAC/B,UAAI,CAAC,KAAKrC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,aAAO,KAAKG,eAAZ;AACD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAKP,KAAZ,KAAsB,QAAtB,IAAkC,KAAK6B,eAAL,KAAyB,EAA3D,GACH,KAAKpB,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAK6B,eAA1C,CADG,GAEH,EAFJ;AAGD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAK7B,KAAZ,KAAsB,QAAtB,IAAkC,KAAKO,eAAL,KAAyB,EAA3D,GACH,KAAKE,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAKO,eAA1C,CADG,GAEH,EAFJ;AAGD,K,CAED;;AACA;AACF;;;;WACE,qBAAYP,KAAZ,EAAoC;AAClC,UAAIA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACuB,QAAN,OAAqB,EAA1C,EAA8C;AAC5C,eAAO,EAAP;AACD,OAHiC,CAKlC;;;AACA,UACE,CAAC,KAAKxB,IAAL,KAAc,UAAd,IAA4B,KAAKA,IAAL,KAAc,WAA3C,KACAlB,QAAQ,CAAC8D,SAAT,CAAmB3C,KAAnB,EAA0BR,eAA1B,CAFF,EAGE;AACA,eAAOX,QAAQ,CAACuC,QAAT,CAAkBpB,KAAlB,EAAyB,KAAK4C,kBAA9B,CAAP;AACD;;AAED,UAAI,KAAKd,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,YAAMyC,sBAAsB,iDAAM,KAAKD,kBAAX,wBAAiC,KAAKE,kBAAtC,CAA5B;;AACA,eAAO,KAAKrC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC6C,sBAAhC,CAAP;AACD;;AAED,UAAI,KAAK9C,IAAL,KAAc,MAAlB,EAA0B;AACxB,eAAO,KAAKU,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK4C,kBAArC,CAAP;AACD;;AAED,aAAO,KAAKnC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK2B,MAArC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,UAAI,OAAO,KAAK3B,KAAZ,KAAsB,QAA1B,EAAoC;AAClC,eAAO,KAAK+C,WAAL,CAAiB,KAAK/C,KAAL,CAAWuB,QAAX,EAAjB,CAAP;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKD,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKA,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAe0B,KAAf,EAAuC;AACrC,UAAQC,EAAR,GAAoCD,KAApC,CAAQC,EAAR;AAAA,UAAYC,OAAZ,GAAoCF,KAApC,CAAYE,OAAZ;AAAA,UAAqBC,UAArB,GAAoCH,KAApC,CAAqBG,UAArB;;AACA,UAAIA,UAAU,IAAIvE,GAAG,CAACuE,UAAD,EAAa,QAAb,CAAjB,IAA2C,KAAKd,WAApD,EAAiE;AAC/Dc,QAAAA,UAAU,CAACxB,MAAX,GAAoB,KAAKU,WAAzB;AACD;;AAED,WAAKe,gBAAL,CAAsBC,cAAtB,CAAqCJ,EAArC,EAAyCC,OAAzC,EAAkDC,UAAlD;AACD;AAED;AACF;;;;WACE,+BAAwC;AACtC,cAAQ,KAAKpD,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,IAAIZ,4BAAJ,CACL,KAAK0C,eADA,EAEL,KAAKQ,WAFA,CAAP;;AAIF,aAAK,MAAL;AACE,iBAAO,IAAIjD,4BAAJ,CACL,KAAKmB,eADA,EAEL,KAAK8B,WAFA,CAAP;;AAIF;AACE,iBAAO,IAAIhD,wBAAJ,CACL,KAAKU,IADA,EAEL,KAAKsB,WAFA,EAGL,KAAKgB,WAHA,CAAP;AAZJ;AAkBD;AAED;AACF;AACA;;;;WACE,0BAAuC;AACrC,UAAMiB,WAAW,GAAG,IAAIpE,oBAAJ,EAApB;AAEAoE,MAAAA,WAAW,CAACC,GAAZ,CAAgB,KAAKC,mBAAL,EAAhB;;AAEA,UAAI,KAAKC,OAAL,IAAgB,KAAKC,OAAzB,EAAkC;AAChCJ,QAAAA,WAAW,CAACC,GAAZ,CACE,IAAIjE,sBAAJ,CACE,KAAKS,IADP,EAEE,KAAK0D,OAFP,EAGE,KAAKC,OAHP,EAIE,KAAKrC,WAJP,CADF;AAQD;;AAED,aAAOiC,WAAP;AACD;AAED;AACF;;;;SACE,eAAmD;AACjD,UAAI,KAAKvD,IAAL,KAAc,MAAd,IAAwB,KAAKA,IAAL,KAAc,MAA1C,EAAkD;AAChD,eAAOR,eAAe,CAACoE,KAAvB;AACD;;AAED,aAAOpE,eAAe,CAACqE,MAAvB;AACD;;;WAncD,2BAAyBC,aAAzB,EAAyD;AAAA;;AACvD,aAAO,wCAAC,MAAD,EAAS,MAAT,EAAiB,UAAjB,EAA6B,WAA7B,oBACLA,aAAa,CAAC9D,IADT,CAAP;AAGD;;;;EAfkCd,oB;;AAidrC,eAAeU,sBAAf","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { FormErrorAnchor, IConstraintModel } from \"../types\";\n\n// date format of default\nconst PRODUCT_DEFAULT_DATE_FORMAT = \"dd-MM-yyyy\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n // setting for date input\n const ignoreDateInputFormatSetting = getSetting(\n \"IGNORE_FORMAT_SETTING\",\n false\n );\n if (!ignoreDateInputFormatSetting) {\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n if (dateInputFormatSetting) {\n return dateInputFormatSetting;\n }\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n return dateFormat;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n const readonlyFormatSetting = getSetting(\"DATE_READONLY_FORMAT\", \"\");\n\n if (dateFormat === PRODUCT_DEFAULT_DATE_FORMAT && readonlyFormatSetting) {\n dateFormat = readonlyFormatSetting;\n }\n\n return dateFormat;\n }\n\n /**\n * return attribute placeholder or, if DATE_INPUT_FORMAT setting is used, lowercased setting, otherwise return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n\n if (dateInputFormatSetting) {\n return dateInputFormatSetting.toLowerCase();\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat\n )\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"file":"DatetimeAttributeModel.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"names":["has","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil","StringAttributeModel","ConstraintCollection","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","DateBoundaryConstraint","ATTRIBUTE_WIDTH","ISO_DATE_FORMAT","getSetting","IGNORE_FORMAT_SETTING","PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","value","data","length","split","hasTime","getTimeValue","timeValue","timeInputFormat","toLowerCase","formatUtil","setHour","setMinute","setSecond","setMilliseconds","getInitValue","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","toString","getInputValue","validate","toISO","format","convertFormat","dateInputFormat","hasDate","ignoreFormatSetting","layouthint","dateInputFormatSetting","dateFormat","replace","readonlyFormatSetting","_placeholder","formatLabel","placeholder","timeFormatParts","push","timeFormat","join","hasFormat","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","constraints","add","getFormatConstraint","mindate","maxdate","SMALL","MEDIUM","contributions"],"mappings":";;;;;;;;;;;;;;AACA,SAASA,GAAT,QAAoB,6BAApB;AAEA,SACEC,QADF,EAEEC,YAFF,EAGEC,QAHF,EAIEC,aAJF,QAKO,mCALP;AAOA,OAAOC,oBAAP,MAAiC,wBAAjC;AAEA,OAAOC,oBAAP,MAAiC,0CAAjC;AACA,OAAOC,4BAAP,MAAyC,kDAAzC;AACA,OAAOC,4BAAP,MAAyC,kDAAzC;AACA,OAAOC,wBAAP,MAAqC,8CAArC;AACA,OAAOC,sBAAP,MAAmC,4CAAnC;AAEA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,iBAAjD;AACA,SAASC,UAAT,QAA2B,0BAA3B;AACA,SAASC,qBAAT,QAAsC,6BAAtC;AAIA;AACA,IAAMC,2BAA2B,GAAG,YAApC;AAEA;AACA;;IACMC,sB;;;;;AACJ;AACF;AACE,kCAAYC,SAAZ,EAA+BC,sBAA/B,EAA+D;AAAA;;AAAA;;AAC7D,8BAAMD,SAAN,EAAiBC,sBAAjB;;AAEA,UAAKC,eAAL;;AAH6D;AAI9D;AAED;AACF;;;;;;AAOE;AACF;AACE,mBAIoB;AAClB,cAAQ,KAAKC,IAAb;AACE,aAAK,MAAL;AACE,iBAAOjB,QAAP;;AACF,aAAK,WAAL;AACE,iBAAOC,aAAP;;AACF,aAAK,UAAL;AACE,iBAAOF,YAAP;;AACF;AACE,iBAAOD,QAAP;AARJ;AAUD;AAED;AACF;;;;WACE,wBAA8B;AAC5B,UAAIoB,KAAK,GAAG,KAAKC,IAAL,CAAUD,KAAtB;;AACA,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,YAAI,KAAKD,IAAL,KAAc,MAAd,IAAwBC,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CF,UAAAA,KAAK,aAAMA,KAAN,QAAL;AACD,SAHgB,CAKjB;;;AACA,YAAI,KAAKD,IAAL,KAAc,UAAd,IAA4B,0BAAAC,KAAK,MAAL,CAAAA,KAAK,EAAU,GAAV,CAArC,EAAqD;AACnDA,UAAAA,KAAK,GAAGA,KAAK,CAACG,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAR;AACD;;AAED,YAAI,KAAKC,OAAT,EAAkB;AAChBJ,UAAAA,KAAK,GAAG,KAAKK,YAAL,CAAkBL,KAAlB,CAAR;AACD;AACF;;AAED,aAAOA,KAAP;AACD;AAED;AACF;;;;WACE,sBAAaA,KAAb,EAAoC;AAAA;;AAClC,UAAIM,SAAS,GAAGN,KAAhB;;AACA,UAAI,CAAC,0CAAKO,eAAL,CAAqBC,WAArB,mBAA4C,GAA5C,CAAL,EAAuD;AACrDF,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBC,OAAhB,CAAwBV,KAAxB,EAA+B,CAA/B,CAAZ;AACD;;AACD,UAAI,CAAC,2CAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBE,SAAhB,CAA0BX,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,CAAC,2CAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBG,SAAhB,CAA0BZ,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,KAAKD,IAAL,KAAc,WAAd,IAA6B,CAAC,2CAAKQ,eAAL,kBAA8B,GAA9B,CAAlC,EAAsE;AACpED,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBI,eAAhB,CAAgCb,KAAhC,EAAuC,CAAvC,CAAZ;AACD;;AACD,aAAOM,SAAP;AACD;AAED;AACF;AACA;;;;WACE,2BAAkB;AAChB,UAAMN,KAAK,GAAG,KAAKc,YAAL,EAAd;;AACA,UAAId,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAKe,UAAL,GAAkBf,KAAlB;AACA,aAAKgB,WAAL,GAAmB,KAAKC,oBAAL,CAA0BjB,KAA1B,CAAnB;AACA,aAAKkB,MAAL,GAAclB,KAAd;AACD;AACF;AAED;AACF;AACA;;;;WACE,8BAAqBA,KAArB,EAA6C;AAC3C,UAAI,CAACA,KAAL,EAAY;AACV,eAAO,EAAP;AACD;;AAED,UAAImB,SAAS,GAAGnB,KAAhB;;AACA,UAAI,KAAKD,IAAL,KAAc,MAAd,IAAwBC,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CiB,QAAAA,SAAS,aAAMnB,KAAN,QAAT;AACD;;AAED,aAAO,KAAKS,UAAL,CAAgBW,QAAhB,CAAyBD,SAAzB,EAAoC,KAAKE,WAAzC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKC,eAAL,CAAqB,MAArB,EAA6B,MAA7B,CAAP;AACD;AAED;AACF;AACA;;;;WACE,yBAAwB;AACtB,aAAO,KAAKN,WAAL,GAAmB,KAAKA,WAAL,CAAiBO,QAAjB,EAAnB,GAAiD,EAAxD;AACD;AAED;AACF;AACA;;;;SACE,eAAyB;AACvB,aAAO,KAAKC,aAAL,EAAP;AACD;AAED;AACF;AACA;;SACE,aAAexB,KAAf,EAA8B;AAC5B,WAAKyB,QAAL,CAAczB,KAAd;AAEA,WAAKgB,WAAL,GAAmBhB,KAAnB;AAEA,WAAKA,KAAL,GACEA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAA5B,GACI,KAAKS,UAAL,CAAgBiB,KAAhB,CAAsB1B,KAAtB,EAA6B,KAAKqB,WAAlC,CADJ,GAEI,IAHN;AAID;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,UAAMM,MAAM,GAAG,KAAKL,eAAL,CAAqB,QAArB,EAA+B,EAA/B,CAAf;AACA,aAAO,KAAKb,UAAL,CAAgBmB,aAAhB,CAA8BD,MAA9B,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aAAO,KAAKL,eAAL,CAAqB,UAArB,EAAiC,EAAjC,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAKvB,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAKA,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAA0B;AACxB,cAAQ,KAAKA,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,KAAK8B,eAAL,CAAqBrB,WAArB,EAAP;;AACF,aAAK,MAAL;AACE,iBAAO,KAAKD,eAAL,CAAqBC,WAArB,EAAP;;AACF;AACE,iBAAO,KAAKmB,MAAL,CAAYnB,WAAZ,EAAP;AANJ;AAQD;AAED;AACF;;;;SACE,eAA0B;AACxB,UAAI,KAAKsB,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,eAAO,gFAAG,KAAKyB,eAAR,wBAA2B,KAAKtB,eAAhC,kBAAP;AACD;;AAED,UAAI,KAAKuB,OAAT,EAAkB;AAChB,eAAO,KAAKD,eAAZ;AACD;;AAED,UAAI,KAAKzB,OAAT,EAAkB;AAChB,eAAO,KAAKG,eAAZ;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;SACE,eAA8B;AAAA;;AAC5B,UAAI,CAAC,KAAKuB,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD,OAH2B,CAK5B;;;AACA,UAAMC,mBAAmB,GAAG,KAAKC,UAAL,CAAgBrD,GAAhB,CAAoBc,qBAApB,CAA5B;;AACA,UAAI,CAACsC,mBAAL,EAA0B;AACxB,YAAME,sBAAsB,GAAGzC,UAAU,CAAC,mBAAD,EAAsB,EAAtB,CAAzC;;AACA,YAAIyC,sBAAJ,EAA4B;AAC1B,iBAAOA,sBAAP;AACD;AACF;;AAED,UAAIN,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIO,UAAU,GAAG,KAAK9B,OAAL,GACb,kCAAAuB,MAAM,CAACQ,OAAP,CAAe,KAAK5B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,aAAOO,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAAA;;AAC/B,UAAI,CAAC,KAAKJ,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAIH,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIO,UAAU,GAAG,KAAK9B,OAAL,GACb,kCAAAuB,MAAM,CAACQ,OAAP,CAAe,KAAK5B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,UAAMS,qBAAqB,GAAG5C,UAAU,CAAC,sBAAD,EAAyB,EAAzB,CAAxC;;AAEA,UAAI0C,UAAU,KAAKxC,2BAAf,IAA8C0C,qBAAlD,EAAyE;AACvEF,QAAAA,UAAU,GAAGE,qBAAb;AACD;;AAED,aAAOF,UAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA0B;AACxB,UAAI,KAAKG,YAAL,KAAsB,EAA1B,EAA8B;AAC5B,eAAO,KAAKA,YAAZ;AACD;;AAED,UAAMJ,sBAAsB,GAAGzC,UAAU,CAAC,mBAAD,EAAsB,EAAtB,CAAzC;;AAEA,UAAIyC,sBAAJ,EAA4B;AAC1B,eAAOA,sBAAsB,CAACzB,WAAvB,EAAP;AACD;;AAED,UAAM8B,WAAW,GAAG,KAAKhB,eAAL,CAAqB,aAArB,EAAoC,EAApC,CAApB;;AAEA,UAAI,KAAKQ,OAAL,IAAgB,KAAK1B,OAArB,IAAgC,0BAAAkC,WAAW,MAAX,CAAAA,WAAW,EAAU,GAAV,CAA/C,EAA+D;AAC7D;AACA,eAAOA,WAAW,CAACnC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAP;AACD;;AAED,aAAOmC,WAAP;AACD;AAED;AACF;AACA;;SACE,aAAgBC,WAAhB,EAAqC;AACnC,WAAKF,YAAL,GAAoBE,WAApB;AACD;AAED;AACF;;;;SACE,eAA8B;AAC5B,UAAI,CAAC,KAAKnC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAMuB,MAAM,GAAG,KAAKA,MAApB;AAEA,UAAIa,eAAe,GAAG,EAAtB;;AACA,UAAI,0BAAAb,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBa,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD,OAFD,MAEO,IAAI,0BAAAd,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AAC/Ba,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,0BAAAd,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBa,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,0BAAAd,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBa,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AAED,UAAIC,UAAU,GAAGF,eAAe,CAACG,IAAhB,CAAqB,GAArB,CAAjB;;AACA,UAAI,0BAAAhB,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBe,QAAAA,UAAU,aAAMA,UAAN,SAAV;AACD;;AACD,UAAI,0BAAAf,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxB,yBAAUe,UAAV;AACD;;AACD,aAAOA,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAC/B,UAAI,CAAC,KAAKtC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,aAAO,KAAKG,eAAZ;AACD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAKP,KAAZ,KAAsB,QAAtB,IAAkC,KAAK6B,eAAL,KAAyB,EAA3D,GACH,KAAKpB,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAK6B,eAA1C,CADG,GAEH,EAFJ;AAGD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAK7B,KAAZ,KAAsB,QAAtB,IAAkC,KAAKO,eAAL,KAAyB,EAA3D,GACH,KAAKE,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAKO,eAA1C,CADG,GAEH,EAFJ;AAGD,K,CAED;;AACA;AACF;;;;WACE,qBAAYP,KAAZ,EAAoC;AAClC,UAAIA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACuB,QAAN,OAAqB,EAA1C,EAA8C;AAC5C,eAAO,EAAP;AACD,OAHiC,CAKlC;;;AACA,UACE,CAAC,KAAKxB,IAAL,KAAc,UAAd,IAA4B,KAAKA,IAAL,KAAc,WAA3C,KACAnB,QAAQ,CAACgE,SAAT,CAAmB5C,KAAnB,EAA0BT,eAA1B,CAFF,EAGE;AACA,eAAOX,QAAQ,CAACwC,QAAT,CAAkBpB,KAAlB,EAAyB,KAAK6C,kBAA9B,CAAP;AACD;;AAED,UAAI,KAAKf,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,YAAM0C,sBAAsB,iDAAM,KAAKD,kBAAX,wBAAiC,KAAKE,kBAAtC,CAA5B;;AACA,eAAO,KAAKtC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC8C,sBAAhC,CAAP;AACD;;AAED,UAAI,KAAK/C,IAAL,KAAc,MAAlB,EAA0B;AACxB,eAAO,KAAKU,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK6C,kBAArC,CAAP;AACD;;AAED,aAAO,KAAKpC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK2B,MAArC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,UAAI,OAAO,KAAK3B,KAAZ,KAAsB,QAA1B,EAAoC;AAClC,eAAO,KAAKgD,WAAL,CAAiB,KAAKhD,KAAL,CAAWuB,QAAX,EAAjB,CAAP;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKD,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKA,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAe2B,KAAf,EAAuC;AACrC,UAAQC,EAAR,GAAoCD,KAApC,CAAQC,EAAR;AAAA,UAAYC,OAAZ,GAAoCF,KAApC,CAAYE,OAAZ;AAAA,UAAqBC,UAArB,GAAoCH,KAApC,CAAqBG,UAArB;;AACA,UAAIA,UAAU,IAAIzE,GAAG,CAACyE,UAAD,EAAa,QAAb,CAAjB,IAA2C,KAAKd,WAApD,EAAiE;AAC/Dc,QAAAA,UAAU,CAACzB,MAAX,GAAoB,KAAKW,WAAzB;AACD;;AAED,WAAKe,gBAAL,CAAsBC,cAAtB,CAAqCJ,EAArC,EAAyCC,OAAzC,EAAkDC,UAAlD;AACD;AAED;AACF;;;;WACE,+BAAwC;AACtC,cAAQ,KAAKrD,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,IAAIb,4BAAJ,CACL,KAAK2C,eADA,EAEL,KAAKS,WAFA,CAAP;;AAIF,aAAK,MAAL;AACE,iBAAO,IAAInD,4BAAJ,CACL,KAAKoB,eADA,EAEL,KAAK+B,WAFA,CAAP;;AAIF;AACE,iBAAO,IAAIlD,wBAAJ,CACL,KAAKW,IADA,EAEL,KAAKsB,WAFA,EAGL,KAAKiB,WAHA,CAAP;AAZJ;AAkBD;AAED;AACF;AACA;;;;WACE,0BAAuC;AACrC,UAAMiB,WAAW,GAAG,IAAItE,oBAAJ,EAApB;AAEAsE,MAAAA,WAAW,CAACC,GAAZ,CAAgB,KAAKC,mBAAL,EAAhB;;AAEA,UAAI,KAAKC,OAAL,IAAgB,KAAKC,OAAzB,EAAkC;AAChCJ,QAAAA,WAAW,CAACC,GAAZ,CACE,IAAInE,sBAAJ,CACE,KAAKU,IADP,EAEE,KAAK2D,OAFP,EAGE,KAAKC,OAHP,EAIE,KAAKtC,WAJP,CADF;AAQD;;AAED,aAAOkC,WAAP;AACD;AAED;AACF;;;;SACE,eAAmD;AACjD,UAAI,KAAKxD,IAAL,KAAc,MAAd,IAAwB,KAAKA,IAAL,KAAc,MAA1C,EAAkD;AAChD,eAAOT,eAAe,CAACsE,KAAvB;AACD;;AAED,aAAOtE,eAAe,CAACuE,MAAvB;AACD;;;WAhcD,2BAAyBC,aAAzB,EAAyD;AAAA;;AACvD,aAAO,wCAAC,MAAD,EAAS,MAAT,EAAiB,UAAjB,EAA6B,WAA7B,oBACLA,aAAa,CAAC/D,IADT,CAAP;AAGD;;;;EAfkCf,oB;;AA8crC,eAAeW,sBAAf","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport { IGNORE_FORMAT_SETTING } from \"../../constants/LayoutHints\";\n\nimport type { FormErrorAnchor, IConstraintModel } from \"../types\";\n\n// date format of default\nconst PRODUCT_DEFAULT_DATE_FORMAT = \"dd-MM-yyyy\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n // setting for date input\n const ignoreFormatSetting = this.layouthint.has(IGNORE_FORMAT_SETTING);\n if (!ignoreFormatSetting) {\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n if (dateInputFormatSetting) {\n return dateInputFormatSetting;\n }\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n return dateFormat;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n const readonlyFormatSetting = getSetting(\"DATE_READONLY_FORMAT\", \"\");\n\n if (dateFormat === PRODUCT_DEFAULT_DATE_FORMAT && readonlyFormatSetting) {\n dateFormat = readonlyFormatSetting;\n }\n\n return dateFormat;\n }\n\n /**\n * return attribute placeholder or, if DATE_INPUT_FORMAT setting is used, lowercased setting, otherwise return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n\n if (dateInputFormatSetting) {\n return dateInputFormatSetting.toLowerCase();\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat\n )\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"file":"DatetimeAttributeModel.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["clone","cloneDeep","BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":";;;;;;;;;;AACA,OAAOA,MAAP,MAAkB,cAAlB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AAEA;AACA;AACA;;IACMC,c;AAGJ;AACF;AACA;AACE,4BAA2C;AAAA,QAA/BC,cAA+B,uEAAJ,EAAI;;AAAA;;AAAA;;AACzC,SAAKC,UAAL,GAAkBD,cAAlB;AACD;AAED;AACF;AACA;;;;;SACE,eAA2B;AACzB,aAAO,KAAKE,WAAZ;AACD;AAED;AACF;AACA;;SACE,aAAeD,UAAf,EAAqC;AACnC,WAAKC,WAAL,GAAmBD,UAAnB;AACD;AAED;AACF;AACA;;;;WACE,aAAIE,KAAJ,EAAgE;AAC9D,UAAIA,KAAK,YAAYJ,cAArB,EAAqC;AAAA;;AACnC,aAAKE,UAAL,4EAAsB,KAAKA,UAA3B,sBAA0CE,KAAK,CAACC,GAAhD;AACD,OAFD,MAEO,IAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AAAA;;AAC/B;AACA,aAAKF,UAAL,8EAAsB,KAAKA,UAA3B,sBAA0CE,KAA1C;AACD,OAHM,MAGA;AAAA;;AACL,aAAKF,UAAL,8EAAsB,KAAKA,UAA3B,IAAuCE,KAAvC;AACD;;AAED,aAAO,IAAP;AACD;AAED;AACF;AACA;;;;WACE,uBAAcI,SAAd,EAAiC;AAC/B,UAAIA,SAAS,GAAG,CAAC,CAAjB,EAAoB;AAAA;;AAClB,aAAKN,UAAL,8EACK,wCAAKA,UAAL,kBAAsB,CAAtB,EAAyBM,SAAzB,CADL,sBAEK,wCAAKN,UAAL,kBAAsBM,SAAS,GAAG,CAAlC,CAFL;AAID;AACF;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKC,MAAL,GAAc,CAArB;AACD;AAED;AACF;AACA;;;;SACE,eAAuB;AACrB,aAAO,CAAC,KAAKC,QAAb;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKR,UAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKO,MAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,aAAO,KAAKP,UAAL,CAAgBO,MAAvB;AACD;AAED;AACF;AACA;;;;SACE,eAAsB;AAAA;;AACpB,kCAAO,KAAKP,UAAL,CAAgB,CAAhB,CAAP,iEAA6B,IAA7B;AACD;AAED;AACF;;;;SACE,eAAqB;AAAA;;AACnB,iCAAO,KAAKA,UAAL,CAAgB,KAAKA,UAAL,CAAgBO,MAAhB,GAAyB,CAAzC,CAAP,+DAAsD,IAAtD;AACD;AAED;AACF;;;;WACE,aAAIE,KAAJ,EAA6B;AAAA;;AAC3B,sCAAO,KAAKT,UAAL,CAAgBS,KAAhB,CAAP,yEAAiC,IAAjC;AACD;AAED;AACF;AACA;;;;WACE,cACEC,UADF,EAEEC,OAFF,EAGY;AAAA;;AACV,sCAAO,uCAAKX,UAAL,kBAAqBU,UAArB,EAAiCC,OAAjC,CAAP,yEAAoD,IAApD;AACD;AAED;AACF;AACA;;;;WACE,gBACED,UADF,EAEEC,OAFF,EAGY;AAAA;;AACV,aAAO,yCAAKX,UAAL,kBAAuBU,UAAvB,EAAmCC,OAAnC,CAAP;AACD;AAED;AACF;AACA;;;;WACE,cACED,UADF,EAEEC,OAFF,EAGW;AACT,aAAO,KAAKX,UAAL,CAAgBY,IAAhB,CAAqBF,UAArB,EAAiCC,OAAjC,CAAP;AACD;AAED;AACF;;;;WACE,eACED,UADF,EAEEC,OAFF,EAGW;AACT,aAAO,KAAKX,UAAL,CAAgBa,KAAhB,CAAsBH,UAAtB,EAAkCC,OAAlC,CAAP;AACD;AAED;AACF;;;;WACE,aACED,UADF,EAEEC,OAFF,EAGY;AAAA;;AACV,aAAO,sCAAKX,UAAL,kBAAuBU,UAAvB,EAAmCC,OAAnC,CAAP;AACD;AAED;AACF;;;;WACE,iBACED,UADF,EAEEC,OAFF,EAGE;AACA,WAAKX,UAAL,CAAgBc,OAAhB,CAAwBJ,UAAxB,EAAoCC,OAApC;AACD;AAED;AACF;;;;WACE,cAAKI,SAAL,EAAmD;AAAA;;AACjD,aAAO,wCAAKf,UAAL,mBAAqBe,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAuB;AAAA;;AACrB,aAAO,wCAAKf,UAAL,kBAAP;AACD;AAED;AACF;AACA;;;;WACE,iBAAuC;AAAA,UAAjCgB,QAAiC,uEAAb,KAAa;;AACrC;AACA,UAAIA,QAAJ,EAAc;AACZ,eAAOnB,SAAS,CAAC,IAAD,CAAhB;AACD;;AAED,aAAOD,MAAK,CAAC,IAAD,CAAZ;AACD;;;;;;AAGH,eAAeE,cAAf","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":["clone","cloneDeep","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"}
@@ -36,7 +36,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
36
36
  function getInitialChildModelLinks() {
37
37
  var initialChildModelLinks = [];
38
38
  this.collection.forEach(function (item) {
39
- if (item && item.getInitialChildModelLinks && typeof item.getInitialChildModelLinks === "function") {
39
+ // $FlowFixMe[method-unbinding]
40
+ if (typeof (item === null || item === void 0 ? void 0 : item.getInitialChildModelLinks) === "function") {
40
41
  initialChildModelLinks.push.apply(initialChildModelLinks, _toConsumableArray(item.getInitialChildModelLinks()));
41
42
  }
42
43
  });
@@ -50,7 +51,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
50
51
  key: "setChildModels",
51
52
  value: function setChildModels(models) {
52
53
  this.collection.forEach(function (item) {
53
- if (typeof item.setChildModels === "function") {
54
+ // $FlowFixMe[prop-missing]
55
+ if (typeof item["setChildModels"] === "function") {
54
56
  item.setChildModels(models);
55
57
  }
56
58
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["BaseCollection","ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels"],"mappings":";;;;;;;;;;;;AACA,OAAOA,cAAP,MAA2B,kBAA3B;;AAKA;AACA;AACA;AACA;IACMC,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,qBAASG,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;;;;EA7BwDR,c;;AAgC3D,eAAeC,kBAAf","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":["BaseCollection","ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels"],"mappings":";;;;;;;;;;;;AACA,OAAOA,cAAP,MAA2B,kBAA3B;;AAKA;AACA;AACA;AACA;IACMC,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,qBAASG,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;;;;EA3BwDR,c;;AA8B3D,eAAeC,kBAAf","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"}
@@ -239,6 +239,7 @@ var ResourceModel = /*#__PURE__*/function (_BaseModel) {
239
239
  return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(ResourceModel.prototype), "dehydrate", this).call(this)), {}, {
240
240
  key: this._key,
241
241
  locale: this._locale,
242
+ // $FlowFixMe[missing-type-arg]
242
243
  childModels: _mapInstanceProperty(_context = this._childModels).call(_context, function (childModel) {
243
244
  return childModel.dehydrate();
244
245
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","modularuiResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","getContribution","_links","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","childModels","childModel","dehydrate","Error"],"mappings":"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","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":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","modularuiResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","getContribution","_links","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","childModels","childModel","dehydrate","Error"],"mappings":"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","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"}
@@ -17,6 +17,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
17
17
  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; } }
18
18
 
19
19
  import ConceptDetailModel from "./ConceptDetailModel";
20
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
20
21
 
21
22
  /**
22
23
  */
@@ -91,7 +92,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
91
92
  value: function setChildModels(models) {
92
93
  // $FlowExpectedError[incompatible-type]
93
94
  this.conceptType = _findInstanceProperty(models).call(models, function (model) {
94
- return model.type === "ConceptTypeDetail";
95
+ return model instanceof ConceptTypeDetailModel;
95
96
  });
96
97
  var scenarioSteps = [];
97
98
  var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["ConceptDetailModel","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","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\";\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":["ConceptDetailModel","ConceptTypeDetailModel","BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","scenarioSteps","SCENARIO_STEP_HREF","i","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"}