@beinformed/ui 1.55.2 → 1.56.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/redux/_modularui/ModularUISelectors.js +12 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js +12 -1
- package/lib/redux/_modularui/ModularUISelectors.js.flow +21 -1
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/package.json +1 -1
- package/src/redux/_modularui/ModularUISelectors.js +21 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.56.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.56.0...v1.56.1) (2024-10-09)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **selectors:** make the selector getAllFinishedModels memoized to prevent rerenders ([b579297](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/b579297882520bdd91eeaa90308bb71a11291a4d))
|
|
11
|
+
|
|
12
|
+
## [1.56.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.55.2...v1.56.0) (2024-10-09)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **selector:** add selector to retrieve all modularui models ([78da09b](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/78da09b01be60e089be2094b9d025b64958f9463))
|
|
18
|
+
|
|
5
19
|
## [1.55.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.55.1...v1.55.2) (2024-10-04)
|
|
6
20
|
|
|
7
21
|
|
|
@@ -4,7 +4,8 @@ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
|
4
4
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
5
5
|
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
6
6
|
import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
|
|
7
|
-
import
|
|
7
|
+
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
|
8
|
+
import { createSelector, createSelectorCreator, defaultMemoize } from "reselect";
|
|
8
9
|
import { has } from "../../utils/helpers/objects";
|
|
9
10
|
import Href from "../../models/href/Href";
|
|
10
11
|
import ContentModel from "../../models/content/ContentModel";
|
|
@@ -237,4 +238,14 @@ export const getModelsByType = (state, type) => {
|
|
|
237
238
|
}
|
|
238
239
|
return [];
|
|
239
240
|
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
*/
|
|
244
|
+
export const getAllFinishedModels = createSelector(state => state.modularui, modularui => {
|
|
245
|
+
if (modularui) {
|
|
246
|
+
var _context10, _context11;
|
|
247
|
+
return _mapInstanceProperty(_context10 = _filterInstanceProperty(_context11 = _Object$values(modularui)).call(_context11, entry => entry.status === "FINISHED")).call(_context10, entry => entry.model);
|
|
248
|
+
}
|
|
249
|
+
return [];
|
|
250
|
+
});
|
|
240
251
|
//# sourceMappingURL=ModularUISelectors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUISelectors.js","names":["createSelectorCreator","defaultMemoize","has","Href","ContentModel","ContentTOCModel","ApplicationModel","TabModel","CaseViewModel","FormModel","getAllModelsByInstance","state","instance","locale","i18n","modularui","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","_Object$keys","call","key","model","getFirstModelByInstance","_context3","_findInstanceProperty","getActiveModelByInstance","location","getLocation","_context4","_startsWithInstanceProperty","selfhref","path","getApplication","getTab","getCaseView","getForm","modelByHref","href","_context5","findHref","modelConfigKey","equals","keyByHref","_context6","allKeysByHref","_context7","router","pathname","getModels","models","forEach","modelKey","modelEntry","label","type","modelInfo","selfContentLink","push","getActiveModels","value","other","_JSON$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":["createSelector","createSelectorCreator","defaultMemoize","has","Href","ContentModel","ContentTOCModel","ApplicationModel","TabModel","CaseViewModel","FormModel","getAllModelsByInstance","state","instance","locale","i18n","modularui","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","_Object$keys","call","key","model","getFirstModelByInstance","_context3","_findInstanceProperty","getActiveModelByInstance","location","getLocation","_context4","_startsWithInstanceProperty","selfhref","path","getApplication","getTab","getCaseView","getForm","modelByHref","href","_context5","findHref","modelConfigKey","equals","keyByHref","_context6","allKeysByHref","_context7","router","pathname","getModels","models","forEach","modelKey","modelEntry","label","type","modelInfo","selfContentLink","push","getActiveModels","value","other","_JSON$stringify","contextModels","locationParts","split","reduce","accumulator","current","comparePath","decodeURIComponent","replace","foundEntry","encodedHref","toString","getPreference","preferenceName","preferences","getModelsByType","_context8","_context9","getAllFinishedModels","_context10","_context11","_Object$values","entry","status"],"sources":["../../../src/redux/_modularui/ModularUISelectors.js"],"sourcesContent":["// @flow\nimport {\n createSelector,\n createSelectorCreator,\n defaultMemoize,\n} 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\n/**\n */\nexport const getAllFinishedModels: (\n state: ReduxState,\n) => Array<ModularUIModel> = createSelector(\n (state: ReduxState) => state.modularui,\n (modularui): Array<ModularUIModel> => {\n if (modularui) {\n return Object.values(modularui)\n .filter((entry) => entry.status === \"FINISHED\")\n .map((entry) => entry.model);\n }\n return [];\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,13 +4,14 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.modelByHref = exports.keyByHref = exports.getTab = exports.getPreference = exports.getModelsByType = exports.getForm = exports.getFirstModelByInstance = exports.getCaseView = exports.getApplication = exports.getAllModelsByInstance = exports.getActiveModels = exports.getActiveModelByInstance = exports.allKeysByHref = void 0;
|
|
7
|
+
exports.modelByHref = exports.keyByHref = exports.getTab = exports.getPreference = exports.getModelsByType = exports.getForm = exports.getFirstModelByInstance = exports.getCaseView = exports.getApplication = exports.getAllModelsByInstance = exports.getAllFinishedModels = exports.getActiveModels = exports.getActiveModelByInstance = exports.allKeysByHref = void 0;
|
|
8
8
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
9
9
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
10
10
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
11
11
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
12
12
|
var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
|
|
13
13
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
|
|
14
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
|
14
15
|
var _reselect = require("reselect");
|
|
15
16
|
var _objects = require("../../utils/helpers/objects");
|
|
16
17
|
var _Href = _interopRequireDefault(require("../../models/href/Href"));
|
|
@@ -255,5 +256,15 @@ const getModelsByType = (state, type) => {
|
|
|
255
256
|
}
|
|
256
257
|
return [];
|
|
257
258
|
};
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
*/
|
|
258
262
|
exports.getModelsByType = getModelsByType;
|
|
263
|
+
const getAllFinishedModels = exports.getAllFinishedModels = (0, _reselect.createSelector)(state => state.modularui, modularui => {
|
|
264
|
+
if (modularui) {
|
|
265
|
+
var _context10, _context11;
|
|
266
|
+
return (0, _map.default)(_context10 = (0, _filter.default)(_context11 = (0, _values.default)(modularui)).call(_context11, entry => entry.status === "FINISHED")).call(_context10, entry => entry.model);
|
|
267
|
+
}
|
|
268
|
+
return [];
|
|
269
|
+
});
|
|
259
270
|
//# sourceMappingURL=ModularUISelectors.js.map
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createSelector,
|
|
4
|
+
createSelectorCreator,
|
|
5
|
+
defaultMemoize,
|
|
6
|
+
} from "reselect";
|
|
3
7
|
import { has } from "../../utils/helpers/objects";
|
|
4
8
|
|
|
5
9
|
import Href from "../../models/href/Href";
|
|
@@ -295,3 +299,19 @@ export const getModelsByType = (
|
|
|
295
299
|
|
|
296
300
|
return [];
|
|
297
301
|
};
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
*/
|
|
305
|
+
export const getAllFinishedModels: (
|
|
306
|
+
state: ReduxState,
|
|
307
|
+
) => Array<ModularUIModel> = createSelector(
|
|
308
|
+
(state: ReduxState) => state.modularui,
|
|
309
|
+
(modularui): Array<ModularUIModel> => {
|
|
310
|
+
if (modularui) {
|
|
311
|
+
return Object.values(modularui)
|
|
312
|
+
.filter((entry) => entry.status === "FINISHED")
|
|
313
|
+
.map((entry) => entry.model);
|
|
314
|
+
}
|
|
315
|
+
return [];
|
|
316
|
+
},
|
|
317
|
+
);
|
|
@@ -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","getAllFinishedModels","createSelector","_context10","_context11","_values","entry","status"],"sources":["../../../src/redux/_modularui/ModularUISelectors.js"],"sourcesContent":["// @flow\nimport {\n createSelector,\n createSelectorCreator,\n defaultMemoize,\n} 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\n/**\n */\nexport const getAllFinishedModels: (\n state: ReduxState,\n) => Array<ModularUIModel> = createSelector(\n (state: ReduxState) => state.modularui,\n (modularui): Array<ModularUIModel> => {\n if (modularui) {\n return Object.values(modularui)\n .filter((entry) => entry.status === \"FINISHED\")\n .map((entry) => entry.model);\n }\n return [];\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createSelector,
|
|
4
|
+
createSelectorCreator,
|
|
5
|
+
defaultMemoize,
|
|
6
|
+
} from "reselect";
|
|
3
7
|
import { has } from "../../utils/helpers/objects";
|
|
4
8
|
|
|
5
9
|
import Href from "../../models/href/Href";
|
|
@@ -295,3 +299,19 @@ export const getModelsByType = (
|
|
|
295
299
|
|
|
296
300
|
return [];
|
|
297
301
|
};
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
*/
|
|
305
|
+
export const getAllFinishedModels: (
|
|
306
|
+
state: ReduxState,
|
|
307
|
+
) => Array<ModularUIModel> = createSelector(
|
|
308
|
+
(state: ReduxState) => state.modularui,
|
|
309
|
+
(modularui): Array<ModularUIModel> => {
|
|
310
|
+
if (modularui) {
|
|
311
|
+
return Object.values(modularui)
|
|
312
|
+
.filter((entry) => entry.status === "FINISHED")
|
|
313
|
+
.map((entry) => entry.model);
|
|
314
|
+
}
|
|
315
|
+
return [];
|
|
316
|
+
},
|
|
317
|
+
);
|