@beinformed/ui 1.20.8 → 1.20.9
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.
- package/CHANGELOG.md +6 -0
- package/esm/builder/mergeLayoutHintConfigurations.js +34 -59
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/Constants.js +37 -37
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/LayoutHintConfig.js +1 -1
- package/esm/constants/LayoutHintConfig.js.map +1 -1
- package/esm/constants/LayoutHints.js +20 -22
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/constants/Settings.js +12 -26
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/ConfigurationException.js +5 -27
- package/esm/exceptions/ConfigurationException.js.map +1 -1
- package/esm/exceptions/FetchException.js +33 -65
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/IllegalArgumentException.js +5 -27
- package/esm/exceptions/IllegalArgumentException.js.map +1 -1
- package/esm/exceptions/IllegalReturnException.js +5 -27
- package/esm/exceptions/IllegalReturnException.js.map +1 -1
- package/esm/exceptions/IllegalStateException.js +5 -27
- package/esm/exceptions/IllegalStateException.js.map +1 -1
- package/esm/exceptions/JsonParseException.js +5 -27
- package/esm/exceptions/JsonParseException.js.map +1 -1
- package/esm/exceptions/MissingPropertyException.js +5 -27
- package/esm/exceptions/MissingPropertyException.js.map +1 -1
- package/esm/exceptions/NetworkException.js +9 -31
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotAllowedUriException.js +5 -27
- package/esm/exceptions/NotAllowedUriException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js +12 -35
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/ServerRequestException.js +5 -27
- package/esm/exceptions/ServerRequestException.js.map +1 -1
- package/esm/exceptions/ThemePropertyException.js +5 -27
- package/esm/exceptions/ThemePropertyException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js +5 -26
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js +11 -33
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/exceptions/UnsupportedOperationException.js +5 -27
- package/esm/exceptions/UnsupportedOperationException.js.map +1 -1
- package/esm/hooks/useAllFormsOnModel.js +25 -46
- package/esm/hooks/useAllFormsOnModel.js.map +1 -1
- package/esm/hooks/useAuthentication.js +20 -26
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useContent.js +13 -24
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useDeepCompareEffect.js +3 -3
- package/esm/hooks/useDeepCompareEffect.js.map +1 -1
- package/esm/hooks/useForm.js +27 -45
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useI18n.js +9 -19
- package/esm/hooks/useI18n.js.map +1 -1
- package/esm/hooks/useModal.js +11 -11
- package/esm/hooks/useModal.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +24 -30
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModels.js +3 -3
- package/esm/hooks/useModels.js.map +1 -1
- package/esm/hooks/useModularUI.js +17 -16
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +9 -7
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useModularUIModel.js +39 -59
- package/esm/hooks/useModularUIModel.js.map +1 -1
- package/esm/hooks/useModularUIRequest.js +4 -6
- package/esm/hooks/useModularUIRequest.js.map +1 -1
- package/esm/hooks/useNotification.js +16 -21
- package/esm/hooks/useNotification.js.map +1 -1
- package/esm/hooks/usePreference.js +3 -5
- package/esm/hooks/usePreference.js.map +1 -1
- package/esm/hooks/useProgressIndicator.js +9 -30
- package/esm/hooks/useProgressIndicator.js.map +1 -1
- package/esm/hooks/useRouter.js +12 -26
- package/esm/hooks/useRouter.js.map +1 -1
- package/esm/i18n/Locale.js +96 -135
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js +94 -148
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/i18n/Message.js +13 -24
- package/esm/i18n/Message.js.map +1 -1
- package/esm/i18n/languages.js +1 -1
- package/esm/i18n/languages.js.map +1 -1
- package/esm/i18n/withMessage.js +10 -16
- package/esm/i18n/withMessage.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +55 -100
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js +165 -204
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +104 -153
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js +246 -331
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +181 -246
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js +202 -250
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js +832 -941
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js +46 -77
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js +259 -325
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/CaptchaAttributeModel.js +24 -55
- package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +337 -424
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +271 -361
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +297 -351
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js +180 -257
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +326 -401
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js +368 -419
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/HelptextAttributeModel.js +38 -70
- package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/esm/models/attributes/LabelAttributeModel.js +23 -54
- package/esm/models/attributes/LabelAttributeModel.js.map +1 -1
- package/esm/models/attributes/MemoAttributeModel.js +31 -63
- package/esm/models/attributes/MemoAttributeModel.js.map +1 -1
- package/esm/models/attributes/MoneyAttributeModel.js +30 -62
- package/esm/models/attributes/MoneyAttributeModel.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js +178 -225
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js +197 -246
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js +234 -282
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js +181 -238
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/XMLAttributeModel.js +32 -64
- package/esm/models/attributes/XMLAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js +21 -36
- package/esm/models/attributes/_createAttribute.js.map +1 -1
- package/esm/models/attributes/input-constraints/BSNConstraint.js +63 -81
- package/esm/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintCollection.js +29 -66
- package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintModel.js +44 -59
- package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js +170 -192
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +52 -67
- package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +52 -67
- package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +66 -83
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/FileExtensionConstraint.js +53 -69
- package/esm/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/FileSizeConstraint.js +78 -94
- package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/IBANConstraint.js +35 -51
- package/esm/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js +39 -57
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js +62 -81
- package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js +149 -171
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.js +104 -124
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js +91 -113
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js +58 -73
- package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +35 -52
- package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +51 -65
- package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +51 -65
- package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +65 -83
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RangeConstraint.js +115 -134
- package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RegexConstraint.js +47 -61
- package/esm/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/StringLengthConstraint.js +157 -176
- package/esm/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/XMLConstraint.js +48 -66
- package/esm/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js +49 -64
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js +167 -209
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +40 -68
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +30 -59
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/esm/models/base/BaseCollection.js +169 -203
- package/esm/models/base/BaseCollection.js.map +1 -1
- package/esm/models/base/BaseModel.js +97 -112
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceCollection.js +27 -55
- package/esm/models/base/ResourceCollection.js.map +1 -1
- package/esm/models/base/ResourceModel.js +167 -217
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +132 -180
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js +98 -147
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +239 -316
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js +114 -150
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js +118 -158
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationCollection.js +56 -103
- package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +60 -75
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/ConceptTypeDetailModel.js +89 -126
- package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +11 -42
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js +47 -70
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentIndexModel.js +108 -150
- package/esm/models/content/ContentIndexModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +157 -199
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/content/ContentModel.js +184 -228
- package/esm/models/content/ContentModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.js +132 -196
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/content/ContentTypeModel.js +58 -93
- package/esm/models/content/ContentTypeModel.js.map +1 -1
- package/esm/models/content/SectionModel.js +161 -247
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/SubSectionModel.js +122 -188
- package/esm/models/content/SubSectionModel.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfiguration.js +44 -58
- package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationElements.js +123 -162
- package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.js +24 -38
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.js +30 -41
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationResults.js +73 -95
- package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/esm/models/detail/DetailModel.js +174 -225
- package/esm/models/detail/DetailModel.js.map +1 -1
- package/esm/models/error/ErrorCollection.js +79 -132
- package/esm/models/error/ErrorCollection.js.map +1 -1
- package/esm/models/error/ErrorModel.js +36 -48
- package/esm/models/error/ErrorModel.js.map +1 -1
- package/esm/models/error/ErrorResponse.js +175 -204
- package/esm/models/error/ErrorResponse.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js +142 -186
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +170 -220
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/ConceptIndexFilterModel.js +8 -36
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +106 -165
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/FilterModel.js +1 -26
- package/esm/models/filters/FilterModel.js.map +1 -1
- package/esm/models/filters/RangeFilterModel.js +29 -58
- package/esm/models/filters/RangeFilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +957 -1133
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +412 -506
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/grouping/GroupingModel.js +115 -163
- package/esm/models/grouping/GroupingModel.js.map +1 -1
- package/esm/models/href/Href.js +391 -450
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/href/ListHref.js +116 -155
- package/esm/models/href/ListHref.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js +91 -136
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js +127 -185
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/links/LinkModel.js +189 -228
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js +30 -57
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +226 -289
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListHeaderModel.js +74 -97
- package/esm/models/list/ListHeaderModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js +49 -85
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js +73 -110
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js +342 -421
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/lookup/LookupOptionCollection.js +15 -51
- package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
- package/esm/models/lookup/LookupOptionsModel.js +42 -71
- package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
- package/esm/models/modelcatalog/ModelCatalogModel.js +35 -67
- package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/esm/models/paging/PagesizeModel.js +31 -42
- package/esm/models/paging/PagesizeModel.js.map +1 -1
- package/esm/models/paging/PagingModel.js +77 -94
- package/esm/models/paging/PagingModel.js.map +1 -1
- package/esm/models/panels/GroupingPanelModel.js +116 -160
- package/esm/models/panels/GroupingPanelModel.js.map +1 -1
- package/esm/models/parameter/Parameter.js +82 -97
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/process/ProcessStatusSettingsModel.js +63 -100
- package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/esm/models/resolveModel.js +3 -5
- package/esm/models/resolveModel.js.map +1 -1
- package/esm/models/search/CaseSearchModel.js +23 -56
- package/esm/models/search/CaseSearchModel.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js +76 -90
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/models/sorting/SortingModel.js +86 -134
- package/esm/models/sorting/SortingModel.js.map +1 -1
- package/esm/models/tab/TabModel.js +118 -163
- package/esm/models/tab/TabModel.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupCollection.js +7 -37
- package/esm/models/taskgroup/TaskGroupCollection.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupModel.js +51 -83
- package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/esm/models/user/UserModel.js +29 -61
- package/esm/models/user/UserModel.js.map +1 -1
- package/esm/models/user/UserProfileModel.js +19 -50
- package/esm/models/user/UserProfileModel.js.map +1 -1
- package/esm/models/user/UserServicesModel.js +79 -123
- package/esm/models/user/UserServicesModel.js.map +1 -1
- package/esm/modularui/Authenticate.js +143 -156
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIError.js +9 -32
- package/esm/modularui/ModularUIError.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +476 -630
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/ModularUIResponse.js +104 -119
- package/esm/modularui/ModularUIResponse.js.map +1 -1
- package/esm/react/ErrorBoundary.js +32 -65
- package/esm/react/ErrorBoundary.js.map +1 -1
- package/esm/react/ErrorBoundaryFallback.js +8 -6
- package/esm/react/ErrorBoundaryFallback.js.map +1 -1
- package/esm/react/utils.js +12 -15
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/Init.js +9 -7
- package/esm/react-client/Init.js.map +1 -1
- package/esm/react-client/client.js +21 -22
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js +4 -4
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-client/rehydrate.js +14 -21
- package/esm/react-client/rehydrate.js.map +1 -1
- package/esm/react-server/createSSRComplete.js +10 -14
- package/esm/react-server/createSSRComplete.js.map +1 -1
- package/esm/react-server/htmlpage.js +5 -8
- package/esm/react-server/htmlpage.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js +50 -55
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRMinimal.js +13 -13
- package/esm/react-server/renderSSRMinimal.js.map +1 -1
- package/esm/react-server/requestInformation.js +8 -10
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverNoSSR.js +22 -21
- package/esm/react-server/serverNoSSR.js.map +1 -1
- package/esm/react-server/serverSSR.js +24 -24
- package/esm/react-server/serverSSR.js.map +1 -1
- package/esm/react-server/serverUtil.js +45 -61
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/ThemeProvider.js +10 -7
- package/esm/react-theme/ThemeProvider.js.map +1 -1
- package/esm/react-theme/createTheme.js +15 -35
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/useTheme.js +1 -1
- package/esm/react-theme/useTheme.js.map +1 -1
- package/esm/react-theme/utils/background.js +9 -9
- package/esm/react-theme/utils/background.js.map +1 -1
- package/esm/react-theme/utils/colors.js +12 -12
- package/esm/react-theme/utils/colors.js.map +1 -1
- package/esm/react-theme/utils/contrast.js +27 -27
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js +10 -9
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js +23 -22
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js +28 -29
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_i18n/actions.js +15 -21
- package/esm/redux/_i18n/actions.js.map +1 -1
- package/esm/redux/_i18n/reducer.js +20 -29
- package/esm/redux/_i18n/reducer.js.map +1 -1
- package/esm/redux/_modularui/actions.js +40 -67
- package/esm/redux/_modularui/actions.js.map +1 -1
- package/esm/redux/_modularui/connector.js +46 -50
- package/esm/redux/_modularui/connector.js.map +1 -1
- package/esm/redux/_modularui/middleware.js +23 -36
- package/esm/redux/_modularui/middleware.js.map +1 -1
- package/esm/redux/_modularui/modularuiUtils.js +16 -23
- package/esm/redux/_modularui/modularuiUtils.js.map +1 -1
- package/esm/redux/_modularui/reducer.js +42 -53
- package/esm/redux/_modularui/reducer.js.map +1 -1
- package/esm/redux/_modularui/selectors.js +89 -99
- package/esm/redux/_modularui/selectors.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js +15 -19
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/_router/actions.js +29 -39
- package/esm/redux/_router/actions.js.map +1 -1
- package/esm/redux/_router/connectors.js +12 -14
- package/esm/redux/_router/connectors.js.map +1 -1
- package/esm/redux/_router/middleware.js +27 -29
- package/esm/redux/_router/middleware.js.map +1 -1
- package/esm/redux/_router/reducer.js +4 -4
- package/esm/redux/_router/reducer.js.map +1 -1
- package/esm/redux/actions/Application.js +9 -32
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js +31 -33
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Error.js +33 -43
- package/esm/redux/actions/Error.js.map +1 -1
- package/esm/redux/actions/Form.js +13 -15
- package/esm/redux/actions/Form.js.map +1 -1
- package/esm/redux/actions/FormAttributeSet.js +6 -6
- package/esm/redux/actions/FormAttributeSet.js.map +1 -1
- package/esm/redux/actions/FormAttributeSetRepeatable.js +6 -6
- package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js +12 -18
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormAutosubmit.js +2 -2
- package/esm/redux/actions/FormAutosubmit.js.map +1 -1
- package/esm/redux/actions/FormValidations.js +12 -20
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/esm/redux/actions/Modals.js +8 -12
- package/esm/redux/actions/Modals.js.map +1 -1
- package/esm/redux/actions/Notification.js +32 -42
- package/esm/redux/actions/Notification.js.map +1 -1
- package/esm/redux/actions/Preferences.js +32 -38
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/actions/ProgressIndicator.js +15 -23
- package/esm/redux/actions/ProgressIndicator.js.map +1 -1
- package/esm/redux/actions/SignIn.js +39 -53
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/actions/SignOut.js +9 -17
- package/esm/redux/actions/SignOut.js.map +1 -1
- package/esm/redux/connectors/Application.js +1 -1
- package/esm/redux/connectors/Application.js.map +1 -1
- package/esm/redux/connectors/Breadcrumb.js +4 -6
- package/esm/redux/connectors/Breadcrumb.js.map +1 -1
- package/esm/redux/connectors/CaseView.js +4 -2
- package/esm/redux/connectors/CaseView.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js +5 -3
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentBrowser.js +4 -2
- package/esm/redux/connectors/ContentBrowser.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js +5 -3
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js +6 -4
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js +11 -9
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/redux/connectors/FormAttributeSet.js +13 -21
- package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
- package/esm/redux/connectors/ListDetail.js +4 -2
- package/esm/redux/connectors/ListDetail.js.map +1 -1
- package/esm/redux/connectors/Modal.js +4 -6
- package/esm/redux/connectors/Modal.js.map +1 -1
- package/esm/redux/connectors/ModelCatalog.js +4 -2
- package/esm/redux/connectors/ModelCatalog.js.map +1 -1
- package/esm/redux/connectors/Notification.js +8 -10
- package/esm/redux/connectors/Notification.js.map +1 -1
- package/esm/redux/connectors/PanelRenderer.js +7 -6
- package/esm/redux/connectors/PanelRenderer.js.map +1 -1
- package/esm/redux/connectors/Preferences.js +6 -8
- package/esm/redux/connectors/Preferences.js.map +1 -1
- package/esm/redux/connectors/Progress.js +2 -2
- package/esm/redux/connectors/Progress.js.map +1 -1
- package/esm/redux/connectors/ProgressIndicator.js +6 -8
- package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
- package/esm/redux/connectors/QuickSearch.js +6 -4
- package/esm/redux/connectors/QuickSearch.js.map +1 -1
- package/esm/redux/connectors/SignIn.js +4 -4
- package/esm/redux/connectors/SignIn.js.map +1 -1
- package/esm/redux/connectors/SignOut.js +3 -3
- package/esm/redux/connectors/SignOut.js.map +1 -1
- package/esm/redux/connectors/Tab.js +4 -2
- package/esm/redux/connectors/Tab.js.map +1 -1
- package/esm/redux/reducers/AuthReducer.js +14 -25
- package/esm/redux/reducers/AuthReducer.js.map +1 -1
- package/esm/redux/reducers/ErrorReducer.js +4 -4
- package/esm/redux/reducers/ErrorReducer.js.map +1 -1
- package/esm/redux/reducers/ModalsReducer.js +19 -37
- package/esm/redux/reducers/ModalsReducer.js.map +1 -1
- package/esm/redux/reducers/NotificationReducer.js +8 -19
- package/esm/redux/reducers/NotificationReducer.js.map +1 -1
- package/esm/redux/reducers/PreferencesReducer.js +10 -17
- package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
- package/esm/redux/reducers/ProgressIndicatorReducer.js +14 -25
- package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/esm/redux/reducers/createReducer.js +11 -13
- package/esm/redux/reducers/createReducer.js.map +1 -1
- package/esm/redux/selectors/i18n.js +2 -4
- package/esm/redux/selectors/i18n.js.map +1 -1
- package/esm/redux/store/beforeRenderHooks.js +5 -26
- package/esm/redux/store/beforeRenderHooks.js.map +1 -1
- package/esm/redux/store/configureStore.js +10 -19
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/utils/browser/Cache.js +122 -156
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/browser/Cookies.js +4 -4
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/datetime/DateTimeUtil.js +363 -418
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js +5 -5
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js +13 -14
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js +281 -358
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/checkResource.js +7 -7
- package/esm/utils/helpers/checkResource.js.map +1 -1
- package/esm/utils/helpers/createHash.js +5 -5
- package/esm/utils/helpers/createHash.js.map +1 -1
- package/esm/utils/helpers/createUUID.js +4 -4
- package/esm/utils/helpers/createUUID.js.map +1 -1
- package/esm/utils/helpers/objects.js +9 -14
- package/esm/utils/helpers/objects.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js +13 -13
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/helpers/text.js +1 -1
- package/esm/utils/helpers/text.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js +297 -327
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js +10 -16
- package/esm/utils/number/formatValue.js.map +1 -1
- package/esm/utils/number/parseNumbers.js +13 -13
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/index.js +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +34 -64
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/Constants.js +37 -37
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/LayoutHintConfig.js +1 -1
- package/lib/constants/LayoutHintConfig.js.map +1 -1
- package/lib/constants/LayoutHints.js +20 -22
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/constants/Settings.js +12 -26
- package/lib/constants/Settings.js.map +1 -1
- package/lib/constants/index.js +3 -3
- package/lib/exceptions/ConfigurationException.js +5 -34
- package/lib/exceptions/ConfigurationException.js.map +1 -1
- package/lib/exceptions/FetchException.js +32 -75
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/IllegalArgumentException.js +5 -34
- package/lib/exceptions/IllegalArgumentException.js.map +1 -1
- package/lib/exceptions/IllegalReturnException.js +5 -34
- package/lib/exceptions/IllegalReturnException.js.map +1 -1
- package/lib/exceptions/IllegalStateException.js +5 -34
- package/lib/exceptions/IllegalStateException.js.map +1 -1
- package/lib/exceptions/JsonParseException.js +5 -34
- package/lib/exceptions/JsonParseException.js.map +1 -1
- package/lib/exceptions/MissingPropertyException.js +5 -34
- package/lib/exceptions/MissingPropertyException.js.map +1 -1
- package/lib/exceptions/NetworkException.js +9 -38
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotAllowedUriException.js +5 -34
- package/lib/exceptions/NotAllowedUriException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js +12 -41
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/ServerRequestException.js +5 -34
- package/lib/exceptions/ServerRequestException.js.map +1 -1
- package/lib/exceptions/ThemePropertyException.js +5 -34
- package/lib/exceptions/ThemePropertyException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js +5 -32
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js +11 -40
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/exceptions/UnsupportedOperationException.js +5 -34
- package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
- package/lib/exceptions/index.js +15 -15
- package/lib/hooks/index.js +16 -16
- package/lib/hooks/useAllFormsOnModel.js +25 -51
- package/lib/hooks/useAllFormsOnModel.js.map +1 -1
- package/lib/hooks/useAuthentication.js +18 -24
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useContent.js +14 -27
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +5 -7
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/hooks/useForm.js +27 -45
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useI18n.js +10 -20
- package/lib/hooks/useI18n.js.map +1 -1
- package/lib/hooks/useModal.js +11 -11
- package/lib/hooks/useModal.js.map +1 -1
- package/lib/hooks/useModelCatalog.js +24 -30
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModels.js +3 -3
- package/lib/hooks/useModels.js.map +1 -1
- package/lib/hooks/useModularUI.js +17 -16
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +9 -7
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useModularUIModel.js +39 -59
- package/lib/hooks/useModularUIModel.js.map +1 -1
- package/lib/hooks/useModularUIRequest.js +4 -6
- package/lib/hooks/useModularUIRequest.js.map +1 -1
- package/lib/hooks/useNotification.js +16 -21
- package/lib/hooks/useNotification.js.map +1 -1
- package/lib/hooks/usePreference.js +3 -5
- package/lib/hooks/usePreference.js.map +1 -1
- package/lib/hooks/useProgressIndicator.js +9 -37
- package/lib/hooks/useProgressIndicator.js.map +1 -1
- package/lib/hooks/useRouter.js +11 -25
- package/lib/hooks/useRouter.js.map +1 -1
- package/lib/i18n/Locale.js +97 -144
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js +97 -160
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/i18n/Message.js +13 -31
- package/lib/i18n/Message.js.map +1 -1
- package/lib/i18n/index.js +9 -11
- package/lib/i18n/index.js.map +1 -1
- package/lib/i18n/languages.js +1 -1
- package/lib/i18n/languages.js.map +1 -1
- package/lib/i18n/withMessage.js +11 -17
- package/lib/i18n/withMessage.js.map +1 -1
- package/lib/index.js +6 -6
- package/lib/models/actions/ActionCollection.js +58 -104
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js +169 -210
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +107 -159
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js +245 -341
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +182 -257
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +203 -257
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js +838 -950
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js +49 -83
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js +267 -339
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/CaptchaAttributeModel.js +27 -59
- package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +343 -437
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +268 -369
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +299 -357
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +181 -270
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +331 -411
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js +371 -425
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/HelptextAttributeModel.js +41 -74
- package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/lib/models/attributes/LabelAttributeModel.js +26 -58
- package/lib/models/attributes/LabelAttributeModel.js.map +1 -1
- package/lib/models/attributes/MemoAttributeModel.js +34 -67
- package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
- package/lib/models/attributes/MoneyAttributeModel.js +34 -67
- package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +181 -231
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js +201 -253
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js +239 -289
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js +183 -243
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/XMLAttributeModel.js +38 -71
- package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
- package/lib/models/attributes/_createAttribute.js +20 -43
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/attributes/input-constraints/BSNConstraint.js +64 -84
- package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintCollection.js +36 -74
- package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintModel.js +46 -59
- package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +171 -193
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +53 -68
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +53 -68
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +67 -84
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js +53 -69
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js +79 -95
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/IBANConstraint.js +41 -58
- package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js +39 -60
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js +63 -82
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js +150 -172
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js +105 -125
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +92 -114
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js +58 -73
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +36 -55
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +51 -65
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +51 -65
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +64 -82
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js +116 -135
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RegexConstraint.js +48 -62
- package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js +158 -177
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/XMLConstraint.js +49 -69
- package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js +54 -70
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js +172 -218
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +43 -74
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +32 -64
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/lib/models/base/BaseCollection.js +170 -206
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/BaseModel.js +98 -113
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceCollection.js +28 -60
- package/lib/models/base/ResourceCollection.js.map +1 -1
- package/lib/models/base/ResourceModel.js +171 -231
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/caseview/CaseViewModel.js +137 -188
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +97 -153
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +243 -329
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js +118 -156
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js +122 -163
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationCollection.js +57 -105
- package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +62 -75
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/ConceptTypeDetailModel.js +87 -127
- package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +13 -44
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js +47 -74
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/content/ContentIndexModel.js +112 -156
- package/lib/models/content/ContentIndexModel.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +162 -205
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/content/ContentModel.js +188 -235
- package/lib/models/content/ContentModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js +133 -209
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/content/ContentTypeModel.js +56 -92
- package/lib/models/content/ContentTypeModel.js.map +1 -1
- package/lib/models/content/SectionModel.js +160 -254
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/content/SubSectionModel.js +125 -196
- package/lib/models/content/SubSectionModel.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfiguration.js +46 -58
- package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationElements.js +127 -171
- package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js +28 -45
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js +31 -42
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationResults.js +74 -98
- package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/lib/models/detail/DetailModel.js +176 -232
- package/lib/models/detail/DetailModel.js.map +1 -1
- package/lib/models/error/ErrorCollection.js +82 -139
- package/lib/models/error/ErrorCollection.js.map +1 -1
- package/lib/models/error/ErrorModel.js +36 -48
- package/lib/models/error/ErrorModel.js.map +1 -1
- package/lib/models/error/ErrorResponse.js +177 -205
- package/lib/models/error/ErrorResponse.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js +144 -195
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +171 -228
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/ConceptIndexFilterModel.js +9 -39
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +109 -177
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/FilterModel.js +2 -29
- package/lib/models/filters/FilterModel.js.map +1 -1
- package/lib/models/filters/RangeFilterModel.js +30 -60
- package/lib/models/filters/RangeFilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +961 -1150
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +411 -517
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/grouping/GroupingModel.js +117 -165
- package/lib/models/grouping/GroupingModel.js.map +1 -1
- package/lib/models/href/Href.js +392 -452
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/ListHref.js +119 -159
- package/lib/models/href/ListHref.js.map +1 -1
- package/lib/models/index.js +97 -99
- package/lib/models/index.js.map +1 -1
- package/lib/models/layouthint/LayoutHintCollection.js +94 -140
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js +136 -196
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/links/LinkModel.js +191 -235
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/links/normalizeLinkJSON.js +30 -66
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +229 -302
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListHeaderModel.js +73 -97
- package/lib/models/list/ListHeaderModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js +49 -91
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js +76 -114
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js +347 -435
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/lookup/LookupOptionCollection.js +16 -61
- package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
- package/lib/models/lookup/LookupOptionsModel.js +48 -79
- package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
- package/lib/models/modelcatalog/ModelCatalogModel.js +39 -72
- package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/lib/models/paging/PagesizeModel.js +29 -38
- package/lib/models/paging/PagesizeModel.js.map +1 -1
- package/lib/models/paging/PagingModel.js +77 -92
- package/lib/models/paging/PagingModel.js.map +1 -1
- package/lib/models/panels/GroupingPanelModel.js +117 -164
- package/lib/models/panels/GroupingPanelModel.js.map +1 -1
- package/lib/models/parameter/Parameter.js +83 -99
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/process/ProcessStatusSettingsModel.js +67 -105
- package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/lib/models/resolveModel.js +3 -5
- package/lib/models/resolveModel.js.map +1 -1
- package/lib/models/search/CaseSearchModel.js +26 -60
- package/lib/models/search/CaseSearchModel.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js +77 -91
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/models/sorting/SortingModel.js +88 -140
- package/lib/models/sorting/SortingModel.js.map +1 -1
- package/lib/models/tab/TabModel.js +122 -170
- package/lib/models/tab/TabModel.js.map +1 -1
- package/lib/models/taskgroup/TaskGroupCollection.js +8 -39
- package/lib/models/taskgroup/TaskGroupCollection.js.map +1 -1
- package/lib/models/taskgroup/TaskGroupModel.js +54 -88
- package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/lib/models/user/UserModel.js +32 -65
- package/lib/models/user/UserModel.js.map +1 -1
- package/lib/models/user/UserProfileModel.js +21 -56
- package/lib/models/user/UserProfileModel.js.map +1 -1
- package/lib/models/user/UserServicesModel.js +78 -128
- package/lib/models/user/UserServicesModel.js.flow +1 -7
- package/lib/models/user/UserServicesModel.js.map +1 -1
- package/lib/modularui/Authenticate.js +144 -157
- package/lib/modularui/Authenticate.js.flow +13 -7
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIError.js +9 -39
- package/lib/modularui/ModularUIError.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +477 -647
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/ModularUIResponse.js +102 -120
- package/lib/modularui/ModularUIResponse.js.map +1 -1
- package/lib/modularui/index.js +3 -3
- package/lib/react/ErrorBoundary.js +33 -71
- package/lib/react/ErrorBoundary.js.map +1 -1
- package/lib/react/ErrorBoundaryFallback.js +8 -6
- package/lib/react/ErrorBoundaryFallback.js.map +1 -1
- package/lib/react/index.js +2 -2
- package/lib/react/utils.js +12 -16
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/Init.js +9 -7
- package/lib/react-client/Init.js.map +1 -1
- package/lib/react-client/client.js +22 -23
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js +4 -4
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-client/index.js +3 -3
- package/lib/react-client/rehydrate.js +14 -22
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/react-server/createSSRComplete.js +10 -14
- package/lib/react-server/createSSRComplete.js.map +1 -1
- package/lib/react-server/htmlpage.js +5 -8
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/index.js +8 -8
- package/lib/react-server/renderSSRComplete.js +50 -55
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js +13 -13
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/react-server/requestInformation.js +8 -10
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverNoSSR.js +22 -21
- package/lib/react-server/serverNoSSR.js.map +1 -1
- package/lib/react-server/serverSSR.js +24 -24
- package/lib/react-server/serverSSR.js.map +1 -1
- package/lib/react-server/serverUtil.js +49 -74
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/ThemeProvider.js +10 -7
- package/lib/react-theme/ThemeProvider.js.map +1 -1
- package/lib/react-theme/createTheme.js +15 -44
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/index.js +9 -9
- package/lib/react-theme/useTheme.js +1 -1
- package/lib/react-theme/useTheme.js.map +1 -1
- package/lib/react-theme/utils/background.js +9 -9
- package/lib/react-theme/utils/background.js.map +1 -1
- package/lib/react-theme/utils/colors.js +12 -12
- package/lib/react-theme/utils/colors.js.map +1 -1
- package/lib/react-theme/utils/contrast.js +27 -28
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js +10 -9
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js +23 -22
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js +28 -30
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_i18n/actions.js +15 -21
- package/lib/redux/_i18n/actions.js.map +1 -1
- package/lib/redux/_i18n/index.js +2 -2
- package/lib/redux/_i18n/reducer.js +20 -34
- package/lib/redux/_i18n/reducer.js.map +1 -1
- package/lib/redux/_modularui/actions.js +40 -72
- package/lib/redux/_modularui/actions.js.map +1 -1
- package/lib/redux/_modularui/connector.js +46 -55
- package/lib/redux/_modularui/connector.js.map +1 -1
- package/lib/redux/_modularui/index.js +7 -7
- package/lib/redux/_modularui/middleware.js +23 -36
- package/lib/redux/_modularui/middleware.js.map +1 -1
- package/lib/redux/_modularui/modularuiUtils.js +16 -24
- package/lib/redux/_modularui/modularuiUtils.js.map +1 -1
- package/lib/redux/_modularui/reducer.js +42 -61
- package/lib/redux/_modularui/reducer.js.map +1 -1
- package/lib/redux/_modularui/selectors.js +89 -106
- package/lib/redux/_modularui/selectors.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js +11 -15
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/_router/actions.js +29 -39
- package/lib/redux/_router/actions.js.map +1 -1
- package/lib/redux/_router/connectors.js +7 -9
- package/lib/redux/_router/connectors.js.map +1 -1
- package/lib/redux/_router/index.js +4 -4
- package/lib/redux/_router/middleware.js +27 -29
- package/lib/redux/_router/middleware.js.map +1 -1
- package/lib/redux/_router/reducer.js +4 -4
- package/lib/redux/_router/reducer.js.map +1 -1
- package/lib/redux/actions/Application.js +11 -37
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js +31 -33
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Error.js +33 -43
- package/lib/redux/actions/Error.js.map +1 -1
- package/lib/redux/actions/Form.js +14 -16
- package/lib/redux/actions/Form.js.map +1 -1
- package/lib/redux/actions/FormAttributeSet.js +6 -6
- package/lib/redux/actions/FormAttributeSet.js.map +1 -1
- package/lib/redux/actions/FormAttributeSetRepeatable.js +6 -6
- package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js +12 -18
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormAutosubmit.js +2 -2
- package/lib/redux/actions/FormAutosubmit.js.map +1 -1
- package/lib/redux/actions/FormValidations.js +12 -20
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/lib/redux/actions/Modals.js +8 -12
- package/lib/redux/actions/Modals.js.map +1 -1
- package/lib/redux/actions/Notification.js +32 -42
- package/lib/redux/actions/Notification.js.map +1 -1
- package/lib/redux/actions/Preferences.js +32 -43
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/actions/ProgressIndicator.js +15 -23
- package/lib/redux/actions/ProgressIndicator.js.map +1 -1
- package/lib/redux/actions/SignIn.js +43 -57
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/SignOut.js +9 -17
- package/lib/redux/actions/SignOut.js.map +1 -1
- package/lib/redux/actions/index.js +15 -15
- package/lib/redux/connectors/Application.js +1 -1
- package/lib/redux/connectors/Application.js.map +1 -1
- package/lib/redux/connectors/Breadcrumb.js +4 -6
- package/lib/redux/connectors/Breadcrumb.js.map +1 -1
- package/lib/redux/connectors/CaseView.js +4 -2
- package/lib/redux/connectors/CaseView.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js +5 -3
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentBrowser.js +4 -2
- package/lib/redux/connectors/ContentBrowser.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js +5 -3
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js +6 -4
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js +10 -8
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/FormAttributeSet.js +13 -21
- package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
- package/lib/redux/connectors/ListDetail.js +4 -2
- package/lib/redux/connectors/ListDetail.js.map +1 -1
- package/lib/redux/connectors/Modal.js +4 -6
- package/lib/redux/connectors/Modal.js.map +1 -1
- package/lib/redux/connectors/ModelCatalog.js +4 -2
- package/lib/redux/connectors/ModelCatalog.js.map +1 -1
- package/lib/redux/connectors/Notification.js +8 -10
- package/lib/redux/connectors/Notification.js.map +1 -1
- package/lib/redux/connectors/PanelRenderer.js +7 -6
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/redux/connectors/Preferences.js +6 -8
- package/lib/redux/connectors/Preferences.js.map +1 -1
- package/lib/redux/connectors/Progress.js +2 -2
- package/lib/redux/connectors/Progress.js.map +1 -1
- package/lib/redux/connectors/ProgressIndicator.js +6 -8
- package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
- package/lib/redux/connectors/QuickSearch.js +5 -3
- package/lib/redux/connectors/QuickSearch.js.map +1 -1
- package/lib/redux/connectors/SignIn.js +4 -4
- package/lib/redux/connectors/SignIn.js.map +1 -1
- package/lib/redux/connectors/SignOut.js +3 -3
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/connectors/Tab.js +4 -2
- package/lib/redux/connectors/Tab.js.map +1 -1
- package/lib/redux/connectors/index.js +21 -21
- package/lib/redux/index.js +8 -8
- package/lib/redux/reducers/AuthReducer.js +14 -33
- package/lib/redux/reducers/AuthReducer.js.map +1 -1
- package/lib/redux/reducers/ErrorReducer.js +4 -4
- package/lib/redux/reducers/ErrorReducer.js.map +1 -1
- package/lib/redux/reducers/ModalsReducer.js +19 -45
- package/lib/redux/reducers/ModalsReducer.js.map +1 -1
- package/lib/redux/reducers/NotificationReducer.js +8 -27
- package/lib/redux/reducers/NotificationReducer.js.map +1 -1
- package/lib/redux/reducers/PreferencesReducer.js +10 -25
- package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
- package/lib/redux/reducers/ProgressIndicatorReducer.js +14 -33
- package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/lib/redux/reducers/createReducer.js +11 -13
- package/lib/redux/reducers/createReducer.js.map +1 -1
- package/lib/redux/reducers/index.js +7 -7
- package/lib/redux/selectors/i18n.js +2 -4
- package/lib/redux/selectors/i18n.js.map +1 -1
- package/lib/redux/selectors/index.js +1 -1
- package/lib/redux/store/beforeRenderHooks.js +5 -29
- package/lib/redux/store/beforeRenderHooks.js.map +1 -1
- package/lib/redux/store/configureStore.js +10 -24
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/browser/Cache.js +126 -161
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/browser/Cookies.js +4 -4
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +364 -418
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js +5 -5
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +13 -13
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js +281 -365
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/checkResource.js +7 -7
- package/lib/utils/helpers/checkResource.js.map +1 -1
- package/lib/utils/helpers/createHash.js +5 -5
- package/lib/utils/helpers/createHash.js.map +1 -1
- package/lib/utils/helpers/createUUID.js +4 -4
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/lib/utils/helpers/objects.js +9 -15
- package/lib/utils/helpers/objects.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js +13 -13
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/helpers/text.js +1 -1
- package/lib/utils/helpers/text.js.map +1 -1
- package/lib/utils/index.js +15 -15
- package/lib/utils/number/DecimalFormat.js +298 -328
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js +10 -17
- package/lib/utils/number/formatValue.js.map +1 -1
- package/lib/utils/number/parseNumbers.js +13 -13
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +13 -13
- package/src/models/user/UserServicesModel.js +1 -7
- package/src/modularui/Authenticate.js +13 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","FormModel","modularuiResponse","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","layouthint","getContribution","endResultChildLinks","endResultFormObject","getInitialChildModelLinks","models","setChildModels","forEach","buttonType","buttonLabels","cancel","completedFormObjects","contributions","objects","objectKeys","length","anchor","dynamicschema","elements","element","item","missingAnchors","missing","anchors","results","resultObject","result","objectid","addGlobalDynamicSchema","getMissingAnchors","objectId","formObjectModel","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","Math","max","allObjects","formObject","equals","key","hint","_currentFormObject","_completedFormObjects","formObjects","_previouslyEnteredFormObjects","missingObjects","missingObjectIds","endResultAnchors","otherProps","endResult","endResultKeys","some","objectKey","content","_endResultFormObjects","previousEndResultKeys","_previousEndResultKeys","endResultFormObjectKeys","isRepeatable","hasOneValidQuestion","object","isValid","errorCollection","hasItems","hasServerErrors","hasErrors","error","addServerError","id","message","_errorCollection","resetErrors","_commit","commit","_isFinished","isFinished","_isComplete","success","redirect","_redirectLocation","successRedirect","par","_prefix","_name","_value","_parameters","selfhref","selflink","href","method","POST","parameter","name","selfhrefNoCommitParam","expectsEndResultFormObjects","addParameter","Error","selfhrefWithCommitParam","_tokens","tokens","isChangedSince","_lastUpdate","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","obj","push","withConcurrencyToken","getFormDataObjects","enabled","_useClientsideValidation","attributeCollection","all","setUseClientsideValidation","useClientsideValidation","currentFormObjectKey","isRepeatWithUnknownTotal","oldCurrentFormObject","previouslyEnteredFormObjects","completedFormObjectKeys","formObjectKey","setPreviousObject","hasNoQuestionsConfigured","isDynamic","currentObjectIndex","isLastObject","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_data","properties","errorAnchors","handleMissingErrors","handleNewFormObject","attribute","hasAttributeByKey","addMissingError","removeMissingError","processMissingErrors","receivedCurrentFormObject","handlePreviouslyEnteredFormObjects","_mergePreviouslyEnteredObjects","mergePreviouslyEnteredObjects","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findMethod","foundAttribute","resourcetype"],"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\";\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\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\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 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) {\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) {\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 );\n } else {\n this.errorCollection.addServerError(error.id, error.message);\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 || \"success\" in this.data;\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.data.success\n ? new Href(this.data.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n */\n getSuccessData(): Object {\n return this.data.success?.data;\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\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\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 * 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 );\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 );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats\n )\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject)\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","FormModel","constructor","modularuiResponse","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","type","actiontype","layouthint","getContribution","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","endResultChildLinks","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","elements","element","item","getMissingAnchors","missingAnchors","missing","anchors","results","resultObject","result","objectid","objectId","addEmptyFormObject","formObjectModel","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","Math","max","formObject","equals","getFormObjectByKey","key","getFormObjectByLayoutHint","hint","removeFormObject","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","missingObjects","missingObjectIds","endResultAnchors","otherProps","endResult","expectsEndResultFormObjects","endResultKeys","some","objectKey","content","_endResultFormObjects","getEndResultFormObjects","previousEndResultKeys","_previousEndResultKeys","endResultFormObjectKeys","isValid","isRepeatable","hasOneValidQuestion","object","hasServerErrors","errorCollection","hasItems","hasErrors","addServerError","error","id","message","resetErrors","_errorCollection","commit","_commit","isFinished","_isFinished","_isComplete","successRedirect","success","redirect","redirectLocation","_redirectLocation","getSuccessData","par","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","selfhref","selflink","href","method","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","obj","push","withConcurrencyToken","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","oldCurrentFormObject","completedFormObjectKeys","formObjectKey","hasNextStep","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_data","properties","errorAnchors","handleMissingErrors","handleNewFormObject","processMissingErrors","attribute","hasAttributeByKey","addMissingError","removeMissingError","receivedCurrentFormObject","handlePreviouslyEnteredFormObjects","mergePreviouslyEnteredObjects","_mergePreviouslyEnteredObjects","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findAttribute","findMethod","foundAttribute"],"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\";\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\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\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 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) {\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) {\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 );\n } else {\n this.errorCollection.addServerError(error.id, error.message);\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 || \"success\" in this.data;\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.data.success\n ? new Href(this.data.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n */\n getSuccessData(): Object {\n return this.data.success?.data;\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\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\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 * 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 );\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 );\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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"}
|