@beinformed/ui 1.65.24 → 1.65.26

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 (226) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/esm/builder/mergeLayoutHintConfigurations.js +7 -5
  3. package/esm/builder/mergeLayoutHintConfigurations.js.flow +12 -5
  4. package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
  5. package/esm/constants/Settings.js +4 -1
  6. package/esm/constants/Settings.js.flow +3 -3
  7. package/esm/constants/Settings.js.map +1 -1
  8. package/esm/hooks/useAuthentication.js +7 -3
  9. package/esm/hooks/useAuthentication.js.flow +6 -3
  10. package/esm/hooks/useAuthentication.js.map +1 -1
  11. package/esm/hooks/useModelCatalog.js +1 -1
  12. package/esm/hooks/useModelCatalog.js.flow +1 -1
  13. package/esm/hooks/useModelCatalog.js.map +1 -1
  14. package/esm/i18n/Locale.js +7 -1
  15. package/esm/i18n/Locale.js.flow +4 -2
  16. package/esm/i18n/Locale.js.map +1 -1
  17. package/esm/models/actions/ActionCollection.js +1 -1
  18. package/esm/models/actions/ActionCollection.js.flow +3 -3
  19. package/esm/models/actions/ActionCollection.js.map +1 -1
  20. package/esm/models/application/ApplicationModel.js +6 -1
  21. package/esm/models/application/ApplicationModel.js.flow +7 -2
  22. package/esm/models/application/ApplicationModel.js.map +1 -1
  23. package/esm/models/attributes/ChoiceAttributeModel.js +3 -5
  24. package/esm/models/attributes/ChoiceAttributeModel.js.flow +3 -5
  25. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  26. package/esm/models/attributes/CompositeAttributeModel.js +1 -1
  27. package/esm/models/attributes/CompositeAttributeModel.js.flow +1 -1
  28. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  29. package/esm/models/attributes/NumberAttributeModel.js +3 -1
  30. package/esm/models/attributes/NumberAttributeModel.js.flow +2 -1
  31. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  32. package/esm/models/attributes/StringAttributeModel.js +9 -4
  33. package/esm/models/attributes/StringAttributeModel.js.flow +7 -4
  34. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  35. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  36. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.flow +1 -1
  37. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  38. package/esm/models/base/BaseModel.js +8 -5
  39. package/esm/models/base/BaseModel.js.flow +8 -5
  40. package/esm/models/base/BaseModel.js.map +1 -1
  41. package/esm/models/base/ResourceModel.js +6 -7
  42. package/esm/models/base/ResourceModel.js.flow +4 -4
  43. package/esm/models/base/ResourceModel.js.map +1 -1
  44. package/esm/models/concepts/ConceptDetailModel.js +16 -16
  45. package/esm/models/concepts/ConceptDetailModel.js.flow +16 -19
  46. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  47. package/esm/models/concepts/SourceReferenceCollection.js +1 -1
  48. package/esm/models/concepts/SourceReferenceCollection.js.flow +1 -2
  49. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  50. package/esm/models/content/ContentLinkModel.js +6 -6
  51. package/esm/models/content/ContentLinkModel.js.flow +6 -6
  52. package/esm/models/content/ContentLinkModel.js.map +1 -1
  53. package/esm/models/filters/BaseFilterModel.js +3 -5
  54. package/esm/models/filters/BaseFilterModel.js.flow +4 -5
  55. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  56. package/esm/models/filters/StringFilterModel.js +4 -2
  57. package/esm/models/filters/StringFilterModel.js.flow +3 -2
  58. package/esm/models/filters/StringFilterModel.js.map +1 -1
  59. package/esm/models/form/FormModel.js +1 -1
  60. package/esm/models/form/FormModel.js.flow +1 -2
  61. package/esm/models/form/FormModel.js.map +1 -1
  62. package/esm/models/form/FormObjectModel.js +1 -1
  63. package/esm/models/form/FormObjectModel.js.flow +2 -3
  64. package/esm/models/form/FormObjectModel.js.map +1 -1
  65. package/esm/models/href/Href.js +2 -2
  66. package/esm/models/href/Href.js.flow +2 -2
  67. package/esm/models/href/Href.js.map +1 -1
  68. package/esm/models/index.js +2 -2
  69. package/esm/models/index.js.flow +1 -2
  70. package/esm/models/index.js.map +1 -1
  71. package/esm/models/links/normalizeLinkJSON.js +1 -1
  72. package/esm/models/links/normalizeLinkJSON.js.flow +1 -1
  73. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  74. package/esm/modularui/Authenticate.js +7 -2
  75. package/esm/modularui/Authenticate.js.flow +4 -2
  76. package/esm/modularui/Authenticate.js.map +1 -1
  77. package/esm/modularui/ModularUIRequest.js +2 -5
  78. package/esm/modularui/ModularUIRequest.js.flow +2 -6
  79. package/esm/modularui/ModularUIRequest.js.map +1 -1
  80. package/esm/modularui/UploadRequest.js +3 -1
  81. package/esm/modularui/UploadRequest.js.flow +3 -1
  82. package/esm/modularui/UploadRequest.js.map +1 -1
  83. package/esm/react-client/client.js +22 -10
  84. package/esm/react-client/client.js.flow +17 -11
  85. package/esm/react-client/client.js.map +1 -1
  86. package/esm/react-client/contextPath.js +3 -1
  87. package/esm/react-client/contextPath.js.flow +2 -1
  88. package/esm/react-client/contextPath.js.map +1 -1
  89. package/esm/redux/_i18n/I18nReducer.js +1 -4
  90. package/esm/redux/_i18n/I18nReducer.js.flow +1 -4
  91. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  92. package/esm/redux/_modularui/ModularUIActions.js +1 -4
  93. package/esm/redux/_modularui/ModularUIActions.js.flow +1 -5
  94. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  95. package/esm/redux/_modularui/ModularUIConnector.js +3 -4
  96. package/esm/redux/_modularui/ModularUIConnector.js.flow +2 -1
  97. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  98. package/esm/redux/_modularui/ModularUIReducer.js +6 -3
  99. package/esm/redux/_modularui/ModularUIReducer.js.flow +2 -2
  100. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  101. package/esm/redux/actions/Authorization.js +4 -2
  102. package/esm/redux/actions/Authorization.js.flow +3 -2
  103. package/esm/redux/actions/Authorization.js.map +1 -1
  104. package/esm/redux/actions/Preferences.js +4 -4
  105. package/esm/redux/actions/Preferences.js.flow +6 -10
  106. package/esm/redux/actions/Preferences.js.map +1 -1
  107. package/esm/redux/reducers/ModelCatalogReducer.js +7 -9
  108. package/esm/redux/reducers/ModelCatalogReducer.js.flow +8 -9
  109. package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
  110. package/esm/redux/store/configureStore.js +6 -1
  111. package/esm/redux/store/configureStore.js.flow +4 -1
  112. package/esm/redux/store/configureStore.js.map +1 -1
  113. package/esm/redux/types.js.flow +10 -1
  114. package/esm/redux/types.js.map +1 -1
  115. package/esm/utils/browser/Cache.js +3 -1
  116. package/esm/utils/browser/Cache.js.flow +2 -1
  117. package/esm/utils/browser/Cache.js.map +1 -1
  118. package/esm/utils/browser/__tests__/Cookies.spec.js.flow +2 -1
  119. package/esm/utils/datetime/DateTimeUtil.js +6 -5
  120. package/esm/utils/datetime/DateTimeUtil.js.flow +5 -11
  121. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  122. package/esm/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +0 -6
  123. package/esm/utils/fetch/universalFetch.js +7 -8
  124. package/esm/utils/fetch/universalFetch.js.flow +13 -14
  125. package/esm/utils/fetch/universalFetch.js.map +1 -1
  126. package/esm/utils/fetch/xhr.js +2 -5
  127. package/esm/utils/fetch/xhr.js.flow +2 -6
  128. package/esm/utils/fetch/xhr.js.map +1 -1
  129. package/esm/utils/helpers/createHref.js +4 -1
  130. package/esm/utils/helpers/createHref.js.flow +2 -1
  131. package/esm/utils/helpers/createHref.js.map +1 -1
  132. package/esm/utils/helpers/createUUID.js +2 -1
  133. package/esm/utils/helpers/createUUID.js.flow +1 -1
  134. package/esm/utils/helpers/createUUID.js.map +1 -1
  135. package/esm/utils/number/parseNumbers.js +6 -3
  136. package/esm/utils/number/parseNumbers.js.flow +4 -3
  137. package/esm/utils/number/parseNumbers.js.map +1 -1
  138. package/lib/builder/mergeLayoutHintConfigurations.js +7 -5
  139. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  140. package/lib/constants/Settings.js +4 -1
  141. package/lib/constants/Settings.js.map +1 -1
  142. package/lib/hooks/useAuthentication.js +7 -3
  143. package/lib/hooks/useAuthentication.js.map +1 -1
  144. package/lib/hooks/useModelCatalog.js +1 -1
  145. package/lib/hooks/useModelCatalog.js.map +1 -1
  146. package/lib/i18n/Locale.js +7 -1
  147. package/lib/i18n/Locale.js.map +1 -1
  148. package/lib/models/actions/ActionCollection.js +1 -1
  149. package/lib/models/actions/ActionCollection.js.map +1 -1
  150. package/lib/models/application/ApplicationModel.js +6 -1
  151. package/lib/models/application/ApplicationModel.js.map +1 -1
  152. package/lib/models/attributes/ChoiceAttributeModel.js +3 -5
  153. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  154. package/lib/models/attributes/CompositeAttributeModel.js +1 -1
  155. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  156. package/lib/models/attributes/NumberAttributeModel.js +3 -1
  157. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  158. package/lib/models/attributes/StringAttributeModel.js +9 -4
  159. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  160. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  161. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  162. package/lib/models/base/BaseModel.js +8 -5
  163. package/lib/models/base/BaseModel.js.map +1 -1
  164. package/lib/models/base/ResourceModel.js +6 -7
  165. package/lib/models/base/ResourceModel.js.map +1 -1
  166. package/lib/models/concepts/ConceptDetailModel.js +16 -16
  167. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  168. package/lib/models/concepts/SourceReferenceCollection.js +1 -1
  169. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  170. package/lib/models/content/ContentLinkModel.js +6 -6
  171. package/lib/models/content/ContentLinkModel.js.map +1 -1
  172. package/lib/models/filters/BaseFilterModel.js +3 -5
  173. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  174. package/lib/models/filters/StringFilterModel.js +4 -2
  175. package/lib/models/filters/StringFilterModel.js.map +1 -1
  176. package/lib/models/form/FormModel.js +1 -1
  177. package/lib/models/form/FormModel.js.map +1 -1
  178. package/lib/models/form/FormObjectModel.js +1 -1
  179. package/lib/models/form/FormObjectModel.js.map +1 -1
  180. package/lib/models/href/Href.js +2 -2
  181. package/lib/models/href/Href.js.map +1 -1
  182. package/lib/models/index.js.map +1 -1
  183. package/lib/models/links/normalizeLinkJSON.js +1 -1
  184. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  185. package/lib/modularui/Authenticate.js +7 -2
  186. package/lib/modularui/Authenticate.js.map +1 -1
  187. package/lib/modularui/ModularUIRequest.js +2 -5
  188. package/lib/modularui/ModularUIRequest.js.map +1 -1
  189. package/lib/modularui/UploadRequest.js +3 -1
  190. package/lib/modularui/UploadRequest.js.map +1 -1
  191. package/lib/react-client/client.js +22 -10
  192. package/lib/react-client/client.js.map +1 -1
  193. package/lib/react-client/contextPath.js +4 -1
  194. package/lib/react-client/contextPath.js.map +1 -1
  195. package/lib/redux/_i18n/I18nReducer.js +1 -4
  196. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  197. package/lib/redux/_modularui/ModularUIActions.js +1 -4
  198. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  199. package/lib/redux/_modularui/ModularUIConnector.js +3 -4
  200. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  201. package/lib/redux/_modularui/ModularUIReducer.js +6 -3
  202. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  203. package/lib/redux/actions/Authorization.js +4 -2
  204. package/lib/redux/actions/Authorization.js.map +1 -1
  205. package/lib/redux/actions/Preferences.js +4 -4
  206. package/lib/redux/actions/Preferences.js.map +1 -1
  207. package/lib/redux/reducers/ModelCatalogReducer.js +7 -9
  208. package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
  209. package/lib/redux/store/configureStore.js +6 -1
  210. package/lib/redux/store/configureStore.js.map +1 -1
  211. package/lib/redux/types.js.map +1 -1
  212. package/lib/utils/browser/Cache.js +3 -1
  213. package/lib/utils/browser/Cache.js.map +1 -1
  214. package/lib/utils/datetime/DateTimeUtil.js +6 -5
  215. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  216. package/lib/utils/fetch/universalFetch.js +7 -8
  217. package/lib/utils/fetch/universalFetch.js.map +1 -1
  218. package/lib/utils/fetch/xhr.js +2 -5
  219. package/lib/utils/fetch/xhr.js.map +1 -1
  220. package/lib/utils/helpers/createHref.js +4 -1
  221. package/lib/utils/helpers/createHref.js.map +1 -1
  222. package/lib/utils/helpers/createUUID.js +3 -1
  223. package/lib/utils/helpers/createUUID.js.map +1 -1
  224. package/lib/utils/number/parseNumbers.js +6 -3
  225. package/lib/utils/number/parseNumbers.js.map +1 -1
  226. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","errors","key","isRange","_context","Function","bind","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","isValid","setIsValid","getIsValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context2","_find","equals","getChildByKey","_context3","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","updateByAttribute","otherAttribute","otherChild","console","error","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","getChildrenIds","values","Array","isArray","_map","val","_id","isResult","_isResult","indicateContentConfiguration","contentConfiguration","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType, ModelOptions } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n modelOptions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this.children.setChildModels(models, errors);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n let isValid = this.children.validate();\n\n if (isValid) {\n isValid = this.constraintCollection.validate();\n }\n\n this.setIsValid(isValid);\n return this.getIsValid();\n }\n\n /**\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n if (otherAttribute instanceof CompositeAttributeModel) {\n otherAttribute.children.forEach((otherChild) => {\n const child = this.getChildByAttribute(otherChild);\n if (child) {\n child.updateByAttribute(otherChild);\n }\n });\n } else {\n console.error(\n `update of composite attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n getChildrenIds(): Array<string> {\n const values = this.data.value;\n if (Array.isArray(values)) {\n return values.map((val) => val._id);\n } else if (values != null) {\n return [values._id];\n }\n return [];\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","errors","key","isRange","_context","Function","bind","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","isValid","setIsValid","getIsValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context2","_find","equals","getChildByKey","_context3","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","updateByAttribute","otherAttribute","otherChild","console","error","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","getChildrenIds","values","Array","isArray","_map","val","_id","isResult","_isResult","indicateContentConfiguration","contentConfiguration","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType, ModelOptions } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n modelOptions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this.children.setChildModels(models, errors);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n let isValid = this.children.validate();\n\n if (isValid) {\n isValid = this.constraintCollection.validate();\n }\n\n this.setIsValid(isValid);\n return this.getIsValid();\n }\n\n /**\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n if (otherAttribute instanceof CompositeAttributeModel) {\n otherAttribute.children.forEach((otherChild) => {\n const child = this.getChildByAttribute(otherChild);\n if (child) {\n child.updateByAttribute(otherChild);\n }\n });\n } else {\n console.error(\n `update of composite attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n getChildrenIds(): Array<string> {\n const values = this.data.value;\n if (Array.isArray(values)) {\n return values.map((val) => val._id);\n } else if (values != null) {\n return [values._id];\n }\n return [];\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals?.(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
@@ -74,8 +74,10 @@ class NumberAttributeModel extends _AttributeModel.default {
74
74
  * Gets the maximum digits based on the format
75
75
  */
76
76
  get maxDigits() {
77
+ var _context;
77
78
  const format = this.format;
78
- if (format != null && (0, _includes.default)(format).call(format, ".")) {
79
+ if (((_context = format) == null ? void 0 : Function.call.bind((0, _includes.default)(_context), _context))?.(".")) {
80
+ // $FlowIssue
79
81
  return format.split(".")[1].length;
80
82
  }
81
83
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberAttributeModel.js","names":["_objects","require","_formatValue","_interopRequireDefault","_parseNumbers","_AttributeModel","_ConstraintCollection","_constants","_LayoutHints","_NumberBoundaryConstraint","_NumberFormatConstraint","_NumberGroupingConstraint","NumberAttributeModel","AttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","formatValue","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","_includes","default","call","split","length","unit","placeholder","addConstraints","constraints","ConstraintCollection","add","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","reset","inputvalue","toString","readonlyvalue","isPlainObject","getInputValue","_inputvalue","validate","outputNumber","parseToNumber","isNaN","parseNumberToString","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","exports"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\n\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\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 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._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value || \"\";\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberAttributeModel.js","names":["_objects","require","_formatValue","_interopRequireDefault","_parseNumbers","_AttributeModel","_ConstraintCollection","_constants","_LayoutHints","_NumberBoundaryConstraint","_NumberFormatConstraint","_NumberGroupingConstraint","NumberAttributeModel","AttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","formatValue","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","_context","format","Function","call","bind","_includes","default","split","length","unit","placeholder","addConstraints","constraints","ConstraintCollection","add","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","reset","inputvalue","toString","readonlyvalue","isPlainObject","getInputValue","_inputvalue","validate","outputNumber","parseToNumber","isNaN","parseNumberToString","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","exports"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\n\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format?.includes(\".\")) {\n // $FlowIssue\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\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 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._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value || \"\";\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
9
+ var _replaceAll = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/replace-all"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
10
11
  var _AttributeModel = _interopRequireDefault(require("./AttributeModel"));
11
12
  var _ConstraintCollection = _interopRequireDefault(require("./input-constraints/ConstraintCollection"));
@@ -125,7 +126,7 @@ class StringAttributeModel extends _AttributeModel.default {
125
126
  constraints.add(new _RegexConstraint.default({
126
127
  messageKey: "Constraint.ZipCode.InvalidFormat",
127
128
  defaultMessage: "Must be a valid Dutch ZIP code, e.g. 1234 AB",
128
- regex: new RegExp("^[1-9][0-9]{3} ?[a-zA-Z]{2}$", "gi")
129
+ regex: /^[1-9]\d{3} ?[a-z]{2}$/gi
129
130
  }));
130
131
  } else if (this.isEmail() && this.regexp) {
131
132
  constraints.add(new _RegexConstraint.default({
@@ -192,7 +193,9 @@ class StringAttributeModel extends _AttributeModel.default {
192
193
  if (this.isBSN()) {
193
194
  return this.formatBSN(value);
194
195
  }
195
- return value.replace(/ {2}/gi, " \u00A0");
196
+
197
+ // $FlowIssue
198
+ return (0, _replaceAll.default)(value).call(value, " ", " \u00A0");
196
199
  }
197
200
 
198
201
  /**
@@ -202,7 +205,8 @@ class StringAttributeModel extends _AttributeModel.default {
202
205
  return "";
203
206
  }
204
207
  if (this.isIBAN() || this.isZipcode() || this.isBSN()) {
205
- return value.replace(/[^a-z0-9,]/gi, "");
208
+ // $FlowIssue
209
+ return (0, _replaceAll.default)(value).call(value, /[^a-z0-9,]/gi, "");
206
210
  }
207
211
  return value;
208
212
  }
@@ -238,7 +242,8 @@ class StringAttributeModel extends _AttributeModel.default {
238
242
  if (typeof this.value === "string") {
239
243
  const formattedValue = this.formatValue(this.value);
240
244
  // fix for rendering of multiple spaces
241
- return formattedValue.replace(/ {2}/gi, " \u00A0");
245
+ // $FlowIssue
246
+ return (0, _replaceAll.default)(formattedValue).call(formattedValue, " ", " \u00A0");
242
247
  }
243
248
  return this.value == null ? "" : this.value;
244
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: new RegExp(\"^[1-9][0-9]{3} ?[a-zA-Z]{2}$\", \"gi\"),\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\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._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","_replaceAll","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: /^[1-9]\\d{3} ?[a-z]{2}$/gi,\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n // $FlowIssue\n return value.replaceAll(\" \", \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n // $FlowIssue\n return value.replaceAll(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\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._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n // $FlowIssue\n return formattedValue.replaceAll(\" \", \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -104,7 +104,7 @@ class DatetimeFormatConstraint {
104
104
  if (!hasDateTime) {
105
105
  this._id = "Constraint.DateTime.MissingValue";
106
106
  return false;
107
- } else if (!new RegExp("[+-](0[0-9]|1[0-4]):[0-5][0-9]").test(value)) {
107
+ } else if (!/[+-](0\d|1[0-4]):[0-5]\d/.test(value)) {
108
108
  this._id = "Constraint.DateTime.MissingOffset";
109
109
  return false;
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","RegExp","test","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DatetimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n isIncludeTimeOffsetInDateTimes,\n} from \"../../../constants\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DatetimeFormatConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _formatLabel: string;\n\n _id: string = \"Constraint.DateTime.MissingValue\";\n\n /**\n */\n constructor(type: string, format: string, formatLabel: string) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n return \"Please select ${daylight-label} or ${standard-label}\";\n }\n return \"Date and time should both be entered\";\n }\n\n /**\n */\n get parameters():\n | { format: string }\n | { \"daylight-label\": ?string, \"standard-label\": ?string } {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n const offsets = DateTimeUtil.getTimezoneOffsets();\n return {\n \"daylight-label\": offsets.daylight?.label,\n \"standard-label\": offsets.standard?.label,\n };\n }\n return { format: this.formatLabel };\n }\n\n /**\n */\n get formatUtil(): typeof TimestampUtil | typeof DateTimeUtil {\n if (this.type === \"timestamp\") {\n return TimestampUtil;\n }\n\n return DateTimeUtil;\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n if (this.formatUtil.hasFormat(value, this.format)) {\n return true;\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n const hasDateTime = this.formatUtil.hasFormat(\n value,\n this._formatNoOffset,\n );\n if (!hasDateTime) {\n this._id = \"Constraint.DateTime.MissingValue\";\n return false;\n } else if (!new RegExp(\"[+-](0[0-9]|1[0-4]):[0-5][0-9]\").test(value)) {\n this._id = \"Constraint.DateTime.MissingOffset\";\n return false;\n }\n }\n\n return false;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DatetimeFormatConstraint;\n"],"mappings":";;;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AAOA;AACA;AACA,MAAME,wBAAwB,CAA6B;EAQzD;AACF;EACEC,WAAWA,CAACC,IAAY,EAAEC,MAAc,EAAEC,WAAmB,EAAE;IAAA,IAAAC,QAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,eAJjD,kCAAkC;IAK9C,IAAI,CAACC,KAAK,GAAGN,IAAI;IACjB,IAAI,CAACO,OAAO,GAAGN,MAAM;IACrB,IAAI,CAACO,eAAe,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAF,QAAA,GAAAF,MAAM,CAACS,OAAO,CAACC,iCAAsB,EAAE,EAAE,CAAC,EAAAC,IAAA,CAAAT,QAAM,CAAC;IACxE,IAAI,CAACU,YAAY,GAAGX,WAAW;EACjC;;EAEA;AACF;EACE,IAAIF,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACM,KAAK;EACnB;;EAEA;AACF;EACE,IAAIQ,EAAEA,CAAA,EAAW;IACf,OAAO,IAAI,CAACC,GAAG;EACjB;;EAEA;AACF;EACE,IAAId,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACM,OAAO;EACrB;;EAEA;AACF;EACE,IAAIL,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACW,YAAY;EAC1B;;EAEA;AACF;EACEG,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,IAAI,IAAI,CAACF,GAAG,KAAK,mCAAmC,EAAE;MACpD,OAAO,sDAAsD;IAC/D;IACA,OAAO,sCAAsC;EAC/C;;EAEA;AACF;EACE,IAAIG,UAAUA,CAAA,EAE+C;IAC3D,IAAI,IAAI,CAACH,GAAG,KAAK,mCAAmC,EAAE;MACpD,MAAMI,OAAO,GAAGC,0BAAY,CAACC,kBAAkB,CAAC,CAAC;MACjD,OAAO;QACL,gBAAgB,EAAEF,OAAO,CAACG,QAAQ,EAAEC,KAAK;QACzC,gBAAgB,EAAEJ,OAAO,CAACK,QAAQ,EAAED;MACtC,CAAC;IACH;IACA,OAAO;MAAEtB,MAAM,EAAE,IAAI,CAACC;IAAY,CAAC;EACrC;;EAEA;AACF;EACE,IAAIuB,UAAUA,CAAA,EAA+C;IAC3D,IAAI,IAAI,CAACzB,IAAI,KAAK,WAAW,EAAE;MAC7B,OAAO0B,2BAAa;IACtB;IAEA,OAAON,0BAAY;EACrB;;EAEA;AACF;EACEO,QAAQA,CAACC,KAAa,EAAW;IAC/B,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,KAAK;IACd;IAEA,IAAI,IAAI,CAACH,UAAU,CAACI,SAAS,CAACD,KAAK,EAAE,IAAI,CAAC3B,MAAM,CAAC,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,IAAI,IAAA6B,yCAA8B,EAAC,CAAC,EAAE;MACpC,MAAMC,WAAW,GAAG,IAAI,CAACN,UAAU,CAACI,SAAS,CAC3CD,KAAK,EACL,IAAI,CAACpB,eACP,CAAC;MACD,IAAI,CAACuB,WAAW,EAAE;QAChB,IAAI,CAAChB,GAAG,GAAG,kCAAkC;QAC7C,OAAO,KAAK;MACd,CAAC,MAAM,IAAI,CAAC,IAAIiB,MAAM,CAAC,gCAAgC,CAAC,CAACC,IAAI,CAACL,KAAK,CAAC,EAAE;QACpE,IAAI,CAACb,GAAG,GAAG,mCAAmC;QAC9C,OAAO,KAAK;MACd;IACF;IAEA,OAAO,KAAK;EACd;;EAEA;AACF;EACE,IAAImB,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA/B,OAAA,GAEcP,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","test","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DatetimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n isIncludeTimeOffsetInDateTimes,\n} from \"../../../constants\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DatetimeFormatConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _formatLabel: string;\n\n _id: string = \"Constraint.DateTime.MissingValue\";\n\n /**\n */\n constructor(type: string, format: string, formatLabel: string) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n return \"Please select ${daylight-label} or ${standard-label}\";\n }\n return \"Date and time should both be entered\";\n }\n\n /**\n */\n get parameters():\n | { format: string }\n | { \"daylight-label\": ?string, \"standard-label\": ?string } {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n const offsets = DateTimeUtil.getTimezoneOffsets();\n return {\n \"daylight-label\": offsets.daylight?.label,\n \"standard-label\": offsets.standard?.label,\n };\n }\n return { format: this.formatLabel };\n }\n\n /**\n */\n get formatUtil(): typeof TimestampUtil | typeof DateTimeUtil {\n if (this.type === \"timestamp\") {\n return TimestampUtil;\n }\n\n return DateTimeUtil;\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n if (this.formatUtil.hasFormat(value, this.format)) {\n return true;\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n const hasDateTime = this.formatUtil.hasFormat(\n value,\n this._formatNoOffset,\n );\n if (!hasDateTime) {\n this._id = \"Constraint.DateTime.MissingValue\";\n return false;\n } else if (!/[+-](0\\d|1[0-4]):[0-5]\\d/.test(value)) {\n this._id = \"Constraint.DateTime.MissingOffset\";\n return false;\n }\n }\n\n return false;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DatetimeFormatConstraint;\n"],"mappings":";;;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AAOA;AACA;AACA,MAAME,wBAAwB,CAA6B;EAQzD;AACF;EACEC,WAAWA,CAACC,IAAY,EAAEC,MAAc,EAAEC,WAAmB,EAAE;IAAA,IAAAC,QAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,eAJjD,kCAAkC;IAK9C,IAAI,CAACC,KAAK,GAAGN,IAAI;IACjB,IAAI,CAACO,OAAO,GAAGN,MAAM;IACrB,IAAI,CAACO,eAAe,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAF,QAAA,GAAAF,MAAM,CAACS,OAAO,CAACC,iCAAsB,EAAE,EAAE,CAAC,EAAAC,IAAA,CAAAT,QAAM,CAAC;IACxE,IAAI,CAACU,YAAY,GAAGX,WAAW;EACjC;;EAEA;AACF;EACE,IAAIF,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACM,KAAK;EACnB;;EAEA;AACF;EACE,IAAIQ,EAAEA,CAAA,EAAW;IACf,OAAO,IAAI,CAACC,GAAG;EACjB;;EAEA;AACF;EACE,IAAId,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACM,OAAO;EACrB;;EAEA;AACF;EACE,IAAIL,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACW,YAAY;EAC1B;;EAEA;AACF;EACEG,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,IAAI,IAAI,CAACF,GAAG,KAAK,mCAAmC,EAAE;MACpD,OAAO,sDAAsD;IAC/D;IACA,OAAO,sCAAsC;EAC/C;;EAEA;AACF;EACE,IAAIG,UAAUA,CAAA,EAE+C;IAC3D,IAAI,IAAI,CAACH,GAAG,KAAK,mCAAmC,EAAE;MACpD,MAAMI,OAAO,GAAGC,0BAAY,CAACC,kBAAkB,CAAC,CAAC;MACjD,OAAO;QACL,gBAAgB,EAAEF,OAAO,CAACG,QAAQ,EAAEC,KAAK;QACzC,gBAAgB,EAAEJ,OAAO,CAACK,QAAQ,EAAED;MACtC,CAAC;IACH;IACA,OAAO;MAAEtB,MAAM,EAAE,IAAI,CAACC;IAAY,CAAC;EACrC;;EAEA;AACF;EACE,IAAIuB,UAAUA,CAAA,EAA+C;IAC3D,IAAI,IAAI,CAACzB,IAAI,KAAK,WAAW,EAAE;MAC7B,OAAO0B,2BAAa;IACtB;IAEA,OAAON,0BAAY;EACrB;;EAEA;AACF;EACEO,QAAQA,CAACC,KAAa,EAAW;IAC/B,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,KAAK;IACd;IAEA,IAAI,IAAI,CAACH,UAAU,CAACI,SAAS,CAACD,KAAK,EAAE,IAAI,CAAC3B,MAAM,CAAC,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,IAAI,IAAA6B,yCAA8B,EAAC,CAAC,EAAE;MACpC,MAAMC,WAAW,GAAG,IAAI,CAACN,UAAU,CAACI,SAAS,CAC3CD,KAAK,EACL,IAAI,CAACpB,eACP,CAAC;MACD,IAAI,CAACuB,WAAW,EAAE;QAChB,IAAI,CAAChB,GAAG,GAAG,kCAAkC;QAC7C,OAAO,KAAK;MACd,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAACiB,IAAI,CAACJ,KAAK,CAAC,EAAE;QAClD,IAAI,CAACb,GAAG,GAAG,mCAAmC;QAC9C,OAAO,KAAK;MACd;IACF;IAEA,OAAO,KAAK;EACd;;EAEA;AACF;EACE,IAAIkB,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA9B,OAAA,GAEcP,wBAAwB","ignoreList":[]}
@@ -20,10 +20,9 @@ class BaseModel {
20
20
  /**
21
21
  * constructor
22
22
  */
23
- constructor(data, contributions, modelOptions = {
24
- origin: "",
25
- contextPath: (0, _constants.getBasePathModularUI)()
26
- }) {
23
+ constructor(data, contributions,
24
+ // $FlowIssue
25
+ modelOptions = {}) {
27
26
  (0, _defineProperty2.default)(this, "_data", void 0);
28
27
  (0, _defineProperty2.default)(this, "_contributions", void 0);
29
28
  (0, _defineProperty2.default)(this, "_layouthint", void 0);
@@ -32,7 +31,11 @@ class BaseModel {
32
31
  this._data = data;
33
32
  this._contributions = contributions;
34
33
  this._layouthint = new _LayoutHintCollection.default(this.getContribution("layouthint", []));
35
- this._modelOptions = modelOptions;
34
+ this._modelOptions = {
35
+ origin: "",
36
+ contextPath: (0, _constants.getBasePathModularUI)(),
37
+ ...modelOptions
38
+ };
36
39
  }
37
40
 
38
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","origin","contextPath","getBasePathModularUI","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","getData","propName","defaultValue","layouthint","hasData","_keys","length","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions: ModelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n },\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n this._modelOptions = modelOptions;\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","origin","contextPath","getBasePathModularUI","getData","propName","defaultValue","layouthint","hasData","_keys","length","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n // $FlowIssue\n modelOptions: ModelOptions = {},\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n\n this._modelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n ...modelOptions,\n };\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
8
+ var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
9
9
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
11
11
  var _ModularUIResponse = _interopRequireDefault(require("../../modularui/ModularUIResponse"));
@@ -169,10 +169,9 @@ class ResourceModel extends _BaseModel.default {
169
169
  /**
170
170
  * Add child models to this model
171
171
  */
172
- addChildModels(models, errors) {
173
- var _context, _context2;
174
- const flattenModels = (0, _concat.default)(_context = []).call(_context, ...models);
175
- const flattenErrors = (0, _concat.default)(_context2 = []).call(_context2, errors);
172
+ addChildModels(models = [], errors = []) {
173
+ const flattenModels = (0, _flat.default)(models).call(models);
174
+ const flattenErrors = (0, _flat.default)(errors).call(errors);
176
175
  this._childModels = flattenModels;
177
176
  this.setChildModels(flattenModels, flattenErrors);
178
177
  return this;
@@ -194,13 +193,13 @@ class ResourceModel extends _BaseModel.default {
194
193
  /**
195
194
  */
196
195
  dehydrate() {
197
- var _context3;
196
+ var _context;
198
197
  return {
199
198
  ...super.dehydrate(),
200
199
  key: this._key,
201
200
  locale: this._locale,
202
201
  // $FlowFixMe[missing-type-arg]
203
- childModels: (0, _map.default)(_context3 = this._childModels).call(_context3, childModel => childModel.dehydrate())
202
+ childModels: (0, _map.default)(_context = this._childModels).call(_context, childModel => childModel.dehydrate())
204
203
  };
205
204
  }
206
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceModel.js","names":["_ModularUIResponse","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concat","call","flattenErrors","setChildModels","dehydrate","_context3","_map","childModel","_default","exports"],"sources":["../../../src/models/base/ResourceModel.js"],"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\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\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(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\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 const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\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(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): this {\n const flattenModels = [].concat(...models);\n const flattenErrors = [].concat(errors);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\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(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ResourceModel.js","names":["_ModularUIResponse","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","flattenModels","_flat","call","flattenErrors","setChildModels","dehydrate","_context","_map","childModel","_default","exports"],"sources":["../../../src/models/base/ResourceModel.js"],"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\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\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(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\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 const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\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(\n models: Array<ModularUIModel> = [],\n errors: Array<ErrorResponse> = [],\n ): this {\n const flattenModels = models.flat();\n const flattenErrors = errors.flat();\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\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(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\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"],"mappings":"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","ignoreList":[]}
@@ -153,7 +153,7 @@ class ConceptDetailModel extends _ResourceModel.default {
153
153
  */
154
154
  get labels() {
155
155
  var _context;
156
- return this.conceptType && this.conceptType.labelTypes ? (0, _map.default)(_context = this.conceptType.labelTypes).call(_context, labelType => {
156
+ return this.conceptType?.labelTypes ? (0, _map.default)(_context = this.conceptType.labelTypes).call(_context, labelType => {
157
157
  var _context2;
158
158
  const setting = this.data.labels ? (0, _find.default)(_context2 = this.data.labels).call(_context2, label => label.type === labelType._id) : {};
159
159
  return {
@@ -176,7 +176,7 @@ class ConceptDetailModel extends _ResourceModel.default {
176
176
  */
177
177
  get conceptProperties() {
178
178
  var _context4;
179
- return this.conceptType && this.conceptType.propertyTypes ? (0, _map.default)(_context4 = this.conceptType.propertyTypes).call(_context4, propertyType => {
179
+ return this.conceptType?.propertyTypes ? (0, _map.default)(_context4 = this.conceptType.propertyTypes).call(_context4, propertyType => {
180
180
  var _context5;
181
181
  const setting = this.data.properties ? (0, _find.default)(_context5 = this.data.properties).call(_context5, property => property.type === propertyType._id) : {};
182
182
  return {
@@ -198,16 +198,16 @@ class ConceptDetailModel extends _ResourceModel.default {
198
198
  * Get Text fragments
199
199
  */
200
200
  get textfragments() {
201
- var _context7, _context9;
201
+ var _context7, _context0;
202
202
  const textFragments = this.data.textFragments ? (0, _map.default)(_context7 = this.data.textFragments).call(_context7, textFragment => {
203
- var _context8;
204
- const textFragmentConfig = this.conceptType && (0, _find.default)(_context8 = this.conceptType.textFragmentTypes).call(_context8, textFragmentType => textFragment.type === textFragmentType._id);
203
+ var _context8, _context9;
204
+ const textFragmentConfig = ((_context8 = this.conceptType) == null ? void 0 : Function.call.bind((0, _find.default)(_context9 = _context8.textFragmentTypes), _context9))?.(textFragmentType => textFragment.type === textFragmentType._id);
205
205
  return {
206
206
  ...textFragmentConfig,
207
207
  ...textFragment
208
208
  };
209
209
  }) : [];
210
- const notConfiguredTextFragments = this.conceptType && this.conceptType.textFragmentTypes ? (0, _filter.default)(_context9 = this.conceptType.textFragmentTypes).call(_context9, textFragmentType => {
210
+ const notConfiguredTextFragments = this.conceptType?.textFragmentTypes ? (0, _filter.default)(_context0 = this.conceptType.textFragmentTypes).call(_context0, textFragmentType => {
211
211
  if (!this.data.textFragments) {
212
212
  return true;
213
213
  }
@@ -220,8 +220,8 @@ class ConceptDetailModel extends _ResourceModel.default {
220
220
  * Get text fragments by id
221
221
  */
222
222
  getTextFragmentByKeys(keys) {
223
- var _context0;
224
- return (0, _filter.default)(_context0 = this.textfragments).call(_context0, textfragment => (0, _includes.default)(keys).call(keys, textfragment.type));
223
+ var _context1;
224
+ return (0, _filter.default)(_context1 = this.textfragments).call(_context1, textfragment => (0, _includes.default)(keys).call(keys, textfragment.type));
225
225
  }
226
226
 
227
227
  /**
@@ -230,7 +230,7 @@ class ConceptDetailModel extends _ResourceModel.default {
230
230
  getSourceReferenceCollection(availableLocales = []) {
231
231
  if (!this._sourceReferences) {
232
232
  let sectionReferenceTypes = [];
233
- if (this.conceptType && this.conceptType.sectionReferenceTypes) {
233
+ if (this.conceptType?.sectionReferenceTypes) {
234
234
  sectionReferenceTypes = this.conceptType.sectionReferenceTypes;
235
235
  }
236
236
  this._sourceReferences = new _SourceReferenceCollection.default(this.getSourceReferencesForCurrentLanguage(availableLocales), sectionReferenceTypes, this.entryDate, this.modelOptions);
@@ -247,21 +247,21 @@ class ConceptDetailModel extends _ResourceModel.default {
247
247
  getSourceReferencesForCurrentLanguage(availableLocales) {
248
248
  const LANGUAGE_POSTFIX_LENGTH = 3;
249
249
  if (this.data.sourceReferences) {
250
- var _context1, _context12;
251
- const availableLanguagesInSourceReferences = (0, _map.default)(_context1 = this.data.sourceReferences).call(_context1, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
250
+ var _context10, _context13;
251
+ const availableLanguagesInSourceReferences = (0, _map.default)(_context10 = this.data.sourceReferences).call(_context10, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
252
252
  const currentLanguagePostfix = `_${this.locale}`;
253
253
  if ((0, _includes.default)(availableLanguagesInSourceReferences).call(availableLanguagesInSourceReferences, currentLanguagePostfix)) {
254
- var _context10;
254
+ var _context11;
255
255
  // return all sourceReferences that end with language that is selected
256
- return (0, _filter.default)(_context10 = this.data.sourceReferences).call(_context10, sourceReference => {
257
- var _context11;
258
- return (0, _endsWith.default)(_context11 = sourceReference.type).call(_context11, currentLanguagePostfix);
256
+ return (0, _filter.default)(_context11 = this.data.sourceReferences).call(_context11, sourceReference => {
257
+ var _context12;
258
+ return (0, _endsWith.default)(_context12 = sourceReference.type).call(_context12, currentLanguagePostfix);
259
259
  });
260
260
  }
261
261
  const availableLanguages = (0, _map.default)(availableLocales).call(availableLocales, locale => `_${locale.split("-")[0]}`);
262
262
 
263
263
  // return all sourceReferences that do not end with language postfix
264
- return (0, _filter.default)(_context12 = this.data.sourceReferences).call(_context12, sourceReference => !(0, _includes.default)(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
264
+ return (0, _filter.default)(_context13 = this.data.sourceReferences).call(_context13, sourceReference => !(0, _includes.default)(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
265
265
  }
266
266
  return [];
267
267
  }