@beinformed/ui 1.47.0 → 1.47.2

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 (617) hide show
  1. package/CHANGELOG.md +9 -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.map +1 -1
  59. package/esm/models/attributes/AttributeModel.js.map +1 -1
  60. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  61. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  62. package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
  63. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  64. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  65. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  66. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  67. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  68. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  69. package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
  70. package/esm/models/attributes/LabelAttributeModel.js.map +1 -1
  71. package/esm/models/attributes/MemoAttributeModel.js.map +1 -1
  72. package/esm/models/attributes/MoneyAttributeModel.js.map +1 -1
  73. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  74. package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
  75. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  76. package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
  77. package/esm/models/attributes/XMLAttributeModel.js.map +1 -1
  78. package/esm/models/attributes/_createAttribute.js.map +1 -1
  79. package/esm/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  80. package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  81. package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  82. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  83. package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  84. package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  85. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  86. package/esm/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  87. package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  88. package/esm/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  89. package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  90. package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  91. package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  92. package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  93. package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  94. package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  95. package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  96. package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  97. package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  98. package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  99. package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  100. package/esm/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  101. package/esm/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  102. package/esm/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  103. package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  104. package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  105. package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  106. package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  107. package/esm/models/base/BaseCollection.js.map +1 -1
  108. package/esm/models/base/BaseModel.js.map +1 -1
  109. package/esm/models/base/ResourceCollection.js.map +1 -1
  110. package/esm/models/base/ResourceModel.js.map +1 -1
  111. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  112. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  113. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  114. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  115. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  116. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  117. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  118. package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  119. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  120. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  121. package/esm/models/content/ContentIndexModel.js.map +1 -1
  122. package/esm/models/content/ContentLinkModel.js.map +1 -1
  123. package/esm/models/content/ContentModel.js.map +1 -1
  124. package/esm/models/content/ContentTOCModel.js.map +1 -1
  125. package/esm/models/content/ContentTypeModel.js.map +1 -1
  126. package/esm/models/content/SectionModel.js.map +1 -1
  127. package/esm/models/content/SubSectionModel.js.map +1 -1
  128. package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  129. package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  130. package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  131. package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  132. package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  133. package/esm/models/detail/DetailModel.js.map +1 -1
  134. package/esm/models/error/ErrorCollection.js.map +1 -1
  135. package/esm/models/error/ErrorModel.js.map +1 -1
  136. package/esm/models/error/ErrorResponse.js.map +1 -1
  137. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  138. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  139. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  140. package/esm/models/filters/FilterCollection.js.map +1 -1
  141. package/esm/models/filters/FilterModel.js.map +1 -1
  142. package/esm/models/filters/RangeFilterModel.js.map +1 -1
  143. package/esm/models/filters/StringFilterModel.js.map +1 -1
  144. package/esm/models/form/FormModel.js.map +1 -1
  145. package/esm/models/form/FormObjectModel.js.map +1 -1
  146. package/esm/models/grouping/GroupingModel.js.map +1 -1
  147. package/esm/models/href/Href.js.map +1 -1
  148. package/esm/models/href/ListHref.js.map +1 -1
  149. package/esm/models/index.js.map +1 -1
  150. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  151. package/esm/models/links/LinkCollection.js.map +1 -1
  152. package/esm/models/links/LinkModel.js.map +1 -1
  153. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  154. package/esm/models/list/ListDetailModel.js.map +1 -1
  155. package/esm/models/list/ListHeaderModel.js.map +1 -1
  156. package/esm/models/list/ListItemCollection.js.map +1 -1
  157. package/esm/models/list/ListItemModel.js.map +1 -1
  158. package/esm/models/list/ListModel.js.map +1 -1
  159. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  160. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  161. package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  162. package/esm/models/paging/PagesizeModel.js.map +1 -1
  163. package/esm/models/paging/PagingModel.js.map +1 -1
  164. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  165. package/esm/models/parameter/Parameter.js.map +1 -1
  166. package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
  167. package/esm/models/resolveModel.js.map +1 -1
  168. package/esm/models/search/CaseSearchModel.js.map +1 -1
  169. package/esm/models/sorting/SortOptionModel.js.map +1 -1
  170. package/esm/models/sorting/SortingModel.js.map +1 -1
  171. package/esm/models/tab/TabModel.js.map +1 -1
  172. package/esm/models/taskgroup/TaskGroupCollection.js.map +1 -1
  173. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  174. package/esm/models/types.js.map +1 -1
  175. package/esm/models/user/UserModel.js.map +1 -1
  176. package/esm/models/user/UserProfileModel.js.map +1 -1
  177. package/esm/models/user/UserServicesModel.js.map +1 -1
  178. package/esm/modularui/Authenticate.js.map +1 -1
  179. package/esm/modularui/CaptchaRequest.js.map +1 -1
  180. package/esm/modularui/ModularUIError.js.map +1 -1
  181. package/esm/modularui/ModularUIRequest.js.map +1 -1
  182. package/esm/modularui/ModularUIResponse.js.map +1 -1
  183. package/esm/modularui/UploadRequest.js.map +1 -1
  184. package/esm/modularui/index.js.map +1 -1
  185. package/esm/modularui/types.js.map +1 -1
  186. package/esm/react/ErrorBoundary.js.map +1 -1
  187. package/esm/react/ErrorBoundaryFallback.js +1 -2
  188. package/esm/react/ErrorBoundaryFallback.js.map +1 -1
  189. package/esm/react/index.js.map +1 -1
  190. package/esm/react/utils.js.map +1 -1
  191. package/esm/react-client/Init.js.map +1 -1
  192. package/esm/react-client/client.js.map +1 -1
  193. package/esm/react-client/contextPath.js.map +1 -1
  194. package/esm/react-client/index.js.map +1 -1
  195. package/esm/react-client/rehydrate.js.map +1 -1
  196. package/esm/react-server/contextPath.js.map +1 -1
  197. package/esm/react-server/createSSRComplete.js.map +1 -1
  198. package/esm/react-server/htmlpage.js.map +1 -1
  199. package/esm/react-server/index.js.map +1 -1
  200. package/esm/react-server/renderSSRComplete.js.map +1 -1
  201. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  202. package/esm/react-server/requestInformation.js.map +1 -1
  203. package/esm/react-server/serverNoSSR.js.map +1 -1
  204. package/esm/react-server/serverSSR.js.map +1 -1
  205. package/esm/react-server/serverUtil.js.map +1 -1
  206. package/esm/react-theme/ThemeProvider.js.map +1 -1
  207. package/esm/react-theme/createTheme.js.map +1 -1
  208. package/esm/react-theme/index.js.map +1 -1
  209. package/esm/react-theme/types.js.map +1 -1
  210. package/esm/react-theme/useTheme.js.map +1 -1
  211. package/esm/react-theme/utils/background.js.map +1 -1
  212. package/esm/react-theme/utils/colors.js.map +1 -1
  213. package/esm/react-theme/utils/contrast.js.map +1 -1
  214. package/esm/react-theme/utils/corners.js.map +1 -1
  215. package/esm/react-theme/utils/spacers.js.map +1 -1
  216. package/esm/react-theme/utils/themeProps.js.map +1 -1
  217. package/esm/redux/_i18n/I18nActions.js.map +1 -1
  218. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  219. package/esm/redux/_i18n/index.js.map +1 -1
  220. package/esm/redux/_i18n/types.js.map +1 -1
  221. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  222. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  223. package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  224. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  225. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  226. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  227. package/esm/redux/_modularui/index.js.map +1 -1
  228. package/esm/redux/_modularui/types.js.map +1 -1
  229. package/esm/redux/_modularui/withModularUI.js.map +1 -1
  230. package/esm/redux/_router/RouterActions.js.map +1 -1
  231. package/esm/redux/_router/RouterConnectors.js.map +1 -1
  232. package/esm/redux/_router/RouterMiddleware.js.map +1 -1
  233. package/esm/redux/_router/RouterReducer.js.map +1 -1
  234. package/esm/redux/_router/index.js.map +1 -1
  235. package/esm/redux/_router/types.js.map +1 -1
  236. package/esm/redux/actions/Application.js.map +1 -1
  237. package/esm/redux/actions/Authorization.js.map +1 -1
  238. package/esm/redux/actions/Error.js.map +1 -1
  239. package/esm/redux/actions/Form.js.map +1 -1
  240. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  241. package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  242. package/esm/redux/actions/FormAutosave.js.map +1 -1
  243. package/esm/redux/actions/FormAutosubmit.js.map +1 -1
  244. package/esm/redux/actions/FormValidations.js.map +1 -1
  245. package/esm/redux/actions/Modals.js.map +1 -1
  246. package/esm/redux/actions/Notification.js.map +1 -1
  247. package/esm/redux/actions/Preferences.js.map +1 -1
  248. package/esm/redux/actions/ProgressIndicator.js.map +1 -1
  249. package/esm/redux/actions/SignIn.js.map +1 -1
  250. package/esm/redux/actions/SignOut.js.map +1 -1
  251. package/esm/redux/actions/index.js.map +1 -1
  252. package/esm/redux/connectors/Application.js.map +1 -1
  253. package/esm/redux/connectors/Breadcrumb.js.map +1 -1
  254. package/esm/redux/connectors/CaseView.js.map +1 -1
  255. package/esm/redux/connectors/ConceptDetail.js.map +1 -1
  256. package/esm/redux/connectors/ContentBrowser.js.map +1 -1
  257. package/esm/redux/connectors/ContentDetail.js.map +1 -1
  258. package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
  259. package/esm/redux/connectors/Form.js.map +1 -1
  260. package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
  261. package/esm/redux/connectors/ListDetail.js.map +1 -1
  262. package/esm/redux/connectors/Modal.js.map +1 -1
  263. package/esm/redux/connectors/ModelCatalog.js.map +1 -1
  264. package/esm/redux/connectors/Notification.js.map +1 -1
  265. package/esm/redux/connectors/PanelRenderer.js.map +1 -1
  266. package/esm/redux/connectors/Preferences.js.map +1 -1
  267. package/esm/redux/connectors/Progress.js.map +1 -1
  268. package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
  269. package/esm/redux/connectors/QuickSearch.js.map +1 -1
  270. package/esm/redux/connectors/SignIn.js.map +1 -1
  271. package/esm/redux/connectors/SignOut.js.map +1 -1
  272. package/esm/redux/connectors/Tab.js.map +1 -1
  273. package/esm/redux/connectors/index.js.map +1 -1
  274. package/esm/redux/index.js.map +1 -1
  275. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  276. package/esm/redux/reducers/ErrorReducer.js.map +1 -1
  277. package/esm/redux/reducers/ModalsReducer.js.map +1 -1
  278. package/esm/redux/reducers/NotificationReducer.js.map +1 -1
  279. package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
  280. package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  281. package/esm/redux/reducers/createReducer.js.map +1 -1
  282. package/esm/redux/reducers/index.js.map +1 -1
  283. package/esm/redux/selectors/i18n.js.map +1 -1
  284. package/esm/redux/selectors/index.js.map +1 -1
  285. package/esm/redux/store/beforeRenderHooks.js.map +1 -1
  286. package/esm/redux/store/configureStore.js.map +1 -1
  287. package/esm/redux/types.js.map +1 -1
  288. package/esm/utils/browser/Cache.js.map +1 -1
  289. package/esm/utils/browser/Cookies.js.map +1 -1
  290. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  291. package/esm/utils/fetch/serverFetch.js.map +1 -1
  292. package/esm/utils/fetch/types.js.map +1 -1
  293. package/esm/utils/fetch/universalFetch.js.map +1 -1
  294. package/esm/utils/fetch/xhr.js.map +1 -1
  295. package/esm/utils/helpers/checkResource.js.map +1 -1
  296. package/esm/utils/helpers/createHash.js.map +1 -1
  297. package/esm/utils/helpers/createHref.js.map +1 -1
  298. package/esm/utils/helpers/createUUID.js.map +1 -1
  299. package/esm/utils/helpers/index.js.map +1 -1
  300. package/esm/utils/helpers/objects.js.map +1 -1
  301. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  302. package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
  303. package/esm/utils/helpers/text.js.map +1 -1
  304. package/esm/utils/index.js.map +1 -1
  305. package/esm/utils/number/DecimalFormat.js.map +1 -1
  306. package/esm/utils/number/formatValue.js.map +1 -1
  307. package/esm/utils/number/parseNumbers.js.map +1 -1
  308. package/lib/builder/index.js.map +1 -1
  309. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  310. package/lib/constants/Constants.js.map +1 -1
  311. package/lib/constants/LayoutHintConfig.js.map +1 -1
  312. package/lib/constants/LayoutHints.js.map +1 -1
  313. package/lib/constants/Settings.js.map +1 -1
  314. package/lib/constants/index.js.map +1 -1
  315. package/lib/exceptions/ConfigurationException.js.map +1 -1
  316. package/lib/exceptions/FetchException.js.map +1 -1
  317. package/lib/exceptions/IllegalArgumentException.js.map +1 -1
  318. package/lib/exceptions/IllegalReturnException.js.map +1 -1
  319. package/lib/exceptions/IllegalStateException.js.map +1 -1
  320. package/lib/exceptions/JsonParseException.js.map +1 -1
  321. package/lib/exceptions/MissingPropertyException.js.map +1 -1
  322. package/lib/exceptions/NetworkException.js.map +1 -1
  323. package/lib/exceptions/NotAllowedUriException.js.map +1 -1
  324. package/lib/exceptions/NotFoundException.js.map +1 -1
  325. package/lib/exceptions/ServerRequestException.js.map +1 -1
  326. package/lib/exceptions/ThemePropertyException.js.map +1 -1
  327. package/lib/exceptions/TimeoutException.js.map +1 -1
  328. package/lib/exceptions/UnauthorizedException.js.map +1 -1
  329. package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
  330. package/lib/exceptions/index.js.map +1 -1
  331. package/lib/hooks/index.js.map +1 -1
  332. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  333. package/lib/hooks/useAuthentication.js.map +1 -1
  334. package/lib/hooks/useContent.js.map +1 -1
  335. package/lib/hooks/useDeepCompareEffect.js +1 -1
  336. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  337. package/lib/hooks/useForm.js.map +1 -1
  338. package/lib/hooks/useI18n.js.map +1 -1
  339. package/lib/hooks/useModal.js.map +1 -1
  340. package/lib/hooks/useModelCatalog.js.map +1 -1
  341. package/lib/hooks/useModels.js.map +1 -1
  342. package/lib/hooks/useModularUI.js.map +1 -1
  343. package/lib/hooks/useModularUIBasic.js.map +1 -1
  344. package/lib/hooks/useModularUIModel.js.map +1 -1
  345. package/lib/hooks/useModularUIRequest.js.map +1 -1
  346. package/lib/hooks/useNotification.js.map +1 -1
  347. package/lib/hooks/usePreference.js.map +1 -1
  348. package/lib/hooks/useProgressIndicator.js.map +1 -1
  349. package/lib/hooks/useRouter.js.map +1 -1
  350. package/lib/i18n/Locale.js.map +1 -1
  351. package/lib/i18n/Locales.js.map +1 -1
  352. package/lib/i18n/Message.js.map +1 -1
  353. package/lib/i18n/index.js +1 -1
  354. package/lib/i18n/index.js.map +1 -1
  355. package/lib/i18n/languages.js.map +1 -1
  356. package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  357. package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  358. package/lib/i18n/types.js.map +1 -1
  359. package/lib/i18n/withMessage.js.map +1 -1
  360. package/lib/index.js.map +1 -1
  361. package/lib/models/actions/ActionCollection.js.map +1 -1
  362. package/lib/models/actions/ActionModel.js.map +1 -1
  363. package/lib/models/application/ApplicationModel.js.map +1 -1
  364. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  365. package/lib/models/attributes/AttributeContent.js.map +1 -1
  366. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  367. package/lib/models/attributes/AttributeModel.js.map +1 -1
  368. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  369. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  370. package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
  371. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  372. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  373. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  374. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  375. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  376. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  377. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  378. package/lib/models/attributes/LabelAttributeModel.js.map +1 -1
  379. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  380. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  381. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  382. package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
  383. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  384. package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
  385. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  386. package/lib/models/attributes/_createAttribute.js.map +1 -1
  387. package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  388. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  389. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  390. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  391. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  392. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  393. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  394. package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  395. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  396. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  397. package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  398. package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  399. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  400. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  401. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  402. package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  403. package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  404. package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  405. package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  406. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  407. package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  408. package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  409. package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  410. package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  411. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  412. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  413. package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  414. package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  415. package/lib/models/base/BaseCollection.js.map +1 -1
  416. package/lib/models/base/BaseModel.js.map +1 -1
  417. package/lib/models/base/ResourceCollection.js.map +1 -1
  418. package/lib/models/base/ResourceModel.js.map +1 -1
  419. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  420. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  421. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  422. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  423. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  424. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  425. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  426. package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  427. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  428. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  429. package/lib/models/content/ContentIndexModel.js.map +1 -1
  430. package/lib/models/content/ContentLinkModel.js.map +1 -1
  431. package/lib/models/content/ContentModel.js.map +1 -1
  432. package/lib/models/content/ContentTOCModel.js.map +1 -1
  433. package/lib/models/content/ContentTypeModel.js.map +1 -1
  434. package/lib/models/content/SectionModel.js.map +1 -1
  435. package/lib/models/content/SubSectionModel.js.map +1 -1
  436. package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  437. package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  438. package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  439. package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  440. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  441. package/lib/models/detail/DetailModel.js.map +1 -1
  442. package/lib/models/error/ErrorCollection.js.map +1 -1
  443. package/lib/models/error/ErrorModel.js.map +1 -1
  444. package/lib/models/error/ErrorResponse.js.map +1 -1
  445. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  446. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  447. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  448. package/lib/models/filters/FilterCollection.js.map +1 -1
  449. package/lib/models/filters/FilterModel.js.map +1 -1
  450. package/lib/models/filters/RangeFilterModel.js.map +1 -1
  451. package/lib/models/filters/StringFilterModel.js.map +1 -1
  452. package/lib/models/form/FormModel.js.map +1 -1
  453. package/lib/models/form/FormObjectModel.js.map +1 -1
  454. package/lib/models/grouping/GroupingModel.js.map +1 -1
  455. package/lib/models/href/Href.js.map +1 -1
  456. package/lib/models/href/ListHref.js.map +1 -1
  457. package/lib/models/index.js +1 -1
  458. package/lib/models/index.js.map +1 -1
  459. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  460. package/lib/models/links/LinkCollection.js.map +1 -1
  461. package/lib/models/links/LinkModel.js.map +1 -1
  462. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  463. package/lib/models/list/ListDetailModel.js.map +1 -1
  464. package/lib/models/list/ListHeaderModel.js.map +1 -1
  465. package/lib/models/list/ListItemCollection.js.map +1 -1
  466. package/lib/models/list/ListItemModel.js.map +1 -1
  467. package/lib/models/list/ListModel.js.map +1 -1
  468. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  469. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  470. package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  471. package/lib/models/paging/PagesizeModel.js.map +1 -1
  472. package/lib/models/paging/PagingModel.js.map +1 -1
  473. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  474. package/lib/models/parameter/Parameter.js.map +1 -1
  475. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  476. package/lib/models/resolveModel.js.map +1 -1
  477. package/lib/models/search/CaseSearchModel.js.map +1 -1
  478. package/lib/models/sorting/SortOptionModel.js.map +1 -1
  479. package/lib/models/sorting/SortingModel.js.map +1 -1
  480. package/lib/models/tab/TabModel.js.map +1 -1
  481. package/lib/models/taskgroup/TaskGroupCollection.js.map +1 -1
  482. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  483. package/lib/models/types.js.map +1 -1
  484. package/lib/models/user/UserModel.js.map +1 -1
  485. package/lib/models/user/UserProfileModel.js.map +1 -1
  486. package/lib/models/user/UserServicesModel.js.map +1 -1
  487. package/lib/modularui/Authenticate.js.map +1 -1
  488. package/lib/modularui/CaptchaRequest.js.map +1 -1
  489. package/lib/modularui/ModularUIError.js.map +1 -1
  490. package/lib/modularui/ModularUIRequest.js.map +1 -1
  491. package/lib/modularui/ModularUIResponse.js.map +1 -1
  492. package/lib/modularui/UploadRequest.js.map +1 -1
  493. package/lib/modularui/index.js.map +1 -1
  494. package/lib/modularui/types.js.map +1 -1
  495. package/lib/react/ErrorBoundary.js.map +1 -1
  496. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  497. package/lib/react/index.js.map +1 -1
  498. package/lib/react/utils.js.map +1 -1
  499. package/lib/react-client/Init.js.map +1 -1
  500. package/lib/react-client/client.js.map +1 -1
  501. package/lib/react-client/contextPath.js.map +1 -1
  502. package/lib/react-client/index.js.map +1 -1
  503. package/lib/react-client/rehydrate.js.map +1 -1
  504. package/lib/react-server/contextPath.js.map +1 -1
  505. package/lib/react-server/createSSRComplete.js.map +1 -1
  506. package/lib/react-server/htmlpage.js.map +1 -1
  507. package/lib/react-server/index.js.map +1 -1
  508. package/lib/react-server/renderSSRComplete.js.map +1 -1
  509. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  510. package/lib/react-server/requestInformation.js.map +1 -1
  511. package/lib/react-server/serverNoSSR.js.map +1 -1
  512. package/lib/react-server/serverSSR.js.map +1 -1
  513. package/lib/react-server/serverUtil.js +1 -1
  514. package/lib/react-server/serverUtil.js.map +1 -1
  515. package/lib/react-theme/ThemeProvider.js.map +1 -1
  516. package/lib/react-theme/createTheme.js.map +1 -1
  517. package/lib/react-theme/index.js.map +1 -1
  518. package/lib/react-theme/types.js.map +1 -1
  519. package/lib/react-theme/useTheme.js.map +1 -1
  520. package/lib/react-theme/utils/background.js.map +1 -1
  521. package/lib/react-theme/utils/colors.js.map +1 -1
  522. package/lib/react-theme/utils/contrast.js.map +1 -1
  523. package/lib/react-theme/utils/corners.js.map +1 -1
  524. package/lib/react-theme/utils/spacers.js.map +1 -1
  525. package/lib/react-theme/utils/themeProps.js.map +1 -1
  526. package/lib/redux/_i18n/I18nActions.js.map +1 -1
  527. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  528. package/lib/redux/_i18n/index.js.map +1 -1
  529. package/lib/redux/_i18n/types.js.map +1 -1
  530. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  531. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  532. package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  533. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  534. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  535. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  536. package/lib/redux/_modularui/index.js.map +1 -1
  537. package/lib/redux/_modularui/types.js.map +1 -1
  538. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  539. package/lib/redux/_router/RouterActions.js.map +1 -1
  540. package/lib/redux/_router/RouterConnectors.js.map +1 -1
  541. package/lib/redux/_router/RouterMiddleware.js.map +1 -1
  542. package/lib/redux/_router/RouterReducer.js.map +1 -1
  543. package/lib/redux/_router/index.js.map +1 -1
  544. package/lib/redux/_router/types.js.map +1 -1
  545. package/lib/redux/actions/Application.js.map +1 -1
  546. package/lib/redux/actions/Authorization.js.map +1 -1
  547. package/lib/redux/actions/Error.js.map +1 -1
  548. package/lib/redux/actions/Form.js.map +1 -1
  549. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  550. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  551. package/lib/redux/actions/FormAutosave.js.map +1 -1
  552. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  553. package/lib/redux/actions/FormValidations.js.map +1 -1
  554. package/lib/redux/actions/Modals.js.map +1 -1
  555. package/lib/redux/actions/Notification.js.map +1 -1
  556. package/lib/redux/actions/Preferences.js.map +1 -1
  557. package/lib/redux/actions/ProgressIndicator.js.map +1 -1
  558. package/lib/redux/actions/SignIn.js.map +1 -1
  559. package/lib/redux/actions/SignOut.js.map +1 -1
  560. package/lib/redux/actions/index.js.map +1 -1
  561. package/lib/redux/connectors/Application.js.map +1 -1
  562. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  563. package/lib/redux/connectors/CaseView.js.map +1 -1
  564. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  565. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  566. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  567. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  568. package/lib/redux/connectors/Form.js.map +1 -1
  569. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  570. package/lib/redux/connectors/ListDetail.js.map +1 -1
  571. package/lib/redux/connectors/Modal.js.map +1 -1
  572. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  573. package/lib/redux/connectors/Notification.js.map +1 -1
  574. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  575. package/lib/redux/connectors/Preferences.js.map +1 -1
  576. package/lib/redux/connectors/Progress.js.map +1 -1
  577. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  578. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  579. package/lib/redux/connectors/SignIn.js.map +1 -1
  580. package/lib/redux/connectors/SignOut.js.map +1 -1
  581. package/lib/redux/connectors/Tab.js.map +1 -1
  582. package/lib/redux/connectors/index.js.map +1 -1
  583. package/lib/redux/index.js.map +1 -1
  584. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  585. package/lib/redux/reducers/ErrorReducer.js.map +1 -1
  586. package/lib/redux/reducers/ModalsReducer.js.map +1 -1
  587. package/lib/redux/reducers/NotificationReducer.js.map +1 -1
  588. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  589. package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  590. package/lib/redux/reducers/createReducer.js.map +1 -1
  591. package/lib/redux/reducers/index.js.map +1 -1
  592. package/lib/redux/selectors/i18n.js.map +1 -1
  593. package/lib/redux/selectors/index.js.map +1 -1
  594. package/lib/redux/store/beforeRenderHooks.js.map +1 -1
  595. package/lib/redux/store/configureStore.js.map +1 -1
  596. package/lib/redux/types.js.map +1 -1
  597. package/lib/utils/browser/Cache.js.map +1 -1
  598. package/lib/utils/browser/Cookies.js.map +1 -1
  599. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  600. package/lib/utils/fetch/serverFetch.js.map +1 -1
  601. package/lib/utils/fetch/types.js.map +1 -1
  602. package/lib/utils/fetch/universalFetch.js.map +1 -1
  603. package/lib/utils/fetch/xhr.js.map +1 -1
  604. package/lib/utils/helpers/checkResource.js.map +1 -1
  605. package/lib/utils/helpers/createHash.js.map +1 -1
  606. package/lib/utils/helpers/createHref.js.map +1 -1
  607. package/lib/utils/helpers/createUUID.js.map +1 -1
  608. package/lib/utils/helpers/index.js.map +1 -1
  609. package/lib/utils/helpers/objects.js.map +1 -1
  610. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  611. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  612. package/lib/utils/helpers/text.js.map +1 -1
  613. package/lib/utils/index.js.map +1 -1
  614. package/lib/utils/number/DecimalFormat.js.map +1 -1
  615. package/lib/utils/number/formatValue.js.map +1 -1
  616. package/lib/utils/number/parseNumbers.js.map +1 -1
  617. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"FilterModel.js","names":["BaseFilterModel","FilterModel"],"sources":["../../../src/models/filters/FilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\n/**\n */\nexport default class FilterModel extends BaseFilterModel {}\n"],"mappings":"AACA,OAAOA,eAAe,MAAM,4BAA4B;;AAExD;AACA;AACA,eAAe,MAAMC,WAAW,SAASD,eAAe,CAAC"}
1
+ {"version":3,"file":"FilterModel.js","names":["BaseFilterModel","FilterModel"],"sources":["../../../src/models/filters/FilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\n/**\n */\nexport default class FilterModel extends BaseFilterModel {}\n"],"mappings":"AACA,OAAOA,eAAe,MAAM,4BAA4B;;AAExD;AACA;AACA,eAAe,MAAMC,WAAW,SAASD,eAAe,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RangeFilterModel.js","names":["BaseFilterModel","CompositeAttributeModel","RangeFilterModel","update","attribute","value","params","_context","_mapInstanceProperty","children","call","child","param","data","name"],"sources":["../../../src/models/filters/RangeFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport type { AttributeType } from \"../types\";\n\n/**\n * Range filter, for instance a date range filter or a number range filter\n */\nexport default class RangeFilterModel extends BaseFilterModel {\n /**\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute instanceof CompositeAttributeModel) {\n this.attribute.update(value, attribute);\n } else if (this.attribute !== null) {\n this.attribute.update(value);\n }\n }\n\n /**\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (this.attribute instanceof CompositeAttributeModel) {\n return this.attribute.children.map((child) => {\n const { param } = this.data[child.name];\n return {\n name: param,\n value: child.value,\n };\n });\n }\n\n return [];\n }\n}\n"],"mappings":";AACA,OAAOA,eAAe,MAAM,4BAA4B;AAExD,OAAOC,uBAAuB,MAAM,uCAAuC;AAG3E;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASF,eAAe,CAAC;EAC5D;AACF;EACEG,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,IAAI,CAACD,SAAS,YAAYH,uBAAuB,EAAE;MACrD,IAAI,CAACG,SAAS,CAACD,MAAM,CAACE,KAAK,EAAED,SAAS,CAAC;IACzC,CAAC,MAAM,IAAI,IAAI,CAACA,SAAS,KAAK,IAAI,EAAE;MAClC,IAAI,CAACA,SAAS,CAACD,MAAM,CAACE,KAAK,CAAC;IAC9B;EACF;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAA4C;IACpD,IAAI,IAAI,CAACF,SAAS,YAAYH,uBAAuB,EAAE;MAAA,IAAAM,QAAA;MACrD,OAAOC,oBAAA,CAAAD,QAAA,OAAI,CAACH,SAAS,CAACK,QAAQ,EAAAC,IAAA,CAAAH,QAAA,EAAMI,KAAK,IAAK;QAC5C,MAAM;UAAEC;QAAM,CAAC,GAAG,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QACvC,OAAO;UACLA,IAAI,EAAEF,KAAK;UACXP,KAAK,EAAEM,KAAK,CAACN;QACf,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,OAAO,EAAE;EACX;AACF"}
1
+ {"version":3,"file":"RangeFilterModel.js","names":["BaseFilterModel","CompositeAttributeModel","RangeFilterModel","update","attribute","value","params","_context","_mapInstanceProperty","children","call","child","param","data","name"],"sources":["../../../src/models/filters/RangeFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport type { AttributeType } from \"../types\";\n\n/**\n * Range filter, for instance a date range filter or a number range filter\n */\nexport default class RangeFilterModel extends BaseFilterModel {\n /**\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute instanceof CompositeAttributeModel) {\n this.attribute.update(value, attribute);\n } else if (this.attribute !== null) {\n this.attribute.update(value);\n }\n }\n\n /**\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (this.attribute instanceof CompositeAttributeModel) {\n return this.attribute.children.map((child) => {\n const { param } = this.data[child.name];\n return {\n name: param,\n value: child.value,\n };\n });\n }\n\n return [];\n }\n}\n"],"mappings":";AACA,OAAOA,eAAe,MAAM,4BAA4B;AAExD,OAAOC,uBAAuB,MAAM,uCAAuC;AAG3E;AACA;AACA;AACA,eAAe,MAAMC,gBAAgB,SAASF,eAAe,CAAC;EAC5D;AACF;EACEG,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,IAAI,CAACD,SAAS,YAAYH,uBAAuB,EAAE;MACrD,IAAI,CAACG,SAAS,CAACD,MAAM,CAACE,KAAK,EAAED,SAAS,CAAC;IACzC,CAAC,MAAM,IAAI,IAAI,CAACA,SAAS,KAAK,IAAI,EAAE;MAClC,IAAI,CAACA,SAAS,CAACD,MAAM,CAACE,KAAK,CAAC;IAC9B;EACF;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAA4C;IACpD,IAAI,IAAI,CAACF,SAAS,YAAYH,uBAAuB,EAAE;MAAA,IAAAM,QAAA;MACrD,OAAOC,oBAAA,CAAAD,QAAA,OAAI,CAACH,SAAS,CAACK,QAAQ,EAAAC,IAAA,CAAAH,QAAA,EAAMI,KAAK,IAAK;QAC5C,MAAM;UAAEC;QAAM,CAAC,GAAG,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QACvC,OAAO;UACLA,IAAI,EAAEF,KAAK;UACXP,KAAK,EAAEM,KAAK,CAACN;QACf,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,OAAO,EAAE;EACX;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StringFilterModel.js","names":["FilterModel","StringFilterModel","constructor","data","contributions","_defineProperty","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_mapInstanceProperty","split","call","val","_trimInstanceProperty","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.shouldHandleFormat()) {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StringFilterModel.js","names":["FilterModel","StringFilterModel","constructor","data","contributions","_defineProperty","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_mapInstanceProperty","split","call","val","_trimInstanceProperty","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace"],"sources":["../../../src/models/filters/StringFilterModel.js"],"sourcesContent":["// @flow\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport FilterModel from \"./FilterModel\";\n\n/**\n * StringFilterModel can handle string filters with multiple setting\n */\nexport default class StringFilterModel extends FilterModel {\n _isValid: boolean = true;\n _value: string | null;\n _inputvalue: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this.update(this.attribute, data.value ?? \"\");\n\n // when formatted value set this to initial input value\n this._inputvalue = this._value ?? \"\";\n }\n\n /**\n * Retrieve the parameters with its value for this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n if (!this.param) {\n return [];\n }\n\n return [\n {\n name: this.param,\n value: this.removeFormat(this.value),\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this._value;\n }\n\n /**\n */\n get inputvalue(): string {\n return this._inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n this._inputvalue = \"\";\n this._value = null;\n\n return this;\n }\n\n /**\n */\n get isValid(): boolean {\n return this._isValid;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n this._isValid = true;\n this._inputvalue = typeof value !== \"string\" ? value.toString() : value;\n\n if (this.shouldHandleFormat()) {\n const values = this.isMultiple\n ? this._inputvalue.split(\",\").map((val) => val.trim())\n : [this._inputvalue.trim()];\n\n const outputValues = [];\n for (const val of values) {\n const formattedValue = this.formatValue(val);\n if (formattedValue !== \"\") {\n outputValues.push(formattedValue);\n\n if (!this.attribute.validate(formattedValue)) {\n this._isValid = false;\n }\n }\n }\n\n this._value = outputValues.join(\",\");\n } else {\n this._value = value;\n }\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n formatValue(value: string): string {\n if (this.shouldHandleFormat()) {\n return this.attribute.formatValue(value);\n }\n return value;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.shouldHandleFormat()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n shouldHandleFormat(): boolean {\n return (\n (this.operator === \"exactly\" || this.operator === \"isNot\") &&\n (this.isIBAN() || this.isZipcode() || this.isBSN())\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","LayoutHintCollection","AttributeSetModel","FormModel","constructor","modularuiResponse","_defineProperty","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","_mapInstanceProperty","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_Object$keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_findInstanceProperty","result","objectid","objectId","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filterInstanceProperty","formObject","equals","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includesInstanceProperty","otherProps","endResult","expectsEndResultFormObjects","_context12","endResultKeys","some","objectKey","content","_endResultFormObjects","getEndResultFormObjects","_context13","_context14","previousEndResultKeys","_context15","_previousEndResultKeys","endResultFormObjectKeys","isValid","isRepeatable","_context16","_context17","hasOneValidQuestion","object","hasServerErrors","errorCollection","hasItems","hasErrors","addServerError","error","id","message","resetErrors","_errorCollection","commit","_commit","isFinished","_isFinished","success","_isComplete","successRedirect","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","resultData","par","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndexInstanceProperty","obj","push","withConcurrencyToken","_JSON$stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_sliceInstanceProperty","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","handleMissingErrors","handleNewFormObject","processMissingErrors","_context27","attribute","hasAttributeByKey","addMissingError","removeMissingError","receivedCurrentFormObject","_context28","handlePreviouslyEnteredFormObjects","mergePreviouslyEnteredObjects","_mergePreviouslyEnteredObjects","_context29","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findAttribute","findMethod","foundAttribute","_context30"],"sources":["../../../src/models/form/FormModel.js"],"sourcesContent":["// @flow\nimport flattenDeep from \"lodash/flattenDeep\";\nimport deepmerge from \"deepmerge\";\n\nimport { has } from \"../../utils/helpers/objects\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport Href from \"../href/Href\";\nimport Parameter from \"../parameter/Parameter\";\n\nimport FormObjectModel from \"./FormObjectModel\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport {\n CREATE_ACTION,\n DELETE_ACTION,\n UPDATE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass FormModel extends ResourceModel {\n _lastUpdate: number;\n\n _completedFormObjects: Array<FormObjectModel> = [];\n _currentFormObject: FormObjectModel | null = null;\n _previouslyEnteredFormObjects: Array<FormObjectModel> = [];\n\n _mergePreviouslyEnteredObjects: boolean = true;\n\n _endResultFormObjects: Array<FormObjectModel> = [];\n _previousEndResultKeys: Array<string> = [];\n\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _errorCollection: ErrorCollection = new ErrorCollection(\"form\");\n\n _redirectLocation: Href;\n\n _commit: boolean;\n _isFinished: boolean;\n _isComplete: boolean;\n _success: { redirect: string, data: Object } | null;\n\n _parameters: Array<Parameter>;\n _tokens: Array<string>;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.lastUpdate = 0;\n\n this.currentFormObject = this.createFormObject();\n this.endResultFormObjects = this.setEndResultFormObjects();\n\n this.parameters = this.setParameters(modularuiResponse);\n\n this.isComplete = this.getData(\"complete\", false);\n\n if (this.data.errors) {\n this.handleRootErrors(this.data.errors);\n }\n\n this.createSuccess();\n }\n\n /**\n */\n get type(): string {\n return \"Form\";\n }\n\n /**\n */\n get actiontype(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"actiontype\", \"form\");\n }\n\n /**\n */\n static get modelName(): string {\n return \"FormModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Form\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const endResultChildLinks = flattenDeep(\n this.endResultFormObjects.map((endResultFormObject) =>\n endResultFormObject.getInitialChildModelLinks(),\n ),\n );\n\n if (this.currentFormObject === null) {\n return endResultChildLinks;\n }\n\n return [\n ...this.currentFormObject.getInitialChildModelLinks(),\n ...endResultChildLinks,\n ];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models, errors);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models, errors);\n });\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Get form level button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * @returns button label from contributions;\n */\n getButtonLabel(\n buttonType: \"cancel\" | \"previous\" | \"next\" | \"finish\",\n ): string | null {\n // cancel button labels are defined on the form\n if (buttonType === \"cancel\") {\n return this.buttonLabels?.cancel ?? null;\n }\n\n // all other form related button labels are defined on the object\n return this.currentFormObject?.buttonLabels?.[buttonType] ?? null;\n }\n\n /**\n * Get all applicable objects\n */\n get allObjects(): Array<FormObjectModel> {\n if (this.currentFormObject === null) {\n return this.completedFormObjects;\n }\n\n return [...this.completedFormObjects, this.currentFormObject];\n }\n\n /**\n */\n get objectKeys(): Array<string> {\n if (has(this.contributions, \"objects\")) {\n return Object.keys(this.contributions.objects);\n }\n\n return [];\n }\n\n /**\n */\n get numberOfExpectedQuestions(): number {\n return this.objectKeys.length;\n }\n\n /**\n * Has questions configured on form\n */\n get hasNoQuestionsConfigured(): boolean {\n return (\n this.isComplete &&\n (this.objectKeys.length === 0 ||\n (!(\"missing\" in this.data) &&\n !(\"results\" in this.data) &&\n !(\"errors\" in this.data)))\n );\n }\n\n /**\n */\n addGlobalDynamicSchema(anchor: Object, dynamicschema: Object): Object {\n if (!dynamicschema) {\n return anchor;\n }\n\n return {\n ...anchor,\n elements: anchor.elements.map((element) => ({\n ...element,\n dynamicschema: element.dynamicschema\n ? element.dynamicschema.map((item) => ({\n ...item,\n elements: { ...item.elements, dynamicschema },\n }))\n : null,\n })),\n };\n }\n\n /**\n */\n getMissingAnchors(): Array<Object> {\n const missingAnchors = this.data.missing?.anchors ?? [];\n\n // Add intermediate result data to anchor\n return missingAnchors.map((anchor) => {\n if (this.data.results) {\n const resultObject = this.data.results.find(\n (result) =>\n result.objectid === anchor.objectid && \"elements\" in result,\n );\n\n if (resultObject) {\n anchor.results = resultObject.elements;\n }\n }\n\n return this.addGlobalDynamicSchema(anchor, this.data.dynamicschema);\n });\n }\n\n /**\n * Create form object based on the data and contributions available in this form\n */\n createFormObject(): FormObjectModel | null {\n if (this.data && this.contributions) {\n const missingAnchors = this.getMissingAnchors();\n\n // Get object id from first anchor\n const objectId = missingAnchors?.[0]?.objectid ?? \"\";\n const contributions = this.contributions.objects?.[objectId];\n if (contributions) {\n return new FormObjectModel(missingAnchors[0], contributions);\n }\n }\n\n return null;\n }\n\n /**\n */\n addEmptyFormObject(\n formObjectModel: FormObjectModel | null = this.currentFormObject,\n ) {\n if (formObjectModel) {\n const emptyFormObject = FormObjectModel.createEmpty(formObjectModel);\n\n emptyFormObject.repeatIndex =\n this.getHighestRepeatIndex(formObjectModel) + 1;\n\n this.addFormObject(emptyFormObject);\n }\n }\n\n /**\n */\n getHighestRepeatIndex(formObjectModel: FormObjectModel): number {\n return Math.max(\n ...this.allObjects\n .filter((formObject) => formObject.equals(formObjectModel, false))\n .map((formObject) => formObject.repeatIndex),\n );\n }\n\n /**\n */\n addFormObject(formObjectModel: FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to add\");\n }\n\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = formObjectModel;\n }\n\n /**\n * Retrieve a form object by the key\n */\n getFormObjectByKey(key: string): ?FormObjectModel {\n return this.allObjects.find((formObject) => formObject.key === key);\n }\n\n /**\n * Retrieve a form object by a layouthint\n */\n getFormObjectByLayoutHint(hint: string): ?FormObjectModel {\n return this.allObjects.find((formObject) =>\n formObject.layouthint.has(hint),\n );\n }\n\n /**\n */\n removeFormObject(formObjectModel: ?FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to remove\");\n }\n if (formObjectModel.equals(this.currentFormObject)) {\n throw new IllegalArgumentException(\n \"Can not remove the current form object\",\n );\n }\n\n this.completedFormObjects = this.completedFormObjects.filter(\n (formObject) => !formObject.equals(formObjectModel),\n );\n }\n\n /**\n */\n get currentFormObject(): FormObjectModel | null {\n return this._currentFormObject;\n }\n\n /**\n */\n set currentFormObject(formObject: FormObjectModel | null) {\n this._currentFormObject = formObject;\n }\n\n /**\n * Completed objects are previously entered questions\n */\n get completedFormObjects(): Array<FormObjectModel> {\n return this._completedFormObjects;\n }\n\n /**\n */\n set completedFormObjects(formObjects: Array<FormObjectModel>) {\n this._completedFormObjects = formObjects;\n }\n\n /**\n * Previously entered objects are questions that have been entered before,\n * but are currently not applicable for the form.\n * For example because of previous navigation\n */\n get previouslyEnteredFormObjects(): Array<FormObjectModel> {\n return this._previouslyEnteredFormObjects;\n }\n\n /**\n */\n set previouslyEnteredFormObjects(formObjects: Array<FormObjectModel>) {\n this._previouslyEnteredFormObjects = formObjects;\n }\n\n /**\n * Handle end results\n */\n setEndResultFormObjects(): Array<FormObjectModel> {\n if (this.data && this.data.results) {\n const missingObjects = this.data.missing?.anchors ?? [];\n const missingObjectIds = missingObjects.map((anchor) => anchor.objectid);\n\n // Filter out intermediate results and rename elements property to result property\n const endResultAnchors = this.data.results\n .filter((result) => !missingObjectIds.includes(result.objectid))\n .map((result) => {\n const { elements, ...otherProps } = result;\n\n return {\n ...otherProps,\n results: elements,\n };\n });\n\n if (endResultAnchors.length > 0) {\n return endResultAnchors.map(\n (endResult) =>\n new FormObjectModel(\n endResult,\n this.contributions.objects[endResult.objectid],\n ),\n );\n }\n }\n\n return [];\n }\n\n /**\n */\n get expectsEndResultFormObjects(): boolean {\n const endResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n return this.objectKeys.some(\n (objectKey) =>\n this.contributions.objects?.[objectKey]?.content?.results &&\n !endResultKeys.includes(objectKey),\n );\n }\n\n /**\n */\n get endResultFormObjects(): Array<FormObjectModel> {\n return this._endResultFormObjects;\n }\n\n /**\n */\n getEndResultFormObjects(): Array<FormObjectModel> {\n return this.endResultFormObjects.filter(\n (endResult) => !this.previousEndResultKeys.includes(endResult.key),\n );\n }\n\n /**\n */\n set endResultFormObjects(endResultFormObjects: Array<FormObjectModel>) {\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n this._endResultFormObjects = endResultFormObjects;\n }\n\n /**\n */\n get previousEndResultKeys(): Array<string> {\n return this._previousEndResultKeys;\n }\n\n /**\n */\n set previousEndResultKeys(endResultFormObjectKeys: Array<string>) {\n this._previousEndResultKeys = endResultFormObjectKeys;\n }\n\n /**\n * Error handling\n */\n get isValid(): boolean {\n if (this.currentFormObject) {\n if (this.currentFormObject.isRepeatable) {\n // repeating objects need at least one valid form object\n const hasOneValidQuestion = this.allObjects\n .filter((object) => object.equals(this.currentFormObject, false))\n .find((object) => object.isValid);\n\n if (hasOneValidQuestion) {\n return true;\n }\n }\n\n return this.currentFormObject?.isValid ?? true;\n }\n\n return true;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasServerErrors();\n }\n\n return false;\n }\n\n /**\n */\n hasErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasErrors();\n }\n\n return false;\n }\n\n /**\n * Add an error to the error collection of this form\n */\n addServerError(error: ErrorResponse) {\n if (error.parameters) {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.parameters,\n error.layouthint,\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint,\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || this.success != undefined;\n }\n\n /**\n */\n set isFinished(isFinished: boolean) {\n this._isFinished = isFinished;\n }\n\n /**\n * Indicates if form is completely entered\n */\n get isComplete(): boolean {\n return this._isComplete;\n }\n\n /**\n */\n set isComplete(isComplete: boolean) {\n this._isComplete = isComplete;\n }\n\n /**\n * Handle success redirects\n */\n get successRedirect(): Href | null {\n return this.isFinished && this.success\n ? new Href(this.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n * Get the result data as plain json object\n */\n getSuccessData(): ?Object {\n return this.success?.data;\n }\n\n /**\n * Retrieve an object where each property is a result data attribute set\n */\n getResultData(): ?{\n [key: string]: AttributeSetModel,\n } {\n const resultDataKeys = Object.keys(this.contributions.resultdata) ?? [];\n const successData = this.getSuccessData() ?? {};\n\n const resultdata: {\n [key: string]: AttributeSetModel,\n } = {};\n\n for (const resultDataKey of resultDataKeys) {\n resultdata[resultDataKey] = new AttributeSetModel(\n resultDataKey,\n successData[resultDataKey],\n this.contributions.resultdata[resultDataKey],\n );\n }\n\n return resultdata;\n }\n\n /**\n */\n get resultData(): ?Object {\n return this.getSuccessData();\n }\n\n /**\n * Href handling\n */\n setParameters(modularuiResponse: ModularUIResponse): Array<Parameter> {\n const parameters = modularuiResponse?.parameters ?? [];\n return parameters.map(\n (par) => new Parameter(par._prefix, par._name, par._value),\n );\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n selfhrefNoCommitParam(): Href {\n const selfhref = this.selflink.href;\n selfhref.method = HTTP_METHODS.POST;\n\n selfhref.parameters = this.parameters.filter(\n (parameter) => parameter.name !== \"commit\",\n );\n\n return selfhref;\n }\n\n /**\n */\n selfhrefWithCommitParam(): Href {\n const selfhref = this.selfhrefNoCommitParam();\n\n if (this.expectsEndResultFormObjects && !this.isComplete && !this.commit) {\n selfhref.addParameter(\"commit\", \"false\");\n }\n\n return selfhref;\n }\n\n /**\n * Create a selfhref including the parameters that are used to start this form\n */\n get selfhref(): Href {\n if (!this.selflink) {\n throw new Error(\"No self link found for form\");\n }\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return this.selfhrefNoCommitParam();\n }\n\n return this.selfhrefWithCommitParam();\n }\n\n /**\n * Handle form tokens to indicate concurrent form use\n */\n get tokens(): Array<string> {\n if (!this._tokens) {\n this._tokens = this.data.tokens ?? [];\n }\n return this._tokens;\n }\n\n /**\n * Replaces all tokens with the given collection of tokens\n */\n set tokens(tokens: Array<string>) {\n this._tokens = tokens;\n }\n\n /**\n * Removes all tokens from the form\n */\n removeTokens() {\n this._tokens = [];\n }\n\n /**\n * Keep track of changed form\n */\n isChanged(): boolean {\n return (\n this.currentFormObject !== null &&\n this.currentFormObject.isChangedSince(this.lastUpdate)\n );\n }\n\n /**\n */\n get lastUpdate(): number {\n return this._lastUpdate;\n }\n\n /**\n */\n set lastUpdate(lastUpdate: number) {\n this._lastUpdate = lastUpdate;\n }\n\n /**\n */\n getFormDataObjects(\n validOnly: boolean = true,\n validationData: boolean = false,\n ): Array<Object> {\n const formdata = [];\n\n const formObjects = this.allObjects.filter((formObject, index) => {\n // repeatabe object without fixed nr of repeats, remove last form object from formdata,\n // because this is the formobject that is used as a placeholder for the create object\n // of the collection of repeats\n if (formObject.isRepeatable && !formObject.hasFixedNrOfRepeats) {\n const isLastRepeat =\n index === this.allObjects.length - 1 ||\n this.allObjects[index + 1].key !== formObject.key;\n\n if (isLastRepeat) {\n return false;\n }\n }\n\n return formObject.isValid || !validOnly;\n });\n\n formObjects.forEach((formObject) => {\n const objectFormData = formObject.getFormData(validationData);\n\n const existingObjectIndex = formdata.findIndex(\n (obj) =>\n obj.key === formObject.key &&\n obj.repeatIndex === formObject.repeatIndex,\n );\n\n /*\n * when the object already exists in the formdata with the same key and index,\n * merge the attributes of both objects together\n */\n if (existingObjectIndex > -1) {\n formdata[existingObjectIndex].formdata = deepmerge(\n formdata[existingObjectIndex].formdata,\n objectFormData,\n );\n } else {\n formdata.push({\n key: formObject.key,\n repeatIndex: formObject.repeatIndex,\n formdata: objectFormData,\n });\n }\n });\n\n return formdata.map((obj) => ({ [obj.key]: obj.formdata }));\n }\n\n /**\n */\n getFormData(\n validOnly: boolean = true,\n withConcurrencyToken: boolean = true,\n validationData: boolean = false,\n ): string {\n if (withConcurrencyToken && this.tokens.length > 0) {\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n tokens: this.tokens,\n });\n }\n\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n });\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n this._useClientsideValidation = enabled;\n\n this.allObjects.forEach((formObject) => {\n formObject.attributeCollection.all.forEach((item: AttributeType) =>\n item.setUseClientsideValidation(enabled),\n );\n });\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Get form data for submitting\n */\n get formdata(): string {\n return this.getFormData(this.useClientsideValidation());\n }\n\n /**\n */\n get validationData(): string {\n return this.getFormData(false, false, true);\n }\n\n /**\n * Form navigation: Go one object back (previous button)\n */\n get hasPreviousStep(): boolean {\n const currentFormObjectKey =\n this.currentFormObject != null ? this.currentFormObject.key : \"\";\n\n return (\n this.completedFormObjects.filter(\n (formObject) =>\n !formObject.isRepeatWithUnknownTotal ||\n formObject.key !== currentFormObjectKey,\n ).length > 0\n );\n }\n\n /**\n * Go one form-object back,\n * for repeating object this means go back\n * until we get at a form object that had\n * a different key than the current form object\n */\n setPreviousObject() {\n this.isComplete = false;\n this.isFinished = false;\n this.success = null;\n\n const oldCurrentFormObject = this.currentFormObject;\n\n if (this.currentFormObject !== null) {\n this.previouslyEnteredFormObjects = [\n this.currentFormObject,\n ...this.previouslyEnteredFormObjects,\n ];\n }\n\n this.currentFormObject =\n this.completedFormObjects[this.completedFormObjects.length - 1];\n this.completedFormObjects = this.completedFormObjects.slice(0, -1);\n\n const completedFormObjectKeys = this.completedFormObjects\n .map((formObject) => formObject.key)\n .filter((formObjectKey) => formObjectKey !== this.currentFormObject?.key);\n\n this.endResultFormObjects = this._endResultFormObjects.filter((endResult) =>\n completedFormObjectKeys.includes(endResult.key),\n );\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n // while we are at the same repeating form object, go a step back\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(\n oldCurrentFormObject,\n this.currentFormObject.hasFixedNrOfRepeats,\n )\n ) {\n this.setPreviousObject();\n }\n }\n\n /**\n * Form navigation: has next step or is last\n */\n get hasNextStep(): boolean {\n if (\n this.isComplete ||\n this.isFinished ||\n this.hasNoQuestionsConfigured ||\n !this.contributions.objects\n ) {\n return false;\n }\n\n // current object is a dynamic object\n if (this.currentFormObject && this.currentFormObject.isDynamic) {\n return true;\n }\n\n if (this.expectsEndResultFormObjects) {\n return true;\n }\n\n const currentObjectIndex = this.objectKeys.findIndex(\n (objectKey) => objectKey === this.currentFormObject?.key,\n );\n const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;\n\n // current object is a repeating question but it is not the last one\n if (\n isLastObject &&\n this.currentFormObject &&\n this.currentFormObject.isRepeatable &&\n !this.currentFormObject.isLastRepeat\n ) {\n return true;\n }\n\n // current object is not repeatable and the last object\n if (isLastObject) {\n return false;\n }\n\n // can't determine if this is te last, render a next button\n return true;\n }\n\n /**\n * Merge existing form with new form\n */\n update(receivedForm: ModularUIModel): FormModel {\n if (receivedForm instanceof FormModel) {\n this.resetErrors();\n\n this.lastUpdate = Date.now();\n this.lastServerUpdate = receivedForm.lastServerUpdate;\n\n this.tokens = receivedForm.tokens;\n\n this.isComplete = receivedForm.isComplete;\n this.isFinished = receivedForm.isFinished;\n this.success = receivedForm.success;\n\n const receivedFormData = receivedForm.data ?? {};\n const hasMissing = has(receivedFormData, \"missing\");\n const hasErrors = has(receivedFormData, \"errors\");\n\n if (!hasMissing && !hasErrors) {\n this.handleFinished(receivedForm);\n }\n\n if (hasErrors) {\n this.handleErrors(receivedForm);\n }\n\n if (hasMissing) {\n this.handleMissing(receivedForm);\n }\n }\n\n return this;\n }\n\n /**\n */\n updateValidations(data: any): FormModel {\n if (this.currentFormObject) {\n this.currentFormObject.updateValidations(data);\n }\n\n return this;\n }\n\n /**\n * Retrieve success information from response\n * @returns {{redirect: string, data: object}}\n */\n get success(): { redirect: string, data: Object } | null {\n return this._success;\n }\n\n /**\n * Set success information, contains redirect and event data\n * @param success\n */\n set success(success: { redirect: string, data: Object } | null) {\n this._success = success;\n }\n\n /**\n */\n createSuccess() {\n this._success = this.data.success;\n }\n\n /**\n * Process finished form\n */\n handleFinished(receivedForm: FormModel) {\n if (this.currentFormObject) {\n this.completedFormObjects = [\n ...this.completedFormObjects,\n this.currentFormObject,\n ];\n }\n\n this.currentFormObject = receivedForm.currentFormObject;\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n this._data = receivedForm._data;\n }\n\n /**\n */\n handleRootErrors(errors: Array<Object>) {\n errors\n .filter((error) => !error.anchor)\n .forEach((error) => {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats,\n ),\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects,\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>,\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject,\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject),\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel,\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","LayoutHintCollection","AttributeSetModel","FormModel","constructor","modularuiResponse","_defineProperty","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","_mapInstanceProperty","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_Object$keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_findInstanceProperty","result","objectid","objectId","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filterInstanceProperty","formObject","equals","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includesInstanceProperty","otherProps","endResult","expectsEndResultFormObjects","_context12","endResultKeys","some","objectKey","content","_endResultFormObjects","getEndResultFormObjects","_context13","_context14","previousEndResultKeys","_context15","_previousEndResultKeys","endResultFormObjectKeys","isValid","isRepeatable","_context16","_context17","hasOneValidQuestion","object","hasServerErrors","errorCollection","hasItems","hasErrors","addServerError","error","id","message","resetErrors","_errorCollection","commit","_commit","isFinished","_isFinished","success","_isComplete","successRedirect","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","resultData","par","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndexInstanceProperty","obj","push","withConcurrencyToken","_JSON$stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_sliceInstanceProperty","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","handleMissingErrors","handleNewFormObject","processMissingErrors","_context27","attribute","hasAttributeByKey","addMissingError","removeMissingError","receivedCurrentFormObject","_context28","handlePreviouslyEnteredFormObjects","mergePreviouslyEnteredObjects","_mergePreviouslyEnteredObjects","_context29","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findAttribute","findMethod","foundAttribute","_context30"],"sources":["../../../src/models/form/FormModel.js"],"sourcesContent":["// @flow\nimport flattenDeep from \"lodash/flattenDeep\";\nimport deepmerge from \"deepmerge\";\n\nimport { has } from \"../../utils/helpers/objects\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport Href from \"../href/Href\";\nimport Parameter from \"../parameter/Parameter\";\n\nimport FormObjectModel from \"./FormObjectModel\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport {\n CREATE_ACTION,\n DELETE_ACTION,\n UPDATE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass FormModel extends ResourceModel {\n _lastUpdate: number;\n\n _completedFormObjects: Array<FormObjectModel> = [];\n _currentFormObject: FormObjectModel | null = null;\n _previouslyEnteredFormObjects: Array<FormObjectModel> = [];\n\n _mergePreviouslyEnteredObjects: boolean = true;\n\n _endResultFormObjects: Array<FormObjectModel> = [];\n _previousEndResultKeys: Array<string> = [];\n\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _errorCollection: ErrorCollection = new ErrorCollection(\"form\");\n\n _redirectLocation: Href;\n\n _commit: boolean;\n _isFinished: boolean;\n _isComplete: boolean;\n _success: { redirect: string, data: Object } | null;\n\n _parameters: Array<Parameter>;\n _tokens: Array<string>;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.lastUpdate = 0;\n\n this.currentFormObject = this.createFormObject();\n this.endResultFormObjects = this.setEndResultFormObjects();\n\n this.parameters = this.setParameters(modularuiResponse);\n\n this.isComplete = this.getData(\"complete\", false);\n\n if (this.data.errors) {\n this.handleRootErrors(this.data.errors);\n }\n\n this.createSuccess();\n }\n\n /**\n */\n get type(): string {\n return \"Form\";\n }\n\n /**\n */\n get actiontype(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"actiontype\", \"form\");\n }\n\n /**\n */\n static get modelName(): string {\n return \"FormModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Form\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const endResultChildLinks = flattenDeep(\n this.endResultFormObjects.map((endResultFormObject) =>\n endResultFormObject.getInitialChildModelLinks(),\n ),\n );\n\n if (this.currentFormObject === null) {\n return endResultChildLinks;\n }\n\n return [\n ...this.currentFormObject.getInitialChildModelLinks(),\n ...endResultChildLinks,\n ];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models, errors);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models, errors);\n });\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Get form level button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * @returns button label from contributions;\n */\n getButtonLabel(\n buttonType: \"cancel\" | \"previous\" | \"next\" | \"finish\",\n ): string | null {\n // cancel button labels are defined on the form\n if (buttonType === \"cancel\") {\n return this.buttonLabels?.cancel ?? null;\n }\n\n // all other form related button labels are defined on the object\n return this.currentFormObject?.buttonLabels?.[buttonType] ?? null;\n }\n\n /**\n * Get all applicable objects\n */\n get allObjects(): Array<FormObjectModel> {\n if (this.currentFormObject === null) {\n return this.completedFormObjects;\n }\n\n return [...this.completedFormObjects, this.currentFormObject];\n }\n\n /**\n */\n get objectKeys(): Array<string> {\n if (has(this.contributions, \"objects\")) {\n return Object.keys(this.contributions.objects);\n }\n\n return [];\n }\n\n /**\n */\n get numberOfExpectedQuestions(): number {\n return this.objectKeys.length;\n }\n\n /**\n * Has questions configured on form\n */\n get hasNoQuestionsConfigured(): boolean {\n return (\n this.isComplete &&\n (this.objectKeys.length === 0 ||\n (!(\"missing\" in this.data) &&\n !(\"results\" in this.data) &&\n !(\"errors\" in this.data)))\n );\n }\n\n /**\n */\n addGlobalDynamicSchema(anchor: Object, dynamicschema: Object): Object {\n if (!dynamicschema) {\n return anchor;\n }\n\n return {\n ...anchor,\n elements: anchor.elements.map((element) => ({\n ...element,\n dynamicschema: element.dynamicschema\n ? element.dynamicschema.map((item) => ({\n ...item,\n elements: { ...item.elements, dynamicschema },\n }))\n : null,\n })),\n };\n }\n\n /**\n */\n getMissingAnchors(): Array<Object> {\n const missingAnchors = this.data.missing?.anchors ?? [];\n\n // Add intermediate result data to anchor\n return missingAnchors.map((anchor) => {\n if (this.data.results) {\n const resultObject = this.data.results.find(\n (result) =>\n result.objectid === anchor.objectid && \"elements\" in result,\n );\n\n if (resultObject) {\n anchor.results = resultObject.elements;\n }\n }\n\n return this.addGlobalDynamicSchema(anchor, this.data.dynamicschema);\n });\n }\n\n /**\n * Create form object based on the data and contributions available in this form\n */\n createFormObject(): FormObjectModel | null {\n if (this.data && this.contributions) {\n const missingAnchors = this.getMissingAnchors();\n\n // Get object id from first anchor\n const objectId = missingAnchors?.[0]?.objectid ?? \"\";\n const contributions = this.contributions.objects?.[objectId];\n if (contributions) {\n return new FormObjectModel(missingAnchors[0], contributions);\n }\n }\n\n return null;\n }\n\n /**\n */\n addEmptyFormObject(\n formObjectModel: FormObjectModel | null = this.currentFormObject,\n ) {\n if (formObjectModel) {\n const emptyFormObject = FormObjectModel.createEmpty(formObjectModel);\n\n emptyFormObject.repeatIndex =\n this.getHighestRepeatIndex(formObjectModel) + 1;\n\n this.addFormObject(emptyFormObject);\n }\n }\n\n /**\n */\n getHighestRepeatIndex(formObjectModel: FormObjectModel): number {\n return Math.max(\n ...this.allObjects\n .filter((formObject) => formObject.equals(formObjectModel, false))\n .map((formObject) => formObject.repeatIndex),\n );\n }\n\n /**\n */\n addFormObject(formObjectModel: FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to add\");\n }\n\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = formObjectModel;\n }\n\n /**\n * Retrieve a form object by the key\n */\n getFormObjectByKey(key: string): ?FormObjectModel {\n return this.allObjects.find((formObject) => formObject.key === key);\n }\n\n /**\n * Retrieve a form object by a layouthint\n */\n getFormObjectByLayoutHint(hint: string): ?FormObjectModel {\n return this.allObjects.find((formObject) =>\n formObject.layouthint.has(hint),\n );\n }\n\n /**\n */\n removeFormObject(formObjectModel: ?FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to remove\");\n }\n if (formObjectModel.equals(this.currentFormObject)) {\n throw new IllegalArgumentException(\n \"Can not remove the current form object\",\n );\n }\n\n this.completedFormObjects = this.completedFormObjects.filter(\n (formObject) => !formObject.equals(formObjectModel),\n );\n }\n\n /**\n */\n get currentFormObject(): FormObjectModel | null {\n return this._currentFormObject;\n }\n\n /**\n */\n set currentFormObject(formObject: FormObjectModel | null) {\n this._currentFormObject = formObject;\n }\n\n /**\n * Completed objects are previously entered questions\n */\n get completedFormObjects(): Array<FormObjectModel> {\n return this._completedFormObjects;\n }\n\n /**\n */\n set completedFormObjects(formObjects: Array<FormObjectModel>) {\n this._completedFormObjects = formObjects;\n }\n\n /**\n * Previously entered objects are questions that have been entered before,\n * but are currently not applicable for the form.\n * For example because of previous navigation\n */\n get previouslyEnteredFormObjects(): Array<FormObjectModel> {\n return this._previouslyEnteredFormObjects;\n }\n\n /**\n */\n set previouslyEnteredFormObjects(formObjects: Array<FormObjectModel>) {\n this._previouslyEnteredFormObjects = formObjects;\n }\n\n /**\n * Handle end results\n */\n setEndResultFormObjects(): Array<FormObjectModel> {\n if (this.data && this.data.results) {\n const missingObjects = this.data.missing?.anchors ?? [];\n const missingObjectIds = missingObjects.map((anchor) => anchor.objectid);\n\n // Filter out intermediate results and rename elements property to result property\n const endResultAnchors = this.data.results\n .filter((result) => !missingObjectIds.includes(result.objectid))\n .map((result) => {\n const { elements, ...otherProps } = result;\n\n return {\n ...otherProps,\n results: elements,\n };\n });\n\n if (endResultAnchors.length > 0) {\n return endResultAnchors.map(\n (endResult) =>\n new FormObjectModel(\n endResult,\n this.contributions.objects[endResult.objectid],\n ),\n );\n }\n }\n\n return [];\n }\n\n /**\n */\n get expectsEndResultFormObjects(): boolean {\n const endResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n return this.objectKeys.some(\n (objectKey) =>\n this.contributions.objects?.[objectKey]?.content?.results &&\n !endResultKeys.includes(objectKey),\n );\n }\n\n /**\n */\n get endResultFormObjects(): Array<FormObjectModel> {\n return this._endResultFormObjects;\n }\n\n /**\n */\n getEndResultFormObjects(): Array<FormObjectModel> {\n return this.endResultFormObjects.filter(\n (endResult) => !this.previousEndResultKeys.includes(endResult.key),\n );\n }\n\n /**\n */\n set endResultFormObjects(endResultFormObjects: Array<FormObjectModel>) {\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n this._endResultFormObjects = endResultFormObjects;\n }\n\n /**\n */\n get previousEndResultKeys(): Array<string> {\n return this._previousEndResultKeys;\n }\n\n /**\n */\n set previousEndResultKeys(endResultFormObjectKeys: Array<string>) {\n this._previousEndResultKeys = endResultFormObjectKeys;\n }\n\n /**\n * Error handling\n */\n get isValid(): boolean {\n if (this.currentFormObject) {\n if (this.currentFormObject.isRepeatable) {\n // repeating objects need at least one valid form object\n const hasOneValidQuestion = this.allObjects\n .filter((object) => object.equals(this.currentFormObject, false))\n .find((object) => object.isValid);\n\n if (hasOneValidQuestion) {\n return true;\n }\n }\n\n return this.currentFormObject?.isValid ?? true;\n }\n\n return true;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasServerErrors();\n }\n\n return false;\n }\n\n /**\n */\n hasErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasErrors();\n }\n\n return false;\n }\n\n /**\n * Add an error to the error collection of this form\n */\n addServerError(error: ErrorResponse) {\n if (error.parameters) {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.parameters,\n error.layouthint,\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint,\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || this.success != undefined;\n }\n\n /**\n */\n set isFinished(isFinished: boolean) {\n this._isFinished = isFinished;\n }\n\n /**\n * Indicates if form is completely entered\n */\n get isComplete(): boolean {\n return this._isComplete;\n }\n\n /**\n */\n set isComplete(isComplete: boolean) {\n this._isComplete = isComplete;\n }\n\n /**\n * Handle success redirects\n */\n get successRedirect(): Href | null {\n return this.isFinished && this.success\n ? new Href(this.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n * Get the result data as plain json object\n */\n getSuccessData(): ?Object {\n return this.success?.data;\n }\n\n /**\n * Retrieve an object where each property is a result data attribute set\n */\n getResultData(): ?{\n [key: string]: AttributeSetModel,\n } {\n const resultDataKeys = Object.keys(this.contributions.resultdata) ?? [];\n const successData = this.getSuccessData() ?? {};\n\n const resultdata: {\n [key: string]: AttributeSetModel,\n } = {};\n\n for (const resultDataKey of resultDataKeys) {\n resultdata[resultDataKey] = new AttributeSetModel(\n resultDataKey,\n successData[resultDataKey],\n this.contributions.resultdata[resultDataKey],\n );\n }\n\n return resultdata;\n }\n\n /**\n */\n get resultData(): ?Object {\n return this.getSuccessData();\n }\n\n /**\n * Href handling\n */\n setParameters(modularuiResponse: ModularUIResponse): Array<Parameter> {\n const parameters = modularuiResponse?.parameters ?? [];\n return parameters.map(\n (par) => new Parameter(par._prefix, par._name, par._value),\n );\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n selfhrefNoCommitParam(): Href {\n const selfhref = this.selflink.href;\n selfhref.method = HTTP_METHODS.POST;\n\n selfhref.parameters = this.parameters.filter(\n (parameter) => parameter.name !== \"commit\",\n );\n\n return selfhref;\n }\n\n /**\n */\n selfhrefWithCommitParam(): Href {\n const selfhref = this.selfhrefNoCommitParam();\n\n if (this.expectsEndResultFormObjects && !this.isComplete && !this.commit) {\n selfhref.addParameter(\"commit\", \"false\");\n }\n\n return selfhref;\n }\n\n /**\n * Create a selfhref including the parameters that are used to start this form\n */\n get selfhref(): Href {\n if (!this.selflink) {\n throw new Error(\"No self link found for form\");\n }\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return this.selfhrefNoCommitParam();\n }\n\n return this.selfhrefWithCommitParam();\n }\n\n /**\n * Handle form tokens to indicate concurrent form use\n */\n get tokens(): Array<string> {\n if (!this._tokens) {\n this._tokens = this.data.tokens ?? [];\n }\n return this._tokens;\n }\n\n /**\n * Replaces all tokens with the given collection of tokens\n */\n set tokens(tokens: Array<string>) {\n this._tokens = tokens;\n }\n\n /**\n * Removes all tokens from the form\n */\n removeTokens() {\n this._tokens = [];\n }\n\n /**\n * Keep track of changed form\n */\n isChanged(): boolean {\n return (\n this.currentFormObject !== null &&\n this.currentFormObject.isChangedSince(this.lastUpdate)\n );\n }\n\n /**\n */\n get lastUpdate(): number {\n return this._lastUpdate;\n }\n\n /**\n */\n set lastUpdate(lastUpdate: number) {\n this._lastUpdate = lastUpdate;\n }\n\n /**\n */\n getFormDataObjects(\n validOnly: boolean = true,\n validationData: boolean = false,\n ): Array<Object> {\n const formdata = [];\n\n const formObjects = this.allObjects.filter((formObject, index) => {\n // repeatabe object without fixed nr of repeats, remove last form object from formdata,\n // because this is the formobject that is used as a placeholder for the create object\n // of the collection of repeats\n if (formObject.isRepeatable && !formObject.hasFixedNrOfRepeats) {\n const isLastRepeat =\n index === this.allObjects.length - 1 ||\n this.allObjects[index + 1].key !== formObject.key;\n\n if (isLastRepeat) {\n return false;\n }\n }\n\n return formObject.isValid || !validOnly;\n });\n\n formObjects.forEach((formObject) => {\n const objectFormData = formObject.getFormData(validationData);\n\n const existingObjectIndex = formdata.findIndex(\n (obj) =>\n obj.key === formObject.key &&\n obj.repeatIndex === formObject.repeatIndex,\n );\n\n /*\n * when the object already exists in the formdata with the same key and index,\n * merge the attributes of both objects together\n */\n if (existingObjectIndex > -1) {\n formdata[existingObjectIndex].formdata = deepmerge(\n formdata[existingObjectIndex].formdata,\n objectFormData,\n );\n } else {\n formdata.push({\n key: formObject.key,\n repeatIndex: formObject.repeatIndex,\n formdata: objectFormData,\n });\n }\n });\n\n return formdata.map((obj) => ({ [obj.key]: obj.formdata }));\n }\n\n /**\n */\n getFormData(\n validOnly: boolean = true,\n withConcurrencyToken: boolean = true,\n validationData: boolean = false,\n ): string {\n if (withConcurrencyToken && this.tokens.length > 0) {\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n tokens: this.tokens,\n });\n }\n\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n });\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n this._useClientsideValidation = enabled;\n\n this.allObjects.forEach((formObject) => {\n formObject.attributeCollection.all.forEach((item: AttributeType) =>\n item.setUseClientsideValidation(enabled),\n );\n });\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Get form data for submitting\n */\n get formdata(): string {\n return this.getFormData(this.useClientsideValidation());\n }\n\n /**\n */\n get validationData(): string {\n return this.getFormData(false, false, true);\n }\n\n /**\n * Form navigation: Go one object back (previous button)\n */\n get hasPreviousStep(): boolean {\n const currentFormObjectKey =\n this.currentFormObject != null ? this.currentFormObject.key : \"\";\n\n return (\n this.completedFormObjects.filter(\n (formObject) =>\n !formObject.isRepeatWithUnknownTotal ||\n formObject.key !== currentFormObjectKey,\n ).length > 0\n );\n }\n\n /**\n * Go one form-object back,\n * for repeating object this means go back\n * until we get at a form object that had\n * a different key than the current form object\n */\n setPreviousObject() {\n this.isComplete = false;\n this.isFinished = false;\n this.success = null;\n\n const oldCurrentFormObject = this.currentFormObject;\n\n if (this.currentFormObject !== null) {\n this.previouslyEnteredFormObjects = [\n this.currentFormObject,\n ...this.previouslyEnteredFormObjects,\n ];\n }\n\n this.currentFormObject =\n this.completedFormObjects[this.completedFormObjects.length - 1];\n this.completedFormObjects = this.completedFormObjects.slice(0, -1);\n\n const completedFormObjectKeys = this.completedFormObjects\n .map((formObject) => formObject.key)\n .filter((formObjectKey) => formObjectKey !== this.currentFormObject?.key);\n\n this.endResultFormObjects = this._endResultFormObjects.filter((endResult) =>\n completedFormObjectKeys.includes(endResult.key),\n );\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n // while we are at the same repeating form object, go a step back\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(\n oldCurrentFormObject,\n this.currentFormObject.hasFixedNrOfRepeats,\n )\n ) {\n this.setPreviousObject();\n }\n }\n\n /**\n * Form navigation: has next step or is last\n */\n get hasNextStep(): boolean {\n if (\n this.isComplete ||\n this.isFinished ||\n this.hasNoQuestionsConfigured ||\n !this.contributions.objects\n ) {\n return false;\n }\n\n // current object is a dynamic object\n if (this.currentFormObject && this.currentFormObject.isDynamic) {\n return true;\n }\n\n if (this.expectsEndResultFormObjects) {\n return true;\n }\n\n const currentObjectIndex = this.objectKeys.findIndex(\n (objectKey) => objectKey === this.currentFormObject?.key,\n );\n const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;\n\n // current object is a repeating question but it is not the last one\n if (\n isLastObject &&\n this.currentFormObject &&\n this.currentFormObject.isRepeatable &&\n !this.currentFormObject.isLastRepeat\n ) {\n return true;\n }\n\n // current object is not repeatable and the last object\n if (isLastObject) {\n return false;\n }\n\n // can't determine if this is te last, render a next button\n return true;\n }\n\n /**\n * Merge existing form with new form\n */\n update(receivedForm: ModularUIModel): FormModel {\n if (receivedForm instanceof FormModel) {\n this.resetErrors();\n\n this.lastUpdate = Date.now();\n this.lastServerUpdate = receivedForm.lastServerUpdate;\n\n this.tokens = receivedForm.tokens;\n\n this.isComplete = receivedForm.isComplete;\n this.isFinished = receivedForm.isFinished;\n this.success = receivedForm.success;\n\n const receivedFormData = receivedForm.data ?? {};\n const hasMissing = has(receivedFormData, \"missing\");\n const hasErrors = has(receivedFormData, \"errors\");\n\n if (!hasMissing && !hasErrors) {\n this.handleFinished(receivedForm);\n }\n\n if (hasErrors) {\n this.handleErrors(receivedForm);\n }\n\n if (hasMissing) {\n this.handleMissing(receivedForm);\n }\n }\n\n return this;\n }\n\n /**\n */\n updateValidations(data: any): FormModel {\n if (this.currentFormObject) {\n this.currentFormObject.updateValidations(data);\n }\n\n return this;\n }\n\n /**\n * Retrieve success information from response\n * @returns {{redirect: string, data: object}}\n */\n get success(): { redirect: string, data: Object } | null {\n return this._success;\n }\n\n /**\n * Set success information, contains redirect and event data\n * @param success\n */\n set success(success: { redirect: string, data: Object } | null) {\n this._success = success;\n }\n\n /**\n */\n createSuccess() {\n this._success = this.data.success;\n }\n\n /**\n * Process finished form\n */\n handleFinished(receivedForm: FormModel) {\n if (this.currentFormObject) {\n this.completedFormObjects = [\n ...this.completedFormObjects,\n this.currentFormObject,\n ];\n }\n\n this.currentFormObject = receivedForm.currentFormObject;\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n this._data = receivedForm._data;\n }\n\n /**\n */\n handleRootErrors(errors: Array<Object>) {\n errors\n .filter((error) => !error.anchor)\n .forEach((error) => {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats,\n ),\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects,\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>,\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject,\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject),\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel,\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormObjectModel.js","names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","LayoutHintCollection","FormObjectModel","constructor","object","objectContributions","_defineProperty","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filterInstanceProperty","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_mapInstanceProperty","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_Object$keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","errors","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","update","isChangedSince","timestamp","_context4","_findInstanceProperty","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","attributeErrors","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\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 mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n if (!anchor.objectid || anchor.objectid === this.key) {\n if (Array.isArray(anchor.elements)) {\n for (const element of anchor.elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormObjectModel.js","names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","LayoutHintCollection","FormObjectModel","constructor","object","objectContributions","_defineProperty","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filterInstanceProperty","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_mapInstanceProperty","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_Object$keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","errors","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","update","isChangedSince","timestamp","_context4","_findInstanceProperty","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","attributeErrors","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\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 mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n if (!anchor.objectid || anchor.objectid === this.key) {\n if (Array.isArray(anchor.elements)) {\n for (const element of anchor.elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingModel.js","names":["AttributeCollection","GroupModel","constructor","group","context","contributions","_defineProperty","_group","_context","_attributeCollection","attributes","grouping","_grouping","GroupingModel","dynamicschema","type","id","_id","label","attributeCollection","reference","hasAttributeByKey","key","getAttributeByKey","data","contexts","_prefix","prefix","_groups","createGroup","getContextFromContributionsByPrefix","_mapInstanceProperty","call","getDynamicSchema","groups","hasGroups","length","_findInstanceProperty","some","_context2","groupByKey","getGroupByAttributeKey","_context3"],"sources":["../../../src/models/grouping/GroupingModel.js"],"sourcesContent":["// @flow\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport type { AttributeType } from \"../types\";\n\n/**\n * Group information model\n * Put GroupModel here because of possible circular dependency with GroupingModel below\n */\nexport class GroupModel {\n _group: Object;\n _context: Object;\n _attributeCollection: AttributeCollection;\n _grouping: ?GroupingModel;\n\n /**\n */\n constructor(group: Object, context: Object, contributions: Array<Object>) {\n this._group = group;\n this._context = context;\n\n this._attributeCollection = new AttributeCollection(\n group,\n context.attributes,\n );\n\n if (group.grouping) {\n this._grouping = new GroupingModel(\n { ...group.grouping, dynamicschema: group.dynamicschema },\n contributions,\n );\n }\n }\n\n /**\n */\n get type(): string {\n return this._group.type;\n }\n\n /**\n */\n get id(): string {\n return this._group._id || \"unknown\";\n }\n\n /**\n */\n get label(): string {\n return this._context.label;\n }\n\n /**\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n get grouping(): ?GroupingModel {\n return this._grouping;\n }\n\n /**\n * Retrieve array of reference id's\n */\n get reference(): Array<number> {\n return this._group.reference || [];\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n if (this.attributeCollection.hasAttributeByKey(key)) {\n return true;\n }\n\n if (this.grouping) {\n return this.grouping.hasAttributeByKey(key);\n }\n\n return false;\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n if (this.attributeCollection.hasAttributeByKey(key)) {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n if (this.grouping) {\n return this.grouping.getAttributeByKey(key);\n }\n\n return null;\n }\n}\n\ntype Context = {\n prefix: string,\n label: string,\n metadata: Object,\n attributes: Array<Object>,\n};\n\n/**\n * Grouping model to group lists\n */\nexport default class GroupingModel {\n _prefix: string | null;\n _groups: Array<GroupModel> = [];\n\n /**\n */\n constructor(data: Object, contexts: Array<Context>) {\n this._prefix = data && data.prefix ? data.prefix : null;\n\n if (data?.group) {\n this._groups = this.createGroup(data, contexts);\n }\n }\n\n /**\n */\n createGroup(data: Object, contributions: Array<Context>): Array<Object> {\n const context = this.getContextFromContributionsByPrefix(\n contributions,\n this._prefix,\n );\n\n return data.group.map((group) => {\n const dynamicschema = this.getDynamicSchema(group, data.dynamicschema);\n return new GroupModel(\n {\n ...group,\n dynamicschema,\n },\n context,\n contributions,\n );\n });\n }\n\n /**\n * add grouped prefix to the dynamicschema\n */\n getDynamicSchema(group: Object, dynamicschema: Object): Object {\n if (dynamicschema) {\n if (\n this._prefix &&\n dynamicschema[group.type] &&\n !dynamicschema[this._prefix + group.type]\n ) {\n dynamicschema[this._prefix + group.type] = dynamicschema[group.type];\n }\n return dynamicschema;\n }\n return null;\n }\n\n /**\n * Retrieve groups of grouping\n */\n get groups(): Array<GroupModel> {\n return this._groups;\n }\n\n /**\n * Inidicates if Grouping has one or more groups\n */\n hasGroups(): boolean {\n return this._groups.length > 0;\n }\n\n /**\n * Get context of grouping\n */\n getContextFromContributionsByPrefix(\n contexts: Array<Object>,\n prefix: string | null,\n ): Object {\n if (contexts && prefix !== null) {\n return contexts.find((context) => context.prefix === prefix) || {};\n }\n\n return {};\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.groups.some((group: GroupModel) =>\n group.hasAttributeByKey(key),\n );\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n const groupByKey = this.groups.find((group: GroupModel) =>\n group.hasAttributeByKey(key),\n );\n\n if (groupByKey) {\n return groupByKey.getAttributeByKey(key);\n }\n return null;\n }\n\n /**\n */\n getGroupByAttributeKey(key: string): ?GroupModel {\n return this.groups.find((group) => group.hasAttributeByKey(key));\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"GroupingModel.js","names":["AttributeCollection","GroupModel","constructor","group","context","contributions","_defineProperty","_group","_context","_attributeCollection","attributes","grouping","_grouping","GroupingModel","dynamicschema","type","id","_id","label","attributeCollection","reference","hasAttributeByKey","key","getAttributeByKey","data","contexts","_prefix","prefix","_groups","createGroup","getContextFromContributionsByPrefix","_mapInstanceProperty","call","getDynamicSchema","groups","hasGroups","length","_findInstanceProperty","some","_context2","groupByKey","getGroupByAttributeKey","_context3"],"sources":["../../../src/models/grouping/GroupingModel.js"],"sourcesContent":["// @flow\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport type { AttributeType } from \"../types\";\n\n/**\n * Group information model\n * Put GroupModel here because of possible circular dependency with GroupingModel below\n */\nexport class GroupModel {\n _group: Object;\n _context: Object;\n _attributeCollection: AttributeCollection;\n _grouping: ?GroupingModel;\n\n /**\n */\n constructor(group: Object, context: Object, contributions: Array<Object>) {\n this._group = group;\n this._context = context;\n\n this._attributeCollection = new AttributeCollection(\n group,\n context.attributes,\n );\n\n if (group.grouping) {\n this._grouping = new GroupingModel(\n { ...group.grouping, dynamicschema: group.dynamicschema },\n contributions,\n );\n }\n }\n\n /**\n */\n get type(): string {\n return this._group.type;\n }\n\n /**\n */\n get id(): string {\n return this._group._id || \"unknown\";\n }\n\n /**\n */\n get label(): string {\n return this._context.label;\n }\n\n /**\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n get grouping(): ?GroupingModel {\n return this._grouping;\n }\n\n /**\n * Retrieve array of reference id's\n */\n get reference(): Array<number> {\n return this._group.reference || [];\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n if (this.attributeCollection.hasAttributeByKey(key)) {\n return true;\n }\n\n if (this.grouping) {\n return this.grouping.hasAttributeByKey(key);\n }\n\n return false;\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n if (this.attributeCollection.hasAttributeByKey(key)) {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n if (this.grouping) {\n return this.grouping.getAttributeByKey(key);\n }\n\n return null;\n }\n}\n\ntype Context = {\n prefix: string,\n label: string,\n metadata: Object,\n attributes: Array<Object>,\n};\n\n/**\n * Grouping model to group lists\n */\nexport default class GroupingModel {\n _prefix: string | null;\n _groups: Array<GroupModel> = [];\n\n /**\n */\n constructor(data: Object, contexts: Array<Context>) {\n this._prefix = data && data.prefix ? data.prefix : null;\n\n if (data?.group) {\n this._groups = this.createGroup(data, contexts);\n }\n }\n\n /**\n */\n createGroup(data: Object, contributions: Array<Context>): Array<Object> {\n const context = this.getContextFromContributionsByPrefix(\n contributions,\n this._prefix,\n );\n\n return data.group.map((group) => {\n const dynamicschema = this.getDynamicSchema(group, data.dynamicschema);\n return new GroupModel(\n {\n ...group,\n dynamicschema,\n },\n context,\n contributions,\n );\n });\n }\n\n /**\n * add grouped prefix to the dynamicschema\n */\n getDynamicSchema(group: Object, dynamicschema: Object): Object {\n if (dynamicschema) {\n if (\n this._prefix &&\n dynamicschema[group.type] &&\n !dynamicschema[this._prefix + group.type]\n ) {\n dynamicschema[this._prefix + group.type] = dynamicschema[group.type];\n }\n return dynamicschema;\n }\n return null;\n }\n\n /**\n * Retrieve groups of grouping\n */\n get groups(): Array<GroupModel> {\n return this._groups;\n }\n\n /**\n * Inidicates if Grouping has one or more groups\n */\n hasGroups(): boolean {\n return this._groups.length > 0;\n }\n\n /**\n * Get context of grouping\n */\n getContextFromContributionsByPrefix(\n contexts: Array<Object>,\n prefix: string | null,\n ): Object {\n if (contexts && prefix !== null) {\n return contexts.find((context) => context.prefix === prefix) || {};\n }\n\n return {};\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.groups.some((group: GroupModel) =>\n group.hasAttributeByKey(key),\n );\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n const groupByKey = this.groups.find((group: GroupModel) =>\n group.hasAttributeByKey(key),\n );\n\n if (groupByKey) {\n return groupByKey.getAttributeByKey(key);\n }\n return null;\n }\n\n /**\n */\n getGroupByAttributeKey(key: string): ?GroupModel {\n return this.groups.find((group) => group.hasAttributeByKey(key));\n }\n}\n"],"mappings":"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","ignoreList":[]}