@beinformed/ui 1.23.2 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -6
- package/esm/builder/index.js +1 -0
- package/esm/builder/index.js.map +1 -1
- package/esm/builder/mergeLayoutHintConfigurations.js +1 -11
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/Constants.js +23 -28
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/LayoutHintConfig.js +1 -0
- package/esm/constants/LayoutHintConfig.js.map +1 -1
- package/esm/constants/LayoutHints.js +11 -27
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/constants/Settings.js +9 -15
- package/esm/constants/Settings.js.map +1 -1
- package/esm/constants/index.js +1 -0
- package/esm/constants/index.js.map +1 -1
- package/esm/exceptions/ConfigurationException.js +2 -2
- package/esm/exceptions/ConfigurationException.js.map +1 -1
- package/esm/exceptions/FetchException.js +9 -28
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/IllegalArgumentException.js +1 -2
- package/esm/exceptions/IllegalArgumentException.js.map +1 -1
- package/esm/exceptions/IllegalReturnException.js +1 -2
- package/esm/exceptions/IllegalReturnException.js.map +1 -1
- package/esm/exceptions/IllegalStateException.js +1 -2
- package/esm/exceptions/IllegalStateException.js.map +1 -1
- package/esm/exceptions/JsonParseException.js +1 -2
- package/esm/exceptions/JsonParseException.js.map +1 -1
- package/esm/exceptions/MissingPropertyException.js +1 -2
- package/esm/exceptions/MissingPropertyException.js.map +1 -1
- package/esm/exceptions/NetworkException.js +1 -10
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotAllowedUriException.js +1 -2
- package/esm/exceptions/NotAllowedUriException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js +1 -11
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/ServerRequestException.js +1 -2
- package/esm/exceptions/ServerRequestException.js.map +1 -1
- package/esm/exceptions/ThemePropertyException.js +1 -2
- package/esm/exceptions/ThemePropertyException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js +1 -6
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js +1 -10
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/exceptions/UnsupportedOperationException.js +1 -2
- package/esm/exceptions/UnsupportedOperationException.js.map +1 -1
- package/esm/exceptions/index.js +1 -0
- package/esm/exceptions/index.js.map +1 -1
- package/esm/hooks/index.js +1 -0
- package/esm/hooks/index.js.map +1 -1
- package/esm/hooks/useAllFormsOnModel.js +0 -16
- package/esm/hooks/useAllFormsOnModel.js.map +1 -1
- package/esm/hooks/useAuthentication.js +9 -23
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useContent.js +3 -10
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useDeepCompareEffect.js +2 -6
- package/esm/hooks/useDeepCompareEffect.js.map +1 -1
- package/esm/hooks/useForm.js +4 -13
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useI18n.js +3 -7
- package/esm/hooks/useI18n.js.map +1 -1
- package/esm/hooks/useModal.js +0 -3
- package/esm/hooks/useModal.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +10 -21
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModels.js +1 -1
- package/esm/hooks/useModels.js.map +1 -1
- package/esm/hooks/useModularUI.js +7 -11
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +2 -12
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useModularUIModel.js +11 -10
- package/esm/hooks/useModularUIModel.js.map +1 -1
- package/esm/hooks/useModularUIRequest.js +2 -1
- package/esm/hooks/useModularUIRequest.js.map +1 -1
- package/esm/hooks/useNotification.js +2 -2
- package/esm/hooks/useNotification.js.map +1 -1
- package/esm/hooks/usePreference.js +1 -1
- package/esm/hooks/usePreference.js.map +1 -1
- package/esm/hooks/useProgressIndicator.js +3 -2
- package/esm/hooks/useProgressIndicator.js.map +1 -1
- package/esm/hooks/useRouter.js +7 -10
- package/esm/hooks/useRouter.js.map +1 -1
- package/esm/i18n/Locale.js +15 -40
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js +13 -33
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/i18n/Message.js +3 -5
- package/esm/i18n/Message.js.map +1 -1
- package/esm/i18n/index.js +1 -0
- package/esm/i18n/index.js.map +1 -1
- package/esm/i18n/languages.js +1 -0
- package/esm/i18n/languages.js.map +1 -1
- package/esm/i18n/translations/beinformed_error_messages_en.nl.js +1 -0
- package/esm/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
- package/esm/i18n/translations/beinformed_error_messages_nl.nl.js +1 -0
- package/esm/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
- package/esm/i18n/withMessage.js +1 -4
- package/esm/i18n/withMessage.js.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +13 -26
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js +23 -60
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +14 -34
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js +27 -81
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +23 -56
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js +33 -83
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js +102 -258
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js +6 -17
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js +29 -76
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/CaptchaAttributeModel.js +5 -8
- package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +38 -108
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +27 -80
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +34 -102
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js +23 -64
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +40 -99
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js +51 -145
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/HelptextAttributeModel.js +7 -17
- package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/esm/models/attributes/LabelAttributeModel.js +4 -8
- package/esm/models/attributes/LabelAttributeModel.js.map +1 -1
- package/esm/models/attributes/MemoAttributeModel.js +6 -10
- package/esm/models/attributes/MemoAttributeModel.js.map +1 -1
- package/esm/models/attributes/MoneyAttributeModel.js +5 -10
- package/esm/models/attributes/MoneyAttributeModel.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js +22 -49
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js +23 -65
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js +29 -72
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js +21 -62
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/XMLAttributeModel.js +5 -10
- package/esm/models/attributes/XMLAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js +7 -21
- package/esm/models/attributes/_createAttribute.js.map +1 -1
- package/esm/models/attributes/input-constraints/BSNConstraint.js +8 -19
- package/esm/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintCollection.js +3 -10
- package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintModel.js +6 -22
- package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js +16 -59
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +8 -22
- package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +8 -22
- package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +10 -28
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/FileExtensionConstraint.js +7 -18
- package/esm/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/FileSizeConstraint.js +10 -24
- package/esm/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/IBANConstraint.js +6 -13
- package/esm/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js +8 -15
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js +8 -25
- package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js +17 -53
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.js +15 -41
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js +15 -39
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js +8 -20
- package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +7 -12
- package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +7 -17
- package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +7 -17
- package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +8 -22
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RangeConstraint.js +22 -57
- package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RegexConstraint.js +7 -18
- package/esm/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/StringLengthConstraint.js +14 -50
- package/esm/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/XMLConstraint.js +8 -17
- package/esm/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js +9 -17
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js +30 -84
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +5 -11
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +4 -10
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/esm/models/base/BaseCollection.js +27 -67
- package/esm/models/base/BaseCollection.js.map +1 -1
- package/esm/models/base/BaseModel.js +14 -39
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceCollection.js +2 -5
- package/esm/models/base/ResourceCollection.js.map +1 -1
- package/esm/models/base/ResourceModel.js +21 -53
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +16 -46
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js +10 -39
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +32 -85
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js +12 -36
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js +16 -45
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationCollection.js +7 -20
- package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +8 -22
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/ConceptTypeDetailModel.js +12 -25
- package/esm/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +2 -5
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js +10 -21
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentIndexModel.js +13 -37
- package/esm/models/content/ContentIndexModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +19 -56
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/content/ContentModel.js +22 -59
- package/esm/models/content/ContentModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.js +17 -45
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/content/ContentTypeModel.js +8 -16
- package/esm/models/content/ContentTypeModel.js.map +1 -1
- package/esm/models/content/SectionModel.js +20 -57
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/SubSectionModel.js +16 -43
- package/esm/models/content/SubSectionModel.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfiguration.js +6 -20
- package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationElements.js +11 -48
- package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.js +3 -13
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.js +5 -15
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationResults.js +13 -32
- package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/esm/models/detail/DetailModel.js +21 -54
- package/esm/models/detail/DetailModel.js.map +1 -1
- package/esm/models/error/ErrorCollection.js +11 -29
- package/esm/models/error/ErrorCollection.js.map +1 -1
- package/esm/models/error/ErrorModel.js +8 -21
- package/esm/models/error/ErrorModel.js.map +1 -1
- package/esm/models/error/ErrorResponse.js +37 -93
- package/esm/models/error/ErrorResponse.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js +19 -45
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +25 -58
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/ConceptIndexFilterModel.js +1 -5
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +11 -44
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/FilterModel.js +2 -1
- package/esm/models/filters/FilterModel.js.map +1 -1
- package/esm/models/filters/RangeFilterModel.js +1 -6
- package/esm/models/filters/RangeFilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +136 -332
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +55 -141
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/grouping/GroupingModel.js +20 -58
- package/esm/models/grouping/GroupingModel.js.map +1 -1
- package/esm/models/href/Href.js +47 -121
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/href/ListHref.js +11 -32
- package/esm/models/href/ListHref.js.map +1 -1
- package/esm/models/index.js +1 -0
- package/esm/models/index.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js +9 -32
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js +15 -44
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/links/LinkModel.js +21 -57
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js +5 -21
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +31 -79
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListHeaderModel.js +10 -28
- package/esm/models/list/ListHeaderModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js +4 -20
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js +7 -23
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js +38 -115
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/lookup/LookupOptionCollection.js +4 -6
- package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
- package/esm/models/lookup/LookupOptionsModel.js +5 -16
- package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
- package/esm/models/modelcatalog/ModelCatalogModel.js +6 -14
- package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/esm/models/paging/PagesizeModel.js +4 -12
- package/esm/models/paging/PagesizeModel.js.map +1 -1
- package/esm/models/paging/PagingModel.js +11 -26
- package/esm/models/paging/PagingModel.js.map +1 -1
- package/esm/models/panels/GroupingPanelModel.js +14 -41
- package/esm/models/panels/GroupingPanelModel.js.map +1 -1
- package/esm/models/parameter/Parameter.js +14 -41
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/process/ProcessStatusSettingsModel.js +10 -24
- package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/esm/models/resolveModel.js +2 -7
- package/esm/models/resolveModel.js.map +1 -1
- package/esm/models/search/CaseSearchModel.js +3 -9
- package/esm/models/search/CaseSearchModel.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js +15 -41
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/models/sorting/SortingModel.js +9 -28
- package/esm/models/sorting/SortingModel.js.map +1 -1
- package/esm/models/tab/TabModel.js +14 -41
- package/esm/models/tab/TabModel.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupCollection.js +1 -2
- package/esm/models/taskgroup/TaskGroupCollection.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupModel.js +7 -17
- package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/esm/models/user/UserModel.js +5 -10
- package/esm/models/user/UserModel.js.map +1 -1
- package/esm/models/user/UserProfileModel.js +2 -10
- package/esm/models/user/UserProfileModel.js.map +1 -1
- package/esm/models/user/UserServicesModel.js +11 -27
- package/esm/models/user/UserServicesModel.js.map +1 -1
- package/esm/modularui/Authenticate.js +21 -56
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIError.js +3 -8
- package/esm/modularui/ModularUIError.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +89 -193
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/ModularUIResponse.js +13 -37
- package/esm/modularui/ModularUIResponse.js.map +1 -1
- package/esm/modularui/index.js +1 -0
- package/esm/modularui/index.js.map +1 -1
- package/esm/react/ErrorBoundary.js +2 -12
- package/esm/react/ErrorBoundary.js.map +1 -1
- package/esm/react/ErrorBoundaryFallback.js +2 -2
- package/esm/react/ErrorBoundaryFallback.js.map +1 -1
- package/esm/react/index.js +1 -0
- package/esm/react/index.js.map +1 -1
- package/esm/react/utils.js +3 -7
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/Init.js +1 -2
- package/esm/react-client/Init.js.map +1 -1
- package/esm/react-client/client.js +15 -29
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js +3 -8
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-client/index.js +1 -0
- package/esm/react-client/index.js.map +1 -1
- package/esm/react-client/rehydrate.js +4 -19
- package/esm/react-client/rehydrate.js.map +1 -1
- package/esm/react-server/contextPath.js +2 -2
- package/esm/react-server/contextPath.js.map +1 -1
- package/esm/react-server/createSSRComplete.js +2 -12
- package/esm/react-server/createSSRComplete.js.map +1 -1
- package/esm/react-server/htmlpage.js +25 -12
- package/esm/react-server/htmlpage.js.map +1 -1
- package/esm/react-server/index.js +1 -0
- package/esm/react-server/index.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js +4 -4
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRMinimal.js +1 -2
- package/esm/react-server/renderSSRMinimal.js.map +1 -1
- package/esm/react-server/requestInformation.js +7 -12
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverNoSSR.js +3 -7
- package/esm/react-server/serverNoSSR.js.map +1 -1
- package/esm/react-server/serverSSR.js +1 -2
- package/esm/react-server/serverSSR.js.map +1 -1
- package/esm/react-server/serverUtil.js +13 -37
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/ThemeProvider.js +1 -2
- package/esm/react-theme/ThemeProvider.js.map +1 -1
- package/esm/react-theme/createTheme.js +7 -20
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/index.js +1 -0
- package/esm/react-theme/index.js.map +1 -1
- package/esm/react-theme/useTheme.js +1 -2
- package/esm/react-theme/useTheme.js.map +1 -1
- package/esm/react-theme/utils/background.js +2 -5
- package/esm/react-theme/utils/background.js.map +1 -1
- package/esm/react-theme/utils/colors.js +3 -9
- package/esm/react-theme/utils/colors.js.map +1 -1
- package/esm/react-theme/utils/contrast.js +8 -27
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js +4 -10
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js +7 -22
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js +8 -22
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_i18n/actions.js +3 -3
- package/esm/redux/_i18n/actions.js.map +1 -1
- package/esm/redux/_i18n/index.js +1 -0
- package/esm/redux/_i18n/index.js.map +1 -1
- package/esm/redux/_i18n/reducer.js +13 -16
- package/esm/redux/_i18n/reducer.js.map +1 -1
- package/esm/redux/_modularui/actions.js +36 -48
- package/esm/redux/_modularui/actions.js.map +1 -1
- package/esm/redux/_modularui/connector.js +21 -18
- package/esm/redux/_modularui/connector.js.map +1 -1
- package/esm/redux/_modularui/index.js +1 -0
- package/esm/redux/_modularui/index.js.map +1 -1
- package/esm/redux/_modularui/middleware.js +8 -22
- package/esm/redux/_modularui/middleware.js.map +1 -1
- package/esm/redux/_modularui/modularuiUtils.js +10 -25
- package/esm/redux/_modularui/modularuiUtils.js.map +1 -1
- package/esm/redux/_modularui/reducer.js +19 -39
- package/esm/redux/_modularui/reducer.js.map +1 -1
- package/esm/redux/_modularui/selectors.js +20 -62
- package/esm/redux/_modularui/selectors.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js +3 -3
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/_router/actions.js +7 -5
- package/esm/redux/_router/actions.js.map +1 -1
- package/esm/redux/_router/connectors.js +11 -14
- package/esm/redux/_router/connectors.js.map +1 -1
- package/esm/redux/_router/index.js +1 -0
- package/esm/redux/_router/index.js.map +1 -1
- package/esm/redux/_router/middleware.js +2 -1
- package/esm/redux/_router/middleware.js.map +1 -1
- package/esm/redux/_router/reducer.js +3 -3
- package/esm/redux/_router/reducer.js.map +1 -1
- package/esm/redux/actions/Application.js +2 -4
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js +8 -14
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Error.js +5 -13
- package/esm/redux/actions/Error.js.map +1 -1
- package/esm/redux/actions/Form.js +2 -3
- package/esm/redux/actions/Form.js.map +1 -1
- package/esm/redux/actions/FormAttributeSet.js +1 -9
- package/esm/redux/actions/FormAttributeSet.js.map +1 -1
- package/esm/redux/actions/FormAttributeSetRepeatable.js +3 -3
- package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js +4 -6
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormAutosubmit.js +1 -4
- package/esm/redux/actions/FormAutosubmit.js.map +1 -1
- package/esm/redux/actions/FormValidations.js +3 -7
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/esm/redux/actions/Modals.js +3 -1
- package/esm/redux/actions/Modals.js.map +1 -1
- package/esm/redux/actions/Notification.js +5 -10
- package/esm/redux/actions/Notification.js.map +1 -1
- package/esm/redux/actions/Preferences.js +14 -26
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/actions/ProgressIndicator.js +5 -4
- package/esm/redux/actions/ProgressIndicator.js.map +1 -1
- package/esm/redux/actions/SignIn.js +5 -8
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/actions/SignOut.js +2 -2
- package/esm/redux/actions/SignOut.js.map +1 -1
- package/esm/redux/actions/index.js +1 -0
- package/esm/redux/actions/index.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 +2 -3
- package/esm/redux/connectors/Breadcrumb.js.map +1 -1
- package/esm/redux/connectors/CaseView.js +1 -1
- package/esm/redux/connectors/CaseView.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js +2 -5
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentBrowser.js +1 -1
- package/esm/redux/connectors/ContentBrowser.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js +2 -5
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js +2 -5
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js +3 -10
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/redux/connectors/FormAttributeSet.js +2 -3
- package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
- package/esm/redux/connectors/ListDetail.js +1 -1
- package/esm/redux/connectors/ListDetail.js.map +1 -1
- package/esm/redux/connectors/Modal.js +1 -5
- package/esm/redux/connectors/Modal.js.map +1 -1
- package/esm/redux/connectors/ModelCatalog.js +1 -1
- package/esm/redux/connectors/ModelCatalog.js.map +1 -1
- package/esm/redux/connectors/Notification.js +2 -3
- package/esm/redux/connectors/Notification.js.map +1 -1
- package/esm/redux/connectors/PanelRenderer.js +1 -5
- package/esm/redux/connectors/PanelRenderer.js.map +1 -1
- package/esm/redux/connectors/Preferences.js +2 -4
- package/esm/redux/connectors/Preferences.js.map +1 -1
- package/esm/redux/connectors/Progress.js +2 -1
- package/esm/redux/connectors/Progress.js.map +1 -1
- package/esm/redux/connectors/ProgressIndicator.js +2 -3
- package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
- package/esm/redux/connectors/QuickSearch.js +2 -1
- package/esm/redux/connectors/QuickSearch.js.map +1 -1
- package/esm/redux/connectors/SignIn.js +3 -6
- package/esm/redux/connectors/SignIn.js.map +1 -1
- package/esm/redux/connectors/SignOut.js +4 -6
- package/esm/redux/connectors/SignOut.js.map +1 -1
- package/esm/redux/connectors/Tab.js +1 -1
- package/esm/redux/connectors/Tab.js.map +1 -1
- package/esm/redux/connectors/index.js +1 -0
- package/esm/redux/connectors/index.js.map +1 -1
- package/esm/redux/index.js +16 -7
- package/esm/redux/index.js.map +1 -1
- package/esm/redux/reducers/AuthReducer.js +13 -14
- package/esm/redux/reducers/AuthReducer.js.map +1 -1
- package/esm/redux/reducers/ErrorReducer.js +3 -4
- package/esm/redux/reducers/ErrorReducer.js.map +1 -1
- package/esm/redux/reducers/ModalsReducer.js +11 -15
- package/esm/redux/reducers/ModalsReducer.js.map +1 -1
- package/esm/redux/reducers/NotificationReducer.js +7 -8
- package/esm/redux/reducers/NotificationReducer.js.map +1 -1
- package/esm/redux/reducers/PreferencesReducer.js +7 -7
- package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
- package/esm/redux/reducers/ProgressIndicatorReducer.js +11 -15
- package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/esm/redux/reducers/createReducer.js +1 -1
- package/esm/redux/reducers/createReducer.js.map +1 -1
- package/esm/redux/reducers/index.js +1 -0
- package/esm/redux/reducers/index.js.map +1 -1
- package/esm/redux/selectors/i18n.js +5 -4
- package/esm/redux/selectors/i18n.js.map +1 -1
- package/esm/redux/selectors/index.js +1 -0
- package/esm/redux/selectors/index.js.map +1 -1
- package/esm/redux/store/beforeRenderHooks.js +2 -1
- package/esm/redux/store/beforeRenderHooks.js.map +1 -1
- package/esm/redux/store/configureStore.js +3 -7
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/utils/browser/Cache.js +17 -44
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/browser/Cookies.js +4 -9
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/datetime/DateTimeUtil.js +53 -110
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js +2 -8
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js +6 -17
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js +42 -101
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/checkResource.js +6 -6
- package/esm/utils/helpers/checkResource.js.map +1 -1
- package/esm/utils/helpers/createHash.js +3 -5
- package/esm/utils/helpers/createHash.js.map +1 -1
- package/esm/utils/helpers/createUUID.js +1 -1
- package/esm/utils/helpers/createUUID.js.map +1 -1
- package/esm/utils/helpers/objects.js +5 -8
- package/esm/utils/helpers/objects.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js +7 -9
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/helpers/text.js +2 -3
- package/esm/utils/helpers/text.js.map +1 -1
- package/esm/utils/index.js +8 -3
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js +43 -124
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js +5 -18
- package/esm/utils/number/formatValue.js.map +1 -1
- package/esm/utils/number/parseNumbers.js +5 -17
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/index.js +0 -3
- package/lib/builder/index.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +1 -13
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/Constants.js +25 -32
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/LayoutHintConfig.js.map +1 -1
- package/lib/constants/LayoutHints.js +9 -29
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/constants/Settings.js +9 -38
- package/lib/constants/Settings.js.map +1 -1
- package/lib/constants/index.js +0 -7
- package/lib/constants/index.js.map +1 -1
- package/lib/exceptions/ConfigurationException.js +0 -2
- package/lib/exceptions/ConfigurationException.js.map +1 -1
- package/lib/exceptions/FetchException.js +9 -27
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/IllegalArgumentException.js +0 -3
- package/lib/exceptions/IllegalArgumentException.js.map +1 -1
- package/lib/exceptions/IllegalReturnException.js +0 -3
- package/lib/exceptions/IllegalReturnException.js.map +1 -1
- package/lib/exceptions/IllegalStateException.js +0 -3
- package/lib/exceptions/IllegalStateException.js.map +1 -1
- package/lib/exceptions/JsonParseException.js +0 -3
- package/lib/exceptions/JsonParseException.js.map +1 -1
- package/lib/exceptions/MissingPropertyException.js +0 -3
- package/lib/exceptions/MissingPropertyException.js.map +1 -1
- package/lib/exceptions/NetworkException.js +1 -10
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotAllowedUriException.js +0 -3
- package/lib/exceptions/NotAllowedUriException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js +1 -10
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/ServerRequestException.js +0 -3
- package/lib/exceptions/ServerRequestException.js.map +1 -1
- package/lib/exceptions/ThemePropertyException.js +0 -3
- package/lib/exceptions/ThemePropertyException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js +1 -10
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js +1 -9
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/exceptions/UnsupportedOperationException.js +0 -3
- package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
- package/lib/exceptions/index.js +0 -16
- package/lib/exceptions/index.js.map +1 -1
- package/lib/hooks/index.js +0 -33
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useAllFormsOnModel.js +0 -23
- package/lib/hooks/useAllFormsOnModel.js.map +1 -1
- package/lib/hooks/useAuthentication.js +8 -35
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useContent.js +3 -16
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +1 -12
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/hooks/useForm.js +3 -27
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useI18n.js +3 -15
- package/lib/hooks/useI18n.js.map +1 -1
- package/lib/hooks/useModal.js +0 -9
- package/lib/hooks/useModal.js.map +1 -1
- package/lib/hooks/useModelCatalog.js +9 -45
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModels.js +0 -3
- package/lib/hooks/useModels.js.map +1 -1
- package/lib/hooks/useModularUI.js +6 -19
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +2 -17
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useModularUIModel.js +9 -39
- package/lib/hooks/useModularUIModel.js.map +1 -1
- package/lib/hooks/useModularUIRequest.js +1 -7
- package/lib/hooks/useModularUIRequest.js.map +1 -1
- package/lib/hooks/useNotification.js +1 -7
- package/lib/hooks/useNotification.js.map +1 -1
- package/lib/hooks/usePreference.js +0 -4
- package/lib/hooks/usePreference.js.map +1 -1
- package/lib/hooks/useProgressIndicator.js +2 -4
- package/lib/hooks/useProgressIndicator.js.map +1 -1
- package/lib/hooks/useRouter.js +6 -20
- package/lib/hooks/useRouter.js.map +1 -1
- package/lib/i18n/Locale.js +15 -44
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js +13 -44
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/i18n/Message.js +2 -8
- package/lib/i18n/Message.js.map +1 -1
- package/lib/i18n/index.js +0 -9
- package/lib/i18n/index.js.map +1 -1
- package/lib/i18n/languages.js.map +1 -1
- package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
- package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
- package/lib/i18n/withMessage.js +1 -10
- package/lib/i18n/withMessage.js.map +1 -1
- package/lib/index.js +0 -13
- package/lib/index.js.map +1 -1
- package/lib/models/actions/ActionCollection.js +12 -33
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js +23 -68
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +14 -41
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js +27 -87
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +23 -65
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +32 -89
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js +101 -254
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js +5 -20
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js +29 -83
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/CaptchaAttributeModel.js +3 -10
- package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +38 -115
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +26 -84
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +34 -108
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +23 -70
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +40 -109
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js +51 -159
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/HelptextAttributeModel.js +5 -20
- package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/lib/models/attributes/LabelAttributeModel.js +3 -11
- package/lib/models/attributes/LabelAttributeModel.js.map +1 -1
- package/lib/models/attributes/MemoAttributeModel.js +4 -13
- package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
- package/lib/models/attributes/MoneyAttributeModel.js +4 -14
- package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +21 -61
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js +23 -75
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js +28 -79
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js +21 -66
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/XMLAttributeModel.js +4 -16
- package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
- package/lib/models/attributes/_createAttribute.js +7 -41
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/attributes/input-constraints/BSNConstraint.js +6 -19
- package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintCollection.js +3 -15
- package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintModel.js +6 -19
- package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +16 -58
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +8 -22
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +8 -22
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +10 -27
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js +7 -20
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js +10 -26
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/IBANConstraint.js +5 -14
- package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js +6 -15
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js +8 -25
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js +17 -51
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js +15 -44
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +15 -40
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js +8 -20
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +5 -12
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +7 -18
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +7 -18
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +8 -24
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js +22 -57
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RegexConstraint.js +7 -19
- package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js +13 -50
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/XMLConstraint.js +6 -17
- package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js +8 -18
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js +30 -88
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +4 -19
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +3 -13
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/lib/models/base/BaseCollection.js +26 -73
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/BaseModel.js +14 -40
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceCollection.js +1 -6
- package/lib/models/base/ResourceCollection.js.map +1 -1
- package/lib/models/base/ResourceModel.js +21 -53
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/caseview/CaseViewModel.js +16 -54
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +10 -44
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +32 -90
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js +12 -42
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js +16 -49
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationCollection.js +6 -25
- package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +8 -23
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/ConceptTypeDetailModel.js +11 -26
- package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +1 -11
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js +9 -22
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/content/ContentIndexModel.js +12 -44
- package/lib/models/content/ContentIndexModel.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +19 -61
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/content/ContentModel.js +21 -67
- package/lib/models/content/ContentModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js +17 -55
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/content/ContentTypeModel.js +7 -18
- package/lib/models/content/ContentTypeModel.js.map +1 -1
- package/lib/models/content/SectionModel.js +19 -62
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/content/SubSectionModel.js +15 -51
- package/lib/models/content/SubSectionModel.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfiguration.js +5 -25
- package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationElements.js +10 -45
- package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js +2 -17
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js +4 -16
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationResults.js +12 -37
- package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/lib/models/detail/DetailModel.js +21 -61
- package/lib/models/detail/DetailModel.js.map +1 -1
- package/lib/models/error/ErrorCollection.js +10 -35
- package/lib/models/error/ErrorCollection.js.map +1 -1
- package/lib/models/error/ErrorModel.js +6 -17
- package/lib/models/error/ErrorModel.js.map +1 -1
- package/lib/models/error/ErrorResponse.js +36 -96
- package/lib/models/error/ErrorResponse.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js +19 -45
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +24 -60
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/ConceptIndexFilterModel.js +0 -9
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +11 -55
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/FilterModel.js +0 -3
- package/lib/models/filters/FilterModel.js.map +1 -1
- package/lib/models/filters/RangeFilterModel.js +1 -10
- package/lib/models/filters/RangeFilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +135 -328
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +55 -144
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/grouping/GroupingModel.js +20 -58
- package/lib/models/grouping/GroupingModel.js.map +1 -1
- package/lib/models/href/Href.js +47 -123
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/ListHref.js +11 -29
- package/lib/models/href/ListHref.js.map +1 -1
- package/lib/models/index.js +0 -97
- package/lib/models/index.js.map +1 -1
- package/lib/models/layouthint/LayoutHintCollection.js +8 -40
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js +15 -51
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/links/LinkModel.js +20 -62
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/links/normalizeLinkJSON.js +5 -21
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +31 -84
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListHeaderModel.js +10 -30
- package/lib/models/list/ListHeaderModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js +4 -24
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js +7 -29
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js +38 -123
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/lookup/LookupOptionCollection.js +2 -8
- package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
- package/lib/models/lookup/LookupOptionsModel.js +5 -19
- package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
- package/lib/models/modelcatalog/ModelCatalogModel.js +4 -17
- package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/lib/models/paging/PagesizeModel.js +4 -13
- package/lib/models/paging/PagesizeModel.js.map +1 -1
- package/lib/models/paging/PagingModel.js +10 -26
- package/lib/models/paging/PagingModel.js.map +1 -1
- package/lib/models/panels/GroupingPanelModel.js +14 -47
- package/lib/models/panels/GroupingPanelModel.js.map +1 -1
- package/lib/models/parameter/Parameter.js +13 -42
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/process/ProcessStatusSettingsModel.js +9 -29
- package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/lib/models/resolveModel.js +1 -33
- package/lib/models/resolveModel.js.map +1 -1
- package/lib/models/search/CaseSearchModel.js +3 -12
- package/lib/models/search/CaseSearchModel.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js +13 -39
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/models/sorting/SortingModel.js +8 -35
- package/lib/models/sorting/SortingModel.js.map +1 -1
- package/lib/models/tab/TabModel.js +14 -48
- package/lib/models/tab/TabModel.js.map +1 -1
- package/lib/models/taskgroup/TaskGroupCollection.js +0 -4
- package/lib/models/taskgroup/TaskGroupCollection.js.map +1 -1
- package/lib/models/taskgroup/TaskGroupModel.js +6 -19
- package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/lib/models/user/UserModel.js +4 -12
- package/lib/models/user/UserModel.js.map +1 -1
- package/lib/models/user/UserProfileModel.js +2 -14
- package/lib/models/user/UserProfileModel.js.map +1 -1
- package/lib/models/user/UserServicesModel.js +11 -30
- package/lib/models/user/UserServicesModel.js.map +1 -1
- package/lib/modularui/Authenticate.js +20 -66
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIError.js +3 -7
- package/lib/modularui/ModularUIError.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +89 -200
- package/lib/modularui/ModularUIRequest.js.flow +14 -0
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/ModularUIResponse.js +13 -34
- package/lib/modularui/ModularUIResponse.js.map +1 -1
- package/lib/modularui/index.js +0 -4
- package/lib/modularui/index.js.map +1 -1
- package/lib/react/ErrorBoundary.js +2 -14
- package/lib/react/ErrorBoundary.js.map +1 -1
- package/lib/react/ErrorBoundaryFallback.js +1 -8
- package/lib/react/ErrorBoundaryFallback.js.map +1 -1
- package/lib/react/index.js +0 -5
- package/lib/react/index.js.map +1 -1
- package/lib/react/utils.js +2 -13
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/Init.js +0 -8
- package/lib/react-client/Init.js.map +1 -1
- package/lib/react-client/client.js +16 -49
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js +2 -9
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-client/index.js +0 -4
- package/lib/react-client/index.js.map +1 -1
- package/lib/react-client/rehydrate.js +3 -23
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/react-server/contextPath.js +1 -2
- package/lib/react-server/contextPath.js.map +1 -1
- package/lib/react-server/createSSRComplete.js +2 -16
- package/lib/react-server/createSSRComplete.js.map +1 -1
- package/lib/react-server/htmlpage.js +25 -16
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/index.js +0 -12
- package/lib/react-server/index.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js +3 -16
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js +0 -10
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/react-server/requestInformation.js +6 -21
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverNoSSR.js +2 -14
- package/lib/react-server/serverNoSSR.js.map +1 -1
- package/lib/react-server/serverSSR.js +0 -8
- package/lib/react-server/serverSSR.js.map +1 -1
- package/lib/react-server/serverUtil.js +13 -60
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/ThemeProvider.js +0 -6
- package/lib/react-theme/ThemeProvider.js.map +1 -1
- package/lib/react-theme/createTheme.js +7 -23
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/index.js +0 -18
- package/lib/react-theme/index.js.map +1 -1
- package/lib/react-theme/useTheme.js +0 -3
- package/lib/react-theme/useTheme.js.map +1 -1
- package/lib/react-theme/utils/background.js +1 -5
- package/lib/react-theme/utils/background.js.map +1 -1
- package/lib/react-theme/utils/colors.js +2 -12
- package/lib/react-theme/utils/colors.js.map +1 -1
- package/lib/react-theme/utils/contrast.js +7 -35
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js +3 -14
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js +6 -30
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js +7 -35
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_i18n/actions.js +2 -8
- package/lib/redux/_i18n/actions.js.map +1 -1
- package/lib/redux/_i18n/index.js +0 -5
- package/lib/redux/_i18n/index.js.map +1 -1
- package/lib/redux/_i18n/reducer.js +12 -21
- package/lib/redux/_i18n/reducer.js.map +1 -1
- package/lib/redux/_modularui/actions.js +36 -69
- package/lib/redux/_modularui/actions.js.map +1 -1
- package/lib/redux/_modularui/connector.js +20 -28
- package/lib/redux/_modularui/connector.js.map +1 -1
- package/lib/redux/_modularui/index.js +0 -14
- package/lib/redux/_modularui/index.js.map +1 -1
- package/lib/redux/_modularui/middleware.js +8 -28
- package/lib/redux/_modularui/middleware.js.map +1 -1
- package/lib/redux/_modularui/modularuiUtils.js +10 -36
- package/lib/redux/_modularui/modularuiUtils.js.map +1 -1
- package/lib/redux/_modularui/reducer.js +19 -45
- package/lib/redux/_modularui/reducer.js.map +1 -1
- package/lib/redux/_modularui/selectors.js +20 -97
- package/lib/redux/_modularui/selectors.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js +2 -11
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/_router/actions.js +5 -16
- package/lib/redux/_router/actions.js.map +1 -1
- package/lib/redux/_router/connectors.js +10 -15
- package/lib/redux/_router/connectors.js.map +1 -1
- package/lib/redux/_router/index.js +0 -9
- package/lib/redux/_router/index.js.map +1 -1
- package/lib/redux/_router/middleware.js +0 -2
- package/lib/redux/_router/middleware.js.map +1 -1
- package/lib/redux/_router/reducer.js +2 -4
- package/lib/redux/_router/reducer.js.map +1 -1
- package/lib/redux/actions/Application.js +1 -8
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js +6 -25
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Error.js +4 -24
- package/lib/redux/actions/Error.js.map +1 -1
- package/lib/redux/actions/Form.js +1 -12
- package/lib/redux/actions/Form.js.map +1 -1
- package/lib/redux/actions/FormAttributeSet.js +0 -14
- package/lib/redux/actions/FormAttributeSet.js.map +1 -1
- package/lib/redux/actions/FormAttributeSetRepeatable.js +2 -8
- package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js +3 -12
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormAutosubmit.js +0 -6
- package/lib/redux/actions/FormAutosubmit.js.map +1 -1
- package/lib/redux/actions/FormValidations.js +2 -13
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/lib/redux/actions/Modals.js +1 -4
- package/lib/redux/actions/Modals.js.map +1 -1
- package/lib/redux/actions/Notification.js +4 -19
- package/lib/redux/actions/Notification.js.map +1 -1
- package/lib/redux/actions/Preferences.js +13 -44
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/actions/ProgressIndicator.js +3 -11
- package/lib/redux/actions/ProgressIndicator.js.map +1 -1
- package/lib/redux/actions/SignIn.js +5 -28
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/SignOut.js +1 -9
- package/lib/redux/actions/SignOut.js.map +1 -1
- package/lib/redux/actions/index.js +0 -31
- package/lib/redux/actions/index.js.map +1 -1
- package/lib/redux/connectors/Application.js +0 -2
- package/lib/redux/connectors/Application.js.map +1 -1
- package/lib/redux/connectors/Breadcrumb.js +1 -4
- package/lib/redux/connectors/Breadcrumb.js.map +1 -1
- package/lib/redux/connectors/CaseView.js +0 -2
- package/lib/redux/connectors/CaseView.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js +1 -7
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentBrowser.js +0 -2
- package/lib/redux/connectors/ContentBrowser.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js +1 -7
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js +1 -8
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js +2 -19
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/FormAttributeSet.js +1 -5
- package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
- package/lib/redux/connectors/ListDetail.js +0 -3
- package/lib/redux/connectors/ListDetail.js.map +1 -1
- package/lib/redux/connectors/Modal.js +1 -7
- package/lib/redux/connectors/Modal.js.map +1 -1
- package/lib/redux/connectors/ModelCatalog.js +0 -2
- package/lib/redux/connectors/ModelCatalog.js.map +1 -1
- package/lib/redux/connectors/Notification.js +1 -4
- package/lib/redux/connectors/Notification.js.map +1 -1
- package/lib/redux/connectors/PanelRenderer.js +0 -7
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/redux/connectors/Preferences.js +1 -5
- package/lib/redux/connectors/Preferences.js.map +1 -1
- package/lib/redux/connectors/Progress.js +1 -4
- package/lib/redux/connectors/Progress.js.map +1 -1
- package/lib/redux/connectors/ProgressIndicator.js +1 -3
- package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
- package/lib/redux/connectors/QuickSearch.js +1 -7
- package/lib/redux/connectors/QuickSearch.js.map +1 -1
- package/lib/redux/connectors/SignIn.js +2 -8
- package/lib/redux/connectors/SignIn.js.map +1 -1
- package/lib/redux/connectors/SignOut.js +3 -8
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/connectors/Tab.js +0 -2
- package/lib/redux/connectors/Tab.js.map +1 -1
- package/lib/redux/connectors/index.js +0 -21
- package/lib/redux/connectors/index.js.map +1 -1
- package/lib/redux/index.js +0 -17
- package/lib/redux/index.js.map +1 -1
- package/lib/redux/reducers/AuthReducer.js +12 -14
- package/lib/redux/reducers/AuthReducer.js.map +1 -1
- package/lib/redux/reducers/ErrorReducer.js +2 -4
- package/lib/redux/reducers/ErrorReducer.js.map +1 -1
- package/lib/redux/reducers/ModalsReducer.js +11 -18
- package/lib/redux/reducers/ModalsReducer.js.map +1 -1
- package/lib/redux/reducers/NotificationReducer.js +6 -8
- package/lib/redux/reducers/NotificationReducer.js.map +1 -1
- package/lib/redux/reducers/PreferencesReducer.js +6 -7
- package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
- package/lib/redux/reducers/ProgressIndicatorReducer.js +10 -15
- package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/lib/redux/reducers/createReducer.js +0 -11
- package/lib/redux/reducers/createReducer.js.map +1 -1
- package/lib/redux/reducers/index.js +0 -10
- package/lib/redux/reducers/index.js.map +1 -1
- package/lib/redux/selectors/i18n.js +3 -7
- package/lib/redux/selectors/i18n.js.map +1 -1
- package/lib/redux/selectors/index.js +0 -3
- package/lib/redux/selectors/index.js.map +1 -1
- package/lib/redux/store/beforeRenderHooks.js +0 -2
- package/lib/redux/store/beforeRenderHooks.js.map +1 -1
- package/lib/redux/store/configureStore.js +2 -13
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/browser/Cache.js +16 -49
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/browser/Cookies.js +3 -14
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +52 -115
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js +2 -13
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +6 -25
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js +42 -111
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/checkResource.js +5 -11
- package/lib/utils/helpers/checkResource.js.map +1 -1
- package/lib/utils/helpers/createHash.js +1 -6
- package/lib/utils/helpers/createHash.js.map +1 -1
- package/lib/utils/helpers/createUUID.js +0 -2
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/lib/utils/helpers/objects.js +3 -15
- package/lib/utils/helpers/objects.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js +6 -13
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/helpers/text.js +0 -4
- package/lib/utils/helpers/text.js.map +1 -1
- package/lib/utils/index.js +0 -25
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js +43 -121
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js +3 -22
- package/lib/utils/number/formatValue.js.map +1 -1
- package/lib/utils/number/parseNumbers.js +3 -19
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +29 -29
- package/src/modularui/ModularUIRequest.js +14 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","LayoutHintCollection","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","undefined","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\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\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 error.layouthint\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || \"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 error.layouthint\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint)\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats\n )\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject)\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModel.js","names":["flattenDeep","deepmerge","has","IllegalArgumentException","ResourceModel","ErrorCollection","Href","Parameter","FormObjectModel","HTTP_METHODS","getSetting","CREATE_ACTION","DELETE_ACTION","UPDATE_ACTION","LayoutHintCollection","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","undefined","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\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\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 error.layouthint\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || \"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 error.layouthint\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint)\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats\n )\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject)\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
|