@beinformed/ui 1.24.1-beta.8 → 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 +12 -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 +9 -9
- 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
|
@@ -37,7 +37,7 @@ const getSize = (
|
|
|
37
37
|
*/
|
|
38
38
|
const spacer =
|
|
39
39
|
(ratio: number = 1): ((UtilThemeProps) => string) =>
|
|
40
|
-
({ theme = {} }: UtilThemeProps) =>
|
|
40
|
+
({ theme = { settings: {} } }: UtilThemeProps) =>
|
|
41
41
|
getSize(theme, ratio);
|
|
42
42
|
|
|
43
43
|
/*
|
|
@@ -49,7 +49,7 @@ const spacer =
|
|
|
49
49
|
*/
|
|
50
50
|
const spacers =
|
|
51
51
|
(...ratios: Array<number | "auto">): ((UtilThemeProps) => string) =>
|
|
52
|
-
({ theme = {} }: UtilThemeProps) =>
|
|
52
|
+
({ theme = { settings: {} } }: UtilThemeProps) =>
|
|
53
53
|
ratios.map((ratio) => getSize(theme, ratio)).join(" ");
|
|
54
54
|
|
|
55
55
|
/*
|
|
@@ -59,7 +59,7 @@ const spacers =
|
|
|
59
59
|
*/
|
|
60
60
|
const gutter =
|
|
61
61
|
(ratio: number = 1): ((UtilThemeProps) => string) =>
|
|
62
|
-
({ theme = {} }: UtilThemeProps) =>
|
|
62
|
+
({ theme = { settings: {} } }: UtilThemeProps) =>
|
|
63
63
|
getSize(theme, ratio, "GRID_GUTTER", "px");
|
|
64
64
|
|
|
65
65
|
export { spacer, spacers, gutter };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spacers.js","names":["getSize","theme","ratio","path","unit","size","Big","times","IllegalStateException","IllegalArgumentException","spacer","spacers","ratios","join","gutter"],"sources":["../../../src/react-theme/utils/spacers.js"],"sourcesContent":["// @flow\nimport Big from \"big.js\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\nimport IllegalArgumentException from \"../../exceptions/IllegalArgumentException\";\nimport IllegalStateException from \"../../exceptions/IllegalStateException\";\n\n/**\n */\nconst getSize = (\n theme: Theme,\n ratio: number | string = 1,\n path: string = \"SPACER\",\n unit: string = \"rem\"\n) => {\n if (typeof ratio === \"string\") {\n return ratio;\n }\n\n if (typeof ratio === \"number\") {\n if (typeof theme[path] === \"number\") {\n const size = Big(ratio).times(theme[path]);\n return `${size}${unit}`;\n }\n throw new IllegalStateException(`Size ${path} must be a number`);\n }\n\n throw new IllegalArgumentException(\n `Ratio ${JSON.stringify(ratio)} must be a string or number`\n );\n};\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n */\n/**\n */\nconst spacer =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio);\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n * Ratio's can be given clockwise with shorthand,\n * spacers(0.5, 1) with a spacer of 0.8 will give \"0.4rem 1rem\";\n */\n/**\n */\nconst spacers =\n (...ratios: Array<number | \"auto\">): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n ratios.map((ratio) => getSize(theme, ratio)).join(\" \");\n\n/*\n * Render a gutter based on GUTTER property\n */\n/**\n */\nconst gutter =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = {} }: UtilThemeProps) =>\n getSize(theme, ratio, \"GRID_GUTTER\", \"px\");\n\nexport { spacer, spacers, gutter };\n"],"mappings":";;;;;;;;;AACA;AAGA;AACA;AAEA;AACA;AACA,MAAMA,OAAO,GAAG,UACdC,KAAY,EAIT;EAAA,IAHHC,KAAsB,uEAAG,CAAC;EAAA,IAC1BC,IAAY,uEAAG,QAAQ;EAAA,IACvBC,IAAY,uEAAG,KAAK;EAEpB,IAAI,OAAOF,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,IAAI,OAAOD,KAAK,CAACE,IAAI,CAAC,KAAK,QAAQ,EAAE;MACnC,MAAME,IAAI,GAAG,IAAAC,YAAG,EAACJ,KAAK,CAAC,CAACK,KAAK,CAACN,KAAK,CAACE,IAAI,CAAC,CAAC;MAC1C,OAAQ,GAAEE,IAAK,GAAED,IAAK,EAAC;IACzB;IACA,MAAM,IAAII,8BAAqB,CAAE,QAAOL,IAAK,mBAAkB,CAAC;EAClE;EAEA,MAAM,IAAIM,iCAAwB,CAC/B,SAAQ,wBAAeP,KAAK,CAAE,6BAA4B,CAC5D;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMQ,MAAM,GACV;EAAA,IAACR,KAAa,uEAAG,CAAC;EAAA,OAClB;IAAA,IAAC;MAAED,KAAK,GAAG,CAAC;IAAkB,CAAC;IAAA,
|
|
1
|
+
{"version":3,"file":"spacers.js","names":["getSize","theme","ratio","path","unit","size","Big","times","IllegalStateException","IllegalArgumentException","spacer","settings","spacers","ratios","join","gutter"],"sources":["../../../src/react-theme/utils/spacers.js"],"sourcesContent":["// @flow\nimport Big from \"big.js\";\n\nimport type { Theme, UtilThemeProps } from \"../types\";\nimport IllegalArgumentException from \"../../exceptions/IllegalArgumentException\";\nimport IllegalStateException from \"../../exceptions/IllegalStateException\";\n\n/**\n */\nconst getSize = (\n theme: Theme,\n ratio: number | string = 1,\n path: string = \"SPACER\",\n unit: string = \"rem\"\n) => {\n if (typeof ratio === \"string\") {\n return ratio;\n }\n\n if (typeof ratio === \"number\") {\n if (typeof theme[path] === \"number\") {\n const size = Big(ratio).times(theme[path]);\n return `${size}${unit}`;\n }\n throw new IllegalStateException(`Size ${path} must be a number`);\n }\n\n throw new IllegalArgumentException(\n `Ratio ${JSON.stringify(ratio)} must be a string or number`\n );\n};\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n */\n/**\n */\nconst spacer =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = { settings: {} } }: UtilThemeProps) =>\n getSize(theme, ratio);\n\n/*\n * Render spacers based on the given ratio * theme SPACER\n * Ratio's can be given clockwise with shorthand,\n * spacers(0.5, 1) with a spacer of 0.8 will give \"0.4rem 1rem\";\n */\n/**\n */\nconst spacers =\n (...ratios: Array<number | \"auto\">): ((UtilThemeProps) => string) =>\n ({ theme = { settings: {} } }: UtilThemeProps) =>\n ratios.map((ratio) => getSize(theme, ratio)).join(\" \");\n\n/*\n * Render a gutter based on GUTTER property\n */\n/**\n */\nconst gutter =\n (ratio: number = 1): ((UtilThemeProps) => string) =>\n ({ theme = { settings: {} } }: UtilThemeProps) =>\n getSize(theme, ratio, \"GRID_GUTTER\", \"px\");\n\nexport { spacer, spacers, gutter };\n"],"mappings":";;;;;;;;;AACA;AAGA;AACA;AAEA;AACA;AACA,MAAMA,OAAO,GAAG,UACdC,KAAY,EAIT;EAAA,IAHHC,KAAsB,uEAAG,CAAC;EAAA,IAC1BC,IAAY,uEAAG,QAAQ;EAAA,IACvBC,IAAY,uEAAG,KAAK;EAEpB,IAAI,OAAOF,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,IAAI,OAAOD,KAAK,CAACE,IAAI,CAAC,KAAK,QAAQ,EAAE;MACnC,MAAME,IAAI,GAAG,IAAAC,YAAG,EAACJ,KAAK,CAAC,CAACK,KAAK,CAACN,KAAK,CAACE,IAAI,CAAC,CAAC;MAC1C,OAAQ,GAAEE,IAAK,GAAED,IAAK,EAAC;IACzB;IACA,MAAM,IAAII,8BAAqB,CAAE,QAAOL,IAAK,mBAAkB,CAAC;EAClE;EAEA,MAAM,IAAIM,iCAAwB,CAC/B,SAAQ,wBAAeP,KAAK,CAAE,6BAA4B,CAC5D;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMQ,MAAM,GACV;EAAA,IAACR,KAAa,uEAAG,CAAC;EAAA,OAClB;IAAA,IAAC;MAAED,KAAK,GAAG;QAAEU,QAAQ,EAAE,CAAC;MAAE;IAAkB,CAAC;IAAA,OAC3CX,OAAO,CAACC,KAAK,EAAEC,KAAK,CAAC;EAAA;AAAA;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAEA,MAAMU,OAAO,GACX;EAAA,kCAAIC,MAAM;IAANA,MAAM;EAAA;EAAA,OACV;IAAA,IAAC;MAAEZ,KAAK,GAAG;QAAEU,QAAQ,EAAE,CAAC;MAAE;IAAkB,CAAC;IAAA,OAC3C,kBAAAE,MAAM,OAANA,MAAM,EAAMX,KAAK,IAAKF,OAAO,CAACC,KAAK,EAAEC,KAAK,CAAC,CAAC,CAACY,IAAI,CAAC,GAAG,CAAC;EAAA;AAAA;;AAE1D;AACA;AACA;AACA;AACA;AADA;AAEA,MAAMC,MAAM,GACV;EAAA,IAACb,KAAa,uEAAG,CAAC;EAAA,OAClB;IAAA,IAAC;MAAED,KAAK,GAAG;QAAEU,QAAQ,EAAE,CAAC;MAAE;IAAkB,CAAC;IAAA,OAC3CX,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;EAAA;AAAA;AAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"I18nActions.js","names":["receiveLocale","locale","type","payload","updateLocale","dispatch","startProgress","finishProgress","setLocales","locales"],"sources":["../../../src/redux/_i18n/I18nActions.js"],"sourcesContent":["// @flow\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport type Locales from \"../../i18n/Locales\";\nimport type { SetLocalesAction, UpdateLocaleAction } from \"./types\";\nimport type { ThunkAction } from \"../types\";\n\n/**\n * Update current locale\n */\nexport const receiveLocale = (locale: string): UpdateLocaleAction => ({\n type: \"UPDATE_LOCALE\",\n payload: locale,\n});\n\n/**\n * Change locale of application and redirect\n */\nexport const updateLocale =\n (locale: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n dispatch(receiveLocale(locale));\n\n dispatch(finishProgress());\n };\n\n/**\n */\nexport const setLocales = (\n locales: Locales,\n locale: string\n): SetLocalesAction => ({\n type: \"SET_LOCALES\",\n payload: {\n locales,\n locale,\n },\n});\n"],"mappings":";;;;;;AACA;AAMA;AACA;AACA;AACO,MAAMA,aAAa,GAAIC,MAAc,KAA0B;EACpEC,IAAI,EAAE,eAAe;EACrBC,OAAO,EAAEF;AACX,CAAC,CAAC;;AAEF;AACA;AACA;AAFA;AAGO,MAAMG,YAAY,GACtBH,MAAc,IACdI,QAAQ,IAAK;EACZA,QAAQ,CAAC,IAAAC,gCAAa,GAAE,CAAC;EACzBD,QAAQ,CAACL,aAAa,CAACC,MAAM,CAAC,CAAC;EAE/BI,QAAQ,CAAC,IAAAE,iCAAc,GAAE,CAAC;AAC5B,CAAC;;AAEH;AACA;AADA;AAEO,MAAMC,UAAU,GAAG,CACxBC,OAAgB,EAChBR,MAAc,MACQ;EACtBC,IAAI,EAAE,aAAa;EACnBC,OAAO,EAAE;IACPM,OAAO;IACPR;EACF;AACF,CAAC,CAAC;AAAC"}
|
|
@@ -10,7 +10,7 @@ import type { ReduxAction } from "../types";
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
*/
|
|
13
|
-
const updateLocale = (state, locale) => {
|
|
13
|
+
const updateLocale = (state: I18nState, locale: string) => {
|
|
14
14
|
// set locale in cookie
|
|
15
15
|
setCookie("locale", locale);
|
|
16
16
|
|
|
@@ -25,7 +25,10 @@ const updateLocale = (state, locale) => {
|
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
*/
|
|
28
|
-
const setLocales = (
|
|
28
|
+
const setLocales = (
|
|
29
|
+
state: I18nState,
|
|
30
|
+
{ locale, locales }: { locale: string, locales: Locales }
|
|
31
|
+
) => {
|
|
29
32
|
// set locale in cookie
|
|
30
33
|
setCookie("locale", locale);
|
|
31
34
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"I18nReducer.js","names":["updateLocale","state","locale","setCookie","Cache","clear","setLocales","locales","initialState","Locales","I18nReducer","action","type","payload"],"sources":["../../../src/redux/_i18n/I18nReducer.js"],"sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport { setCookie } from \"../../utils/browser/Cookies\";\n\nimport Locales from \"../../i18n/Locales\";\n\nimport type { Reducer } from \"redux\";\nimport type { I18nState } from \"./types\";\nimport type { ReduxAction } from \"../types\";\n\n/**\n */\nconst updateLocale = (state: I18nState, locale: string) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n // clear cache because of cached contributions\n Cache.clear();\n\n return {\n ...state,\n locale,\n };\n};\n\n/**\n */\nconst setLocales = (\n state: I18nState,\n { locale, locales }: { locale: string, locales: Locales }\n) => {\n // set locale in cookie\n setCookie(\"locale\", locale);\n\n if (locale) {\n return {\n ...state,\n locales,\n locale,\n };\n }\n\n return {\n ...state,\n locales,\n };\n};\n\n// REDUCER\nconst initialState: I18nState = {\n locales: new Locales(),\n locale: \"en\",\n};\n\n/**\n * Form reducer\n */\nexport const I18nReducer: Reducer<I18nState, ReduxAction> = (\n state = initialState,\n action = void 0\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"SET_LOCALES\":\n return setLocales(state, action.payload);\n\n case \"UPDATE_LOCALE\":\n return updateLocale(state, action.payload);\n\n default:\n return state;\n }\n};\n"],"mappings":";;;;;;;AACA;AACA;AAEA;AAMA;AACA;AACA,MAAMA,YAAY,GAAG,CAACC,KAAgB,EAAEC,MAAc,KAAK;EACzD;EACA,IAAAC,kBAAS,EAAC,QAAQ,EAAED,MAAM,CAAC;;EAE3B;EACAE,cAAK,CAACC,KAAK,EAAE;EAEb,OAAO;IACL,GAAGJ,KAAK;IACRC;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA,MAAMI,UAAU,GAAG,CACjBL,KAAgB,WAEb;EAAA,IADH;IAAEC,MAAM;IAAEK;EAA8C,CAAC;EAEzD;EACA,IAAAJ,kBAAS,EAAC,QAAQ,EAAED,MAAM,CAAC;EAE3B,IAAIA,MAAM,EAAE;IACV,OAAO;MACL,GAAGD,KAAK;MACRM,OAAO;MACPL;IACF,CAAC;EACH;EAEA,OAAO;IACL,GAAGD,KAAK;IACRM;EACF,CAAC;AACH,CAAC;;AAED;AACA,MAAMC,YAAuB,GAAG;EAC9BD,OAAO,EAAE,IAAIE,gBAAO,EAAE;EACtBP,MAAM,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACO,MAAMQ,WAA4C,GAAG,YAGvD;EAAA,IAFHT,KAAK,uEAAGO,YAAY;EAAA,IACpBG,MAAM,uEAAG,KAAK,CAAC;EAEf,IAAI,CAACA,MAAM,EAAE;IACX,OAAOV,KAAK;EACd;EAEA,QAAQU,MAAM,CAACC,IAAI;IACjB,KAAK,aAAa;MAChB,OAAON,UAAU,CAACL,KAAK,EAAEU,MAAM,CAACE,OAAO,CAAC;IAE1C,KAAK,eAAe;MAClB,OAAOb,YAAY,CAACC,KAAK,EAAEU,MAAM,CAACE,OAAO,CAAC;IAE5C;MACE,OAAOZ,KAAK;EAAC;AAEnB,CAAC;AAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import configureMockStore from "redux-mock-store";
|
|
2
2
|
import thunk from "redux-thunk";
|
|
3
3
|
|
|
4
|
-
import { receiveLocale, updateLocale } from "../
|
|
4
|
+
import { receiveLocale, updateLocale } from "../I18nActions";
|
|
5
5
|
|
|
6
6
|
const middlewares = [thunk];
|
|
7
7
|
const mockStore = configureMockStore(middlewares);
|
package/lib/redux/_i18n/index.js
CHANGED
|
@@ -4,25 +4,25 @@ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
var
|
|
8
|
-
_Object$keys(
|
|
7
|
+
var _I18nReducer = require("./I18nReducer");
|
|
8
|
+
_Object$keys(_I18nReducer).forEach(function (key) {
|
|
9
9
|
if (key === "default" || key === "__esModule") return;
|
|
10
|
-
if (key in exports && exports[key] ===
|
|
10
|
+
if (key in exports && exports[key] === _I18nReducer[key]) return;
|
|
11
11
|
Object.defineProperty(exports, key, {
|
|
12
12
|
enumerable: true,
|
|
13
13
|
get: function () {
|
|
14
|
-
return
|
|
14
|
+
return _I18nReducer[key];
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
|
-
var
|
|
19
|
-
_Object$keys(
|
|
18
|
+
var _I18nActions = require("./I18nActions");
|
|
19
|
+
_Object$keys(_I18nActions).forEach(function (key) {
|
|
20
20
|
if (key === "default" || key === "__esModule") return;
|
|
21
|
-
if (key in exports && exports[key] ===
|
|
21
|
+
if (key in exports && exports[key] === _I18nActions[key]) return;
|
|
22
22
|
Object.defineProperty(exports, key, {
|
|
23
23
|
enumerable: true,
|
|
24
24
|
get: function () {
|
|
25
|
-
return
|
|
25
|
+
return _I18nActions[key];
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/redux/_i18n/index.js"],"sourcesContent":["// @flow\nexport * from \"./
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/redux/_i18n/index.js"],"sourcesContent":["// @flow\nexport * from \"./I18nReducer\";\n\nexport * from \"./I18nActions\";\n\nexport type * from \"./types\";\n"],"mappings":";;;;;;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAEA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularUIActions.js","names":["setModel","key","model","connectKey","type","payload","updateModel","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","modelToUpdate","clonedModel","clone","update","Error","loadModel","href","options","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","LOADING","startProgress","loadModelPromise","resolve","then","response","FINISHED","finishProgress","catch","handleError","reloadModel","selfhref","isReload"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type { RequestBaseOptions } from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n modelToUpdate: ?ModularUIModel\n): UpdateModelAction | SetModelAction => {\n if (modelToUpdate) {\n // $FlowFixMe[prop-missing]\n if (typeof modelToUpdate[\"update\"] === \"function\") {\n const clonedModel = modelToUpdate.clone();\n clonedModel.update(model);\n\n return updateModel(clonedModel);\n }\n\n throw new Error(\n `loadModel action: updateModel is set as option for ${key}, but the model is missing an update methode`\n );\n }\n\n return setModel(key, model);\n};\n\n/**\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n href: href instanceof Href ? href : new Href(href),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateModel),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key);\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (errorResponse.isResourceNotFoundAfterReload) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then((response) => {\n if (response?.type === \"FINISH_PROGRESS\") {\n dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));\n }\n\n return dispatch(finishProgress());\n })\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestBaseOptions\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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"}
|
|
@@ -8,16 +8,16 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactRedux = require("react-redux");
|
|
10
10
|
var _reactRouter = require("react-router");
|
|
11
|
-
var
|
|
11
|
+
var _ModularUIActions = require("./ModularUIActions");
|
|
12
12
|
var _Href = _interopRequireDefault(require("../../models/href/Href"));
|
|
13
13
|
var _utils = require("../../react/utils");
|
|
14
|
-
var
|
|
14
|
+
var _ModularUIUtils = require("./ModularUIUtils");
|
|
15
15
|
var _useModularUI = require("../../hooks/useModularUI");
|
|
16
16
|
var _useI18n = require("../../hooks/useI18n");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
18
|
/**
|
|
19
19
|
*/
|
|
20
|
-
const
|
|
20
|
+
const modularUIConnector = function (name, resource) {
|
|
21
21
|
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
22
22
|
propName: "data",
|
|
23
23
|
removeOnUnmount: false
|
|
@@ -31,7 +31,7 @@ const connector = function (name, resource) {
|
|
|
31
31
|
const WrappedComponent = props => {
|
|
32
32
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
33
33
|
const location = (0, _reactRouter.useLocation)();
|
|
34
|
-
const url = (0,
|
|
34
|
+
const url = (0, _ModularUIUtils.useUrl)(resource, {
|
|
35
35
|
location,
|
|
36
36
|
...props
|
|
37
37
|
});
|
|
@@ -43,21 +43,21 @@ const connector = function (name, resource) {
|
|
|
43
43
|
|
|
44
44
|
// handle manual reload of model
|
|
45
45
|
const handleManualReload = (model, reloadOptions) => {
|
|
46
|
-
dispatch((0,
|
|
46
|
+
dispatch((0, _ModularUIActions.reloadModel)(model, reloadOptions));
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
// Provide connected models with a fetchModularUI method to be able
|
|
50
50
|
// to run the loadModularUI action from a handler / callback in the component
|
|
51
51
|
const handleFetch = (href, fetchOptions) => {
|
|
52
|
-
dispatch((0,
|
|
52
|
+
dispatch((0, _ModularUIActions.loadModularUI)(modelKey, href, fetchOptions));
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// Check if current model needs a reload
|
|
56
56
|
const reload = location?.state?.reload ?? 0;
|
|
57
|
-
const doReload = (0,
|
|
57
|
+
const doReload = (0, _ModularUIUtils.useReload)(modelEntry, reload);
|
|
58
58
|
(0, _react.useEffect)(() => {
|
|
59
59
|
if (doReload) {
|
|
60
|
-
dispatch((0,
|
|
60
|
+
dispatch((0, _ModularUIActions.loadModularUI)(modelKey, url, {
|
|
61
61
|
...otherOptions,
|
|
62
62
|
isReload: true
|
|
63
63
|
}));
|
|
@@ -68,7 +68,7 @@ const connector = function (name, resource) {
|
|
|
68
68
|
(0, _react.useEffect)(() => {
|
|
69
69
|
return () => {
|
|
70
70
|
if (removeOnUnmount) {
|
|
71
|
-
dispatch((0,
|
|
71
|
+
dispatch((0, _ModularUIActions.removeModelByKey)(modelKey));
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
}, [dispatch, modelKey]);
|
|
@@ -95,6 +95,6 @@ const connector = function (name, resource) {
|
|
|
95
95
|
return WrappedComponent;
|
|
96
96
|
};
|
|
97
97
|
};
|
|
98
|
-
var _default =
|
|
98
|
+
var _default = modularUIConnector;
|
|
99
99
|
exports.default = _default;
|
|
100
|
-
//# sourceMappingURL=
|
|
100
|
+
//# sourceMappingURL=ModularUIConnector.js.map
|
package/{src/redux/_modularui/connector.js → lib/redux/_modularui/ModularUIConnector.js.flow}
RENAMED
|
@@ -3,12 +3,16 @@ import { useEffect } from "react";
|
|
|
3
3
|
import { useDispatch } from "react-redux";
|
|
4
4
|
import { useLocation } from "react-router";
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
loadModularUI,
|
|
8
|
+
reloadModel,
|
|
9
|
+
removeModelByKey,
|
|
10
|
+
} from "./ModularUIActions";
|
|
7
11
|
|
|
8
12
|
import Href from "../../models/href/Href";
|
|
9
13
|
import { getDisplayName } from "../../react/utils";
|
|
10
14
|
|
|
11
|
-
import { useUrl, useReload } from "./
|
|
15
|
+
import { useUrl, useReload } from "./ModularUIUtils";
|
|
12
16
|
import { useModularUI } from "../../hooks/useModularUI";
|
|
13
17
|
import { useLocale } from "../../hooks/useI18n";
|
|
14
18
|
|
|
@@ -31,7 +35,7 @@ export type InjectedProps = {
|
|
|
31
35
|
|
|
32
36
|
/**
|
|
33
37
|
*/
|
|
34
|
-
const
|
|
38
|
+
const modularUIConnector = (
|
|
35
39
|
name: string,
|
|
36
40
|
resource: string | Function,
|
|
37
41
|
options: ModularUIOptions = { propName: "data", removeOnUnmount: false }
|
|
@@ -114,4 +118,4 @@ const connector = (
|
|
|
114
118
|
};
|
|
115
119
|
};
|
|
116
120
|
|
|
117
|
-
export default
|
|
121
|
+
export default modularUIConnector;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularUIConnector.js","names":["modularUIConnector","name","resource","options","propName","removeOnUnmount","otherOptions","Component","WrappedComponent","props","dispatch","useDispatch","location","useLocation","url","useUrl","displayName","getDisplayName","contextId","modelEntry","useModularUI","modelKey","model","connectKey","handleManualReload","reloadOptions","reloadModel","handleFetch","href","fetchOptions","loadModularUI","reload","state","doReload","useReload","useEffect","isReload","removeModelByKey","locale","useLocale","newProps","status","lastModification","hasModel","Boolean","fetchModularUI"],"sources":["../../../src/redux/_modularui/ModularUIConnector.js"],"sourcesContent":["// @flow\nimport { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport {\n loadModularUI,\n reloadModel,\n removeModelByKey,\n} from \"./ModularUIActions\";\n\nimport Href from \"../../models/href/Href\";\nimport { getDisplayName } from \"../../react/utils\";\n\nimport { useUrl, useReload } from \"./ModularUIUtils\";\nimport { useModularUI } from \"../../hooks/useModularUI\";\nimport { useLocale } from \"../../hooks/useI18n\";\n\nimport type { ComponentType, Node } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { ModularUIOptions } from \"./types\";\n\nexport type InjectedProps = {\n +modelKey: string,\n +location: Location,\n +status: string | null,\n +lastModification: number | null,\n +hasModel: boolean,\n +locale: string,\n +fetchModularUI: (href: string | Href, fetchOptions: Object) => void,\n +reloadModel: (model: ModularUIModel, options: Object) => void,\n +data?: ?ModularUIModel,\n};\n\n/**\n */\nconst modularUIConnector = (\n name: string,\n resource: string | Function,\n options: ModularUIOptions = { propName: \"data\", removeOnUnmount: false }\n): ((Component: ComponentType<any>) => (props: any) => Node) => {\n const {\n propName = \"data\",\n removeOnUnmount = false,\n ...otherOptions\n } = options;\n\n return (Component: ComponentType<any>) => {\n const WrappedComponent = (props: any) => {\n const dispatch = useDispatch();\n const location = useLocation();\n\n const url = useUrl(resource, { location, ...props });\n const displayName = getDisplayName(Component, name, props.contextId);\n\n // Load the model through the useModUI hook\n const modelEntry = useModularUI(displayName, url, otherOptions);\n const modelKey = modelEntry?.model?.connectKey;\n\n // handle manual reload of model\n const handleManualReload = (\n model: ModularUIModel,\n reloadOptions?: Object\n ) => {\n dispatch(reloadModel(model, reloadOptions));\n };\n\n // Provide connected models with a fetchModularUI method to be able\n // to run the loadModularUI action from a handler / callback in the component\n const handleFetch = (href: string | Href, fetchOptions: Object) => {\n dispatch(loadModularUI(modelKey, href, fetchOptions));\n };\n\n // Check if current model needs a reload\n const reload = location?.state?.reload ?? 0;\n const doReload = useReload(modelEntry, reload);\n useEffect(() => {\n if (doReload) {\n dispatch(\n loadModularUI(modelKey, url, { ...otherOptions, isReload: true })\n );\n }\n }, [dispatch, doReload, url, modelKey]);\n\n // Remove model when hoc unloads\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(modelKey));\n }\n };\n }, [dispatch, modelKey]);\n\n // Create new properties object to inject modularui properties to own props\n const locale = useLocale();\n const newProps: InjectedProps = {\n modelKey,\n [propName]: modelEntry ? modelEntry.model : null,\n location,\n status: modelEntry ? modelEntry.status : null,\n lastModification: modelEntry ? modelEntry.lastModification : null,\n hasModel: Boolean(modelEntry),\n locale,\n fetchModularUI: handleFetch,\n reloadModel: handleManualReload,\n };\n\n return <Component {...props} {...newProps} />;\n };\n\n WrappedComponent.displayName = `BI.modularui(${getDisplayName(\n WrappedComponent,\n name\n )}`;\n\n return WrappedComponent;\n };\n};\n\nexport default modularUIConnector;\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.modularUIMiddleware = void 0;
|
|
8
8
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
9
9
|
var _ModularUIRequest = _interopRequireDefault(require("../../modularui/ModularUIRequest"));
|
|
10
10
|
var _Constants = require("../../constants/Constants");
|
|
@@ -80,7 +80,7 @@ const handleFetch = (action, locale, dispatch, next) => {
|
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
*/
|
|
83
|
-
const
|
|
83
|
+
const modularUIMiddleware = api => next => action => {
|
|
84
84
|
if (action.type === "MODULARUI/FETCH") {
|
|
85
85
|
return handleFetch(
|
|
86
86
|
// $FlowExpectedError[incompatible-exact]
|
|
@@ -88,5 +88,5 @@ const modularuiMiddleware = api => next => action => {
|
|
|
88
88
|
}
|
|
89
89
|
return next(action);
|
|
90
90
|
};
|
|
91
|
-
exports.
|
|
92
|
-
//# sourceMappingURL=
|
|
91
|
+
exports.modularUIMiddleware = modularUIMiddleware;
|
|
92
|
+
//# sourceMappingURL=ModularUIMiddleware.js.map
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
} from "../types";
|
|
16
16
|
import type { ModularUIModel } from "../../models/types";
|
|
17
17
|
import type Href from "../../models/href/Href";
|
|
18
|
-
import type { ModularUIAction } from "./types";
|
|
18
|
+
import type { ModularUIAction, SuccessAction, ErrorAction } from "./types";
|
|
19
19
|
|
|
20
20
|
type RequestOptions = {
|
|
21
21
|
href: Href,
|
|
@@ -48,7 +48,12 @@ const createRequest = (modularui: RequestOptions) => {
|
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
*/
|
|
51
|
-
const responseHandler = (
|
|
51
|
+
const responseHandler = (
|
|
52
|
+
next: Dispatch,
|
|
53
|
+
dispatch: Dispatch,
|
|
54
|
+
successAction: SuccessAction,
|
|
55
|
+
model: ModularUIModel
|
|
56
|
+
) => {
|
|
52
57
|
if (successAction) {
|
|
53
58
|
const successResult = successAction(model);
|
|
54
59
|
|
|
@@ -76,7 +81,12 @@ const responseHandler = (next, dispatch, successAction, model) => {
|
|
|
76
81
|
|
|
77
82
|
/**
|
|
78
83
|
*/
|
|
79
|
-
const errorHandler = (
|
|
84
|
+
const errorHandler = (
|
|
85
|
+
next: Dispatch,
|
|
86
|
+
dispatch: Dispatch,
|
|
87
|
+
errorAction: ?ErrorAction,
|
|
88
|
+
err: any
|
|
89
|
+
) => {
|
|
80
90
|
dispatch(finishProgress());
|
|
81
91
|
|
|
82
92
|
if (errorAction) {
|
|
@@ -94,7 +104,12 @@ const errorHandler = (next, dispatch, errorAction, err) => {
|
|
|
94
104
|
|
|
95
105
|
/**
|
|
96
106
|
*/
|
|
97
|
-
const handleFetch = (
|
|
107
|
+
const handleFetch = (
|
|
108
|
+
action: ModularUIAction,
|
|
109
|
+
locale: string,
|
|
110
|
+
dispatch: Dispatch,
|
|
111
|
+
next: Dispatch
|
|
112
|
+
) => {
|
|
98
113
|
dispatch(startProgress());
|
|
99
114
|
|
|
100
115
|
const { successAction, errorAction, ...requestOptions } = action.payload;
|
|
@@ -110,7 +125,7 @@ const handleFetch = (action: ModularUIAction, locale, dispatch, next) => {
|
|
|
110
125
|
|
|
111
126
|
/**
|
|
112
127
|
*/
|
|
113
|
-
export const
|
|
128
|
+
export const modularUIMiddleware: Middleware<
|
|
114
129
|
ReduxState,
|
|
115
130
|
ReduxAction,
|
|
116
131
|
Dispatch
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularUIMiddleware.js","names":["createRequest","modularui","request","ModularUIRequest","href","method","HTTP_METHODS","GET","data","locale","childmodels","isReload","targetModel","responseHandler","next","dispatch","successAction","model","successResult","then","result","catch","error","handleError","Error","finishProgress","errorHandler","errorAction","err","errorResult","handleFetch","action","startProgress","requestOptions","payload","modularuiRequest","fetch","modularUIMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\n\nimport { handleError } from \"../actions/Error\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\n\ntype RequestOptions = {\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n data?: string | { [key: string]: string },\n locale: string,\n childmodels?: boolean,\n targetModel?: Class<ModularUIModel>,\n isReload?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions) => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n });\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch\n) => {\n dispatch(startProgress());\n\n const { successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next\n );\n }\n\n return next(action);\n };\n"],"mappings":"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"}
|
|
@@ -6,10 +6,14 @@ import { ApplicationModel } from "../../models";
|
|
|
6
6
|
import type { Reducer } from "redux";
|
|
7
7
|
import type { ReduxAction } from "../types";
|
|
8
8
|
import type { ModularUIState } from "./types";
|
|
9
|
+
import type { ModularUIModel } from "../../models";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
*/
|
|
12
|
-
const updateStatus = (
|
|
13
|
+
const updateStatus = (
|
|
14
|
+
state: ModularUIState,
|
|
15
|
+
{ key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> }
|
|
16
|
+
) => {
|
|
13
17
|
// model should always be available when status is not loading
|
|
14
18
|
if (status !== MODULARUI_STATUS.LOADING && !state[key]) {
|
|
15
19
|
return state;
|
|
@@ -27,7 +31,10 @@ const updateStatus = (state, { key, status }) => {
|
|
|
27
31
|
|
|
28
32
|
/**
|
|
29
33
|
*/
|
|
30
|
-
const setModel = (
|
|
34
|
+
const setModel = (
|
|
35
|
+
state: ModularUIState,
|
|
36
|
+
{ key, model }: { key: string, model: ?ModularUIModel }
|
|
37
|
+
) => {
|
|
31
38
|
if (!state[key]) {
|
|
32
39
|
return state;
|
|
33
40
|
}
|
|
@@ -48,7 +55,7 @@ const setModel = (state, { key, model }) => {
|
|
|
48
55
|
|
|
49
56
|
/**
|
|
50
57
|
*/
|
|
51
|
-
const getModelKey = (state, model) =>
|
|
58
|
+
const getModelKey = (state: ModularUIState, model: ModularUIModel) =>
|
|
52
59
|
Object.keys(state).find((key) => {
|
|
53
60
|
const connectKey = state[key]?.model?.connectKey ?? "";
|
|
54
61
|
return connectKey === model.connectKey;
|
|
@@ -56,7 +63,7 @@ const getModelKey = (state, model) =>
|
|
|
56
63
|
|
|
57
64
|
/**
|
|
58
65
|
*/
|
|
59
|
-
const updateModel = (state, model) => {
|
|
66
|
+
const updateModel = (state: ModularUIState, model: ModularUIModel) => {
|
|
60
67
|
const modelKey = getModelKey(state, model);
|
|
61
68
|
|
|
62
69
|
if (modelKey) {
|
|
@@ -81,7 +88,7 @@ const removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {
|
|
|
81
88
|
* Remove all but application models
|
|
82
89
|
*/
|
|
83
90
|
const resetModularUI = (state: ModularUIState) => {
|
|
84
|
-
const newState = {};
|
|
91
|
+
const newState: ModularUIState = {};
|
|
85
92
|
|
|
86
93
|
for (const key in state) {
|
|
87
94
|
if (state[key].model instanceof ApplicationModel) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularUIReducer.js","names":["updateStatus","state","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","model","IllegalArgumentException","getModelKey","connectKey","updateModel","modelKey","Error","removeKey","_","newState","resetModularUI","ApplicationModel","initialState","ModularUIReducer","action","type","payload"],"sources":["../../../src/redux/_modularui/ModularUIReducer.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n */\nconst updateStatus = (\n state: ModularUIState,\n { key, status }: { key: string, status: $Keys<typeof MODULARUI_STATUS> }\n) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (\n state: ModularUIState,\n { key, model }: { key: string, model: ?ModularUIModel }\n) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst getModelKey = (state: ModularUIState, model: ModularUIModel) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state: ModularUIState, model: ModularUIModel) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n // eslint-disable-next-line no-unused-vars\n const { [modelKey]: _, ...newState } = state;\n\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState: ModularUIState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"mappings":"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"}
|
|
@@ -178,11 +178,12 @@ export const allKeysByHref = (
|
|
|
178
178
|
|
|
179
179
|
/**
|
|
180
180
|
*/
|
|
181
|
-
const getLocation = (state): string =>
|
|
181
|
+
const getLocation = (state: ReduxState): string =>
|
|
182
|
+
state?.router?.location.pathname;
|
|
182
183
|
|
|
183
184
|
/**
|
|
184
185
|
*/
|
|
185
|
-
const getModels = (state) => {
|
|
186
|
+
const getModels = (state: ReduxState) => {
|
|
186
187
|
const models = [];
|
|
187
188
|
|
|
188
189
|
Object.keys(state.modularui).forEach((modelKey: string) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModularUISelectors.js","names":["getAllModelsByInstance","state","instance","locale","i18n","modularui","key","model","getFirstModelByInstance","getActiveModelByInstance","location","getLocation","selfhref","path","getApplication","ApplicationModel","getTab","TabModel","getCaseView","CaseViewModel","getForm","FormModel","modelByHref","href","findHref","Href","modelConfigKey","equals","keyByHref","allKeysByHref","router","pathname","getModels","models","forEach","modelKey","modelEntry","has","label","type","modelInfo","selfContentLink","ContentModel","ContentTOCModel","push","getActiveModels","createSelectorCreator","defaultMemoize","value","other","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType"],"sources":["../../../src/redux/_modularui/ModularUISelectors.js"],"sourcesContent":["// @flow\nimport { createSelectorCreator, defaultMemoize } from \"reselect\";\nimport { has } from \"../../utils/helpers/objects\";\n\nimport Href from \"../../models/href/Href\";\nimport ContentModel from \"../../models/content/ContentModel\";\nimport ContentTOCModel from \"../../models/content/ContentTOCModel\";\nimport ApplicationModel from \"../../models/application/ApplicationModel\";\nimport TabModel from \"../../models/tab/TabModel\";\nimport CaseViewModel from \"../../models/caseview/CaseViewModel\";\nimport FormModel from \"../../models/form/FormModel\";\n\nimport type { ReduxState, PreferenceValue } from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\n\n/**\n */\nexport const getAllModelsByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): Array<ModularUIModel> => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n return Object.keys(modularui)\n .filter((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n })\n .map((key) => modularui[key].model);\n }\n\n return [];\n};\n\n/**\n */\nexport const getFirstModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return model instanceof instance && model.locale === locale;\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n */\nexport const getActiveModelByInstance = <T>(\n state: ReduxState,\n instance: Class<T>\n): T | null => {\n const location = getLocation(state);\n\n const locale = state?.i18n?.locale || \"en\";\n const modularui = state?.modularui;\n\n if (modularui) {\n const key = Object.keys(modularui).find((key) => {\n const { model } = modularui[key];\n return (\n model instanceof instance &&\n model.locale === locale &&\n location.startsWith(model.selfhref.path)\n );\n });\n\n if (key) {\n const { model } = modularui[key];\n if (model instanceof instance) {\n return model;\n }\n }\n }\n\n return null;\n};\n\n/**\n * Get the application model, which is the model with selfhref '/'\n */\nexport const getApplication = (state: ReduxState): null | ApplicationModel =>\n getFirstModelByInstance(state, ApplicationModel);\n\n/**\n */\nexport const getTab = (state: ReduxState): null | TabModel =>\n getFirstModelByInstance(state, TabModel);\n\n/**\n */\nexport const getCaseView = (state: ReduxState): null | CaseViewModel =>\n getFirstModelByInstance(state, CaseViewModel);\n\n/**\n */\nexport const getForm = (state: ReduxState): null | FormModel =>\n getFirstModelByInstance(state, FormModel);\n\n/**\n * Get the model by it's href\n */\nexport const modelByHref = (\n state: ReduxState,\n href: Href | string\n): null | ModularUIModel => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n const modelConfigKey = Object.keys(state.modularui).find((key) => {\n const model = state.modularui[key];\n\n return (\n model.model &&\n model.model.selfhref &&\n model.model.selfhref.equals(findHref)\n );\n });\n\n if (modelConfigKey) {\n return state.modularui[modelConfigKey].model;\n }\n }\n\n return null;\n};\n\n/**\n * Return the key of a model by the selfhref the model is saved in the reducer\n */\nexport const keyByHref = (state: ReduxState, href: Href | string): ?string => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n return Object.keys(state.modularui).find((key) => {\n const { model } = state.modularui[key];\n return model && model.selfhref && model.selfhref.equals(findHref);\n });\n }\n\n return null;\n};\n\n/**\n * Returns all model keys found in the store, restrict on href\n */\nexport const allKeysByHref = (\n state: ReduxState,\n href: Href | string\n): Array<string> => {\n if (state && state.modularui) {\n const findHref = href instanceof Href ? href : new Href(href);\n\n return Object.keys(state.modularui).filter((key) => {\n const { model } = state.modularui[key];\n return model && model.selfhref && model.selfhref.equals(findHref);\n });\n }\n\n return [];\n};\n\n/**\n */\nconst getLocation = (state: ReduxState): string =>\n state?.router?.location.pathname;\n\n/**\n */\nconst getModels = (state: ReduxState) => {\n const models = [];\n\n Object.keys(state.modularui).forEach((modelKey: string) => {\n const modelEntry = state.modularui[modelKey];\n\n if (has(modelEntry, \"model\")) {\n const { key, selfhref, label, type } = modelEntry.model;\n\n const modelInfo = {\n key,\n selfhref,\n label,\n type,\n selfContentLink: null,\n };\n\n if (\n modelEntry.model instanceof ContentModel ||\n modelEntry.model instanceof ContentTOCModel\n ) {\n models.push({\n ...modelInfo,\n selfContentLink: modelEntry.model.selfContentLink,\n });\n } else {\n models.push(modelInfo);\n }\n }\n });\n\n return models;\n};\n\nexport const getActiveModels: (state: ReduxState) => Array<{\n key: string,\n href: Href,\n label: string,\n type: string,\n}> = createSelectorCreator(\n defaultMemoize,\n (value, other) => JSON.stringify(value) === JSON.stringify(other)\n)([getLocation, getModels], (location, models) => {\n const contextModels = [];\n\n if (location) {\n const locationParts = location.split(\"/\");\n\n locationParts.reduce((accumulator, current) => {\n const path = `${accumulator}/${current}`;\n\n // Remove modelcatalog part to match breadcrumb parts\n const comparePath = decodeURIComponent(path).replace(\n \"/modelcatalog/\",\n \"/\"\n );\n\n const foundEntry = models.find(\n (model) => model.selfhref && model.selfhref.equals(comparePath)\n );\n\n if (foundEntry) {\n const { key, label, type, selfhref, selfContentLink } = foundEntry;\n\n const href =\n path.startsWith(\"/modelcatalog/\") && selfContentLink\n ? new Href(`/modelcatalog${selfContentLink.encodedHref.toString()}`)\n : selfhref;\n\n contextModels.push({ key, href, label, type });\n }\n\n return path;\n });\n }\n\n return contextModels;\n});\n\n/**\n */\nexport const getPreference = (\n state: ReduxState,\n preferenceName: string\n): null | PreferenceValue => {\n if (state && state.preferences) {\n return state.preferences[preferenceName];\n }\n\n return null;\n};\n\n/**\n * @deprecated - Use getFirstModelByInstance or the appropriate getter for the model type: getApplication, getTab, etc\n */\nexport const getModelsByType = (\n state: ReduxState,\n type: string\n): Array<ModularUIModel> => {\n if (state && state.modularui) {\n return Object.keys(state.modularui)\n .filter(\n (key) =>\n state.modularui[key] &&\n state.modularui[key].model &&\n state.modularui[key].model.type === type\n )\n .map((key) => state.modularui[key].model);\n }\n\n return [];\n};\n"],"mappings":"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"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ModularUIUtils.js","names":["getUrl","resource","props","url","Href","toString","useUrl","previousUrl","setPreviousUrl","useState","previousExact","setPreviousExact","match","isDifferentUrl","hasDifferentStartUriPart","isExact","getKey","WrappedComponent","name","getDisplayName","split","useReload","modelEntry","reload","isFullyLoaded","status","MODULARUI_STATUS","FINISHED","lastModification"],"sources":["../../../src/redux/_modularui/ModularUIUtils.js"],"sourcesContent":["// @flow\nimport { useState } from \"react\";\n\nimport { getDisplayName } from \"../../react/utils\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\n\nimport type { ComponentType } from \"react\";\n\n/**\n * Generate modular ui url\n */\nconst getUrl = (resource: string | Function, props: Object) => {\n const url = typeof resource === \"function\" ? resource(props) : resource;\n\n if (url instanceof Href) {\n return url.toString();\n }\n\n return url || \"\";\n};\n\n/**\n */\nexport const useUrl = (resource: string | Function, props: Object): string => {\n const [previousUrl, setPreviousUrl] = useState(\"\");\n const [previousExact, setPreviousExact] = useState(false);\n\n const url = getUrl(resource, props);\n\n const { match } = props;\n\n // when match is not available through props,\n // this is a direct call to the modular ui hoc, not using a route\n if (!match) {\n return url;\n }\n\n const isDifferentUrl = url !== previousUrl;\n if (!isDifferentUrl) {\n return previousUrl;\n }\n\n const hasDifferentStartUriPart =\n previousUrl !== \"\" && !previousUrl.startsWith(match.url);\n\n // Always create an url when the match is exact\n // Or when the match is not exact AND the original match also was not exact\n // Or when the new start uri is different from the previous url\n if (\n match.isExact === true ||\n previousExact === match.isExact ||\n hasDifferentStartUriPart\n ) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n\n return url;\n }\n\n return previousUrl;\n};\n\n/**\n * Create key for modularui request based on component name and requested url\n */\nexport const getKey = (\n WrappedComponent: ComponentType<any>,\n name: string,\n url: string\n): string => {\n if (url) {\n return `${getDisplayName(WrappedComponent, name)}(${url.split(\"?\")[0]})`;\n }\n\n return getDisplayName(WrappedComponent, name);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelEntry: Object, reload: number = 0): boolean => {\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n\n return false;\n};\n"],"mappings":";;;;;;;;AACA;AAEA;AACA;AACA;AAIA;AACA;AACA;AACA,MAAMA,MAAM,GAAG,CAACC,QAA2B,EAAEC,KAAa,KAAK;EAC7D,MAAMC,GAAG,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACC,KAAK,CAAC,GAAGD,QAAQ;EAEvE,IAAIE,GAAG,YAAYC,aAAI,EAAE;IACvB,OAAOD,GAAG,CAACE,QAAQ,EAAE;EACvB;EAEA,OAAOF,GAAG,IAAI,EAAE;AAClB,CAAC;;AAED;AACA;AACO,MAAMG,MAAM,GAAG,CAACL,QAA2B,EAAEC,KAAa,KAAa;EAC5E,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAClD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAEzD,MAAMN,GAAG,GAAGH,MAAM,CAACC,QAAQ,EAAEC,KAAK,CAAC;EAEnC,MAAM;IAAEU;EAAM,CAAC,GAAGV,KAAK;;EAEvB;EACA;EACA,IAAI,CAACU,KAAK,EAAE;IACV,OAAOT,GAAG;EACZ;EAEA,MAAMU,cAAc,GAAGV,GAAG,KAAKI,WAAW;EAC1C,IAAI,CAACM,cAAc,EAAE;IACnB,OAAON,WAAW;EACpB;EAEA,MAAMO,wBAAwB,GAC5BP,WAAW,KAAK,EAAE,IAAI,CAAC,yBAAAA,WAAW,OAAXA,WAAW,EAAYK,KAAK,CAACT,GAAG,CAAC;;EAE1D;EACA;EACA;EACA,IACES,KAAK,CAACG,OAAO,KAAK,IAAI,IACtBL,aAAa,KAAKE,KAAK,CAACG,OAAO,IAC/BD,wBAAwB,EACxB;IACAN,cAAc,CAACL,GAAG,CAAC;IACnBQ,gBAAgB,CAACC,KAAK,CAACG,OAAO,CAAC;IAE/B,OAAOZ,GAAG;EACZ;EAEA,OAAOI,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AAFA;AAGO,MAAMS,MAAM,GAAG,CACpBC,gBAAoC,EACpCC,IAAY,EACZf,GAAW,KACA;EACX,IAAIA,GAAG,EAAE;IACP,OAAQ,GAAE,IAAAgB,qBAAc,EAACF,gBAAgB,EAAEC,IAAI,CAAE,IAAGf,GAAG,CAACiB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAE;EAC1E;EAEA,OAAO,IAAAD,qBAAc,EAACF,gBAAgB,EAAEC,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AAFA;AAGO,MAAMG,SAAS,GAAG,UAACC,UAAkB,EAAkC;EAAA,IAAhCC,MAAc,uEAAG,CAAC;EAC9D,IAAIA,MAAM,GAAG,CAAC,EAAE;IACd,MAAMC,aAAa,GAAGF,UAAU,EAAEG,MAAM,KAAKC,2BAAgB,CAACC,QAAQ;IACtE,MAAMC,gBAAgB,GAAGN,UAAU,EAAEM,gBAAgB,IAAI,CAAC;IAE1D,IAAIJ,aAAa,IAAII,gBAAgB,GAAGL,MAAM,EAAE;MAC9C,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAAC"}
|