@beinformed/ui 1.31.0 → 1.31.3
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 +20 -0
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/hooks/useAllFormsOnModel.js.map +1 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useDeepCompareEffect.js.map +1 -1
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useI18n.js.map +1 -1
- package/esm/hooks/useModal.js.map +1 -1
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useModularUIModel.js.map +1 -1
- package/esm/hooks/useModularUIRequest.js.map +1 -1
- package/esm/hooks/useNotification.js.map +1 -1
- package/esm/hooks/usePreference.js +8 -2
- package/esm/hooks/usePreference.js.map +1 -1
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/i18n/Message.js.map +1 -1
- package/esm/i18n/withMessage.js.map +1 -1
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +8 -0
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/esm/models/base/BaseCollection.js.map +1 -1
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentIndexModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/content/ContentModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/SubSectionModel.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/esm/models/detail/DetailModel.js.map +1 -1
- package/esm/models/error/ErrorCollection.js.map +1 -1
- package/esm/models/error/ErrorModel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/grouping/GroupingModel.js.map +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
- package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
- package/esm/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/esm/models/paging/PagingModel.js.map +1 -1
- package/esm/models/panels/GroupingPanelModel.js.map +1 -1
- package/esm/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/esm/models/resolveModel.js.map +1 -1
- package/esm/models/sorting/SortingModel.js.map +1 -1
- package/esm/models/tab/TabModel.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/esm/models/types.js.map +1 -1
- package/esm/models/user/UserProfileModel.js.map +1 -1
- package/esm/modularui/CaptchaRequest.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/UploadRequest.js.map +1 -1
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/client.js +1 -0
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-client/rehydrate.js.map +1 -1
- package/esm/react-server/createSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRMinimal.js.map +1 -1
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/utils/colors.js.map +1 -1
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_i18n/I18nActions.js.map +1 -1
- package/esm/redux/_i18n/I18nReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/esm/redux/_modularui/types.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/_router/RouterActions.js.map +1 -1
- package/esm/redux/_router/RouterConnectors.js.map +1 -1
- package/esm/redux/_router/RouterReducer.js.map +1 -1
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Error.js.map +1 -1
- package/esm/redux/actions/FormAttributeSet.js.map +1 -1
- package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormAutosubmit.js.map +1 -1
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/esm/redux/actions/Notification.js.map +1 -1
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/actions/ProgressIndicator.js.map +1 -1
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/connectors/Application.js.map +1 -1
- package/esm/redux/connectors/Breadcrumb.js.map +1 -1
- package/esm/redux/connectors/CaseView.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentBrowser.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
- package/esm/redux/connectors/ListDetail.js.map +1 -1
- package/esm/redux/connectors/Modal.js.map +1 -1
- package/esm/redux/connectors/ModelCatalog.js.map +1 -1
- package/esm/redux/connectors/Notification.js.map +1 -1
- package/esm/redux/connectors/PanelRenderer.js.map +1 -1
- package/esm/redux/connectors/Preferences.js.map +1 -1
- package/esm/redux/connectors/Progress.js.map +1 -1
- package/esm/redux/connectors/ProgressIndicator.js.map +1 -1
- package/esm/redux/connectors/QuickSearch.js.map +1 -1
- package/esm/redux/connectors/SignIn.js.map +1 -1
- package/esm/redux/connectors/SignOut.js.map +1 -1
- package/esm/redux/connectors/Tab.js.map +1 -1
- package/esm/redux/reducers/AuthReducer.js.map +1 -1
- package/esm/redux/reducers/ErrorReducer.js.map +1 -1
- package/esm/redux/reducers/ModalsReducer.js.map +1 -1
- package/esm/redux/reducers/NotificationReducer.js.map +1 -1
- package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
- package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/esm/redux/store/beforeRenderHooks.js.map +1 -1
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/helpers/text.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js.map +1 -1
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/__tests__/mergeLayoutHintConfigurations.spec.js.flow +4 -4
- package/lib/builder/mergeLayoutHintConfigurations.js.flow +3 -3
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/LayoutHints.js.flow +1 -1
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/constants/Settings.js.flow +2 -2
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/FetchException.js.flow +2 -2
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/NetworkException.js.flow +1 -1
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js.flow +1 -1
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/hooks/__tests__/UseModularUIModel.spec.js.flow +9 -9
- package/lib/hooks/__tests__/useAuthentication.spec.js.flow +2 -2
- package/lib/hooks/__tests__/useForm.spec.js.flow +2 -2
- package/lib/hooks/__tests__/useModelCatalog.spec.js.flow +7 -7
- package/lib/hooks/__tests__/useModularUIBasic.spec.js.flow +2 -2
- package/lib/hooks/__tests__/usePreference.spec.js.flow +1 -1
- package/lib/hooks/useAllFormsOnModel.js.flow +2 -2
- package/lib/hooks/useAllFormsOnModel.js.map +1 -1
- package/lib/hooks/useAuthentication.js.flow +2 -2
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useContent.js.flow +1 -1
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js.flow +1 -1
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/hooks/useForm.js.flow +4 -4
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useI18n.js.flow +3 -3
- package/lib/hooks/useI18n.js.map +1 -1
- package/lib/hooks/useModal.js.flow +2 -2
- package/lib/hooks/useModal.js.map +1 -1
- package/lib/hooks/useModelCatalog.js.flow +1 -1
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModularUI.js.flow +1 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js.flow +1 -1
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useModularUIModel.js.flow +1 -1
- package/lib/hooks/useModularUIModel.js.map +1 -1
- package/lib/hooks/useModularUIRequest.js.flow +1 -1
- package/lib/hooks/useModularUIRequest.js.map +1 -1
- package/lib/hooks/useNotification.js.flow +2 -2
- package/lib/hooks/useNotification.js.map +1 -1
- package/lib/hooks/usePreference.js +8 -2
- package/lib/hooks/usePreference.js.flow +17 -7
- package/lib/hooks/usePreference.js.map +1 -1
- package/lib/i18n/Locale.js.flow +4 -4
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js.flow +8 -8
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/i18n/Message.js.flow +2 -2
- package/lib/i18n/Message.js.map +1 -1
- package/lib/i18n/__tests__/Locale.spec.js.flow +3 -3
- package/lib/i18n/__tests__/Locales.spec.js.flow +15 -13
- package/lib/i18n/withMessage.js.flow +4 -4
- package/lib/i18n/withMessage.js.map +1 -1
- package/lib/models/actions/ActionCollection.js.flow +4 -4
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js.flow +4 -4
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/actions/__tests__/ActionCollection.spec.js.flow +3 -3
- package/lib/models/actions/__tests__/ActionModel.spec.js.flow +1 -1
- package/lib/models/application/ApplicationModel.js.flow +3 -3
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js.flow +7 -7
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js.flow +9 -9
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js.flow +9 -9
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.flow +24 -24
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js.flow +1 -1
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -4
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js.flow +7 -7
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +15 -15
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +8 -0
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +19 -11
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +10 -10
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js.flow +7 -7
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js.flow +6 -6
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js.flow +9 -9
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js.flow +8 -8
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js.flow +3 -3
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js.flow +5 -5
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/AttributeCollection.spec.js.flow +11 -11
- package/lib/models/attributes/__tests__/AttributeContent.spec.js.flow +7 -7
- package/lib/models/attributes/__tests__/AttributeModel.spec.js.flow +5 -5
- package/lib/models/attributes/__tests__/AttributeSetModel.spec.js.flow +2 -2
- package/lib/models/attributes/__tests__/BooleanAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/ChoiceAttributeModel.spec.js.flow +8 -8
- package/lib/models/attributes/__tests__/ChoiceAttributeOptionCollection.spec.js.flow +8 -8
- package/lib/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/DateAttributeModel.spec.js.flow +4 -4
- package/lib/models/attributes/__tests__/DatetimeAttributeModel.spec.js.flow +11 -11
- package/lib/models/attributes/__tests__/HelptextAttributeModel.spec.js.flow +3 -3
- package/lib/models/attributes/__tests__/MemoAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/MoneyAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/NumberAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/PasswordAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/__tests__/StringAttributeModel.spec.js.flow +4 -4
- package/lib/models/attributes/__tests__/TimeAttributeModel.spec.js.flow +2 -2
- package/lib/models/attributes/__tests__/TimestampModel.spec.js.flow +2 -2
- package/lib/models/attributes/__tests__/UploadAttributeModel.spec.js.flow +4 -4
- package/lib/models/attributes/__tests__/_createAttribute.spec.js.flow +6 -6
- package/lib/models/attributes/__tests__/createAttributeComposite.spec.js.flow +3 -3
- package/lib/models/attributes/__tests__/createAttributeDynamicSchema.spec.js.flow +3 -3
- package/lib/models/attributes/_createAttribute.js.flow +5 -5
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintCollection.js.flow +5 -5
- package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
- package/lib/models/attributes/input-constraints/ConstraintModel.js.flow +1 -1
- package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.flow +6 -6
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.flow +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.flow +6 -6
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.flow +2 -2
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.flow +2 -2
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/__tests__/ConstraintModel.spec.js.flow +1 -1
- package/lib/models/attributes/input-constraints/__tests__/DateBoundaryConstraint.spec.js.flow +6 -6
- package/lib/models/attributes/input-constraints/__tests__/DateTimeDateFormatConstraint.spec.js.flow +2 -2
- package/lib/models/attributes/input-constraints/__tests__/DateTimeTimeFormatConstraint.spec.js.flow +2 -2
- package/lib/models/attributes/input-constraints/__tests__/DatetimeFormatConstraint.spec.js.flow +5 -5
- package/lib/models/attributes/input-constraints/__tests__/NumberBoundaryConstraint.spec.js.flow +6 -6
- package/lib/models/attributes/input-constraints/__tests__/NumberFormatConstraint.spec.js.flow +3 -3
- package/lib/models/attributes/input-constraints/__tests__/NumberGroupingConstraint.spec.js.flow +2 -2
- package/lib/models/attributes/input-constraints/__tests__/RegexConstraint.spec.js.flow +1 -1
- package/lib/models/attributes/input-constraints/__tests__/StringLengthConstraint.spec.js.flow +4 -4
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.flow +4 -4
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.flow +15 -15
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.flow +2 -2
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.flow +2 -2
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/__tests__/DependentAttribute.spec.js.flow +22 -22
- package/lib/models/attributes/layouthint-rules/__tests__/LayoutHintRuleCollection.spec.js.flow +1 -1
- package/lib/models/attributes/layouthint-rules/__tests__/RemainingTotalUploadSize.spec.js.flow +4 -4
- package/lib/models/base/BaseCollection.js.flow +6 -6
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/BaseModel.js.flow +1 -1
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceModel.js.flow +5 -5
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/base/__tests__/ResourceCollection.spec.js.flow +1 -1
- package/lib/models/caseview/CaseViewModel.js.flow +4 -4
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +3 -3
- package/lib/models/concepts/BusinessScenarioModel.js.flow +9 -9
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js.flow +17 -17
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js.flow +2 -2
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js.flow +6 -4
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationCollection.js.flow +5 -5
- package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js.flow +2 -2
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js.flow +2 -2
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/concepts/__tests__/ConceptDetailModel.spec.js.flow +1 -1
- package/lib/models/content/ContentIndexModel.js.flow +3 -3
- package/lib/models/content/ContentIndexModel.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js.flow +11 -9
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/content/ContentModel.js.flow +2 -2
- package/lib/models/content/ContentModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js.flow +4 -4
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/content/SectionModel.js.flow +4 -4
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/content/SubSectionModel.js.flow +2 -2
- package/lib/models/content/SubSectionModel.js.map +1 -1
- package/lib/models/content/__tests__/ContentModel.spec.js.flow +16 -16
- package/lib/models/contentconfiguration/ContentConfiguration.js.flow +1 -1
- package/lib/models/contentconfiguration/ContentConfiguration.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationElements.js.flow +5 -5
- package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.flow +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.flow +2 -2
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/lib/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js.flow +12 -12
- package/lib/models/detail/DetailModel.js.flow +5 -5
- package/lib/models/detail/DetailModel.js.map +1 -1
- package/lib/models/error/ErrorCollection.js.flow +4 -4
- package/lib/models/error/ErrorCollection.js.map +1 -1
- package/lib/models/error/ErrorModel.js.flow +1 -1
- package/lib/models/error/ErrorModel.js.map +1 -1
- package/lib/models/error/__tests__/ErrorModel.spec.js.flow +1 -1
- package/lib/models/filters/AssignmentFilterModel.js.flow +3 -3
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js.flow +3 -3
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js.flow +5 -5
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/__tests__/AssignmentFilterModel.spec.js.flow +4 -4
- package/lib/models/filters/__tests__/FilterCollection.spec.js.flow +11 -11
- package/lib/models/filters/__tests__/FilterModel.spec.js.flow +1 -1
- package/lib/models/filters/__tests__/RangeFilterModel.spec.js.flow +1 -1
- package/lib/models/form/FormModel.js.flow +39 -39
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js.flow +16 -16
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/form/__tests__/FormModel.instrument.spec.js.flow +7 -7
- package/lib/models/form/__tests__/FormModel.repeating.spec.js.flow +2 -2
- package/lib/models/form/__tests__/FormModel.selfhref.spec.js.flow +1 -1
- package/lib/models/form/__tests__/FormModel.spec.js.flow +6 -6
- package/lib/models/form/__tests__/FormResultData.spec.js.flow +1 -1
- package/lib/models/form/__tests__/FormWithContent.spec.js.flow +3 -3
- package/lib/models/grouping/GroupingModel.js.flow +7 -7
- package/lib/models/grouping/GroupingModel.js.map +1 -1
- package/lib/models/grouping/__tests__/GroupingModel.spec.js.flow +2 -2
- package/lib/models/href/Href.js.flow +6 -6
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/__tests__/Href.spec.js.flow +18 -16
- package/lib/models/layouthint/LayoutHintCollection.js.flow +3 -3
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js.flow +4 -4
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/links/LinkModel.js.flow +3 -3
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/links/__tests__/LinkModel.spec.js.flow +4 -4
- package/lib/models/links/normalizeLinkJSON.js.flow +6 -6
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/models/list/ListDetailModel.js.flow +7 -7
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js.flow +2 -2
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js.flow +2 -2
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js.flow +6 -6
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/list/__tests__/ListDetailModel.spec.js.flow +4 -4
- package/lib/models/list/__tests__/ListItemCollection.spec.js.flow +1 -1
- package/lib/models/list/__tests__/ListModel.spec.js.flow +3 -3
- package/lib/models/list/__tests__/ListResultDetail.spec.js.flow +3 -3
- package/lib/models/lookup/LookupOptionCollection.js.flow +1 -1
- package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
- package/lib/models/lookup/LookupOptionsModel.js.flow +4 -4
- package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
- package/lib/models/lookup/__tests__/LookupOptionsModel.spec.js.flow +3 -3
- package/lib/models/modelcatalog/ModelCatalogModel.js.flow +2 -2
- package/lib/models/modelcatalog/ModelCatalogModel.js.map +1 -1
- package/lib/models/paging/PagingModel.js.flow +1 -1
- package/lib/models/paging/PagingModel.js.map +1 -1
- package/lib/models/paging/__tests__/PagingModel.spec.js.flow +2 -2
- package/lib/models/panels/GroupingPanelModel.js.flow +5 -5
- package/lib/models/panels/GroupingPanelModel.js.map +1 -1
- package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +8 -8
- package/lib/models/parameter/__tests__/Parameter.spec.js.flow +5 -5
- package/lib/models/process/ProcessStatusSettingsModel.js.flow +1 -1
- package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
- package/lib/models/process/__tests__/ProcessStatusSettingsModel.spec.js.flow +1 -1
- package/lib/models/resolveModel.js.flow +4 -4
- package/lib/models/resolveModel.js.map +1 -1
- package/lib/models/sorting/SortingModel.js.flow +4 -4
- package/lib/models/sorting/SortingModel.js.map +1 -1
- package/lib/models/sorting/__tests__/SortingModel.spec.js.flow +3 -3
- package/lib/models/tab/TabModel.js.flow +3 -3
- package/lib/models/tab/TabModel.js.map +1 -1
- package/lib/models/tab/__tests__/TabModel.spec.js.flow +5 -5
- package/lib/models/taskgroup/TaskGroupModel.js.flow +2 -2
- package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/lib/models/types.js.flow +1 -1
- package/lib/models/types.js.map +1 -1
- package/lib/models/user/UserProfileModel.js.flow +1 -1
- package/lib/models/user/UserProfileModel.js.map +1 -1
- package/lib/models/user/__tests__/UserModel.spec.js.flow +2 -2
- package/lib/models/user/__tests__/UserProfileModel.spec.js.flow +2 -2
- package/lib/models/user/__tests__/UserServicesModel.spec.js.flow +1 -1
- package/lib/modularui/CaptchaRequest.js.flow +1 -1
- package/lib/modularui/CaptchaRequest.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js.flow +26 -26
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/UploadRequest.js.flow +6 -6
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/modularui/__tests__/ModularUIError.spec.js.flow +1 -1
- package/lib/modularui/__tests__/ModularUIRequest.spec.js.flow +9 -9
- package/lib/react/utils.js.flow +1 -1
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/client.js +1 -0
- package/lib/react-client/client.js.flow +11 -10
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js.flow +2 -2
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-client/rehydrate.js.flow +1 -1
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/react-server/__tests__/serverUtil.spec.js.flow +2 -2
- package/lib/react-server/createSSRComplete.js.flow +3 -3
- package/lib/react-server/createSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js.flow +4 -4
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js.flow +1 -1
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/react-server/requestInformation.js.flow +2 -2
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverUtil.js.flow +8 -8
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/__tests__/createTheme.spec.js.flow +4 -4
- package/lib/react-theme/createTheme.js.flow +1 -1
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/utils/__tests__/background.spec.js.flow +2 -2
- package/lib/react-theme/utils/__tests__/contrast.spec.js.flow +1 -1
- package/lib/react-theme/utils/__tests__/corners.spec.js.flow +3 -3
- package/lib/react-theme/utils/__tests__/spacers.spec.js.flow +1 -1
- package/lib/react-theme/utils/__tests__/themeProps.spec.js.flow +9 -9
- package/lib/react-theme/utils/colors.js.flow +3 -3
- package/lib/react-theme/utils/colors.js.map +1 -1
- package/lib/react-theme/utils/contrast.js.flow +6 -6
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js.flow +2 -2
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js.flow +2 -2
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js.flow +8 -8
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_i18n/I18nActions.js.flow +1 -1
- package/lib/redux/_i18n/I18nActions.js.map +1 -1
- package/lib/redux/_i18n/I18nReducer.js.flow +2 -2
- package/lib/redux/_i18n/I18nReducer.js.map +1 -1
- package/lib/redux/_i18n/__tests__/reducer.spec.js.flow +2 -2
- package/lib/redux/_modularui/ModularUIActions.js.flow +8 -8
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js.flow +4 -4
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.flow +6 -6
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js.flow +5 -5
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js.flow +11 -11
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js.flow +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -1
- package/lib/redux/_modularui/__tests__/reducer.spec.js.flow +13 -13
- package/lib/redux/_modularui/__tests__/selectors.spec.js.flow +3 -3
- package/lib/redux/_modularui/types.js.flow +4 -4
- package/lib/redux/_modularui/types.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js.flow +3 -3
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/_router/RouterActions.js.flow +3 -3
- package/lib/redux/_router/RouterActions.js.map +1 -1
- package/lib/redux/_router/RouterConnectors.js.flow +5 -5
- package/lib/redux/_router/RouterConnectors.js.map +1 -1
- package/lib/redux/_router/RouterReducer.js.flow +1 -1
- package/lib/redux/_router/RouterReducer.js.map +1 -1
- package/lib/redux/_router/__tests__/reducer.spec.js.flow +2 -2
- package/lib/redux/actions/Application.js.flow +1 -1
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js.flow +1 -1
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Error.js.flow +3 -3
- package/lib/redux/actions/Error.js.map +1 -1
- package/lib/redux/actions/FormAttributeSet.js.flow +2 -2
- package/lib/redux/actions/FormAttributeSet.js.map +1 -1
- package/lib/redux/actions/FormAttributeSetRepeatable.js.flow +3 -3
- package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js.flow +1 -1
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormAutosubmit.js.flow +1 -1
- package/lib/redux/actions/FormAutosubmit.js.map +1 -1
- package/lib/redux/actions/FormValidations.js.flow +3 -3
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/lib/redux/actions/Notification.js.flow +4 -4
- package/lib/redux/actions/Notification.js.map +1 -1
- package/lib/redux/actions/Preferences.js.flow +11 -11
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/actions/ProgressIndicator.js.flow +1 -1
- package/lib/redux/actions/ProgressIndicator.js.map +1 -1
- package/lib/redux/actions/SignIn.js.flow +3 -3
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/__tests__/Authorization.spec.js.flow +2 -2
- package/lib/redux/actions/__tests__/Error-server.spec.js.flow +13 -13
- package/lib/redux/actions/__tests__/Error.spec.js.flow +6 -6
- package/lib/redux/actions/__tests__/Notification.spec.js.flow +1 -1
- package/lib/redux/actions/__tests__/Preferences.spec.js.flow +2 -2
- package/lib/redux/connectors/Application.js.flow +1 -1
- package/lib/redux/connectors/Application.js.map +1 -1
- package/lib/redux/connectors/Breadcrumb.js.flow +1 -1
- package/lib/redux/connectors/Breadcrumb.js.map +1 -1
- package/lib/redux/connectors/CaseView.js.flow +1 -1
- package/lib/redux/connectors/CaseView.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js.flow +1 -1
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentBrowser.js.flow +1 -1
- package/lib/redux/connectors/ContentBrowser.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js.flow +1 -1
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js.flow +2 -2
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js.flow +5 -5
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/FormAttributeSet.js.flow +6 -6
- package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
- package/lib/redux/connectors/ListDetail.js.flow +1 -1
- package/lib/redux/connectors/ListDetail.js.map +1 -1
- package/lib/redux/connectors/Modal.js.flow +1 -1
- package/lib/redux/connectors/Modal.js.map +1 -1
- package/lib/redux/connectors/ModelCatalog.js.flow +1 -1
- package/lib/redux/connectors/ModelCatalog.js.map +1 -1
- package/lib/redux/connectors/Notification.js.flow +1 -1
- package/lib/redux/connectors/Notification.js.map +1 -1
- package/lib/redux/connectors/PanelRenderer.js.flow +2 -2
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/redux/connectors/Preferences.js.flow +3 -3
- package/lib/redux/connectors/Preferences.js.map +1 -1
- package/lib/redux/connectors/Progress.js.flow +1 -1
- package/lib/redux/connectors/Progress.js.map +1 -1
- package/lib/redux/connectors/ProgressIndicator.js.flow +1 -1
- package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
- package/lib/redux/connectors/QuickSearch.js.flow +2 -2
- package/lib/redux/connectors/QuickSearch.js.map +1 -1
- package/lib/redux/connectors/SignIn.js.flow +1 -1
- package/lib/redux/connectors/SignIn.js.map +1 -1
- package/lib/redux/connectors/SignOut.js.flow +1 -1
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/connectors/Tab.js.flow +1 -1
- package/lib/redux/connectors/Tab.js.map +1 -1
- package/lib/redux/reducers/AuthReducer.js.flow +1 -1
- package/lib/redux/reducers/AuthReducer.js.map +1 -1
- package/lib/redux/reducers/ErrorReducer.js.flow +1 -1
- package/lib/redux/reducers/ErrorReducer.js.map +1 -1
- package/lib/redux/reducers/ModalsReducer.js.flow +1 -1
- package/lib/redux/reducers/ModalsReducer.js.map +1 -1
- package/lib/redux/reducers/NotificationReducer.js.flow +1 -1
- package/lib/redux/reducers/NotificationReducer.js.map +1 -1
- package/lib/redux/reducers/PreferencesReducer.js.flow +1 -1
- package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
- package/lib/redux/reducers/ProgressIndicatorReducer.js.flow +1 -1
- package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/lib/redux/reducers/__tests__/AuthReducer.spec.js.flow +10 -10
- package/lib/redux/reducers/__tests__/ErrorReducer.spec.js.flow +1 -1
- package/lib/redux/reducers/__tests__/ModalsReducer.spec.js.flow +3 -3
- package/lib/redux/reducers/__tests__/NotificationReducer.spec.js.flow +3 -3
- package/lib/redux/reducers/__tests__/PreferencesReducer.spec.js.flow +2 -2
- package/lib/redux/reducers/__tests__/ProgressIndicatorReducer.spec.js.flow +8 -8
- package/lib/redux/store/beforeRenderHooks.js.flow +1 -1
- package/lib/redux/store/beforeRenderHooks.js.map +1 -1
- package/lib/redux/store/configureStore.js.flow +3 -3
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/browser/Cookies.js.flow +1 -1
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/browser/__tests__/Cookies.spec.js.flow +1 -1
- package/lib/utils/datetime/DateTimeUtil.js.flow +15 -15
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/datetime/__tests__/DateTime.spec.js.flow +84 -81
- package/lib/utils/fetch/__tests__/xhr.spec.js.flow +2 -2
- package/lib/utils/fetch/universalFetch.js.flow +1 -1
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.flow +6 -6
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/__tests__/sanitizeHTML.spec.js.flow +8 -8
- package/lib/utils/helpers/sanitizeHtml.js.flow +3 -3
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/helpers/text.js.flow +1 -1
- package/lib/utils/helpers/text.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js.flow +2 -2
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/__tests__/formatValue.spec.js.flow +1 -1
- package/lib/utils/number/formatValue.js.flow +2 -2
- package/lib/utils/number/formatValue.js.map +1 -1
- package/lib/utils/number/parseNumbers.js.flow +7 -7
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +20 -20
- package/src/builder/__tests__/mergeLayoutHintConfigurations.spec.js +4 -4
- package/src/builder/mergeLayoutHintConfigurations.js +3 -3
- package/src/constants/LayoutHints.js +1 -1
- package/src/constants/Settings.js +2 -2
- package/src/exceptions/FetchException.js +2 -2
- package/src/exceptions/NetworkException.js +1 -1
- package/src/exceptions/UnauthorizedException.js +1 -1
- package/src/hooks/__tests__/UseModularUIModel.spec.js +9 -9
- package/src/hooks/__tests__/useAuthentication.spec.js +2 -2
- package/src/hooks/__tests__/useForm.spec.js +2 -2
- package/src/hooks/__tests__/useModelCatalog.spec.js +7 -7
- package/src/hooks/__tests__/useModularUIBasic.spec.js +2 -2
- package/src/hooks/__tests__/usePreference.spec.js +1 -1
- package/src/hooks/useAllFormsOnModel.js +2 -2
- package/src/hooks/useAuthentication.js +2 -2
- package/src/hooks/useContent.js +1 -1
- package/src/hooks/useDeepCompareEffect.js +1 -1
- package/src/hooks/useForm.js +4 -4
- package/src/hooks/useI18n.js +3 -3
- package/src/hooks/useModal.js +2 -2
- package/src/hooks/useModelCatalog.js +1 -1
- package/src/hooks/useModularUI.js +1 -1
- package/src/hooks/useModularUIBasic.js +1 -1
- package/src/hooks/useModularUIModel.js +1 -1
- package/src/hooks/useModularUIRequest.js +1 -1
- package/src/hooks/useNotification.js +2 -2
- package/src/hooks/usePreference.js +17 -7
- package/src/i18n/Locale.js +4 -4
- package/src/i18n/Locales.js +8 -8
- package/src/i18n/Message.js +2 -2
- package/src/i18n/__tests__/Locale.spec.js +3 -3
- package/src/i18n/__tests__/Locales.spec.js +15 -13
- package/src/i18n/withMessage.js +4 -4
- package/src/models/actions/ActionCollection.js +4 -4
- package/src/models/actions/ActionModel.js +4 -4
- package/src/models/actions/__tests__/ActionCollection.spec.js +3 -3
- package/src/models/actions/__tests__/ActionModel.spec.js +1 -1
- package/src/models/application/ApplicationModel.js +3 -3
- package/src/models/attributes/AttributeCollection.js +7 -7
- package/src/models/attributes/AttributeContent.js +9 -9
- package/src/models/attributes/AttributeDataHelper.js +9 -9
- package/src/models/attributes/AttributeModel.js +24 -24
- package/src/models/attributes/AttributeSetModel.js +1 -1
- package/src/models/attributes/BooleanAttributeModel.js +4 -4
- package/src/models/attributes/ChoiceAttributeModel.js +7 -7
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +15 -15
- package/src/models/attributes/ChoiceAttributeOptionModel.js +19 -11
- package/src/models/attributes/CompositeAttributeChildCollection.js +10 -10
- package/src/models/attributes/CompositeAttributeModel.js +7 -7
- package/src/models/attributes/DatetimeAttributeModel.js +6 -6
- package/src/models/attributes/NumberAttributeModel.js +9 -9
- package/src/models/attributes/PasswordAttributeModel.js +8 -8
- package/src/models/attributes/StringAttributeModel.js +3 -3
- package/src/models/attributes/UploadAttributeModel.js +5 -5
- package/src/models/attributes/__tests__/AttributeCollection.spec.js +11 -11
- package/src/models/attributes/__tests__/AttributeContent.spec.js +7 -7
- package/src/models/attributes/__tests__/AttributeModel.spec.js +5 -5
- package/src/models/attributes/__tests__/AttributeSetModel.spec.js +2 -2
- package/src/models/attributes/__tests__/BooleanAttributeModel.spec.js +1 -1
- package/src/models/attributes/__tests__/ChoiceAttributeModel.spec.js +8 -8
- package/src/models/attributes/__tests__/ChoiceAttributeOptionCollection.spec.js +8 -8
- package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +1 -1
- package/src/models/attributes/__tests__/DateAttributeModel.spec.js +4 -4
- package/src/models/attributes/__tests__/DatetimeAttributeModel.spec.js +11 -11
- package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +3 -3
- package/src/models/attributes/__tests__/MemoAttributeModel.spec.js +1 -1
- package/src/models/attributes/__tests__/MoneyAttributeModel.spec.js +1 -1
- package/src/models/attributes/__tests__/NumberAttributeModel.spec.js +1 -1
- package/src/models/attributes/__tests__/PasswordAttributeModel.spec.js +1 -1
- package/src/models/attributes/__tests__/StringAttributeModel.spec.js +4 -4
- package/src/models/attributes/__tests__/TimeAttributeModel.spec.js +2 -2
- package/src/models/attributes/__tests__/TimestampModel.spec.js +2 -2
- package/src/models/attributes/__tests__/UploadAttributeModel.spec.js +4 -4
- package/src/models/attributes/__tests__/_createAttribute.spec.js +6 -6
- package/src/models/attributes/__tests__/createAttributeComposite.spec.js +3 -3
- package/src/models/attributes/__tests__/createAttributeDynamicSchema.spec.js +3 -3
- package/src/models/attributes/_createAttribute.js +5 -5
- package/src/models/attributes/input-constraints/ConstraintCollection.js +5 -5
- package/src/models/attributes/input-constraints/ConstraintModel.js +1 -1
- package/src/models/attributes/input-constraints/DateBoundaryConstraint.js +6 -6
- package/src/models/attributes/input-constraints/MandatoryConstraint.js +1 -1
- package/src/models/attributes/input-constraints/NumberBoundaryConstraint.js +6 -6
- package/src/models/attributes/input-constraints/NumberFormatConstraint.js +2 -2
- package/src/models/attributes/input-constraints/NumberGroupingConstraint.js +2 -2
- package/src/models/attributes/input-constraints/__tests__/ConstraintModel.spec.js +1 -1
- package/src/models/attributes/input-constraints/__tests__/DateBoundaryConstraint.spec.js +6 -6
- package/src/models/attributes/input-constraints/__tests__/DateTimeDateFormatConstraint.spec.js +2 -2
- package/src/models/attributes/input-constraints/__tests__/DateTimeTimeFormatConstraint.spec.js +2 -2
- package/src/models/attributes/input-constraints/__tests__/DatetimeFormatConstraint.spec.js +5 -5
- package/src/models/attributes/input-constraints/__tests__/NumberBoundaryConstraint.spec.js +6 -6
- package/src/models/attributes/input-constraints/__tests__/NumberFormatConstraint.spec.js +3 -3
- package/src/models/attributes/input-constraints/__tests__/NumberGroupingConstraint.spec.js +2 -2
- package/src/models/attributes/input-constraints/__tests__/RegexConstraint.spec.js +1 -1
- package/src/models/attributes/input-constraints/__tests__/StringLengthConstraint.spec.js +4 -4
- package/src/models/attributes/layouthint-rules/BaseLayoutHintRule.js +4 -4
- package/src/models/attributes/layouthint-rules/DependentAttribute.js +15 -15
- package/src/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +2 -2
- package/src/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +2 -2
- package/src/models/attributes/layouthint-rules/__tests__/DependentAttribute.spec.js +22 -22
- package/src/models/attributes/layouthint-rules/__tests__/LayoutHintRuleCollection.spec.js +1 -1
- package/src/models/attributes/layouthint-rules/__tests__/RemainingTotalUploadSize.spec.js +4 -4
- package/src/models/base/BaseCollection.js +6 -6
- package/src/models/base/BaseModel.js +1 -1
- package/src/models/base/ResourceModel.js +5 -5
- package/src/models/base/__tests__/ResourceCollection.spec.js +1 -1
- package/src/models/caseview/CaseViewModel.js +4 -4
- package/src/models/caseview/__tests__/CaseViewModel.spec.js +3 -3
- package/src/models/concepts/BusinessScenarioModel.js +9 -9
- package/src/models/concepts/ConceptDetailModel.js +17 -17
- package/src/models/concepts/ConceptIndexModel.js +2 -2
- package/src/models/concepts/ConceptLinkModel.js +6 -4
- package/src/models/concepts/ConceptRelationCollection.js +5 -5
- package/src/models/concepts/SourceReferenceCollection.js +2 -2
- package/src/models/concepts/SourceReferenceModel.js +2 -2
- package/src/models/concepts/__tests__/ConceptDetailModel.spec.js +1 -1
- package/src/models/content/ContentIndexModel.js +3 -3
- package/src/models/content/ContentLinkModel.js +11 -9
- package/src/models/content/ContentModel.js +2 -2
- package/src/models/content/ContentTOCModel.js +4 -4
- package/src/models/content/SectionModel.js +4 -4
- package/src/models/content/SubSectionModel.js +2 -2
- package/src/models/content/__tests__/ContentModel.spec.js +16 -16
- package/src/models/contentconfiguration/ContentConfiguration.js +1 -1
- package/src/models/contentconfiguration/ContentConfigurationElements.js +5 -5
- package/src/models/contentconfiguration/ContentConfigurationEndResults.js +1 -1
- package/src/models/contentconfiguration/ContentConfigurationQuestions.js +2 -2
- package/src/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js +12 -12
- package/src/models/detail/DetailModel.js +5 -5
- package/src/models/error/ErrorCollection.js +4 -4
- package/src/models/error/ErrorModel.js +1 -1
- package/src/models/error/__tests__/ErrorModel.spec.js +1 -1
- package/src/models/filters/AssignmentFilterModel.js +3 -3
- package/src/models/filters/BaseFilterModel.js +3 -3
- package/src/models/filters/FilterCollection.js +5 -5
- package/src/models/filters/__tests__/AssignmentFilterModel.spec.js +4 -4
- package/src/models/filters/__tests__/FilterCollection.spec.js +11 -11
- package/src/models/filters/__tests__/FilterModel.spec.js +1 -1
- package/src/models/filters/__tests__/RangeFilterModel.spec.js +1 -1
- package/src/models/form/FormModel.js +39 -39
- package/src/models/form/FormObjectModel.js +16 -16
- package/src/models/form/__tests__/FormModel.instrument.spec.js +7 -7
- package/src/models/form/__tests__/FormModel.repeating.spec.js +2 -2
- package/src/models/form/__tests__/FormModel.selfhref.spec.js +1 -1
- package/src/models/form/__tests__/FormModel.spec.js +6 -6
- package/src/models/form/__tests__/FormResultData.spec.js +1 -1
- package/src/models/form/__tests__/FormWithContent.spec.js +3 -3
- package/src/models/grouping/GroupingModel.js +7 -7
- package/src/models/grouping/__tests__/GroupingModel.spec.js +2 -2
- package/src/models/href/Href.js +6 -6
- package/src/models/href/__tests__/Href.spec.js +18 -16
- package/src/models/layouthint/LayoutHintCollection.js +3 -3
- package/src/models/links/LinkCollection.js +4 -4
- package/src/models/links/LinkModel.js +3 -3
- package/src/models/links/__tests__/LinkModel.spec.js +4 -4
- package/src/models/links/normalizeLinkJSON.js +6 -6
- package/src/models/list/ListDetailModel.js +7 -7
- package/src/models/list/ListItemCollection.js +2 -2
- package/src/models/list/ListItemModel.js +2 -2
- package/src/models/list/ListModel.js +6 -6
- package/src/models/list/__tests__/ListDetailModel.spec.js +4 -4
- package/src/models/list/__tests__/ListItemCollection.spec.js +1 -1
- package/src/models/list/__tests__/ListModel.spec.js +3 -3
- package/src/models/list/__tests__/ListResultDetail.spec.js +3 -3
- package/src/models/lookup/LookupOptionCollection.js +1 -1
- package/src/models/lookup/LookupOptionsModel.js +4 -4
- package/src/models/lookup/__tests__/LookupOptionsModel.spec.js +3 -3
- package/src/models/modelcatalog/ModelCatalogModel.js +2 -2
- package/src/models/paging/PagingModel.js +1 -1
- package/src/models/paging/__tests__/PagingModel.spec.js +2 -2
- package/src/models/panels/GroupingPanelModel.js +5 -5
- package/src/models/panels/__tests__/GroupingPanelModel.spec.js +8 -8
- package/src/models/parameter/__tests__/Parameter.spec.js +5 -5
- package/src/models/process/ProcessStatusSettingsModel.js +1 -1
- package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +1 -1
- package/src/models/resolveModel.js +4 -4
- package/src/models/sorting/SortingModel.js +4 -4
- package/src/models/sorting/__tests__/SortingModel.spec.js +3 -3
- package/src/models/tab/TabModel.js +3 -3
- package/src/models/tab/__tests__/TabModel.spec.js +5 -5
- package/src/models/taskgroup/TaskGroupModel.js +2 -2
- package/src/models/types.js +1 -1
- package/src/models/user/UserProfileModel.js +1 -1
- package/src/models/user/__tests__/UserModel.spec.js +2 -2
- package/src/models/user/__tests__/UserProfileModel.spec.js +2 -2
- package/src/models/user/__tests__/UserServicesModel.spec.js +1 -1
- package/src/modularui/CaptchaRequest.js +1 -1
- package/src/modularui/ModularUIRequest.js +26 -26
- package/src/modularui/UploadRequest.js +6 -6
- package/src/modularui/__tests__/ModularUIError.spec.js +1 -1
- package/src/modularui/__tests__/ModularUIRequest.spec.js +9 -9
- package/src/react/utils.js +1 -1
- package/src/react-client/client.js +11 -10
- package/src/react-client/contextPath.js +2 -2
- package/src/react-client/rehydrate.js +1 -1
- package/src/react-server/__tests__/serverUtil.spec.js +2 -2
- package/src/react-server/createSSRComplete.js +3 -3
- package/src/react-server/renderSSRComplete.js +4 -4
- package/src/react-server/renderSSRMinimal.js +1 -1
- package/src/react-server/requestInformation.js +2 -2
- package/src/react-server/serverUtil.js +8 -8
- package/src/react-theme/__tests__/createTheme.spec.js +4 -4
- package/src/react-theme/createTheme.js +1 -1
- package/src/react-theme/utils/__tests__/background.spec.js +2 -2
- package/src/react-theme/utils/__tests__/contrast.spec.js +1 -1
- package/src/react-theme/utils/__tests__/corners.spec.js +3 -3
- package/src/react-theme/utils/__tests__/spacers.spec.js +1 -1
- package/src/react-theme/utils/__tests__/themeProps.spec.js +9 -9
- package/src/react-theme/utils/colors.js +3 -3
- package/src/react-theme/utils/contrast.js +6 -6
- package/src/react-theme/utils/corners.js +2 -2
- package/src/react-theme/utils/spacers.js +2 -2
- package/src/react-theme/utils/themeProps.js +8 -8
- package/src/redux/_i18n/I18nActions.js +1 -1
- package/src/redux/_i18n/I18nReducer.js +2 -2
- package/src/redux/_i18n/__tests__/reducer.spec.js +2 -2
- package/src/redux/_modularui/ModularUIActions.js +8 -8
- package/src/redux/_modularui/ModularUIConnector.js +4 -4
- package/src/redux/_modularui/ModularUIMiddleware.js +6 -6
- package/src/redux/_modularui/ModularUIReducer.js +5 -5
- package/src/redux/_modularui/ModularUISelectors.js +11 -11
- package/src/redux/_modularui/ModularUIUtils.js +1 -1
- package/src/redux/_modularui/__tests__/actions.spec.js +1 -1
- package/src/redux/_modularui/__tests__/reducer.spec.js +13 -13
- package/src/redux/_modularui/__tests__/selectors.spec.js +3 -3
- package/src/redux/_modularui/types.js +4 -4
- package/src/redux/_modularui/withModularUI.js +3 -3
- package/src/redux/_router/RouterActions.js +3 -3
- package/src/redux/_router/RouterConnectors.js +5 -5
- package/src/redux/_router/RouterReducer.js +1 -1
- package/src/redux/_router/__tests__/reducer.spec.js +2 -2
- package/src/redux/actions/Application.js +1 -1
- package/src/redux/actions/Authorization.js +1 -1
- package/src/redux/actions/Error.js +3 -3
- package/src/redux/actions/FormAttributeSet.js +2 -2
- package/src/redux/actions/FormAttributeSetRepeatable.js +3 -3
- package/src/redux/actions/FormAutosave.js +1 -1
- package/src/redux/actions/FormAutosubmit.js +1 -1
- package/src/redux/actions/FormValidations.js +3 -3
- package/src/redux/actions/Notification.js +4 -4
- package/src/redux/actions/Preferences.js +11 -11
- package/src/redux/actions/ProgressIndicator.js +1 -1
- package/src/redux/actions/SignIn.js +3 -3
- package/src/redux/actions/__tests__/Authorization.spec.js +2 -2
- package/src/redux/actions/__tests__/Error-server.spec.js +13 -13
- package/src/redux/actions/__tests__/Error.spec.js +6 -6
- package/src/redux/actions/__tests__/Notification.spec.js +1 -1
- package/src/redux/actions/__tests__/Preferences.spec.js +2 -2
- package/src/redux/connectors/Application.js +1 -1
- package/src/redux/connectors/Breadcrumb.js +1 -1
- package/src/redux/connectors/CaseView.js +1 -1
- package/src/redux/connectors/ConceptDetail.js +1 -1
- package/src/redux/connectors/ContentBrowser.js +1 -1
- package/src/redux/connectors/ContentDetail.js +1 -1
- package/src/redux/connectors/ContentDetailSection.js +2 -2
- package/src/redux/connectors/Form.js +5 -5
- package/src/redux/connectors/FormAttributeSet.js +6 -6
- package/src/redux/connectors/ListDetail.js +1 -1
- package/src/redux/connectors/Modal.js +1 -1
- package/src/redux/connectors/ModelCatalog.js +1 -1
- package/src/redux/connectors/Notification.js +1 -1
- package/src/redux/connectors/PanelRenderer.js +2 -2
- package/src/redux/connectors/Preferences.js +3 -3
- package/src/redux/connectors/Progress.js +1 -1
- package/src/redux/connectors/ProgressIndicator.js +1 -1
- package/src/redux/connectors/QuickSearch.js +2 -2
- package/src/redux/connectors/SignIn.js +1 -1
- package/src/redux/connectors/SignOut.js +1 -1
- package/src/redux/connectors/Tab.js +1 -1
- package/src/redux/reducers/AuthReducer.js +1 -1
- package/src/redux/reducers/ErrorReducer.js +1 -1
- package/src/redux/reducers/ModalsReducer.js +1 -1
- package/src/redux/reducers/NotificationReducer.js +1 -1
- package/src/redux/reducers/PreferencesReducer.js +1 -1
- package/src/redux/reducers/ProgressIndicatorReducer.js +1 -1
- package/src/redux/reducers/__tests__/AuthReducer.spec.js +10 -10
- package/src/redux/reducers/__tests__/ErrorReducer.spec.js +1 -1
- package/src/redux/reducers/__tests__/ModalsReducer.spec.js +3 -3
- package/src/redux/reducers/__tests__/NotificationReducer.spec.js +3 -3
- package/src/redux/reducers/__tests__/PreferencesReducer.spec.js +2 -2
- package/src/redux/reducers/__tests__/ProgressIndicatorReducer.spec.js +8 -8
- package/src/redux/store/beforeRenderHooks.js +1 -1
- package/src/redux/store/configureStore.js +3 -3
- package/src/utils/browser/Cookies.js +1 -1
- package/src/utils/browser/__tests__/Cookies.spec.js +1 -1
- package/src/utils/datetime/DateTimeUtil.js +15 -15
- package/src/utils/datetime/__tests__/DateTime.spec.js +84 -81
- package/src/utils/fetch/__tests__/xhr.spec.js +2 -2
- package/src/utils/fetch/universalFetch.js +1 -1
- package/src/utils/fetch/xhr.js +6 -6
- package/src/utils/helpers/__tests__/sanitizeHTML.spec.js +8 -8
- package/src/utils/helpers/sanitizeHtml.js +3 -3
- package/src/utils/helpers/text.js +1 -1
- package/src/utils/number/DecimalFormat.js +2 -2
- package/src/utils/number/__tests__/formatValue.spec.js +1 -1
- package/src/utils/number/formatValue.js +2 -2
- package/src/utils/number/parseNumbers.js +7 -7
|
@@ -119,8 +119,8 @@ class FormModel extends ResourceModel {
|
|
|
119
119
|
getInitialChildModelLinks(): Array<LinkModel> {
|
|
120
120
|
const endResultChildLinks = flattenDeep(
|
|
121
121
|
this.endResultFormObjects.map((endResultFormObject) =>
|
|
122
|
-
endResultFormObject.getInitialChildModelLinks()
|
|
123
|
-
)
|
|
122
|
+
endResultFormObject.getInitialChildModelLinks(),
|
|
123
|
+
),
|
|
124
124
|
);
|
|
125
125
|
|
|
126
126
|
if (this.currentFormObject === null) {
|
|
@@ -162,7 +162,7 @@ class FormModel extends ResourceModel {
|
|
|
162
162
|
* @returns button label from contributions;
|
|
163
163
|
*/
|
|
164
164
|
getButtonLabel(
|
|
165
|
-
buttonType: "cancel" | "previous" | "next" | "finish"
|
|
165
|
+
buttonType: "cancel" | "previous" | "next" | "finish",
|
|
166
166
|
): string | null {
|
|
167
167
|
// cancel button labels are defined on the form
|
|
168
168
|
if (buttonType === "cancel") {
|
|
@@ -244,7 +244,7 @@ class FormModel extends ResourceModel {
|
|
|
244
244
|
if (this.data.results) {
|
|
245
245
|
const resultObject = this.data.results.find(
|
|
246
246
|
(result) =>
|
|
247
|
-
result.objectid === anchor.objectid && "elements" in result
|
|
247
|
+
result.objectid === anchor.objectid && "elements" in result,
|
|
248
248
|
);
|
|
249
249
|
|
|
250
250
|
if (resultObject) {
|
|
@@ -277,7 +277,7 @@ class FormModel extends ResourceModel {
|
|
|
277
277
|
/**
|
|
278
278
|
*/
|
|
279
279
|
addEmptyFormObject(
|
|
280
|
-
formObjectModel: FormObjectModel | null = this.currentFormObject
|
|
280
|
+
formObjectModel: FormObjectModel | null = this.currentFormObject,
|
|
281
281
|
) {
|
|
282
282
|
if (formObjectModel) {
|
|
283
283
|
const emptyFormObject = FormObjectModel.createEmpty(formObjectModel);
|
|
@@ -295,7 +295,7 @@ class FormModel extends ResourceModel {
|
|
|
295
295
|
return Math.max(
|
|
296
296
|
...this.allObjects
|
|
297
297
|
.filter((formObject) => formObject.equals(formObjectModel, false))
|
|
298
|
-
.map((formObject) => formObject.repeatIndex)
|
|
298
|
+
.map((formObject) => formObject.repeatIndex),
|
|
299
299
|
);
|
|
300
300
|
}
|
|
301
301
|
|
|
@@ -322,7 +322,7 @@ class FormModel extends ResourceModel {
|
|
|
322
322
|
*/
|
|
323
323
|
getFormObjectByLayoutHint(hint: string): ?FormObjectModel {
|
|
324
324
|
return this.allObjects.find((formObject) =>
|
|
325
|
-
formObject.layouthint.has(hint)
|
|
325
|
+
formObject.layouthint.has(hint),
|
|
326
326
|
);
|
|
327
327
|
}
|
|
328
328
|
|
|
@@ -334,12 +334,12 @@ class FormModel extends ResourceModel {
|
|
|
334
334
|
}
|
|
335
335
|
if (formObjectModel.equals(this.currentFormObject)) {
|
|
336
336
|
throw new IllegalArgumentException(
|
|
337
|
-
"Can not remove the current form object"
|
|
337
|
+
"Can not remove the current form object",
|
|
338
338
|
);
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
this.completedFormObjects = this.completedFormObjects.filter(
|
|
342
|
-
(formObject) => !formObject.equals(formObjectModel)
|
|
342
|
+
(formObject) => !formObject.equals(formObjectModel),
|
|
343
343
|
);
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -408,8 +408,8 @@ class FormModel extends ResourceModel {
|
|
|
408
408
|
(endResult) =>
|
|
409
409
|
new FormObjectModel(
|
|
410
410
|
endResult,
|
|
411
|
-
this.contributions.objects[endResult.objectid]
|
|
412
|
-
)
|
|
411
|
+
this.contributions.objects[endResult.objectid],
|
|
412
|
+
),
|
|
413
413
|
);
|
|
414
414
|
}
|
|
415
415
|
}
|
|
@@ -421,13 +421,13 @@ class FormModel extends ResourceModel {
|
|
|
421
421
|
*/
|
|
422
422
|
get expectsEndResultFormObjects(): boolean {
|
|
423
423
|
const endResultKeys = this.endResultFormObjects.map(
|
|
424
|
-
(endResult) => endResult.key
|
|
424
|
+
(endResult) => endResult.key,
|
|
425
425
|
);
|
|
426
426
|
|
|
427
427
|
return this.objectKeys.some(
|
|
428
428
|
(objectKey) =>
|
|
429
429
|
this.contributions.objects?.[objectKey]?.content?.results &&
|
|
430
|
-
!endResultKeys.includes(objectKey)
|
|
430
|
+
!endResultKeys.includes(objectKey),
|
|
431
431
|
);
|
|
432
432
|
}
|
|
433
433
|
|
|
@@ -441,7 +441,7 @@ class FormModel extends ResourceModel {
|
|
|
441
441
|
*/
|
|
442
442
|
getEndResultFormObjects(): Array<FormObjectModel> {
|
|
443
443
|
return this.endResultFormObjects.filter(
|
|
444
|
-
(endResult) => !this.previousEndResultKeys.includes(endResult.key)
|
|
444
|
+
(endResult) => !this.previousEndResultKeys.includes(endResult.key),
|
|
445
445
|
);
|
|
446
446
|
}
|
|
447
447
|
|
|
@@ -449,7 +449,7 @@ class FormModel extends ResourceModel {
|
|
|
449
449
|
*/
|
|
450
450
|
set endResultFormObjects(endResultFormObjects: Array<FormObjectModel>) {
|
|
451
451
|
this.previousEndResultKeys = this.endResultFormObjects.map(
|
|
452
|
-
(endResult) => endResult.key
|
|
452
|
+
(endResult) => endResult.key,
|
|
453
453
|
);
|
|
454
454
|
this._endResultFormObjects = endResultFormObjects;
|
|
455
455
|
}
|
|
@@ -525,14 +525,14 @@ class FormModel extends ResourceModel {
|
|
|
525
525
|
error.id,
|
|
526
526
|
error.message,
|
|
527
527
|
error.parameters,
|
|
528
|
-
error.layouthint
|
|
528
|
+
error.layouthint,
|
|
529
529
|
);
|
|
530
530
|
} else {
|
|
531
531
|
this.errorCollection.addServerError(
|
|
532
532
|
error.id,
|
|
533
533
|
error.message,
|
|
534
534
|
undefined,
|
|
535
|
-
error.layouthint
|
|
535
|
+
error.layouthint,
|
|
536
536
|
);
|
|
537
537
|
}
|
|
538
538
|
}
|
|
@@ -638,7 +638,7 @@ class FormModel extends ResourceModel {
|
|
|
638
638
|
resultdata[resultDataKey] = new AttributeSetModel(
|
|
639
639
|
resultDataKey,
|
|
640
640
|
successData[resultDataKey],
|
|
641
|
-
this.contributions.resultdata[resultDataKey]
|
|
641
|
+
this.contributions.resultdata[resultDataKey],
|
|
642
642
|
);
|
|
643
643
|
}
|
|
644
644
|
|
|
@@ -657,7 +657,7 @@ class FormModel extends ResourceModel {
|
|
|
657
657
|
setParameters(modularuiResponse: ModularUIResponse): Array<Parameter> {
|
|
658
658
|
const parameters = modularuiResponse?.parameters ?? [];
|
|
659
659
|
return parameters.map(
|
|
660
|
-
(par) => new Parameter(par._prefix, par._name, par._value)
|
|
660
|
+
(par) => new Parameter(par._prefix, par._name, par._value),
|
|
661
661
|
);
|
|
662
662
|
}
|
|
663
663
|
|
|
@@ -680,7 +680,7 @@ class FormModel extends ResourceModel {
|
|
|
680
680
|
selfhref.method = HTTP_METHODS.POST;
|
|
681
681
|
|
|
682
682
|
selfhref.parameters = this.parameters.filter(
|
|
683
|
-
(parameter) => parameter.name !== "commit"
|
|
683
|
+
(parameter) => parameter.name !== "commit",
|
|
684
684
|
);
|
|
685
685
|
|
|
686
686
|
return selfhref;
|
|
@@ -763,7 +763,7 @@ class FormModel extends ResourceModel {
|
|
|
763
763
|
*/
|
|
764
764
|
getFormDataObjects(
|
|
765
765
|
validOnly: boolean = true,
|
|
766
|
-
validationData: boolean = false
|
|
766
|
+
validationData: boolean = false,
|
|
767
767
|
): Array<Object> {
|
|
768
768
|
const formdata = [];
|
|
769
769
|
|
|
@@ -790,7 +790,7 @@ class FormModel extends ResourceModel {
|
|
|
790
790
|
const existingObjectIndex = formdata.findIndex(
|
|
791
791
|
(obj) =>
|
|
792
792
|
obj.key === formObject.key &&
|
|
793
|
-
obj.repeatIndex === formObject.repeatIndex
|
|
793
|
+
obj.repeatIndex === formObject.repeatIndex,
|
|
794
794
|
);
|
|
795
795
|
|
|
796
796
|
/*
|
|
@@ -800,7 +800,7 @@ class FormModel extends ResourceModel {
|
|
|
800
800
|
if (existingObjectIndex > -1) {
|
|
801
801
|
formdata[existingObjectIndex].formdata = deepmerge(
|
|
802
802
|
formdata[existingObjectIndex].formdata,
|
|
803
|
-
objectFormData
|
|
803
|
+
objectFormData,
|
|
804
804
|
);
|
|
805
805
|
} else {
|
|
806
806
|
formdata.push({
|
|
@@ -819,7 +819,7 @@ class FormModel extends ResourceModel {
|
|
|
819
819
|
getFormData(
|
|
820
820
|
validOnly: boolean = true,
|
|
821
821
|
withConcurrencyToken: boolean = true,
|
|
822
|
-
validationData: boolean = false
|
|
822
|
+
validationData: boolean = false,
|
|
823
823
|
): string {
|
|
824
824
|
if (withConcurrencyToken && this.tokens.length > 0) {
|
|
825
825
|
return JSON.stringify({
|
|
@@ -841,7 +841,7 @@ class FormModel extends ResourceModel {
|
|
|
841
841
|
|
|
842
842
|
this.allObjects.forEach((formObject) => {
|
|
843
843
|
formObject.attributeCollection.all.forEach((item: AttributeType) =>
|
|
844
|
-
item.setUseClientsideValidation(enabled)
|
|
844
|
+
item.setUseClientsideValidation(enabled),
|
|
845
845
|
);
|
|
846
846
|
});
|
|
847
847
|
}
|
|
@@ -878,7 +878,7 @@ class FormModel extends ResourceModel {
|
|
|
878
878
|
this.completedFormObjects.filter(
|
|
879
879
|
(formObject) =>
|
|
880
880
|
!formObject.isRepeatWithUnknownTotal ||
|
|
881
|
-
formObject.key !== currentFormObjectKey
|
|
881
|
+
formObject.key !== currentFormObjectKey,
|
|
882
882
|
).length > 0
|
|
883
883
|
);
|
|
884
884
|
}
|
|
@@ -912,10 +912,10 @@ class FormModel extends ResourceModel {
|
|
|
912
912
|
.filter((formObjectKey) => formObjectKey !== this.currentFormObject?.key);
|
|
913
913
|
|
|
914
914
|
this.endResultFormObjects = this._endResultFormObjects.filter((endResult) =>
|
|
915
|
-
completedFormObjectKeys.includes(endResult.key)
|
|
915
|
+
completedFormObjectKeys.includes(endResult.key),
|
|
916
916
|
);
|
|
917
917
|
this.previousEndResultKeys = this.endResultFormObjects.map(
|
|
918
|
-
(endResult) => endResult.key
|
|
918
|
+
(endResult) => endResult.key,
|
|
919
919
|
);
|
|
920
920
|
|
|
921
921
|
// while we are at the same repeating form object, go a step back
|
|
@@ -923,7 +923,7 @@ class FormModel extends ResourceModel {
|
|
|
923
923
|
this.currentFormObject &&
|
|
924
924
|
this.currentFormObject.equals(
|
|
925
925
|
oldCurrentFormObject,
|
|
926
|
-
this.currentFormObject.hasFixedNrOfRepeats
|
|
926
|
+
this.currentFormObject.hasFixedNrOfRepeats,
|
|
927
927
|
)
|
|
928
928
|
) {
|
|
929
929
|
this.setPreviousObject();
|
|
@@ -953,7 +953,7 @@ class FormModel extends ResourceModel {
|
|
|
953
953
|
}
|
|
954
954
|
|
|
955
955
|
const currentObjectIndex = this.objectKeys.findIndex(
|
|
956
|
-
(objectKey) => objectKey === this.currentFormObject?.key
|
|
956
|
+
(objectKey) => objectKey === this.currentFormObject?.key,
|
|
957
957
|
);
|
|
958
958
|
const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;
|
|
959
959
|
|
|
@@ -1071,7 +1071,7 @@ class FormModel extends ResourceModel {
|
|
|
1071
1071
|
error.id,
|
|
1072
1072
|
error.message,
|
|
1073
1073
|
error.properties,
|
|
1074
|
-
error.layouthint
|
|
1074
|
+
error.layouthint,
|
|
1075
1075
|
);
|
|
1076
1076
|
});
|
|
1077
1077
|
}
|
|
@@ -1094,7 +1094,7 @@ class FormModel extends ResourceModel {
|
|
|
1094
1094
|
error.id,
|
|
1095
1095
|
error.message,
|
|
1096
1096
|
error.properties,
|
|
1097
|
-
new LayoutHintCollection(error.layouthint)
|
|
1097
|
+
new LayoutHintCollection(error.layouthint),
|
|
1098
1098
|
);
|
|
1099
1099
|
}
|
|
1100
1100
|
});
|
|
@@ -1161,14 +1161,14 @@ class FormModel extends ResourceModel {
|
|
|
1161
1161
|
this.previouslyEnteredFormObjects.filter((formObject) =>
|
|
1162
1162
|
formObject.equals(
|
|
1163
1163
|
receivedCurrentFormObject,
|
|
1164
|
-
formObject.hasFixedNrOfRepeats
|
|
1165
|
-
)
|
|
1164
|
+
formObject.hasFixedNrOfRepeats,
|
|
1165
|
+
),
|
|
1166
1166
|
);
|
|
1167
1167
|
|
|
1168
1168
|
if (previouslyEnteredFormObjects.length > 0) {
|
|
1169
1169
|
this.handlePreviouslyEnteredFormObjects(
|
|
1170
1170
|
receivedCurrentFormObject,
|
|
1171
|
-
previouslyEnteredFormObjects
|
|
1171
|
+
previouslyEnteredFormObjects,
|
|
1172
1172
|
);
|
|
1173
1173
|
} else {
|
|
1174
1174
|
this.completedFormObjects = [...this.allObjects];
|
|
@@ -1195,13 +1195,13 @@ class FormModel extends ResourceModel {
|
|
|
1195
1195
|
*/
|
|
1196
1196
|
handlePreviouslyEnteredFormObjects(
|
|
1197
1197
|
receivedCurrentFormObject: FormObjectModel,
|
|
1198
|
-
previouslyEnteredFormObjects: Array<FormObjectModel
|
|
1198
|
+
previouslyEnteredFormObjects: Array<FormObjectModel>,
|
|
1199
1199
|
) {
|
|
1200
1200
|
previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {
|
|
1201
1201
|
const mergedObject = this.mergePreviouslyEnteredObjects
|
|
1202
1202
|
? this.mergeObjects(
|
|
1203
1203
|
receivedCurrentFormObject,
|
|
1204
|
-
previouslyEnteredFormObject
|
|
1204
|
+
previouslyEnteredFormObject,
|
|
1205
1205
|
)
|
|
1206
1206
|
: receivedCurrentFormObject;
|
|
1207
1207
|
|
|
@@ -1213,7 +1213,7 @@ class FormModel extends ResourceModel {
|
|
|
1213
1213
|
this.previouslyEnteredFormObjects.filter((formObject) => {
|
|
1214
1214
|
const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(
|
|
1215
1215
|
(previouslyEnteredFormObject) =>
|
|
1216
|
-
formObject.equals(previouslyEnteredFormObject)
|
|
1216
|
+
formObject.equals(previouslyEnteredFormObject),
|
|
1217
1217
|
);
|
|
1218
1218
|
|
|
1219
1219
|
return !hasPreviouslyEnteredObject;
|
|
@@ -1224,7 +1224,7 @@ class FormModel extends ResourceModel {
|
|
|
1224
1224
|
*/
|
|
1225
1225
|
mergeObjects(
|
|
1226
1226
|
newObject: FormObjectModel,
|
|
1227
|
-
oldObject: FormObjectModel
|
|
1227
|
+
oldObject: FormObjectModel,
|
|
1228
1228
|
): FormObjectModel {
|
|
1229
1229
|
const mergedFormObject = FormObjectModel.createEmpty(newObject);
|
|
1230
1230
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModel.js","names":["_flattenDeep","_interopRequireDefault","require","_deepmerge","_objects","_exceptions","_ResourceModel","_ErrorCollection","_Href","_Parameter","_FormObjectModel","_Constants","_Settings","_LayoutHints","_LayoutHintCollection","_AttributeSetModel","FormModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","getSetting","ErrorCollection","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","flattenDeep","_map","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_find","result","objectid","objectId","FormObjectModel","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filter","formObject","equals","IllegalArgumentException","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includes","otherProps","endResult","expectsEndResultFormObjects","_context12","endResultKeys","some","objectKey","content","_endResultFormObjects","getEndResultFormObjects","_context13","_context14","previousEndResultKeys","_context15","_previousEndResultKeys","endResultFormObjectKeys","isValid","isRepeatable","_context16","_context17","hasOneValidQuestion","object","hasServerErrors","errorCollection","hasItems","hasErrors","addServerError","error","id","message","resetErrors","_errorCollection","commit","_commit","isFinished","_isFinished","success","_isComplete","successRedirect","Href","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","AttributeSetModel","resultData","par","Parameter","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","HTTP_METHODS","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndex","obj","deepmerge","push","withConcurrencyToken","_stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_slice","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","LayoutHintCollection","handleMissingErrors","handleNewFormObject","processMissingErrors","_context27","attribute","hasAttributeByKey","addMissingError","removeMissingError","receivedCurrentFormObject","_context28","handlePreviouslyEnteredFormObjects","mergePreviouslyEnteredObjects","_mergePreviouslyEnteredObjects","_context29","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findAttribute","findMethod","foundAttribute","_context30","_default","exports"],"sources":["../../../src/models/form/FormModel.js"],"sourcesContent":["// @flow\nimport flattenDeep from \"lodash/flattenDeep\";\nimport deepmerge from \"deepmerge\";\n\nimport { has } from \"../../utils/helpers/objects\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport Href from \"../href/Href\";\nimport Parameter from \"../parameter/Parameter\";\n\nimport FormObjectModel from \"./FormObjectModel\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport {\n CREATE_ACTION,\n DELETE_ACTION,\n UPDATE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\n/**\n */\nclass FormModel extends ResourceModel {\n _lastUpdate: number;\n\n _completedFormObjects: Array<FormObjectModel> = [];\n _currentFormObject: FormObjectModel | null = null;\n _previouslyEnteredFormObjects: Array<FormObjectModel> = [];\n\n _mergePreviouslyEnteredObjects: boolean = true;\n\n _endResultFormObjects: Array<FormObjectModel> = [];\n _previousEndResultKeys: Array<string> = [];\n\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _errorCollection: ErrorCollection = new ErrorCollection(\"form\");\n\n _redirectLocation: Href;\n\n _commit: boolean;\n _isFinished: boolean;\n _isComplete: boolean;\n _success: { redirect: string, data: Object } | null;\n\n _parameters: Array<Parameter>;\n _tokens: Array<string>;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.lastUpdate = 0;\n\n this.currentFormObject = this.createFormObject();\n this.endResultFormObjects = this.setEndResultFormObjects();\n\n this.parameters = this.setParameters(modularuiResponse);\n\n this.isComplete = this.getData(\"complete\", false);\n\n if (this.data.errors) {\n this.handleRootErrors(this.data.errors);\n }\n\n this.createSuccess();\n }\n\n /**\n */\n get type(): string {\n return \"Form\";\n }\n\n /**\n */\n get actiontype(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"actiontype\", \"form\");\n }\n\n /**\n */\n static get modelName(): string {\n return \"FormModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Form\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const endResultChildLinks = flattenDeep(\n this.endResultFormObjects.map((endResultFormObject) =>\n endResultFormObject.getInitialChildModelLinks()\n )\n );\n\n if (this.currentFormObject === null) {\n return endResultChildLinks;\n }\n\n return [\n ...this.currentFormObject.getInitialChildModelLinks(),\n ...endResultChildLinks,\n ];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models);\n });\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Get form level button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * @returns button label from contributions;\n */\n getButtonLabel(\n buttonType: \"cancel\" | \"previous\" | \"next\" | \"finish\"\n ): string | null {\n // cancel button labels are defined on the form\n if (buttonType === \"cancel\") {\n return this.buttonLabels?.cancel ?? null;\n }\n\n // all other form related button labels are defined on the object\n return this.currentFormObject?.buttonLabels?.[buttonType] ?? null;\n }\n\n /**\n * Get all applicable objects\n */\n get allObjects(): Array<FormObjectModel> {\n if (this.currentFormObject === null) {\n return this.completedFormObjects;\n }\n\n return [...this.completedFormObjects, this.currentFormObject];\n }\n\n /**\n */\n get objectKeys(): Array<string> {\n if (has(this.contributions, \"objects\")) {\n return Object.keys(this.contributions.objects);\n }\n\n return [];\n }\n\n /**\n */\n get numberOfExpectedQuestions(): number {\n return this.objectKeys.length;\n }\n\n /**\n * Has questions configured on form\n */\n get hasNoQuestionsConfigured(): boolean {\n return (\n this.isComplete &&\n (this.objectKeys.length === 0 ||\n (!(\"missing\" in this.data) &&\n !(\"results\" in this.data) &&\n !(\"errors\" in this.data)))\n );\n }\n\n /**\n */\n addGlobalDynamicSchema(anchor: Object, dynamicschema: Object): Object {\n if (!dynamicschema) {\n return anchor;\n }\n\n return {\n ...anchor,\n elements: anchor.elements.map((element) => ({\n ...element,\n dynamicschema: element.dynamicschema\n ? element.dynamicschema.map((item) => ({\n ...item,\n elements: { ...item.elements, dynamicschema },\n }))\n : null,\n })),\n };\n }\n\n /**\n */\n getMissingAnchors(): Array<Object> {\n const missingAnchors = this.data.missing?.anchors ?? [];\n\n // Add intermediate result data to anchor\n return missingAnchors.map((anchor) => {\n if (this.data.results) {\n const resultObject = this.data.results.find(\n (result) =>\n result.objectid === anchor.objectid && \"elements\" in result\n );\n\n if (resultObject) {\n anchor.results = resultObject.elements;\n }\n }\n\n return this.addGlobalDynamicSchema(anchor, this.data.dynamicschema);\n });\n }\n\n /**\n * Create form object based on the data and contributions available in this form\n */\n createFormObject(): FormObjectModel | null {\n if (this.data && this.contributions) {\n const missingAnchors = this.getMissingAnchors();\n\n // Get object id from first anchor\n const objectId = missingAnchors?.[0]?.objectid ?? \"\";\n const contributions = this.contributions.objects?.[objectId];\n if (contributions) {\n return new FormObjectModel(missingAnchors[0], contributions);\n }\n }\n\n return null;\n }\n\n /**\n */\n addEmptyFormObject(\n formObjectModel: FormObjectModel | null = this.currentFormObject\n ) {\n if (formObjectModel) {\n const emptyFormObject = FormObjectModel.createEmpty(formObjectModel);\n\n emptyFormObject.repeatIndex =\n this.getHighestRepeatIndex(formObjectModel) + 1;\n\n this.addFormObject(emptyFormObject);\n }\n }\n\n /**\n */\n getHighestRepeatIndex(formObjectModel: FormObjectModel): number {\n return Math.max(\n ...this.allObjects\n .filter((formObject) => formObject.equals(formObjectModel, false))\n .map((formObject) => formObject.repeatIndex)\n );\n }\n\n /**\n */\n addFormObject(formObjectModel: FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to add\");\n }\n\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = formObjectModel;\n }\n\n /**\n * Retrieve a form object by the key\n */\n getFormObjectByKey(key: string): ?FormObjectModel {\n return this.allObjects.find((formObject) => formObject.key === key);\n }\n\n /**\n * Retrieve a form object by a layouthint\n */\n getFormObjectByLayoutHint(hint: string): ?FormObjectModel {\n return this.allObjects.find((formObject) =>\n formObject.layouthint.has(hint)\n );\n }\n\n /**\n */\n removeFormObject(formObjectModel: ?FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to remove\");\n }\n if (formObjectModel.equals(this.currentFormObject)) {\n throw new IllegalArgumentException(\n \"Can not remove the current form object\"\n );\n }\n\n this.completedFormObjects = this.completedFormObjects.filter(\n (formObject) => !formObject.equals(formObjectModel)\n );\n }\n\n /**\n */\n get currentFormObject(): FormObjectModel | null {\n return this._currentFormObject;\n }\n\n /**\n */\n set currentFormObject(formObject: FormObjectModel | null) {\n this._currentFormObject = formObject;\n }\n\n /**\n * Completed objects are previously entered questions\n */\n get completedFormObjects(): Array<FormObjectModel> {\n return this._completedFormObjects;\n }\n\n /**\n */\n set completedFormObjects(formObjects: Array<FormObjectModel>) {\n this._completedFormObjects = formObjects;\n }\n\n /**\n * Previously entered objects are questions that have been entered before,\n * but are currently not applicable for the form.\n * For example because of previous navigation\n */\n get previouslyEnteredFormObjects(): Array<FormObjectModel> {\n return this._previouslyEnteredFormObjects;\n }\n\n /**\n */\n set previouslyEnteredFormObjects(formObjects: Array<FormObjectModel>) {\n this._previouslyEnteredFormObjects = formObjects;\n }\n\n /**\n * Handle end results\n */\n setEndResultFormObjects(): Array<FormObjectModel> {\n if (this.data && this.data.results) {\n const missingObjects = this.data.missing?.anchors ?? [];\n const missingObjectIds = missingObjects.map((anchor) => anchor.objectid);\n\n // Filter out intermediate results and rename elements property to result property\n const endResultAnchors = this.data.results\n .filter((result) => !missingObjectIds.includes(result.objectid))\n .map((result) => {\n const { elements, ...otherProps } = result;\n\n return {\n ...otherProps,\n results: elements,\n };\n });\n\n if (endResultAnchors.length > 0) {\n return endResultAnchors.map(\n (endResult) =>\n new FormObjectModel(\n endResult,\n this.contributions.objects[endResult.objectid]\n )\n );\n }\n }\n\n return [];\n }\n\n /**\n */\n get expectsEndResultFormObjects(): boolean {\n const endResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key\n );\n\n return this.objectKeys.some(\n (objectKey) =>\n this.contributions.objects?.[objectKey]?.content?.results &&\n !endResultKeys.includes(objectKey)\n );\n }\n\n /**\n */\n get endResultFormObjects(): Array<FormObjectModel> {\n return this._endResultFormObjects;\n }\n\n /**\n */\n getEndResultFormObjects(): Array<FormObjectModel> {\n return this.endResultFormObjects.filter(\n (endResult) => !this.previousEndResultKeys.includes(endResult.key)\n );\n }\n\n /**\n */\n set endResultFormObjects(endResultFormObjects: Array<FormObjectModel>) {\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key\n );\n this._endResultFormObjects = endResultFormObjects;\n }\n\n /**\n */\n get previousEndResultKeys(): Array<string> {\n return this._previousEndResultKeys;\n }\n\n /**\n */\n set previousEndResultKeys(endResultFormObjectKeys: Array<string>) {\n this._previousEndResultKeys = endResultFormObjectKeys;\n }\n\n /**\n * Error handling\n */\n get isValid(): boolean {\n if (this.currentFormObject) {\n if (this.currentFormObject.isRepeatable) {\n // repeating objects need at least one valid form object\n const hasOneValidQuestion = this.allObjects\n .filter((object) => object.equals(this.currentFormObject, false))\n .find((object) => object.isValid);\n\n if (hasOneValidQuestion) {\n return true;\n }\n }\n\n return this.currentFormObject?.isValid ?? true;\n }\n\n return true;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasServerErrors();\n }\n\n return false;\n }\n\n /**\n */\n hasErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasErrors();\n }\n\n return false;\n }\n\n /**\n * Add an error to the error collection of this form\n */\n addServerError(error: ErrorResponse) {\n if (error.parameters) {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.parameters,\n error.layouthint\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || this.success != undefined;\n }\n\n /**\n */\n set isFinished(isFinished: boolean) {\n this._isFinished = isFinished;\n }\n\n /**\n * Indicates if form is completely entered\n */\n get isComplete(): boolean {\n return this._isComplete;\n }\n\n /**\n */\n set isComplete(isComplete: boolean) {\n this._isComplete = isComplete;\n }\n\n /**\n * Handle success redirects\n */\n get successRedirect(): Href | null {\n return this.isFinished && this.success\n ? new Href(this.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n * Get the result data as plain json object\n */\n getSuccessData(): ?Object {\n return this.success?.data;\n }\n\n /**\n * Retrieve an object where each property is a result data attribute set\n */\n getResultData(): ?{\n [key: string]: AttributeSetModel,\n } {\n const resultDataKeys = Object.keys(this.contributions.resultdata) ?? [];\n const successData = this.getSuccessData() ?? {};\n\n const resultdata: {\n [key: string]: AttributeSetModel,\n } = {};\n\n for (const resultDataKey of resultDataKeys) {\n resultdata[resultDataKey] = new AttributeSetModel(\n resultDataKey,\n successData[resultDataKey],\n this.contributions.resultdata[resultDataKey]\n );\n }\n\n return resultdata;\n }\n\n /**\n */\n get resultData(): ?Object {\n return this.getSuccessData();\n }\n\n /**\n * Href handling\n */\n setParameters(modularuiResponse: ModularUIResponse): Array<Parameter> {\n const parameters = modularuiResponse?.parameters ?? [];\n return parameters.map(\n (par) => new Parameter(par._prefix, par._name, par._value)\n );\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n selfhrefNoCommitParam(): Href {\n const selfhref = this.selflink.href;\n selfhref.method = HTTP_METHODS.POST;\n\n selfhref.parameters = this.parameters.filter(\n (parameter) => parameter.name !== \"commit\"\n );\n\n return selfhref;\n }\n\n /**\n */\n selfhrefWithCommitParam(): Href {\n const selfhref = this.selfhrefNoCommitParam();\n\n if (this.expectsEndResultFormObjects && !this.isComplete && !this.commit) {\n selfhref.addParameter(\"commit\", \"false\");\n }\n\n return selfhref;\n }\n\n /**\n * Create a selfhref including the parameters that are used to start this form\n */\n get selfhref(): Href {\n if (!this.selflink) {\n throw new Error(\"No self link found for form\");\n }\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return this.selfhrefNoCommitParam();\n }\n\n return this.selfhrefWithCommitParam();\n }\n\n /**\n * Handle form tokens to indicate concurrent form use\n */\n get tokens(): Array<string> {\n if (!this._tokens) {\n this._tokens = this.data.tokens ?? [];\n }\n return this._tokens;\n }\n\n /**\n * Replaces all tokens with the given collection of tokens\n */\n set tokens(tokens: Array<string>) {\n this._tokens = tokens;\n }\n\n /**\n * Removes all tokens from the form\n */\n removeTokens() {\n this._tokens = [];\n }\n\n /**\n * Keep track of changed form\n */\n isChanged(): boolean {\n return (\n this.currentFormObject !== null &&\n this.currentFormObject.isChangedSince(this.lastUpdate)\n );\n }\n\n /**\n */\n get lastUpdate(): number {\n return this._lastUpdate;\n }\n\n /**\n */\n set lastUpdate(lastUpdate: number) {\n this._lastUpdate = lastUpdate;\n }\n\n /**\n */\n getFormDataObjects(\n validOnly: boolean = true,\n validationData: boolean = false\n ): Array<Object> {\n const formdata = [];\n\n const formObjects = this.allObjects.filter((formObject, index) => {\n // repeatabe object without fixed nr of repeats, remove last form object from formdata,\n // because this is the formobject that is used as a placeholder for the create object\n // of the collection of repeats\n if (formObject.isRepeatable && !formObject.hasFixedNrOfRepeats) {\n const isLastRepeat =\n index === this.allObjects.length - 1 ||\n this.allObjects[index + 1].key !== formObject.key;\n\n if (isLastRepeat) {\n return false;\n }\n }\n\n return formObject.isValid || !validOnly;\n });\n\n formObjects.forEach((formObject) => {\n const objectFormData = formObject.getFormData(validationData);\n\n const existingObjectIndex = formdata.findIndex(\n (obj) =>\n obj.key === formObject.key &&\n obj.repeatIndex === formObject.repeatIndex\n );\n\n /*\n * when the object already exists in the formdata with the same key and index,\n * merge the attributes of both objects together\n */\n if (existingObjectIndex > -1) {\n formdata[existingObjectIndex].formdata = deepmerge(\n formdata[existingObjectIndex].formdata,\n objectFormData\n );\n } else {\n formdata.push({\n key: formObject.key,\n repeatIndex: formObject.repeatIndex,\n formdata: objectFormData,\n });\n }\n });\n\n return formdata.map((obj) => ({ [obj.key]: obj.formdata }));\n }\n\n /**\n */\n getFormData(\n validOnly: boolean = true,\n withConcurrencyToken: boolean = true,\n validationData: boolean = false\n ): string {\n if (withConcurrencyToken && this.tokens.length > 0) {\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n tokens: this.tokens,\n });\n }\n\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n });\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n this._useClientsideValidation = enabled;\n\n this.allObjects.forEach((formObject) => {\n formObject.attributeCollection.all.forEach((item: AttributeType) =>\n item.setUseClientsideValidation(enabled)\n );\n });\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Get form data for submitting\n */\n get formdata(): string {\n return this.getFormData(this.useClientsideValidation());\n }\n\n /**\n */\n get validationData(): string {\n return this.getFormData(false, false, true);\n }\n\n /**\n * Form navigation: Go one object back (previous button)\n */\n get hasPreviousStep(): boolean {\n const currentFormObjectKey =\n this.currentFormObject != null ? this.currentFormObject.key : \"\";\n\n return (\n this.completedFormObjects.filter(\n (formObject) =>\n !formObject.isRepeatWithUnknownTotal ||\n formObject.key !== currentFormObjectKey\n ).length > 0\n );\n }\n\n /**\n * Go one form-object back,\n * for repeating object this means go back\n * until we get at a form object that had\n * a different key than the current form object\n */\n setPreviousObject() {\n this.isComplete = false;\n this.isFinished = false;\n this.success = null;\n\n const oldCurrentFormObject = this.currentFormObject;\n\n if (this.currentFormObject !== null) {\n this.previouslyEnteredFormObjects = [\n this.currentFormObject,\n ...this.previouslyEnteredFormObjects,\n ];\n }\n\n this.currentFormObject =\n this.completedFormObjects[this.completedFormObjects.length - 1];\n this.completedFormObjects = this.completedFormObjects.slice(0, -1);\n\n const completedFormObjectKeys = this.completedFormObjects\n .map((formObject) => formObject.key)\n .filter((formObjectKey) => formObjectKey !== this.currentFormObject?.key);\n\n this.endResultFormObjects = this._endResultFormObjects.filter((endResult) =>\n completedFormObjectKeys.includes(endResult.key)\n );\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key\n );\n\n // while we are at the same repeating form object, go a step back\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(\n oldCurrentFormObject,\n this.currentFormObject.hasFixedNrOfRepeats\n )\n ) {\n this.setPreviousObject();\n }\n }\n\n /**\n * Form navigation: has next step or is last\n */\n get hasNextStep(): boolean {\n if (\n this.isComplete ||\n this.isFinished ||\n this.hasNoQuestionsConfigured ||\n !this.contributions.objects\n ) {\n return false;\n }\n\n // current object is a dynamic object\n if (this.currentFormObject && this.currentFormObject.isDynamic) {\n return true;\n }\n\n if (this.expectsEndResultFormObjects) {\n return true;\n }\n\n const currentObjectIndex = this.objectKeys.findIndex(\n (objectKey) => objectKey === this.currentFormObject?.key\n );\n const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;\n\n // current object is a repeating question but it is not the last one\n if (\n isLastObject &&\n this.currentFormObject &&\n this.currentFormObject.isRepeatable &&\n !this.currentFormObject.isLastRepeat\n ) {\n return true;\n }\n\n // current object is not repeatable and the last object\n if (isLastObject) {\n return false;\n }\n\n // can't determine if this is te last, render a next button\n return true;\n }\n\n /**\n * Merge existing form with new form\n */\n update(receivedForm: ModularUIModel): FormModel {\n if (receivedForm instanceof FormModel) {\n this.resetErrors();\n\n this.lastUpdate = Date.now();\n this.lastServerUpdate = receivedForm.lastServerUpdate;\n\n this.tokens = receivedForm.tokens;\n\n this.isComplete = receivedForm.isComplete;\n this.isFinished = receivedForm.isFinished;\n this.success = receivedForm.success;\n\n const receivedFormData = receivedForm.data ?? {};\n const hasMissing = has(receivedFormData, \"missing\");\n const hasErrors = has(receivedFormData, \"errors\");\n\n if (!hasMissing && !hasErrors) {\n this.handleFinished(receivedForm);\n }\n\n if (hasErrors) {\n this.handleErrors(receivedForm);\n }\n\n if (hasMissing) {\n this.handleMissing(receivedForm);\n }\n }\n\n return this;\n }\n\n /**\n */\n updateValidations(data: any): FormModel {\n if (this.currentFormObject) {\n this.currentFormObject.updateValidations(data);\n }\n\n return this;\n }\n\n /**\n * Retrieve success information from response\n * @returns {{redirect: string, data: object}}\n */\n get success(): { redirect: string, data: Object } | null {\n return this._success;\n }\n\n /**\n * Set success information, contains redirect and event data\n * @param success\n */\n set success(success: { redirect: string, data: Object } | null) {\n this._success = success;\n }\n\n /**\n */\n createSuccess() {\n this._success = this.data.success;\n }\n\n /**\n * Process finished form\n */\n handleFinished(receivedForm: FormModel) {\n if (this.currentFormObject) {\n this.completedFormObjects = [\n ...this.completedFormObjects,\n this.currentFormObject,\n ];\n }\n\n this.currentFormObject = receivedForm.currentFormObject;\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n this._data = receivedForm._data;\n }\n\n /**\n */\n handleRootErrors(errors: Array<Object>) {\n errors\n .filter((error) => !error.anchor)\n .forEach((error) => {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint)\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats\n )\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject)\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModel.js","names":["_flattenDeep","_interopRequireDefault","require","_deepmerge","_objects","_exceptions","_ResourceModel","_ErrorCollection","_Href","_Parameter","_FormObjectModel","_Constants","_Settings","_LayoutHints","_LayoutHintCollection","_AttributeSetModel","FormModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","getSetting","ErrorCollection","lastUpdate","currentFormObject","createFormObject","endResultFormObjects","setEndResultFormObjects","parameters","setParameters","isComplete","getData","data","errors","handleRootErrors","createSuccess","type","actiontype","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","_context","endResultChildLinks","flattenDeep","_map","call","endResultFormObject","setChildModels","models","forEach","label","buttonLabels","getButtonLabel","buttonType","cancel","allObjects","completedFormObjects","objectKeys","_keys","objects","numberOfExpectedQuestions","length","hasNoQuestionsConfigured","addGlobalDynamicSchema","anchor","dynamicschema","_context2","elements","element","_context3","item","getMissingAnchors","missingAnchors","missing","anchors","results","_context4","resultObject","_find","result","objectid","objectId","FormObjectModel","addEmptyFormObject","formObjectModel","arguments","undefined","emptyFormObject","createEmpty","repeatIndex","getHighestRepeatIndex","addFormObject","_context5","_context6","Math","max","_filter","formObject","equals","IllegalArgumentException","getFormObjectByKey","key","_context7","getFormObjectByLayoutHint","hint","_context8","removeFormObject","_context9","_currentFormObject","_completedFormObjects","formObjects","previouslyEnteredFormObjects","_previouslyEnteredFormObjects","_context10","_context11","missingObjects","missingObjectIds","endResultAnchors","_includes","otherProps","endResult","expectsEndResultFormObjects","_context12","endResultKeys","some","objectKey","content","_endResultFormObjects","getEndResultFormObjects","_context13","_context14","previousEndResultKeys","_context15","_previousEndResultKeys","endResultFormObjectKeys","isValid","isRepeatable","_context16","_context17","hasOneValidQuestion","object","hasServerErrors","errorCollection","hasItems","hasErrors","addServerError","error","id","message","resetErrors","_errorCollection","commit","_commit","isFinished","_isFinished","success","_isComplete","successRedirect","Href","redirect","redirectLocation","_redirectLocation","getSuccessData","getResultData","resultDataKeys","resultdata","successData","resultDataKey","AttributeSetModel","resultData","par","Parameter","_prefix","_name","_value","_parameters","selfhrefNoCommitParam","_context18","selfhref","selflink","href","method","HTTP_METHODS","POST","parameter","name","selfhrefWithCommitParam","addParameter","Error","tokens","_tokens","removeTokens","isChanged","isChangedSince","_lastUpdate","getFormDataObjects","_context19","validOnly","validationData","formdata","index","hasFixedNrOfRepeats","isLastRepeat","objectFormData","getFormData","existingObjectIndex","_findIndex","obj","deepmerge","push","withConcurrencyToken","_stringify","setUseClientsideValidation","enabled","_useClientsideValidation","attributeCollection","all","useClientsideValidation","hasPreviousStep","_context20","currentFormObjectKey","isRepeatWithUnknownTotal","setPreviousObject","_context21","_context22","_context23","_context24","_context25","oldCurrentFormObject","_slice","completedFormObjectKeys","formObjectKey","hasNextStep","_context26","isDynamic","currentObjectIndex","isLastObject","update","receivedForm","Date","now","lastServerUpdate","receivedFormData","hasMissing","handleFinished","handleErrors","handleMissing","updateValidations","_success","_data","properties","errorAnchors","LayoutHintCollection","handleMissingErrors","handleNewFormObject","processMissingErrors","_context27","attribute","hasAttributeByKey","addMissingError","removeMissingError","receivedCurrentFormObject","_context28","handlePreviouslyEnteredFormObjects","mergePreviouslyEnteredObjects","_mergePreviouslyEnteredObjects","_context29","previouslyEnteredFormObject","mergedObject","mergeObjects","hasPreviouslyEnteredObject","newObject","oldObject","mergedFormObject","mergeObject","findAttribute","findMethod","foundAttribute","_context30","_default","exports"],"sources":["../../../src/models/form/FormModel.js"],"sourcesContent":["// @flow\nimport flattenDeep from \"lodash/flattenDeep\";\nimport deepmerge from \"deepmerge\";\n\nimport { has } from \"../../utils/helpers/objects\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport Href from \"../href/Href\";\nimport Parameter from \"../parameter/Parameter\";\n\nimport FormObjectModel from \"./FormObjectModel\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport {\n CREATE_ACTION,\n DELETE_ACTION,\n UPDATE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\n/**\n */\nclass FormModel extends ResourceModel {\n _lastUpdate: number;\n\n _completedFormObjects: Array<FormObjectModel> = [];\n _currentFormObject: FormObjectModel | null = null;\n _previouslyEnteredFormObjects: Array<FormObjectModel> = [];\n\n _mergePreviouslyEnteredObjects: boolean = true;\n\n _endResultFormObjects: Array<FormObjectModel> = [];\n _previousEndResultKeys: Array<string> = [];\n\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _errorCollection: ErrorCollection = new ErrorCollection(\"form\");\n\n _redirectLocation: Href;\n\n _commit: boolean;\n _isFinished: boolean;\n _isComplete: boolean;\n _success: { redirect: string, data: Object } | null;\n\n _parameters: Array<Parameter>;\n _tokens: Array<string>;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.lastUpdate = 0;\n\n this.currentFormObject = this.createFormObject();\n this.endResultFormObjects = this.setEndResultFormObjects();\n\n this.parameters = this.setParameters(modularuiResponse);\n\n this.isComplete = this.getData(\"complete\", false);\n\n if (this.data.errors) {\n this.handleRootErrors(this.data.errors);\n }\n\n this.createSuccess();\n }\n\n /**\n */\n get type(): string {\n return \"Form\";\n }\n\n /**\n */\n get actiontype(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"actiontype\", \"form\");\n }\n\n /**\n */\n static get modelName(): string {\n return \"FormModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Form\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const endResultChildLinks = flattenDeep(\n this.endResultFormObjects.map((endResultFormObject) =>\n endResultFormObject.getInitialChildModelLinks(),\n ),\n );\n\n if (this.currentFormObject === null) {\n return endResultChildLinks;\n }\n\n return [\n ...this.currentFormObject.getInitialChildModelLinks(),\n ...endResultChildLinks,\n ];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.currentFormObject) {\n this.currentFormObject.setChildModels(models);\n }\n\n this.endResultFormObjects.forEach((endResultFormObject) => {\n endResultFormObject.setChildModels(models);\n });\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Get form level button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * @returns button label from contributions;\n */\n getButtonLabel(\n buttonType: \"cancel\" | \"previous\" | \"next\" | \"finish\",\n ): string | null {\n // cancel button labels are defined on the form\n if (buttonType === \"cancel\") {\n return this.buttonLabels?.cancel ?? null;\n }\n\n // all other form related button labels are defined on the object\n return this.currentFormObject?.buttonLabels?.[buttonType] ?? null;\n }\n\n /**\n * Get all applicable objects\n */\n get allObjects(): Array<FormObjectModel> {\n if (this.currentFormObject === null) {\n return this.completedFormObjects;\n }\n\n return [...this.completedFormObjects, this.currentFormObject];\n }\n\n /**\n */\n get objectKeys(): Array<string> {\n if (has(this.contributions, \"objects\")) {\n return Object.keys(this.contributions.objects);\n }\n\n return [];\n }\n\n /**\n */\n get numberOfExpectedQuestions(): number {\n return this.objectKeys.length;\n }\n\n /**\n * Has questions configured on form\n */\n get hasNoQuestionsConfigured(): boolean {\n return (\n this.isComplete &&\n (this.objectKeys.length === 0 ||\n (!(\"missing\" in this.data) &&\n !(\"results\" in this.data) &&\n !(\"errors\" in this.data)))\n );\n }\n\n /**\n */\n addGlobalDynamicSchema(anchor: Object, dynamicschema: Object): Object {\n if (!dynamicschema) {\n return anchor;\n }\n\n return {\n ...anchor,\n elements: anchor.elements.map((element) => ({\n ...element,\n dynamicschema: element.dynamicschema\n ? element.dynamicschema.map((item) => ({\n ...item,\n elements: { ...item.elements, dynamicschema },\n }))\n : null,\n })),\n };\n }\n\n /**\n */\n getMissingAnchors(): Array<Object> {\n const missingAnchors = this.data.missing?.anchors ?? [];\n\n // Add intermediate result data to anchor\n return missingAnchors.map((anchor) => {\n if (this.data.results) {\n const resultObject = this.data.results.find(\n (result) =>\n result.objectid === anchor.objectid && \"elements\" in result,\n );\n\n if (resultObject) {\n anchor.results = resultObject.elements;\n }\n }\n\n return this.addGlobalDynamicSchema(anchor, this.data.dynamicschema);\n });\n }\n\n /**\n * Create form object based on the data and contributions available in this form\n */\n createFormObject(): FormObjectModel | null {\n if (this.data && this.contributions) {\n const missingAnchors = this.getMissingAnchors();\n\n // Get object id from first anchor\n const objectId = missingAnchors?.[0]?.objectid ?? \"\";\n const contributions = this.contributions.objects?.[objectId];\n if (contributions) {\n return new FormObjectModel(missingAnchors[0], contributions);\n }\n }\n\n return null;\n }\n\n /**\n */\n addEmptyFormObject(\n formObjectModel: FormObjectModel | null = this.currentFormObject,\n ) {\n if (formObjectModel) {\n const emptyFormObject = FormObjectModel.createEmpty(formObjectModel);\n\n emptyFormObject.repeatIndex =\n this.getHighestRepeatIndex(formObjectModel) + 1;\n\n this.addFormObject(emptyFormObject);\n }\n }\n\n /**\n */\n getHighestRepeatIndex(formObjectModel: FormObjectModel): number {\n return Math.max(\n ...this.allObjects\n .filter((formObject) => formObject.equals(formObjectModel, false))\n .map((formObject) => formObject.repeatIndex),\n );\n }\n\n /**\n */\n addFormObject(formObjectModel: FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to add\");\n }\n\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = formObjectModel;\n }\n\n /**\n * Retrieve a form object by the key\n */\n getFormObjectByKey(key: string): ?FormObjectModel {\n return this.allObjects.find((formObject) => formObject.key === key);\n }\n\n /**\n * Retrieve a form object by a layouthint\n */\n getFormObjectByLayoutHint(hint: string): ?FormObjectModel {\n return this.allObjects.find((formObject) =>\n formObject.layouthint.has(hint),\n );\n }\n\n /**\n */\n removeFormObject(formObjectModel: ?FormObjectModel): void {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\"Missing form object to remove\");\n }\n if (formObjectModel.equals(this.currentFormObject)) {\n throw new IllegalArgumentException(\n \"Can not remove the current form object\",\n );\n }\n\n this.completedFormObjects = this.completedFormObjects.filter(\n (formObject) => !formObject.equals(formObjectModel),\n );\n }\n\n /**\n */\n get currentFormObject(): FormObjectModel | null {\n return this._currentFormObject;\n }\n\n /**\n */\n set currentFormObject(formObject: FormObjectModel | null) {\n this._currentFormObject = formObject;\n }\n\n /**\n * Completed objects are previously entered questions\n */\n get completedFormObjects(): Array<FormObjectModel> {\n return this._completedFormObjects;\n }\n\n /**\n */\n set completedFormObjects(formObjects: Array<FormObjectModel>) {\n this._completedFormObjects = formObjects;\n }\n\n /**\n * Previously entered objects are questions that have been entered before,\n * but are currently not applicable for the form.\n * For example because of previous navigation\n */\n get previouslyEnteredFormObjects(): Array<FormObjectModel> {\n return this._previouslyEnteredFormObjects;\n }\n\n /**\n */\n set previouslyEnteredFormObjects(formObjects: Array<FormObjectModel>) {\n this._previouslyEnteredFormObjects = formObjects;\n }\n\n /**\n * Handle end results\n */\n setEndResultFormObjects(): Array<FormObjectModel> {\n if (this.data && this.data.results) {\n const missingObjects = this.data.missing?.anchors ?? [];\n const missingObjectIds = missingObjects.map((anchor) => anchor.objectid);\n\n // Filter out intermediate results and rename elements property to result property\n const endResultAnchors = this.data.results\n .filter((result) => !missingObjectIds.includes(result.objectid))\n .map((result) => {\n const { elements, ...otherProps } = result;\n\n return {\n ...otherProps,\n results: elements,\n };\n });\n\n if (endResultAnchors.length > 0) {\n return endResultAnchors.map(\n (endResult) =>\n new FormObjectModel(\n endResult,\n this.contributions.objects[endResult.objectid],\n ),\n );\n }\n }\n\n return [];\n }\n\n /**\n */\n get expectsEndResultFormObjects(): boolean {\n const endResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n return this.objectKeys.some(\n (objectKey) =>\n this.contributions.objects?.[objectKey]?.content?.results &&\n !endResultKeys.includes(objectKey),\n );\n }\n\n /**\n */\n get endResultFormObjects(): Array<FormObjectModel> {\n return this._endResultFormObjects;\n }\n\n /**\n */\n getEndResultFormObjects(): Array<FormObjectModel> {\n return this.endResultFormObjects.filter(\n (endResult) => !this.previousEndResultKeys.includes(endResult.key),\n );\n }\n\n /**\n */\n set endResultFormObjects(endResultFormObjects: Array<FormObjectModel>) {\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n this._endResultFormObjects = endResultFormObjects;\n }\n\n /**\n */\n get previousEndResultKeys(): Array<string> {\n return this._previousEndResultKeys;\n }\n\n /**\n */\n set previousEndResultKeys(endResultFormObjectKeys: Array<string>) {\n this._previousEndResultKeys = endResultFormObjectKeys;\n }\n\n /**\n * Error handling\n */\n get isValid(): boolean {\n if (this.currentFormObject) {\n if (this.currentFormObject.isRepeatable) {\n // repeating objects need at least one valid form object\n const hasOneValidQuestion = this.allObjects\n .filter((object) => object.equals(this.currentFormObject, false))\n .find((object) => object.isValid);\n\n if (hasOneValidQuestion) {\n return true;\n }\n }\n\n return this.currentFormObject?.isValid ?? true;\n }\n\n return true;\n }\n\n /**\n */\n hasServerErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasServerErrors();\n }\n\n return false;\n }\n\n /**\n */\n hasErrors(): boolean {\n if (this.errorCollection.hasItems) {\n return true;\n }\n\n if (this.currentFormObject) {\n return this.currentFormObject.hasErrors();\n }\n\n return false;\n }\n\n /**\n * Add an error to the error collection of this form\n */\n addServerError(error: ErrorResponse) {\n if (error.parameters) {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.parameters,\n error.layouthint,\n );\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n undefined,\n error.layouthint,\n );\n }\n }\n\n /**\n * Reset error messages\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"form\");\n\n if (this.currentFormObject) {\n this.currentFormObject.resetErrors();\n }\n }\n\n /**\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n */\n set errorCollection(errorCollection: ErrorCollection) {\n this._errorCollection = errorCollection;\n }\n\n /**\n * Indicates if the form needs to be committed\n */\n get commit(): boolean {\n return this._commit || false;\n }\n\n /**\n */\n set commit(commit: boolean) {\n this._commit = commit;\n }\n\n /**\n * Inidicates if form is finished: Form is completely entered and committed\n */\n get isFinished(): boolean {\n return this._isFinished || this.success != undefined;\n }\n\n /**\n */\n set isFinished(isFinished: boolean) {\n this._isFinished = isFinished;\n }\n\n /**\n * Indicates if form is completely entered\n */\n get isComplete(): boolean {\n return this._isComplete;\n }\n\n /**\n */\n set isComplete(isComplete: boolean) {\n this._isComplete = isComplete;\n }\n\n /**\n * Handle success redirects\n */\n get successRedirect(): Href | null {\n return this.isFinished && this.success\n ? new Href(this.success.redirect)\n : null;\n }\n\n /**\n */\n get redirectLocation(): Href {\n return this._redirectLocation || this.successRedirect;\n }\n\n /**\n * Get the result data as plain json object\n */\n getSuccessData(): ?Object {\n return this.success?.data;\n }\n\n /**\n * Retrieve an object where each property is a result data attribute set\n */\n getResultData(): ?{\n [key: string]: AttributeSetModel,\n } {\n const resultDataKeys = Object.keys(this.contributions.resultdata) ?? [];\n const successData = this.getSuccessData() ?? {};\n\n const resultdata: {\n [key: string]: AttributeSetModel,\n } = {};\n\n for (const resultDataKey of resultDataKeys) {\n resultdata[resultDataKey] = new AttributeSetModel(\n resultDataKey,\n successData[resultDataKey],\n this.contributions.resultdata[resultDataKey],\n );\n }\n\n return resultdata;\n }\n\n /**\n */\n get resultData(): ?Object {\n return this.getSuccessData();\n }\n\n /**\n * Href handling\n */\n setParameters(modularuiResponse: ModularUIResponse): Array<Parameter> {\n const parameters = modularuiResponse?.parameters ?? [];\n return parameters.map(\n (par) => new Parameter(par._prefix, par._name, par._value),\n );\n }\n\n /**\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n */\n selfhrefNoCommitParam(): Href {\n const selfhref = this.selflink.href;\n selfhref.method = HTTP_METHODS.POST;\n\n selfhref.parameters = this.parameters.filter(\n (parameter) => parameter.name !== \"commit\",\n );\n\n return selfhref;\n }\n\n /**\n */\n selfhrefWithCommitParam(): Href {\n const selfhref = this.selfhrefNoCommitParam();\n\n if (this.expectsEndResultFormObjects && !this.isComplete && !this.commit) {\n selfhref.addParameter(\"commit\", \"false\");\n }\n\n return selfhref;\n }\n\n /**\n * Create a selfhref including the parameters that are used to start this form\n */\n get selfhref(): Href {\n if (!this.selflink) {\n throw new Error(\"No self link found for form\");\n }\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return this.selfhrefNoCommitParam();\n }\n\n return this.selfhrefWithCommitParam();\n }\n\n /**\n * Handle form tokens to indicate concurrent form use\n */\n get tokens(): Array<string> {\n if (!this._tokens) {\n this._tokens = this.data.tokens ?? [];\n }\n return this._tokens;\n }\n\n /**\n * Replaces all tokens with the given collection of tokens\n */\n set tokens(tokens: Array<string>) {\n this._tokens = tokens;\n }\n\n /**\n * Removes all tokens from the form\n */\n removeTokens() {\n this._tokens = [];\n }\n\n /**\n * Keep track of changed form\n */\n isChanged(): boolean {\n return (\n this.currentFormObject !== null &&\n this.currentFormObject.isChangedSince(this.lastUpdate)\n );\n }\n\n /**\n */\n get lastUpdate(): number {\n return this._lastUpdate;\n }\n\n /**\n */\n set lastUpdate(lastUpdate: number) {\n this._lastUpdate = lastUpdate;\n }\n\n /**\n */\n getFormDataObjects(\n validOnly: boolean = true,\n validationData: boolean = false,\n ): Array<Object> {\n const formdata = [];\n\n const formObjects = this.allObjects.filter((formObject, index) => {\n // repeatabe object without fixed nr of repeats, remove last form object from formdata,\n // because this is the formobject that is used as a placeholder for the create object\n // of the collection of repeats\n if (formObject.isRepeatable && !formObject.hasFixedNrOfRepeats) {\n const isLastRepeat =\n index === this.allObjects.length - 1 ||\n this.allObjects[index + 1].key !== formObject.key;\n\n if (isLastRepeat) {\n return false;\n }\n }\n\n return formObject.isValid || !validOnly;\n });\n\n formObjects.forEach((formObject) => {\n const objectFormData = formObject.getFormData(validationData);\n\n const existingObjectIndex = formdata.findIndex(\n (obj) =>\n obj.key === formObject.key &&\n obj.repeatIndex === formObject.repeatIndex,\n );\n\n /*\n * when the object already exists in the formdata with the same key and index,\n * merge the attributes of both objects together\n */\n if (existingObjectIndex > -1) {\n formdata[existingObjectIndex].formdata = deepmerge(\n formdata[existingObjectIndex].formdata,\n objectFormData,\n );\n } else {\n formdata.push({\n key: formObject.key,\n repeatIndex: formObject.repeatIndex,\n formdata: objectFormData,\n });\n }\n });\n\n return formdata.map((obj) => ({ [obj.key]: obj.formdata }));\n }\n\n /**\n */\n getFormData(\n validOnly: boolean = true,\n withConcurrencyToken: boolean = true,\n validationData: boolean = false,\n ): string {\n if (withConcurrencyToken && this.tokens.length > 0) {\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n tokens: this.tokens,\n });\n }\n\n return JSON.stringify({\n objects: this.getFormDataObjects(validOnly, validationData),\n });\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n this._useClientsideValidation = enabled;\n\n this.allObjects.forEach((formObject) => {\n formObject.attributeCollection.all.forEach((item: AttributeType) =>\n item.setUseClientsideValidation(enabled),\n );\n });\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Get form data for submitting\n */\n get formdata(): string {\n return this.getFormData(this.useClientsideValidation());\n }\n\n /**\n */\n get validationData(): string {\n return this.getFormData(false, false, true);\n }\n\n /**\n * Form navigation: Go one object back (previous button)\n */\n get hasPreviousStep(): boolean {\n const currentFormObjectKey =\n this.currentFormObject != null ? this.currentFormObject.key : \"\";\n\n return (\n this.completedFormObjects.filter(\n (formObject) =>\n !formObject.isRepeatWithUnknownTotal ||\n formObject.key !== currentFormObjectKey,\n ).length > 0\n );\n }\n\n /**\n * Go one form-object back,\n * for repeating object this means go back\n * until we get at a form object that had\n * a different key than the current form object\n */\n setPreviousObject() {\n this.isComplete = false;\n this.isFinished = false;\n this.success = null;\n\n const oldCurrentFormObject = this.currentFormObject;\n\n if (this.currentFormObject !== null) {\n this.previouslyEnteredFormObjects = [\n this.currentFormObject,\n ...this.previouslyEnteredFormObjects,\n ];\n }\n\n this.currentFormObject =\n this.completedFormObjects[this.completedFormObjects.length - 1];\n this.completedFormObjects = this.completedFormObjects.slice(0, -1);\n\n const completedFormObjectKeys = this.completedFormObjects\n .map((formObject) => formObject.key)\n .filter((formObjectKey) => formObjectKey !== this.currentFormObject?.key);\n\n this.endResultFormObjects = this._endResultFormObjects.filter((endResult) =>\n completedFormObjectKeys.includes(endResult.key),\n );\n this.previousEndResultKeys = this.endResultFormObjects.map(\n (endResult) => endResult.key,\n );\n\n // while we are at the same repeating form object, go a step back\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(\n oldCurrentFormObject,\n this.currentFormObject.hasFixedNrOfRepeats,\n )\n ) {\n this.setPreviousObject();\n }\n }\n\n /**\n * Form navigation: has next step or is last\n */\n get hasNextStep(): boolean {\n if (\n this.isComplete ||\n this.isFinished ||\n this.hasNoQuestionsConfigured ||\n !this.contributions.objects\n ) {\n return false;\n }\n\n // current object is a dynamic object\n if (this.currentFormObject && this.currentFormObject.isDynamic) {\n return true;\n }\n\n if (this.expectsEndResultFormObjects) {\n return true;\n }\n\n const currentObjectIndex = this.objectKeys.findIndex(\n (objectKey) => objectKey === this.currentFormObject?.key,\n );\n const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;\n\n // current object is a repeating question but it is not the last one\n if (\n isLastObject &&\n this.currentFormObject &&\n this.currentFormObject.isRepeatable &&\n !this.currentFormObject.isLastRepeat\n ) {\n return true;\n }\n\n // current object is not repeatable and the last object\n if (isLastObject) {\n return false;\n }\n\n // can't determine if this is te last, render a next button\n return true;\n }\n\n /**\n * Merge existing form with new form\n */\n update(receivedForm: ModularUIModel): FormModel {\n if (receivedForm instanceof FormModel) {\n this.resetErrors();\n\n this.lastUpdate = Date.now();\n this.lastServerUpdate = receivedForm.lastServerUpdate;\n\n this.tokens = receivedForm.tokens;\n\n this.isComplete = receivedForm.isComplete;\n this.isFinished = receivedForm.isFinished;\n this.success = receivedForm.success;\n\n const receivedFormData = receivedForm.data ?? {};\n const hasMissing = has(receivedFormData, \"missing\");\n const hasErrors = has(receivedFormData, \"errors\");\n\n if (!hasMissing && !hasErrors) {\n this.handleFinished(receivedForm);\n }\n\n if (hasErrors) {\n this.handleErrors(receivedForm);\n }\n\n if (hasMissing) {\n this.handleMissing(receivedForm);\n }\n }\n\n return this;\n }\n\n /**\n */\n updateValidations(data: any): FormModel {\n if (this.currentFormObject) {\n this.currentFormObject.updateValidations(data);\n }\n\n return this;\n }\n\n /**\n * Retrieve success information from response\n * @returns {{redirect: string, data: object}}\n */\n get success(): { redirect: string, data: Object } | null {\n return this._success;\n }\n\n /**\n * Set success information, contains redirect and event data\n * @param success\n */\n set success(success: { redirect: string, data: Object } | null) {\n this._success = success;\n }\n\n /**\n */\n createSuccess() {\n this._success = this.data.success;\n }\n\n /**\n * Process finished form\n */\n handleFinished(receivedForm: FormModel) {\n if (this.currentFormObject) {\n this.completedFormObjects = [\n ...this.completedFormObjects,\n this.currentFormObject,\n ];\n }\n\n this.currentFormObject = receivedForm.currentFormObject;\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n this._data = receivedForm._data;\n }\n\n /**\n */\n handleRootErrors(errors: Array<Object>) {\n errors\n .filter((error) => !error.anchor)\n .forEach((error) => {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n });\n }\n\n /**\n * Process errors from received form\n */\n handleErrors(receivedForm: FormModel) {\n const errorAnchors = receivedForm.data.errors;\n if (errorAnchors) {\n errorAnchors.forEach((error) => {\n if (\n error.anchor &&\n this.currentFormObject &&\n this.currentFormObject.key === error.anchor.objectid\n ) {\n this.currentFormObject.addServerError(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n });\n }\n }\n\n /**\n * Process missing from received form\n */\n handleMissing(receivedForm: FormModel) {\n if (\n this.currentFormObject &&\n this.currentFormObject.equals(receivedForm.currentFormObject)\n ) {\n this.handleMissingErrors(receivedForm);\n } else {\n this.handleNewFormObject(receivedForm);\n }\n }\n\n /**\n * Received missing anchors in the response with an object id that is the current form object\n */\n processMissingErrors(receivedForm: FormModel): FormObjectModel | null {\n if (this.currentFormObject === null) {\n return null;\n }\n\n this.currentFormObject.attributeCollection.map((attribute) => {\n if (\n receivedForm.currentFormObject &&\n receivedForm.currentFormObject.hasAttributeByKey(attribute.key)\n ) {\n attribute.addMissingError();\n } else {\n attribute.removeMissingError();\n }\n\n return attribute;\n });\n\n return this.currentFormObject;\n }\n\n /**\n */\n handleMissingErrors(receivedForm: FormModel) {\n this.currentFormObject = this.processMissingErrors(receivedForm);\n }\n\n /**\n */\n handleNewFormObject(receivedForm: FormModel) {\n this.endResultFormObjects = receivedForm.endResultFormObjects;\n\n const receivedCurrentFormObject = receivedForm.currentFormObject;\n\n if (receivedCurrentFormObject === null) {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = null;\n } else {\n // check if received form exists in the previously entered form objects\n const previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) =>\n formObject.equals(\n receivedCurrentFormObject,\n formObject.hasFixedNrOfRepeats,\n ),\n );\n\n if (previouslyEnteredFormObjects.length > 0) {\n this.handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObjects,\n );\n } else {\n this.completedFormObjects = [...this.allObjects];\n this.currentFormObject = receivedCurrentFormObject;\n }\n }\n }\n\n /**\n * Indicate if a new form object model should be merged with a previousled entered form object model\n * Set this property to false on the form that receives the new form to skip the merge behavior\n */\n get mergePreviouslyEnteredObjects(): boolean {\n return this._mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n set mergePreviouslyEnteredObjects(mergePreviouslyEnteredObjects: boolean) {\n this._mergePreviouslyEnteredObjects = mergePreviouslyEnteredObjects;\n }\n\n /**\n */\n handlePreviouslyEnteredFormObjects(\n receivedCurrentFormObject: FormObjectModel,\n previouslyEnteredFormObjects: Array<FormObjectModel>,\n ) {\n previouslyEnteredFormObjects.forEach((previouslyEnteredFormObject) => {\n const mergedObject = this.mergePreviouslyEnteredObjects\n ? this.mergeObjects(\n receivedCurrentFormObject,\n previouslyEnteredFormObject,\n )\n : receivedCurrentFormObject;\n\n this.addFormObject(mergedObject);\n });\n\n // remove the previously entered form object\n this.previouslyEnteredFormObjects =\n this.previouslyEnteredFormObjects.filter((formObject) => {\n const hasPreviouslyEnteredObject = previouslyEnteredFormObjects.find(\n (previouslyEnteredFormObject) =>\n formObject.equals(previouslyEnteredFormObject),\n );\n\n return !hasPreviouslyEnteredObject;\n });\n }\n\n /**\n */\n mergeObjects(\n newObject: FormObjectModel,\n oldObject: FormObjectModel,\n ): FormObjectModel {\n const mergedFormObject = FormObjectModel.createEmpty(newObject);\n\n mergedFormObject.mergeObject(oldObject);\n\n return mergedFormObject;\n }\n\n /**\n */\n findAttribute(findMethod: Function): AttributeType | null {\n let foundAttribute = null;\n\n this.allObjects.forEach((formObject) => {\n if (foundAttribute === null) {\n foundAttribute =\n formObject.attributeCollection.all.find((item) => findMethod(item)) ||\n null;\n }\n });\n\n return foundAttribute;\n }\n}\n\nexport default FormModel;\n"],"mappings":"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"}
|