@beinformed/ui 1.47.2 → 1.48.1
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 +14 -0
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RangeConstraint.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/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +31 -5
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-server/contextPath.js.map +1 -1
- package/esm/react-server/htmlpage.js.map +1 -1
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/utils/background.js.map +1 -1
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/repositoryResource.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js.map +1 -1
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +31 -5
- package/lib/models/concepts/ConceptRelationModel.js.flow +37 -5
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/concepts/__mock__/relation_with_props_and_tf_data.js.flow +27 -0
- package/lib/models/concepts/__tests__/ConceptRelationModel.spec.js.flow +44 -0
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-server/contextPath.js.map +1 -1
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/utils/background.js.map +1 -1
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/repositoryResource.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js.map +1 -1
- package/package.json +18 -18
- package/src/models/concepts/ConceptRelationModel.js +37 -5
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +27 -0
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +67 -0
- package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +44 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUISelectors.js","names":["_reselect","require","_objects","_Href","_interopRequireDefault","_ContentModel","_ContentTOCModel","_ApplicationModel","_TabModel","_CaseViewModel","_FormModel","getAllModelsByInstance","state","instance","locale","i18n","modularui","_context","_context2","_map","default","_filter","_keys","call","key","model","exports","getFirstModelByInstance","_context3","_find","getActiveModelByInstance","location","getLocation","_context4","_startsWith","selfhref","path","getApplication","ApplicationModel","getTab","TabModel","getCaseView","CaseViewModel","getForm","FormModel","modelByHref","href","_context5","findHref","Href","modelConfigKey","equals","keyByHref","_context6","allKeysByHref","_context7","router","pathname","getModels","models","forEach","modelKey","modelEntry","has","label","type","modelInfo","selfContentLink","ContentModel","ContentTOCModel","push","getActiveModels","createSelectorCreator","defaultMemoize","value","other","_stringify","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType","_context8","_context9"],"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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModularUISelectors.js","names":["_reselect","require","_objects","_Href","_interopRequireDefault","_ContentModel","_ContentTOCModel","_ApplicationModel","_TabModel","_CaseViewModel","_FormModel","getAllModelsByInstance","state","instance","locale","i18n","modularui","_context","_context2","_map","default","_filter","_keys","call","key","model","exports","getFirstModelByInstance","_context3","_find","getActiveModelByInstance","location","getLocation","_context4","_startsWith","selfhref","path","getApplication","ApplicationModel","getTab","TabModel","getCaseView","CaseViewModel","getForm","FormModel","modelByHref","href","_context5","findHref","Href","modelConfigKey","equals","keyByHref","_context6","allKeysByHref","_context7","router","pathname","getModels","models","forEach","modelKey","modelEntry","has","label","type","modelInfo","selfContentLink","ContentModel","ContentTOCModel","push","getActiveModels","createSelectorCreator","defaultMemoize","value","other","_stringify","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType","_context8","_context9"],"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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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIUtils.js","names":["_react","require","_utils","_Constants","_Href","_interopRequireDefault","getUrl","resource","props","url","Href","toString","useUrl","previousUrl","setPreviousUrl","useState","previousExact","setPreviousExact","match","isDifferentUrl","hasDifferentStartUriPart","_startsWith","default","call","isExact","exports","getKey","WrappedComponent","name","getDisplayName","split","useReload","modelEntry","reload","arguments","length","undefined","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAIA;AACA;AACA;AACA,MAAMK,MAAM,GAAGA,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,CAAC,CAAC;EACvB;EAEA,OAAOF,GAAG,IAAI,EAAE;AAClB,CAAC;;AAED;AACA;AACO,MAAMG,MAAM,GAAGA,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,IAAAQ,WAAA,CAAAC,OAAA,EAAAT,WAAW,EAAAU,IAAA,CAAXV,WAAW,EAAYK,KAAK,CAACT,GAAG,CAAC;;EAE1D;EACA;EACA;EACA,IACES,KAAK,CAACM,OAAO,KAAK,IAAI,IACtBR,aAAa,KAAKE,KAAK,CAACM,OAAO,IAC/BJ,wBAAwB,EACxB;IACAN,cAAc,CAACL,GAAG,CAAC;IACnBQ,gBAAgB,CAACC,KAAK,CAACM,OAAO,CAAC;IAE/B,OAAOf,GAAG;EACZ;EAEA,OAAOI,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AAFAY,OAAA,CAAAb,MAAA,GAAAA,MAAA;AAGO,MAAMc,MAAM,GAAGA,CACpBC,gBAAoC,EACpCC,IAAY,EACZnB,GAAW,KACA;EACX,IAAIA,GAAG,EAAE;IACP,
|
|
1
|
+
{"version":3,"file":"ModularUIUtils.js","names":["_react","require","_utils","_Constants","_Href","_interopRequireDefault","getUrl","resource","props","url","Href","toString","useUrl","previousUrl","setPreviousUrl","useState","previousExact","setPreviousExact","match","isDifferentUrl","hasDifferentStartUriPart","_startsWith","default","call","isExact","exports","getKey","WrappedComponent","name","getDisplayName","split","useReload","modelEntry","reload","arguments","length","undefined","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAIA;AACA;AACA;AACA,MAAMK,MAAM,GAAGA,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,CAAC,CAAC;EACvB;EAEA,OAAOF,GAAG,IAAI,EAAE;AAClB,CAAC;;AAED;AACA;AACO,MAAMG,MAAM,GAAGA,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,IAAAQ,WAAA,CAAAC,OAAA,EAAAT,WAAW,EAAAU,IAAA,CAAXV,WAAW,EAAYK,KAAK,CAACT,GAAG,CAAC;;EAE1D;EACA;EACA;EACA,IACES,KAAK,CAACM,OAAO,KAAK,IAAI,IACtBR,aAAa,KAAKE,KAAK,CAACM,OAAO,IAC/BJ,wBAAwB,EACxB;IACAN,cAAc,CAACL,GAAG,CAAC;IACnBQ,gBAAgB,CAACC,KAAK,CAACM,OAAO,CAAC;IAE/B,OAAOf,GAAG;EACZ;EAEA,OAAOI,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AAFAY,OAAA,CAAAb,MAAA,GAAAA,MAAA;AAGO,MAAMc,MAAM,GAAGA,CACpBC,gBAAoC,EACpCC,IAAY,EACZnB,GAAW,KACA;EACX,IAAIA,GAAG,EAAE;IACP,OAAO,GAAG,IAAAoB,qBAAc,EAACF,gBAAgB,EAAEC,IAAI,CAAC,IAAInB,GAAG,CAACqB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;EAC1E;EAEA,OAAO,IAAAD,qBAAc,EAACF,gBAAgB,EAAEC,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AAFAH,OAAA,CAAAC,MAAA,GAAAA,MAAA;AAGO,MAAMK,SAAS,GAAG,SAAAA,CAACC,UAAkB,EAAkC;EAAA,IAAhCC,MAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAC9D,IAAID,MAAM,GAAG,CAAC,EAAE;IACd,MAAMI,aAAa,GAAGL,UAAU,EAAEM,MAAM,KAAKC,2BAAgB,CAACC,QAAQ;IACtE,MAAMC,gBAAgB,GAAGT,UAAU,EAAES,gBAAgB,IAAI,CAAC;IAE1D,IAAIJ,aAAa,IAAII,gBAAgB,GAAGR,MAAM,EAAE;MAC9C,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAACR,OAAA,CAAAM,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","names":["_ModularUIActions","require","_ModularUISelectors","_models","_i18n","reloadApplication","dispatch","getState","allKeys","allKeysByHref","key","removeModelByKey","modelKey","getLocale","loadModularUI","Href","targetModel","ApplicationModel","exports"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../_modularui/ModularUIActions\";\nimport { allKeysByHref } from \"../_modularui/ModularUISelectors\";\nimport { ApplicationModel, Href } from \"../../models\";\nimport { getLocale } from \"../selectors/i18n\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n const allKeys = allKeysByHref(getState(), \"/\");\n for (const key of allKeys) {\n dispatch(removeModelByKey(key));\n }\n\n const modelKey = `application(/)(${getLocale(getState())})`;\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n }),\n );\n };\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAIA;AACA;AACO,MAAMI,iBAAiB,GAC5BA,CAAA,KAAmB,CAACC,QAAkB,EAAEC,QAAkB,KAAK;EAC7D,MAAMC,OAAO,GAAG,IAAAC,iCAAa,EAACF,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC9C,KAAK,MAAMG,GAAG,IAAIF,OAAO,EAAE;IACzBF,QAAQ,CAAC,IAAAK,kCAAgB,EAACD,GAAG,CAAC,CAAC;EACjC;EAEA,MAAME,QAAQ,
|
|
1
|
+
{"version":3,"file":"Application.js","names":["_ModularUIActions","require","_ModularUISelectors","_models","_i18n","reloadApplication","dispatch","getState","allKeys","allKeysByHref","key","removeModelByKey","modelKey","getLocale","loadModularUI","Href","targetModel","ApplicationModel","exports"],"sources":["../../../src/redux/actions/Application.js"],"sourcesContent":["// @flow\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../_modularui/ModularUIActions\";\nimport { allKeysByHref } from \"../_modularui/ModularUISelectors\";\nimport { ApplicationModel, Href } from \"../../models\";\nimport { getLocale } from \"../selectors/i18n\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\n\n/**\n */\nexport const reloadApplication =\n (): ThunkAction => (dispatch: Dispatch, getState: GetState) => {\n const allKeys = allKeysByHref(getState(), \"/\");\n for (const key of allKeys) {\n dispatch(removeModelByKey(key));\n }\n\n const modelKey = `application(/)(${getLocale(getState())})`;\n return dispatch(\n loadModularUI(modelKey, new Href(\"/\", \"Application\"), {\n targetModel: ApplicationModel,\n }),\n );\n };\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAIA;AACA;AACO,MAAMI,iBAAiB,GAC5BA,CAAA,KAAmB,CAACC,QAAkB,EAAEC,QAAkB,KAAK;EAC7D,MAAMC,OAAO,GAAG,IAAAC,iCAAa,EAACF,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC9C,KAAK,MAAMG,GAAG,IAAIF,OAAO,EAAE;IACzBF,QAAQ,CAAC,IAAAK,kCAAgB,EAACD,GAAG,CAAC,CAAC;EACjC;EAEA,MAAME,QAAQ,GAAG,kBAAkB,IAAAC,eAAS,EAACN,QAAQ,CAAC,CAAC,CAAC,GAAG;EAC3D,OAAOD,QAAQ,CACb,IAAAQ,+BAAa,EAACF,QAAQ,EAAE,IAAIG,YAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE;IACpDC,WAAW,EAAEC;EACf,CAAC,CACH,CAAC;AACH,CAAC;AAACC,OAAA,CAAAb,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Preferences.js","names":["_objects","require","_exceptions","_Settings","_constants","getServerPreferenceValue","preferenceName","defaultValue","arguments","length","undefined","type","value","preferencesProvider","getPreferenceByName","_includes","default","call","_context","_map","split","val","_trim","setServerPreference","propertyName","setPreference","exports","propertyValue","payload","setPreferences","preferences","setThemePreference","configTheme","themeData","JSON","parse","error","JsonParseException","isPlainObject","setSettings","settings","setAllContentInDataSetting","state","allContentInDataSetting","getModularUIContentInData","ALL_CONTENT_IN_DATA_SETTING","setSetting","setLoginPreferences","loginSettings","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING"],"sources":["../../../src/redux/actions/Preferences.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\n\nimport { JsonParseException } from \"../../exceptions\";\nimport { setSetting, setSettings } from \"../../constants/Settings\";\n\nimport type {\n PreferenceValue,\n ReduxState,\n SetPreferenceAction,\n SetPreferencesAction,\n} from \"../types\";\n\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n LOGIN_TYPE,\n LOGIN_PASSWORD_SETTING,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGOUT_PATH_SETTING,\n} from \"../../constants\";\n\n/**\n */\nconst getServerPreferenceValue = (\n preferenceName: string,\n defaultValue: PreferenceValue = null,\n type?: string,\n) => {\n let value: PreferenceValue = null;\n if (typeof preferencesProvider !== \"undefined\") {\n value = preferencesProvider.getPreferenceByName(preferenceName);\n }\n\n if (value == null) {\n value = defaultValue;\n }\n\n if (typeof value === \"string\" && type !== \"string\" && value.includes(\",\")) {\n value = value.split(\",\").map((val) => val.trim());\n }\n\n return value;\n};\n\n/**\n */\nexport const setServerPreference = (\n propertyName: string,\n defaultValue: PreferenceValue = null,\n type?: string,\n): SetPreferenceAction => {\n const value = getServerPreferenceValue(propertyName, defaultValue, type);\n return setPreference(propertyName, value);\n};\n\n/**\n */\nexport const setPreference = (\n propertyName: string,\n propertyValue: PreferenceValue = null,\n): SetPreferenceAction => ({\n type: \"SET_PREFERENCE\",\n payload: {\n [propertyName]: propertyValue,\n },\n});\n\n/**\n */\nexport const setPreferences = (preferences: Object): SetPreferencesAction => ({\n type: \"SET_PREFERENCES\",\n payload: {\n ...preferences,\n },\n});\n\n/**\n */\nexport const setThemePreference = (\n configTheme: string,\n): SetPreferenceAction => {\n let themeData;\n\n try {\n themeData = configTheme ? JSON.parse(configTheme) : null;\n } catch (error) {\n throw new JsonParseException(`Theme file contains invalid JSON: ${error}`);\n }\n\n if (themeData && isPlainObject(themeData)) {\n setSettings(themeData.settings);\n }\n\n return setPreference(\"theme\", themeData);\n};\n\n/**\n * Make modular-ui-content-in-data preference available client side\n */\nexport const setAllContentInDataSetting = (\n state?: ReduxState,\n): SetPreferenceAction => {\n let allContentInDataSetting: PreferenceValue = false;\n\n if (\n typeof preferencesProvider !== \"undefined\" &&\n typeof preferencesProvider.getModularUIContentInData !== \"undefined\"\n ) {\n allContentInDataSetting = preferencesProvider.getModularUIContentInData();\n } else if (typeof state !== \"undefined\") {\n allContentInDataSetting = state.preferences[ALL_CONTENT_IN_DATA_SETTING];\n }\n\n setSetting(ALL_CONTENT_IN_DATA_SETTING, !!allContentInDataSetting);\n return setPreference(ALL_CONTENT_IN_DATA_SETTING, allContentInDataSetting);\n};\n\n/**\n * Retrieves login settings from runtime preferences and sets them as setting in the preference reducer\n */\nexport const setLoginPreferences = (\n state?: ReduxState,\n): SetPreferencesAction => {\n const loginSettings = {\n [LOGIN_TYPE]: getServerPreferenceValue(\n LOGIN_TYPE,\n state?.preferences[LOGIN_TYPE],\n ),\n [LOGIN_PATH_SETTING]: getServerPreferenceValue(\n LOGIN_PATH_SETTING,\n state?.preferences[LOGIN_PATH_SETTING] ??\n `/callback?client_name=FormClient`,\n ),\n [LOGIN_USERNAME_SETTING]: getServerPreferenceValue(\n LOGIN_USERNAME_SETTING,\n state?.preferences[LOGIN_USERNAME_SETTING] ?? \"j_username\",\n ),\n [LOGIN_PASSWORD_SETTING]: getServerPreferenceValue(\n LOGIN_PASSWORD_SETTING,\n state?.preferences[LOGIN_PASSWORD_SETTING] ?? \"j_password\",\n ),\n [LOGOUT_PATH_SETTING]: getServerPreferenceValue(\n LOGOUT_PATH_SETTING,\n state?.preferences[LOGOUT_PATH_SETTING] ?? `/logout`,\n ),\n };\n\n setSettings(loginSettings);\n return setPreferences(loginSettings);\n};\n"],"mappings":";;;;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AASA,IAAAG,UAAA,GAAAH,OAAA;AASA;AACA;AACA,MAAMI,wBAAwB,GAAG,SAAAA,CAC/BC,cAAsB,EAGnB;EAAA,IAFHC,YAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACpCG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb,IAAIE,KAAsB,GAAG,IAAI;EACjC,IAAI,OAAOC,mBAAmB,KAAK,WAAW,EAAE;IAC9CD,KAAK,GAAGC,mBAAmB,CAACC,mBAAmB,CAACR,cAAc,CAAC;EACjE;EAEA,IAAIM,KAAK,IAAI,IAAI,EAAE;IACjBA,KAAK,GAAGL,YAAY;EACtB;EAEA,IAAI,OAAOK,KAAK,KAAK,QAAQ,IAAID,IAAI,KAAK,QAAQ,IAAI,IAAAI,SAAA,CAAAC,OAAA,EAAAJ,KAAK,EAAAK,IAAA,CAALL,KAAK,EAAU,GAAG,CAAC,EAAE;IAAA,IAAAM,QAAA;IACzEN,KAAK,GAAG,IAAAO,IAAA,CAAAH,OAAA,EAAAE,QAAA,GAAAN,KAAK,CAACQ,KAAK,CAAC,GAAG,CAAC,EAAAH,IAAA,CAAAC,QAAA,EAAMG,GAAG,IAAK,IAAAC,KAAA,CAAAN,OAAA,EAAAK,GAAG,EAAAJ,IAAA,CAAHI,GAAS,CAAC,CAAC;EACnD;EAEA,OAAOT,KAAK;AACd,CAAC;;AAED;AACA;AACO,MAAMW,mBAAmB,GAAG,SAAAA,CACjCC,YAAoB,EAGI;EAAA,IAFxBjB,YAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACpCG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb,MAAME,KAAK,GAAGP,wBAAwB,CAACmB,YAAY,EAAEjB,YAAY,EAAEI,IAAI,CAAC;EACxE,OAAOc,aAAa,CAACD,YAAY,EAAEZ,KAAK,CAAC;AAC3C,CAAC;;AAED;AACA;AADAc,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAEO,MAAME,aAAa,GAAG,SAAAA,CAC3BD,YAAoB;EAAA,IACpBG,aAA8B,GAAAnB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,OACZ;IACzBG,IAAI,EAAE,gBAAgB;IACtBiB,OAAO,EAAE;MACP,CAACJ,YAAY,GAAGG;IAClB;EACF,CAAC;AAAA,CAAC;;AAEF;AACA;AADAD,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAEO,MAAMI,cAAc,GAAIC,WAAmB,KAA4B;EAC5EnB,IAAI,EAAE,iBAAiB;EACvBiB,OAAO,EAAE;IACP,GAAGE;EACL;AACF,CAAC,CAAC;;AAEF;AACA;AADAJ,OAAA,CAAAG,cAAA,GAAAA,cAAA;AAEO,MAAME,kBAAkB,GAC7BC,WAAmB,IACK;EACxB,IAAIC,SAAS;EAEb,IAAI;IACFA,SAAS,GAAGD,WAAW,GAAGE,IAAI,CAACC,KAAK,CAACH,WAAW,CAAC,GAAG,IAAI;EAC1D,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,MAAM,IAAIC,8BAAkB,
|
|
1
|
+
{"version":3,"file":"Preferences.js","names":["_objects","require","_exceptions","_Settings","_constants","getServerPreferenceValue","preferenceName","defaultValue","arguments","length","undefined","type","value","preferencesProvider","getPreferenceByName","_includes","default","call","_context","_map","split","val","_trim","setServerPreference","propertyName","setPreference","exports","propertyValue","payload","setPreferences","preferences","setThemePreference","configTheme","themeData","JSON","parse","error","JsonParseException","isPlainObject","setSettings","settings","setAllContentInDataSetting","state","allContentInDataSetting","getModularUIContentInData","ALL_CONTENT_IN_DATA_SETTING","setSetting","setLoginPreferences","loginSettings","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING"],"sources":["../../../src/redux/actions/Preferences.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\n\nimport { JsonParseException } from \"../../exceptions\";\nimport { setSetting, setSettings } from \"../../constants/Settings\";\n\nimport type {\n PreferenceValue,\n ReduxState,\n SetPreferenceAction,\n SetPreferencesAction,\n} from \"../types\";\n\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n LOGIN_TYPE,\n LOGIN_PASSWORD_SETTING,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGOUT_PATH_SETTING,\n} from \"../../constants\";\n\n/**\n */\nconst getServerPreferenceValue = (\n preferenceName: string,\n defaultValue: PreferenceValue = null,\n type?: string,\n) => {\n let value: PreferenceValue = null;\n if (typeof preferencesProvider !== \"undefined\") {\n value = preferencesProvider.getPreferenceByName(preferenceName);\n }\n\n if (value == null) {\n value = defaultValue;\n }\n\n if (typeof value === \"string\" && type !== \"string\" && value.includes(\",\")) {\n value = value.split(\",\").map((val) => val.trim());\n }\n\n return value;\n};\n\n/**\n */\nexport const setServerPreference = (\n propertyName: string,\n defaultValue: PreferenceValue = null,\n type?: string,\n): SetPreferenceAction => {\n const value = getServerPreferenceValue(propertyName, defaultValue, type);\n return setPreference(propertyName, value);\n};\n\n/**\n */\nexport const setPreference = (\n propertyName: string,\n propertyValue: PreferenceValue = null,\n): SetPreferenceAction => ({\n type: \"SET_PREFERENCE\",\n payload: {\n [propertyName]: propertyValue,\n },\n});\n\n/**\n */\nexport const setPreferences = (preferences: Object): SetPreferencesAction => ({\n type: \"SET_PREFERENCES\",\n payload: {\n ...preferences,\n },\n});\n\n/**\n */\nexport const setThemePreference = (\n configTheme: string,\n): SetPreferenceAction => {\n let themeData;\n\n try {\n themeData = configTheme ? JSON.parse(configTheme) : null;\n } catch (error) {\n throw new JsonParseException(`Theme file contains invalid JSON: ${error}`);\n }\n\n if (themeData && isPlainObject(themeData)) {\n setSettings(themeData.settings);\n }\n\n return setPreference(\"theme\", themeData);\n};\n\n/**\n * Make modular-ui-content-in-data preference available client side\n */\nexport const setAllContentInDataSetting = (\n state?: ReduxState,\n): SetPreferenceAction => {\n let allContentInDataSetting: PreferenceValue = false;\n\n if (\n typeof preferencesProvider !== \"undefined\" &&\n typeof preferencesProvider.getModularUIContentInData !== \"undefined\"\n ) {\n allContentInDataSetting = preferencesProvider.getModularUIContentInData();\n } else if (typeof state !== \"undefined\") {\n allContentInDataSetting = state.preferences[ALL_CONTENT_IN_DATA_SETTING];\n }\n\n setSetting(ALL_CONTENT_IN_DATA_SETTING, !!allContentInDataSetting);\n return setPreference(ALL_CONTENT_IN_DATA_SETTING, allContentInDataSetting);\n};\n\n/**\n * Retrieves login settings from runtime preferences and sets them as setting in the preference reducer\n */\nexport const setLoginPreferences = (\n state?: ReduxState,\n): SetPreferencesAction => {\n const loginSettings = {\n [LOGIN_TYPE]: getServerPreferenceValue(\n LOGIN_TYPE,\n state?.preferences[LOGIN_TYPE],\n ),\n [LOGIN_PATH_SETTING]: getServerPreferenceValue(\n LOGIN_PATH_SETTING,\n state?.preferences[LOGIN_PATH_SETTING] ??\n `/callback?client_name=FormClient`,\n ),\n [LOGIN_USERNAME_SETTING]: getServerPreferenceValue(\n LOGIN_USERNAME_SETTING,\n state?.preferences[LOGIN_USERNAME_SETTING] ?? \"j_username\",\n ),\n [LOGIN_PASSWORD_SETTING]: getServerPreferenceValue(\n LOGIN_PASSWORD_SETTING,\n state?.preferences[LOGIN_PASSWORD_SETTING] ?? \"j_password\",\n ),\n [LOGOUT_PATH_SETTING]: getServerPreferenceValue(\n LOGOUT_PATH_SETTING,\n state?.preferences[LOGOUT_PATH_SETTING] ?? `/logout`,\n ),\n };\n\n setSettings(loginSettings);\n return setPreferences(loginSettings);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptDetail.js","names":["_ModularUIConnector","_interopRequireDefault","require","connectConceptDetail","exports","modularui","_ref","concept","location","search","propName"],"sources":["../../../src/redux/connectors/ConceptDetail.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectConceptDetail: ModularUIConnector = modularui(\n \"ConceptDetail\",\n ({ concept, location }) => `/concepts/${concept}${location.search}`,\n { propName: \"conceptDetail\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAMC,oBAAwC,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAS,EAC/D,eAAe,EACfC,IAAA;EAAA,IAAC;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAAF,IAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"ConceptDetail.js","names":["_ModularUIConnector","_interopRequireDefault","require","connectConceptDetail","exports","modularui","_ref","concept","location","search","propName"],"sources":["../../../src/redux/connectors/ConceptDetail.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectConceptDetail: ModularUIConnector = modularui(\n \"ConceptDetail\",\n ({ concept, location }) => `/concepts/${concept}${location.search}`,\n { propName: \"conceptDetail\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAMC,oBAAwC,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAS,EAC/D,eAAe,EACfC,IAAA;EAAA,IAAC;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAAF,IAAA;EAAA,OAAK,aAAaC,OAAO,GAAGC,QAAQ,CAACC,MAAM,EAAE;AAAA,GACnE;EAAEC,QAAQ,EAAE;AAAgB,CAC9B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentDetail.js","names":["_ModularUIConnector","_interopRequireDefault","require","connectContentDetail","exports","modularui","_ref","content","location","decodeURIComponent","search","propName"],"sources":["../../../src/redux/connectors/ContentDetail.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectContentDetail: ModularUIConnector = modularui(\n \"ContentDetail\",\n ({ content, location }) =>\n `/content/${decodeURIComponent(content)}${location.search}`,\n { propName: \"contentTOC\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAMC,oBAAwC,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAS,EAC/D,eAAe,EACfC,IAAA;EAAA,IAAC;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAAF,IAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"ContentDetail.js","names":["_ModularUIConnector","_interopRequireDefault","require","connectContentDetail","exports","modularui","_ref","content","location","decodeURIComponent","search","propName"],"sources":["../../../src/redux/connectors/ContentDetail.js"],"sourcesContent":["// @flow\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectContentDetail: ModularUIConnector = modularui(\n \"ContentDetail\",\n ({ content, location }) =>\n `/content/${decodeURIComponent(content)}${location.search}`,\n { propName: \"contentTOC\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAMC,oBAAwC,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAS,EAC/D,eAAe,EACfC,IAAA;EAAA,IAAC;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAAF,IAAA;EAAA,OACpB,YAAYG,kBAAkB,CAACF,OAAO,CAAC,GAAGC,QAAQ,CAACE,MAAM,EAAE;AAAA,GAC7D;EAAEC,QAAQ,EAAE;AAAa,CAC3B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentDetailSection.js","names":["_Href","_interopRequireDefault","require","_ModularUIConnector","connectContentDetailSection","exports","modularui","_ref","sectioncontent","section","entryDate","Href","decodeURIComponent","addParameter","propName"],"sources":["../../../src/redux/connectors/ContentDetailSection.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectContentDetailSection: ModularUIConnector = modularui(\n \"ContentDetailSection\",\n ({ sectioncontent, section, entryDate }) =>\n new Href(\n `/content/${decodeURIComponent(sectioncontent)}/${section}`,\n ).addParameter(\"entryDate\", entryDate),\n { propName: \"content\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAME,2BAA+C,GAAAC,OAAA,CAAAD,2BAAA,GAAG,IAAAE,2BAAS,EACtE,sBAAsB,EACtBC,IAAA;EAAA,IAAC;IAAEC,cAAc;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAAH,IAAA;EAAA,OACrC,IAAII,aAAI,
|
|
1
|
+
{"version":3,"file":"ContentDetailSection.js","names":["_Href","_interopRequireDefault","require","_ModularUIConnector","connectContentDetailSection","exports","modularui","_ref","sectioncontent","section","entryDate","Href","decodeURIComponent","addParameter","propName"],"sources":["../../../src/redux/connectors/ContentDetailSection.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport type { ModularUIConnector } from \"../_modularui/types\";\n\n/**\n */\nexport const connectContentDetailSection: ModularUIConnector = modularui(\n \"ContentDetailSection\",\n ({ sectioncontent, section, entryDate }) =>\n new Href(\n `/content/${decodeURIComponent(sectioncontent)}/${section}`,\n ).addParameter(\"entryDate\", entryDate),\n { propName: \"content\" },\n);\n"],"mappings":";;;;;;;AACA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA;AACA;AACO,MAAME,2BAA+C,GAAAC,OAAA,CAAAD,2BAAA,GAAG,IAAAE,2BAAS,EACtE,sBAAsB,EACtBC,IAAA;EAAA,IAAC;IAAEC,cAAc;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAAH,IAAA;EAAA,OACrC,IAAII,aAAI,CACN,YAAYC,kBAAkB,CAACJ,cAAc,CAAC,IAAIC,OAAO,EAC3D,CAAC,CAACI,YAAY,CAAC,WAAW,EAAEH,SAAS,CAAC;AAAA,GACxC;EAAEI,QAAQ,EAAE;AAAU,CACxB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["_redux","require","_reactRedux","_ModularUIConnector","_interopRequireDefault","_Constants","_Settings","_Form","_Notification","_Href","mapStateToProps","state","ownProps","isModal","router","location","modal","mapDispatchToProps","onPrevious","previousObject","onCancel","cancelForm","showFormNotification","reduxConnectedForm","connect","moduiConnectedForm","modularui","_ref","href","formHref","Href","pathname","search","getSetting","addParameter","propName","method","HTTP_METHODS","POST","connectForm","exports","compose"],"sources":["../../../src/redux/connectors/Form.js"],"sourcesContent":["// @flow\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\n\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport { cancelForm, previousObject } from \"../actions/Form\";\nimport { showFormNotification } from \"../actions/Notification\";\n\nimport Href from \"../../models/href/Href\";\n\nimport type { AbstractComponent } from \"react\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type { ContextRouter } from \"react-router\";\nimport type { ReduxState, ThunkAction } from \"../types\";\nimport type { ModularUIConnector, UpdateFormAction } from \"../_modularui/types\";\n\ntype OwnProps = {\n ...?ContextRouter,\n href?: Href,\n isModal?: boolean,\n redirectTo?: string,\n};\n\ntype StateProps = {\n isModal: boolean,\n};\n\ntype DispatchProps = {\n onPrevious: (form: FormModel) => UpdateFormAction,\n onCancel: (form: FormModel) => ThunkAction,\n showFormNotification: (form: FormModel) => ThunkAction,\n};\n\ntype Props = {\n ...OwnProps,\n ...StateProps,\n ...DispatchProps,\n};\n\nconst mapStateToProps = (\n state: ReduxState,\n ownProps: OwnProps,\n): StateProps => ({\n isModal: state.router.location?.state?.modal || ownProps.isModal || false,\n});\n\nconst mapDispatchToProps: DispatchProps = {\n onPrevious: previousObject,\n onCancel: cancelForm,\n showFormNotification,\n};\n\nconst reduxConnectedForm = connect<Props, OwnProps, StateProps, _, _, _>(\n mapStateToProps,\n mapDispatchToProps,\n);\n\nconst moduiConnectedForm: ModularUIConnector = modularui(\n \"Form\",\n ({ href, location }) => {\n const formHref = href || new Href(`${location.pathname}${location.search}`);\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return formHref;\n }\n\n return formHref.addParameter(\"commit\", \"false\");\n },\n { propName: \"form\", method: HTTP_METHODS.POST },\n);\n\n/**\n */\nexport const connectForm: (\n Component: AbstractComponent<Props>,\n) => AbstractComponent<OwnProps> = compose(\n moduiConnectedForm,\n reduxConnectedForm,\n);\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAL,sBAAA,CAAAH,OAAA;AA+BA,MAAMS,eAAe,GAAGA,CACtBC,KAAiB,EACjBC,QAAkB,MACF;EAChBC,OAAO,EAAEF,KAAK,CAACG,MAAM,CAACC,QAAQ,EAAEJ,KAAK,EAAEK,KAAK,IAAIJ,QAAQ,CAACC,OAAO,IAAI;AACtE,CAAC,CAAC;AAEF,MAAMI,kBAAiC,GAAG;EACxCC,UAAU,EAAEC,oBAAc;EAC1BC,QAAQ,EAAEC,gBAAU;EACpBC,oBAAoB,EAApBA;AACF,CAAC;AAED,MAAMC,kBAAkB,GAAG,IAAAC,mBAAO,EAChCd,eAAe,EACfO,kBACF,CAAC;AAED,MAAMQ,kBAAsC,GAAG,IAAAC,2BAAS,EACtD,MAAM,EACNC,IAAA,IAAwB;EAAA,IAAvB;IAAEC,IAAI;IAAEb;EAAS,CAAC,GAAAY,IAAA;EACjB,MAAME,QAAQ,GAAGD,IAAI,IAAI,IAAIE,aAAI,
|
|
1
|
+
{"version":3,"file":"Form.js","names":["_redux","require","_reactRedux","_ModularUIConnector","_interopRequireDefault","_Constants","_Settings","_Form","_Notification","_Href","mapStateToProps","state","ownProps","isModal","router","location","modal","mapDispatchToProps","onPrevious","previousObject","onCancel","cancelForm","showFormNotification","reduxConnectedForm","connect","moduiConnectedForm","modularui","_ref","href","formHref","Href","pathname","search","getSetting","addParameter","propName","method","HTTP_METHODS","POST","connectForm","exports","compose"],"sources":["../../../src/redux/connectors/Form.js"],"sourcesContent":["// @flow\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\n\nimport modularui from \"../_modularui/ModularUIConnector\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport { cancelForm, previousObject } from \"../actions/Form\";\nimport { showFormNotification } from \"../actions/Notification\";\n\nimport Href from \"../../models/href/Href\";\n\nimport type { AbstractComponent } from \"react\";\nimport type FormModel from \"../../models/form/FormModel\";\nimport type { ContextRouter } from \"react-router\";\nimport type { ReduxState, ThunkAction } from \"../types\";\nimport type { ModularUIConnector, UpdateFormAction } from \"../_modularui/types\";\n\ntype OwnProps = {\n ...?ContextRouter,\n href?: Href,\n isModal?: boolean,\n redirectTo?: string,\n};\n\ntype StateProps = {\n isModal: boolean,\n};\n\ntype DispatchProps = {\n onPrevious: (form: FormModel) => UpdateFormAction,\n onCancel: (form: FormModel) => ThunkAction,\n showFormNotification: (form: FormModel) => ThunkAction,\n};\n\ntype Props = {\n ...OwnProps,\n ...StateProps,\n ...DispatchProps,\n};\n\nconst mapStateToProps = (\n state: ReduxState,\n ownProps: OwnProps,\n): StateProps => ({\n isModal: state.router.location?.state?.modal || ownProps.isModal || false,\n});\n\nconst mapDispatchToProps: DispatchProps = {\n onPrevious: previousObject,\n onCancel: cancelForm,\n showFormNotification,\n};\n\nconst reduxConnectedForm = connect<Props, OwnProps, StateProps, _, _, _>(\n mapStateToProps,\n mapDispatchToProps,\n);\n\nconst moduiConnectedForm: ModularUIConnector = modularui(\n \"Form\",\n ({ href, location }) => {\n const formHref = href || new Href(`${location.pathname}${location.search}`);\n\n if (getSetting(\"ALWAYS_COMMIT_FORM\")) {\n return formHref;\n }\n\n return formHref.addParameter(\"commit\", \"false\");\n },\n { propName: \"form\", method: HTTP_METHODS.POST },\n);\n\n/**\n */\nexport const connectForm: (\n Component: AbstractComponent<Props>,\n) => AbstractComponent<OwnProps> = compose(\n moduiConnectedForm,\n reduxConnectedForm,\n);\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAL,sBAAA,CAAAH,OAAA;AA+BA,MAAMS,eAAe,GAAGA,CACtBC,KAAiB,EACjBC,QAAkB,MACF;EAChBC,OAAO,EAAEF,KAAK,CAACG,MAAM,CAACC,QAAQ,EAAEJ,KAAK,EAAEK,KAAK,IAAIJ,QAAQ,CAACC,OAAO,IAAI;AACtE,CAAC,CAAC;AAEF,MAAMI,kBAAiC,GAAG;EACxCC,UAAU,EAAEC,oBAAc;EAC1BC,QAAQ,EAAEC,gBAAU;EACpBC,oBAAoB,EAApBA;AACF,CAAC;AAED,MAAMC,kBAAkB,GAAG,IAAAC,mBAAO,EAChCd,eAAe,EACfO,kBACF,CAAC;AAED,MAAMQ,kBAAsC,GAAG,IAAAC,2BAAS,EACtD,MAAM,EACNC,IAAA,IAAwB;EAAA,IAAvB;IAAEC,IAAI;IAAEb;EAAS,CAAC,GAAAY,IAAA;EACjB,MAAME,QAAQ,GAAGD,IAAI,IAAI,IAAIE,aAAI,CAAC,GAAGf,QAAQ,CAACgB,QAAQ,GAAGhB,QAAQ,CAACiB,MAAM,EAAE,CAAC;EAE3E,IAAI,IAAAC,oBAAU,EAAC,oBAAoB,CAAC,EAAE;IACpC,OAAOJ,QAAQ;EACjB;EAEA,OAAOA,QAAQ,CAACK,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;AACjD,CAAC,EACD;EAAEC,QAAQ,EAAE,MAAM;EAAEC,MAAM,EAAEC,uBAAY,CAACC;AAAK,CAChD,CAAC;;AAED;AACA;AACO,MAAMC,WAEmB,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,cAAO,EACxChB,kBAAkB,EAClBF,kBACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.js","names":["RESOURCE_CACHE_PREFIX","Cache","constructor","_defineProperty2","default","sessionStorage","_cache","createResourceKey","requestArgs","resourceKey","url","params","locale","getItem","key","cache","cacheItem","JSON","parse","error","hasItem","addItem","value","stringValue","_stringify","setItem","removeItem","clear","pattern","_context","_filter","_keys","call","k","RegExp","test","forEach","loadOtherBrowserTabs","callback","window","addEventListener","e","sendSessionStorage","receiveSessionStorage","length","localStorage","Date","now","toString","_context2","newData","newValue","_entries","_ref","_ref2","_default","exports"],"sources":["../../../src/utils/browser/Cache.js"],"sourcesContent":["// @flow\nimport type { RequestOptions } from \"../fetch/types\";\n\nconst RESOURCE_CACHE_PREFIX = \"res:\";\n\n/**\n * Manage the browser cache\n */\nclass Cache {\n _cache: Storage;\n\n /**\n */\n constructor() {\n if (typeof sessionStorage !== \"undefined\") {\n this._cache = sessionStorage;\n }\n }\n\n /**\n * Create a key that can be used to cache resources, needs the request arguments and uses url, params and header of the request args\n * to create a key that is unique for time versions and locale\n */\n createResourceKey(requestArgs: RequestOptions): string {\n let resourceKey = requestArgs.url;\n\n if (requestArgs.params) {\n resourceKey += `|${requestArgs.params}`;\n }\n\n if (requestArgs.locale) {\n resourceKey += `|${requestArgs.locale}`;\n }\n\n return `${RESOURCE_CACHE_PREFIX}${resourceKey}`;\n }\n\n /**\n * Get a cached item by it's key\n */\n getItem(key: string): any {\n const cache = this._cache;\n\n if (!cache) {\n return null;\n }\n\n const cacheItem = cache.getItem(key);\n\n if (!cacheItem) {\n return null;\n }\n\n try {\n return JSON.parse(cacheItem);\n } catch (error) {\n return this._cache.getItem(key);\n }\n }\n\n /**\n * Check if the item with key exists in the browser cache\n */\n hasItem(key: string): boolean {\n return this.getItem(key) !== null;\n }\n\n /**\n * Add an item to the cache\n */\n addItem(key: string, value: string | Object) {\n const stringValue =\n typeof value === \"string\" ? value : JSON.stringify(value);\n\n this._cache.setItem(key, stringValue);\n }\n\n /**\n */\n setItem(key: string, value: string | Object) {\n this.addItem(key, value);\n }\n\n /**\n */\n removeItem(key: string) {\n this._cache.removeItem(key);\n }\n\n /**\n * Clear complete cache storage\n */\n clear(pattern: ?string) {\n if (!this._cache) {\n return;\n }\n\n if (pattern) {\n Object.keys(this._cache)\n .filter((k) => (pattern ? new RegExp(pattern).test(k) : true))\n .forEach((k) => this._cache.removeItem(k));\n } else {\n this._cache.clear();\n }\n }\n\n // Session storage is not available between different tabs in the same window,\n // this load method copies sessionStorage from other tabs into this tab using localStorage\n // see https://blog.guya.net/2015/06/12/sharing-sessionstorage-between-tabs-for-secure-multi-tab-authentication/\n /**\n */\n loadOtherBrowserTabs(callback: Function) {\n window.addEventListener(\"storage\", (e) => {\n this.sendSessionStorage(e);\n this.receiveSessionStorage(e, callback);\n });\n\n if (this._cache.length === 0) {\n // trigger retrieval of sessionstorage on other tabs\n localStorage.setItem(\"getSessionStorage\", Date.now().toString());\n }\n }\n\n /**\n */\n sendSessionStorage(e: StorageEvent) {\n if (e.key === \"getSessionStorage\") {\n localStorage.setItem(\"sessionStorage\", JSON.stringify(this._cache));\n localStorage.removeItem(\"sessionStorage\");\n }\n }\n\n /**\n */\n receiveSessionStorage(e: StorageEvent, callback: Function): any {\n if (e.key === \"sessionStorage\" && !this.getItem(\"sessionStorageCopied\")) {\n // receive sessionstorage from other tabs\n const newData = e.newValue ? JSON.parse(e.newValue) : {};\n Object.entries(newData)\n .filter(([key]) => !this.hasItem(key))\n .forEach(([key, value]) => {\n this.addItem(key, value);\n });\n\n this.setItem(\"sessionStorageCopied\", Date.now().toString());\n\n return callback();\n }\n\n return null;\n }\n}\n\nexport default (new Cache(): Cache);\n"],"mappings":";;;;;;;;;;;;AAGA,MAAMA,qBAAqB,GAAG,MAAM;;AAEpC;AACA;AACA;AACA,MAAMC,KAAK,CAAC;EAGV;AACF;EACEC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IACZ,IAAI,OAAOC,cAAc,KAAK,WAAW,EAAE;MACzC,IAAI,CAACC,MAAM,GAAGD,cAAc;IAC9B;EACF;;EAEA;AACF;AACA;AACA;EACEE,iBAAiBA,CAACC,WAA2B,EAAU;IACrD,IAAIC,WAAW,GAAGD,WAAW,CAACE,GAAG;IAEjC,IAAIF,WAAW,CAACG,MAAM,EAAE;MACtBF,WAAW,
|
|
1
|
+
{"version":3,"file":"Cache.js","names":["RESOURCE_CACHE_PREFIX","Cache","constructor","_defineProperty2","default","sessionStorage","_cache","createResourceKey","requestArgs","resourceKey","url","params","locale","getItem","key","cache","cacheItem","JSON","parse","error","hasItem","addItem","value","stringValue","_stringify","setItem","removeItem","clear","pattern","_context","_filter","_keys","call","k","RegExp","test","forEach","loadOtherBrowserTabs","callback","window","addEventListener","e","sendSessionStorage","receiveSessionStorage","length","localStorage","Date","now","toString","_context2","newData","newValue","_entries","_ref","_ref2","_default","exports"],"sources":["../../../src/utils/browser/Cache.js"],"sourcesContent":["// @flow\nimport type { RequestOptions } from \"../fetch/types\";\n\nconst RESOURCE_CACHE_PREFIX = \"res:\";\n\n/**\n * Manage the browser cache\n */\nclass Cache {\n _cache: Storage;\n\n /**\n */\n constructor() {\n if (typeof sessionStorage !== \"undefined\") {\n this._cache = sessionStorage;\n }\n }\n\n /**\n * Create a key that can be used to cache resources, needs the request arguments and uses url, params and header of the request args\n * to create a key that is unique for time versions and locale\n */\n createResourceKey(requestArgs: RequestOptions): string {\n let resourceKey = requestArgs.url;\n\n if (requestArgs.params) {\n resourceKey += `|${requestArgs.params}`;\n }\n\n if (requestArgs.locale) {\n resourceKey += `|${requestArgs.locale}`;\n }\n\n return `${RESOURCE_CACHE_PREFIX}${resourceKey}`;\n }\n\n /**\n * Get a cached item by it's key\n */\n getItem(key: string): any {\n const cache = this._cache;\n\n if (!cache) {\n return null;\n }\n\n const cacheItem = cache.getItem(key);\n\n if (!cacheItem) {\n return null;\n }\n\n try {\n return JSON.parse(cacheItem);\n } catch (error) {\n return this._cache.getItem(key);\n }\n }\n\n /**\n * Check if the item with key exists in the browser cache\n */\n hasItem(key: string): boolean {\n return this.getItem(key) !== null;\n }\n\n /**\n * Add an item to the cache\n */\n addItem(key: string, value: string | Object) {\n const stringValue =\n typeof value === \"string\" ? value : JSON.stringify(value);\n\n this._cache.setItem(key, stringValue);\n }\n\n /**\n */\n setItem(key: string, value: string | Object) {\n this.addItem(key, value);\n }\n\n /**\n */\n removeItem(key: string) {\n this._cache.removeItem(key);\n }\n\n /**\n * Clear complete cache storage\n */\n clear(pattern: ?string) {\n if (!this._cache) {\n return;\n }\n\n if (pattern) {\n Object.keys(this._cache)\n .filter((k) => (pattern ? new RegExp(pattern).test(k) : true))\n .forEach((k) => this._cache.removeItem(k));\n } else {\n this._cache.clear();\n }\n }\n\n // Session storage is not available between different tabs in the same window,\n // this load method copies sessionStorage from other tabs into this tab using localStorage\n // see https://blog.guya.net/2015/06/12/sharing-sessionstorage-between-tabs-for-secure-multi-tab-authentication/\n /**\n */\n loadOtherBrowserTabs(callback: Function) {\n window.addEventListener(\"storage\", (e) => {\n this.sendSessionStorage(e);\n this.receiveSessionStorage(e, callback);\n });\n\n if (this._cache.length === 0) {\n // trigger retrieval of sessionstorage on other tabs\n localStorage.setItem(\"getSessionStorage\", Date.now().toString());\n }\n }\n\n /**\n */\n sendSessionStorage(e: StorageEvent) {\n if (e.key === \"getSessionStorage\") {\n localStorage.setItem(\"sessionStorage\", JSON.stringify(this._cache));\n localStorage.removeItem(\"sessionStorage\");\n }\n }\n\n /**\n */\n receiveSessionStorage(e: StorageEvent, callback: Function): any {\n if (e.key === \"sessionStorage\" && !this.getItem(\"sessionStorageCopied\")) {\n // receive sessionstorage from other tabs\n const newData = e.newValue ? JSON.parse(e.newValue) : {};\n Object.entries(newData)\n .filter(([key]) => !this.hasItem(key))\n .forEach(([key, value]) => {\n this.addItem(key, value);\n });\n\n this.setItem(\"sessionStorageCopied\", Date.now().toString());\n\n return callback();\n }\n\n return null;\n }\n}\n\nexport default (new Cache(): Cache);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverFetch.js","names":["_Settings","require","_exceptions","serverFetch","args","_context","urlNoBase","_includes","default","url","call","replace","getBasePath","params","data","dataFetcher","fetch","jsonData","JSON","parse","error","_promise","reject","FetchException","resolve"],"sources":["../../../src/utils/fetch/serverFetch.js"],"sourcesContent":["// @flow\nimport { getBasePath } from \"../../constants/Settings\";\nimport { FetchException } from \"../../exceptions\";\n\nimport type { RequestOptions } from \"./types\";\n\n/**\n * Fetch data from server (uses nashorn and datafetcher).\n */\nexport default function serverFetch(args: RequestOptions): Promise<any> {\n // remove contextPath of url, when the request is internal the context path is not needed\n const urlNoBase = args.url.includes(\"http\")\n ? args.url\n : args.url.replace(getBasePath(), \"\");\n const params = args.params\n ? args.params.replace(\"includeContext=true\", \"\")\n : \"\";\n const url = params === \"\" ? urlNoBase : `${urlNoBase}?${params}`;\n\n const data = dataFetcher.fetch(url, args);\n\n try {\n const jsonData = JSON.parse(data);\n\n if (jsonData.error) {\n return Promise.reject(new FetchException(jsonData, null, args));\n }\n\n return Promise.resolve(jsonData);\n } catch (error) {\n return Promise.reject(error);\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA;AACA;AACA;AACe,SAASE,WAAWA,CAACC,IAAoB,EAAgB;EAAA,IAAAC,QAAA;EACtE;EACA,MAAMC,SAAS,GAAG,IAAAC,SAAA,CAAAC,OAAA,EAAAH,QAAA,GAAAD,IAAI,CAACK,GAAG,EAAAC,IAAA,CAAAL,QAAA,EAAU,MAAM,CAAC,GACvCD,IAAI,CAACK,GAAG,GACRL,IAAI,CAACK,GAAG,CAACE,OAAO,CAAC,IAAAC,qBAAW,EAAC,CAAC,EAAE,EAAE,CAAC;EACvC,MAAMC,MAAM,GAAGT,IAAI,CAACS,MAAM,GACtBT,IAAI,CAACS,MAAM,CAACF,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,GAC9C,EAAE;EACN,MAAMF,GAAG,GAAGI,MAAM,KAAK,EAAE,GAAGP,SAAS,
|
|
1
|
+
{"version":3,"file":"serverFetch.js","names":["_Settings","require","_exceptions","serverFetch","args","_context","urlNoBase","_includes","default","url","call","replace","getBasePath","params","data","dataFetcher","fetch","jsonData","JSON","parse","error","_promise","reject","FetchException","resolve"],"sources":["../../../src/utils/fetch/serverFetch.js"],"sourcesContent":["// @flow\nimport { getBasePath } from \"../../constants/Settings\";\nimport { FetchException } from \"../../exceptions\";\n\nimport type { RequestOptions } from \"./types\";\n\n/**\n * Fetch data from server (uses nashorn and datafetcher).\n */\nexport default function serverFetch(args: RequestOptions): Promise<any> {\n // remove contextPath of url, when the request is internal the context path is not needed\n const urlNoBase = args.url.includes(\"http\")\n ? args.url\n : args.url.replace(getBasePath(), \"\");\n const params = args.params\n ? args.params.replace(\"includeContext=true\", \"\")\n : \"\";\n const url = params === \"\" ? urlNoBase : `${urlNoBase}?${params}`;\n\n const data = dataFetcher.fetch(url, args);\n\n try {\n const jsonData = JSON.parse(data);\n\n if (jsonData.error) {\n return Promise.reject(new FetchException(jsonData, null, args));\n }\n\n return Promise.resolve(jsonData);\n } catch (error) {\n return Promise.reject(error);\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA;AACA;AACA;AACe,SAASE,WAAWA,CAACC,IAAoB,EAAgB;EAAA,IAAAC,QAAA;EACtE;EACA,MAAMC,SAAS,GAAG,IAAAC,SAAA,CAAAC,OAAA,EAAAH,QAAA,GAAAD,IAAI,CAACK,GAAG,EAAAC,IAAA,CAAAL,QAAA,EAAU,MAAM,CAAC,GACvCD,IAAI,CAACK,GAAG,GACRL,IAAI,CAACK,GAAG,CAACE,OAAO,CAAC,IAAAC,qBAAW,EAAC,CAAC,EAAE,EAAE,CAAC;EACvC,MAAMC,MAAM,GAAGT,IAAI,CAACS,MAAM,GACtBT,IAAI,CAACS,MAAM,CAACF,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,GAC9C,EAAE;EACN,MAAMF,GAAG,GAAGI,MAAM,KAAK,EAAE,GAAGP,SAAS,GAAG,GAAGA,SAAS,IAAIO,MAAM,EAAE;EAEhE,MAAMC,IAAI,GAAGC,WAAW,CAACC,KAAK,CAACP,GAAG,EAAEL,IAAI,CAAC;EAEzC,IAAI;IACF,MAAMa,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACL,IAAI,CAAC;IAEjC,IAAIG,QAAQ,CAACG,KAAK,EAAE;MAClB,OAAOC,QAAA,CAAAb,OAAA,CAAQc,MAAM,CAAC,IAAIC,0BAAc,CAACN,QAAQ,EAAE,IAAI,EAAEb,IAAI,CAAC,CAAC;IACjE;IAEA,OAAOiB,QAAA,CAAAb,OAAA,CAAQgB,OAAO,CAACP,QAAQ,CAAC;EAClC,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,OAAOC,QAAA,CAAAb,OAAA,CAAQc,MAAM,CAACF,KAAK,CAAC;EAC9B;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universalFetch.js","names":["_objects","require","_Constants","_constants","_serverFetch","_interopRequireDefault","_xhr","_Cache","IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","_promise","default","resolve","reject","check","Cache","getItem","cachedItem","Error","setTimeout","browserFetch","args","cacheContributions","cache","createResourceKey","hasItem","cacheItem","isPlainObject","addItem","xhr","then","response","universalFetch","locale","headers","includeContext","url","IS_SYNC","serverFetch","_default","exports"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../helpers/objects\";\n\nimport { IS_SYNC } from \"../../constants/Constants\";\nimport { cacheContributions } from \"../../constants\";\n\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = any;\n\nconst IS_FETCHING = \"is-fetching\";\n\n/**\n * Checks each x ms if a cache item is set after fetching the item.\n * @private\n */\nconst waitForCachedItem = (cacheKey: string) => {\n let TIMEOUT = 3000;\n const CHECK_TIMEOUT = 100;\n\n return new Promise<CachedResponse>((resolve, reject) => {\n const check = () => {\n if (Cache.getItem(cacheKey) !== IS_FETCHING) {\n const cachedItem = Cache.getItem(cacheKey);\n if (cachedItem != null) {\n resolve(cachedItem);\n } else {\n reject(new Error(\"Empty cached item\"));\n }\n } else if (TIMEOUT <= 0) {\n reject(new Error(\"Empty cached item\"));\n } else {\n TIMEOUT = TIMEOUT - CHECK_TIMEOUT;\n setTimeout(check, CHECK_TIMEOUT);\n }\n };\n\n setTimeout(check, CHECK_TIMEOUT);\n });\n};\n\n/**\n * @private\n */\nconst browserFetch = (args: RequestOptions) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n if (Cache.hasItem(cacheKey)) {\n const cacheItem = Cache.getItem(cacheKey);\n\n if (cacheItem != null) {\n if (cacheItem === IS_FETCHING) {\n return waitForCachedItem(cacheKey);\n } else if (isPlainObject(cacheItem)) {\n return Promise.resolve(cacheItem);\n }\n }\n }\n\n Cache.addItem(cacheKey, IS_FETCHING);\n }\n\n return xhr(args).then((response) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n Cache.addItem(cacheKey, response);\n }\n\n return response;\n });\n};\n\n/**\n * Request data from server, uses server datafetcher or xhr in browser.\n */\nconst universalFetch = (\n args: RequestOptions,\n): Promise<CachedResponse> | Promise<any> => {\n // Set locale as Accept-Language header\n if (args.locale) {\n args.headers = {\n \"Accept-Language\": args.locale,\n };\n }\n\n if (args.includeContext) {\n args.url = `${args.url}?includeContext=true`;\n }\n\n // server side no access to the browser cache apis, no cache available\n if (IS_SYNC) {\n return serverFetch(args);\n }\n\n return browserFetch(args);\n};\n\nexport default universalFetch;\n"],"mappings":";;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAF,sBAAA,CAAAJ,OAAA;AAMA,MAAMO,WAAW,GAAG,aAAa;;AAEjC;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAIC,QAAgB,IAAK;EAC9C,IAAIC,OAAO,GAAG,IAAI;EAClB,MAAMC,aAAa,GAAG,GAAG;EAEzB,OAAO,IAAAC,QAAA,CAAAC,OAAA,CAA4B,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtD,MAAMC,KAAK,GAAGA,CAAA,KAAM;MAClB,IAAIC,cAAK,CAACC,OAAO,CAACT,QAAQ,CAAC,KAAKF,WAAW,EAAE;QAC3C,MAAMY,UAAU,GAAGF,cAAK,CAACC,OAAO,CAACT,QAAQ,CAAC;QAC1C,IAAIU,UAAU,IAAI,IAAI,EAAE;UACtBL,OAAO,CAACK,UAAU,CAAC;QACrB,CAAC,MAAM;UACLJ,MAAM,CAAC,IAAIK,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxC;MACF,CAAC,MAAM,IAAIV,OAAO,IAAI,CAAC,EAAE;QACvBK,MAAM,CAAC,IAAIK,KAAK,CAAC,mBAAmB,CAAC,CAAC;MACxC,CAAC,MAAM;QACLV,OAAO,GAAGA,OAAO,GAAGC,aAAa;QACjCU,UAAU,CAACL,KAAK,EAAEL,aAAa,CAAC;MAClC;IACF,CAAC;IAEDU,UAAU,CAACL,KAAK,EAAEL,aAAa,CAAC;EAClC,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMW,YAAY,GAAIC,IAAoB,IAAK;EAC7C,IAAI,IAAAC,6BAAkB,EAAC,CAAC,IAAID,IAAI,CAACE,KAAK,EAAE;IACtC,MAAMhB,QAAQ,GAAGQ,cAAK,CAACS,iBAAiB,CAACH,IAAI,CAAC;IAE9C,IAAIN,cAAK,CAACU,OAAO,CAAClB,QAAQ,CAAC,EAAE;MAC3B,MAAMmB,SAAS,GAAGX,cAAK,CAACC,OAAO,CAACT,QAAQ,CAAC;MAEzC,IAAImB,SAAS,IAAI,IAAI,EAAE;QACrB,IAAIA,SAAS,KAAKrB,WAAW,EAAE;UAC7B,OAAOC,iBAAiB,CAACC,QAAQ,CAAC;QACpC,CAAC,MAAM,IAAI,IAAAoB,sBAAa,EAACD,SAAS,CAAC,EAAE;UACnC,OAAOhB,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACc,SAAS,CAAC;QACnC;MACF;IACF;IAEAX,cAAK,CAACa,OAAO,CAACrB,QAAQ,EAAEF,WAAW,CAAC;EACtC;EAEA,OAAO,IAAAwB,YAAG,EAACR,IAAI,CAAC,CAACS,IAAI,CAAEC,QAAQ,IAAK;IAClC,IAAI,IAAAT,6BAAkB,EAAC,CAAC,IAAID,IAAI,CAACE,KAAK,EAAE;MACtC,MAAMhB,QAAQ,GAAGQ,cAAK,CAACS,iBAAiB,CAACH,IAAI,CAAC;MAE9CN,cAAK,CAACa,OAAO,CAACrB,QAAQ,EAAEwB,QAAQ,CAAC;IACnC;IAEA,OAAOA,QAAQ;EACjB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMC,cAAc,GAClBX,IAAoB,IACuB;EAC3C;EACA,IAAIA,IAAI,CAACY,MAAM,EAAE;IACfZ,IAAI,CAACa,OAAO,GAAG;MACb,iBAAiB,EAAEb,IAAI,CAACY;IAC1B,CAAC;EACH;EAEA,IAAIZ,IAAI,CAACc,cAAc,EAAE;IACvBd,IAAI,CAACe,GAAG,
|
|
1
|
+
{"version":3,"file":"universalFetch.js","names":["_objects","require","_Constants","_constants","_serverFetch","_interopRequireDefault","_xhr","_Cache","IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","_promise","default","resolve","reject","check","Cache","getItem","cachedItem","Error","setTimeout","browserFetch","args","cacheContributions","cache","createResourceKey","hasItem","cacheItem","isPlainObject","addItem","xhr","then","response","universalFetch","locale","headers","includeContext","url","IS_SYNC","serverFetch","_default","exports"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../helpers/objects\";\n\nimport { IS_SYNC } from \"../../constants/Constants\";\nimport { cacheContributions } from \"../../constants\";\n\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = any;\n\nconst IS_FETCHING = \"is-fetching\";\n\n/**\n * Checks each x ms if a cache item is set after fetching the item.\n * @private\n */\nconst waitForCachedItem = (cacheKey: string) => {\n let TIMEOUT = 3000;\n const CHECK_TIMEOUT = 100;\n\n return new Promise<CachedResponse>((resolve, reject) => {\n const check = () => {\n if (Cache.getItem(cacheKey) !== IS_FETCHING) {\n const cachedItem = Cache.getItem(cacheKey);\n if (cachedItem != null) {\n resolve(cachedItem);\n } else {\n reject(new Error(\"Empty cached item\"));\n }\n } else if (TIMEOUT <= 0) {\n reject(new Error(\"Empty cached item\"));\n } else {\n TIMEOUT = TIMEOUT - CHECK_TIMEOUT;\n setTimeout(check, CHECK_TIMEOUT);\n }\n };\n\n setTimeout(check, CHECK_TIMEOUT);\n });\n};\n\n/**\n * @private\n */\nconst browserFetch = (args: RequestOptions) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n if (Cache.hasItem(cacheKey)) {\n const cacheItem = Cache.getItem(cacheKey);\n\n if (cacheItem != null) {\n if (cacheItem === IS_FETCHING) {\n return waitForCachedItem(cacheKey);\n } else if (isPlainObject(cacheItem)) {\n return Promise.resolve(cacheItem);\n }\n }\n }\n\n Cache.addItem(cacheKey, IS_FETCHING);\n }\n\n return xhr(args).then((response) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n Cache.addItem(cacheKey, response);\n }\n\n return response;\n });\n};\n\n/**\n * Request data from server, uses server datafetcher or xhr in browser.\n */\nconst universalFetch = (\n args: RequestOptions,\n): Promise<CachedResponse> | Promise<any> => {\n // Set locale as Accept-Language header\n if (args.locale) {\n args.headers = {\n \"Accept-Language\": args.locale,\n };\n }\n\n if (args.includeContext) {\n args.url = `${args.url}?includeContext=true`;\n }\n\n // server side no access to the browser cache apis, no cache available\n if (IS_SYNC) {\n return serverFetch(args);\n }\n\n return browserFetch(args);\n};\n\nexport default universalFetch;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": \"en\",\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": \"en\",\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n this.xmlhttp.withCredentials = true;\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHref.js","names":["parseUrl","href","path","hash","querystring","_includes","default","call","hashSplit","split","qsSplit","exports","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_urlSearchParams","params","_from","_keys","param","delete","toString","createHref","context","dynamicPart","location","_startsWith","replace","search","_context","substring"],"sources":["../../../src/utils/helpers/createHref.js"],"sourcesContent":["// @flow\nimport type { Location } from \"react-router\";\n\n/**\n */\nexport const parseUrl = (\n href: string,\n): { path: string, querystring: null | string, hash: null | string } => {\n let path = href;\n let hash = null;\n let querystring = null;\n if (href.includes(\"#\")) {\n const hashSplit = href.split(\"#\");\n path = hashSplit[0];\n hash = hashSplit[1];\n }\n if (href.includes(\"?\")) {\n const qsSplit = path.split(\"?\");\n path = qsSplit[0];\n querystring = qsSplit[1];\n }\n return {\n path,\n querystring,\n hash,\n };\n};\n\n/**\n */\nexport const filterParameters = (\n href: string,\n allowedParameters?: Array<string>,\n): string => {\n if (!Array.isArray(allowedParameters)) {\n return href;\n }\n\n const url = parseUrl(href);\n let filteredUrl = url.path;\n if (url.querystring) {\n const searchParams = new URLSearchParams(url.querystring);\n const params = Array.from(searchParams.keys());\n for (const param of params) {\n if (!allowedParameters.includes(param)) {\n searchParams.delete(param);\n }\n }\n filteredUrl = filteredUrl + \"?\" + searchParams.toString();\n }\n if (url.hash) {\n filteredUrl = filteredUrl + \"#\" + url.hash;\n }\n return filteredUrl;\n};\n\n/**\n */\nexport const createHref = (\n context: string,\n dynamicPart: string,\n location?: ?Location,\n allowedParameters?: Array<string>,\n): string => {\n let href = dynamicPart;\n if (!href.startsWith(`/${context}/`)) {\n href = `/${context}/${href}`;\n }\n\n href = href.replace(/\\/\\//g, \"/\");\n\n if (location?.search && !href.includes(\"?\")) {\n const search = location.search.startsWith(\"?\")\n ? location.search.substring(1)\n : location.search;\n href = `${href}?${search}`;\n }\n\n return filterParameters(href, allowedParameters);\n};\n"],"mappings":";;;;;;;;;;;;AAGA;AACA;AACO,MAAMA,QAAQ,GACnBC,IAAY,IAC0D;EACtE,IAAIC,IAAI,GAAGD,IAAI;EACf,IAAIE,IAAI,GAAG,IAAI;EACf,IAAIC,WAAW,GAAG,IAAI;EACtB,IAAI,IAAAC,SAAA,CAAAC,OAAA,EAAAL,IAAI,EAAAM,IAAA,CAAJN,IAAI,EAAU,GAAG,CAAC,EAAE;IACtB,MAAMO,SAAS,GAAGP,IAAI,CAACQ,KAAK,CAAC,GAAG,CAAC;IACjCP,IAAI,GAAGM,SAAS,CAAC,CAAC,CAAC;IACnBL,IAAI,GAAGK,SAAS,CAAC,CAAC,CAAC;EACrB;EACA,IAAI,IAAAH,SAAA,CAAAC,OAAA,EAAAL,IAAI,EAAAM,IAAA,CAAJN,IAAI,EAAU,GAAG,CAAC,EAAE;IACtB,MAAMS,OAAO,GAAGR,IAAI,CAACO,KAAK,CAAC,GAAG,CAAC;IAC/BP,IAAI,GAAGQ,OAAO,CAAC,CAAC,CAAC;IACjBN,WAAW,GAAGM,OAAO,CAAC,CAAC,CAAC;EAC1B;EACA,OAAO;IACLR,IAAI;IACJE,WAAW;IACXD;EACF,CAAC;AACH,CAAC;;AAED;AACA;AADAQ,OAAA,CAAAX,QAAA,GAAAA,QAAA;AAEO,MAAMY,gBAAgB,GAAGA,CAC9BX,IAAY,EACZY,iBAAiC,KACtB;EACX,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,iBAAiB,CAAC,EAAE;IACrC,OAAOZ,IAAI;EACb;EAEA,MAAMe,GAAG,GAAGhB,QAAQ,CAACC,IAAI,CAAC;EAC1B,IAAIgB,WAAW,GAAGD,GAAG,CAACd,IAAI;EAC1B,IAAIc,GAAG,CAACZ,WAAW,EAAE;IACnB,MAAMc,YAAY,GAAG,IAAAC,gBAAA,CAAAb,OAAA,CAAoBU,GAAG,CAACZ,WAAW,CAAC;IACzD,MAAMgB,MAAM,GAAG,IAAAC,KAAA,CAAAf,OAAA,EAAW,IAAAgB,KAAA,CAAAhB,OAAA,EAAAY,YAAY,EAAAX,IAAA,CAAZW,YAAkB,CAAC,CAAC;IAC9C,KAAK,MAAMK,KAAK,IAAIH,MAAM,EAAE;MAC1B,IAAI,CAAC,IAAAf,SAAA,CAAAC,OAAA,EAAAO,iBAAiB,EAAAN,IAAA,CAAjBM,iBAAiB,EAAUU,KAAK,CAAC,EAAE;QACtCL,YAAY,CAACM,MAAM,CAACD,KAAK,CAAC;MAC5B;IACF;IACAN,WAAW,GAAGA,WAAW,GAAG,GAAG,GAAGC,YAAY,CAACO,QAAQ,CAAC,CAAC;EAC3D;EACA,IAAIT,GAAG,CAACb,IAAI,EAAE;IACZc,WAAW,GAAGA,WAAW,GAAG,GAAG,GAAGD,GAAG,CAACb,IAAI;EAC5C;EACA,OAAOc,WAAW;AACpB,CAAC;;AAED;AACA;AADAN,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEO,MAAMc,UAAU,GAAGA,CACxBC,OAAe,EACfC,WAAmB,EACnBC,QAAoB,EACpBhB,iBAAiC,KACtB;EACX,IAAIZ,IAAI,GAAG2B,WAAW;EACtB,IAAI,CAAC,IAAAE,WAAA,CAAAxB,OAAA,EAAAL,IAAI,EAAAM,IAAA,CAAJN,IAAI,
|
|
1
|
+
{"version":3,"file":"createHref.js","names":["parseUrl","href","path","hash","querystring","_includes","default","call","hashSplit","split","qsSplit","exports","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_urlSearchParams","params","_from","_keys","param","delete","toString","createHref","context","dynamicPart","location","_startsWith","replace","search","_context","substring"],"sources":["../../../src/utils/helpers/createHref.js"],"sourcesContent":["// @flow\nimport type { Location } from \"react-router\";\n\n/**\n */\nexport const parseUrl = (\n href: string,\n): { path: string, querystring: null | string, hash: null | string } => {\n let path = href;\n let hash = null;\n let querystring = null;\n if (href.includes(\"#\")) {\n const hashSplit = href.split(\"#\");\n path = hashSplit[0];\n hash = hashSplit[1];\n }\n if (href.includes(\"?\")) {\n const qsSplit = path.split(\"?\");\n path = qsSplit[0];\n querystring = qsSplit[1];\n }\n return {\n path,\n querystring,\n hash,\n };\n};\n\n/**\n */\nexport const filterParameters = (\n href: string,\n allowedParameters?: Array<string>,\n): string => {\n if (!Array.isArray(allowedParameters)) {\n return href;\n }\n\n const url = parseUrl(href);\n let filteredUrl = url.path;\n if (url.querystring) {\n const searchParams = new URLSearchParams(url.querystring);\n const params = Array.from(searchParams.keys());\n for (const param of params) {\n if (!allowedParameters.includes(param)) {\n searchParams.delete(param);\n }\n }\n filteredUrl = filteredUrl + \"?\" + searchParams.toString();\n }\n if (url.hash) {\n filteredUrl = filteredUrl + \"#\" + url.hash;\n }\n return filteredUrl;\n};\n\n/**\n */\nexport const createHref = (\n context: string,\n dynamicPart: string,\n location?: ?Location,\n allowedParameters?: Array<string>,\n): string => {\n let href = dynamicPart;\n if (!href.startsWith(`/${context}/`)) {\n href = `/${context}/${href}`;\n }\n\n href = href.replace(/\\/\\//g, \"/\");\n\n if (location?.search && !href.includes(\"?\")) {\n const search = location.search.startsWith(\"?\")\n ? location.search.substring(1)\n : location.search;\n href = `${href}?${search}`;\n }\n\n return filterParameters(href, allowedParameters);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositoryResource.js","names":["_constants","require","getRepositoryResourceUrl","resourceUrl","basePath","getBasePath","_startsWith","default","call","RESOURCE_PATH","exports"],"sources":["../../../src/utils/helpers/repositoryResource.js"],"sourcesContent":["// @flow\nimport { getBasePath, RESOURCE_PATH } from \"../../constants\";\n\n/**\n * Creates an url to a resource in the Be Informed repository\n * Only possible when serving using the UI Servlet of Be Informed\n */\nexport const getRepositoryResourceUrl = (resourceUrl: string): string => {\n const basePath = getBasePath();\n\n if (resourceUrl.startsWith(basePath)) {\n return resourceUrl;\n }\n\n if (resourceUrl.startsWith(RESOURCE_PATH)) {\n return `${basePath}${resourceUrl}`;\n }\n\n return `${basePath}${RESOURCE_PATH}${resourceUrl}`;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAIC,WAAmB,IAAa;EACvE,MAAMC,QAAQ,GAAG,IAAAC,sBAAW,EAAC,CAAC;EAE9B,IAAI,IAAAC,WAAA,CAAAC,OAAA,EAAAJ,WAAW,EAAAK,IAAA,CAAXL,WAAW,EAAYC,QAAQ,CAAC,EAAE;IACpC,OAAOD,WAAW;EACpB;EAEA,IAAI,IAAAG,WAAA,CAAAC,OAAA,EAAAJ,WAAW,EAAAK,IAAA,CAAXL,WAAW,EAAYM,wBAAa,CAAC,EAAE;IACzC,
|
|
1
|
+
{"version":3,"file":"repositoryResource.js","names":["_constants","require","getRepositoryResourceUrl","resourceUrl","basePath","getBasePath","_startsWith","default","call","RESOURCE_PATH","exports"],"sources":["../../../src/utils/helpers/repositoryResource.js"],"sourcesContent":["// @flow\nimport { getBasePath, RESOURCE_PATH } from \"../../constants\";\n\n/**\n * Creates an url to a resource in the Be Informed repository\n * Only possible when serving using the UI Servlet of Be Informed\n */\nexport const getRepositoryResourceUrl = (resourceUrl: string): string => {\n const basePath = getBasePath();\n\n if (resourceUrl.startsWith(basePath)) {\n return resourceUrl;\n }\n\n if (resourceUrl.startsWith(RESOURCE_PATH)) {\n return `${basePath}${resourceUrl}`;\n }\n\n return `${basePath}${RESOURCE_PATH}${resourceUrl}`;\n};\n"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAIC,WAAmB,IAAa;EACvE,MAAMC,QAAQ,GAAG,IAAAC,sBAAW,EAAC,CAAC;EAE9B,IAAI,IAAAC,WAAA,CAAAC,OAAA,EAAAJ,WAAW,EAAAK,IAAA,CAAXL,WAAW,EAAYC,QAAQ,CAAC,EAAE;IACpC,OAAOD,WAAW;EACpB;EAEA,IAAI,IAAAG,WAAA,CAAAC,OAAA,EAAAJ,WAAW,EAAAK,IAAA,CAAXL,WAAW,EAAYM,wBAAa,CAAC,EAAE;IACzC,OAAO,GAAGL,QAAQ,GAAGD,WAAW,EAAE;EACpC;EAEA,OAAO,GAAGC,QAAQ,GAAGK,wBAAa,GAAGN,WAAW,EAAE;AACpD,CAAC;AAACO,OAAA,CAAAR,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeHtml.js","names":["_htmlEntities","require","_exceptions","properEntityEncoding","html","encode","mode","level","removeUnwantedHtml","options","arguments","length","undefined","allowedTags","IllegalArgumentException","correctEntityHtml","htmlWithoutAttributes","replace","htmlWithCorrectBR","Array","isArray","join","pattern","regex","RegExp","exports"],"sources":["../../../src/utils/helpers/sanitizeHtml.js"],"sourcesContent":["// @flow\nimport { encode } from \"html-entities\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\ntype removeUnwantedHtmlOptions = {\n allowedTags?: Array<string>,\n};\n\n/**\n * Translates html entities to their correct decimal equivalent\n * When path is only one deep better use optional chaining\n */\nconst properEntityEncoding = (html: string) => {\n return encode(html, { mode: \"nonAsciiPrintableOnly\", level: \"xml\" });\n};\n\n/**\n * removes unwanted html, this might result in incorrect html, as it removes all html that we don't except,\n * like <b style=\"font-weight: 400\">bold</b> will result in bold</b>\n */\nconst removeUnwantedHtml = (\n html: string,\n options: removeUnwantedHtmlOptions = {\n allowedTags: [\"p\", \"br\", \"b\", \"i\", \"u\", \"strike\"],\n },\n): string => {\n if (typeof html !== \"string\") {\n throw new IllegalArgumentException(\"sanitizeHTML method expects a string\");\n }\n\n const correctEntityHtml = properEntityEncoding(html);\n\n // remove attributes from html elements\n const htmlWithoutAttributes = correctEntityHtml.replace(\n /<(\\w+)(.|[\\r\\n])*?>/gi,\n \"<$1>\",\n );\n\n const htmlWithCorrectBR = htmlWithoutAttributes.replace(\n /<br\\s*>/gi,\n \"<br />\",\n );\n\n // remove not allowed tags\n const allowedTags = Array.isArray(options.allowedTags)\n ? options.allowedTags.join(\"|\")\n : \"\";\n const pattern = `<(?!\\\\/?(${allowedTags})(>|\\\\s\\\\/))[^<]+?>`;\n const regex = new RegExp(pattern, \"gi\");\n\n return htmlWithCorrectBR.replace(regex, \"\");\n};\n\nexport { removeUnwantedHtml };\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACA;AACA,MAAME,oBAAoB,GAAIC,IAAY,IAAK;EAC7C,OAAO,IAAAC,oBAAM,EAACD,IAAI,EAAE;IAAEE,IAAI,EAAE,uBAAuB;IAAEC,KAAK,EAAE;EAAM,CAAC,CAAC;AACtE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,SAAAA,CACzBJ,IAAY,EAID;EAAA,IAHXK,OAAkC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACnCG,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;EAClD,CAAC;EAED,IAAI,OAAOT,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAM,IAAIU,oCAAwB,CAAC,sCAAsC,CAAC;EAC5E;EAEA,MAAMC,iBAAiB,GAAGZ,oBAAoB,CAACC,IAAI,CAAC;;EAEpD;EACA,MAAMY,qBAAqB,GAAGD,iBAAiB,CAACE,OAAO,CACrD,uBAAuB,EACvB,MACF,CAAC;EAED,MAAMC,iBAAiB,GAAGF,qBAAqB,CAACC,OAAO,CACrD,WAAW,EACX,QACF,CAAC;;EAED;EACA,MAAMJ,WAAW,GAAGM,KAAK,CAACC,OAAO,CAACX,OAAO,CAACI,WAAW,CAAC,GAClDJ,OAAO,CAACI,WAAW,CAACQ,IAAI,CAAC,GAAG,CAAC,GAC7B,EAAE;EACN,MAAMC,OAAO,
|
|
1
|
+
{"version":3,"file":"sanitizeHtml.js","names":["_htmlEntities","require","_exceptions","properEntityEncoding","html","encode","mode","level","removeUnwantedHtml","options","arguments","length","undefined","allowedTags","IllegalArgumentException","correctEntityHtml","htmlWithoutAttributes","replace","htmlWithCorrectBR","Array","isArray","join","pattern","regex","RegExp","exports"],"sources":["../../../src/utils/helpers/sanitizeHtml.js"],"sourcesContent":["// @flow\nimport { encode } from \"html-entities\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\ntype removeUnwantedHtmlOptions = {\n allowedTags?: Array<string>,\n};\n\n/**\n * Translates html entities to their correct decimal equivalent\n * When path is only one deep better use optional chaining\n */\nconst properEntityEncoding = (html: string) => {\n return encode(html, { mode: \"nonAsciiPrintableOnly\", level: \"xml\" });\n};\n\n/**\n * removes unwanted html, this might result in incorrect html, as it removes all html that we don't except,\n * like <b style=\"font-weight: 400\">bold</b> will result in bold</b>\n */\nconst removeUnwantedHtml = (\n html: string,\n options: removeUnwantedHtmlOptions = {\n allowedTags: [\"p\", \"br\", \"b\", \"i\", \"u\", \"strike\"],\n },\n): string => {\n if (typeof html !== \"string\") {\n throw new IllegalArgumentException(\"sanitizeHTML method expects a string\");\n }\n\n const correctEntityHtml = properEntityEncoding(html);\n\n // remove attributes from html elements\n const htmlWithoutAttributes = correctEntityHtml.replace(\n /<(\\w+)(.|[\\r\\n])*?>/gi,\n \"<$1>\",\n );\n\n const htmlWithCorrectBR = htmlWithoutAttributes.replace(\n /<br\\s*>/gi,\n \"<br />\",\n );\n\n // remove not allowed tags\n const allowedTags = Array.isArray(options.allowedTags)\n ? options.allowedTags.join(\"|\")\n : \"\";\n const pattern = `<(?!\\\\/?(${allowedTags})(>|\\\\s\\\\/))[^<]+?>`;\n const regex = new RegExp(pattern, \"gi\");\n\n return htmlWithCorrectBR.replace(regex, \"\");\n};\n\nexport { removeUnwantedHtml };\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACA;AACA,MAAME,oBAAoB,GAAIC,IAAY,IAAK;EAC7C,OAAO,IAAAC,oBAAM,EAACD,IAAI,EAAE;IAAEE,IAAI,EAAE,uBAAuB;IAAEC,KAAK,EAAE;EAAM,CAAC,CAAC;AACtE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,SAAAA,CACzBJ,IAAY,EAID;EAAA,IAHXK,OAAkC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACnCG,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;EAClD,CAAC;EAED,IAAI,OAAOT,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAM,IAAIU,oCAAwB,CAAC,sCAAsC,CAAC;EAC5E;EAEA,MAAMC,iBAAiB,GAAGZ,oBAAoB,CAACC,IAAI,CAAC;;EAEpD;EACA,MAAMY,qBAAqB,GAAGD,iBAAiB,CAACE,OAAO,CACrD,uBAAuB,EACvB,MACF,CAAC;EAED,MAAMC,iBAAiB,GAAGF,qBAAqB,CAACC,OAAO,CACrD,WAAW,EACX,QACF,CAAC;;EAED;EACA,MAAMJ,WAAW,GAAGM,KAAK,CAACC,OAAO,CAACX,OAAO,CAACI,WAAW,CAAC,GAClDJ,OAAO,CAACI,WAAW,CAACQ,IAAI,CAAC,GAAG,CAAC,GAC7B,EAAE;EACN,MAAMC,OAAO,GAAG,YAAYT,WAAW,qBAAqB;EAC5D,MAAMU,KAAK,GAAG,IAAIC,MAAM,CAACF,OAAO,EAAE,IAAI,CAAC;EAEvC,OAAOJ,iBAAiB,CAACD,OAAO,CAACM,KAAK,EAAE,EAAE,CAAC;AAC7C,CAAC;AAACE,OAAA,CAAAjB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|