@beinformed/ui 1.60.4 → 1.60.5
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 +8 -0
- package/esm/hooks/__tests__/useForm.spec.js.flow +1 -1
- package/esm/hooks/useForm.js +20 -15
- package/esm/hooks/useForm.js.flow +14 -5
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useModularUI.d.ts +1 -0
- package/esm/hooks/useModularUI.js +11 -3
- package/esm/hooks/useModularUI.js.flow +23 -4
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +3 -1
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +6 -5
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.js +2 -1
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/href/Href.js +12 -11
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/list/ListModel.js +2 -1
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +6 -3
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js +3 -1
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/hooks/useForm.js +19 -14
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useModularUI.d.ts +1 -0
- package/lib/hooks/useModularUI.js +13 -4
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +3 -1
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +6 -5
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js +2 -1
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/href/Href.js +12 -11
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/list/ListModel.js +2 -1
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +6 -3
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js +3 -1
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/package.json +22 -22
- package/src/hooks/__tests__/useForm.spec.js +1 -1
- package/src/hooks/useForm.js +14 -5
- package/src/hooks/useModularUI.js +23 -4
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
1
2
|
import { useState } from "react";
|
|
2
3
|
import { getDisplayName } from "../../react/utils";
|
|
3
4
|
import { MODULARUI_STATUS } from "../../constants/Constants";
|
|
@@ -16,6 +17,7 @@ const getUrl = (resource, props) => {
|
|
|
16
17
|
/**
|
|
17
18
|
*/
|
|
18
19
|
export const useUrl = (resource, props) => {
|
|
20
|
+
var _context;
|
|
19
21
|
const [previousUrl, setPreviousUrl] = useState(null);
|
|
20
22
|
const [previousExact, setPreviousExact] = useState(false);
|
|
21
23
|
const url = getUrl(resource, props);
|
|
@@ -38,7 +40,7 @@ export const useUrl = (resource, props) => {
|
|
|
38
40
|
// Always create an url when the match is exact
|
|
39
41
|
// Or when the match is not exact AND the original match also was not exact
|
|
40
42
|
// Or when the new start uri is different from the previous url --> different resource for same panel
|
|
41
|
-
if (match.isExact === true || previousExact === match.isExact || !previousUrl?.
|
|
43
|
+
if (match.isExact === true || previousExact === match.isExact || !((_context = previousUrl) == null ? void 0 : Function.call.bind(_startsWithInstanceProperty(_context), _context))?.(match.url)) {
|
|
42
44
|
setPreviousUrl(url);
|
|
43
45
|
setPreviousExact(match.isExact);
|
|
44
46
|
return url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIUtils.js","names":["useState","getDisplayName","MODULARUI_STATUS","Href","getUrl","resource","props","url","useUrl","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","equalsWithParameters","isExact","
|
|
1
|
+
{"version":3,"file":"ModularUIUtils.js","names":["useState","getDisplayName","MODULARUI_STATUS","Href","getUrl","resource","props","url","useUrl","_context","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","equalsWithParameters","isExact","Function","call","bind","_startsWithInstanceProperty","getKey","WrappedComponent","name","split","useReload","modelEntry","reload","arguments","length","undefined","isFullyLoaded","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 | Href, props: Object): Href => {\n const url = typeof resource === \"function\" ? resource(props) : resource;\n\n if (url instanceof Href) {\n return url;\n }\n\n return new Href(url);\n};\n\n/**\n */\nexport const useUrl = (\n resource: string | Function | Href,\n props: Object,\n): Href => {\n const [previousUrl, setPreviousUrl] = useState(null);\n const [previousExact, setPreviousExact] = useState(false);\n\n const url = getUrl(resource, props);\n\n if (url == null && previousUrl == null) {\n return new Href(\"\");\n }\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 if (url.equalsWithParameters(previousUrl)) {\n return previousUrl || url;\n }\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 --> different resource for same panel\n if (\n match.isExact === true ||\n previousExact === match.isExact ||\n !previousUrl?.startsWith(match.url)\n ) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n\n return url;\n }\n\n return previousUrl || new Href(\"\");\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,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,OAAOC,IAAI,MAAM,wBAAwB;AAIzC;AACA;AACA;AACA,MAAMC,MAAM,GAAGA,CAACC,QAAkC,EAAEC,KAAa,KAAW;EAC1E,MAAMC,GAAG,GAAG,OAAOF,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACC,KAAK,CAAC,GAAGD,QAAQ;EAEvE,IAAIE,GAAG,YAAYJ,IAAI,EAAE;IACvB,OAAOI,GAAG;EACZ;EAEA,OAAO,IAAIJ,IAAI,CAACI,GAAG,CAAC;AACtB,CAAC;;AAED;AACA;AACA,OAAO,MAAMC,MAAM,GAAGA,CACpBH,QAAkC,EAClCC,KAAa,KACJ;EAAA,IAAAG,QAAA;EACT,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGX,QAAQ,CAAC,IAAI,CAAC;EACpD,MAAM,CAACY,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMO,GAAG,GAAGH,MAAM,CAACC,QAAQ,EAAEC,KAAK,CAAC;EAEnC,IAAIC,GAAG,IAAI,IAAI,IAAIG,WAAW,IAAI,IAAI,EAAE;IACtC,OAAO,IAAIP,IAAI,CAAC,EAAE,CAAC;EACrB;EAEA,MAAM;IAAEW;EAAM,CAAC,GAAGR,KAAK;;EAEvB;EACA;EACA,IAAI,CAACQ,KAAK,EAAE;IACV,OAAOP,GAAG;EACZ;EAEA,IAAIA,GAAG,CAACQ,oBAAoB,CAACL,WAAW,CAAC,EAAE;IACzC,OAAOA,WAAW,IAAIH,GAAG;EAC3B;;EAEA;EACA;EACA;EACA,IACEO,KAAK,CAACE,OAAO,KAAK,IAAI,IACtBJ,aAAa,KAAKE,KAAK,CAACE,OAAO,IAC/B,CAAC,EAAAP,QAAA,GAAAC,WAAW,qBAAAO,QAAA,CAAAC,IAAA,CAAAC,IAAA,CAAAC,2BAAA,CAAAX,QAAA,GAAAA,QAAA,KAAaK,KAAK,CAACP,GAAG,CAAC,EACnC;IACAI,cAAc,CAACJ,GAAG,CAAC;IACnBM,gBAAgB,CAACC,KAAK,CAACE,OAAO,CAAC;IAE/B,OAAOT,GAAG;EACZ;EAEA,OAAOG,WAAW,IAAI,IAAIP,IAAI,CAAC,EAAE,CAAC;AACpC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMkB,MAAM,GAAGA,CACpBC,gBAAoC,EACpCC,IAAY,EACZhB,GAAW,KACA;EACX,IAAIA,GAAG,EAAE;IACP,OAAO,GAAGN,cAAc,CAACqB,gBAAgB,EAAEC,IAAI,CAAC,IAAIhB,GAAG,CAACiB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;EAC1E;EAEA,OAAOvB,cAAc,CAACqB,gBAAgB,EAAEC,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,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,KAAK9B,gBAAgB,CAAC+B,QAAQ;IACtE,MAAMC,gBAAgB,GAAGR,UAAU,EAAEQ,gBAAgB,IAAI,CAAC;IAE1D,IAAIH,aAAa,IAAIG,gBAAgB,GAAGP,MAAM,EAAE;MAC9C,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC","ignoreList":[]}
|
package/lib/hooks/useForm.js
CHANGED
|
@@ -12,6 +12,8 @@ var _modularui = require("../redux/_modularui");
|
|
|
12
12
|
var _useModularUI = require("./useModularUI");
|
|
13
13
|
var _actions = require("../redux/actions");
|
|
14
14
|
var _FormModel = _interopRequireDefault(require("../models/form/FormModel"));
|
|
15
|
+
const FORM_MODEL_KEY = "form";
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* Load a form by href
|
|
17
19
|
*/
|
|
@@ -20,7 +22,7 @@ const useForm = (href, data) => {
|
|
|
20
22
|
if (!(0, _constants.getSetting)("ALWAYS_COMMIT_FORM")) {
|
|
21
23
|
formHref.addParameter("commit", "false");
|
|
22
24
|
}
|
|
23
|
-
const form = (0, _useModularUI.useModularUI)(
|
|
25
|
+
const form = (0, _useModularUI.useModularUI)(FORM_MODEL_KEY, formHref, {
|
|
24
26
|
method: _constants.HTTP_METHODS.POST,
|
|
25
27
|
targetModel: _FormModel.default,
|
|
26
28
|
removeOnUnmount: true,
|
|
@@ -41,19 +43,22 @@ const useFormNavigation = () => {
|
|
|
41
43
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
42
44
|
const previous = form => dispatch((0, _actions.previousObject)(form));
|
|
43
45
|
const cancel = form => dispatch((0, _actions.cancelForm)(form));
|
|
44
|
-
const submit = form =>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
const submit = form => {
|
|
47
|
+
const connectKey = (0, _useModularUI.createKeyForModularUIStore)(FORM_MODEL_KEY, form.selfhref.toString(), form.locale);
|
|
48
|
+
return dispatch((0, _modularui.loadModularUI)(connectKey, form.selfhref, {
|
|
49
|
+
method: _constants.HTTP_METHODS.POST,
|
|
50
|
+
data: form.formdata,
|
|
51
|
+
updateHandler: newModel => {
|
|
52
|
+
if (newModel instanceof _FormModel.default) {
|
|
53
|
+
const clonedModel = form.clone();
|
|
54
|
+
clonedModel.update(newModel);
|
|
55
|
+
return clonedModel;
|
|
56
|
+
}
|
|
57
|
+
return newModel;
|
|
58
|
+
},
|
|
59
|
+
targetModel: _FormModel.default
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
57
62
|
const remove = form => dispatch((0, _modularui.removeModelByKey)(form.connectKey));
|
|
58
63
|
const showFormNotificationAction = form => dispatch((0, _actions.showFormNotification)(form));
|
|
59
64
|
return {
|
package/lib/hooks/useForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.js","names":["_reactRedux","require","_Href","_interopRequireDefault","_constants","_modularui","_useModularUI","_actions","_FormModel","useForm","href","data","formHref","Href","getSetting","addParameter","form","useModularUI","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","origin","contextPath","model","exports","useFormNavigation","dispatch","useDispatch","previous","previousObject","cancel","cancelForm","submit","
|
|
1
|
+
{"version":3,"file":"useForm.js","names":["_reactRedux","require","_Href","_interopRequireDefault","_constants","_modularui","_useModularUI","_actions","_FormModel","FORM_MODEL_KEY","useForm","href","data","formHref","Href","getSetting","addParameter","form","useModularUI","method","HTTP_METHODS","POST","targetModel","FormModel","removeOnUnmount","origin","contextPath","model","exports","useFormNavigation","dispatch","useDispatch","previous","previousObject","cancel","cancelForm","submit","connectKey","createKeyForModularUIStore","selfhref","toString","locale","loadModularUI","formdata","updateHandler","newModel","clonedModel","clone","update","remove","removeModelByKey","showFormNotificationAction","showFormNotification","useAttributeUpdate","object","attribute","value","options","updateFormAttribute","useAttributeSet","save","addRepeatableAttributeSet","cancelRepeatableAttributeSet","removeRepeatableAttributeSet"],"sources":["../../src/hooks/useForm.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport type {\n RemoveModelByKeyAction,\n UpdateFormAction,\n} from \"../redux/_modularui\";\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { createKeyForModularUIStore, useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { AttributeType, FormObjectModel, ModularUIModel } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateFormAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateFormAction,\n cancel: (object: FormObjectModel) => UpdateFormAction,\n remove: (object: FormObjectModel) => UpdateFormAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n) => void;\n\nconst FORM_MODEL_KEY = \"form\";\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href, data?: Object): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(FORM_MODEL_KEY, formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n data,\n origin: formHref.origin,\n contextPath: formHref.contextPath,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) => {\n const connectKey = createKeyForModularUIStore(\n FORM_MODEL_KEY,\n form.selfhref.toString(),\n form.locale,\n );\n\n return dispatch(\n loadModularUI(connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateHandler: (newModel: ModularUIModel): ModularUIModel => {\n if (newModel instanceof FormModel) {\n const clonedModel: FormModel = form.clone();\n clonedModel.update(newModel);\n return clonedModel;\n }\n return newModel;\n },\n targetModel: FormModel,\n }),\n );\n };\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Hook that returns a function to update attributes of a form object.\n * <br >\n * The returned function accepts the following options:\n *\n * - autosubmit: Automatically submit the form after a change\n * - autosav: Automatically save the form (in the background) after a change\n * - autoupdate: Automatically update the current form object after a change\n * - forceUpdate: Force the update even if conditions are not met.\n * - validate: Activate/deactivate the form object validation by an update.\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel,\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions,\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export function createKeyForModularUIStore(modelKey: string, url: string, locale: string): string;
|
|
1
2
|
export function useModularUI(modelKey: string, url: string | Href, options?: RequestModularUIOptions): any;
|
|
2
3
|
import Href from "../models/href/Href";
|
|
3
4
|
import { RequestModularUIOptions } from "../utils";
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useModularUI = void 0;
|
|
7
|
+
exports.useModularUI = exports.createKeyForModularUIStore = void 0;
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactRedux = require("react-redux");
|
|
10
10
|
var _reactRouter = require("react-router");
|
|
@@ -15,9 +15,18 @@ var _useI18n = require("./useI18n");
|
|
|
15
15
|
var _Href = _interopRequireDefault(require("../models/href/Href"));
|
|
16
16
|
/**
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const createKeyForModularUIStore = (modelKey, url, locale) => {
|
|
19
|
+
return `${modelKey}(${url})(${locale})`;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
*/
|
|
24
|
+
exports.createKeyForModularUIStore = createKeyForModularUIStore;
|
|
25
|
+
const useKeyForHook = function (modelKey, url) {
|
|
26
|
+
let removeQuerystringFromKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
19
27
|
const locale = (0, _useI18n.useLocale)();
|
|
20
|
-
|
|
28
|
+
const href = removeQuerystringFromKey ? url.split("?")[0] : url;
|
|
29
|
+
return (0, _react.useMemo)(() => createKeyForModularUIStore(modelKey, href, locale), [modelKey, href, locale]);
|
|
21
30
|
};
|
|
22
31
|
|
|
23
32
|
/**
|
|
@@ -30,7 +39,7 @@ const useModularUI = function (modelKey, url) {
|
|
|
30
39
|
};
|
|
31
40
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
32
41
|
const href = (0, _react.useMemo)(() => url?.toString() || "", [url]);
|
|
33
|
-
const key = useKeyForHook(modelKey, href);
|
|
42
|
+
const key = useKeyForHook(modelKey, href, !options.method || options.method === _constants.HTTP_METHODS.GET);
|
|
34
43
|
const modelSelector = (0, _react.useMemo)(() => state => state.modularui[key], [key]);
|
|
35
44
|
const model = (0, _reactRedux.useSelector)(modelSelector);
|
|
36
45
|
if (url instanceof _Href.default) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_reactRouter","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","_Href","
|
|
1
|
+
{"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_reactRouter","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","_Href","createKeyForModularUIStore","modelKey","url","locale","exports","useKeyForHook","removeQuerystringFromKey","arguments","length","undefined","useLocale","href","split","useMemo","useModularUI","options","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","useDispatch","toString","key","modelSelector","state","modularui","model","useSelector","Href","origin","contextPath","location","useLocation","redirectLocation","forceLoad","equals","prevOptions","useRef","prevHref","prevForceLoad","useDeepCompareEffect","isOldReload","current","isReload","doForceLoad","loadModularUI","useEffect","removeModelByKey"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\nimport Href from \"../models/href/Href\";\n\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nexport const createKeyForModularUIStore = (\n modelKey: string,\n url: string,\n locale: string,\n): string => {\n return `${modelKey}(${url})(${locale})`;\n};\n\n/**\n */\nconst useKeyForHook = (\n modelKey: string,\n url: string,\n removeQuerystringFromKey: boolean = true,\n): string => {\n const locale = useLocale();\n const href = removeQuerystringFromKey ? url.split(\"?\")[0] : url;\n return useMemo(\n () => createKeyForModularUIStore(modelKey, href, locale),\n [modelKey, href, locale],\n );\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = useMemo(() => url?.toString() || \"\", [url]);\n const key = useKeyForHook(\n modelKey,\n href,\n !options.method || options.method === HTTP_METHODS.GET,\n );\n\n const modelSelector = useMemo(() => (state) => state.modularui[key], [key]);\n const model = useSelector(modelSelector);\n\n if (url instanceof Href) {\n options.origin = options.origin ?? url.origin;\n options.contextPath = options.contextPath ?? url.contextPath;\n }\n\n const location = useLocation();\n const redirectLocation = location.state?.redirectLocation;\n const forceLoad =\n model == null ||\n (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n const prevForceLoad = useRef(forceLoad);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n const doForceLoad = forceLoad && !prevForceLoad.current;\n\n if (href !== \"\" && (doForceLoad || !isOldReload)) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n prevForceLoad.current = forceLoad;\n }, [key, href, options, forceLoad]);\n\n useEffect(() => {\n if (options.removeOnUnmount) {\n return () => {\n dispatch(removeModelByKey(key));\n };\n }\n }, [dispatch, key, options.removeOnUnmount]);\n\n return model;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
9
|
+
var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
10
11
|
var _ResourceModel = _interopRequireDefault(require("../base/ResourceModel"));
|
|
11
12
|
var _LinkModel = _interopRequireDefault(require("../links/LinkModel"));
|
|
@@ -71,8 +72,9 @@ class ApplicationModel extends _ResourceModel.default {
|
|
|
71
72
|
get authenticationTypes() {
|
|
72
73
|
const authenticationTypes = this.getContribution("security", [_constants.DEFAULT_AUTHENTICATION_TYPE]);
|
|
73
74
|
if (authenticationTypes) {
|
|
75
|
+
var _context;
|
|
74
76
|
//put primary first
|
|
75
|
-
return authenticationTypes?.
|
|
77
|
+
return ((_context = authenticationTypes) == null ? void 0 : Function.call.bind((0, _sort.default)(_context), _context))?.((a, b) => a.isPrimary === b.isPrimary ? 0 : a.isPrimary ? -1 : 1);
|
|
76
78
|
}
|
|
77
79
|
return [_constants.DEFAULT_AUTHENTICATION_TYPE];
|
|
78
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationModel.js","names":["_ResourceModel","_interopRequireDefault","require","_LinkModel","_UserServicesModel","_exceptions","_constants","ApplicationModel","ResourceModel","constructor","arguments","_defineProperty2","default","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","userService","links","getLinkByKey","href","path","NotAllowedUriException","setChildModels","models","userServiceModel","_find","call","model","userServices","label","getContribution","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","
|
|
1
|
+
{"version":3,"file":"ApplicationModel.js","names":["_ResourceModel","_interopRequireDefault","require","_LinkModel","_UserServicesModel","_exceptions","_constants","ApplicationModel","ResourceModel","constructor","arguments","_defineProperty2","default","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","userService","links","getLinkByKey","href","path","NotAllowedUriException","setChildModels","models","userServiceModel","_find","call","model","userServices","label","getContribution","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","_context","Function","bind","_sort","a","b","isPrimary","tabs","getLinksByGroup","modelcatalog","LinkModel","create","modelOptions","_userServices","UserServicesModel","isLoggedIn","userHref","userLink","userMustChangePassword","mustChangePassword","exports"],"sources":["../../../src/models/application/ApplicationModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport UserServicesModel from \"../user/UserServicesModel\";\n\nimport { NotAllowedUriException } from \"../../exceptions\";\n\nimport { DEFAULT_AUTHENTICATION_TYPE } from \"../../constants\";\n\nimport type { ModularUIModel, AuthenticationType } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type Href from \"../href/Href\";\n\n/**\n * The Application model\n */\nexport default class ApplicationModel extends ResourceModel {\n _userServices: ?UserServicesModel;\n\n /**\n * Retrieve type of model\n */\n get type(): string {\n return \"Application\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ApplicationModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Application\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const userService = this.links.getLinkByKey(\"UserServices\");\n if (userService && userService.href.path === \"/login\") {\n throw new NotAllowedUriException(\n \"The user service (Login panel) should not have the uri '/login', use a different URI because this uri matches the login service.\",\n );\n }\n\n return userService ? [userService] : [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const userServiceModel = models.find(\n (model) => model.type === \"UserServices\",\n );\n\n if (userServiceModel) {\n this.userServices = userServiceModel;\n }\n }\n\n /**\n * Getting the label of the application\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the authentication types of the application\n */\n get authenticationTypes(): Array<AuthenticationType> {\n const authenticationTypes = this.getContribution(\"security\", [\n DEFAULT_AUTHENTICATION_TYPE,\n ]);\n\n if (authenticationTypes) {\n //put primary first\n return authenticationTypes?.sort(\n (a: AuthenticationType, b: AuthenticationType) =>\n a.isPrimary === b.isPrimary ? 0 : a.isPrimary ? -1 : 1,\n );\n }\n\n return [DEFAULT_AUTHENTICATION_TYPE];\n }\n\n /**\n * Getting the tab links\n */\n get tabs(): LinkCollection {\n return this.links.getLinksByGroup(\"tab\");\n }\n\n /**\n * Get modelcatalog link\n */\n get modelcatalog(): LinkModel {\n return LinkModel.create(\n \"modelcatalog\",\n \"/modelcatalog\",\n \"Model catalog\",\n this.modelOptions,\n );\n }\n\n /**\n * Set the userservices for this application\n */\n set userServices(model: ?ModularUIModel) {\n this._userServices = model instanceof UserServicesModel ? model : null;\n }\n\n /**\n * returns the userservices configured for this application\n */\n get userServices(): ?UserServicesModel {\n return this._userServices ? this._userServices : null;\n }\n\n /**\n * Indicates if the user is logged in\n */\n get isLoggedIn(): boolean {\n return this.userServices?.isLoggedIn ?? false;\n }\n\n /**\n * Retrieve link to the user information,\n * only available when the user services are available\n */\n get userHref(): Href | null {\n if (this.userServices?.userLink) {\n return this.userServices.userLink.href;\n }\n\n return null;\n }\n\n /**\n */\n get userMustChangePassword(): boolean {\n return this.userServices?.mustChangePassword ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -62,7 +62,8 @@ class CompositeAttributeModel extends _AttributeModel.default {
|
|
|
62
62
|
/**
|
|
63
63
|
*/
|
|
64
64
|
get isRange() {
|
|
65
|
-
|
|
65
|
+
var _context;
|
|
66
|
+
return ((_context = this.contributions?.type) == null ? void 0 : Function.call.bind((0, _includes.default)(_context), _context))?.("range");
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
/**
|
|
@@ -193,8 +194,8 @@ class CompositeAttributeModel extends _AttributeModel.default {
|
|
|
193
194
|
/**
|
|
194
195
|
*/
|
|
195
196
|
getChildByAttribute(attribute) {
|
|
196
|
-
var
|
|
197
|
-
return (0, _find.default)(
|
|
197
|
+
var _context2;
|
|
198
|
+
return (0, _find.default)(_context2 = this.children).call(_context2, child => {
|
|
198
199
|
if (child.equals(attribute)) {
|
|
199
200
|
return true;
|
|
200
201
|
} else if (child instanceof CompositeAttributeModel) {
|
|
@@ -207,8 +208,8 @@ class CompositeAttributeModel extends _AttributeModel.default {
|
|
|
207
208
|
/**
|
|
208
209
|
*/
|
|
209
210
|
getChildByKey(key) {
|
|
210
|
-
var
|
|
211
|
-
return (0, _find.default)(
|
|
211
|
+
var _context3;
|
|
212
|
+
return (0, _find.default)(_context3 = this.children).call(_context3, child => {
|
|
212
213
|
if (child.key === key) {
|
|
213
214
|
return true;
|
|
214
215
|
} else if (child instanceof CompositeAttributeModel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","errors","key","isRange","includes","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","_isValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","isValid","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context","_find","equals","getChildByKey","_context2","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","updateByAttribute","otherAttribute","otherChild","console","error","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","getChildrenIds","values","Array","isArray","_map","val","_id","isResult","_isResult","indicateContentConfiguration","contentConfiguration","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType, ModelOptions } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n modelOptions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this.children.setChildModels(models, errors);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n if (otherAttribute instanceof CompositeAttributeModel) {\n otherAttribute.children.forEach((otherChild) => {\n const child = this.getChildByAttribute(otherChild);\n if (child) {\n child.updateByAttribute(otherChild);\n }\n });\n } else {\n console.error(\n `update of composite attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n getChildrenIds(): Array<string> {\n const values = this.data.value;\n if (Array.isArray(values)) {\n return values.map((val) => val._id);\n } else if (values != null) {\n return [values._id];\n }\n return [];\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CompositeAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_CompositeAttributeChildCollection","_ConstraintCollection","_RangeConstraint","_MandatoryRangeConstraint","_constants","_exceptions","_NumberAttributeModel","_DatetimeAttributeModel","CompositeAttributeModel","AttributeModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","isApplicableModel","type","_includes","call","getInitialChildModelLinks","children","setChildModels","models","errors","key","isRange","_context","Function","bind","isRangeAttribute","attribute","NumberAttributeModel","DatetimeAttributeModel","start","all","end","size","getInputValue","hasValue","some","child","constraintCollection","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","forEach","validate","value","useClientsideValidation","_isValid","startAttribute","endAttribute","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","isValid","hasServerErrors","errorCollection","serverErrors","length","hasErrors","hasItems","reset","getChildByAttribute","_context2","_find","equals","getChildByKey","_context3","mergeAttribute","oldAttribute","concept","withChildAttribute","update","changedAttribute","IllegalArgumentException","updateLastModification","updateByAttribute","otherAttribute","otherChild","console","error","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","getFormData","name","getValue","getChildrenIds","values","Array","isArray","_map","val","_id","isResult","_isResult","indicateContentConfiguration","contentConfiguration","parentKey","readonlyWidth","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","_default","exports"],"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType, ModelOptions } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions,\n modelOptions,\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this.children.setChildModels(models, errors);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled),\n );\n }\n\n /**\n * Validate input\n */\n // eslint-disable-next-line no-unused-vars\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory,\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children),\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate(\"\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType,\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\",\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate(value);\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n if (otherAttribute instanceof CompositeAttributeModel) {\n otherAttribute.children.forEach((otherChild) => {\n const child = this.getChildByAttribute(otherChild);\n if (child) {\n child.updateByAttribute(otherChild);\n }\n });\n } else {\n console.error(\n `update of composite attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n getChildrenIds(): Array<string> {\n const values = this.data.value;\n if (Array.isArray(values)) {\n return values.map((val) => val._id);\n } else if (values != null) {\n return [values._id];\n }\n return [];\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute),\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -143,8 +143,9 @@ class ContentTOCModel extends _ResourceModel.default {
|
|
|
143
143
|
var _context2;
|
|
144
144
|
this._filterCollection = new _FilterCollection.default((0, _filter.default)(this.data), {
|
|
145
145
|
filter: (0, _filter.default)(_context2 = (0, _filter.default)(this.contributions)).call(_context2, filter => {
|
|
146
|
+
var _context3;
|
|
146
147
|
const [key] = (0, _keys.default)(filter);
|
|
147
|
-
return (0, _objects.has)(this.data
|
|
148
|
+
return (0, _objects.has)((_context3 = this.data) == null ? void 0 : (0, _filter.default)(_context3), key);
|
|
148
149
|
})
|
|
149
150
|
}, this.modelOptions);
|
|
150
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTOCModel.js","names":["_objects","require","_ResourceModel","_interopRequireDefault","_FilterCollection","_ContentLinkModel","_ContentTypeModel","_Href","_Constants","getItems","items","entryDate","modelOptions","_map","default","call","item","link","ContentLinkModel","section","_id","ContentTOCModel","ResourceModel","constructor","arguments","_defineProperty2","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_find","model","label","getData","selfhref","href","Href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","_context","category","_contentType","ContentTypeModel","_filterCollection","_context2","FilterCollection","_filter","key","_keys","has","timeversionFilter","getFilterByAttributeKey","TIMEVERSION_FILTER_NAME","attribute","exports"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n modelOptions,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate, modelOptions);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items\n ? getItems(this.data.items, this.entryDate, this.modelOptions)\n : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category, null, this.modelOptions),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n },\n this.modelOptions,\n );\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve modelcatalog.js of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ContentTOCModel.js","names":["_objects","require","_ResourceModel","_interopRequireDefault","_FilterCollection","_ContentLinkModel","_ContentTypeModel","_Href","_Constants","getItems","items","entryDate","modelOptions","_map","default","call","item","link","ContentLinkModel","section","_id","ContentTOCModel","ResourceModel","constructor","arguments","_defineProperty2","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_find","model","label","getData","selfhref","href","Href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","_context","category","_contentType","ContentTypeModel","_filterCollection","_context2","FilterCollection","_filter","_context3","key","_keys","has","timeversionFilter","getFilterByAttributeKey","TIMEVERSION_FILTER_NAME","attribute","exports"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n modelOptions,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate, modelOptions);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items\n ? getItems(this.data.items, this.entryDate, this.modelOptions)\n : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category, null, this.modelOptions),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n },\n this.modelOptions,\n );\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve modelcatalog.js of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/models/href/Href.js
CHANGED
|
@@ -250,14 +250,15 @@ class Href {
|
|
|
250
250
|
const valueToRemove = value;
|
|
251
251
|
this._parameters = (0, _map.default)(_context4 = this._parameters).call(_context4, param => {
|
|
252
252
|
if (param.prefix === prefix && param.name === name) {
|
|
253
|
-
|
|
253
|
+
var _context5;
|
|
254
|
+
const newValue = ((_context5 = param.value?.split(",")) == null ? void 0 : Function.call.bind((0, _filter.default)(_context5), _context5))?.(val => val !== valueToRemove).join(",");
|
|
254
255
|
return new _Parameter.default(param.prefix, param.name, newValue);
|
|
255
256
|
}
|
|
256
257
|
return param;
|
|
257
258
|
});
|
|
258
259
|
} else {
|
|
259
|
-
var
|
|
260
|
-
this._parameters = (0, _filter.default)(
|
|
260
|
+
var _context6;
|
|
261
|
+
this._parameters = (0, _filter.default)(_context6 = this._parameters).call(_context6, param => param.prefix !== prefix || param.name !== name);
|
|
261
262
|
}
|
|
262
263
|
return this;
|
|
263
264
|
}
|
|
@@ -266,18 +267,18 @@ class Href {
|
|
|
266
267
|
* Get the parameters as a querystring, e.g. param1=value1¶m2=value2, optionally with prefix
|
|
267
268
|
*/
|
|
268
269
|
getQuerystring() {
|
|
269
|
-
var
|
|
270
|
+
var _context7, _context8;
|
|
270
271
|
let withPrefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
271
|
-
return (0, _map.default)(
|
|
272
|
+
return (0, _map.default)(_context7 = (0, _filter.default)(_context8 = this.parameters).call(_context8, param => param.value != null && param.value !== "")).call(_context7, param => param.toQuerystring(withPrefix)).join("&");
|
|
272
273
|
}
|
|
273
274
|
|
|
274
275
|
/**
|
|
275
276
|
* Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix
|
|
276
277
|
*/
|
|
277
278
|
getQuerystringForModularUI() {
|
|
278
|
-
var
|
|
279
|
+
var _context9, _context10;
|
|
279
280
|
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
280
|
-
return (0, _map.default)(
|
|
281
|
+
return (0, _map.default)(_context9 = (0, _filter.default)(_context10 = this.parameters).call(_context10, param => param.isModUIParameter && (!prefix || !param.prefix || param.prefix === prefix) && param.value != null)).call(_context9, param => param.toQuerystring(false)).join("&");
|
|
281
282
|
}
|
|
282
283
|
|
|
283
284
|
/**
|
|
@@ -432,7 +433,7 @@ class Href {
|
|
|
432
433
|
/**
|
|
433
434
|
*/
|
|
434
435
|
equalsWithParameters(other) {
|
|
435
|
-
var
|
|
436
|
+
var _context11;
|
|
436
437
|
if (other == null) {
|
|
437
438
|
return false;
|
|
438
439
|
}
|
|
@@ -446,7 +447,7 @@ class Href {
|
|
|
446
447
|
if (this.parameters.length === 0 && href.parameters.length === 0) {
|
|
447
448
|
return true;
|
|
448
449
|
}
|
|
449
|
-
const thisParams = (0, _map.default)(
|
|
450
|
+
const thisParams = (0, _map.default)(_context11 = this.parameters).call(_context11, param => param.toString());
|
|
450
451
|
return href.parameters.every(param => (0, _includes.default)(thisParams).call(thisParams, param.toString()));
|
|
451
452
|
}
|
|
452
453
|
|
|
@@ -454,8 +455,8 @@ class Href {
|
|
|
454
455
|
* Indicates if the link is a content link
|
|
455
456
|
*/
|
|
456
457
|
get isContent() {
|
|
457
|
-
var
|
|
458
|
-
return (0, _startsWith.default)(
|
|
458
|
+
var _context12;
|
|
459
|
+
return (0, _startsWith.default)(_context12 = this.absolutepath).call(_context12, `${(0, _constants.getBasePathModularUI)()}${_constants.CONTENT_PATH}`);
|
|
459
460
|
}
|
|
460
461
|
|
|
461
462
|
/**
|