@beinformed/ui 1.35.0 → 1.36.1

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 (315) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/esm/constants/LayoutHintConfig.js +9 -0
  3. package/esm/constants/LayoutHintConfig.js.map +1 -1
  4. package/esm/constants/LayoutHints.js +5 -0
  5. package/esm/constants/LayoutHints.js.map +1 -1
  6. package/esm/models/actions/ActionCollection.js +1 -1
  7. package/esm/models/actions/ActionCollection.js.map +1 -1
  8. package/esm/models/links/normalizeLinkJSON.js +20 -5
  9. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  10. package/lib/constants/Constants.js +33 -66
  11. package/lib/constants/Constants.js.map +1 -1
  12. package/lib/constants/LayoutHintConfig.js +10 -2
  13. package/lib/constants/LayoutHintConfig.js.flow +9 -0
  14. package/lib/constants/LayoutHintConfig.js.map +1 -1
  15. package/lib/constants/LayoutHints.js +24 -37
  16. package/lib/constants/LayoutHints.js.flow +5 -0
  17. package/lib/constants/LayoutHints.js.map +1 -1
  18. package/lib/constants/Settings.js +3 -6
  19. package/lib/constants/Settings.js.map +1 -1
  20. package/lib/exceptions/ConfigurationException.js +1 -2
  21. package/lib/exceptions/ConfigurationException.js.map +1 -1
  22. package/lib/exceptions/IllegalArgumentException.js +1 -2
  23. package/lib/exceptions/IllegalArgumentException.js.map +1 -1
  24. package/lib/exceptions/IllegalReturnException.js +1 -2
  25. package/lib/exceptions/IllegalReturnException.js.map +1 -1
  26. package/lib/exceptions/IllegalStateException.js +1 -2
  27. package/lib/exceptions/IllegalStateException.js.map +1 -1
  28. package/lib/exceptions/JsonParseException.js +1 -2
  29. package/lib/exceptions/JsonParseException.js.map +1 -1
  30. package/lib/exceptions/MissingPropertyException.js +1 -2
  31. package/lib/exceptions/MissingPropertyException.js.map +1 -1
  32. package/lib/exceptions/NetworkException.js +1 -2
  33. package/lib/exceptions/NetworkException.js.map +1 -1
  34. package/lib/exceptions/NotAllowedUriException.js +1 -2
  35. package/lib/exceptions/NotAllowedUriException.js.map +1 -1
  36. package/lib/exceptions/NotFoundException.js +1 -2
  37. package/lib/exceptions/NotFoundException.js.map +1 -1
  38. package/lib/exceptions/ServerRequestException.js +1 -2
  39. package/lib/exceptions/ServerRequestException.js.map +1 -1
  40. package/lib/exceptions/ThemePropertyException.js +1 -2
  41. package/lib/exceptions/ThemePropertyException.js.map +1 -1
  42. package/lib/exceptions/TimeoutException.js +1 -2
  43. package/lib/exceptions/TimeoutException.js.map +1 -1
  44. package/lib/exceptions/UnauthorizedException.js +1 -2
  45. package/lib/exceptions/UnauthorizedException.js.map +1 -1
  46. package/lib/exceptions/UnsupportedOperationException.js +1 -2
  47. package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
  48. package/lib/hooks/useDeepCompareEffect.js +3 -4
  49. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  50. package/lib/i18n/Locale.js +1 -2
  51. package/lib/i18n/Locale.js.map +1 -1
  52. package/lib/i18n/Locales.js +2 -4
  53. package/lib/i18n/Locales.js.map +1 -1
  54. package/lib/i18n/Message.js +1 -2
  55. package/lib/i18n/Message.js.map +1 -1
  56. package/lib/i18n/index.js +2 -2
  57. package/lib/i18n/index.js.map +1 -1
  58. package/lib/i18n/languages.js +1 -2
  59. package/lib/i18n/languages.js.map +1 -1
  60. package/lib/i18n/translations/beinformed_error_messages_en.nl.js +1 -2
  61. package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  62. package/lib/i18n/translations/beinformed_error_messages_nl.nl.js +1 -2
  63. package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  64. package/lib/i18n/withMessage.js +1 -2
  65. package/lib/i18n/withMessage.js.map +1 -1
  66. package/lib/models/actions/ActionCollection.js +1 -1
  67. package/lib/models/actions/ActionCollection.js.flow +3 -1
  68. package/lib/models/actions/ActionCollection.js.map +1 -1
  69. package/lib/models/application/__tests__/Application.spec.js.flow +1 -1
  70. package/lib/models/attributes/AttributeCollection.js +1 -2
  71. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  72. package/lib/models/attributes/AttributeContent.js +1 -2
  73. package/lib/models/attributes/AttributeContent.js.map +1 -1
  74. package/lib/models/attributes/AttributeDataHelper.js +1 -2
  75. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  76. package/lib/models/attributes/ChoiceAttributeOptionCollection.js +1 -2
  77. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  78. package/lib/models/attributes/ChoiceAttributeOptionModel.js +1 -2
  79. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  80. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -2
  81. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  82. package/lib/models/attributes/CompositeAttributeModel.js +1 -2
  83. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  84. package/lib/models/attributes/DatetimeAttributeModel.js +1 -2
  85. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  86. package/lib/models/attributes/_createAttribute.js +1 -2
  87. package/lib/models/attributes/_createAttribute.js.map +1 -1
  88. package/lib/models/attributes/input-constraints/BSNConstraint.js +1 -2
  89. package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  90. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +1 -2
  91. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  92. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +1 -2
  93. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  94. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +1 -2
  95. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  96. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -2
  97. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  98. package/lib/models/attributes/input-constraints/FileExtensionConstraint.js +1 -2
  99. package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  100. package/lib/models/attributes/input-constraints/FileSizeConstraint.js +1 -2
  101. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  102. package/lib/models/attributes/input-constraints/IBANConstraint.js +1 -2
  103. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  104. package/lib/models/attributes/input-constraints/MandatoryConstraint.js +1 -2
  105. package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  106. package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js +1 -2
  107. package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  108. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js +1 -2
  109. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  110. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js +1 -2
  111. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  112. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +1 -2
  113. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  114. package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js +1 -2
  115. package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  116. package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +1 -2
  117. package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  118. package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +1 -2
  119. package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  120. package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +1 -2
  121. package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  122. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +1 -2
  123. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  124. package/lib/models/attributes/input-constraints/RangeConstraint.js +1 -2
  125. package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  126. package/lib/models/attributes/input-constraints/RegexConstraint.js +1 -2
  127. package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  128. package/lib/models/attributes/input-constraints/StringLengthConstraint.js +1 -2
  129. package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  130. package/lib/models/attributes/input-constraints/XMLConstraint.js +1 -2
  131. package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  132. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js +1 -2
  133. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  134. package/lib/models/attributes/layouthint-rules/DependentAttribute.js +1 -2
  135. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  136. package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +1 -2
  137. package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  138. package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +1 -2
  139. package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  140. package/lib/models/base/BaseCollection.js +1 -2
  141. package/lib/models/base/BaseCollection.js.map +1 -1
  142. package/lib/models/base/BaseModel.js +1 -2
  143. package/lib/models/base/BaseModel.js.map +1 -1
  144. package/lib/models/base/ResourceCollection.js +1 -2
  145. package/lib/models/base/ResourceCollection.js.map +1 -1
  146. package/lib/models/base/ResourceModel.js +1 -2
  147. package/lib/models/base/ResourceModel.js.map +1 -1
  148. package/lib/models/concepts/BusinessScenarioModel.js +1 -2
  149. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  150. package/lib/models/concepts/ConceptTypeDetailModel.js +1 -2
  151. package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  152. package/lib/models/concepts/SourceReferenceModel.js +1 -2
  153. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  154. package/lib/models/content/SectionModel.js +1 -2
  155. package/lib/models/content/SectionModel.js.map +1 -1
  156. package/lib/models/contentconfiguration/ContentConfigurationElements.js +1 -2
  157. package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  158. package/lib/models/contentconfiguration/ContentConfigurationEndResults.js +1 -2
  159. package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  160. package/lib/models/contentconfiguration/ContentConfigurationQuestions.js +1 -2
  161. package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  162. package/lib/models/contentconfiguration/ContentConfigurationResults.js +1 -2
  163. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  164. package/lib/models/error/ErrorModel.js +1 -2
  165. package/lib/models/error/ErrorModel.js.map +1 -1
  166. package/lib/models/form/FormModel.js +1 -2
  167. package/lib/models/form/FormModel.js.map +1 -1
  168. package/lib/models/href/Href.js +1 -2
  169. package/lib/models/href/Href.js.map +1 -1
  170. package/lib/models/index.js +2 -2
  171. package/lib/models/index.js.map +1 -1
  172. package/lib/models/links/LinkModel.js +1 -2
  173. package/lib/models/links/LinkModel.js.map +1 -1
  174. package/lib/models/links/__tests__/normalizeLinkJSON.spec.js.flow +2 -1
  175. package/lib/models/links/normalizeLinkJSON.js +20 -7
  176. package/lib/models/links/normalizeLinkJSON.js.flow +20 -4
  177. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  178. package/lib/models/list/ListItemCollection.js +1 -2
  179. package/lib/models/list/ListItemCollection.js.map +1 -1
  180. package/lib/models/lookup/LookupOptionCollection.js +1 -2
  181. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  182. package/lib/models/parameter/Parameter.js +1 -2
  183. package/lib/models/parameter/Parameter.js.map +1 -1
  184. package/lib/models/resolveModel.js +1 -2
  185. package/lib/models/resolveModel.js.map +1 -1
  186. package/lib/models/sorting/SortOptionModel.js +1 -2
  187. package/lib/models/sorting/SortOptionModel.js.map +1 -1
  188. package/lib/models/sorting/SortingModel.js +1 -2
  189. package/lib/models/sorting/SortingModel.js.map +1 -1
  190. package/lib/models/taskgroup/__tests__/TaskGroupModel.spec.js.flow +17 -0
  191. package/lib/models/user/UserServicesModel.js +1 -2
  192. package/lib/models/user/UserServicesModel.js.map +1 -1
  193. package/lib/modularui/Authenticate.js +1 -2
  194. package/lib/modularui/Authenticate.js.map +1 -1
  195. package/lib/modularui/CaptchaRequest.js +1 -2
  196. package/lib/modularui/CaptchaRequest.js.map +1 -1
  197. package/lib/modularui/ModularUIError.js +1 -2
  198. package/lib/modularui/ModularUIError.js.map +1 -1
  199. package/lib/modularui/ModularUIRequest.js +1 -2
  200. package/lib/modularui/ModularUIRequest.js.map +1 -1
  201. package/lib/modularui/ModularUIResponse.js +1 -2
  202. package/lib/modularui/ModularUIResponse.js.map +1 -1
  203. package/lib/modularui/UploadRequest.js +1 -2
  204. package/lib/modularui/UploadRequest.js.map +1 -1
  205. package/lib/react/ErrorBoundary.js +1 -2
  206. package/lib/react/ErrorBoundary.js.map +1 -1
  207. package/lib/react/ErrorBoundaryFallback.js +1 -2
  208. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  209. package/lib/react-client/rehydrate.js +1 -2
  210. package/lib/react-client/rehydrate.js.map +1 -1
  211. package/lib/react-server/createSSRComplete.js +1 -2
  212. package/lib/react-server/createSSRComplete.js.map +1 -1
  213. package/lib/react-server/htmlpage.js +1 -2
  214. package/lib/react-server/htmlpage.js.map +1 -1
  215. package/lib/react-server/renderSSRComplete.js +1 -2
  216. package/lib/react-server/renderSSRComplete.js.map +1 -1
  217. package/lib/react-server/renderSSRMinimal.js +1 -2
  218. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  219. package/lib/react-server/serverNoSSR.js +1 -2
  220. package/lib/react-server/serverNoSSR.js.map +1 -1
  221. package/lib/react-server/serverSSR.js +1 -2
  222. package/lib/react-server/serverSSR.js.map +1 -1
  223. package/lib/react-server/serverUtil.js +2 -2
  224. package/lib/react-server/serverUtil.js.map +1 -1
  225. package/lib/react-theme/ThemeProvider.js +1 -2
  226. package/lib/react-theme/ThemeProvider.js.map +1 -1
  227. package/lib/react-theme/createTheme.js +1 -2
  228. package/lib/react-theme/createTheme.js.map +1 -1
  229. package/lib/redux/_modularui/ModularUIConnector.js +1 -2
  230. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  231. package/lib/redux/_modularui/ModularUISelectors.js +1 -2
  232. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  233. package/lib/redux/_modularui/withModularUI.js +1 -2
  234. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  235. package/lib/redux/_router/RouterConnectors.js +5 -10
  236. package/lib/redux/_router/RouterConnectors.js.map +1 -1
  237. package/lib/redux/connectors/Application.js +1 -2
  238. package/lib/redux/connectors/Application.js.map +1 -1
  239. package/lib/redux/connectors/Breadcrumb.js +1 -2
  240. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  241. package/lib/redux/connectors/CaseView.js +1 -2
  242. package/lib/redux/connectors/CaseView.js.map +1 -1
  243. package/lib/redux/connectors/ConceptDetail.js +1 -2
  244. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  245. package/lib/redux/connectors/ContentBrowser.js +1 -2
  246. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  247. package/lib/redux/connectors/ContentDetail.js +1 -2
  248. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  249. package/lib/redux/connectors/ContentDetailSection.js +1 -2
  250. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  251. package/lib/redux/connectors/Form.js +1 -2
  252. package/lib/redux/connectors/Form.js.map +1 -1
  253. package/lib/redux/connectors/FormAttributeSet.js +1 -2
  254. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  255. package/lib/redux/connectors/ListDetail.js +1 -2
  256. package/lib/redux/connectors/ListDetail.js.map +1 -1
  257. package/lib/redux/connectors/Modal.js +1 -2
  258. package/lib/redux/connectors/Modal.js.map +1 -1
  259. package/lib/redux/connectors/ModelCatalog.js +1 -2
  260. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  261. package/lib/redux/connectors/Notification.js +1 -2
  262. package/lib/redux/connectors/Notification.js.map +1 -1
  263. package/lib/redux/connectors/PanelRenderer.js +1 -2
  264. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  265. package/lib/redux/connectors/Progress.js +1 -2
  266. package/lib/redux/connectors/Progress.js.map +1 -1
  267. package/lib/redux/connectors/ProgressIndicator.js +1 -2
  268. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  269. package/lib/redux/connectors/QuickSearch.js +1 -2
  270. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  271. package/lib/redux/connectors/SignIn.js +1 -2
  272. package/lib/redux/connectors/SignIn.js.map +1 -1
  273. package/lib/redux/connectors/SignOut.js +1 -2
  274. package/lib/redux/connectors/SignOut.js.map +1 -1
  275. package/lib/redux/connectors/Tab.js +1 -2
  276. package/lib/redux/connectors/Tab.js.map +1 -1
  277. package/lib/redux/reducers/AuthReducer.js +1 -2
  278. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  279. package/lib/redux/reducers/ErrorReducer.js +1 -2
  280. package/lib/redux/reducers/ErrorReducer.js.map +1 -1
  281. package/lib/redux/reducers/ModalsReducer.js +1 -2
  282. package/lib/redux/reducers/ModalsReducer.js.map +1 -1
  283. package/lib/redux/reducers/NotificationReducer.js +1 -2
  284. package/lib/redux/reducers/NotificationReducer.js.map +1 -1
  285. package/lib/redux/reducers/PreferencesReducer.js +1 -2
  286. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  287. package/lib/redux/reducers/ProgressIndicatorReducer.js +1 -2
  288. package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  289. package/lib/redux/store/configureStore.js +1 -2
  290. package/lib/redux/store/configureStore.js.map +1 -1
  291. package/lib/utils/browser/Cache.js +1 -2
  292. package/lib/utils/browser/Cache.js.map +1 -1
  293. package/lib/utils/datetime/DateTimeUtil.js +4 -8
  294. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  295. package/lib/utils/fetch/universalFetch.js +1 -2
  296. package/lib/utils/fetch/universalFetch.js.map +1 -1
  297. package/lib/utils/fetch/xhr.js +1 -2
  298. package/lib/utils/fetch/xhr.js.map +1 -1
  299. package/lib/utils/helpers/createUUID.js +1 -2
  300. package/lib/utils/helpers/createUUID.js.map +1 -1
  301. package/lib/utils/number/DecimalFormat.js +1 -2
  302. package/lib/utils/number/DecimalFormat.js.map +1 -1
  303. package/lib/utils/number/formatValue.js +1 -2
  304. package/lib/utils/number/formatValue.js.map +1 -1
  305. package/package.json +11 -10
  306. package/src/constants/LayoutHintConfig.js +9 -0
  307. package/src/constants/LayoutHints.js +5 -0
  308. package/src/models/actions/ActionCollection.js +3 -1
  309. package/src/models/application/__tests__/Application.spec.js +1 -1
  310. package/src/models/application/__tests__/webappContributions.json +2 -1
  311. package/src/models/links/__tests__/normalizeLinkJSON.spec.js +2 -1
  312. package/src/models/links/normalizeLinkJSON.js +20 -4
  313. package/src/models/taskgroup/__tests__/TaskGroupModel.spec.js +17 -0
  314. package/src/models/taskgroup/__tests__/taskgroup.json +25 -0
  315. package/src/models/taskgroup/__tests__/taskgroupContributions.json +23 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_ActionModel","ActionCollection","BaseCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_find","default","call","name","push","ActionModel","getActionByKey","key","_context","newCollection","_filter","action","first","getActionsByType","type","_context2","_includes","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_map","selfhref","join","exports"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) => actionContribution.name === actionData.name,\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_ActionModel","ActionCollection","BaseCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_find","default","call","name","type","push","ActionModel","getActionByKey","key","_context","newCollection","_filter","action","first","getActionsByType","_context2","_includes","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_map","selfhref","join","exports"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) =>\n actionContribution.name === actionData.name &&\n actionContribution.type !== \"service-operation\",\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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"}
@@ -37,7 +37,7 @@ describe("application", () => {
37
37
 
38
38
  expect(application).toBeInstanceOf(ApplicationModel);
39
39
  expect(application.label).toBe("Webapp");
40
- expect(application.tabs.size).toBe(4);
40
+ expect(application.tabs.size).toBe(3);
41
41
  expect(application.getInitialChildModelLinks()).toHaveLength(1);
42
42
  expect(application.modelcatalog.label).toBe("Model catalog");
43
43
 
@@ -275,6 +275,5 @@ class AttributeCollection extends _ResourceCollection.default {
275
275
  return data;
276
276
  }
277
277
  }
278
- var _default = AttributeCollection;
279
- exports.default = _default;
278
+ var _default = exports.default = AttributeCollection;
280
279
  //# sourceMappingURL=AttributeCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeCollection.js","names":["_objects","require","_ResourceCollection","_interopRequireDefault","_createAttribute","_ChoiceAttributeModel","_CompositeAttributeModel","_ContentConfiguration","_exceptions","AttributeCollection","ResourceCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_keys","default","attribute","createAttribute","has","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filter","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_find","attr","equals","CompositeAttributeModel","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","ChoiceAttributeModel","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","ConfigurationException","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWith","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_map","isVisible","getEmptyFormData","attributeFormData","_default","exports"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AttributeCollection.js","names":["_objects","require","_ResourceCollection","_interopRequireDefault","_createAttribute","_ChoiceAttributeModel","_CompositeAttributeModel","_ContentConfiguration","_exceptions","AttributeCollection","ResourceCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_keys","default","attribute","createAttribute","has","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filter","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_find","attr","equals","CompositeAttributeModel","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","ChoiceAttributeModel","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","ConfigurationException","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWith","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_map","isVisible","getEmptyFormData","attributeFormData","_default","exports"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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"}
@@ -199,6 +199,5 @@ class AttributeContent {
199
199
  return referredSections;
200
200
  }
201
201
  }
202
- var _default = AttributeContent;
203
- exports.default = _default;
202
+ var _default = exports.default = AttributeContent;
204
203
  //# sourceMappingURL=AttributeContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeContent.js","names":["_text","require","_Settings","_SectionModel","_interopRequireDefault","_LayoutHintCollection","_utils","AttributeContent","constructor","content","_defineProperty2","default","_content","fromData","hasAllContentInData","header","headerLabel","headerDescription","label","description","isPlainObject","message","elements","_context","_context2","_map","_filter","call","element","propertyElement","layouthint","properties","LayoutHintCollection","textFragmentElement","textfragments","textfragment","text","retrieveText","contentElement","sections","section","SectionModel","getContentElements","elementName","_context3","getContentElementCollections","collectionName","_context4","_context5","_flat","getContentElementCollectionByLabels","labels","_context6","_context7","_context8","_includes","getConceptPropertiesByLabels","getTextFragmentsByLabels","getSectionsByType","types","_context9","type","getSectionsByLabels","getReferredSections","referredSections","push","_default","exports"],"sources":["../../../src/models/attributes/AttributeContent.js"],"sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\n/**\n */\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements\n .filter((element) => element !== null)\n .map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null),\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string,\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>,\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\",\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData,\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\",\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData,\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\",\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel,\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AttributeContent.js","names":["_text","require","_Settings","_SectionModel","_interopRequireDefault","_LayoutHintCollection","_utils","AttributeContent","constructor","content","_defineProperty2","default","_content","fromData","hasAllContentInData","header","headerLabel","headerDescription","label","description","isPlainObject","message","elements","_context","_context2","_map","_filter","call","element","propertyElement","layouthint","properties","LayoutHintCollection","textFragmentElement","textfragments","textfragment","text","retrieveText","contentElement","sections","section","SectionModel","getContentElements","elementName","_context3","getContentElementCollections","collectionName","_context4","_context5","_flat","getContentElementCollectionByLabels","labels","_context6","_context7","_context8","_includes","getConceptPropertiesByLabels","getTextFragmentsByLabels","getSectionsByType","types","_context9","type","getSectionsByLabels","getReferredSections","referredSections","push","_default","exports"],"sources":["../../../src/models/attributes/AttributeContent.js"],"sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\n/**\n */\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements\n .filter((element) => element !== null)\n .map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null),\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string,\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>,\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\",\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData,\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\",\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData,\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\",\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel,\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"mappings":"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"}
@@ -253,6 +253,5 @@ class AttributeDataHelper {
253
253
  };
254
254
  }
255
255
  }
256
- var _default = AttributeDataHelper;
257
- exports.default = _default;
256
+ var _default = exports.default = AttributeDataHelper;
258
257
  //# sourceMappingURL=AttributeDataHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeDataHelper.js","names":["_full","require","_pick","_interopRequireDefault","_objects","AttributeDataHelper","constructor","data","key","childrenKeys","_defineProperty2","default","_key","Array","isArray","_attribute","_find","call","attr","elementid","name","param","_value","getValue","attributeData","klona","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","_context","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","arguments","length","childrenIsArray","value","_context2","_map","attribute","_values","suggestions","suggestion","options","_context3","_context4","_filter","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","_keys","getData","_context5","child","subChild","_default","exports"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>,\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key,\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string,\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey,\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object,\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children,\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = [],\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n }),\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData(),\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AttributeDataHelper.js","names":["_full","require","_pick","_interopRequireDefault","_objects","AttributeDataHelper","constructor","data","key","childrenKeys","_defineProperty2","default","_key","Array","isArray","_attribute","_find","call","attr","elementid","name","param","_value","getValue","attributeData","klona","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","_context","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","arguments","length","childrenIsArray","value","_context2","_map","attribute","_values","suggestions","suggestion","options","_context3","_context4","_filter","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","_keys","getData","_context5","child","subChild","_default","exports"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>,\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key,\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string,\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey,\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object,\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children,\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = [],\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n }),\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData(),\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
@@ -283,6 +283,5 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
283
283
  });
284
284
  }
285
285
  }
286
- var _default = ChoiceAttributeOptionCollection;
287
- exports.default = _default;
286
+ var _default = exports.default = ChoiceAttributeOptionCollection;
288
287
  //# sourceMappingURL=ChoiceAttributeOptionCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ChoiceAttributeOptionModel","_ListHeaderModel","_DateTimeUtil","ChoiceAttributeOptionCollection","ResourceCollection","constructor","arguments","_defineProperty2","default","sortOptions","_sortOptions","collection","forEach","option","children","create","data","length","undefined","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","_context","_sort","call","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","_context2","_context3","push","_map","_filter","selected","key","toString","getOptionCount","code","foundOption","_find","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","_context4","newOption","clone","select","toggle","deselect","action","_context5","setReferenceDate","date","_context6","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result","_default","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key),\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate,\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate,\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = [],\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object,\n ): ChoiceAttributeOptionCollection {\n const optionValue = value == null ? [] : [value.toString()];\n\n this.addBooleanOption(\"true\", \"Yes\", optionValue, contributions.options);\n this.addBooleanOption(\"false\", \"No\", optionValue, contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate,\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option: ChoiceAttributeOptionModel) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false,\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code),\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code,\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n\n /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>,\n ) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ChoiceAttributeOptionModel","_ListHeaderModel","_DateTimeUtil","ChoiceAttributeOptionCollection","ResourceCollection","constructor","arguments","_defineProperty2","default","sortOptions","_sortOptions","collection","forEach","option","children","create","data","length","undefined","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","_context","_sort","call","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","_context2","_context3","push","_map","_filter","selected","key","toString","getOptionCount","code","foundOption","_find","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","_context4","newOption","clone","select","toggle","deselect","action","_context5","setReferenceDate","date","_context6","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result","_default","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key),\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate,\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate,\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = [],\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object,\n ): ChoiceAttributeOptionCollection {\n const optionValue = value == null ? [] : [value.toString()];\n\n this.addBooleanOption(\"true\", \"Yes\", optionValue, contributions.options);\n this.addBooleanOption(\"false\", \"No\", optionValue, contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate,\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option: ChoiceAttributeOptionModel) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false,\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code),\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code,\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n\n /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>,\n ) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
@@ -317,6 +317,5 @@ class ChoiceAttributeOptionModel extends _BaseModel.default {
317
317
  return this._content;
318
318
  }
319
319
  }
320
- var _default = ChoiceAttributeOptionModel;
321
- exports.default = _default;
320
+ var _default = exports.default = ChoiceAttributeOptionModel;
322
321
  //# sourceMappingURL=ChoiceAttributeOptionModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceAttributeOptionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ChoiceAttributeOptionCollection","_DateTimeUtil","_objects","_Constants","_LayoutHints","_Settings","_LinkCollection","_AttributeCollection","_ConceptDetailModel","_AttributeContent","ChoiceAttributeOptionModel","BaseModel","constructor","selectedValues","arguments","length","undefined","option","referenceDate","DateUtil","now","_defineProperty2","default","code","contributions","key","_isSelected","_includes","call","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","createFromListItemModel","listitem","id","toString","attributeCollection","clone","links","isChoiceAttributeOptionModel","getInitialChildModelLinks","initialLinks","hasContentFromData","conceptLink","push","children","setChildModels","models","conceptHref","href","concept","_find","model","selfhref","equalsWithParameters","_code","equals","getContribution","has","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","getContentConfiguredLabel","contentConfiguration","configuredLabelProperties","labelConfig","types","_context","configuredLabels","_filter","getLabelElementByIds","configuredLabel","value","_context2","_map","configuredLabelProperty","some","_id","selected","count","ChoiceAttributeOptionCollection","create","options","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","isBooleanType","hasAlternativeLabel","mergeOption","withOption","mergeOptions","hasAllContentInData","_default","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel,\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection.clone();\n option.links = listitem.links.clone();\n\n return option;\n }\n\n /**\n * Indicates that this a choice attribute option model, used when adding options to a choice attribute\n * @returns {boolean}\n */\n get isChoiceAttributeOptionModel(): boolean {\n return true;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref),\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\",\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate,\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate,\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChoiceAttributeOptionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ChoiceAttributeOptionCollection","_DateTimeUtil","_objects","_Constants","_LayoutHints","_Settings","_LinkCollection","_AttributeCollection","_ConceptDetailModel","_AttributeContent","ChoiceAttributeOptionModel","BaseModel","constructor","selectedValues","arguments","length","undefined","option","referenceDate","DateUtil","now","_defineProperty2","default","code","contributions","key","_isSelected","_includes","call","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","createFromListItemModel","listitem","id","toString","attributeCollection","clone","links","isChoiceAttributeOptionModel","getInitialChildModelLinks","initialLinks","hasContentFromData","conceptLink","push","children","setChildModels","models","conceptHref","href","concept","_find","model","selfhref","equalsWithParameters","_code","equals","getContribution","has","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","getContentConfiguredLabel","contentConfiguration","configuredLabelProperties","labelConfig","types","_context","configuredLabels","_filter","getLabelElementByIds","configuredLabel","value","_context2","_map","configuredLabelProperty","some","_id","selected","count","ChoiceAttributeOptionCollection","create","options","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","isBooleanType","hasAlternativeLabel","mergeOption","withOption","mergeOptions","hasAllContentInData","_default","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel,\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection.clone();\n option.links = listitem.links.clone();\n\n return option;\n }\n\n /**\n * Indicates that this a choice attribute option model, used when adding options to a choice attribute\n * @returns {boolean}\n */\n get isChoiceAttributeOptionModel(): boolean {\n return true;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref),\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\",\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now(),\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate,\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate,\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"mappings":"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"}
@@ -185,6 +185,5 @@ class CompositeAttributeChildCollection extends _ResourceCollection.default {
185
185
  return this.collection.some(child => child.hasValue());
186
186
  }
187
187
  }
188
- var _default = CompositeAttributeChildCollection;
189
- exports.default = _default;
188
+ var _default = exports.default = CompositeAttributeChildCollection;
190
189
  //# sourceMappingURL=CompositeAttributeChildCollection.js.map