@beinformed/ui 1.60.6 → 1.61.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 (95) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm/models/attributes/AttributeCollection.js +2 -2
  3. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  4. package/esm/models/attributes/AttributeContent.js +1 -1
  5. package/esm/models/attributes/AttributeContent.js.flow +1 -1
  6. package/esm/models/attributes/AttributeContent.js.map +1 -1
  7. package/esm/models/attributes/CompositeAttributeChildCollection.js +4 -4
  8. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  9. package/esm/models/concepts/ConceptDetailModel.js +9 -9
  10. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  11. package/esm/models/content/ContentTOCModel.d.ts +7 -0
  12. package/esm/models/content/ContentTOCModel.js +35 -8
  13. package/esm/models/content/ContentTOCModel.js.flow +36 -9
  14. package/esm/models/content/ContentTOCModel.js.map +1 -1
  15. package/esm/models/content/SectionModel.d.ts +3 -0
  16. package/esm/models/content/SectionModel.js +11 -2
  17. package/esm/models/content/SectionModel.js.flow +11 -0
  18. package/esm/models/content/SectionModel.js.map +1 -1
  19. package/esm/models/content/SubSectionModel.d.ts +1 -1
  20. package/esm/models/content/SubSectionModel.js.flow +1 -1
  21. package/esm/models/content/SubSectionModel.js.map +1 -1
  22. package/esm/models/content/__tests__/Formalsource.spec.js.flow +91 -0
  23. package/esm/models/form/FormModel.js +33 -33
  24. package/esm/models/form/FormModel.js.map +1 -1
  25. package/esm/models/form/FormObjectModel.d.ts +13 -12
  26. package/esm/models/form/FormObjectModel.js +10 -9
  27. package/esm/models/form/FormObjectModel.js.flow +41 -27
  28. package/esm/models/form/FormObjectModel.js.map +1 -1
  29. package/esm/models/form/__tests__/FormValidation.spec.js.flow +79 -0
  30. package/esm/models/href/Href.js +6 -6
  31. package/esm/models/href/Href.js.map +1 -1
  32. package/esm/models/links/LinkCollection.js +4 -4
  33. package/esm/models/links/LinkCollection.js.map +1 -1
  34. package/esm/redux/_modularui/ModularUISelectors.js +2 -2
  35. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  36. package/esm/utils/helpers/text.d.ts +1 -1
  37. package/esm/utils/helpers/text.js +1 -1
  38. package/esm/utils/helpers/text.js.flow +2 -2
  39. package/esm/utils/helpers/text.js.map +1 -1
  40. package/lib/hooks/useDeepCompareEffect.js +1 -2
  41. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  42. package/lib/i18n/index.js +1 -2
  43. package/lib/i18n/index.js.map +1 -1
  44. package/lib/models/attributes/AttributeCollection.js +2 -2
  45. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  46. package/lib/models/attributes/AttributeContent.js +1 -1
  47. package/lib/models/attributes/AttributeContent.js.map +1 -1
  48. package/lib/models/attributes/CompositeAttributeChildCollection.js +4 -4
  49. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  50. package/lib/models/concepts/ConceptDetailModel.js +9 -9
  51. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  52. package/lib/models/content/ContentTOCModel.d.ts +7 -0
  53. package/lib/models/content/ContentTOCModel.js +35 -8
  54. package/lib/models/content/ContentTOCModel.js.map +1 -1
  55. package/lib/models/content/SectionModel.d.ts +3 -0
  56. package/lib/models/content/SectionModel.js +11 -2
  57. package/lib/models/content/SectionModel.js.map +1 -1
  58. package/lib/models/content/SubSectionModel.d.ts +1 -1
  59. package/lib/models/content/SubSectionModel.js.map +1 -1
  60. package/lib/models/form/FormModel.js +33 -33
  61. package/lib/models/form/FormModel.js.map +1 -1
  62. package/lib/models/form/FormObjectModel.d.ts +13 -12
  63. package/lib/models/form/FormObjectModel.js +10 -9
  64. package/lib/models/form/FormObjectModel.js.map +1 -1
  65. package/lib/models/href/Href.js +6 -6
  66. package/lib/models/href/Href.js.map +1 -1
  67. package/lib/models/index.js +1 -2
  68. package/lib/models/index.js.map +1 -1
  69. package/lib/models/links/LinkCollection.js +4 -4
  70. package/lib/models/links/LinkCollection.js.map +1 -1
  71. package/lib/react-server/serverUtil.js +1 -2
  72. package/lib/react-server/serverUtil.js.map +1 -1
  73. package/lib/redux/_modularui/ModularUISelectors.js +2 -2
  74. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  75. package/lib/utils/helpers/text.d.ts +1 -1
  76. package/lib/utils/helpers/text.js +1 -1
  77. package/lib/utils/helpers/text.js.map +1 -1
  78. package/package.json +17 -17
  79. package/src/models/attributes/AttributeContent.js +1 -1
  80. package/src/models/content/ContentTOCModel.js +36 -9
  81. package/src/models/content/SectionModel.js +11 -0
  82. package/src/models/content/SubSectionModel.js +1 -1
  83. package/src/models/content/__tests__/Formalsource.spec.js +91 -0
  84. package/src/models/content/__tests__/formalsource-complete.json +234 -0
  85. package/src/models/content/__tests__/formalsource-contributions.json +110 -0
  86. package/src/models/content/__tests__/formalsource-section-contributions.json +84 -0
  87. package/src/models/content/__tests__/formalsource-section.json +60 -0
  88. package/src/models/content/__tests__/formalsource-toc.json +119 -0
  89. package/src/models/form/FormObjectModel.js +41 -27
  90. package/src/models/form/__tests__/FormValidation.spec.js +79 -0
  91. package/src/models/form/__tests__/FormValidationContributions.json +45 -0
  92. package/src/models/form/__tests__/FormValidationDataInitial.json +33 -0
  93. package/src/models/form/__tests__/FormValidationDataUpdate1.json +25 -0
  94. package/src/models/form/__tests__/FormValidationDataUpdate2.json +33 -0
  95. package/src/utils/helpers/text.js +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.61.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.60.6...v1.61.0) (2025-06-02)
6
+
7
+
8
+ ### Features
9
+
10
+ * **formalsource:** allow loading of complete formal source into model ([d6a287f](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/d6a287fb09f9b9245584ba586ce93eeaf2b607fd))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **form-validation:** handle combination of missing and error ([dad649a](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/dad649aba14e567ea0168a512297f45d5da0f720))
16
+
5
17
  ## [1.60.6](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.60.5...v1.60.6) (2025-04-15)
6
18
 
7
19
 
@@ -250,9 +250,9 @@ class AttributeCollection extends ResourceCollection {
250
250
  /**
251
251
  */
252
252
  getFormData() {
253
- var _context9, _context10;
253
+ var _context9, _context0;
254
254
  let validationData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
255
- const attributesFormData = _mapInstanceProperty(_context9 = _filterInstanceProperty(_context10 = this.attributes).call(_context10, attribute => attribute.formdata !== null && !attribute.readonly && (!validationData || attribute.hasDynamicValidationData))).call(_context9, attribute => {
255
+ const attributesFormData = _mapInstanceProperty(_context9 = _filterInstanceProperty(_context0 = this.attributes).call(_context0, attribute => attribute.formdata !== null && !attribute.readonly && (!validationData || attribute.hasDynamicValidationData))).call(_context9, attribute => {
256
256
  // make attribute empty when it is not (or no longer) visible
257
257
  if (attribute.isVisible) {
258
258
  return attribute.formdata;
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","modelOptions","forEach","contribution","key","_Object$keys","attribute","origin","contextPath","isReadonly","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor, ModelOptions } from \"../types\";\n\ntype AttributeCollectionOptions = {\n ...ModelOptions,\n isReadonly: boolean,\n};\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n modelOptions?: AttributeCollectionOptions,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key], {\n origin: modelOptions?.origin,\n contextPath: modelOptions?.contextPath,\n });\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (modelOptions?.isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","modelOptions","forEach","contribution","key","_Object$keys","attribute","origin","contextPath","isReadonly","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context0","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor, ModelOptions } from \"../types\";\n\ntype AttributeCollectionOptions = {\n ...ModelOptions,\n isReadonly: boolean,\n};\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n modelOptions?: AttributeCollectionOptions,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key], {\n origin: modelOptions?.origin,\n contextPath: modelOptions?.contextPath,\n });\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (modelOptions?.isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ class AttributeContent {
77
77
  layouthint: new LayoutHintCollection(layouthint),
78
78
  textfragments: _mapInstanceProperty(textfragments).call(textfragments, textfragment => ({
79
79
  ...textfragment,
80
- text: retrieveText(textfragment.text)
80
+ text: retrieveText(textfragment.text) || ""
81
81
  }))
82
82
  }
83
83
  };
@@ -86,7 +86,7 @@ class AttributeContent {
86
86
  layouthint: new LayoutHintCollection(layouthint),
87
87
  textfragments: textfragments.map((textfragment) => ({
88
88
  ...textfragment,
89
- text: retrieveText(textfragment.text),
89
+ text: retrieveText(textfragment.text) || "",
90
90
  })),
91
91
  },
92
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeContent.js","names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","constructor","content","_defineProperty","_content","fromData","header","headerLabel","headerDescription","label","description","message","elements","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","call","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","getContentElements","elementName","_context3","getContentElementCollections","collectionName","_context4","_context5","_flatInstanceProperty","getContentElementCollectionByLabels","labels","_context6","_context7","_context8","_includesInstanceProperty","getConceptPropertiesByLabels","getTextFragmentsByLabels","getSectionsByType","types","_context9","type","getSectionsByLabels","getReferredSections","referredSections","push"],"sources":["../../../src/models/attributes/AttributeContent.js"],"sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\n/**\n */\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements\n .filter((element) => element !== null)\n .map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null),\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string,\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>,\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\",\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData,\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\",\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData,\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\",\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel,\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeContent.js","names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","constructor","content","_defineProperty","_content","fromData","header","headerLabel","headerDescription","label","description","message","elements","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","call","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","getContentElements","elementName","_context3","getContentElementCollections","collectionName","_context4","_context5","_flatInstanceProperty","getContentElementCollectionByLabels","labels","_context6","_context7","_context8","_includesInstanceProperty","getConceptPropertiesByLabels","getTextFragmentsByLabels","getSectionsByType","types","_context9","type","getSectionsByLabels","getReferredSections","referredSections","push"],"sources":["../../../src/models/attributes/AttributeContent.js"],"sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\n/**\n */\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements\n .filter((element) => element !== null)\n .map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text) || \"\",\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null),\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string,\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>,\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\",\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData,\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\",\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData,\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\",\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel,\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"mappings":"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","ignoreList":[]}
@@ -155,12 +155,12 @@ class CompositeAttributeChildCollection extends ResourceCollection {
155
155
  /**
156
156
  */
157
157
  get readonlyvalue() {
158
- var _context11, _context12;
158
+ var _context1, _context10;
159
159
  if (this.first instanceof CompositeAttributeChildCollection) {
160
- var _context10;
161
- return _mapInstanceProperty(_context10 = this.collection).call(_context10, collection => collection.readonlyvalue).join(" | ");
160
+ var _context0;
161
+ return _mapInstanceProperty(_context0 = this.collection).call(_context0, collection => collection.readonlyvalue).join(" | ");
162
162
  }
163
- return _mapInstanceProperty(_context11 = _filterInstanceProperty(_context12 = this.collection).call(_context12, child => child.value !== null)).call(_context11, child => child.readonlyvalue).join(", ");
163
+ return _mapInstanceProperty(_context1 = _filterInstanceProperty(_context10 = this.collection).call(_context10, child => child.value !== null)).call(_context1, child => child.readonlyvalue).join(", ");
164
164
  }
165
165
 
166
166
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeAttributeChildCollection.js","names":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","create","data","contributions","modelOptions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","_context","_context2","compositeChildCollection","collection","_filterInstanceProperty","_mapInstanceProperty","call","contribution","_context3","_context4","key","_Object$keys","attributeData","_findInstanceProperty","attr","attributeContribution","_includesInstanceProperty","type","replace","attribute","dynamicschema","readonly","parentKey","_context5","childData","getInputValue","_context6","child","inputvalue","join","validate","every","isValid","errorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","_context8","first","_context7","value","_context9","formdata","readonlyvalue","_context11","_context12","_context10","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions,\n modelOptions,\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions,\n modelOptions,\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n },\n modelOptions,\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions,\n modelOptions,\n ),\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue,\n );\n }\n\n const children: { [string]: any } = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`,\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CompositeAttributeChildCollection.js","names":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","create","data","contributions","modelOptions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","_context","_context2","compositeChildCollection","collection","_filterInstanceProperty","_mapInstanceProperty","call","contribution","_context3","_context4","key","_Object$keys","attributeData","_findInstanceProperty","attr","attributeContribution","_includesInstanceProperty","type","replace","attribute","dynamicschema","readonly","parentKey","_context5","childData","getInputValue","_context6","child","inputvalue","join","validate","every","isValid","errorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","_context8","first","_context7","value","_context9","formdata","readonlyvalue","_context1","_context10","_context0","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions,\n modelOptions,\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions,\n modelOptions,\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n },\n modelOptions,\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions,\n modelOptions,\n ),\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue,\n );\n }\n\n const children: { [string]: any } = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`,\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -213,8 +213,8 @@ export default class ConceptDetailModel extends ResourceModel {
213
213
  * Get text fragments by id
214
214
  */
215
215
  getTextFragmentByKeys(keys) {
216
- var _context10;
217
- return _filterInstanceProperty(_context10 = this.textfragments).call(_context10, textfragment => _includesInstanceProperty(keys).call(keys, textfragment.type));
216
+ var _context0;
217
+ return _filterInstanceProperty(_context0 = this.textfragments).call(_context0, textfragment => _includesInstanceProperty(keys).call(keys, textfragment.type));
218
218
  }
219
219
 
220
220
  /**
@@ -237,21 +237,21 @@ export default class ConceptDetailModel extends ResourceModel {
237
237
  getSourceReferencesForCurrentLanguage(availableLocales) {
238
238
  const LANGUAGE_POSTFIX_LENGTH = 3;
239
239
  if (this.data.sourceReferences) {
240
- var _context11, _context14;
241
- const availableLanguagesInSourceReferences = _mapInstanceProperty(_context11 = this.data.sourceReferences).call(_context11, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
240
+ var _context1, _context12;
241
+ const availableLanguagesInSourceReferences = _mapInstanceProperty(_context1 = this.data.sourceReferences).call(_context1, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
242
242
  const currentLanguagePostfix = `_${this.locale}`;
243
243
  if (_includesInstanceProperty(availableLanguagesInSourceReferences).call(availableLanguagesInSourceReferences, currentLanguagePostfix)) {
244
- var _context12;
244
+ var _context10;
245
245
  // return all sourceReferences that end with language that is selected
246
- return _filterInstanceProperty(_context12 = this.data.sourceReferences).call(_context12, sourceReference => {
247
- var _context13;
248
- return _endsWithInstanceProperty(_context13 = sourceReference.type).call(_context13, currentLanguagePostfix);
246
+ return _filterInstanceProperty(_context10 = this.data.sourceReferences).call(_context10, sourceReference => {
247
+ var _context11;
248
+ return _endsWithInstanceProperty(_context11 = sourceReference.type).call(_context11, currentLanguagePostfix);
249
249
  });
250
250
  }
251
251
  const availableLanguages = _mapInstanceProperty(availableLocales).call(availableLocales, locale => `_${locale.split("-")[0]}`);
252
252
 
253
253
  // return all sourceReferences that do not end with language postfix
254
- return _filterInstanceProperty(_context14 = this.data.sourceReferences).call(_context14, sourceReference => !_includesInstanceProperty(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
254
+ return _filterInstanceProperty(_context12 = this.data.sourceReferences).call(_context12, sourceReference => !_includesInstanceProperty(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
255
255
  }
256
256
  return [];
257
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConceptDetailModel.js","names":["ResourceModel","ConceptRelationCollection","SourceReferenceCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptDetailModel","constructor","modularuiResponse","_defineProperty","_relations","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","call","model","conceptType","key","getData","selfhref","href","selflink","setParameter","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_mapInstanceProperty","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filterInstanceProperty","_includesInstanceProperty","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context10","getSourceReferenceCollection","availableLocales","arguments","length","undefined","_sourceReferences","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context11","_context14","availableLanguagesInSourceReferences","sourceReference","substring","currentLanguagePostfix","locale","_context12","_context13","_endsWithInstanceProperty","availableLanguages","split","value","isOfConceptType","conceptTypeId"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"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\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\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 this.modelOptions,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\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>, errors: Array<ErrorResponse>) {\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, errors);\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 * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\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 model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\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 this.modelOptions,\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 modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConceptDetailModel.js","names":["ResourceModel","ConceptRelationCollection","SourceReferenceCollection","ConceptTypeDetailModel","TIMEVERSION_FILTER_NAME","ConceptDetailModel","constructor","modularuiResponse","_defineProperty","_relations","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_findInstanceProperty","call","model","conceptType","key","getData","selfhref","href","selflink","setParameter","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_mapInstanceProperty","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filterInstanceProperty","_includesInstanceProperty","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context0","getSourceReferenceCollection","availableLocales","arguments","length","undefined","_sourceReferences","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context1","_context12","availableLanguagesInSourceReferences","sourceReference","substring","currentLanguagePostfix","locale","_context10","_context11","_endsWithInstanceProperty","availableLanguages","split","value","isOfConceptType","conceptTypeId"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"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\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\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 this.modelOptions,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\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>, errors: Array<ErrorResponse>) {\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, errors);\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 * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\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 model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\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 this.modelOptions,\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 modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,9 @@ export default class ContentTOCModel extends ResourceModel {
21
21
  * Get sub items of toc
22
22
  */
23
23
  get items(): Array<ContentLinkModel>;
24
+ /**
25
+ */
26
+ get sections(): Array<SectionModel>;
24
27
  /**
25
28
  * get categories of content
26
29
  */
@@ -33,9 +36,13 @@ export default class ContentTOCModel extends ResourceModel {
33
36
  * Retrieve modelcatalog.js of content toc
34
37
  */
35
38
  get entryDate(): ISO_DATE | null;
39
+ /**
40
+ */
41
+ get isCompleteSource(): boolean;
36
42
  }
37
43
  import ResourceModel from "../base/ResourceModel";
38
44
  import ContentTypeModel from "./ContentTypeModel";
39
45
  import FilterCollection from "../filters/FilterCollection";
40
46
  import { ModularUIModel } from "../types";
41
47
  import ContentLinkModel from "./ContentLinkModel";
48
+ import SectionModel from "./SectionModel";
@@ -9,6 +9,7 @@ import FilterCollection from "../filters/FilterCollection";
9
9
  import ContentLinkModel from "./ContentLinkModel";
10
10
  import ContentTypeModel from "./ContentTypeModel";
11
11
  import Href from "../href/Href";
12
+ import SectionModel from "./SectionModel";
12
13
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
13
14
  /**
14
15
  * Get content items recursively
@@ -21,6 +22,9 @@ const getItems = (items, entryDate, modelOptions) => _mapInstanceProperty(items)
21
22
  if (item.items) {
22
23
  link.items = getItems(item.items, entryDate, modelOptions);
23
24
  }
25
+ if (item.sections) {
26
+ link.items = getItems(item.sections, entryDate, modelOptions);
27
+ }
24
28
  return link;
25
29
  });
26
30
 
@@ -48,7 +52,7 @@ export default class ContentTOCModel extends ResourceModel {
48
52
  /**
49
53
  */
50
54
  static isApplicableModel(data) {
51
- return data.contributions.resourcetype && data.contributions.resourcetype === "ContentTOC";
55
+ return data.contributions?.resourcetype === "ContentTOC";
52
56
  }
53
57
 
54
58
  /**
@@ -101,7 +105,23 @@ export default class ContentTOCModel extends ResourceModel {
101
105
  * Get sub items of toc
102
106
  */
103
107
  get items() {
104
- return this.data.items ? getItems(this.data.items, this.entryDate, this.modelOptions) : [];
108
+ if (this.data.items) {
109
+ return getItems(this.data.items, this.entryDate, this.modelOptions);
110
+ }
111
+ if (this.data.sections) {
112
+ return getItems(this.data.sections, this.entryDate, this.modelOptions);
113
+ }
114
+ return [];
115
+ }
116
+
117
+ /**
118
+ */
119
+ get sections() {
120
+ if (this.data.sections) {
121
+ var _context;
122
+ return _mapInstanceProperty(_context = this.data.sections).call(_context, section => new SectionModel(section, this.entryDate, this.modelOptions));
123
+ }
124
+ return [];
105
125
  }
106
126
 
107
127
  /**
@@ -109,8 +129,8 @@ export default class ContentTOCModel extends ResourceModel {
109
129
  */
110
130
  get categories() {
111
131
  if (this.data.categories) {
112
- var _context;
113
- return _mapInstanceProperty(_context = this.data.categories).call(_context, category => new ContentLinkModel(category, null, this.modelOptions));
132
+ var _context2;
133
+ return _mapInstanceProperty(_context2 = this.data.categories).call(_context2, category => new ContentLinkModel(category, null, this.modelOptions));
114
134
  }
115
135
  return [];
116
136
  }
@@ -133,12 +153,12 @@ export default class ContentTOCModel extends ResourceModel {
133
153
  */
134
154
  get filterCollection() {
135
155
  if (!this._filterCollection) {
136
- var _context2;
156
+ var _context3;
137
157
  this._filterCollection = new FilterCollection(_filterInstanceProperty(this.data), {
138
- filter: _filterInstanceProperty(_context2 = _filterInstanceProperty(this.contributions)).call(_context2, filter => {
139
- var _context3;
158
+ filter: _filterInstanceProperty(_context3 = _filterInstanceProperty(this.contributions)).call(_context3, filter => {
159
+ var _context4;
140
160
  const [key] = _Object$keys(filter);
141
- return has((_context3 = this.data) == null ? void 0 : _filterInstanceProperty(_context3), key);
161
+ return has((_context4 = this.data) == null ? void 0 : _filterInstanceProperty(_context4), key);
142
162
  })
143
163
  }, this.modelOptions);
144
164
  }
@@ -152,5 +172,12 @@ export default class ContentTOCModel extends ResourceModel {
152
172
  const timeversionFilter = this.filterCollection.getFilterByAttributeKey(TIMEVERSION_FILTER_NAME);
153
173
  return timeversionFilter?.attribute?.value ?? null;
154
174
  }
175
+
176
+ /**
177
+ */
178
+ get isCompleteSource() {
179
+ const completeFilter = this.filterCollection.getFilterByAttributeKey("complete");
180
+ return completeFilter?.attribute?.value === "true";
181
+ }
155
182
  }
156
183
  //# sourceMappingURL=ContentTOCModel.js.map
@@ -7,11 +7,12 @@ import ContentLinkModel from "./ContentLinkModel";
7
7
  import ContentTypeModel from "./ContentTypeModel";
8
8
  import Href from "../href/Href";
9
9
 
10
- import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
10
+ import SectionModel from "./SectionModel";
11
11
 
12
+ import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
13
+ import type LinkModel from "../links/LinkModel";
12
14
  import type { ModelOptions, ModularUIModel } from "../types";
13
15
  import type { ModularUIResponse } from "../../modularui";
14
- import type LinkModel from "../links/LinkModel";
15
16
 
16
17
  /**
17
18
  * Get content items recursively
@@ -34,6 +35,9 @@ const getItems = (
34
35
  if (item.items) {
35
36
  link.items = getItems(item.items, entryDate, modelOptions);
36
37
  }
38
+ if (item.sections) {
39
+ link.items = getItems(item.sections, entryDate, modelOptions);
40
+ }
37
41
 
38
42
  return link;
39
43
  });
@@ -60,10 +64,7 @@ export default class ContentTOCModel extends ResourceModel {
60
64
  /**
61
65
  */
62
66
  static isApplicableModel(data: ModularUIResponse): boolean {
63
- return (
64
- data.contributions.resourcetype &&
65
- data.contributions.resourcetype === "ContentTOC"
66
- );
67
+ return data.contributions?.resourcetype === "ContentTOC";
67
68
  }
68
69
 
69
70
  /**
@@ -120,9 +121,27 @@ export default class ContentTOCModel extends ResourceModel {
120
121
  * Get sub items of toc
121
122
  */
122
123
  get items(): Array<ContentLinkModel> {
123
- return this.data.items
124
- ? getItems(this.data.items, this.entryDate, this.modelOptions)
125
- : [];
124
+ if (this.data.items) {
125
+ return getItems(this.data.items, this.entryDate, this.modelOptions);
126
+ }
127
+
128
+ if (this.data.sections) {
129
+ return getItems(this.data.sections, this.entryDate, this.modelOptions);
130
+ }
131
+
132
+ return [];
133
+ }
134
+
135
+ /**
136
+ */
137
+ get sections(): Array<SectionModel> {
138
+ if (this.data.sections) {
139
+ return this.data.sections.map(
140
+ (section) =>
141
+ new SectionModel(section, this.entryDate, this.modelOptions),
142
+ );
143
+ }
144
+ return [];
126
145
  }
127
146
 
128
147
  /**
@@ -182,4 +201,12 @@ export default class ContentTOCModel extends ResourceModel {
182
201
 
183
202
  return timeversionFilter?.attribute?.value ?? null;
184
203
  }
204
+
205
+ /**
206
+ */
207
+ get isCompleteSource(): boolean {
208
+ const completeFilter =
209
+ this.filterCollection.getFilterByAttributeKey("complete");
210
+ return completeFilter?.attribute?.value === "true";
211
+ }
185
212
  }