@beinformed/ui 1.45.0 → 1.45.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 (623) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/esm/builder/index.js.map +1 -1
  3. package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
  4. package/esm/constants/Constants.js.map +1 -1
  5. package/esm/constants/LayoutHintConfig.js.map +1 -1
  6. package/esm/constants/LayoutHints.js.map +1 -1
  7. package/esm/constants/Settings.js.map +1 -1
  8. package/esm/constants/index.js.map +1 -1
  9. package/esm/exceptions/ConfigurationException.js.map +1 -1
  10. package/esm/exceptions/FetchException.js.map +1 -1
  11. package/esm/exceptions/IllegalArgumentException.js.map +1 -1
  12. package/esm/exceptions/IllegalReturnException.js.map +1 -1
  13. package/esm/exceptions/IllegalStateException.js.map +1 -1
  14. package/esm/exceptions/JsonParseException.js.map +1 -1
  15. package/esm/exceptions/MissingPropertyException.js.map +1 -1
  16. package/esm/exceptions/NetworkException.js.map +1 -1
  17. package/esm/exceptions/NotAllowedUriException.js.map +1 -1
  18. package/esm/exceptions/NotFoundException.js.map +1 -1
  19. package/esm/exceptions/ServerRequestException.js.map +1 -1
  20. package/esm/exceptions/ThemePropertyException.js.map +1 -1
  21. package/esm/exceptions/TimeoutException.js.map +1 -1
  22. package/esm/exceptions/UnauthorizedException.js.map +1 -1
  23. package/esm/exceptions/UnsupportedOperationException.js.map +1 -1
  24. package/esm/exceptions/index.js.map +1 -1
  25. package/esm/hooks/index.js.map +1 -1
  26. package/esm/hooks/useAllFormsOnModel.js.map +1 -1
  27. package/esm/hooks/useAuthentication.js.map +1 -1
  28. package/esm/hooks/useContent.js.map +1 -1
  29. package/esm/hooks/useDeepCompareEffect.js.map +1 -1
  30. package/esm/hooks/useForm.js.map +1 -1
  31. package/esm/hooks/useI18n.js.map +1 -1
  32. package/esm/hooks/useModal.js.map +1 -1
  33. package/esm/hooks/useModelCatalog.js.map +1 -1
  34. package/esm/hooks/useModels.js.map +1 -1
  35. package/esm/hooks/useModularUI.js.map +1 -1
  36. package/esm/hooks/useModularUIBasic.js.map +1 -1
  37. package/esm/hooks/useModularUIModel.js.map +1 -1
  38. package/esm/hooks/useModularUIRequest.js.map +1 -1
  39. package/esm/hooks/useNotification.js.map +1 -1
  40. package/esm/hooks/usePreference.js.map +1 -1
  41. package/esm/hooks/useProgressIndicator.js.map +1 -1
  42. package/esm/hooks/useRouter.js.map +1 -1
  43. package/esm/i18n/Locale.js.map +1 -1
  44. package/esm/i18n/Locales.js.map +1 -1
  45. package/esm/i18n/Message.js.map +1 -1
  46. package/esm/i18n/index.js.map +1 -1
  47. package/esm/i18n/languages.js.map +1 -1
  48. package/esm/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  49. package/esm/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  50. package/esm/i18n/types.js.map +1 -1
  51. package/esm/i18n/withMessage.js.map +1 -1
  52. package/esm/index.js.map +1 -1
  53. package/esm/models/actions/ActionCollection.js.map +1 -1
  54. package/esm/models/actions/ActionModel.js.map +1 -1
  55. package/esm/models/application/ApplicationModel.js.map +1 -1
  56. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  57. package/esm/models/attributes/AttributeContent.js.map +1 -1
  58. package/esm/models/attributes/AttributeDataHelper.js +12 -2
  59. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  60. package/esm/models/attributes/AttributeModel.js.map +1 -1
  61. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  62. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  63. package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
  64. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  65. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  66. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  67. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  68. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  69. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  70. package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
  71. package/esm/models/attributes/LabelAttributeModel.js.map +1 -1
  72. package/esm/models/attributes/MemoAttributeModel.js.map +1 -1
  73. package/esm/models/attributes/MoneyAttributeModel.js.map +1 -1
  74. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  75. package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
  76. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  77. package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
  78. package/esm/models/attributes/XMLAttributeModel.js.map +1 -1
  79. package/esm/models/attributes/_createAttribute.js.map +1 -1
  80. package/esm/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  81. package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  82. package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  83. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  84. package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  85. package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  86. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  87. package/esm/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  88. package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  89. package/esm/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  90. package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  91. package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  92. package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  93. package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  94. package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  95. package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  96. package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  97. package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  98. package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  99. package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  100. package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  101. package/esm/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  102. package/esm/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  103. package/esm/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  104. package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  105. package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  106. package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  107. package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  108. package/esm/models/base/BaseCollection.js.map +1 -1
  109. package/esm/models/base/BaseModel.js.map +1 -1
  110. package/esm/models/base/ResourceCollection.js.map +1 -1
  111. package/esm/models/base/ResourceModel.js.map +1 -1
  112. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  113. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  114. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  115. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  116. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  117. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  118. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  119. package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  120. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  121. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  122. package/esm/models/content/ContentIndexModel.js.map +1 -1
  123. package/esm/models/content/ContentLinkModel.js.map +1 -1
  124. package/esm/models/content/ContentModel.js.map +1 -1
  125. package/esm/models/content/ContentTOCModel.js.map +1 -1
  126. package/esm/models/content/ContentTypeModel.js.map +1 -1
  127. package/esm/models/content/SectionModel.js.map +1 -1
  128. package/esm/models/content/SubSectionModel.js.map +1 -1
  129. package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  130. package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  131. package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  132. package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  133. package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  134. package/esm/models/detail/DetailModel.js.map +1 -1
  135. package/esm/models/error/ErrorCollection.js.map +1 -1
  136. package/esm/models/error/ErrorModel.js.map +1 -1
  137. package/esm/models/error/ErrorResponse.js.map +1 -1
  138. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  139. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  140. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  141. package/esm/models/filters/FilterCollection.js.map +1 -1
  142. package/esm/models/filters/FilterModel.js.map +1 -1
  143. package/esm/models/filters/RangeFilterModel.js.map +1 -1
  144. package/esm/models/filters/StringFilterModel.js.map +1 -1
  145. package/esm/models/form/FormModel.js.map +1 -1
  146. package/esm/models/form/FormObjectModel.js.map +1 -1
  147. package/esm/models/grouping/GroupingModel.js.map +1 -1
  148. package/esm/models/href/Href.js.map +1 -1
  149. package/esm/models/href/ListHref.js.map +1 -1
  150. package/esm/models/index.js.map +1 -1
  151. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  152. package/esm/models/links/LinkCollection.js.map +1 -1
  153. package/esm/models/links/LinkModel.js.map +1 -1
  154. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  155. package/esm/models/list/ListDetailModel.js.map +1 -1
  156. package/esm/models/list/ListHeaderModel.js.map +1 -1
  157. package/esm/models/list/ListItemCollection.js.map +1 -1
  158. package/esm/models/list/ListItemModel.js.map +1 -1
  159. package/esm/models/list/ListModel.js.map +1 -1
  160. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  161. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  162. package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  163. package/esm/models/paging/PagesizeModel.js.map +1 -1
  164. package/esm/models/paging/PagingModel.js.map +1 -1
  165. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  166. package/esm/models/parameter/Parameter.js.map +1 -1
  167. package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
  168. package/esm/models/resolveModel.js.map +1 -1
  169. package/esm/models/search/CaseSearchModel.js.map +1 -1
  170. package/esm/models/sorting/SortOptionModel.js.map +1 -1
  171. package/esm/models/sorting/SortingModel.js.map +1 -1
  172. package/esm/models/tab/TabModel.js.map +1 -1
  173. package/esm/models/taskgroup/TaskGroupCollection.js.map +1 -1
  174. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  175. package/esm/models/types.js.map +1 -1
  176. package/esm/models/user/UserModel.js.map +1 -1
  177. package/esm/models/user/UserProfileModel.js.map +1 -1
  178. package/esm/models/user/UserServicesModel.js.map +1 -1
  179. package/esm/modularui/Authenticate.js.map +1 -1
  180. package/esm/modularui/CaptchaRequest.js.map +1 -1
  181. package/esm/modularui/ModularUIError.js.map +1 -1
  182. package/esm/modularui/ModularUIRequest.js.map +1 -1
  183. package/esm/modularui/ModularUIResponse.js.map +1 -1
  184. package/esm/modularui/UploadRequest.js.map +1 -1
  185. package/esm/modularui/index.js.map +1 -1
  186. package/esm/modularui/types.js.map +1 -1
  187. package/esm/react/ErrorBoundary.js.map +1 -1
  188. package/esm/react/ErrorBoundaryFallback.js +2 -1
  189. package/esm/react/ErrorBoundaryFallback.js.map +1 -1
  190. package/esm/react/index.js.map +1 -1
  191. package/esm/react/utils.js.map +1 -1
  192. package/esm/react-client/Init.js.map +1 -1
  193. package/esm/react-client/client.js.map +1 -1
  194. package/esm/react-client/contextPath.js.map +1 -1
  195. package/esm/react-client/index.js.map +1 -1
  196. package/esm/react-client/rehydrate.js.map +1 -1
  197. package/esm/react-server/contextPath.js.map +1 -1
  198. package/esm/react-server/createSSRComplete.js.map +1 -1
  199. package/esm/react-server/htmlpage.js.map +1 -1
  200. package/esm/react-server/index.js.map +1 -1
  201. package/esm/react-server/renderSSRComplete.js.map +1 -1
  202. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  203. package/esm/react-server/requestInformation.js.map +1 -1
  204. package/esm/react-server/serverNoSSR.js.map +1 -1
  205. package/esm/react-server/serverSSR.js.map +1 -1
  206. package/esm/react-server/serverUtil.js.map +1 -1
  207. package/esm/react-theme/ThemeProvider.js.map +1 -1
  208. package/esm/react-theme/createTheme.js.map +1 -1
  209. package/esm/react-theme/index.js.map +1 -1
  210. package/esm/react-theme/types.js.map +1 -1
  211. package/esm/react-theme/useTheme.js.map +1 -1
  212. package/esm/react-theme/utils/background.js.map +1 -1
  213. package/esm/react-theme/utils/colors.js.map +1 -1
  214. package/esm/react-theme/utils/contrast.js.map +1 -1
  215. package/esm/react-theme/utils/corners.js.map +1 -1
  216. package/esm/react-theme/utils/spacers.js.map +1 -1
  217. package/esm/react-theme/utils/themeProps.js.map +1 -1
  218. package/esm/redux/_i18n/I18nActions.js.map +1 -1
  219. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  220. package/esm/redux/_i18n/index.js.map +1 -1
  221. package/esm/redux/_i18n/types.js.map +1 -1
  222. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  223. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  224. package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  225. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  226. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  227. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  228. package/esm/redux/_modularui/index.js.map +1 -1
  229. package/esm/redux/_modularui/types.js.map +1 -1
  230. package/esm/redux/_modularui/withModularUI.js.map +1 -1
  231. package/esm/redux/_router/RouterActions.js.map +1 -1
  232. package/esm/redux/_router/RouterConnectors.js.map +1 -1
  233. package/esm/redux/_router/RouterMiddleware.js.map +1 -1
  234. package/esm/redux/_router/RouterReducer.js.map +1 -1
  235. package/esm/redux/_router/index.js.map +1 -1
  236. package/esm/redux/_router/types.js.map +1 -1
  237. package/esm/redux/actions/Application.js.map +1 -1
  238. package/esm/redux/actions/Authorization.js.map +1 -1
  239. package/esm/redux/actions/Error.js.map +1 -1
  240. package/esm/redux/actions/Form.js.map +1 -1
  241. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  242. package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  243. package/esm/redux/actions/FormAutosave.js.map +1 -1
  244. package/esm/redux/actions/FormAutosubmit.js.map +1 -1
  245. package/esm/redux/actions/FormValidations.js.map +1 -1
  246. package/esm/redux/actions/Modals.js.map +1 -1
  247. package/esm/redux/actions/Notification.js.map +1 -1
  248. package/esm/redux/actions/Preferences.js.map +1 -1
  249. package/esm/redux/actions/ProgressIndicator.js.map +1 -1
  250. package/esm/redux/actions/SignIn.js.map +1 -1
  251. package/esm/redux/actions/SignOut.js.map +1 -1
  252. package/esm/redux/actions/index.js.map +1 -1
  253. package/esm/redux/connectors/Application.js.map +1 -1
  254. package/esm/redux/connectors/Breadcrumb.js.map +1 -1
  255. package/esm/redux/connectors/CaseView.js.map +1 -1
  256. package/esm/redux/connectors/ConceptDetail.js.map +1 -1
  257. package/esm/redux/connectors/ContentBrowser.js.map +1 -1
  258. package/esm/redux/connectors/ContentDetail.js.map +1 -1
  259. package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
  260. package/esm/redux/connectors/Form.js.map +1 -1
  261. package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
  262. package/esm/redux/connectors/ListDetail.js.map +1 -1
  263. package/esm/redux/connectors/Modal.js.map +1 -1
  264. package/esm/redux/connectors/ModelCatalog.js.map +1 -1
  265. package/esm/redux/connectors/Notification.js.map +1 -1
  266. package/esm/redux/connectors/PanelRenderer.js.map +1 -1
  267. package/esm/redux/connectors/Preferences.js.map +1 -1
  268. package/esm/redux/connectors/Progress.js.map +1 -1
  269. package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
  270. package/esm/redux/connectors/QuickSearch.js.map +1 -1
  271. package/esm/redux/connectors/SignIn.js.map +1 -1
  272. package/esm/redux/connectors/SignOut.js.map +1 -1
  273. package/esm/redux/connectors/Tab.js.map +1 -1
  274. package/esm/redux/connectors/index.js.map +1 -1
  275. package/esm/redux/index.js.map +1 -1
  276. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  277. package/esm/redux/reducers/ErrorReducer.js.map +1 -1
  278. package/esm/redux/reducers/ModalsReducer.js.map +1 -1
  279. package/esm/redux/reducers/NotificationReducer.js.map +1 -1
  280. package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
  281. package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  282. package/esm/redux/reducers/createReducer.js.map +1 -1
  283. package/esm/redux/reducers/index.js.map +1 -1
  284. package/esm/redux/selectors/i18n.js.map +1 -1
  285. package/esm/redux/selectors/index.js.map +1 -1
  286. package/esm/redux/store/beforeRenderHooks.js.map +1 -1
  287. package/esm/redux/store/configureStore.js.map +1 -1
  288. package/esm/redux/types.js.map +1 -1
  289. package/esm/utils/browser/Cache.js.map +1 -1
  290. package/esm/utils/browser/Cookies.js.map +1 -1
  291. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  292. package/esm/utils/fetch/serverFetch.js.map +1 -1
  293. package/esm/utils/fetch/types.js.map +1 -1
  294. package/esm/utils/fetch/universalFetch.js.map +1 -1
  295. package/esm/utils/fetch/xhr.js.map +1 -1
  296. package/esm/utils/helpers/checkResource.js.map +1 -1
  297. package/esm/utils/helpers/createHash.js.map +1 -1
  298. package/esm/utils/helpers/createHref.js.map +1 -1
  299. package/esm/utils/helpers/createUUID.js.map +1 -1
  300. package/esm/utils/helpers/index.js.map +1 -1
  301. package/esm/utils/helpers/objects.js.map +1 -1
  302. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  303. package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
  304. package/esm/utils/helpers/text.js.map +1 -1
  305. package/esm/utils/index.js.map +1 -1
  306. package/esm/utils/number/DecimalFormat.js.map +1 -1
  307. package/esm/utils/number/formatValue.js.map +1 -1
  308. package/esm/utils/number/parseNumbers.js.map +1 -1
  309. package/lib/builder/index.js.map +1 -1
  310. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  311. package/lib/constants/Constants.js.map +1 -1
  312. package/lib/constants/LayoutHintConfig.js.map +1 -1
  313. package/lib/constants/LayoutHints.js.map +1 -1
  314. package/lib/constants/Settings.js.map +1 -1
  315. package/lib/constants/index.js.map +1 -1
  316. package/lib/exceptions/ConfigurationException.js.map +1 -1
  317. package/lib/exceptions/FetchException.js.map +1 -1
  318. package/lib/exceptions/IllegalArgumentException.js.map +1 -1
  319. package/lib/exceptions/IllegalReturnException.js.map +1 -1
  320. package/lib/exceptions/IllegalStateException.js.map +1 -1
  321. package/lib/exceptions/JsonParseException.js.map +1 -1
  322. package/lib/exceptions/MissingPropertyException.js.map +1 -1
  323. package/lib/exceptions/NetworkException.js.map +1 -1
  324. package/lib/exceptions/NotAllowedUriException.js.map +1 -1
  325. package/lib/exceptions/NotFoundException.js.map +1 -1
  326. package/lib/exceptions/ServerRequestException.js.map +1 -1
  327. package/lib/exceptions/ThemePropertyException.js.map +1 -1
  328. package/lib/exceptions/TimeoutException.js.map +1 -1
  329. package/lib/exceptions/UnauthorizedException.js.map +1 -1
  330. package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
  331. package/lib/exceptions/index.js.map +1 -1
  332. package/lib/hooks/index.js.map +1 -1
  333. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  334. package/lib/hooks/useAuthentication.js.map +1 -1
  335. package/lib/hooks/useContent.js.map +1 -1
  336. package/lib/hooks/useDeepCompareEffect.js +1 -1
  337. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  338. package/lib/hooks/useForm.js.map +1 -1
  339. package/lib/hooks/useI18n.js.map +1 -1
  340. package/lib/hooks/useModal.js.map +1 -1
  341. package/lib/hooks/useModelCatalog.js.map +1 -1
  342. package/lib/hooks/useModels.js.map +1 -1
  343. package/lib/hooks/useModularUI.js.map +1 -1
  344. package/lib/hooks/useModularUIBasic.js.map +1 -1
  345. package/lib/hooks/useModularUIModel.js.map +1 -1
  346. package/lib/hooks/useModularUIRequest.js.map +1 -1
  347. package/lib/hooks/useNotification.js.map +1 -1
  348. package/lib/hooks/usePreference.js.map +1 -1
  349. package/lib/hooks/useProgressIndicator.js.map +1 -1
  350. package/lib/hooks/useRouter.js.map +1 -1
  351. package/lib/i18n/Locale.js.map +1 -1
  352. package/lib/i18n/Locales.js.map +1 -1
  353. package/lib/i18n/Message.js.map +1 -1
  354. package/lib/i18n/index.js +1 -1
  355. package/lib/i18n/index.js.map +1 -1
  356. package/lib/i18n/languages.js.map +1 -1
  357. package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  358. package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  359. package/lib/i18n/types.js.map +1 -1
  360. package/lib/i18n/withMessage.js.map +1 -1
  361. package/lib/index.js.map +1 -1
  362. package/lib/models/actions/ActionCollection.js.map +1 -1
  363. package/lib/models/actions/ActionModel.js.map +1 -1
  364. package/lib/models/application/ApplicationModel.js.map +1 -1
  365. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  366. package/lib/models/attributes/AttributeContent.js.map +1 -1
  367. package/lib/models/attributes/AttributeDataHelper.js +12 -2
  368. package/lib/models/attributes/AttributeDataHelper.js.flow +14 -2
  369. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  370. package/lib/models/attributes/AttributeModel.js.map +1 -1
  371. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  372. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  373. package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
  374. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  375. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  376. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  377. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  378. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  379. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  380. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  381. package/lib/models/attributes/LabelAttributeModel.js.map +1 -1
  382. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  383. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  384. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  385. package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
  386. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  387. package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
  388. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  389. package/lib/models/attributes/__tests__/AttributeDataHelper.spec.js.flow +85 -0
  390. package/lib/models/attributes/_createAttribute.js.map +1 -1
  391. package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  392. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  393. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  394. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  395. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  396. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  397. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  398. package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  399. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  400. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  401. package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  402. package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  403. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  404. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  405. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  406. package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  407. package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  408. package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  409. package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  410. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  411. package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  412. package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  413. package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  414. package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  415. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  416. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  417. package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  418. package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  419. package/lib/models/base/BaseCollection.js.map +1 -1
  420. package/lib/models/base/BaseModel.js.map +1 -1
  421. package/lib/models/base/ResourceCollection.js.map +1 -1
  422. package/lib/models/base/ResourceModel.js.map +1 -1
  423. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  424. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  425. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  426. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  427. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  428. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  429. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  430. package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  431. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  432. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  433. package/lib/models/content/ContentIndexModel.js.map +1 -1
  434. package/lib/models/content/ContentLinkModel.js.map +1 -1
  435. package/lib/models/content/ContentModel.js.map +1 -1
  436. package/lib/models/content/ContentTOCModel.js.map +1 -1
  437. package/lib/models/content/ContentTypeModel.js.map +1 -1
  438. package/lib/models/content/SectionModel.js.map +1 -1
  439. package/lib/models/content/SubSectionModel.js.map +1 -1
  440. package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  441. package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  442. package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  443. package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  444. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  445. package/lib/models/detail/DetailModel.js.map +1 -1
  446. package/lib/models/error/ErrorCollection.js.map +1 -1
  447. package/lib/models/error/ErrorModel.js.map +1 -1
  448. package/lib/models/error/ErrorResponse.js.map +1 -1
  449. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  450. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  451. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  452. package/lib/models/filters/FilterCollection.js.map +1 -1
  453. package/lib/models/filters/FilterModel.js.map +1 -1
  454. package/lib/models/filters/RangeFilterModel.js.map +1 -1
  455. package/lib/models/filters/StringFilterModel.js.map +1 -1
  456. package/lib/models/form/FormModel.js.map +1 -1
  457. package/lib/models/form/FormObjectModel.js.map +1 -1
  458. package/lib/models/grouping/GroupingModel.js.map +1 -1
  459. package/lib/models/href/Href.js.map +1 -1
  460. package/lib/models/href/ListHref.js.map +1 -1
  461. package/lib/models/index.js +1 -1
  462. package/lib/models/index.js.map +1 -1
  463. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  464. package/lib/models/links/LinkCollection.js.map +1 -1
  465. package/lib/models/links/LinkModel.js.map +1 -1
  466. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  467. package/lib/models/list/ListDetailModel.js.map +1 -1
  468. package/lib/models/list/ListHeaderModel.js.map +1 -1
  469. package/lib/models/list/ListItemCollection.js.map +1 -1
  470. package/lib/models/list/ListItemModel.js.map +1 -1
  471. package/lib/models/list/ListModel.js.map +1 -1
  472. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  473. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  474. package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  475. package/lib/models/paging/PagesizeModel.js.map +1 -1
  476. package/lib/models/paging/PagingModel.js.map +1 -1
  477. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  478. package/lib/models/parameter/Parameter.js.map +1 -1
  479. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  480. package/lib/models/resolveModel.js.map +1 -1
  481. package/lib/models/search/CaseSearchModel.js.map +1 -1
  482. package/lib/models/sorting/SortOptionModel.js.map +1 -1
  483. package/lib/models/sorting/SortingModel.js.map +1 -1
  484. package/lib/models/tab/TabModel.js.map +1 -1
  485. package/lib/models/taskgroup/TaskGroupCollection.js.map +1 -1
  486. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  487. package/lib/models/types.js.map +1 -1
  488. package/lib/models/user/UserModel.js.map +1 -1
  489. package/lib/models/user/UserProfileModel.js.map +1 -1
  490. package/lib/models/user/UserServicesModel.js.map +1 -1
  491. package/lib/modularui/Authenticate.js.map +1 -1
  492. package/lib/modularui/CaptchaRequest.js.map +1 -1
  493. package/lib/modularui/ModularUIError.js.map +1 -1
  494. package/lib/modularui/ModularUIRequest.js.map +1 -1
  495. package/lib/modularui/ModularUIResponse.js.map +1 -1
  496. package/lib/modularui/UploadRequest.js.map +1 -1
  497. package/lib/modularui/index.js.map +1 -1
  498. package/lib/modularui/types.js.map +1 -1
  499. package/lib/react/ErrorBoundary.js.map +1 -1
  500. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  501. package/lib/react/index.js.map +1 -1
  502. package/lib/react/utils.js.map +1 -1
  503. package/lib/react-client/Init.js.map +1 -1
  504. package/lib/react-client/client.js.map +1 -1
  505. package/lib/react-client/contextPath.js.map +1 -1
  506. package/lib/react-client/index.js.map +1 -1
  507. package/lib/react-client/rehydrate.js.map +1 -1
  508. package/lib/react-server/contextPath.js.map +1 -1
  509. package/lib/react-server/createSSRComplete.js.map +1 -1
  510. package/lib/react-server/htmlpage.js.map +1 -1
  511. package/lib/react-server/index.js.map +1 -1
  512. package/lib/react-server/renderSSRComplete.js.map +1 -1
  513. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  514. package/lib/react-server/requestInformation.js.map +1 -1
  515. package/lib/react-server/serverNoSSR.js.map +1 -1
  516. package/lib/react-server/serverSSR.js.map +1 -1
  517. package/lib/react-server/serverUtil.js +1 -1
  518. package/lib/react-server/serverUtil.js.map +1 -1
  519. package/lib/react-theme/ThemeProvider.js.map +1 -1
  520. package/lib/react-theme/createTheme.js.map +1 -1
  521. package/lib/react-theme/index.js.map +1 -1
  522. package/lib/react-theme/types.js.map +1 -1
  523. package/lib/react-theme/useTheme.js.map +1 -1
  524. package/lib/react-theme/utils/background.js.map +1 -1
  525. package/lib/react-theme/utils/colors.js.map +1 -1
  526. package/lib/react-theme/utils/contrast.js.map +1 -1
  527. package/lib/react-theme/utils/corners.js.map +1 -1
  528. package/lib/react-theme/utils/spacers.js.map +1 -1
  529. package/lib/react-theme/utils/themeProps.js.map +1 -1
  530. package/lib/redux/_i18n/I18nActions.js.map +1 -1
  531. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  532. package/lib/redux/_i18n/index.js.map +1 -1
  533. package/lib/redux/_i18n/types.js.map +1 -1
  534. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  535. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  536. package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  537. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  538. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  539. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  540. package/lib/redux/_modularui/index.js.map +1 -1
  541. package/lib/redux/_modularui/types.js.map +1 -1
  542. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  543. package/lib/redux/_router/RouterActions.js.map +1 -1
  544. package/lib/redux/_router/RouterConnectors.js.map +1 -1
  545. package/lib/redux/_router/RouterMiddleware.js.map +1 -1
  546. package/lib/redux/_router/RouterReducer.js.map +1 -1
  547. package/lib/redux/_router/index.js.map +1 -1
  548. package/lib/redux/_router/types.js.map +1 -1
  549. package/lib/redux/actions/Application.js.map +1 -1
  550. package/lib/redux/actions/Authorization.js.map +1 -1
  551. package/lib/redux/actions/Error.js.map +1 -1
  552. package/lib/redux/actions/Form.js.map +1 -1
  553. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  554. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  555. package/lib/redux/actions/FormAutosave.js.map +1 -1
  556. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  557. package/lib/redux/actions/FormValidations.js.map +1 -1
  558. package/lib/redux/actions/Modals.js.map +1 -1
  559. package/lib/redux/actions/Notification.js.map +1 -1
  560. package/lib/redux/actions/Preferences.js.map +1 -1
  561. package/lib/redux/actions/ProgressIndicator.js.map +1 -1
  562. package/lib/redux/actions/SignIn.js.map +1 -1
  563. package/lib/redux/actions/SignOut.js.map +1 -1
  564. package/lib/redux/actions/index.js.map +1 -1
  565. package/lib/redux/connectors/Application.js.map +1 -1
  566. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  567. package/lib/redux/connectors/CaseView.js.map +1 -1
  568. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  569. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  570. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  571. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  572. package/lib/redux/connectors/Form.js.map +1 -1
  573. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  574. package/lib/redux/connectors/ListDetail.js.map +1 -1
  575. package/lib/redux/connectors/Modal.js.map +1 -1
  576. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  577. package/lib/redux/connectors/Notification.js.map +1 -1
  578. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  579. package/lib/redux/connectors/Preferences.js.map +1 -1
  580. package/lib/redux/connectors/Progress.js.map +1 -1
  581. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  582. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  583. package/lib/redux/connectors/SignIn.js.map +1 -1
  584. package/lib/redux/connectors/SignOut.js.map +1 -1
  585. package/lib/redux/connectors/Tab.js.map +1 -1
  586. package/lib/redux/connectors/index.js.map +1 -1
  587. package/lib/redux/index.js.map +1 -1
  588. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  589. package/lib/redux/reducers/ErrorReducer.js.map +1 -1
  590. package/lib/redux/reducers/ModalsReducer.js.map +1 -1
  591. package/lib/redux/reducers/NotificationReducer.js.map +1 -1
  592. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  593. package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  594. package/lib/redux/reducers/createReducer.js.map +1 -1
  595. package/lib/redux/reducers/index.js.map +1 -1
  596. package/lib/redux/selectors/i18n.js.map +1 -1
  597. package/lib/redux/selectors/index.js.map +1 -1
  598. package/lib/redux/store/beforeRenderHooks.js.map +1 -1
  599. package/lib/redux/store/configureStore.js.map +1 -1
  600. package/lib/redux/types.js.map +1 -1
  601. package/lib/utils/browser/Cache.js.map +1 -1
  602. package/lib/utils/browser/Cookies.js.map +1 -1
  603. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  604. package/lib/utils/fetch/serverFetch.js.map +1 -1
  605. package/lib/utils/fetch/types.js.map +1 -1
  606. package/lib/utils/fetch/universalFetch.js.map +1 -1
  607. package/lib/utils/fetch/xhr.js.map +1 -1
  608. package/lib/utils/helpers/checkResource.js.map +1 -1
  609. package/lib/utils/helpers/createHash.js.map +1 -1
  610. package/lib/utils/helpers/createHref.js.map +1 -1
  611. package/lib/utils/helpers/createUUID.js.map +1 -1
  612. package/lib/utils/helpers/index.js.map +1 -1
  613. package/lib/utils/helpers/objects.js.map +1 -1
  614. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  615. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  616. package/lib/utils/helpers/text.js.map +1 -1
  617. package/lib/utils/index.js.map +1 -1
  618. package/lib/utils/number/DecimalFormat.js.map +1 -1
  619. package/lib/utils/number/formatValue.js.map +1 -1
  620. package/lib/utils/number/parseNumbers.js.map +1 -1
  621. package/package.json +1 -1
  622. package/src/models/attributes/AttributeDataHelper.js +14 -2
  623. package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +85 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_DateTimeUtil","_ChoiceAttributeOptionCollection","_ContentConfigurationElements","_ChoiceAttributeOptionModel","_LayoutHints","_constants","BooleanAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","isApplicableModel","contributions","type","date","options","choicetype","_context","_find","call","hint","layouthint","has","isMultiple","isTree","hasContentConfiguration","_hasContentConfiguration","contentConfiguration","_context2","content","optionElements","optionElementConfig","_map","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","selected","_context3","option","code","readonlyvalue","_context4","label","join","initvalue","Array","isArray","_initvalue","length","getValue","_context5","hasValue","getInputValue","toggleOption","_context6","_includes","disableOption","enableOption","deselectAll","select","inputvalue","deselect","reset","mergeAttribute","oldAttribute","readonly","concept","isValid","update","value","updateLastModification","values","split","toString","forEach","val","ChoiceAttributeOptionModel","some","getFormData","inError","name","readonlyWidth","hasAlternativeLabel","ATTRIBUTE_WIDTH","SMALL","EXTRA_SMALL","exports"],"sources":["../../../src/models/attributes/BooleanAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\n\nimport { RENDER_SECTION_LABEL } from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Model for a boolean attribute\n */\nexport default class BooleanAttributeModel extends AttributeModel {\n _referenceDate: string;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean = false;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"boolean\";\n }\n\n /**\n */\n get type(): string {\n return \"boolean\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): string {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype(): \"checkbox\" | \"radiobutton\" | \"combobox\" | \"toggle\" {\n return (\n [\"checkbox\", \"radiobutton\", \"combobox\", \"toggle\"].find((hint) =>\n this.layouthint.has(hint),\n ) || \"radiobutton\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return false;\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return false;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n this.options.deselectAll();\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Reset boolean attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof BooleanAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): BooleanAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value.toString()];\n }\n\n values.forEach((val) => {\n if (val instanceof ChoiceAttributeOptionModel) {\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n getFormData(): { [string]: boolean | null } | null {\n if (this.inError()) {\n return null;\n }\n\n if (!this.hasValue()) {\n // no value for checkbox and toggle is same as a false value\n if (this.choicetype === \"checkbox\" || this.choicetype === \"toggle\") {\n return { [this.name]: false };\n }\n\n return { [this.name]: null };\n }\n\n return { [this.name]: this.value === \"true\" };\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.options.some((option) => option.hasAlternativeLabel)) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.EXTRA_SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BooleanAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_DateTimeUtil","_ChoiceAttributeOptionCollection","_ContentConfigurationElements","_ChoiceAttributeOptionModel","_LayoutHints","_constants","BooleanAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","isApplicableModel","contributions","type","date","options","choicetype","_context","_find","call","hint","layouthint","has","isMultiple","isTree","hasContentConfiguration","_hasContentConfiguration","contentConfiguration","_context2","content","optionElements","optionElementConfig","_map","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","selected","_context3","option","code","readonlyvalue","_context4","label","join","initvalue","Array","isArray","_initvalue","length","getValue","_context5","hasValue","getInputValue","toggleOption","_context6","_includes","disableOption","enableOption","deselectAll","select","inputvalue","deselect","reset","mergeAttribute","oldAttribute","readonly","concept","isValid","update","value","updateLastModification","values","split","toString","forEach","val","ChoiceAttributeOptionModel","some","getFormData","inError","name","readonlyWidth","hasAlternativeLabel","ATTRIBUTE_WIDTH","SMALL","EXTRA_SMALL","exports"],"sources":["../../../src/models/attributes/BooleanAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\n\nimport { RENDER_SECTION_LABEL } from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Model for a boolean attribute\n */\nexport default class BooleanAttributeModel extends AttributeModel {\n _referenceDate: string;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean = false;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"boolean\";\n }\n\n /**\n */\n get type(): string {\n return \"boolean\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): string {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype(): \"checkbox\" | \"radiobutton\" | \"combobox\" | \"toggle\" {\n return (\n [\"checkbox\", \"radiobutton\", \"combobox\", \"toggle\"].find((hint) =>\n this.layouthint.has(hint),\n ) || \"radiobutton\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return false;\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return false;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n this.options.deselectAll();\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Reset boolean attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof BooleanAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): BooleanAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value.toString()];\n }\n\n values.forEach((val) => {\n if (val instanceof ChoiceAttributeOptionModel) {\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n getFormData(): { [string]: boolean | null } | null {\n if (this.inError()) {\n return null;\n }\n\n if (!this.hasValue()) {\n // no value for checkbox and toggle is same as a false value\n if (this.choicetype === \"checkbox\" || this.choicetype === \"toggle\") {\n return { [this.name]: false };\n }\n\n return { [this.name]: null };\n }\n\n return { [this.name]: this.value === \"true\" };\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.options.some((option) => option.hasAlternativeLabel)) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.EXTRA_SMALL;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CaptchaAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","CaptchaAttributeModel","AttributeModel","constructor","arguments","_defineProperty2","default","isApplicableModel","contributions","type","update","value","updateLastModification","inputvalue","setAnswer","answer","_answer","getAnswer","hasDynamicValidationData","exports"],"sources":["../../../src/models/attributes/CaptchaAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\n/**\n * Password attribute\n */\nexport default class CaptchaAttributeModel extends AttributeModel {\n _answer: string = \"\";\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"captcha\";\n }\n\n /**\n */\n get type(): string {\n return \"captcha\";\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): this {\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n setAnswer(answer: string) {\n this._answer = answer;\n }\n\n /**\n * Retrieve the given answer for the captcha\n * The value of this attribute is the token id of the captcha\n */\n getAnswer(): string {\n return this._answer;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return false;\n }\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACe,MAAMC,qBAAqB,SAASC,uBAAc,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,mBAC9C,EAAE;EAAA;EAEpB;AACF;EACE,OAAOC,iBAAiBA,CAACC,aAAqB,EAAW;IACvD,OAAOA,aAAa,CAACC,IAAI,KAAK,SAAS;EACzC;;EAEA;AACF;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,SAAS;EAClB;;EAEA;AACF;AACA;EACEC,MAAMA,CAACC,KAAa,EAAQ;IAC1B,IAAI,CAACC,sBAAsB,CAAC,CAAC;IAC7B,IAAI,CAACC,UAAU,GAAGF,KAAK;IAEvB,OAAO,IAAI;EACb;;EAEA;AACF;EACEG,SAASA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,OAAO,GAAGD,MAAM;EACvB;;EAEA;AACF;AACA;AACA;EACEE,SAASA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACD,OAAO;EACrB;;EAEA;AACF;EACE,IAAIE,wBAAwBA,CAAA,EAAY;IACtC,OAAO,KAAK;EACd;AACF;AAACC,OAAA,CAAAb,OAAA,GAAAL,qBAAA","ignoreList":[]}
1
+ {"version":3,"file":"CaptchaAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","CaptchaAttributeModel","AttributeModel","constructor","arguments","_defineProperty2","default","isApplicableModel","contributions","type","update","value","updateLastModification","inputvalue","setAnswer","answer","_answer","getAnswer","hasDynamicValidationData","exports"],"sources":["../../../src/models/attributes/CaptchaAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\n/**\n * Password attribute\n */\nexport default class CaptchaAttributeModel extends AttributeModel {\n _answer: string = \"\";\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"captcha\";\n }\n\n /**\n */\n get type(): string {\n return \"captcha\";\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): this {\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n setAnswer(answer: string) {\n this._answer = answer;\n }\n\n /**\n * Retrieve the given answer for the captcha\n * The value of this attribute is the token id of the captcha\n */\n getAnswer(): string {\n return this._answer;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return false;\n }\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACe,MAAMC,qBAAqB,SAASC,uBAAc,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,mBAC9C,EAAE;EAAA;EAEpB;AACF;EACE,OAAOC,iBAAiBA,CAACC,aAAqB,EAAW;IACvD,OAAOA,aAAa,CAACC,IAAI,KAAK,SAAS;EACzC;;EAEA;AACF;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,SAAS;EAClB;;EAEA;AACF;AACA;EACEC,MAAMA,CAACC,KAAa,EAAQ;IAC1B,IAAI,CAACC,sBAAsB,CAAC,CAAC;IAC7B,IAAI,CAACC,UAAU,GAAGF,KAAK;IAEvB,OAAO,IAAI;EACb;;EAEA;AACF;EACEG,SAASA,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,OAAO,GAAGD,MAAM;EACvB;;EAEA;AACF;AACA;AACA;EACEE,SAASA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACD,OAAO;EACrB;;EAEA;AACF;EACE,IAAIE,wBAAwBA,CAAA,EAAY;IACtC,OAAO,KAAK;EACd;AACF;AAACC,OAAA,CAAAb,OAAA,GAAAL,qBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceAttributeModel.js","names":["_objects","require","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ChoiceAttributeModel.js","names":["_objects","require","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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"}
@@ -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","optionType","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 optionType: contributions.optionType ?? \"generic\",\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 optionType: contributions.optionType ?? \"generic\",\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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","ignoreList":[]}
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","optionType","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 optionType: contributions.optionType ?? \"generic\",\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 optionType: contributions.optionType ?? \"generic\",\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 +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","_isUser","optionType","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","avatarLink","_concept","ConceptDetailModel","level","isBooleanType","hasAlternativeLabel","mergeOption","withOption","mergeOptions","hasAllContentInData","isUser","_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 _isUser: boolean = false;\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 this._isUser = option.optionType === \"user\";\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 *\n */\n get avatarLink(): LinkModel | null {\n return this.links.getLinkByKey(\"avatar\");\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 /**\n */\n get isUser(): boolean {\n return this._isUser;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"mappings":"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","ignoreList":[]}
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","_isUser","optionType","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","avatarLink","_concept","ConceptDetailModel","level","isBooleanType","hasAlternativeLabel","mergeOption","withOption","mergeOptions","hasAllContentInData","isUser","_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 _isUser: boolean = false;\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 this._isUser = option.optionType === \"user\";\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 *\n */\n get avatarLink(): LinkModel | null {\n return this.links.getLinkByKey(\"avatar\");\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 /**\n */\n get isUser(): boolean {\n return this._isUser;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeAttributeChildCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ErrorCollection","_createAttribute","CompositeAttributeChildCollection","ResourceCollection","create","data","contributions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","_context","_context2","compositeChildCollection","collection","_filter","default","_map","call","contribution","_context3","_context4","key","_keys","attributeData","_find","attr","attributeContribution","_includes","type","replace","attribute","createAttribute","dynamicschema","readonly","parentKey","_context5","childData","getInputValue","_context6","child","inputvalue","join","validate","every","isValid","errorCollection","ErrorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","_context8","first","_context7","value","_context9","formdata","readonlyvalue","_context11","_context12","_context10","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions,\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions,\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n },\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions,\n ),\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue,\n );\n }\n\n const children: { [string]: any } = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`,\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CompositeAttributeChildCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ErrorCollection","_createAttribute","CompositeAttributeChildCollection","ResourceCollection","create","data","contributions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","_context","_context2","compositeChildCollection","collection","_filter","default","_map","call","contribution","_context3","_context4","key","_keys","attributeData","_find","attr","attributeContribution","_includes","type","replace","attribute","createAttribute","dynamicschema","readonly","parentKey","_context5","childData","getInputValue","_context6","child","inputvalue","join","validate","every","isValid","errorCollection","ErrorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","_context8","first","_context7","value","_context9","formdata","readonlyvalue","_context11","_context12","_context10","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions,\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions,\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n },\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object,\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions,\n ),\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue,\n );\n }\n\n const children: { [string]: any } = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`,\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","key","isRange","includes","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","_isValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","isValid","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context","_find","equals","getChildByKey","_context2","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","isResult","_isResult","indicateContentConfiguration","contentConfiguration","otherAttribute","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","key","isRange","includes","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","_isValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","isValid","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context","_find","equals","getChildByKey","_context2","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","isResult","_isResult","indicateContentConfiguration","contentConfiguration","otherAttribute","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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"}