@beinformed/ui 1.65.2 → 1.65.3
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 +13 -0
- package/esm/hooks/useList.js +4 -4
- package/esm/hooks/useList.js.flow +5 -5
- package/esm/hooks/useList.js.map +1 -1
- package/esm/models/href/Href.js +1 -1
- package/esm/models/href/Href.js.flow +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/list/ListModel.js +5 -1
- package/esm/models/list/ListModel.js.flow +7 -3
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js +7 -0
- package/esm/models/sorting/SortOptionModel.js.flow +7 -0
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/models/sorting/SortingModel.js +14 -2
- package/esm/models/sorting/SortingModel.js.flow +14 -2
- package/esm/models/sorting/SortingModel.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js +7 -6
- package/esm/redux/_modularui/ModularUIConnector.js.flow +6 -4
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/hooks/useList.js +4 -4
- package/lib/hooks/useList.js.map +1 -1
- package/lib/models/href/Href.js +1 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/list/ListModel.js +5 -1
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js +7 -0
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/models/sorting/SortingModel.js +14 -2
- package/lib/models/sorting/SortingModel.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js +7 -6
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/package.json +6 -6
- package/src/hooks/useList.js +5 -5
- package/src/models/href/Href.js +1 -1
- package/src/models/list/ListModel.js +7 -3
- package/src/models/sorting/SortOptionModel.js +7 -0
- package/src/models/sorting/SortingModel.js +14 -2
- package/src/redux/_modularui/ModularUIConnector.js +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIConnector.js","names":["_react","require","_reactRedux","_reactRouter","_ModularUIActions","_Href","_interopRequireDefault","_utils","_ModularUIUtils","_useModularUI","_useI18n","_FormModel","_jsxRuntime","patchUpdateModelOption","oldOptions","updateModel","FormModel","updateHandler","newModel","clonedModel","clone","update","modularUIConnector","name","resource","options","propName","removeOnUnmount","otherOptions","Component","WrappedComponent","props","finalRemoveOnUnmount","dispatch","useDispatch","location","useLocation","url","useUrl","displayName","getDisplayName","contextId","modelEntry","useModularUI","modelKey","model","connectKey","handleManualReload","reloadOptions","reloadModel","handleFetch","href","fetchOptions","loadModularUI","reload","state","doReload","useReload","useEffect","isReload","removeModelByKey","locale","useLocale","newProps","status","lastModification","hasModel","Boolean","fetchModularUI","jsx","_default","exports","default"],"sources":["../../../src/redux/_modularui/ModularUIConnector.js"],"sourcesContent":["// @flow\nimport { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport {\n loadModularUI,\n reloadModel,\n removeModelByKey,\n} from \"./ModularUIActions\";\n\nimport Href from \"../../models/href/Href\";\nimport { getDisplayName } from \"../../react/utils\";\n\nimport { useUrl, useReload } from \"./ModularUIUtils\";\nimport { useModularUI } from \"../../hooks/useModularUI\";\nimport { useLocale } from \"../../hooks/useI18n\";\n\nimport type { ComponentType, Node } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { ModularUIOptions } from \"./types\";\nimport FormModel from \"../../models/form/FormModel\";\n\nexport type InjectedProps = {\n +modelKey: string,\n +location: Location,\n +status: string | null,\n +lastModification: number | null,\n +hasModel: boolean,\n +locale: string,\n +fetchModularUI: (href: string | Href, fetchOptions: Object) => void,\n +reloadModel: (model: ModularUIModel, options: Object) => void,\n +data?: ?ModularUIModel,\n};\n\nconst patchUpdateModelOption = (oldOptions: Object) => {\n if (\n \"updateModel\" in oldOptions &&\n oldOptions.updateModel instanceof FormModel\n ) {\n return {\n ...oldOptions,\n updateHandler: (newModel: ModularUIModel): ModularUIModel => {\n if (newModel instanceof FormModel) {\n // $FLowFixMe\n const clonedModel: FormModel = oldOptions.updateModel.clone();\n clonedModel.update(newModel);\n return clonedModel;\n }\n return newModel;\n },\n };\n }\n\n return oldOptions;\n};\n\n/**\n */\nconst modularUIConnector = (\n name: string,\n resource: string | Function,\n options: ModularUIOptions = { propName: \"data\", removeOnUnmount: false },\n): ((Component: ComponentType<any>) => (props: any) => Node) => {\n const {\n propName = \"data\",\n removeOnUnmount = false,\n ...otherOptions\n } = options;\n\n return (Component: ComponentType<any>) => {\n const WrappedComponent = (props: any) => {\n // explicit property for removeOnMount overwrite the setting\n const finalRemoveOnUnmount = props.removeOnUnmount ?? removeOnUnmount;\n\n const dispatch = useDispatch();\n const location = useLocation();\n\n const url = useUrl(resource, { location, ...props });\n const displayName = getDisplayName(Component, name, props.contextId);\n\n // Load the model through the useModUI hook\n const modelEntry = useModularUI(displayName, url, {\n ...otherOptions,\n removeOnUnmount: finalRemoveOnUnmount,\n });\n const modelKey = modelEntry?.model?.connectKey;\n\n // handle manual reload of model\n const handleManualReload = (\n model: ModularUIModel,\n reloadOptions?: Object,\n ) => {\n dispatch(reloadModel(model, reloadOptions));\n };\n\n // Provide connected models with a fetchModularUI method to be able\n // to run the loadModularUI action from a handler / callback in the component\n const handleFetch = (href: string | Href, fetchOptions: Object) => {\n dispatch(\n loadModularUI(modelKey, href, patchUpdateModelOption(fetchOptions)),\n );\n };\n\n // Check if current model needs a reload\n const reload = location?.state?.reload ?? 0;\n const doReload = useReload(modelEntry, reload);\n useEffect(() => {\n if (doReload) {\n dispatch(\n loadModularUI(modelKey, url, {\n ...patchUpdateModelOption(otherOptions),\n isReload: true,\n }),\n );\n }\n }, [dispatch, doReload, url, modelKey]);\n\n // Remove model when hoc unloads\n useEffect(() =>
|
|
1
|
+
{"version":3,"file":"ModularUIConnector.js","names":["_react","require","_reactRedux","_reactRouter","_ModularUIActions","_Href","_interopRequireDefault","_utils","_ModularUIUtils","_useModularUI","_useI18n","_FormModel","_jsxRuntime","patchUpdateModelOption","oldOptions","updateModel","FormModel","updateHandler","newModel","clonedModel","clone","update","modularUIConnector","name","resource","options","propName","removeOnUnmount","otherOptions","Component","WrappedComponent","props","finalRemoveOnUnmount","dispatch","useDispatch","location","useLocation","url","useUrl","displayName","getDisplayName","contextId","modelEntry","useModularUI","modelKey","model","connectKey","handleManualReload","reloadOptions","reloadModel","handleFetch","href","fetchOptions","loadModularUI","reload","state","doReload","useReload","useEffect","isReload","removeModelByKey","locale","useLocale","newProps","status","lastModification","hasModel","Boolean","fetchModularUI","jsx","_default","exports","default"],"sources":["../../../src/redux/_modularui/ModularUIConnector.js"],"sourcesContent":["// @flow\nimport { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport {\n loadModularUI,\n reloadModel,\n removeModelByKey,\n} from \"./ModularUIActions\";\n\nimport Href from \"../../models/href/Href\";\nimport { getDisplayName } from \"../../react/utils\";\n\nimport { useUrl, useReload } from \"./ModularUIUtils\";\nimport { useModularUI } from \"../../hooks/useModularUI\";\nimport { useLocale } from \"../../hooks/useI18n\";\n\nimport type { ComponentType, Node } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { ModularUIOptions } from \"./types\";\nimport FormModel from \"../../models/form/FormModel\";\n\nexport type InjectedProps = {\n +modelKey: string,\n +location: Location,\n +status: string | null,\n +lastModification: number | null,\n +hasModel: boolean,\n +locale: string,\n +fetchModularUI: (href: string | Href, fetchOptions: Object) => void,\n +reloadModel: (model: ModularUIModel, options: Object) => void,\n +data?: ?ModularUIModel,\n};\n\nconst patchUpdateModelOption = (oldOptions: Object) => {\n if (\n \"updateModel\" in oldOptions &&\n oldOptions.updateModel instanceof FormModel\n ) {\n return {\n ...oldOptions,\n updateHandler: (newModel: ModularUIModel): ModularUIModel => {\n if (newModel instanceof FormModel) {\n // $FLowFixMe\n const clonedModel: FormModel = oldOptions.updateModel.clone();\n clonedModel.update(newModel);\n return clonedModel;\n }\n return newModel;\n },\n };\n }\n\n return oldOptions;\n};\n\n/**\n */\nconst modularUIConnector = (\n name: string,\n resource: string | Function,\n options: ModularUIOptions = { propName: \"data\", removeOnUnmount: false },\n): ((Component: ComponentType<any>) => (props: any) => Node) => {\n const {\n propName = \"data\",\n removeOnUnmount = false,\n ...otherOptions\n } = options;\n\n return (Component: ComponentType<any>) => {\n const WrappedComponent = (props: any) => {\n // explicit property for removeOnMount overwrite the setting\n const finalRemoveOnUnmount = props.removeOnUnmount ?? removeOnUnmount;\n\n const dispatch = useDispatch();\n const location = useLocation();\n\n const url = useUrl(resource, { location, ...props });\n const displayName = getDisplayName(Component, name, props.contextId);\n\n // Load the model through the useModUI hook\n const modelEntry = useModularUI(displayName, url, {\n ...otherOptions,\n removeOnUnmount: finalRemoveOnUnmount,\n });\n const modelKey = modelEntry?.model?.connectKey;\n\n // handle manual reload of model\n const handleManualReload = (\n model: ModularUIModel,\n reloadOptions?: Object,\n ) => {\n dispatch(reloadModel(model, reloadOptions));\n };\n\n // Provide connected models with a fetchModularUI method to be able\n // to run the loadModularUI action from a handler / callback in the component\n const handleFetch = (href: string | Href, fetchOptions: Object) => {\n dispatch(\n loadModularUI(modelKey, href, patchUpdateModelOption(fetchOptions)),\n );\n };\n\n // Check if current model needs a reload\n const reload = location?.state?.reload ?? 0;\n const doReload = useReload(modelEntry, reload);\n useEffect(() => {\n if (doReload) {\n dispatch(\n loadModularUI(modelKey, url, {\n ...patchUpdateModelOption(otherOptions),\n isReload: true,\n }),\n );\n }\n }, [dispatch, doReload, url, modelKey]);\n\n // Remove model when hoc unloads\n useEffect(\n // prettier-ignore\n () => () => { //NOSONAR\n if (finalRemoveOnUnmount) {\n dispatch(removeModelByKey(modelKey));\n }\n },\n [dispatch, modelKey, finalRemoveOnUnmount],\n );\n\n // Create new properties object to inject modularui properties to own props\n const locale = useLocale();\n const newProps: InjectedProps = {\n modelKey,\n [propName]: modelEntry?.model ?? null,\n location,\n status: modelEntry?.status ?? null,\n lastModification: modelEntry?.lastModification ?? null,\n hasModel: Boolean(modelEntry),\n locale,\n fetchModularUI: handleFetch,\n reloadModel: handleManualReload,\n };\n\n return <Component {...props} {...newProps} />;\n };\n\n WrappedComponent.displayName = `BI.modularui(${getDisplayName(\n WrappedComponent,\n name,\n )}`;\n\n return WrappedComponent;\n };\n};\n\nexport default modularUIConnector;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.65.
|
|
3
|
+
"version": "1.65.3",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "https://support.beinformed.com",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@babel/runtime-corejs3": "^7.28.4",
|
|
73
73
|
"@date-fns/tz": "^1.4.1",
|
|
74
|
-
"baseline-browser-mapping": "^2.9.
|
|
74
|
+
"baseline-browser-mapping": "^2.9.11",
|
|
75
75
|
"big.js": "^7.0.1",
|
|
76
76
|
"date-fns": "^4.1.0",
|
|
77
77
|
"deepmerge": "^4.3.1",
|
|
@@ -99,8 +99,8 @@
|
|
|
99
99
|
"@babel/preset-env": "^7.28.5",
|
|
100
100
|
"@babel/preset-flow": "^7.27.1",
|
|
101
101
|
"@babel/preset-react": "^7.28.5",
|
|
102
|
-
"@commitlint/cli": "^
|
|
103
|
-
"@commitlint/config-conventional": "^
|
|
102
|
+
"@commitlint/cli": "^20.3.0",
|
|
103
|
+
"@commitlint/config-conventional": "^20.3.0",
|
|
104
104
|
"@testing-library/dom": "^10.4.1",
|
|
105
105
|
"@testing-library/react": "^16.3.1",
|
|
106
106
|
"auditjs": "^4.0.47",
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"flow-bin": "^0.200.1",
|
|
123
123
|
"flow-copy-source": "^2.0.9",
|
|
124
124
|
"flow-typed": "^3.9.0",
|
|
125
|
-
"hermes-eslint": "^0.33.
|
|
125
|
+
"hermes-eslint": "^0.33.2",
|
|
126
126
|
"history": "^4.0.0",
|
|
127
127
|
"husky": "^9.1.7",
|
|
128
128
|
"jest": "^30.2.0",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"jest-junit": "^16.0.0",
|
|
131
131
|
"jest-sonar-reporter": "^2.0.0",
|
|
132
132
|
"jscodeshift": "^17.3.0",
|
|
133
|
-
"lint-staged": "^
|
|
133
|
+
"lint-staged": "^16.2.7",
|
|
134
134
|
"polished": "^4.3.1",
|
|
135
135
|
"prettier": "^3.7.4",
|
|
136
136
|
"react": "^19.2.3",
|
package/src/hooks/useList.js
CHANGED
|
@@ -12,7 +12,7 @@ import type { HookOptions } from "./useModularUIBasic";
|
|
|
12
12
|
import { useHistory } from "react-router";
|
|
13
13
|
|
|
14
14
|
type ListNavigationHook = {
|
|
15
|
-
|
|
15
|
+
update: (list: ListModel, resetPage?: boolean) => void,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -58,7 +58,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
58
58
|
const history = useHistory();
|
|
59
59
|
const dispatch = useDispatch();
|
|
60
60
|
|
|
61
|
-
const
|
|
61
|
+
const update = (list: ListModel, resetPage: boolean = false) => {
|
|
62
62
|
const listHref = list.selfhref;
|
|
63
63
|
if (resetPage) {
|
|
64
64
|
listHref.page = null;
|
|
@@ -66,7 +66,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
66
66
|
|
|
67
67
|
if (list.requestMethod === HTTP_METHODS.POST) {
|
|
68
68
|
history.push({ search: listHref.querystring, state: list.formdata });
|
|
69
|
-
|
|
69
|
+
dispatch(
|
|
70
70
|
loadModularUI(list.connectKey, listHref, {
|
|
71
71
|
method: HTTP_METHODS.POST,
|
|
72
72
|
data: list.formdata,
|
|
@@ -75,7 +75,7 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
75
75
|
);
|
|
76
76
|
} else {
|
|
77
77
|
history.push({ search: listHref.querystring });
|
|
78
|
-
|
|
78
|
+
dispatch(
|
|
79
79
|
loadModularUI(list.connectKey, listHref, {
|
|
80
80
|
method: HTTP_METHODS.GET,
|
|
81
81
|
targetModel: ListModel,
|
|
@@ -85,6 +85,6 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
return {
|
|
88
|
-
|
|
88
|
+
update,
|
|
89
89
|
};
|
|
90
90
|
};
|
package/src/models/href/Href.js
CHANGED
|
@@ -281,7 +281,7 @@ class Href {
|
|
|
281
281
|
* Remove a parameter from the parameter collection
|
|
282
282
|
*/
|
|
283
283
|
removeParameter(name: string, prefix: ?string, value: ?string): Href {
|
|
284
|
-
if (value
|
|
284
|
+
if (value != undefined) {
|
|
285
285
|
const valueToRemove = value;
|
|
286
286
|
|
|
287
287
|
this._parameters = this._parameters.map((param) => {
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
SHOW_ONE_RESULT_AS_DETAIL,
|
|
21
21
|
} from "../../constants/LayoutHints";
|
|
22
22
|
|
|
23
|
-
import type { ModularUIModel } from "../types";
|
|
23
|
+
import type { ModularUIModel, FilterType } from "../types";
|
|
24
24
|
import type LinkModel from "../links/LinkModel";
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -288,8 +288,12 @@ export default class ListModel extends ResourceModel {
|
|
|
288
288
|
/**
|
|
289
289
|
* Set filterCollection
|
|
290
290
|
*/
|
|
291
|
-
set filterCollection(filterCollection: FilterCollection) {
|
|
292
|
-
|
|
291
|
+
set filterCollection(filterCollection: FilterCollection | Array<FilterType>) {
|
|
292
|
+
if (Array.isArray(filterCollection)) {
|
|
293
|
+
this._filterCollection.collection = filterCollection;
|
|
294
|
+
} else {
|
|
295
|
+
this._filterCollection = filterCollection;
|
|
296
|
+
}
|
|
293
297
|
}
|
|
294
298
|
|
|
295
299
|
/**
|
|
@@ -47,6 +47,13 @@ class SortingModel extends BaseCollection<SortOptionModel> {
|
|
|
47
47
|
.join(",");
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
*/
|
|
52
|
+
set value(value: string) {
|
|
53
|
+
this.reset();
|
|
54
|
+
this.setSelected(value);
|
|
55
|
+
}
|
|
56
|
+
|
|
50
57
|
/**
|
|
51
58
|
*/
|
|
52
59
|
get param(): string {
|
|
@@ -61,8 +68,13 @@ class SortingModel extends BaseCollection<SortOptionModel> {
|
|
|
61
68
|
|
|
62
69
|
/**
|
|
63
70
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
71
|
+
reset() {
|
|
72
|
+
this.collection.forEach((option) => option.reset());
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*/
|
|
76
|
+
setSelected(value: string = "") {
|
|
77
|
+
value.split(",").forEach((sortItem) => {
|
|
66
78
|
const [key, direction] = sortItem.split(" ");
|
|
67
79
|
|
|
68
80
|
this.collection.forEach((option) => {
|
|
@@ -118,13 +118,15 @@ const modularUIConnector = (
|
|
|
118
118
|
}, [dispatch, doReload, url, modelKey]);
|
|
119
119
|
|
|
120
120
|
// Remove model when hoc unloads
|
|
121
|
-
useEffect(
|
|
122
|
-
|
|
121
|
+
useEffect(
|
|
122
|
+
// prettier-ignore
|
|
123
|
+
() => () => { //NOSONAR
|
|
123
124
|
if (finalRemoveOnUnmount) {
|
|
124
125
|
dispatch(removeModelByKey(modelKey));
|
|
125
126
|
}
|
|
126
|
-
}
|
|
127
|
-
|
|
127
|
+
},
|
|
128
|
+
[dispatch, modelKey, finalRemoveOnUnmount],
|
|
129
|
+
);
|
|
128
130
|
|
|
129
131
|
// Create new properties object to inject modularui properties to own props
|
|
130
132
|
const locale = useLocale();
|