@beinformed/ui 1.42.1 → 1.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. package/CHANGELOG.md +14 -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 +19 -23
  34. package/esm/hooks/useModelCatalog.js.map +1 -1
  35. package/esm/hooks/useModels.js +15 -1
  36. package/esm/hooks/useModels.js.map +1 -1
  37. package/esm/hooks/useModularUI.js.map +1 -1
  38. package/esm/hooks/useModularUIBasic.js.map +1 -1
  39. package/esm/hooks/useModularUIModel.js.map +1 -1
  40. package/esm/hooks/useModularUIRequest.js.map +1 -1
  41. package/esm/hooks/useNotification.js.map +1 -1
  42. package/esm/hooks/usePreference.js.map +1 -1
  43. package/esm/hooks/useProgressIndicator.js.map +1 -1
  44. package/esm/hooks/useRouter.js.map +1 -1
  45. package/esm/i18n/Locale.js.map +1 -1
  46. package/esm/i18n/Locales.js.map +1 -1
  47. package/esm/i18n/Message.js.map +1 -1
  48. package/esm/i18n/index.js.map +1 -1
  49. package/esm/i18n/languages.js.map +1 -1
  50. package/esm/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  51. package/esm/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  52. package/esm/i18n/types.js.map +1 -1
  53. package/esm/i18n/withMessage.js.map +1 -1
  54. package/esm/index.js.map +1 -1
  55. package/esm/models/actions/ActionCollection.js.map +1 -1
  56. package/esm/models/actions/ActionModel.js.map +1 -1
  57. package/esm/models/application/ApplicationModel.js.map +1 -1
  58. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  59. package/esm/models/attributes/AttributeContent.js.map +1 -1
  60. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  61. package/esm/models/attributes/AttributeModel.js.map +1 -1
  62. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  63. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  64. package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
  65. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  66. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  67. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  68. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  69. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  70. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  71. package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
  72. package/esm/models/attributes/LabelAttributeModel.js.map +1 -1
  73. package/esm/models/attributes/MemoAttributeModel.js.map +1 -1
  74. package/esm/models/attributes/MoneyAttributeModel.js.map +1 -1
  75. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  76. package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
  77. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  78. package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
  79. package/esm/models/attributes/XMLAttributeModel.js.map +1 -1
  80. package/esm/models/attributes/_createAttribute.js.map +1 -1
  81. package/esm/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  82. package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  83. package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  84. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  85. package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  86. package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  87. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  88. package/esm/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  89. package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  90. package/esm/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  91. package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  92. package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  93. package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  94. package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  95. package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  96. package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  97. package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  98. package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  99. package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  100. package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  101. package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  102. package/esm/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  103. package/esm/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  104. package/esm/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  105. package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  106. package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  107. package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  108. package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  109. package/esm/models/base/BaseCollection.js.map +1 -1
  110. package/esm/models/base/BaseModel.js.map +1 -1
  111. package/esm/models/base/ResourceCollection.js.map +1 -1
  112. package/esm/models/base/ResourceModel.js.map +1 -1
  113. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  114. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  115. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  116. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  117. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  118. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  119. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  120. package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  121. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  122. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  123. package/esm/models/content/ContentIndexModel.js.map +1 -1
  124. package/esm/models/content/ContentLinkModel.js.map +1 -1
  125. package/esm/models/content/ContentModel.js.map +1 -1
  126. package/esm/models/content/ContentTOCModel.js.map +1 -1
  127. package/esm/models/content/ContentTypeModel.js.map +1 -1
  128. package/esm/models/content/SectionModel.js.map +1 -1
  129. package/esm/models/content/SubSectionModel.js.map +1 -1
  130. package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  131. package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  132. package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  133. package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  134. package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  135. package/esm/models/detail/DetailModel.js.map +1 -1
  136. package/esm/models/error/ErrorCollection.js.map +1 -1
  137. package/esm/models/error/ErrorModel.js.map +1 -1
  138. package/esm/models/error/ErrorResponse.js.map +1 -1
  139. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  140. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  141. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  142. package/esm/models/filters/FilterCollection.js.map +1 -1
  143. package/esm/models/filters/FilterModel.js.map +1 -1
  144. package/esm/models/filters/RangeFilterModel.js.map +1 -1
  145. package/esm/models/filters/StringFilterModel.js.map +1 -1
  146. package/esm/models/form/FormModel.js.map +1 -1
  147. package/esm/models/form/FormObjectModel.js.map +1 -1
  148. package/esm/models/grouping/GroupingModel.js.map +1 -1
  149. package/esm/models/href/Href.js.map +1 -1
  150. package/esm/models/href/ListHref.js.map +1 -1
  151. package/esm/models/index.js.map +1 -1
  152. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  153. package/esm/models/links/LinkCollection.js.map +1 -1
  154. package/esm/models/links/LinkModel.js.map +1 -1
  155. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  156. package/esm/models/list/ListDetailModel.js.map +1 -1
  157. package/esm/models/list/ListHeaderModel.js.map +1 -1
  158. package/esm/models/list/ListItemCollection.js.map +1 -1
  159. package/esm/models/list/ListItemModel.js.map +1 -1
  160. package/esm/models/list/ListModel.js.map +1 -1
  161. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  162. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  163. package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  164. package/esm/models/paging/PagesizeModel.js.map +1 -1
  165. package/esm/models/paging/PagingModel.js.map +1 -1
  166. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  167. package/esm/models/parameter/Parameter.js.map +1 -1
  168. package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
  169. package/esm/models/resolveModel.js.map +1 -1
  170. package/esm/models/search/CaseSearchModel.js.map +1 -1
  171. package/esm/models/sorting/SortOptionModel.js.map +1 -1
  172. package/esm/models/sorting/SortingModel.js.map +1 -1
  173. package/esm/models/tab/TabModel.js.map +1 -1
  174. package/esm/models/taskgroup/TaskGroupCollection.js.map +1 -1
  175. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  176. package/esm/models/types.js.map +1 -1
  177. package/esm/models/user/UserModel.js.map +1 -1
  178. package/esm/models/user/UserProfileModel.js.map +1 -1
  179. package/esm/models/user/UserServicesModel.js.map +1 -1
  180. package/esm/modularui/Authenticate.js.map +1 -1
  181. package/esm/modularui/CaptchaRequest.js.map +1 -1
  182. package/esm/modularui/ModularUIError.js.map +1 -1
  183. package/esm/modularui/ModularUIRequest.js.map +1 -1
  184. package/esm/modularui/ModularUIResponse.js.map +1 -1
  185. package/esm/modularui/UploadRequest.js.map +1 -1
  186. package/esm/modularui/index.js.map +1 -1
  187. package/esm/modularui/types.js.map +1 -1
  188. package/esm/react/ErrorBoundary.js.map +1 -1
  189. package/esm/react/ErrorBoundaryFallback.js.map +1 -1
  190. package/esm/react/index.js.map +1 -1
  191. package/esm/react/utils.js.map +1 -1
  192. package/esm/react-client/Init.js.map +1 -1
  193. package/esm/react-client/client.js.map +1 -1
  194. package/esm/react-client/contextPath.js.map +1 -1
  195. package/esm/react-client/index.js.map +1 -1
  196. package/esm/react-client/rehydrate.js.map +1 -1
  197. package/esm/react-server/contextPath.js.map +1 -1
  198. package/esm/react-server/createSSRComplete.js.map +1 -1
  199. package/esm/react-server/htmlpage.js.map +1 -1
  200. package/esm/react-server/index.js.map +1 -1
  201. package/esm/react-server/renderSSRComplete.js.map +1 -1
  202. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  203. package/esm/react-server/requestInformation.js.map +1 -1
  204. package/esm/react-server/serverNoSSR.js.map +1 -1
  205. package/esm/react-server/serverSSR.js.map +1 -1
  206. package/esm/react-server/serverUtil.js.map +1 -1
  207. package/esm/react-theme/ThemeProvider.js.map +1 -1
  208. package/esm/react-theme/createTheme.js.map +1 -1
  209. package/esm/react-theme/index.js.map +1 -1
  210. package/esm/react-theme/types.js.map +1 -1
  211. package/esm/react-theme/useTheme.js.map +1 -1
  212. package/esm/react-theme/utils/background.js.map +1 -1
  213. package/esm/react-theme/utils/colors.js.map +1 -1
  214. package/esm/react-theme/utils/contrast.js.map +1 -1
  215. package/esm/react-theme/utils/corners.js.map +1 -1
  216. package/esm/react-theme/utils/spacers.js.map +1 -1
  217. package/esm/react-theme/utils/themeProps.js.map +1 -1
  218. package/esm/redux/_i18n/I18nActions.js.map +1 -1
  219. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  220. package/esm/redux/_i18n/index.js.map +1 -1
  221. package/esm/redux/_i18n/types.js.map +1 -1
  222. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  223. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  224. package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  225. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  226. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  227. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  228. package/esm/redux/_modularui/index.js.map +1 -1
  229. package/esm/redux/_modularui/types.js.map +1 -1
  230. package/esm/redux/_modularui/withModularUI.js.map +1 -1
  231. package/esm/redux/_router/RouterActions.js.map +1 -1
  232. package/esm/redux/_router/RouterConnectors.js.map +1 -1
  233. package/esm/redux/_router/RouterMiddleware.js.map +1 -1
  234. package/esm/redux/_router/RouterReducer.js.map +1 -1
  235. package/esm/redux/_router/index.js.map +1 -1
  236. package/esm/redux/_router/types.js.map +1 -1
  237. package/esm/redux/actions/Application.js.map +1 -1
  238. package/esm/redux/actions/Authorization.js.map +1 -1
  239. package/esm/redux/actions/Error.js.map +1 -1
  240. package/esm/redux/actions/Form.js.map +1 -1
  241. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  242. package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  243. package/esm/redux/actions/FormAutosave.js.map +1 -1
  244. package/esm/redux/actions/FormAutosubmit.js.map +1 -1
  245. package/esm/redux/actions/FormValidations.js.map +1 -1
  246. package/esm/redux/actions/Modals.js.map +1 -1
  247. package/esm/redux/actions/Notification.js.map +1 -1
  248. package/esm/redux/actions/Preferences.js.map +1 -1
  249. package/esm/redux/actions/ProgressIndicator.js.map +1 -1
  250. package/esm/redux/actions/SignIn.js.map +1 -1
  251. package/esm/redux/actions/SignOut.js.map +1 -1
  252. package/esm/redux/actions/index.js.map +1 -1
  253. package/esm/redux/connectors/Application.js.map +1 -1
  254. package/esm/redux/connectors/Breadcrumb.js.map +1 -1
  255. package/esm/redux/connectors/CaseView.js.map +1 -1
  256. package/esm/redux/connectors/ConceptDetail.js.map +1 -1
  257. package/esm/redux/connectors/ContentBrowser.js.map +1 -1
  258. package/esm/redux/connectors/ContentDetail.js.map +1 -1
  259. package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
  260. package/esm/redux/connectors/Form.js.map +1 -1
  261. package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
  262. package/esm/redux/connectors/ListDetail.js.map +1 -1
  263. package/esm/redux/connectors/Modal.js.map +1 -1
  264. package/esm/redux/connectors/ModelCatalog.js.map +1 -1
  265. package/esm/redux/connectors/Notification.js.map +1 -1
  266. package/esm/redux/connectors/PanelRenderer.js.map +1 -1
  267. package/esm/redux/connectors/Preferences.js.map +1 -1
  268. package/esm/redux/connectors/Progress.js.map +1 -1
  269. package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
  270. package/esm/redux/connectors/QuickSearch.js.map +1 -1
  271. package/esm/redux/connectors/SignIn.js.map +1 -1
  272. package/esm/redux/connectors/SignOut.js.map +1 -1
  273. package/esm/redux/connectors/Tab.js.map +1 -1
  274. package/esm/redux/connectors/index.js.map +1 -1
  275. package/esm/redux/index.js.map +1 -1
  276. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  277. package/esm/redux/reducers/ErrorReducer.js.map +1 -1
  278. package/esm/redux/reducers/ModalsReducer.js.map +1 -1
  279. package/esm/redux/reducers/NotificationReducer.js.map +1 -1
  280. package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
  281. package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  282. package/esm/redux/reducers/createReducer.js.map +1 -1
  283. package/esm/redux/reducers/index.js.map +1 -1
  284. package/esm/redux/selectors/i18n.js.map +1 -1
  285. package/esm/redux/selectors/index.js.map +1 -1
  286. package/esm/redux/store/beforeRenderHooks.js.map +1 -1
  287. package/esm/redux/store/configureStore.js.map +1 -1
  288. package/esm/redux/types.js.map +1 -1
  289. package/esm/utils/browser/Cache.js.map +1 -1
  290. package/esm/utils/browser/Cookies.js.map +1 -1
  291. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  292. package/esm/utils/fetch/serverFetch.js.map +1 -1
  293. package/esm/utils/fetch/types.js.map +1 -1
  294. package/esm/utils/fetch/universalFetch.js.map +1 -1
  295. package/esm/utils/fetch/xhr.js.map +1 -1
  296. package/esm/utils/helpers/checkResource.js.map +1 -1
  297. package/esm/utils/helpers/createHash.js.map +1 -1
  298. package/esm/utils/helpers/createHref.js +68 -0
  299. package/esm/utils/helpers/createHref.js.map +1 -0
  300. package/esm/utils/helpers/createUUID.js.map +1 -1
  301. package/esm/utils/helpers/index.js +1 -0
  302. package/esm/utils/helpers/index.js.map +1 -1
  303. package/esm/utils/helpers/objects.js.map +1 -1
  304. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  305. package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
  306. package/esm/utils/helpers/text.js.map +1 -1
  307. package/esm/utils/index.js.map +1 -1
  308. package/esm/utils/number/DecimalFormat.js.map +1 -1
  309. package/esm/utils/number/formatValue.js.map +1 -1
  310. package/esm/utils/number/parseNumbers.js.map +1 -1
  311. package/lib/builder/index.js.map +1 -1
  312. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  313. package/lib/constants/Constants.js.map +1 -1
  314. package/lib/constants/LayoutHintConfig.js.map +1 -1
  315. package/lib/constants/LayoutHints.js.map +1 -1
  316. package/lib/constants/Settings.js.map +1 -1
  317. package/lib/constants/index.js.map +1 -1
  318. package/lib/exceptions/ConfigurationException.js.map +1 -1
  319. package/lib/exceptions/FetchException.js.map +1 -1
  320. package/lib/exceptions/IllegalArgumentException.js.map +1 -1
  321. package/lib/exceptions/IllegalReturnException.js.map +1 -1
  322. package/lib/exceptions/IllegalStateException.js.map +1 -1
  323. package/lib/exceptions/JsonParseException.js.map +1 -1
  324. package/lib/exceptions/MissingPropertyException.js.map +1 -1
  325. package/lib/exceptions/NetworkException.js.map +1 -1
  326. package/lib/exceptions/NotAllowedUriException.js.map +1 -1
  327. package/lib/exceptions/NotFoundException.js.map +1 -1
  328. package/lib/exceptions/ServerRequestException.js.map +1 -1
  329. package/lib/exceptions/ThemePropertyException.js.map +1 -1
  330. package/lib/exceptions/TimeoutException.js.map +1 -1
  331. package/lib/exceptions/UnauthorizedException.js.map +1 -1
  332. package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
  333. package/lib/exceptions/index.js.map +1 -1
  334. package/lib/hooks/__tests__/useModels.spec.js.flow +96 -1
  335. package/lib/hooks/index.js.map +1 -1
  336. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  337. package/lib/hooks/useAuthentication.js.map +1 -1
  338. package/lib/hooks/useContent.js.map +1 -1
  339. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  340. package/lib/hooks/useForm.js.map +1 -1
  341. package/lib/hooks/useI18n.js.map +1 -1
  342. package/lib/hooks/useModal.js.map +1 -1
  343. package/lib/hooks/useModelCatalog.js +19 -24
  344. package/lib/hooks/useModelCatalog.js.flow +13 -23
  345. package/lib/hooks/useModelCatalog.js.map +1 -1
  346. package/lib/hooks/useModels.js +15 -0
  347. package/lib/hooks/useModels.js.flow +17 -1
  348. package/lib/hooks/useModels.js.map +1 -1
  349. package/lib/hooks/useModularUI.js.map +1 -1
  350. package/lib/hooks/useModularUIBasic.js.map +1 -1
  351. package/lib/hooks/useModularUIModel.js.map +1 -1
  352. package/lib/hooks/useModularUIRequest.js.map +1 -1
  353. package/lib/hooks/useNotification.js.map +1 -1
  354. package/lib/hooks/usePreference.js.map +1 -1
  355. package/lib/hooks/useProgressIndicator.js.map +1 -1
  356. package/lib/hooks/useRouter.js.map +1 -1
  357. package/lib/i18n/Locale.js.map +1 -1
  358. package/lib/i18n/Locales.js.map +1 -1
  359. package/lib/i18n/Message.js.map +1 -1
  360. package/lib/i18n/index.js.map +1 -1
  361. package/lib/i18n/languages.js.map +1 -1
  362. package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
  363. package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
  364. package/lib/i18n/types.js.map +1 -1
  365. package/lib/i18n/withMessage.js.map +1 -1
  366. package/lib/index.js.map +1 -1
  367. package/lib/models/actions/ActionCollection.js.map +1 -1
  368. package/lib/models/actions/ActionModel.js.map +1 -1
  369. package/lib/models/application/ApplicationModel.js.map +1 -1
  370. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  371. package/lib/models/attributes/AttributeContent.js.map +1 -1
  372. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  373. package/lib/models/attributes/AttributeModel.js.map +1 -1
  374. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  375. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  376. package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
  377. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  378. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  379. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  380. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  381. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  382. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  383. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  384. package/lib/models/attributes/LabelAttributeModel.js.map +1 -1
  385. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  386. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  387. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  388. package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
  389. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  390. package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
  391. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  392. package/lib/models/attributes/_createAttribute.js.map +1 -1
  393. package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
  394. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  395. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  396. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  397. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  398. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  399. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  400. package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
  401. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  402. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  403. package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  404. package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
  405. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  406. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  407. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  408. package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
  409. package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
  410. package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
  411. package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
  412. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  413. package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  414. package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
  415. package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
  416. package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
  417. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  418. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  419. package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
  420. package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
  421. package/lib/models/base/BaseCollection.js.map +1 -1
  422. package/lib/models/base/BaseModel.js.map +1 -1
  423. package/lib/models/base/ResourceCollection.js.map +1 -1
  424. package/lib/models/base/ResourceModel.js.map +1 -1
  425. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  426. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  427. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  428. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  429. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  430. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  431. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  432. package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
  433. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  434. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  435. package/lib/models/content/ContentIndexModel.js.map +1 -1
  436. package/lib/models/content/ContentLinkModel.js.map +1 -1
  437. package/lib/models/content/ContentModel.js.map +1 -1
  438. package/lib/models/content/ContentTOCModel.js.map +1 -1
  439. package/lib/models/content/ContentTypeModel.js.map +1 -1
  440. package/lib/models/content/SectionModel.js.map +1 -1
  441. package/lib/models/content/SubSectionModel.js.map +1 -1
  442. package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
  443. package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  444. package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
  445. package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
  446. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  447. package/lib/models/detail/DetailModel.js.map +1 -1
  448. package/lib/models/error/ErrorCollection.js.map +1 -1
  449. package/lib/models/error/ErrorModel.js.map +1 -1
  450. package/lib/models/error/ErrorResponse.js.map +1 -1
  451. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  452. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  453. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  454. package/lib/models/filters/FilterCollection.js.map +1 -1
  455. package/lib/models/filters/FilterModel.js.map +1 -1
  456. package/lib/models/filters/RangeFilterModel.js.map +1 -1
  457. package/lib/models/filters/StringFilterModel.js.map +1 -1
  458. package/lib/models/form/FormModel.js.map +1 -1
  459. package/lib/models/form/FormObjectModel.js.map +1 -1
  460. package/lib/models/grouping/GroupingModel.js.map +1 -1
  461. package/lib/models/href/Href.js.map +1 -1
  462. package/lib/models/href/ListHref.js.map +1 -1
  463. package/lib/models/index.js.map +1 -1
  464. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  465. package/lib/models/links/LinkCollection.js.map +1 -1
  466. package/lib/models/links/LinkModel.js.map +1 -1
  467. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  468. package/lib/models/list/ListDetailModel.js.map +1 -1
  469. package/lib/models/list/ListHeaderModel.js.map +1 -1
  470. package/lib/models/list/ListItemCollection.js.map +1 -1
  471. package/lib/models/list/ListItemModel.js.map +1 -1
  472. package/lib/models/list/ListModel.js.map +1 -1
  473. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  474. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  475. package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
  476. package/lib/models/paging/PagesizeModel.js.map +1 -1
  477. package/lib/models/paging/PagingModel.js.map +1 -1
  478. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  479. package/lib/models/parameter/Parameter.js.map +1 -1
  480. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  481. package/lib/models/resolveModel.js.map +1 -1
  482. package/lib/models/search/CaseSearchModel.js.map +1 -1
  483. package/lib/models/sorting/SortOptionModel.js.map +1 -1
  484. package/lib/models/sorting/SortingModel.js.map +1 -1
  485. package/lib/models/tab/TabModel.js.map +1 -1
  486. package/lib/models/taskgroup/TaskGroupCollection.js.map +1 -1
  487. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  488. package/lib/models/types.js.map +1 -1
  489. package/lib/models/user/UserModel.js.map +1 -1
  490. package/lib/models/user/UserProfileModel.js.map +1 -1
  491. package/lib/models/user/UserServicesModel.js.map +1 -1
  492. package/lib/modularui/Authenticate.js.map +1 -1
  493. package/lib/modularui/CaptchaRequest.js.map +1 -1
  494. package/lib/modularui/ModularUIError.js.map +1 -1
  495. package/lib/modularui/ModularUIRequest.js.map +1 -1
  496. package/lib/modularui/ModularUIResponse.js.map +1 -1
  497. package/lib/modularui/UploadRequest.js.map +1 -1
  498. package/lib/modularui/index.js.map +1 -1
  499. package/lib/modularui/types.js.map +1 -1
  500. package/lib/react/ErrorBoundary.js.map +1 -1
  501. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  502. package/lib/react/index.js.map +1 -1
  503. package/lib/react/utils.js.map +1 -1
  504. package/lib/react-client/Init.js.map +1 -1
  505. package/lib/react-client/client.js.map +1 -1
  506. package/lib/react-client/contextPath.js.map +1 -1
  507. package/lib/react-client/index.js.map +1 -1
  508. package/lib/react-client/rehydrate.js.map +1 -1
  509. package/lib/react-server/contextPath.js.map +1 -1
  510. package/lib/react-server/createSSRComplete.js.map +1 -1
  511. package/lib/react-server/htmlpage.js.map +1 -1
  512. package/lib/react-server/index.js.map +1 -1
  513. package/lib/react-server/renderSSRComplete.js.map +1 -1
  514. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  515. package/lib/react-server/requestInformation.js.map +1 -1
  516. package/lib/react-server/serverNoSSR.js.map +1 -1
  517. package/lib/react-server/serverSSR.js.map +1 -1
  518. package/lib/react-server/serverUtil.js.map +1 -1
  519. package/lib/react-theme/ThemeProvider.js.map +1 -1
  520. package/lib/react-theme/createTheme.js.map +1 -1
  521. package/lib/react-theme/index.js.map +1 -1
  522. package/lib/react-theme/types.js.map +1 -1
  523. package/lib/react-theme/useTheme.js.map +1 -1
  524. package/lib/react-theme/utils/background.js.map +1 -1
  525. package/lib/react-theme/utils/colors.js.map +1 -1
  526. package/lib/react-theme/utils/contrast.js.map +1 -1
  527. package/lib/react-theme/utils/corners.js.map +1 -1
  528. package/lib/react-theme/utils/spacers.js.map +1 -1
  529. package/lib/react-theme/utils/themeProps.js.map +1 -1
  530. package/lib/redux/_i18n/I18nActions.js.map +1 -1
  531. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  532. package/lib/redux/_i18n/index.js.map +1 -1
  533. package/lib/redux/_i18n/types.js.map +1 -1
  534. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  535. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  536. package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  537. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  538. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  539. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  540. package/lib/redux/_modularui/index.js.map +1 -1
  541. package/lib/redux/_modularui/types.js.map +1 -1
  542. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  543. package/lib/redux/_router/RouterActions.js.map +1 -1
  544. package/lib/redux/_router/RouterConnectors.js.map +1 -1
  545. package/lib/redux/_router/RouterMiddleware.js.map +1 -1
  546. package/lib/redux/_router/RouterReducer.js.map +1 -1
  547. package/lib/redux/_router/index.js.map +1 -1
  548. package/lib/redux/_router/types.js.map +1 -1
  549. package/lib/redux/actions/Application.js.map +1 -1
  550. package/lib/redux/actions/Authorization.js.map +1 -1
  551. package/lib/redux/actions/Error.js.map +1 -1
  552. package/lib/redux/actions/Form.js.map +1 -1
  553. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  554. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  555. package/lib/redux/actions/FormAutosave.js.map +1 -1
  556. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  557. package/lib/redux/actions/FormValidations.js.map +1 -1
  558. package/lib/redux/actions/Modals.js.map +1 -1
  559. package/lib/redux/actions/Notification.js.map +1 -1
  560. package/lib/redux/actions/Preferences.js.map +1 -1
  561. package/lib/redux/actions/ProgressIndicator.js.map +1 -1
  562. package/lib/redux/actions/SignIn.js.map +1 -1
  563. package/lib/redux/actions/SignOut.js.map +1 -1
  564. package/lib/redux/actions/index.js.map +1 -1
  565. package/lib/redux/connectors/Application.js.map +1 -1
  566. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  567. package/lib/redux/connectors/CaseView.js.map +1 -1
  568. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  569. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  570. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  571. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  572. package/lib/redux/connectors/Form.js.map +1 -1
  573. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  574. package/lib/redux/connectors/ListDetail.js.map +1 -1
  575. package/lib/redux/connectors/Modal.js.map +1 -1
  576. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  577. package/lib/redux/connectors/Notification.js.map +1 -1
  578. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  579. package/lib/redux/connectors/Preferences.js.map +1 -1
  580. package/lib/redux/connectors/Progress.js.map +1 -1
  581. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  582. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  583. package/lib/redux/connectors/SignIn.js.map +1 -1
  584. package/lib/redux/connectors/SignOut.js.map +1 -1
  585. package/lib/redux/connectors/Tab.js.map +1 -1
  586. package/lib/redux/connectors/index.js.map +1 -1
  587. package/lib/redux/index.js.map +1 -1
  588. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  589. package/lib/redux/reducers/ErrorReducer.js.map +1 -1
  590. package/lib/redux/reducers/ModalsReducer.js.map +1 -1
  591. package/lib/redux/reducers/NotificationReducer.js.map +1 -1
  592. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  593. package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  594. package/lib/redux/reducers/createReducer.js.map +1 -1
  595. package/lib/redux/reducers/index.js.map +1 -1
  596. package/lib/redux/selectors/i18n.js.map +1 -1
  597. package/lib/redux/selectors/index.js.map +1 -1
  598. package/lib/redux/store/beforeRenderHooks.js.map +1 -1
  599. package/lib/redux/store/configureStore.js.map +1 -1
  600. package/lib/redux/types.js.map +1 -1
  601. package/lib/utils/browser/Cache.js.map +1 -1
  602. package/lib/utils/browser/Cookies.js.map +1 -1
  603. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  604. package/lib/utils/fetch/serverFetch.js.map +1 -1
  605. package/lib/utils/fetch/types.js.map +1 -1
  606. package/lib/utils/fetch/universalFetch.js.map +1 -1
  607. package/lib/utils/fetch/xhr.js.map +1 -1
  608. package/lib/utils/helpers/__tests__/createHref.spec.js.flow +30 -0
  609. package/lib/utils/helpers/checkResource.js.map +1 -1
  610. package/lib/utils/helpers/createHash.js.map +1 -1
  611. package/lib/utils/helpers/createHref.js +78 -0
  612. package/lib/utils/helpers/createHref.js.flow +80 -0
  613. package/lib/utils/helpers/createHref.js.map +1 -0
  614. package/lib/utils/helpers/createUUID.js.map +1 -1
  615. package/lib/utils/helpers/index.js +12 -0
  616. package/lib/utils/helpers/index.js.flow +1 -0
  617. package/lib/utils/helpers/index.js.map +1 -1
  618. package/lib/utils/helpers/objects.js.map +1 -1
  619. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  620. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  621. package/lib/utils/helpers/text.js.map +1 -1
  622. package/lib/utils/index.js.map +1 -1
  623. package/lib/utils/number/DecimalFormat.js.map +1 -1
  624. package/lib/utils/number/formatValue.js.map +1 -1
  625. package/lib/utils/number/parseNumbers.js.map +1 -1
  626. package/package.json +1 -1
  627. package/src/hooks/__tests__/useModels.spec.js +96 -1
  628. package/src/hooks/useModelCatalog.js +13 -23
  629. package/src/hooks/useModels.js +17 -1
  630. package/src/utils/helpers/__tests__/createHref.spec.js +30 -0
  631. package/src/utils/helpers/createHref.js +80 -0
  632. package/src/utils/helpers/index.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","PARAMETER_SEPARATOR","attribute","IllegalStateException","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","exports"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(param, data, {\n ...contributions,\n type: type,\n });\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's 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.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterModel.js","names":["_BaseModel","_interopRequireDefault","require","_createAttribute","_Constants","_exceptions","BaseFilterModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_attribute","createAttribute","type","param","listKey","listkey","replace","isMultiple","getContribution","context","_context","contextLabel","label","_listKey","key","name","PARAMETER_SEPARATOR","attribute","IllegalStateException","params","value","inputvalue","reset","update","isQuickSearch","quicksearch","isActive","initvalue","isValid","readonlyvalue","assistantMessage","exports"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport createAttribute from \"../attributes/_createAttribute\";\nimport { PARAMETER_SEPARATOR } from \"../../constants/Constants\";\n\nimport type { AttributeType, FilterType } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _attribute: AttributeType | null = null;\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._attribute = this.createAttribute(\n this.type,\n this.param,\n this.data,\n this.contributions,\n );\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Create attribute through the attribute factory. Create type based on filter key without the filter suffix\n */\n createAttribute(\n type: string,\n param: string,\n data: Object,\n contributions: Object,\n ): AttributeType | null {\n if (type === \"assignment\") {\n return null;\n }\n\n return createAttribute(param, data, {\n ...contributions,\n type: type,\n });\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Get attribute of filter\n */\n get attribute(): AttributeType {\n if (!this._attribute) {\n throw new IllegalStateException(\n `Missing filter attribute on filter model: ${this.label}`,\n );\n }\n return this._attribute;\n }\n\n /**\n * Retrieve the parameters with it's 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.attribute?.value,\n },\n ];\n }\n\n /**\n * Getting the value of the filter\n */\n get value(): string | null {\n return this.attribute?.value;\n }\n\n /**\n * Getting the inputvalue of the filter\n */\n get inputvalue(): string {\n return this.attribute?.inputvalue;\n }\n\n /**\n * Reset the value of this filter to undefined\n */\n reset(): FilterType {\n if (this.attribute) {\n this.attribute.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter with input name and value\n */\n update(attribute: AttributeType, value: string) {\n if (this.attribute) {\n this.attribute.update(value);\n }\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return this.attribute !== null && this.attribute.initvalue !== null;\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return this.attribute !== null && this.attribute.isValid;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.attribute) {\n return this.attribute.readonlyvalue;\n }\n return \"\";\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConceptIndexFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","_ChoiceAttributeModel","ConceptIndexFilterModel","BaseFilterModel","constructor","data","contributions","options","_context","_context2","selectedValues","_map","default","_filter","call","option","selected","key","forEach","attribute","ChoiceAttributeModel","addOption","code","label","exports"],"sources":["../../../src/models/filters/ConceptIndexFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\nimport ChoiceAttributeModel from \"../attributes/ChoiceAttributeModel\";\n\n/**\n * The concept index model is a special filter used to index all first concept label letters in de modelcatalog.\n */\nexport default class ConceptIndexFilterModel extends BaseFilterModel {\n /**\n * Construct a filter\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n if (data.options) {\n const selectedValues = data.options\n .filter((option) => option.selected)\n .map((option) => option.key);\n\n data.options.forEach((option) => {\n if (this.attribute instanceof ChoiceAttributeModel) {\n this.attribute.options.addOption(selectedValues, {\n code: option.key,\n label: option.key,\n });\n }\n });\n }\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACe,MAAME,uBAAuB,SAASC,wBAAe,CAAC;EACnE;AACF;AACA;EACEC,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAC/C,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAE1B,IAAID,IAAI,CAACE,OAAO,EAAE;MAAA,IAAAC,QAAA,EAAAC,SAAA;MAChB,MAAMC,cAAc,GAAG,IAAAC,IAAA,CAAAC,OAAA,EAAAJ,QAAA,OAAAK,OAAA,CAAAD,OAAA,EAAAH,SAAA,GAAAJ,IAAI,CAACE,OAAO,EAAAO,IAAA,CAAAL,SAAA,EACxBM,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAAC,EAAAF,IAAA,CAAAN,QAAA,EAC9BO,MAAM,IAAKA,MAAM,CAACE,GAAG,CAAC;MAE9BZ,IAAI,CAACE,OAAO,CAACW,OAAO,CAAEH,MAAM,IAAK;QAC/B,IAAI,IAAI,CAACI,SAAS,YAAYC,6BAAoB,EAAE;UAClD,IAAI,CAACD,SAAS,CAACZ,OAAO,CAACc,SAAS,CAACX,cAAc,EAAE;YAC/CY,IAAI,EAAEP,MAAM,CAACE,GAAG;YAChBM,KAAK,EAAER,MAAM,CAACE;UAChB,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;EACF;AACF;AAACO,OAAA,CAAAZ,OAAA,GAAAV,uBAAA"}
1
+ {"version":3,"file":"ConceptIndexFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","_ChoiceAttributeModel","ConceptIndexFilterModel","BaseFilterModel","constructor","data","contributions","options","_context","_context2","selectedValues","_map","default","_filter","call","option","selected","key","forEach","attribute","ChoiceAttributeModel","addOption","code","label","exports"],"sources":["../../../src/models/filters/ConceptIndexFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\nimport ChoiceAttributeModel from \"../attributes/ChoiceAttributeModel\";\n\n/**\n * The concept index model is a special filter used to index all first concept label letters in de modelcatalog.\n */\nexport default class ConceptIndexFilterModel extends BaseFilterModel {\n /**\n * Construct a filter\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n if (data.options) {\n const selectedValues = data.options\n .filter((option) => option.selected)\n .map((option) => option.key);\n\n data.options.forEach((option) => {\n if (this.attribute instanceof ChoiceAttributeModel) {\n this.attribute.options.addOption(selectedValues, {\n code: option.key,\n label: option.key,\n });\n }\n });\n }\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACe,MAAME,uBAAuB,SAASC,wBAAe,CAAC;EACnE;AACF;AACA;EACEC,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAC/C,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAE1B,IAAID,IAAI,CAACE,OAAO,EAAE;MAAA,IAAAC,QAAA,EAAAC,SAAA;MAChB,MAAMC,cAAc,GAAG,IAAAC,IAAA,CAAAC,OAAA,EAAAJ,QAAA,OAAAK,OAAA,CAAAD,OAAA,EAAAH,SAAA,GAAAJ,IAAI,CAACE,OAAO,EAAAO,IAAA,CAAAL,SAAA,EACxBM,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAAC,EAAAF,IAAA,CAAAN,QAAA,EAC9BO,MAAM,IAAKA,MAAM,CAACE,GAAG,CAAC;MAE9BZ,IAAI,CAACE,OAAO,CAACW,OAAO,CAAEH,MAAM,IAAK;QAC/B,IAAI,IAAI,CAACI,SAAS,YAAYC,6BAAoB,EAAE;UAClD,IAAI,CAACD,SAAS,CAACZ,OAAO,CAACc,SAAS,CAACX,cAAc,EAAE;YAC/CY,IAAI,EAAEP,MAAM,CAACE,GAAG;YAChBM,KAAK,EAAER,MAAM,CAACE;UAChB,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;EACF;AACF;AAACO,OAAA,CAAAZ,OAAA,GAAAV,uBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_StringFilterModel","_RangeFilterModel","_AssignmentFilterModel","_ConceptIndexFilterModel","_CompositeAttributeModel","_FilterModel","FilterCollection","BaseCollection","constructor","data","arguments","length","undefined","contributions","Array","isArray","_filter","default","_context","_context2","collection","_map","call","filterContribution","_keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_find","context","id","type","ConceptIndexFilterModel","_includes","RangeFilterModel","AssignmentFilterModel","StringFilterModel","FilterModel","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","CompositeAttributeModel","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","exports"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(data: Object = {}, contributions: Object = {}) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions);\n }\n\n return new FilterModel(data, contributions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_StringFilterModel","_RangeFilterModel","_AssignmentFilterModel","_ConceptIndexFilterModel","_CompositeAttributeModel","_FilterModel","FilterCollection","BaseCollection","constructor","data","arguments","length","undefined","contributions","Array","isArray","_filter","default","_context","_context2","collection","_map","call","filterContribution","_keys","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","_context3","filterContext","_find","context","id","type","ConceptIndexFilterModel","_includes","RangeFilterModel","AssignmentFilterModel","StringFilterModel","FilterModel","reset","_context4","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","CompositeAttributeModel","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","_context5","update","value","_context6","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive","exports"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport StringFilterModel from \"../filters/StringFilterModel\";\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport FilterModel from \"../filters/FilterModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(data: Object = {}, contributions: Object = {}) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey,\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid,\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object,\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions);\n }\n\n if (type === \"stringfilter\") {\n return new StringFilterModel(data, contributions);\n }\n\n return new FilterModel(data, contributions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string,\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string,\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","FilterModel","BaseFilterModel","exports","default"],"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,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACe,MAAMC,WAAW,SAASC,wBAAe,CAAC;AAAEC,OAAA,CAAAC,OAAA,GAAAH,WAAA"}
1
+ {"version":3,"file":"FilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","FilterModel","BaseFilterModel","exports","default"],"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,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACe,MAAMC,WAAW,SAASC,wBAAe,CAAC;AAAEC,OAAA,CAAAC,OAAA,GAAAH,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RangeFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","_CompositeAttributeModel","RangeFilterModel","BaseFilterModel","update","attribute","value","CompositeAttributeModel","params","_context","_map","default","children","call","child","param","data","name","exports"],"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,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,wBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACe,MAAME,gBAAgB,SAASC,wBAAe,CAAC;EAC5D;AACF;EACEC,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,IAAI,CAACD,SAAS,YAAYE,gCAAuB,EAAE;MACrD,IAAI,CAACF,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,IAAIE,MAAMA,CAAA,EAA4C;IACpD,IAAI,IAAI,CAACH,SAAS,YAAYE,gCAAuB,EAAE;MAAA,IAAAE,QAAA;MACrD,OAAO,IAAAC,IAAA,CAAAC,OAAA,EAAAF,QAAA,OAAI,CAACJ,SAAS,CAACO,QAAQ,EAAAC,IAAA,CAAAJ,QAAA,EAAMK,KAAK,IAAK;QAC5C,MAAM;UAAEC;QAAM,CAAC,GAAG,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QACvC,OAAO;UACLA,IAAI,EAAEF,KAAK;UACXT,KAAK,EAAEQ,KAAK,CAACR;QACf,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,OAAO,EAAE;EACX;AACF;AAACY,OAAA,CAAAP,OAAA,GAAAT,gBAAA"}
1
+ {"version":3,"file":"RangeFilterModel.js","names":["_BaseFilterModel","_interopRequireDefault","require","_CompositeAttributeModel","RangeFilterModel","BaseFilterModel","update","attribute","value","CompositeAttributeModel","params","_context","_map","default","children","call","child","param","data","name","exports"],"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,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,wBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACe,MAAME,gBAAgB,SAASC,wBAAe,CAAC;EAC5D;AACF;EACEC,MAAMA,CAACC,SAAwB,EAAEC,KAAa,EAAE;IAC9C,IAAI,IAAI,CAACD,SAAS,YAAYE,gCAAuB,EAAE;MACrD,IAAI,CAACF,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,IAAIE,MAAMA,CAAA,EAA4C;IACpD,IAAI,IAAI,CAACH,SAAS,YAAYE,gCAAuB,EAAE;MAAA,IAAAE,QAAA;MACrD,OAAO,IAAAC,IAAA,CAAAC,OAAA,EAAAF,QAAA,OAAI,CAACJ,SAAS,CAACO,QAAQ,EAAAC,IAAA,CAAAJ,QAAA,EAAMK,KAAK,IAAK;QAC5C,MAAM;UAAEC;QAAM,CAAC,GAAG,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,IAAI,CAAC;QACvC,OAAO;UACLA,IAAI,EAAEF,KAAK;UACXT,KAAK,EAAEQ,KAAK,CAACR;QACf,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,OAAO,EAAE;EACX;AACF;AAACY,OAAA,CAAAP,OAAA,GAAAT,gBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StringFilterModel.js","names":["_FilterModel","_interopRequireDefault","require","StringFilterModel","FilterModel","constructor","data","contributions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_map","split","call","val","_trim","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","exports"],"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","_interopRequireDefault","require","StringFilterModel","FilterModel","constructor","data","contributions","_defineProperty2","default","update","attribute","value","_inputvalue","_value","params","param","name","removeFormat","inputvalue","reset","isValid","_isValid","toString","shouldHandleFormat","_context","_context2","values","isMultiple","_map","split","call","val","_trim","outputValues","formattedValue","formatValue","push","validate","join","operator","getContribution","isBSN","layouthint","has","isIBAN","isZipcode","replace","exports"],"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","_interopRequireDefault","require","_deepmerge","_objects","_exceptions","_ResourceModel","_ErrorCollection","_Href","_Parameter","_FormObjectModel","_Constants","_Settings","_LayoutHints","_LayoutHintCollection","_AttributeSetModel","FormModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","getSetting","ErrorCollection","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","flattenDeep","_map","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_find","result","objectid","objectId","FormObjectModel","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filter","formObject","equals","IllegalArgumentException","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includes","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","Href","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","AttributeSetModel","resultData","par","Parameter","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","HTTP_METHODS","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndex","obj","deepmerge","push","withConcurrencyToken","_stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_slice","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","LayoutHintCollection","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","_default","exports"],"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 type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\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>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models);\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","_interopRequireDefault","require","_deepmerge","_objects","_exceptions","_ResourceModel","_ErrorCollection","_Href","_Parameter","_FormObjectModel","_Constants","_Settings","_LayoutHints","_LayoutHintCollection","_AttributeSetModel","FormModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","getSetting","ErrorCollection","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","flattenDeep","_map","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_find","result","objectid","objectId","FormObjectModel","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filter","formObject","equals","IllegalArgumentException","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includes","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","Href","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","AttributeSetModel","resultData","par","Parameter","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","HTTP_METHODS","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndex","obj","deepmerge","push","withConcurrencyToken","_stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_slice","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","LayoutHintCollection","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","_default","exports"],"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 type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\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>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models);\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":[]}