@beinformed/ui 1.25.0 → 1.25.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useAuthentication.js +1 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +0 -1
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModels.js +1 -1
- package/esm/hooks/useModels.js.map +1 -1
- package/esm/hooks/useModularUI.js +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +4 -1
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useRouter.js +1 -1
- package/esm/hooks/useRouter.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js +5 -2
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.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/base/ResourceModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.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/links/LinkModel.js +3 -1
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/parameter/Parameter.js +1 -1
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/types.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react-client/client.js +1 -1
- package/esm/react-client/client.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 +4 -2
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/serverUtil.js +18 -9
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/ThemeProvider.js +1 -1
- package/esm/react-theme/ThemeProvider.js.map +1 -1
- package/esm/react-theme/createTheme.js +8 -3
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/utils/contrast.js +3 -1
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js +3 -1
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js +9 -3
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/redux/_i18n/{actions.js → I18nActions.js} +1 -1
- package/esm/redux/_i18n/I18nActions.js.map +1 -0
- package/esm/redux/_i18n/{reducer.js → I18nReducer.js} +1 -1
- package/esm/redux/_i18n/I18nReducer.js.map +1 -0
- package/esm/redux/_i18n/index.js +2 -2
- package/esm/redux/_i18n/index.js.map +1 -1
- package/esm/redux/_modularui/{actions.js → ModularUIActions.js} +1 -1
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -0
- package/esm/redux/_modularui/{connector.js → ModularUIConnector.js} +5 -5
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -0
- package/esm/redux/_modularui/{middleware.js → ModularUIMiddleware.js} +2 -2
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -0
- package/esm/redux/_modularui/{reducer.js → ModularUIReducer.js} +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -0
- package/esm/redux/_modularui/{selectors.js → ModularUISelectors.js} +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -0
- package/esm/redux/_modularui/{modularuiUtils.js → ModularUIUtils.js} +1 -1
- package/esm/redux/_modularui/{modularuiUtils.js.map → ModularUIUtils.js.map} +1 -1
- package/esm/redux/_modularui/index.js +6 -6
- package/esm/redux/_modularui/index.js.map +1 -1
- package/esm/redux/_modularui/types.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js +1 -1
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/_router/{actions.js → RouterActions.js} +1 -1
- package/esm/redux/_router/RouterActions.js.map +1 -0
- package/esm/redux/_router/{connectors.js → RouterConnectors.js} +2 -2
- package/esm/redux/_router/RouterConnectors.js.map +1 -0
- package/esm/redux/_router/{middleware.js → RouterMiddleware.js} +1 -1
- package/esm/redux/_router/RouterMiddleware.js.map +1 -0
- package/esm/redux/_router/{reducer.js → RouterReducer.js} +1 -1
- package/esm/redux/_router/RouterReducer.js.map +1 -0
- package/esm/redux/_router/index.js +4 -4
- package/esm/redux/_router/index.js.map +1 -1
- package/esm/redux/actions/Application.js +2 -2
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Authorization.js +3 -3
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Error.js +1 -1
- package/esm/redux/actions/Error.js.map +1 -1
- package/esm/redux/actions/Form.js +2 -2
- package/esm/redux/actions/Form.js.map +1 -1
- package/esm/redux/actions/FormAttributeSet.js +1 -1
- package/esm/redux/actions/FormAttributeSet.js.map +1 -1
- package/esm/redux/actions/FormAttributeSetRepeatable.js +1 -1
- package/esm/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js +1 -1
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormAutosubmit.js +1 -1
- package/esm/redux/actions/FormAutosubmit.js.map +1 -1
- package/esm/redux/actions/FormValidations.js +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 +1 -1
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/actions/SignIn.js +1 -1
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/actions/SignOut.js +1 -1
- package/esm/redux/actions/SignOut.js.map +1 -1
- package/esm/redux/connectors/Application.js +1 -1
- package/esm/redux/connectors/Application.js.map +1 -1
- package/esm/redux/connectors/Breadcrumb.js +1 -1
- package/esm/redux/connectors/Breadcrumb.js.map +1 -1
- package/esm/redux/connectors/CaseView.js +1 -1
- package/esm/redux/connectors/CaseView.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js +1 -1
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentBrowser.js +1 -1
- package/esm/redux/connectors/ContentBrowser.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js +1 -1
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js +1 -1
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js +1 -1
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/redux/connectors/ListDetail.js +1 -1
- package/esm/redux/connectors/ListDetail.js.map +1 -1
- package/esm/redux/connectors/ModelCatalog.js +1 -1
- package/esm/redux/connectors/ModelCatalog.js.map +1 -1
- package/esm/redux/connectors/PanelRenderer.js +1 -1
- package/esm/redux/connectors/PanelRenderer.js.map +1 -1
- package/esm/redux/connectors/Preferences.js.map +1 -1
- package/esm/redux/connectors/QuickSearch.js +2 -2
- package/esm/redux/connectors/QuickSearch.js.map +1 -1
- package/esm/redux/connectors/SignIn.js +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 +1 -1
- package/esm/redux/connectors/Tab.js.map +1 -1
- package/esm/redux/reducers/ModalsReducer.js.map +1 -1
- package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/esm/redux/reducers/createReducer.js +3 -3
- package/esm/redux/reducers/createReducer.js.map +1 -1
- package/esm/redux/store/configureStore.js +4 -4
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js +3 -2
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/objects.js +4 -3
- package/esm/utils/helpers/objects.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js.flow +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/Settings.js.flow +1 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/useAuthentication.js +3 -3
- package/lib/hooks/useAuthentication.js.flow +1 -1
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModelCatalog.js.flow +2 -1
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModels.js +2 -2
- package/lib/hooks/useModels.js.flow +1 -1
- package/lib/hooks/useModels.js.map +1 -1
- package/lib/hooks/useModularUI.js +3 -3
- package/lib/hooks/useModularUI.js.flow +4 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +4 -1
- package/lib/hooks/useModularUIBasic.js.flow +1 -1
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useRouter.js +6 -6
- package/lib/hooks/useRouter.js.flow +7 -1
- package/lib/hooks/useRouter.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js.flow +8 -6
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.flow +18 -16
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +5 -2
- package/lib/models/attributes/NumberAttributeModel.js.flow +7 -3
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/_createAttribute.js.flow +1 -1
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.flow +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.flow +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/base/ResourceModel.js.flow +1 -1
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js.flow +4 -1
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js.flow +1 -1
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/form/FormModel.js.flow +2 -2
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/links/LinkModel.js +3 -1
- package/lib/models/links/LinkModel.js.flow +4 -2
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/links/normalizeLinkJSON.js.flow +1 -1
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/models/list/ListModel.js.flow +1 -1
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/parameter/Parameter.js +1 -1
- package/lib/models/parameter/Parameter.js.flow +1 -1
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/types.js.flow +6 -6
- package/lib/models/types.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js.flow +6 -6
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react-client/client.js +2 -2
- package/lib/react-client/client.js.flow +8 -8
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/rehydrate.js.flow +2 -2
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/react-server/createSSRComplete.js.flow +3 -3
- package/lib/react-server/createSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js +4 -2
- package/lib/react-server/renderSSRComplete.js.flow +2 -2
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/serverUtil.js +19 -10
- package/lib/react-server/serverUtil.js.flow +20 -11
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/ThemeProvider.js +1 -1
- package/lib/react-theme/ThemeProvider.js.flow +1 -1
- package/lib/react-theme/ThemeProvider.js.map +1 -1
- package/lib/react-theme/__tests__/ThemeProvider.spec.js.flow +2 -0
- package/lib/react-theme/__tests__/createTheme.spec.js.flow +3 -0
- package/lib/react-theme/createTheme.js +8 -3
- package/lib/react-theme/createTheme.js.flow +7 -5
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/utils/contrast.js +3 -1
- package/lib/react-theme/utils/contrast.js.flow +1 -1
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js +3 -1
- package/lib/react-theme/utils/corners.js.flow +1 -1
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js +9 -3
- package/lib/react-theme/utils/spacers.js.flow +3 -3
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/redux/_i18n/{actions.js → I18nActions.js} +1 -1
- package/lib/redux/_i18n/{actions.js.flow → I18nActions.js.flow} +0 -0
- package/lib/redux/_i18n/I18nActions.js.map +1 -0
- package/lib/redux/_i18n/{reducer.js → I18nReducer.js} +1 -1
- package/{src/redux/_i18n/reducer.js → lib/redux/_i18n/I18nReducer.js.flow} +5 -2
- package/lib/redux/_i18n/I18nReducer.js.map +1 -0
- package/lib/redux/_i18n/__tests__/actions.spec.js.flow +1 -1
- package/lib/redux/_i18n/__tests__/reducer.spec.js.flow +1 -1
- package/lib/redux/_i18n/index.js +8 -8
- package/lib/redux/_i18n/index.js.flow +2 -2
- package/lib/redux/_i18n/index.js.map +1 -1
- package/lib/redux/_modularui/{actions.js → ModularUIActions.js} +1 -1
- package/lib/redux/_modularui/{actions.js.flow → ModularUIActions.js.flow} +1 -1
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -0
- package/lib/redux/_modularui/{connector.js → ModularUIConnector.js} +11 -11
- package/{src/redux/_modularui/connector.js → lib/redux/_modularui/ModularUIConnector.js.flow} +8 -4
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -0
- package/lib/redux/_modularui/{middleware.js → ModularUIMiddleware.js} +4 -4
- package/lib/redux/_modularui/{middleware.js.flow → ModularUIMiddleware.js.flow} +20 -5
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -0
- package/lib/redux/_modularui/{reducer.js → ModularUIReducer.js} +1 -1
- package/lib/redux/_modularui/{reducer.js.flow → ModularUIReducer.js.flow} +12 -5
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -0
- package/lib/redux/_modularui/{selectors.js → ModularUISelectors.js} +1 -1
- package/lib/redux/_modularui/{selectors.js.flow → ModularUISelectors.js.flow} +3 -2
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -0
- package/lib/redux/_modularui/{modularuiUtils.js → ModularUIUtils.js} +1 -1
- package/lib/redux/_modularui/{modularuiUtils.js.flow → ModularUIUtils.js.flow} +0 -0
- package/lib/redux/_modularui/{modularuiUtils.js.map → 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 +2 -2
- package/lib/redux/_modularui/__tests__/selectors.spec.js.flow +1 -1
- package/lib/redux/_modularui/index.js +22 -22
- package/lib/redux/_modularui/index.js.flow +6 -6
- package/lib/redux/_modularui/index.js.map +1 -1
- package/lib/redux/_modularui/types.js.flow +10 -4
- package/lib/redux/_modularui/types.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js +2 -2
- package/lib/redux/_modularui/withModularUI.js.flow +1 -1
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/_router/{actions.js → RouterActions.js} +1 -1
- package/lib/redux/_router/{actions.js.flow → RouterActions.js.flow} +0 -0
- package/lib/redux/_router/RouterActions.js.map +1 -0
- package/lib/redux/_router/{connectors.js → RouterConnectors.js} +7 -7
- package/lib/redux/_router/{connectors.js.flow → RouterConnectors.js.flow} +1 -1
- package/lib/redux/_router/RouterConnectors.js.map +1 -0
- package/lib/redux/_router/{middleware.js → RouterMiddleware.js} +1 -1
- package/lib/redux/_router/{middleware.js.flow → RouterMiddleware.js.flow} +0 -0
- package/lib/redux/_router/RouterMiddleware.js.map +1 -0
- package/lib/redux/_router/{reducer.js → RouterReducer.js} +1 -1
- package/lib/redux/_router/{reducer.js.flow → RouterReducer.js.flow} +0 -0
- package/lib/redux/_router/RouterReducer.js.map +1 -0
- package/lib/redux/_router/__tests__/actions.spec.js.flow +1 -1
- package/lib/redux/_router/__tests__/middleware.spec.js.flow +2 -2
- package/lib/redux/_router/__tests__/reducer.spec.js.flow +1 -1
- package/lib/redux/_router/index.js +16 -16
- package/lib/redux/_router/index.js.flow +4 -4
- package/lib/redux/_router/index.js.map +1 -1
- package/lib/redux/actions/Application.js +5 -5
- package/lib/redux/actions/Application.js.flow +5 -2
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Authorization.js +6 -6
- package/lib/redux/actions/Authorization.js.flow +3 -3
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Error.js +2 -2
- package/lib/redux/actions/Error.js.flow +2 -2
- package/lib/redux/actions/Error.js.map +1 -1
- package/lib/redux/actions/Form.js +5 -5
- package/lib/redux/actions/Form.js.flow +2 -2
- package/lib/redux/actions/Form.js.map +1 -1
- package/lib/redux/actions/FormAttributeSet.js +2 -2
- package/lib/redux/actions/FormAttributeSet.js.flow +1 -1
- package/lib/redux/actions/FormAttributeSet.js.map +1 -1
- package/lib/redux/actions/FormAttributeSetRepeatable.js +4 -4
- package/lib/redux/actions/FormAttributeSetRepeatable.js.flow +1 -1
- package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js +2 -2
- package/lib/redux/actions/FormAutosave.js.flow +1 -1
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormAutosubmit.js +2 -2
- package/lib/redux/actions/FormAutosubmit.js.flow +1 -1
- package/lib/redux/actions/FormAutosubmit.js.map +1 -1
- package/lib/redux/actions/FormValidations.js +2 -2
- package/lib/redux/actions/FormValidations.js.flow +5 -3
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/lib/redux/actions/Notification.js.flow +1 -1
- package/lib/redux/actions/Notification.js.map +1 -1
- package/lib/redux/actions/Preferences.js +1 -1
- package/lib/redux/actions/Preferences.js.flow +3 -3
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/actions/SignIn.js +2 -2
- package/lib/redux/actions/SignIn.js.flow +1 -1
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/SignOut.js +2 -2
- package/lib/redux/actions/SignOut.js.flow +1 -1
- package/lib/redux/actions/SignOut.js.map +1 -1
- package/lib/redux/connectors/Application.js +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 +2 -2
- package/lib/redux/connectors/Breadcrumb.js.flow +1 -1
- package/lib/redux/connectors/Breadcrumb.js.map +1 -1
- package/lib/redux/connectors/CaseView.js +2 -2
- package/lib/redux/connectors/CaseView.js.flow +1 -1
- package/lib/redux/connectors/CaseView.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js +2 -2
- package/lib/redux/connectors/ConceptDetail.js.flow +1 -1
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentBrowser.js +2 -2
- package/lib/redux/connectors/ContentBrowser.js.flow +1 -1
- package/lib/redux/connectors/ContentBrowser.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js +2 -2
- package/lib/redux/connectors/ContentDetail.js.flow +1 -1
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js +2 -2
- package/lib/redux/connectors/ContentDetailSection.js.flow +1 -1
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js +2 -2
- package/lib/redux/connectors/Form.js.flow +1 -1
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/ListDetail.js +2 -2
- package/lib/redux/connectors/ListDetail.js.flow +1 -1
- package/lib/redux/connectors/ListDetail.js.map +1 -1
- package/lib/redux/connectors/ModelCatalog.js +2 -2
- package/lib/redux/connectors/ModelCatalog.js.flow +1 -1
- package/lib/redux/connectors/ModelCatalog.js.map +1 -1
- package/lib/redux/connectors/PanelRenderer.js +2 -2
- package/lib/redux/connectors/PanelRenderer.js.flow +1 -1
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/redux/connectors/Preferences.js.flow +5 -2
- package/lib/redux/connectors/Preferences.js.map +1 -1
- package/lib/redux/connectors/QuickSearch.js +4 -4
- package/lib/redux/connectors/QuickSearch.js.flow +2 -2
- package/lib/redux/connectors/QuickSearch.js.map +1 -1
- package/lib/redux/connectors/SignIn.js +2 -2
- 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 +2 -2
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/connectors/Tab.js +2 -2
- package/lib/redux/connectors/Tab.js.flow +1 -1
- package/lib/redux/connectors/Tab.js.map +1 -1
- package/lib/redux/reducers/ModalsReducer.js.flow +2 -2
- package/lib/redux/reducers/ModalsReducer.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/createReducer.js +6 -6
- package/lib/redux/reducers/createReducer.js.flow +3 -3
- package/lib/redux/reducers/createReducer.js.map +1 -1
- package/lib/redux/store/configureStore.js +5 -5
- package/lib/redux/store/configureStore.js.flow +4 -4
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +5 -3
- package/lib/utils/fetch/universalFetch.js.flow +8 -6
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.flow +21 -21
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/objects.js.flow +5 -3
- package/lib/utils/helpers/objects.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js.flow +1 -1
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/number/parseNumbers.js.flow +8 -2
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +8 -8
- package/src/builder/mergeLayoutHintConfigurations.js +1 -1
- package/src/constants/Settings.js +1 -1
- package/src/hooks/useAuthentication.js +1 -1
- package/src/hooks/useModelCatalog.js +2 -1
- package/src/hooks/useModels.js +1 -1
- package/src/hooks/useModularUI.js +4 -1
- package/src/hooks/useModularUIBasic.js +1 -1
- package/src/hooks/useRouter.js +7 -1
- package/src/models/attributes/AttributeCollection.js +8 -6
- package/src/models/attributes/AttributeModel.js +18 -16
- package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
- package/src/models/attributes/NumberAttributeModel.js +7 -3
- package/src/models/attributes/_createAttribute.js +1 -1
- package/src/models/attributes/layouthint-rules/BaseLayoutHintRule.js +1 -1
- package/src/models/attributes/layouthint-rules/DependentAttribute.js +1 -1
- package/src/models/base/ResourceModel.js +1 -1
- package/src/models/content/ContentTOCModel.js +4 -1
- package/src/models/filters/FilterCollection.js +1 -1
- package/src/models/form/FormModel.js +2 -2
- package/src/models/links/LinkModel.js +4 -2
- package/src/models/links/normalizeLinkJSON.js +1 -1
- package/src/models/list/ListModel.js +1 -1
- package/src/models/parameter/Parameter.js +1 -1
- package/src/models/types.js +6 -6
- package/src/modularui/ModularUIRequest.js +6 -6
- package/src/react-client/client.js +8 -8
- package/src/react-client/rehydrate.js +2 -2
- package/src/react-server/createSSRComplete.js +3 -3
- package/src/react-server/renderSSRComplete.js +2 -2
- package/src/react-server/serverUtil.js +20 -11
- package/src/react-theme/ThemeProvider.js +1 -1
- package/src/react-theme/__tests__/ThemeProvider.spec.js +2 -0
- package/src/react-theme/__tests__/createTheme.spec.js +3 -0
- package/src/react-theme/createTheme.js +7 -5
- package/src/react-theme/utils/contrast.js +1 -1
- package/src/react-theme/utils/corners.js +1 -1
- package/src/react-theme/utils/spacers.js +3 -3
- package/src/redux/_i18n/{actions.js → I18nActions.js} +0 -0
- package/{lib/redux/_i18n/reducer.js.flow → src/redux/_i18n/I18nReducer.js} +5 -2
- package/src/redux/_i18n/__tests__/actions.spec.js +1 -1
- package/src/redux/_i18n/__tests__/reducer.spec.js +1 -1
- package/src/redux/_i18n/index.js +2 -2
- package/src/redux/_modularui/{actions.js → ModularUIActions.js} +1 -1
- package/{lib/redux/_modularui/connector.js.flow → src/redux/_modularui/ModularUIConnector.js} +8 -4
- package/src/redux/_modularui/{middleware.js → ModularUIMiddleware.js} +20 -5
- package/src/redux/_modularui/{reducer.js → ModularUIReducer.js} +12 -5
- package/src/redux/_modularui/{selectors.js → ModularUISelectors.js} +3 -2
- package/src/redux/_modularui/{modularuiUtils.js → ModularUIUtils.js} +0 -0
- package/src/redux/_modularui/__tests__/actions.spec.js +1 -1
- package/src/redux/_modularui/__tests__/reducer.spec.js +2 -2
- package/src/redux/_modularui/__tests__/selectors.spec.js +1 -1
- package/src/redux/_modularui/index.js +6 -6
- package/src/redux/_modularui/types.js +10 -4
- package/src/redux/_modularui/withModularUI.js +1 -1
- package/src/redux/_router/{actions.js → RouterActions.js} +0 -0
- package/src/redux/_router/{connectors.js → RouterConnectors.js} +1 -1
- package/src/redux/_router/{middleware.js → RouterMiddleware.js} +0 -0
- package/src/redux/_router/{reducer.js → RouterReducer.js} +0 -0
- package/src/redux/_router/__tests__/actions.spec.js +1 -1
- package/src/redux/_router/__tests__/middleware.spec.js +2 -2
- package/src/redux/_router/__tests__/reducer.spec.js +1 -1
- package/src/redux/_router/index.js +4 -4
- package/src/redux/actions/Application.js +5 -2
- package/src/redux/actions/Authorization.js +3 -3
- package/src/redux/actions/Error.js +2 -2
- package/src/redux/actions/Form.js +2 -2
- package/src/redux/actions/FormAttributeSet.js +1 -1
- package/src/redux/actions/FormAttributeSetRepeatable.js +1 -1
- package/src/redux/actions/FormAutosave.js +1 -1
- package/src/redux/actions/FormAutosubmit.js +1 -1
- package/src/redux/actions/FormValidations.js +5 -3
- package/src/redux/actions/Notification.js +1 -1
- package/src/redux/actions/Preferences.js +3 -3
- package/src/redux/actions/SignIn.js +1 -1
- package/src/redux/actions/SignOut.js +1 -1
- 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 +1 -1
- package/src/redux/connectors/Form.js +1 -1
- package/src/redux/connectors/ListDetail.js +1 -1
- package/src/redux/connectors/ModelCatalog.js +1 -1
- package/src/redux/connectors/PanelRenderer.js +1 -1
- package/src/redux/connectors/Preferences.js +5 -2
- package/src/redux/connectors/QuickSearch.js +2 -2
- package/src/redux/connectors/SignIn.js +1 -1
- package/src/redux/connectors/SignOut.js +2 -2
- package/src/redux/connectors/Tab.js +1 -1
- package/src/redux/reducers/ModalsReducer.js +2 -2
- package/src/redux/reducers/ProgressIndicatorReducer.js +1 -1
- package/src/redux/reducers/createReducer.js +3 -3
- package/src/redux/store/configureStore.js +4 -4
- package/src/utils/fetch/universalFetch.js +8 -6
- package/src/utils/fetch/xhr.js +21 -21
- package/src/utils/helpers/objects.js +5 -3
- package/src/utils/helpers/sanitizeHtml.js +1 -1
- package/src/utils/number/parseNumbers.js +8 -2
- package/types/models/concepts/ConceptDetailModel.d.ts +3 -3
- package/types/models/concepts/ConceptRelationModel.d.ts +2 -1
- package/types/models/types.d.ts +17 -3
- package/types/redux/_modularui/types.d.ts +3 -1
- package/types/utils/fetch/universalFetch.d.ts +3 -3
- package/types/utils/helpers/objects.d.ts +10 -2
- package/esm/redux/_i18n/actions.js.map +0 -1
- package/esm/redux/_i18n/reducer.js.map +0 -1
- package/esm/redux/_modularui/actions.js.map +0 -1
- package/esm/redux/_modularui/connector.js.map +0 -1
- package/esm/redux/_modularui/middleware.js.map +0 -1
- package/esm/redux/_modularui/reducer.js.map +0 -1
- package/esm/redux/_modularui/selectors.js.map +0 -1
- package/esm/redux/_router/actions.js.map +0 -1
- package/esm/redux/_router/connectors.js.map +0 -1
- package/esm/redux/_router/middleware.js.map +0 -1
- package/esm/redux/_router/reducer.js.map +0 -1
- package/lib/redux/_i18n/actions.js.map +0 -1
- package/lib/redux/_i18n/reducer.js.map +0 -1
- package/lib/redux/_modularui/actions.js.map +0 -1
- package/lib/redux/_modularui/connector.js.map +0 -1
- package/lib/redux/_modularui/middleware.js.map +0 -1
- package/lib/redux/_modularui/reducer.js.map +0 -1
- package/lib/redux/_modularui/selectors.js.map +0 -1
- package/lib/redux/_router/actions.js.map +0 -1
- package/lib/redux/_router/connectors.js.map +0 -1
- package/lib/redux/_router/middleware.js.map +0 -1
- package/lib/redux/_router/reducer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeAttributeChildCollection.js","names":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","create","data","contributions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","collection","contribution","key","attributeData","attr","attributeContribution","type","replace","attribute","dynamicschema","readonly","parentKey","childData","getInputValue","child","inputvalue","join","validate","every","isValid","errorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","first","value","formdata","readonlyvalue","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CompositeAttributeChildCollection.js","names":["ResourceCollection","ErrorCollection","createAttribute","CompositeAttributeChildCollection","create","data","contributions","Array","isArray","children","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","collection","contribution","key","attributeData","attr","attributeContribution","type","replace","attribute","dynamicschema","readonly","parentKey","childData","getInputValue","child","inputvalue","join","validate","every","isValid","errorCollection","hasServerErrors","serverErrors","length","some","hasErrors","hasItems","reset","forEach","initvalue","first","value","formdata","readonlyvalue","updateValidations","prefix","errors","attributeErrors","error","anchor","elementid","hasValue"],"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children: { [string]: any } = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"mappings":"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"}
|
|
@@ -68,8 +68,11 @@ export default class NumberAttributeModel extends AttributeModel {
|
|
|
68
68
|
* Gets the maximum digits based on the format
|
|
69
69
|
*/
|
|
70
70
|
get maxDigits() {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
const format = this.format;
|
|
72
|
+
if (format != null && _includesInstanceProperty(format).call(format, ".")) {
|
|
73
|
+
return format.split(".")[1].length;
|
|
74
|
+
}
|
|
75
|
+
return 0;
|
|
73
76
|
}
|
|
74
77
|
|
|
75
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberAttributeModel.js","names":["isPlainObject","formatValue","parseNumberToString","parseToNumber","AttributeModel","ConstraintCollection","CASEVIEW_LINK","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","ATTRIBUTE_WIDTH","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","NumberAttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","split","length","unit","placeholder","operator","addConstraints","constraints","add","reset","inputvalue","toString","readonlyvalue","getInputValue","_inputvalue","validate","outputNumber","isNaN","getValue","_value","Number","update","updateLastModification","isHidden","layouthint","has","readonlyWidth","SMALL"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n
|
|
1
|
+
{"version":3,"file":"NumberAttributeModel.js","names":["isPlainObject","formatValue","parseNumberToString","parseToNumber","AttributeModel","ConstraintCollection","CASEVIEW_LINK","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","ATTRIBUTE_WIDTH","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","NumberAttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","split","length","unit","placeholder","operator","addConstraints","constraints","add","reset","inputvalue","toString","readonlyvalue","getInputValue","_inputvalue","validate","outputNumber","isNaN","getValue","_value","Number","update","updateLastModification","isHidden","layouthint","has","readonlyWidth","SMALL"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format\n )\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_createAttribute.js","names":["cloneDeep","has","isPlainObject","LayoutHintRuleCollection","CaptchaAttributeModel","ChoiceAttributeModel","DatetimeAttributeModel","HelptextAttributeModel","LabelAttributeModel","MemoAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","CompositeAttributeModel","StringAttributeModel","UploadAttributeModel","XMLAttributeModel","BooleanAttributeModel","AttributeDataHelper","getChildrenKeys","children","child","childKey","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","model","isApplicableModel","updateContributions","data","Array","isArray","updateData","newData","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","getData","attribute","setLayoutHintRules"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions)\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const newData = cloneDeep(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":";;;AACA,OAAOA,SAAS,MAAM,kBAAkB;AAExC,SAASC,GAAG,EAAEC,aAAa,QAAQ,6BAA6B;AAEhE,OAAOC,wBAAwB,MAAM,6CAA6C;AAElF,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,uBAAuB,MAAM,2BAA2B;AAC/D,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,qBAAqB,MAAM,yBAAyB;AAE3D,OAAOC,mBAAmB,MAAM,uBAAuB;AAIvD;AACA;AACA;AACA,MAAMC,eAAe,GAAIC,QAAuB,IAAoB;EAClE,IAAIA,QAAQ,EAAE;IACZ,OAAO,qBAAAA,QAAQ,OAARA,QAAQ,EAAMC,KAAK,IAAK;MAC7B,MAAM,CAACC,QAAQ,CAAC,GAAG,aAAYD,KAAK,CAAC;MACrC,MAAME,WAAW,GACfF,KAAK,CAACC,QAAQ,CAAC,CAACE,IAAI,KAAK,OAAO,IAChCH,KAAK,CAACC,QAAQ,CAAC,CAACE,IAAI,KAAK,WAAW;MAEtC,OAAO;QACLC,GAAG,EAAEH,QAAQ;QACbI,eAAe,EAAEL,KAAK,CAACC,QAAQ,CAAC,EAAEI,eAAe,IAAIC,SAAS;QAC9DP,QAAQ,EAAEG,WAAW,GAAGJ,eAAe,CAACE,KAAK,CAACC,QAAQ,CAAC,EAAEF,QAAQ,CAAC,GAAG;MACvE,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA,MAAMQ,iBAAiB,GAAIC,
|
|
1
|
+
{"version":3,"file":"_createAttribute.js","names":["cloneDeep","has","isPlainObject","LayoutHintRuleCollection","CaptchaAttributeModel","ChoiceAttributeModel","DatetimeAttributeModel","HelptextAttributeModel","LabelAttributeModel","MemoAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","CompositeAttributeModel","StringAttributeModel","UploadAttributeModel","XMLAttributeModel","BooleanAttributeModel","AttributeDataHelper","getChildrenKeys","children","child","childKey","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","model","isApplicableModel","updateContributions","data","Array","isArray","updateData","newData","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","getData","attribute","setLayoutHintRules"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions: Object): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions)\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const newData = cloneDeep(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLayoutHintRule.js","names":["IllegalStateException","BaseLayoutHintRule","isApplicableForAttribute","attribute","isApplicableForHint","hint","initAttribute","initHint","process","attributes"],"sources":["../../../../src/models/attributes/layouthint-rules/BaseLayoutHintRule.js"],"sourcesContent":["// @flow\n/* eslint-disable no-unused-vars */\n\nimport { IllegalStateException } from \"../../../exceptions\";\n\nimport type { ILayoutHintRule, AttributeType } from \"../../types\";\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\n/**\n * Abstract class for layout hint rules\n * @abstract\n */\nclass BaseLayoutHintRule implements ILayoutHintRule {\n /**\n * Indicates if the rule implements the isApplicableForHint method\n * @type {boolean}\n * @default false\n */\n static checkHintApplicability: boolean = false;\n\n /**\n * Indicates if the rule instance is applicable for a specific attribute<br>\n * @default true\n */\n static isApplicableForAttribute(attribute: AttributeType): boolean {\n return true;\n }\n\n /**\n * Indicates if the rule instance is applicable for a specific hint<br>\n * Is required when checkHintApplicability is true\n * @abstract\n */\n static isApplicableForHint(hint: string): boolean {\n throw new IllegalStateException(\n `Missing isApplicableForHint implementation on layout hint rule`\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute is true and checkHintApplicability is false\n * @abstract\n */\n static initAttribute(attribute: AttributeType): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initAttribute implementation on layout hint rule`\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute and isApplicableForHint are both true,\n * it receives the hint. Allows a rule to be instantiated multiple times for an attribute,\n * but once for each hint entry\n * @abstract\n */\n static initHint(hint: string): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initHint implementation on layout hint rule`\n );\n }\n\n /**\n * Abstract method, implements process of layout hint rule,\n * use this to enhance the applicable attribute or the attribute collection\n * @abstract\n */\n process(attribute: AttributeModel, attributes: AttributeCollection) {\n throw new IllegalStateException(\n `Missing process implementation on layout hint rule`\n );\n }\n}\n\nexport default BaseLayoutHintRule;\n"],"mappings":";AACA;AAEA,SAASA,qBAAqB,QAAQ,qBAAqB;AAM3D;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAA4B;EAClD;AACF;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;EACE,OAAOC,wBAAwB,CAACC,SAAwB,EAAW;IACjE,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmB,CAACC,IAAY,EAAW;IAChD,MAAM,IAAIL,qBAAqB,CAC5B,gEAA+D,CACjE;EACH;;EAEA;AACF;AACA;AACA;EACE,OAAOM,aAAa,CAACH,SAAwB,EAAmB;IAC9D,MAAM,IAAIH,qBAAqB,CAC5B,0DAAyD,CAC3D;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOO,QAAQ,CAACF,IAAY,EAAmB;IAC7C,MAAM,IAAIL,qBAAqB,CAC5B,qDAAoD,CACtD;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEQ,OAAO,CAACL,SAAyB,EAAEM,UAA+B,
|
|
1
|
+
{"version":3,"file":"BaseLayoutHintRule.js","names":["IllegalStateException","BaseLayoutHintRule","isApplicableForAttribute","attribute","isApplicableForHint","hint","initAttribute","initHint","process","attributes"],"sources":["../../../../src/models/attributes/layouthint-rules/BaseLayoutHintRule.js"],"sourcesContent":["// @flow\n/* eslint-disable no-unused-vars */\n\nimport { IllegalStateException } from \"../../../exceptions\";\n\nimport type { ILayoutHintRule, AttributeType } from \"../../types\";\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\n/**\n * Abstract class for layout hint rules\n * @abstract\n */\nclass BaseLayoutHintRule implements ILayoutHintRule {\n /**\n * Indicates if the rule implements the isApplicableForHint method\n * @type {boolean}\n * @default false\n */\n static checkHintApplicability: boolean = false;\n\n /**\n * Indicates if the rule instance is applicable for a specific attribute<br>\n * @default true\n */\n static isApplicableForAttribute(attribute: AttributeType): boolean {\n return true;\n }\n\n /**\n * Indicates if the rule instance is applicable for a specific hint<br>\n * Is required when checkHintApplicability is true\n * @abstract\n */\n static isApplicableForHint(hint: string): boolean {\n throw new IllegalStateException(\n `Missing isApplicableForHint implementation on layout hint rule`\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute is true and checkHintApplicability is false\n * @abstract\n */\n static initAttribute(attribute: AttributeType): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initAttribute implementation on layout hint rule`\n );\n }\n\n /**\n * Initialize the rule when isApplicableForAttribute and isApplicableForHint are both true,\n * it receives the hint. Allows a rule to be instantiated multiple times for an attribute,\n * but once for each hint entry\n * @abstract\n */\n static initHint(hint: string): ILayoutHintRule {\n throw new IllegalStateException(\n `Missing initHint implementation on layout hint rule`\n );\n }\n\n /**\n * Abstract method, implements process of layout hint rule,\n * use this to enhance the applicable attribute or the attribute collection\n * @abstract\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n throw new IllegalStateException(\n `Missing process implementation on layout hint rule`\n );\n }\n}\n\nexport default BaseLayoutHintRule;\n"],"mappings":";AACA;AAEA,SAASA,qBAAqB,QAAQ,qBAAqB;AAM3D;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAA4B;EAClD;AACF;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;EACE,OAAOC,wBAAwB,CAACC,SAAwB,EAAW;IACjE,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmB,CAACC,IAAY,EAAW;IAChD,MAAM,IAAIL,qBAAqB,CAC5B,gEAA+D,CACjE;EACH;;EAEA;AACF;AACA;AACA;EACE,OAAOM,aAAa,CAACH,SAAwB,EAAmB;IAC9D,MAAM,IAAIH,qBAAqB,CAC5B,0DAAyD,CAC3D;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOO,QAAQ,CAACF,IAAY,EAAmB;IAC7C,MAAM,IAAIL,qBAAqB,CAC5B,qDAAoD,CACtD;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEQ,OAAO,CAACL,SAAyB,EAAEM,UAA+B,EAAQ;IACxE,MAAM,IAAIT,qBAAqB,CAC5B,oDAAmD,CACrD;EACH;AACF;AAAC,gBA3DKC,kBAAkB,4BAMmB,KAAK;AAuDhD,eAAeA,kBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependentAttribute.js","names":["BaseLayoutHintRule","DEPENDENT_ATTRIBUTE_CONTROL","DEPENDENT_ATTRIBUTE","ChoiceAttributeModel","BooleanAttributeModel","ConfigurationException","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","isApplicableForHint","hint","regex","RegExp","test","getRuleInstance","initHint","rule","OPERATORS","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","_action","_control","_operator","_options","split","option","processEqualsOptions","controlAttribute","every","selected","processIncludesOptions","some","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\"\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\"\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\"\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option)\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\"\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option)\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\"\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection) {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DependentAttribute.js","names":["BaseLayoutHintRule","DEPENDENT_ATTRIBUTE_CONTROL","DEPENDENT_ATTRIBUTE","ChoiceAttributeModel","BooleanAttributeModel","ConfigurationException","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","isApplicableForHint","hint","regex","RegExp","test","getRuleInstance","initHint","rule","OPERATORS","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","_action","_control","_operator","_options","split","option","processEqualsOptions","controlAttribute","every","selected","processIncludesOptions","some","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\"\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\"\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\"\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option)\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\"\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option)\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\"\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceModel.js","names":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","constructor","modularuiResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","isApplicableModel","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","Array","isArray","self","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","flattenModels","setChildModels","dehydrate","childModel"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Base model\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\"\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (!models) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate()\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ResourceModel.js","names":["ModularUIResponse","BaseModel","LinkCollection","IllegalArgumentException","IllegalStateException","ResourceModel","constructor","modularuiResponse","data","contributions","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","isApplicableModel","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","Array","isArray","self","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","flattenModels","setChildModels","dehydrate","childModel"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\n\n/**\n * Base model\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(modularuiResponse.data, modularuiResponse.contributions);\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\"\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links,\n {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n }\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(models: Array<ModularUIModel>): this {\n const flattenModels = [].concat(...models);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(models: Array<ModularUIModel>): void {\n if (!models) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate()\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTOCModel.js","names":["has","ResourceModel","FilterCollection","ContentLinkModel","ContentTypeModel","Href","TIMEVERSION_FILTER_NAME","getItems","items","entryDate","item","link","section","_id","ContentTOCModel","type","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","model","label","getData","selfhref","href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","category","_contentType","_filterCollection","key","timeversionFilter","getFilterByAttributeKey","attribute"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (items
|
|
1
|
+
{"version":3,"file":"ContentTOCModel.js","names":["has","ResourceModel","FilterCollection","ContentLinkModel","ContentTypeModel","Href","TIMEVERSION_FILTER_NAME","getItems","items","entryDate","item","link","section","_id","ContentTOCModel","type","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","model","label","getData","selfhref","href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","category","_contentType","_filterCollection","key","timeversionFilter","getFilterByAttributeKey","attribute"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items ? getItems(this.data.items, this.entryDate) : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category)\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(this.data.filter, {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n });\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterCollection.js","names":["BaseCollection","RangeFilterModel","AssignmentFilterModel","FilterModel","ConceptIndexFilterModel","CompositeAttributeModel","FilterCollection","constructor","data","contributions","Array","isArray","collection","filterContribution","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","filterContext","context","id","type","reset","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","update","value","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport FilterModel from \"../filters/FilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(data: Object = {}, contributions: Object = {}) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions);\n }\n\n return new FilterModel(data, contributions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string) {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FilterCollection.js","names":["BaseCollection","RangeFilterModel","AssignmentFilterModel","FilterModel","ConceptIndexFilterModel","CompositeAttributeModel","FilterCollection","constructor","data","contributions","Array","isArray","collection","filterContribution","filterKey","filterData","filterContributionByKey","filter","createFilter","dynamicschema","listkey","contexts","contextid","filterContext","context","id","type","reset","checkRangeFilterByAttributeKey","key","rangeAttribute","attribute","start","end","checkAssignmentFilterByAttributeKey","user","assignmenttype","getFilterByAttributeKey","update","value","filterToUpdate","parentKey","Error","newFilter","clone","name","isValid","every","hasActiveFilters","some","isActive"],"sources":["../../../src/models/filters/FilterCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\n\nimport RangeFilterModel from \"../filters/RangeFilterModel\";\nimport AssignmentFilterModel from \"../filters/AssignmentFilterModel\";\nimport FilterModel from \"../filters/FilterModel\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { AttributeType, FilterType } from \"../types\";\n\n/**\n * Contains a collection of filters\n */\nexport default class FilterCollection extends BaseCollection<FilterType> {\n /**\n * Construct a collection of filters\n */\n constructor(data: Object = {}, contributions: Object = {}) {\n super();\n\n if (data && contributions && Array.isArray(contributions.filter)) {\n this.collection = contributions.filter\n .filter((filterContribution) => Object.keys(filterContribution)[0])\n .map((filterContribution) => {\n const [filterKey] = Object.keys(filterContribution);\n const filterData = data[filterKey];\n const filterContributionByKey = filterContribution[filterKey];\n\n const filter = this.createFilter(\n filterKey,\n {\n ...filterData,\n dynamicschema: contributions.dynamicschema,\n },\n filterContributionByKey\n );\n\n if (contributions.listkey) {\n filter.listkey = contributions.listkey;\n }\n\n if (contributions.contexts && filterContributionByKey.contextid) {\n const filterContext = contributions.contexts.find(\n (context) => context.id === filterContributionByKey.contextid\n );\n if (filterContext) {\n filter.context = filterContext;\n }\n }\n\n return filter;\n });\n }\n }\n\n /**\n */\n createFilter(\n filterKey: string,\n data: Object,\n contributions: Object\n ): FilterType {\n const type = contributions.type || \"stringfilter\";\n if (type === \"choicefilter\" && filterKey === \"index\") {\n return new ConceptIndexFilterModel(data, contributions);\n }\n\n if (type.includes(\"rangefilter\")) {\n return new RangeFilterModel(data, contributions);\n }\n\n if (type === \"assignmentfilter\") {\n return new AssignmentFilterModel(data, contributions);\n }\n\n return new FilterModel(data, contributions);\n }\n\n /**\n * Call the reset function on all filters\n *\n * @see {FilterType#reset()}\n */\n reset(): FilterCollection {\n this.collection = this.collection.map((filter) => filter.reset());\n\n return this;\n }\n\n /**\n * Checks if range attribute key equals key\n */\n checkRangeFilterByAttributeKey(\n filter: RangeFilterModel,\n key: string\n ): boolean {\n const rangeAttribute = filter.attribute;\n\n if (rangeAttribute instanceof CompositeAttributeModel) {\n return (\n rangeAttribute.key === key ||\n (rangeAttribute.start && rangeAttribute.start.key === key) ||\n (rangeAttribute.end && rangeAttribute.end.key === key)\n );\n }\n\n return false;\n }\n\n /**\n * Check if assignment filter attribute matches key\n */\n checkAssignmentFilterByAttributeKey(\n filter: AssignmentFilterModel,\n key: string\n ): boolean {\n return (\n filter.key === key ||\n filter.user?.key === key ||\n filter.assignmenttype?.key === key\n );\n }\n\n /**\n * Getting the filter by name\n */\n getFilterByAttributeKey(key: string): FilterType | null {\n return (\n this.find((filter) => {\n if (filter instanceof RangeFilterModel) {\n return this.checkRangeFilterByAttributeKey(filter, key);\n }\n\n if (filter instanceof AssignmentFilterModel) {\n return this.checkAssignmentFilterByAttributeKey(filter, key);\n }\n\n return filter.attribute?.key === key;\n }) || null\n );\n }\n\n /**\n * Update Filter by input name and value\n */\n update(attribute: AttributeType, value: string): void {\n const filterToUpdate = attribute.parentKey\n ? this.getFilterByAttributeKey(attribute.parentKey)\n : this.getFilterByAttributeKey(attribute.key);\n\n if (!filterToUpdate) {\n throw new Error(`Can not find filter by attribute key: ${attribute.key}`);\n }\n\n const newFilter = filterToUpdate.clone();\n newFilter.update(attribute, value);\n\n this.collection = this.collection.map((filter) => {\n if (filter.name === newFilter.name) {\n return newFilter;\n }\n\n return filter;\n });\n }\n\n /**\n * Retrieve if all filters are valid\n */\n get isValid(): boolean {\n return this.collection.every((filter) => filter.isValid);\n }\n\n /**\n * Indicates if an active filter is present in the collection\n */\n hasActiveFilters(): boolean {\n return this.collection.some((filter) => filter.isActive());\n }\n}\n"],"mappings":"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"}
|