@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/DatetimeAttributeModel.js"],"names":["PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","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","ISO_DATE_FORMAT","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","constraints","ConstraintCollection","add","getFormatConstraint","mindate","maxdate","DateBoundaryConstraint","ATTRIBUTE_WIDTH","SMALL","MEDIUM","contributions","StringAttributeModel"],"mappings":"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","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":["PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","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","has","IGNORE_FORMAT_SETTING","dateInputFormatSetting","dateFormat","replace","readonlyFormatSetting","_placeholder","formatLabel","placeholder","timeFormatParts","push","timeFormat","join","hasFormat","ISO_DATE_FORMAT","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","constraints","ConstraintCollection","add","getFormatConstraint","mindate","maxdate","DateBoundaryConstraint","ATTRIBUTE_WIDTH","SMALL","MEDIUM","contributions","StringAttributeModel"],"mappings":"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","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"}
@@ -154,9 +154,9 @@ class BaseCollection<T> {
154
154
  */
155
155
  map<U>(
156
156
  callbackfn: (value: T, index: number, array: Array<T>) => U,
157
- thisArg?: any
157
+ thisArg?: T
158
158
  ): Array<U> {
159
- return this.collection.map<U>(callbackfn, thisArg);
159
+ return this.collection.map<U, ?T>(callbackfn, thisArg);
160
160
  }
161
161
 
162
162
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;AACA;AACA;IACMA,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,uFAAsB,KAAKA,UAA3B,oCAA0CE,KAAK,CAACC,GAAhD;AACD,OAFD,MAEO,IAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AAAA;;AAC/B;AACA,aAAKF,UAAL,yFAAsB,KAAKA,UAA3B,oCAA0CE,KAA1C;AACD,OAHM,MAGA;AAAA;;AACL,aAAKF,UAAL,yFAAsB,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,yFACK,qCAAKA,UAAL,kBAAsB,CAAtB,EAAyBM,SAAzB,CADL,oCAEK,qCAAKN,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,oCAAKX,UAAL,kBAAqBU,UAArB,EAAiCC,OAAjC,CAAP,yEAAoD,IAApD;AACD;AAED;AACF;AACA;;;;WACE,gBACED,UADF,EAEEC,OAFF,EAGY;AAAA;;AACV,aAAO,sCAAKX,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,mCAAKX,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,qCAAKf,UAAL,mBAAqBe,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAuB;AAAA;;AACrB,aAAO,qCAAKf,UAAL,kBAAP;AACD;AAED;AACF;AACA;;;;WACE,iBAAuC;AAAA,UAAjCgB,QAAiC,uEAAb,KAAa;;AACrC;AACA,UAAIA,QAAJ,EAAc;AACZ,eAAO,wBAAU,IAAV,CAAP;AACD;;AAED,aAAO,qBAAM,IAAN,CAAP;AACD;;;;;eAGYlB,c","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: any\n ): Array<U> {\n return this.collection.map<U>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/BaseCollection.js"],"names":["BaseCollection","initCollection","collection","_collection","items","all","Array","isArray","itemIndex","length","hasItems","index","callbackfn","thisArg","some","every","forEach","compareFn","deepcopy"],"mappings":"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","sourcesContent":["// @flow\nimport clone from \"lodash/clone\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model (this is not a deep copy)\n */\n clone(deepcopy: boolean = false): this {\n // deepcopy can be expensive, use with care!\n if (deepcopy) {\n return cloneDeep(this);\n }\n\n return clone(this);\n }\n}\n\nexport default BaseCollection;\n"],"file":"BaseCollection.js"}
@@ -50,7 +50,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
50
50
  function getInitialChildModelLinks() {
51
51
  var initialChildModelLinks = [];
52
52
  this.collection.forEach(function (item) {
53
- if (item && item.getInitialChildModelLinks && typeof item.getInitialChildModelLinks === "function") {
53
+ // $FlowFixMe[method-unbinding]
54
+ if (typeof (item === null || item === void 0 ? void 0 : item.getInitialChildModelLinks) === "function") {
54
55
  initialChildModelLinks.push.apply(initialChildModelLinks, (0, _toConsumableArray2.default)(item.getInitialChildModelLinks()));
55
56
  }
56
57
  });
@@ -64,7 +65,8 @@ var ResourceCollection = /*#__PURE__*/function (_BaseCollection) {
64
65
  key: "setChildModels",
65
66
  value: function setChildModels(models) {
66
67
  this.collection.forEach(function (item) {
67
- if (typeof item.setChildModels === "function") {
68
+ // $FlowFixMe[prop-missing]
69
+ if (typeof item["setChildModels"] === "function") {
68
70
  item.setChildModels(models);
69
71
  }
70
72
  });
@@ -16,11 +16,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
16
16
  const initialChildModelLinks = [];
17
17
 
18
18
  this.collection.forEach((item: T) => {
19
- if (
20
- item &&
21
- item.getInitialChildModelLinks &&
22
- typeof item.getInitialChildModelLinks === "function"
23
- ) {
19
+ // $FlowFixMe[method-unbinding]
20
+ if (typeof item?.getInitialChildModelLinks === "function") {
24
21
  initialChildModelLinks.push(...item.getInitialChildModelLinks());
25
22
  }
26
23
  });
@@ -33,7 +30,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
33
30
  */
34
31
  setChildModels(models: Array<ModularUIModel>) {
35
32
  this.collection.forEach((item) => {
36
- if (typeof item.setChildModels === "function") {
33
+ // $FlowFixMe[prop-missing]
34
+ if (typeof item["setChildModels"] === "function") {
37
35
  item.setChildModels(models);
38
36
  }
39
37
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC,YACEA,IAAI,IACJA,IAAI,CAACC,yBADL,IAEA,OAAOD,IAAI,CAACC,yBAAZ,KAA0C,UAH5C,EAIE;AACAJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OARD;AAUA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC,YAAI,OAAOA,IAAI,CAACI,cAAZ,KAA+B,UAAnC,EAA+C;AAC7CJ,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OAJD;AAKD;;;EA7BwDE,wB;;eAgC5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n if (\n item &&\n item.getInitialChildModelLinks &&\n typeof item.getInitialChildModelLinks === \"function\"\n ) {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n if (typeof item.setChildModels === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
1
+ {"version":3,"sources":["../../../src/models/base/ResourceCollection.js"],"names":["ResourceCollection","initialChildModelLinks","collection","forEach","item","getInitialChildModelLinks","push","models","setChildModels","BaseCollection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA;AACA;AACA;IACMA,kB;;;;;;;;;;;;;AACJ;AACF;AACA;AACE,yCAA8C;AAC5C,UAAMC,sBAAsB,GAAG,EAA/B;AAEA,WAAKC,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAa;AACnC;AACA,YAAI,QAAOA,IAAP,aAAOA,IAAP,uBAAOA,IAAI,CAAEC,yBAAb,MAA2C,UAA/C,EAA2D;AACzDJ,UAAAA,sBAAsB,CAACK,IAAvB,OAAAL,sBAAsB,mCAASG,IAAI,CAACC,yBAAL,EAAT,EAAtB;AACD;AACF,OALD;AAOA,aAAOJ,sBAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAeM,MAAf,EAA8C;AAC5C,WAAKL,UAAL,CAAgBC,OAAhB,CAAwB,UAACC,IAAD,EAAU;AAChC;AACA,YAAI,OAAOA,IAAI,CAAC,gBAAD,CAAX,KAAkC,UAAtC,EAAkD;AAChDA,UAAAA,IAAI,CAACI,cAAL,CAAoBD,MAApB;AACD;AACF,OALD;AAMD;;;EA3BwDE,wB;;eA8B5CT,kB","sourcesContent":["// @flow\nimport BaseCollection from \"./BaseCollection\";\n\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * The ResourceCollection makes it possible to add child models to a collection of models\n * These child models are fetched using the ModularUI util\n */\nclass ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {\n /**\n * Retrieve all child model links and flatten it into an array with single entries, removing all undefined items\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialChildModelLinks = [];\n\n this.collection.forEach((item: T) => {\n // $FlowFixMe[method-unbinding]\n if (typeof item?.getInitialChildModelLinks === \"function\") {\n initialChildModelLinks.push(...item.getInitialChildModelLinks());\n }\n });\n\n return initialChildModelLinks;\n }\n\n /**\n * Pass through models for setchildmodels to items of this collection\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.collection.forEach((item) => {\n // $FlowFixMe[prop-missing]\n if (typeof item[\"setChildModels\"] === \"function\") {\n item.setChildModels(models);\n }\n });\n }\n}\n\nexport default ResourceCollection;\n"],"file":"ResourceCollection.js"}
@@ -258,6 +258,7 @@ var ResourceModel = /*#__PURE__*/function (_BaseModel) {
258
258
  return _objectSpread(_objectSpread({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ResourceModel.prototype), "dehydrate", this).call(this)), {}, {
259
259
  key: this._key,
260
260
  locale: this._locale,
261
+ // $FlowFixMe[missing-type-arg]
261
262
  childModels: (0, _map.default)(_context = this._childModels).call(_context, function (childModel) {
262
263
  return childModel.dehydrate();
263
264
  })
@@ -200,8 +200,9 @@ class ResourceModel extends BaseModel implements IModelWithChildModels {
200
200
  ...super.dehydrate(),
201
201
  key: this._key,
202
202
  locale: this._locale,
203
- childModels: this._childModels.map<ModularUIModel>((childModel) =>
204
- childModel.dehydrate()
203
+ // $FlowFixMe[missing-type-arg]
204
+ childModels: this._childModels.map<ModularUIModel>(
205
+ (childModel: ModularUIModel) => childModel.dehydrate()
205
206
  ),
206
207
  };
207
208
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/base/ResourceModel.js"],"names":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":"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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":["ResourceModel","modularuiResponse","ModularUIResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","lastServerUpdate","IllegalStateException","getContribution","_links","LinkCollection","Array","isArray","self","resourcetype","links","selflink","getLinkByKey","href","models","flattenModels","setChildModels","IllegalArgumentException","childModels","childModel","dehydrate","Error","BaseModel"],"mappings":"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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"}
@@ -35,6 +35,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
35
35
 
36
36
  var _ConceptDetailModel2 = _interopRequireDefault(require("./ConceptDetailModel"));
37
37
 
38
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
39
+
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
41
 
40
42
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -110,7 +112,7 @@ var BusinessScenarioModel = /*#__PURE__*/function (_ConceptDetailModel) {
110
112
  value: function setChildModels(models) {
111
113
  // $FlowExpectedError[incompatible-type]
112
114
  this.conceptType = (0, _find.default)(models).call(models, function (model) {
113
- return model.type === "ConceptTypeDetail";
115
+ return model instanceof _ConceptTypeDetailModel.default;
114
116
  });
115
117
  var scenarioSteps = [];
116
118
  var SCENARIO_STEP_HREF = "/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep";
@@ -1,5 +1,6 @@
1
1
  // @flow
2
2
  import ConceptDetailModel from "./ConceptDetailModel";
3
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
3
4
 
4
5
  import type { ModularUIResponse } from "../../modularui";
5
6
  import type { ModularUIModel } from "../types";
@@ -58,7 +59,7 @@ class BusinessScenarioModel extends ConceptDetailModel {
58
59
  setChildModels(models: Array<ModularUIModel>) {
59
60
  // $FlowExpectedError[incompatible-type]
60
61
  this.conceptType = models.find(
61
- (model) => model.type === "ConceptTypeDetail"
62
+ (model) => model instanceof ConceptTypeDetailModel
62
63
  );
63
64
 
64
65
  const scenarioSteps = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","type","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAOA;AACA;IACMA,qB;;;;;;;;;;;;;;;;;;;;;;;;AAGJ;AACF;AACE,mBAAmB;AACjB,aAAO,kBAAP;AACD;AAED;AACF;;;;;AASE;AACF;AACE,yCAA8C;AAAA;;AAC5C,UAAMC,eAAe,GAAG,EAAxB;AACA,UAAMC,eAAe,GAAG,KAAKC,KAAL,CAAWC,YAAX,CAAwB,aAAxB,CAAxB;;AAEA,UAAIF,eAAJ,EAAqB;AACnBD,QAAAA,eAAe,CAACI,IAAhB,CAAqBH,eAArB;AACD;;AAED,UAAMI,iBAAiB,GAAG,oEAAKC,mBAAL,CAAyBC,GAAzB,kBAEtB,UAACC,QAAD;AAAA;;AAAA,eACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACA,0BAAAD,QAAQ,CAACE,OAAT,CAAiBC,eAAjB,gFAAkCC,IAAlC,MACE,kEAHJ;AAAA,OAFsB,mBAOnB,UAACJ,QAAD;AAAA,eAAcA,QAAQ,CAACE,OAAT,CAAiBG,WAAjB,EAAd;AAAA,OAPmB,CAA1B;;AASA,UAAIR,iBAAiB,CAACS,MAAlB,GAA2B,CAA/B,EAAkC;AAChCd,QAAAA,eAAe,CAACI,IAAhB,OAAAJ,eAAe,mCAASK,iBAAT,EAAf;AACD;;AAED,aAAOL,eAAP;AACD;AAED;AACF;;;;WACE,wBAAee,MAAf,EAA8C;AAC5C;AACA,WAAKC,WAAL,GAAmB,mBAAAD,MAAM,MAAN,CAAAA,MAAM,EACvB,UAACE,KAAD;AAAA,eAAWA,KAAK,CAACC,IAAN,KAAe,mBAA1B;AAAA,OADuB,CAAzB;AAIA,UAAMC,aAAa,GAAG,EAAtB;AACA,UAAMC,kBAAkB,GACtB,kEADF;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,MAAM,CAACD,MAA3B,EAAmCO,CAAC,EAApC,EAAwC;AAAA;;AACtC,YAAMJ,KAAK,GAAGF,MAAM,CAACM,CAAD,CAApB;;AAEA,YACEJ,KAAK,YAAYK,4BAAjB,IACA,uBAAAL,KAAK,CAACD,WAAN,0EAAmBO,QAAnB,CAA4BX,IAA5B,MAAqCQ,kBAFvC,EAGE;AACAD,UAAAA,aAAa,CAACf,IAAd,CAAmBa,KAAnB;AACD;AACF;;AAED,WAAKE,aAAL,GAAqBA,aAArB;AACD;AAED;AACF;;;;;AAKE;AACF;AACE,mBAA+C;AAC7C,aAAO,KAAKK,cAAZ;AACD;AAED;AACF;;SAXE,aAAkBT,MAAlB,EAAqD;AACnD,WAAKS,cAAL,GAAsBT,MAAtB;AACD;;;SAUD,eAAsC;AACpC,UAAMU,MAAM,GAAG,EAAf;AAEA,WAAKN,aAAL,CAAmBO,OAAnB,CAA2B,UAACC,YAAD,EAAkB;AAAA;;AAC3C,YAAMC,gBAAgB,GAAG,+BAAAD,YAAY,CAACrB,mBAAb,kBACvB,UAACE,QAAD;AAAA;;AAAA,iBACEA,QAAQ,CAACC,SAAT,KAAuB,UAAvB,IACA,2BAAAD,QAAQ,CAACE,OAAT,CAAiBC,eAAjB,kFAAkCC,IAAlC,MACE,6DAHJ;AAAA,SADuB,CAAzB;AAOA,YAAMiB,kBAAkB,GACtBD,gBAAgB,IAChB,CAACH,MAAM,CAACK,IAAP,CAAY,UAACC,KAAD;AAAA,iBAAWA,KAAK,CAACC,GAAN,KAAcJ,gBAAgB,CAAClB,OAAjB,CAAyBsB,GAAlD;AAAA,SAAZ,CAFH;;AAIA,YAAIJ,gBAAgB,IAAIC,kBAAxB,EAA4C;AAC1CJ,UAAAA,MAAM,CAACrB,IAAP,CAAYwB,gBAAgB,CAAClB,OAA7B;AACD;AACF,OAfD;AAiBA,aAAOe,MAAP;AACD;;;WA9FD,2BAAyBQ,IAAzB,EAA2D;AAAA;;AACzD,UAAMC,eAAe,GAAGD,IAAH,aAAGA,IAAH,qCAAGA,IAAI,CAAEA,IAAT,oEAAG,WAAYE,MAAf,+EAAG,kBAAoBC,WAAvB,0DAAG,sBAAiCC,IAAzD;AACA,aACEH,eAAe,KACf,sEAFF;AAID;;;EAjBiCZ,4B;;eA4GrBvB,qB","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model.type === \"ConceptTypeDetail\"\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"names":["BusinessScenarioModel","childModelLinks","conceptTypeLink","links","getLinkByKey","push","scenarioStepLinks","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","models","conceptType","model","ConceptTypeDetailModel","scenarioSteps","SCENARIO_STEP_HREF","i","ConceptDetailModel","selfhref","_scenarioSteps","actors","forEach","scenarioStep","relationsToActor","newRelationToActor","some","actor","key","data","conceptTypeHref","_links","concepttype","href"],"mappings":"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","sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const conceptTypeHref = data?.data?._links?.concepttype?.href;\n return (\n conceptTypeHref ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/BusinessScenario\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = [];\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n\n if (conceptTypeLink) {\n childModelLinks.push(conceptTypeLink);\n }\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\"\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n this.conceptType = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n const scenarioSteps = [];\n const SCENARIO_STEP_HREF =\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/ScenarioStep\";\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n model.conceptType?.selfhref.path === SCENARIO_STEP_HREF\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n relation.concept.concepttypeHref?.path ===\n \"/concepttypes/Library/KMTs/Business scenarios.bixml/Persona\"\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"file":"BusinessScenarioModel.js"}
@@ -53,6 +53,8 @@ var _ConceptRelationCollection = _interopRequireDefault(require("./ConceptRelati
53
53
 
54
54
  var _SourceReferenceCollection = _interopRequireDefault(require("./SourceReferenceCollection"));
55
55
 
56
+ var _ConceptTypeDetailModel = _interopRequireDefault(require("./ConceptTypeDetailModel"));
57
+
56
58
  var _Constants = require("../../constants/Constants");
57
59
 
58
60
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -122,7 +124,7 @@ var ConceptDetailModel = /*#__PURE__*/function (_ResourceModel) {
122
124
  value: function setChildModels(models) {
123
125
  // $FlowExpectedError[incompatible-type]
124
126
  var conceptTypeModel = (0, _find.default)(models).call(models, function (model) {
125
- return model.type === "ConceptTypeDetail";
127
+ return model instanceof _ConceptTypeDetailModel.default;
126
128
  });
127
129
 
128
130
  if (conceptTypeModel) {
@@ -2,6 +2,7 @@
2
2
  import ResourceModel from "../base/ResourceModel";
3
3
  import ConceptRelationCollection from "./ConceptRelationCollection";
4
4
  import SourceReferenceCollection from "./SourceReferenceCollection";
5
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
5
6
 
6
7
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
7
8
 
@@ -14,7 +15,6 @@ import type {
14
15
  import type { ModularUIResponse } from "../../modularui";
15
16
  import type Href from "../href/Href";
16
17
  import type LinkModel from "../links/LinkModel";
17
- import type ConceptTypeDetailModel from "./ConceptTypeDetailModel";
18
18
 
19
19
  /**
20
20
  * Model for concept details, available through modelcatalog
@@ -70,7 +70,7 @@ export default class ConceptDetailModel extends ResourceModel {
70
70
  setChildModels(models: Array<ModularUIModel>) {
71
71
  // $FlowExpectedError[incompatible-type]
72
72
  const conceptTypeModel: ?ConceptTypeDetailModel = models.find(
73
- (model) => model.type === "ConceptTypeDetail"
73
+ (model) => model instanceof ConceptTypeDetailModel
74
74
  );
75
75
 
76
76
  if (conceptTypeModel) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"names":["ConceptDetailModel","modularuiResponse","_relations","ConceptRelationCollection","data","relations","entryDate","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","getInitialChildModelLinks","isCacheable","models","conceptTypeModel","model","type","conceptType","setChildModels","getData","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","_conceptType","conceptLabel","formula","labelTypes","labelType","setting","labels","label","_id","ids","propertyTypes","propertyType","properties","property","conceptProperties","textFragments","textFragment","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","keys","textfragments","availableLocales","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","availableLanguages","split","value","contributions","resourcetype","ResourceModel"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model.type === \"ConceptTypeDetail\"\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id)\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = []\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH\n )\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix)\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH\n )\n )\n );\n }\n return [];\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"file":"ConceptDetailModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"names":["ConceptDetailModel","modularuiResponse","_relations","ConceptRelationCollection","data","relations","entryDate","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","getInitialChildModelLinks","isCacheable","models","conceptTypeModel","model","ConceptTypeDetailModel","conceptType","setChildModels","getData","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","_conceptType","conceptLabel","formula","labelTypes","labelType","setting","labels","label","type","_id","ids","propertyTypes","propertyType","properties","property","conceptProperties","textFragments","textFragment","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","keys","textfragments","availableLocales","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","availableLanguages","split","value","contributions","resourcetype","ResourceModel"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id)\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = []\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH\n )\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix)\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH\n )\n )\n );\n }\n return [];\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n}\n"],"file":"ConceptDetailModel.js"}
@@ -5,12 +5,15 @@ import LinkCollection from "../links/LinkCollection";
5
5
  import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
6
6
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
7
7
 
8
- import type { ModularUIModel } from "../types";
8
+ import type { IModelWithChildModels, ModularUIModel } from "../types";
9
9
  import type Href from "../href/Href";
10
10
  /**
11
11
  * Link to a concept
12
12
  */
13
- export default class ConceptLinkModel extends BaseModel {
13
+ export default class ConceptLinkModel
14
+ extends BaseModel
15
+ implements IModelWithChildModels
16
+ {
14
17
  _links: ?LinkCollection;
15
18
  _entryDate: ?ISO_DATE;
16
19
  _conceptType: ?ConceptTypeDetailModel;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"names":["ConceptLinkModel","data","entryDate","_entryDate","conceptTypeLink","isCacheable","models","href","conceptTypeModel","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","ConceptTypeDetailModel","_id","label","getData","_links","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","addParameter","TIMEVERSION_FILTER_NAME","link","LinkModel","create","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel extends BaseModel {\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\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) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"file":"ConceptLinkModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptLinkModel.js"],"names":["ConceptLinkModel","data","entryDate","_entryDate","conceptTypeLink","isCacheable","models","href","conceptTypeModel","model","selfhref","equalsWithParameters","type","conceptType","_conceptType","ConceptTypeDetailModel","_id","label","getData","_links","LinkCollection","Array","isArray","selflink","links","getLinkByKey","Error","key","addParameter","TIMEVERSION_FILTER_NAME","link","LinkModel","create","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type Href from \"../href/Href\";\n/**\n * Link to a concept\n */\nexport default class ConceptLinkModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _links: ?LinkCollection;\n _entryDate: ?ISO_DATE;\n _conceptType: ?ConceptTypeDetailModel;\n\n /**\n * Construct ConceptLinkModel\n */\n constructor(data: Object, entryDate: ?ISO_DATE = null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (this.conceptTypeLink) {\n this.conceptTypeLink.isCacheable = true;\n return [this.conceptTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptTypeLink) {\n const href = this.conceptTypeLink.href;\n const conceptTypeModel = models.find((model) =>\n model.selfhref.equalsWithParameters(href)\n );\n\n if (conceptTypeModel?.type === \"ConceptTypeDetail\") {\n this.conceptType = conceptTypeModel;\n }\n }\n }\n\n /**\n * Retrieve concept type\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n * Set concept type\n */\n set conceptType(conceptType: ?ModularUIModel) {\n this._conceptType =\n conceptType instanceof ConceptTypeDetailModel ? conceptType : null;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this.data._id;\n }\n\n /**\n * Retrieve label\n */\n get label(): string {\n const label = this.getData(\"label\");\n\n if (label) {\n return label;\n }\n\n return this.getData(\"conceptLabel\", \"\");\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) ? this.data._links[0] : this.data._links\n );\n }\n\n return this._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 Error(\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 * Self href of concept\n */\n get selfhref(): Href {\n if (this._entryDate !== null) {\n return this.selflink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this._entryDate\n );\n }\n\n return this.selflink.href;\n }\n\n /**\n */\n get conceptTypeLink(): LinkModel | null {\n return this.links.getLinkByKey(\"concepttype\");\n }\n\n /**\n * Concept type href of concept\n */\n get concepttypeHref(): Href | null {\n return this.conceptTypeLink?.href ?? null;\n }\n\n /**\n */\n get taxonomyType(): string {\n return \"default\";\n }\n\n /**\n */\n asLinkModel(): LinkModel {\n const link = LinkModel.create(this.key, this.selfhref.href, this.label);\n link.href = this.selfhref;\n\n return link;\n }\n}\n"],"file":"ConceptLinkModel.js"}
@@ -2,12 +2,16 @@
2
2
  import ConceptLinkModel from "./ConceptLinkModel";
3
3
  import LinkModel from "../links/LinkModel";
4
4
 
5
- import type { ModularUIModel, textfragmentJSON } from "../types";
5
+ import type {
6
+ IModelWithChildModels,
7
+ ModularUIModel,
8
+ textfragmentJSON,
9
+ } from "../types";
6
10
 
7
11
  /**
8
12
  * Concept relation model
9
13
  */
10
- export default class ConceptRelationModel {
14
+ export default class ConceptRelationModel implements IModelWithChildModels {
11
15
  _relation: Object;
12
16
  _concept: ConceptLinkModel;
13
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/concepts/ConceptRelationModel.js"],"names":["ConceptRelationModel","relation","entryDate","_relation","concept","_concept","ConceptLinkModel","getInitialChildModelLinks","models","setChildModels","relationType","textFragments","relationLabel","relationDirection"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AAIA;AACA;AACA;IACqBA,oB;AAInB;AACF;AACE,gCAAYC,QAAZ,EAA2D;AAAA,QAA7BC,SAA6B,uEAAN,IAAM;AAAA;AAAA;AAAA;AACzD,SAAKC,SAAL,GAAiBF,QAAjB;;AAEA,QAAIA,QAAQ,IAAIA,QAAQ,CAACG,OAAzB,EAAkC;AAChC,WAAKC,QAAL,GAAgB,IAAIC,yBAAJ,CAAqBL,QAAQ,CAACG,OAA9B,EAAuCF,SAAvC,CAAhB;AACD;AACF;AAED;AACF;;;;;WACE,qCAA8C;AAC5C,aAAO,KAAKE,OAAL,CAAaG,yBAAb,EAAP;AACD;AAED;AACF;;;;WACE,wBAAeC,MAAf,EAA8C;AAC5C,WAAKJ,OAAL,CAAaK,cAAb,CAA4BD,MAA5B;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKL,SAAL,CAAeO,YAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAA6C;AAC3C,aAAO,KAAKP,SAAL,CAAeQ,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKR,SAAL,CAAeS,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKT,SAAL,CAAeU,iBAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAgC;AAC9B,aAAO,KAAKR,QAAZ;AACD;AAED;AACF;AACA;;SACE,aAAYD,OAAZ,EAAuC;AACrC,WAAKC,QAAL,GAAgBD,OAAhB;AACD","sourcesContent":["// @flow\nimport ConceptLinkModel from \"./ConceptLinkModel\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type { ModularUIModel, textfragmentJSON } from \"../types\";\n\n/**\n * Concept relation model\n */\nexport default class ConceptRelationModel {\n _relation: Object;\n _concept: ConceptLinkModel;\n\n /**\n */\n constructor(relation: Object, entryDate: ?ISO_DATE = null) {\n this._relation = relation;\n\n if (relation && relation.concept) {\n this._concept = new ConceptLinkModel(relation.concept, entryDate);\n }\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.concept.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.concept.setChildModels(models);\n }\n\n /**\n * Get key of relation\n */\n get key(): string {\n return this._relation.relationType;\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n return this._relation.textFragments;\n }\n\n /**\n * Get Label of relation\n */\n get label(): string {\n return this._relation.relationLabel;\n }\n\n /**\n * Get direction of relation\n */\n get direction(): string {\n return this._relation.relationDirection;\n }\n\n /**\n * Get other concept\n */\n get concept(): ConceptLinkModel {\n return this._concept;\n }\n\n /**\n * Set concept information\n */\n set concept(concept: ConceptLinkModel) {\n this._concept = concept;\n }\n}\n"],"file":"ConceptRelationModel.js"}
1
+ {"version":3,"sources":["../../../src/models/concepts/ConceptRelationModel.js"],"names":["ConceptRelationModel","relation","entryDate","_relation","concept","_concept","ConceptLinkModel","getInitialChildModelLinks","models","setChildModels","relationType","textFragments","relationLabel","relationDirection"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AAQA;AACA;AACA;IACqBA,oB;AAInB;AACF;AACE,gCAAYC,QAAZ,EAA2D;AAAA,QAA7BC,SAA6B,uEAAN,IAAM;AAAA;AAAA;AAAA;AACzD,SAAKC,SAAL,GAAiBF,QAAjB;;AAEA,QAAIA,QAAQ,IAAIA,QAAQ,CAACG,OAAzB,EAAkC;AAChC,WAAKC,QAAL,GAAgB,IAAIC,yBAAJ,CAAqBL,QAAQ,CAACG,OAA9B,EAAuCF,SAAvC,CAAhB;AACD;AACF;AAED;AACF;;;;;WACE,qCAA8C;AAC5C,aAAO,KAAKE,OAAL,CAAaG,yBAAb,EAAP;AACD;AAED;AACF;;;;WACE,wBAAeC,MAAf,EAA8C;AAC5C,WAAKJ,OAAL,CAAaK,cAAb,CAA4BD,MAA5B;AACD;AAED;AACF;AACA;;;;SACE,eAAkB;AAChB,aAAO,KAAKL,SAAL,CAAeO,YAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAA6C;AAC3C,aAAO,KAAKP,SAAL,CAAeQ,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKR,SAAL,CAAeS,aAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAwB;AACtB,aAAO,KAAKT,SAAL,CAAeU,iBAAtB;AACD;AAED;AACF;AACA;;;;SACE,eAAgC;AAC9B,aAAO,KAAKR,QAAZ;AACD;AAED;AACF;AACA;;SACE,aAAYD,OAAZ,EAAuC;AACrC,WAAKC,QAAL,GAAgBD,OAAhB;AACD","sourcesContent":["// @flow\nimport ConceptLinkModel from \"./ConceptLinkModel\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type {\n IModelWithChildModels,\n ModularUIModel,\n textfragmentJSON,\n} from \"../types\";\n\n/**\n * Concept relation model\n */\nexport default class ConceptRelationModel implements IModelWithChildModels {\n _relation: Object;\n _concept: ConceptLinkModel;\n\n /**\n */\n constructor(relation: Object, entryDate: ?ISO_DATE = null) {\n this._relation = relation;\n\n if (relation && relation.concept) {\n this._concept = new ConceptLinkModel(relation.concept, entryDate);\n }\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.concept.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.concept.setChildModels(models);\n }\n\n /**\n * Get key of relation\n */\n get key(): string {\n return this._relation.relationType;\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n return this._relation.textFragments;\n }\n\n /**\n * Get Label of relation\n */\n get label(): string {\n return this._relation.relationLabel;\n }\n\n /**\n * Get direction of relation\n */\n get direction(): string {\n return this._relation.relationDirection;\n }\n\n /**\n * Get other concept\n */\n get concept(): ConceptLinkModel {\n return this._concept;\n }\n\n /**\n * Set concept information\n */\n set concept(concept: ConceptLinkModel) {\n this._concept = concept;\n }\n}\n"],"file":"ConceptRelationModel.js"}
@@ -70,6 +70,7 @@ var ContentLinkModel = /*#__PURE__*/function (_BaseModel) {
70
70
  }
71
71
  /**
72
72
  */
73
+ // $FlowFixMe[method-unbinding]
73
74
 
74
75
 
75
76
  (0, _createClass2.default)(ContentLinkModel, [{
@@ -84,6 +85,7 @@ var ContentLinkModel = /*#__PURE__*/function (_BaseModel) {
84
85
  }
85
86
  /**
86
87
  */
88
+ // $FlowFixMe[method-unbinding]
87
89
 
88
90
  }, {
89
91
  key: "setChildModels",