@beinformed/ui 1.65.6 → 1.65.7
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 +9 -0
- package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +1 -0
- package/esm/hooks/useList.js +47 -3
- package/esm/hooks/useList.js.flow +74 -2
- package/esm/hooks/useList.js.map +1 -1
- package/esm/hooks/usePanel.js +6 -1
- package/esm/hooks/usePanel.js.flow +6 -4
- package/esm/hooks/usePanel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js +1 -12
- package/esm/models/filters/AssignmentFilterModel.js.flow +6 -14
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +12 -0
- package/esm/models/filters/BaseFilterModel.js.flow +12 -0
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/ConceptIndexFilterModel.js.flow +5 -2
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +26 -8
- package/esm/models/filters/FilterCollection.js.flow +23 -6
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/FilterModel.js.flow +2 -2
- package/esm/models/filters/FilterModel.js.map +1 -1
- package/esm/models/filters/RangeFilterModel.js.flow +2 -2
- package/esm/models/filters/RangeFilterModel.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js.flow +2 -2
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/list/ListModel.js.flow +2 -2
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/search/CaseSearchModel.js.flow +2 -2
- package/esm/models/search/CaseSearchModel.js.map +1 -1
- package/esm/models/types.js +1 -1
- package/esm/models/types.js.flow +28 -10
- package/esm/models/types.js.map +1 -1
- package/esm/react-server/serverUtil.js +2 -2
- package/esm/react-server/serverUtil.js.flow +2 -2
- package/esm/react-server/serverUtil.js.map +1 -1
- package/lib/hooks/useList.js +47 -3
- package/lib/hooks/useList.js.map +1 -1
- package/lib/hooks/usePanel.js +6 -1
- package/lib/hooks/usePanel.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js +0 -12
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +12 -0
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +26 -8
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/FilterModel.js.map +1 -1
- package/lib/models/filters/RangeFilterModel.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/search/CaseSearchModel.js.map +1 -1
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -1
- package/lib/react-server/serverUtil.js +5 -5
- package/lib/react-server/serverUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/hooks/__tests__/UseModularUIModel.spec.js +1 -0
- package/src/hooks/useList.js +74 -2
- package/src/hooks/usePanel.js +6 -4
- package/src/models/filters/AssignmentFilterModel.js +6 -14
- package/src/models/filters/BaseFilterModel.js +12 -0
- package/src/models/filters/ConceptIndexFilterModel.js +5 -2
- package/src/models/filters/FilterCollection.js +23 -6
- package/src/models/filters/FilterModel.js +2 -2
- package/src/models/filters/RangeFilterModel.js +2 -2
- package/src/models/filters/StringFilterModel.js +2 -2
- package/src/models/list/ListModel.js +2 -2
- package/src/models/search/CaseSearchModel.js +2 -2
- package/src/models/types.js +28 -10
- package/src/react-server/serverUtil.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
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.65.7](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.5...v1.65.7) (2026-01-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **hooks:** extend `useList` with advanced filter and pagination methods ([fe5b8f9](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/fe5b8f96d881e19d7061f2af097973cb3a467d75))
|
|
11
|
+
* **panels:** expect correct target models ([8cce991](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/8cce991864ec89ea447d8c55ad6c983d2f466db0))
|
|
12
|
+
* **server:** use correct import ([f7c81cb](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/f7c81cbb1acdcf6f8480bbfa2c7fd2bddcf84eed))
|
|
13
|
+
|
|
5
14
|
## [1.65.6](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.5...v1.65.6) (2026-01-06)
|
|
6
15
|
|
|
7
16
|
## [1.65.5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.1...v1.65.5) (2026-01-05)
|
package/esm/hooks/useList.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useHistory } from "react-router";
|
|
2
2
|
import { useDispatch } from "react-redux";
|
|
3
|
+
import { useModularUIBasic } from "./useModularUIBasic";
|
|
3
4
|
import { HTTP_METHODS } from "../constants/Constants";
|
|
4
5
|
import { loadModularUI } from "../redux";
|
|
5
6
|
import DetailModel from "../models/detail/DetailModel";
|
|
@@ -7,7 +8,9 @@ import ListModel from "../models/list/ListModel";
|
|
|
7
8
|
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
8
9
|
import ListDetailModel from "../models/list/ListDetailModel";
|
|
9
10
|
import Href from "../models/href/Href";
|
|
10
|
-
import
|
|
11
|
+
import FilterCollection from "../models/filters/FilterCollection";
|
|
12
|
+
import AssignmentFilterModel from "../models/filters/AssignmentFilterModel";
|
|
13
|
+
import FilterModel from "../models/filters/FilterModel";
|
|
11
14
|
/**
|
|
12
15
|
*/
|
|
13
16
|
export const useList = (href, options) => useModularUIBasic("list", href, {
|
|
@@ -63,8 +66,49 @@ export const useListNavigation = () => {
|
|
|
63
66
|
}));
|
|
64
67
|
}
|
|
65
68
|
};
|
|
69
|
+
const updateFilters = (list, filters) => {
|
|
70
|
+
list.filterCollection = filters;
|
|
71
|
+
update(list, true);
|
|
72
|
+
};
|
|
73
|
+
const updateFilter = (list, filter, value, attribute) => {
|
|
74
|
+
if (attribute) {
|
|
75
|
+
filter.update(attribute, value);
|
|
76
|
+
} else if (filter instanceof AssignmentFilterModel) {
|
|
77
|
+
throw new Error("Need the attribute to update for AssigmentFilterModel");
|
|
78
|
+
} else if (filter instanceof FilterModel) {
|
|
79
|
+
filter.update(filter.attribute, value);
|
|
80
|
+
}
|
|
81
|
+
update(list, true);
|
|
82
|
+
};
|
|
83
|
+
const resetFilters = list => {
|
|
84
|
+
list.filterCollection.reset();
|
|
85
|
+
update(list, true);
|
|
86
|
+
};
|
|
87
|
+
const removeFilter = (list, filter) => {
|
|
88
|
+
list.filterCollection.getFilterByName(filter.name)?.reset();
|
|
89
|
+
update(list, true);
|
|
90
|
+
};
|
|
91
|
+
const updateSort = (list, sortOption) => {
|
|
92
|
+
list.sorting.value = sortOption;
|
|
93
|
+
update(list, true);
|
|
94
|
+
};
|
|
95
|
+
const updatePage = (list, page) => {
|
|
96
|
+
list.paging.page = page;
|
|
97
|
+
update(list);
|
|
98
|
+
};
|
|
99
|
+
const updatePageSize = (list, pagesize) => {
|
|
100
|
+
list.paging.pagesize.value = pagesize;
|
|
101
|
+
update(list);
|
|
102
|
+
};
|
|
66
103
|
return {
|
|
67
|
-
update
|
|
104
|
+
update,
|
|
105
|
+
updateFilters,
|
|
106
|
+
updateFilter,
|
|
107
|
+
updateSort,
|
|
108
|
+
updatePage,
|
|
109
|
+
updatePageSize,
|
|
110
|
+
resetFilters,
|
|
111
|
+
removeFilter
|
|
68
112
|
};
|
|
69
113
|
};
|
|
70
114
|
//# sourceMappingURL=useList.js.map
|
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import {
|
|
2
|
+
import { useHistory } from "react-router";
|
|
3
3
|
import { useDispatch } from "react-redux";
|
|
4
|
+
|
|
5
|
+
import { useModularUIBasic } from "./useModularUIBasic";
|
|
4
6
|
import { HTTP_METHODS } from "../constants/Constants";
|
|
7
|
+
|
|
5
8
|
import { loadModularUI } from "../redux";
|
|
9
|
+
|
|
6
10
|
import DetailModel from "../models/detail/DetailModel";
|
|
7
11
|
import ListModel from "../models/list/ListModel";
|
|
8
12
|
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
9
13
|
import ListDetailModel from "../models/list/ListDetailModel";
|
|
10
14
|
import Href from "../models/href/Href";
|
|
15
|
+
import FilterCollection from "../models/filters/FilterCollection";
|
|
16
|
+
import AssignmentFilterModel from "../models/filters/AssignmentFilterModel";
|
|
17
|
+
import FilterModel from "../models/filters/FilterModel";
|
|
11
18
|
|
|
12
19
|
import type { HookOptions } from "./useModularUIBasic";
|
|
13
|
-
import {
|
|
20
|
+
import type { AttributeType, IFilter } from "../models/types";
|
|
14
21
|
|
|
15
22
|
type ListNavigationHook = {
|
|
16
23
|
update: (list: ListModel, resetPage?: boolean) => void,
|
|
24
|
+
updateFilters: (list: ListModel, filters: FilterCollection) => void,
|
|
25
|
+
updateFilter: (
|
|
26
|
+
list: ListModel,
|
|
27
|
+
filter: IFilter,
|
|
28
|
+
value: string,
|
|
29
|
+
attribute?: AttributeType,
|
|
30
|
+
) => void,
|
|
31
|
+
updateSort: (list: ListModel, sortOption: string) => void,
|
|
32
|
+
updatePage: (list: ListModel, page: number) => void,
|
|
33
|
+
updatePageSize: (list: ListModel, pagesize: number) => void,
|
|
34
|
+
resetFilters: (list: ListModel) => void,
|
|
35
|
+
removeFilter: (list: ListModel, filter: IFilter) => void,
|
|
17
36
|
};
|
|
18
37
|
|
|
19
38
|
/**
|
|
@@ -85,7 +104,60 @@ export const useListNavigation = (): ListNavigationHook => {
|
|
|
85
104
|
}
|
|
86
105
|
};
|
|
87
106
|
|
|
107
|
+
const updateFilters = (list: ListModel, filters: FilterCollection) => {
|
|
108
|
+
list.filterCollection = filters;
|
|
109
|
+
update(list, true);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const updateFilter = (
|
|
113
|
+
list: ListModel,
|
|
114
|
+
filter: IFilter,
|
|
115
|
+
value: string,
|
|
116
|
+
attribute?: AttributeType,
|
|
117
|
+
) => {
|
|
118
|
+
if (attribute) {
|
|
119
|
+
filter.update(attribute, value);
|
|
120
|
+
} else if (filter instanceof AssignmentFilterModel) {
|
|
121
|
+
throw new Error("Need the attribute to update for AssigmentFilterModel");
|
|
122
|
+
} else if (filter instanceof FilterModel) {
|
|
123
|
+
filter.update(filter.attribute, value);
|
|
124
|
+
}
|
|
125
|
+
update(list, true);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const resetFilters = (list: ListModel) => {
|
|
129
|
+
list.filterCollection.reset();
|
|
130
|
+
update(list, true);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
const removeFilter = (list: ListModel, filter: IFilter) => {
|
|
134
|
+
list.filterCollection.getFilterByName(filter.name)?.reset();
|
|
135
|
+
update(list, true);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const updateSort = (list: ListModel, sortOption: string) => {
|
|
139
|
+
list.sorting.value = sortOption;
|
|
140
|
+
update(list, true);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const updatePage = (list: ListModel, page: number) => {
|
|
144
|
+
list.paging.page = page;
|
|
145
|
+
update(list);
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const updatePageSize = (list: ListModel, pagesize: number) => {
|
|
149
|
+
list.paging.pagesize.value = pagesize;
|
|
150
|
+
update(list);
|
|
151
|
+
};
|
|
152
|
+
|
|
88
153
|
return {
|
|
89
154
|
update,
|
|
155
|
+
updateFilters,
|
|
156
|
+
updateFilter,
|
|
157
|
+
updateSort,
|
|
158
|
+
updatePage,
|
|
159
|
+
updatePageSize,
|
|
160
|
+
resetFilters,
|
|
161
|
+
removeFilter,
|
|
90
162
|
};
|
|
91
163
|
};
|
package/esm/hooks/useList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useList.js","names":["
|
|
1
|
+
{"version":3,"file":"useList.js","names":["useHistory","useDispatch","useModularUIBasic","HTTP_METHODS","loadModularUI","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","FilterCollection","AssignmentFilterModel","FilterModel","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","history","dispatch","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","push","search","querystring","state","formdata","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","Error","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useHistory } from \"react-router\";\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (list: ListModel, filters: FilterCollection) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = (): ListNavigationHook => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const update = (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n history.push({ search: listHref.querystring, state: list.formdata });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n history.push({ search: listHref.querystring });\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n };\n\n const updateFilters = (list: ListModel, filters: FilterCollection) => {\n list.filterCollection = filters;\n update(list, true);\n };\n\n const updateFilter = (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new Error(\"Need the attribute to update for AssigmentFilterModel\");\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n };\n\n const resetFilters = (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n };\n\n const removeFilter = (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n };\n\n const updateSort = (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n };\n\n const updatePage = (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n };\n\n const updatePageSize = (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list);\n };\n\n return {\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/esm/hooks/usePanel.js
CHANGED
|
@@ -3,6 +3,10 @@ import { useState, useMemo } from "react";
|
|
|
3
3
|
import { useLocation, useRouteMatch } from "react-router";
|
|
4
4
|
import Href from "../models/href/Href";
|
|
5
5
|
import { useModularUIBasic } from "./useModularUIBasic";
|
|
6
|
+
import GroupingPanelModel from "../models/panels/GroupingPanelModel";
|
|
7
|
+
import ListModel from "../models/list/ListModel";
|
|
8
|
+
import DetailModel from "../models/detail/DetailModel";
|
|
9
|
+
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
6
10
|
const useUrl = (href, fromRoute = false) => {
|
|
7
11
|
const [previousUrl, setPreviousUrl] = useState(null);
|
|
8
12
|
const [previousExact, setPreviousExact] = useState(false);
|
|
@@ -46,7 +50,8 @@ export const usePanel = (href, options) => {
|
|
|
46
50
|
};
|
|
47
51
|
const url = useUrl(href, fromRoute || false);
|
|
48
52
|
const basicOptions = {
|
|
49
|
-
expectedModels: ["List", "GroupingPanel", "Detail"],
|
|
53
|
+
expectedModels: ["List", "GroupingPanel", "Detail", "CaseSearch"],
|
|
54
|
+
targetModel: [ListModel, GroupingPanelModel, DetailModel, CaseSearchModel],
|
|
50
55
|
...hookOptions
|
|
51
56
|
};
|
|
52
57
|
return useModularUIBasic("panel", url, basicOptions);
|
|
@@ -5,9 +5,10 @@ import Href from "../models/href/Href";
|
|
|
5
5
|
import { useModularUIBasic } from "./useModularUIBasic";
|
|
6
6
|
|
|
7
7
|
import type { HookOptions } from "./useModularUIBasic";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
8
|
+
import GroupingPanelModel from "../models/panels/GroupingPanelModel";
|
|
9
|
+
import ListModel from "../models/list/ListModel";
|
|
10
|
+
import DetailModel from "../models/detail/DetailModel";
|
|
11
|
+
import CaseSearchModel from "../models/search/CaseSearchModel";
|
|
11
12
|
|
|
12
13
|
const useUrl = (href?: string | Href, fromRoute: boolean = false) => {
|
|
13
14
|
const [previousUrl, setPreviousUrl] = useState(null);
|
|
@@ -69,7 +70,8 @@ export const usePanel = (
|
|
|
69
70
|
|
|
70
71
|
const url = useUrl(href, fromRoute || false);
|
|
71
72
|
const basicOptions = {
|
|
72
|
-
expectedModels: ["List", "GroupingPanel", "Detail"],
|
|
73
|
+
expectedModels: ["List", "GroupingPanel", "Detail", "CaseSearch"],
|
|
74
|
+
targetModel: [ListModel, GroupingPanelModel, DetailModel, CaseSearchModel],
|
|
73
75
|
...(hookOptions: HookOptions),
|
|
74
76
|
};
|
|
75
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePanel.js","names":["useState","useMemo","useLocation","useRouteMatch","Href","useModularUIBasic","useUrl","href","fromRoute","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","location","_context","url","isExact","addParametersFromString","search","equalsWithParameters","shouldUpdate","Function","call","bind","_startsWithInstanceProperty","usePanel","options","hookOptions","basicOptions","expectedModels"],"sources":["../../src/hooks/usePanel.js"],"sourcesContent":["// @flow\nimport { useState, useMemo } from \"react\";\nimport { useLocation, useRouteMatch } from \"react-router\";\nimport Href from \"../models/href/Href\";\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport
|
|
1
|
+
{"version":3,"file":"usePanel.js","names":["useState","useMemo","useLocation","useRouteMatch","Href","useModularUIBasic","GroupingPanelModel","ListModel","DetailModel","CaseSearchModel","useUrl","href","fromRoute","previousUrl","setPreviousUrl","previousExact","setPreviousExact","match","location","_context","url","isExact","addParametersFromString","search","equalsWithParameters","shouldUpdate","Function","call","bind","_startsWithInstanceProperty","usePanel","options","hookOptions","basicOptions","expectedModels","targetModel"],"sources":["../../src/hooks/usePanel.js"],"sourcesContent":["// @flow\nimport { useState, useMemo } from \"react\";\nimport { useLocation, useRouteMatch } from \"react-router\";\nimport Href from \"../models/href/Href\";\nimport { useModularUIBasic } from \"./useModularUIBasic\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport GroupingPanelModel from \"../models/panels/GroupingPanelModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport DetailModel from \"../models/detail/DetailModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\n\nconst useUrl = (href?: string | Href, fromRoute: boolean = false) => {\n const [previousUrl, setPreviousUrl] = useState(null);\n const [previousExact, setPreviousExact] = useState(false);\n\n const match = useRouteMatch();\n const location = useLocation();\n\n return useMemo(() => {\n if (href == null && previousUrl == null) {\n return new Href(\"\");\n }\n\n const url = href instanceof Href ? href : new Href(href);\n\n if (!fromRoute) {\n return url;\n }\n\n if (match.isExact) {\n url.addParametersFromString(location.search);\n }\n\n // Check equality to prevent unnecessary state updates\n if (url.equalsWithParameters(previousUrl)) {\n return previousUrl || url;\n }\n\n const shouldUpdate =\n match.isExact === true ||\n previousExact === match.isExact ||\n !previousUrl?.startsWith(match.url);\n\n if (shouldUpdate) {\n setPreviousUrl(url);\n setPreviousExact(match.isExact);\n return url;\n }\n\n return previousUrl || new Href(\"\");\n }, [\n href,\n previousUrl,\n fromRoute,\n match.isExact,\n match.url,\n previousExact,\n location.search,\n ]);\n};\n\n/**\n */\nexport const usePanel = (\n href?: string | Href,\n options?: HookOptions & { fromRoute?: boolean },\n): ListModel | GroupingPanelModel | DetailModel | null => {\n const { fromRoute, ...hookOptions } = options || { fromRoute: false };\n\n const url = useUrl(href, fromRoute || false);\n const basicOptions = {\n expectedModels: [\"List\", \"GroupingPanel\", \"Detail\", \"CaseSearch\"],\n targetModel: [ListModel, GroupingPanelModel, DetailModel, CaseSearchModel],\n ...(hookOptions: HookOptions),\n };\n\n return useModularUIBasic(\"panel\", url, basicOptions);\n};\n"],"mappings":";AACA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,aAAa,QAAQ,cAAc;AACzD,OAAOC,IAAI,MAAM,qBAAqB;AACtC,SAASC,iBAAiB,QAAQ,qBAAqB;AAGvD,OAAOC,kBAAkB,MAAM,qCAAqC;AACpE,OAAOC,SAAS,MAAM,0BAA0B;AAChD,OAAOC,WAAW,MAAM,8BAA8B;AACtD,OAAOC,eAAe,MAAM,kCAAkC;AAE9D,MAAMC,MAAM,GAAGA,CAACC,IAAoB,EAAEC,SAAkB,GAAG,KAAK,KAAK;EACnE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGd,QAAQ,CAAC,IAAI,CAAC;EACpD,MAAM,CAACe,aAAa,EAAEC,gBAAgB,CAAC,GAAGhB,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMiB,KAAK,GAAGd,aAAa,CAAC,CAAC;EAC7B,MAAMe,QAAQ,GAAGhB,WAAW,CAAC,CAAC;EAE9B,OAAOD,OAAO,CAAC,MAAM;IAAA,IAAAkB,QAAA;IACnB,IAAIR,IAAI,IAAI,IAAI,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvC,OAAO,IAAIT,IAAI,CAAC,EAAE,CAAC;IACrB;IAEA,MAAMgB,GAAG,GAAGT,IAAI,YAAYP,IAAI,GAAGO,IAAI,GAAG,IAAIP,IAAI,CAACO,IAAI,CAAC;IAExD,IAAI,CAACC,SAAS,EAAE;MACd,OAAOQ,GAAG;IACZ;IAEA,IAAIH,KAAK,CAACI,OAAO,EAAE;MACjBD,GAAG,CAACE,uBAAuB,CAACJ,QAAQ,CAACK,MAAM,CAAC;IAC9C;;IAEA;IACA,IAAIH,GAAG,CAACI,oBAAoB,CAACX,WAAW,CAAC,EAAE;MACzC,OAAOA,WAAW,IAAIO,GAAG;IAC3B;IAEA,MAAMK,YAAY,GAChBR,KAAK,CAACI,OAAO,KAAK,IAAI,IACtBN,aAAa,KAAKE,KAAK,CAACI,OAAO,IAC/B,CAAC,EAAAF,QAAA,GAAAN,WAAW,qBAAAa,QAAA,CAAAC,IAAA,CAAAC,IAAA,CAAAC,2BAAA,CAAAV,QAAA,GAAAA,QAAA,KAAaF,KAAK,CAACG,GAAG,CAAC;IAErC,IAAIK,YAAY,EAAE;MAChBX,cAAc,CAACM,GAAG,CAAC;MACnBJ,gBAAgB,CAACC,KAAK,CAACI,OAAO,CAAC;MAC/B,OAAOD,GAAG;IACZ;IAEA,OAAOP,WAAW,IAAI,IAAIT,IAAI,CAAC,EAAE,CAAC;EACpC,CAAC,EAAE,CACDO,IAAI,EACJE,WAAW,EACXD,SAAS,EACTK,KAAK,CAACI,OAAO,EACbJ,KAAK,CAACG,GAAG,EACTL,aAAa,EACbG,QAAQ,CAACK,MAAM,CAChB,CAAC;AACJ,CAAC;;AAED;AACA;AACA,OAAO,MAAMO,QAAQ,GAAGA,CACtBnB,IAAoB,EACpBoB,OAA+C,KACS;EACxD,MAAM;IAAEnB,SAAS;IAAE,GAAGoB;EAAY,CAAC,GAAGD,OAAO,IAAI;IAAEnB,SAAS,EAAE;EAAM,CAAC;EAErE,MAAMQ,GAAG,GAAGV,MAAM,CAACC,IAAI,EAAEC,SAAS,IAAI,KAAK,CAAC;EAC5C,MAAMqB,YAAY,GAAG;IACnBC,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,CAAC;IACjEC,WAAW,EAAE,CAAC5B,SAAS,EAAED,kBAAkB,EAAEE,WAAW,EAAEC,eAAe,CAAC;IAC1E,GAAIuB;EACN,CAAC;EAED,OAAO3B,iBAAiB,CAAC,OAAO,EAAEe,GAAG,EAAEa,YAAY,CAAC;AACtD,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
|
2
2
|
import BaseFilterModel from "../filters/BaseFilterModel";
|
|
3
3
|
import { IllegalStateException } from "../../exceptions";
|
|
4
4
|
import createAttribute from "../attributes/_createAttribute";
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* Assignment filter consists of two filters: assignment type and user filter
|
|
7
8
|
*/
|
|
@@ -18,18 +19,6 @@ export default class AssignmentFilterModel extends BaseFilterModel {
|
|
|
18
19
|
this._user = this.createUserModel();
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
/**
|
|
22
|
-
*/
|
|
23
|
-
get key() {
|
|
24
|
-
return this.data.name;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
*/
|
|
29
|
-
get contextid() {
|
|
30
|
-
return this.getContribution("contextid", "");
|
|
31
|
-
}
|
|
32
|
-
|
|
33
22
|
/**
|
|
34
23
|
* Creates an assignmenttype model when assignmenttype json is present
|
|
35
24
|
*/
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import BaseFilterModel from "../filters/BaseFilterModel";
|
|
3
3
|
|
|
4
|
-
import type { AttributeType, ModelOptions } from "../types";
|
|
4
|
+
import type { IFilter, AttributeType, ModelOptions } from "../types";
|
|
5
5
|
import { IllegalStateException } from "../../exceptions";
|
|
6
6
|
import createAttribute from "../attributes/_createAttribute";
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* Assignment filter consists of two filters: assignment type and user filter
|
|
9
10
|
*/
|
|
10
|
-
export default class AssignmentFilterModel
|
|
11
|
+
export default class AssignmentFilterModel
|
|
12
|
+
extends BaseFilterModel
|
|
13
|
+
implements IFilter
|
|
14
|
+
{
|
|
11
15
|
_listKey: string;
|
|
12
16
|
_assignmenttype: AttributeType;
|
|
13
17
|
_user: AttributeType;
|
|
@@ -26,18 +30,6 @@ export default class AssignmentFilterModel extends BaseFilterModel {
|
|
|
26
30
|
this._user = this.createUserModel();
|
|
27
31
|
}
|
|
28
32
|
|
|
29
|
-
/**
|
|
30
|
-
*/
|
|
31
|
-
get key(): ?string {
|
|
32
|
-
return this.data.name;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
*/
|
|
37
|
-
get contextid(): string {
|
|
38
|
-
return this.getContribution("contextid", "");
|
|
39
|
-
}
|
|
40
|
-
|
|
41
33
|
/**
|
|
42
34
|
* Creates an assignmenttype model when assignmenttype json is present
|
|
43
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssignmentFilterModel.js","names":["BaseFilterModel","IllegalStateException","createAttribute","AssignmentFilterModel","constructor","data","contributions","modelOptions","_defineProperty","_assignmenttype","createAssignmentTypeModel","_user","createUserModel","key","name","contextid","getContribution","assignmentTypeData","dynamicschema","assignmentTypeContributions","type","enumerated","optionMode","_links","param","userData","userContributions","assignmenttype","user","params","value","inputvalue","hasValue","reset","update","attribute","isActive","initvalue","isValid","readonlyvalue","formdata"],"sources":["../../../src/models/filters/AssignmentFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\nimport createAttribute from \"../attributes/_createAttribute\";\n/**\n * Assignment filter consists of two filters: assignment type and user filter\n */\nexport default class AssignmentFilterModel extends BaseFilterModel {\n _listKey: string;\n _assignmenttype: AttributeType;\n _user: AttributeType;\n\n /**\n * Construct an assignment filter\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._assignmenttype = this.createAssignmentTypeModel();\n this._user = this.createUserModel();\n }\n\n /**\n */\n get key(): ?string {\n return this.data.name;\n }\n\n /**\n */\n get contextid(): string {\n return this.getContribution(\"contextid\", \"\");\n }\n\n /**\n * Creates an assignmenttype model when assignmenttype json is present\n */\n createAssignmentTypeModel(): AttributeType {\n const key = `${this.contextid}ASSIGNMENTTYPE`;\n const assignmentTypeData = this.data[key];\n\n if (typeof assignmentTypeData === \"undefined\") {\n throw new IllegalStateException(\n `Missing assignment type data for ${key}`,\n );\n }\n\n if (this.data.dynamicschema && this.data.dynamicschema[key]) {\n assignmentTypeData.dynamicschema = {\n [key]: this.data.dynamicschema[key],\n };\n }\n\n const assignmentTypeContributions = {\n ...this.contributions[key],\n type: \"choice\",\n enumerated: true,\n optionMode: assignmentTypeData._links ? \"lookup\" : \"static\",\n };\n\n return createAttribute(\n assignmentTypeData.name || assignmentTypeData.param,\n assignmentTypeData,\n assignmentTypeContributions,\n this.modelOptions,\n );\n }\n\n /**\n * Creates an assignmenttype model when userkey json is present\n */\n createUserModel(): AttributeType {\n const key = `${this.contextid}USERKEY`;\n const userData = this.data[key];\n\n if (this.data.dynamicschema && this.data.dynamicschema[key]) {\n userData.dynamicschema = {\n [key]: this.data.dynamicschema[key],\n };\n }\n\n const userContributions = {\n ...this.contributions[key],\n type: \"choice\",\n enumerated: true,\n optionMode: userData._links ? \"lookup\" : \"static\",\n };\n\n return createAttribute(\n userData.name || userData.param,\n userData,\n userContributions,\n this.modelOptions,\n );\n }\n\n /**\n * The assignment filter consists of two part. This method return the assignment type attribute\n */\n get assignmenttype(): AttributeType {\n return this._assignmenttype;\n }\n\n /**\n * The assignment filter consists of two part. This method return the user identifier attribute\n */\n get user(): AttributeType {\n return this._user;\n }\n\n /**\n * Getting the parameters of this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n return [\n {\n name: this.assignmenttype.name,\n value: this.assignmenttype.value,\n },\n {\n name: this.user.name,\n value: this.user.value,\n },\n ];\n }\n\n /**\n */\n get value(): { [string]: any } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.value,\n [this.user.name]: this.user.value,\n };\n }\n\n /**\n */\n get inputvalue(): { [string]: any } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.inputvalue,\n [this.user.name]: this.user.inputvalue,\n };\n }\n\n /**\n * Indicates if the filter has a value.\n */\n hasValue(): boolean {\n return (\n (this.assignmenttype.value !== null &&\n this.assignmenttype.value !== \"\") ||\n (this.user.value !== null && this.user.value !== \"\")\n );\n }\n\n /**\n * Reset the values within the filter\n */\n reset(): AssignmentFilterModel {\n if (this.assignmenttype) {\n this.assignmenttype.reset();\n }\n if (this.user) {\n this.user.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter\n */\n update(attribute: AttributeType, value: string) {\n if (this.user != null && this.user.key === attribute.key) {\n this.user.update(value);\n } else if (\n this.assignmenttype != null &&\n this.assignmenttype.key === attribute.key\n ) {\n this.assignmenttype.update(value);\n }\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return (\n (this.assignmenttype != null && this.assignmenttype.initvalue !== null) ||\n (this.user != null && this.user.initvalue !== null)\n );\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return (\n this.assignmenttype != null &&\n this.assignmenttype.isValid &&\n this.user != null &&\n this.user.isValid\n );\n }\n\n /**\n */\n get readonlyvalue(): { [string]: string } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.readonlyvalue,\n [this.user.name]: this.user.readonlyvalue,\n };\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.value;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AssignmentFilterModel.js","names":["BaseFilterModel","IllegalStateException","createAttribute","AssignmentFilterModel","constructor","data","contributions","modelOptions","_defineProperty","_assignmenttype","createAssignmentTypeModel","_user","createUserModel","key","contextid","assignmentTypeData","dynamicschema","assignmentTypeContributions","type","enumerated","optionMode","_links","name","param","userData","userContributions","assignmenttype","user","params","value","inputvalue","hasValue","reset","update","attribute","isActive","initvalue","isValid","readonlyvalue","formdata"],"sources":["../../../src/models/filters/AssignmentFilterModel.js"],"sourcesContent":["// @flow\nimport BaseFilterModel from \"../filters/BaseFilterModel\";\n\nimport type { IFilter, AttributeType, ModelOptions } from \"../types\";\nimport { IllegalStateException } from \"../../exceptions\";\nimport createAttribute from \"../attributes/_createAttribute\";\n\n/**\n * Assignment filter consists of two filters: assignment type and user filter\n */\nexport default class AssignmentFilterModel\n extends BaseFilterModel\n implements IFilter\n{\n _listKey: string;\n _assignmenttype: AttributeType;\n _user: AttributeType;\n\n /**\n * Construct an assignment filter\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n this._assignmenttype = this.createAssignmentTypeModel();\n this._user = this.createUserModel();\n }\n\n /**\n * Creates an assignmenttype model when assignmenttype json is present\n */\n createAssignmentTypeModel(): AttributeType {\n const key = `${this.contextid}ASSIGNMENTTYPE`;\n const assignmentTypeData = this.data[key];\n\n if (typeof assignmentTypeData === \"undefined\") {\n throw new IllegalStateException(\n `Missing assignment type data for ${key}`,\n );\n }\n\n if (this.data.dynamicschema && this.data.dynamicschema[key]) {\n assignmentTypeData.dynamicschema = {\n [key]: this.data.dynamicschema[key],\n };\n }\n\n const assignmentTypeContributions = {\n ...this.contributions[key],\n type: \"choice\",\n enumerated: true,\n optionMode: assignmentTypeData._links ? \"lookup\" : \"static\",\n };\n\n return createAttribute(\n assignmentTypeData.name || assignmentTypeData.param,\n assignmentTypeData,\n assignmentTypeContributions,\n this.modelOptions,\n );\n }\n\n /**\n * Creates an assignmenttype model when userkey json is present\n */\n createUserModel(): AttributeType {\n const key = `${this.contextid}USERKEY`;\n const userData = this.data[key];\n\n if (this.data.dynamicschema && this.data.dynamicschema[key]) {\n userData.dynamicschema = {\n [key]: this.data.dynamicschema[key],\n };\n }\n\n const userContributions = {\n ...this.contributions[key],\n type: \"choice\",\n enumerated: true,\n optionMode: userData._links ? \"lookup\" : \"static\",\n };\n\n return createAttribute(\n userData.name || userData.param,\n userData,\n userContributions,\n this.modelOptions,\n );\n }\n\n /**\n * The assignment filter consists of two part. This method return the assignment type attribute\n */\n get assignmenttype(): AttributeType {\n return this._assignmenttype;\n }\n\n /**\n * The assignment filter consists of two part. This method return the user identifier attribute\n */\n get user(): AttributeType {\n return this._user;\n }\n\n /**\n * Getting the parameters of this filter\n */\n get params(): Array<{ name: string, value: ?string }> {\n return [\n {\n name: this.assignmenttype.name,\n value: this.assignmenttype.value,\n },\n {\n name: this.user.name,\n value: this.user.value,\n },\n ];\n }\n\n /**\n */\n get value(): { [string]: any } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.value,\n [this.user.name]: this.user.value,\n };\n }\n\n /**\n */\n get inputvalue(): { [string]: any } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.inputvalue,\n [this.user.name]: this.user.inputvalue,\n };\n }\n\n /**\n * Indicates if the filter has a value.\n */\n hasValue(): boolean {\n return (\n (this.assignmenttype.value !== null &&\n this.assignmenttype.value !== \"\") ||\n (this.user.value !== null && this.user.value !== \"\")\n );\n }\n\n /**\n * Reset the values within the filter\n */\n reset(): AssignmentFilterModel {\n if (this.assignmenttype) {\n this.assignmenttype.reset();\n }\n if (this.user) {\n this.user.reset();\n }\n\n return this;\n }\n\n /**\n * Update this filter\n */\n update(attribute: AttributeType, value: string) {\n if (this.user != null && this.user.key === attribute.key) {\n this.user.update(value);\n } else if (\n this.assignmenttype != null &&\n this.assignmenttype.key === attribute.key\n ) {\n this.assignmenttype.update(value);\n }\n }\n\n /**\n * Inidiates if filter is active\n */\n isActive(): boolean {\n return (\n (this.assignmenttype != null && this.assignmenttype.initvalue !== null) ||\n (this.user != null && this.user.initvalue !== null)\n );\n }\n\n /**\n * Inidiates if filter is valid\n */\n get isValid(): boolean {\n return (\n this.assignmenttype != null &&\n this.assignmenttype.isValid &&\n this.user != null &&\n this.user.isValid\n );\n }\n\n /**\n */\n get readonlyvalue(): { [string]: string } {\n return {\n [this.assignmenttype.name]: this.assignmenttype.readonlyvalue,\n [this.user.name]: this.user.readonlyvalue,\n };\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.value;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,12 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
*/
|
|
21
|
+
get key() {
|
|
22
|
+
return this.data.name;
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
/**
|
|
20
26
|
* Get the type of a filter.
|
|
21
27
|
*/
|
|
@@ -57,6 +63,12 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
57
63
|
this._context = context;
|
|
58
64
|
}
|
|
59
65
|
|
|
66
|
+
/**
|
|
67
|
+
*/
|
|
68
|
+
get contextid() {
|
|
69
|
+
return this.getContribution("contextid", "");
|
|
70
|
+
}
|
|
71
|
+
|
|
60
72
|
/**
|
|
61
73
|
* Getting the context label
|
|
62
74
|
*/
|
|
@@ -29,6 +29,12 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
*/
|
|
34
|
+
get key(): string {
|
|
35
|
+
return this.data.name;
|
|
36
|
+
}
|
|
37
|
+
|
|
32
38
|
/**
|
|
33
39
|
* Get the type of a filter.
|
|
34
40
|
*/
|
|
@@ -72,6 +78,12 @@ export default class BaseFilterModel extends BaseModel {
|
|
|
72
78
|
this._context = context;
|
|
73
79
|
}
|
|
74
80
|
|
|
81
|
+
/**
|
|
82
|
+
*/
|
|
83
|
+
get contextid(): string {
|
|
84
|
+
return this.getContribution("contextid", "");
|
|
85
|
+
}
|
|
86
|
+
|
|
75
87
|
/**
|
|
76
88
|
* Getting the context label
|
|
77
89
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilterModel.js","names":["BaseModel","PARAMETER_SEPARATOR","PARAMETER_TYPES","BaseFilterModel","constructor","data","contributions","modelOptions","_defineProperty","listKey","listkey","type","replace","parameterType","getContribution","BODY","QUERY","isMultiple","context","_context","contextLabel","label","_listKey","
|
|
1
|
+
{"version":3,"file":"BaseFilterModel.js","names":["BaseModel","PARAMETER_SEPARATOR","PARAMETER_TYPES","BaseFilterModel","constructor","data","contributions","modelOptions","_defineProperty","listKey","listkey","key","name","type","replace","parameterType","getContribution","BODY","QUERY","isMultiple","context","_context","contextid","contextLabel","label","_listKey","param","isQuickSearch","quicksearch","assistantMessage"],"sources":["../../../src/models/filters/BaseFilterModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\n\nimport {\n PARAMETER_SEPARATOR,\n PARAMETER_TYPES,\n} from \"../../constants/Constants\";\n\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Base class for filters\n */\nexport default class BaseFilterModel extends BaseModel {\n _context: Object;\n _listKey: string;\n\n /**\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n if (this.contributions.listKey) {\n this.listkey = this.contributions.listKey;\n }\n }\n\n /**\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Get the type of a filter.\n */\n get type(): string {\n return this.contributions.type\n ? this.contributions.type.replace(\"filter\", \"\")\n : \"string\";\n }\n\n /**\n * Returns the parameter type, when the filter can only be used in a POST request the type is 'bodyParameter', else 'queryParameter'.\n */\n get parameterType(): $Values<typeof PARAMETER_TYPES> {\n const parameterType = this.getContribution(\"parameterType\");\n switch (parameterType) {\n case \"bodyParameter\":\n return PARAMETER_TYPES.BODY;\n default:\n return PARAMETER_TYPES.QUERY;\n }\n }\n\n /**\n * Inidiates if filter is multiplechoice\n */\n get isMultiple(): boolean {\n return this.getContribution(\"multiplechoice\", false);\n }\n\n /**\n * Getting context data\n */\n get context(): Object {\n return this._context;\n }\n\n /**\n * Set context of filter\n */\n set context(context: Object) {\n this._context = context;\n }\n\n /**\n */\n get contextid(): string {\n return this.getContribution(\"contextid\", \"\");\n }\n\n /**\n * Getting the context label\n */\n get contextLabel(): string {\n return this.context?.label ?? \"\";\n }\n\n /**\n * Getting key of the list these filters apply to\n */\n get listkey(): string {\n return this._listKey;\n }\n\n /**\n * Set key of list this filter belongs to\n */\n set listkey(key: string) {\n this._listKey = key;\n }\n\n /**\n * Getting the label of the filter\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the name of the filter\n */\n get name(): string {\n if (this.listkey) {\n return this.listkey + PARAMETER_SEPARATOR + this.param;\n }\n\n return this.param;\n }\n\n /**\n * Getting the param name of the filter\n */\n get param(): string {\n return this.data.param ?? this.data.name;\n }\n\n /**\n * Inidicates if filter is a quick search filter\n */\n isQuickSearch(): boolean {\n return this.contributions.quicksearch === true;\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
import FilterModel from "../filters/FilterModel";
|
|
3
3
|
import ChoiceAttributeModel from "../attributes/ChoiceAttributeModel";
|
|
4
4
|
|
|
5
|
-
import type { ModelOptions } from "../types";
|
|
5
|
+
import type { IFilter, ModelOptions } from "../types";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The concept index model is a special filter used to index all first concept label letters in de modelcatalog.
|
|
9
9
|
*/
|
|
10
|
-
export default class ConceptIndexFilterModel
|
|
10
|
+
export default class ConceptIndexFilterModel
|
|
11
|
+
extends FilterModel
|
|
12
|
+
implements IFilter
|
|
13
|
+
{
|
|
11
14
|
/**
|
|
12
15
|
* Construct a filter
|
|
13
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptIndexFilterModel.js","names":["FilterModel","ChoiceAttributeModel","ConceptIndexFilterModel","constructor","data","contributions","modelOptions","attribute","options","_context","_context2","_context3","selectedValues","_mapInstanceProperty","_filterInstanceProperty","call","option","selected","key","hasOptionByCode","forEach","addOption","code","label"],"sources":["../../../src/models/filters/ConceptIndexFilterModel.js"],"sourcesContent":["// @flow\nimport FilterModel from \"../filters/FilterModel\";\nimport ChoiceAttributeModel from \"../attributes/ChoiceAttributeModel\";\n\nimport type { ModelOptions } from \"../types\";\n\n/**\n * The concept index model is a special filter used to index all first concept label letters in de modelcatalog.\n */\nexport default class ConceptIndexFilterModel
|
|
1
|
+
{"version":3,"file":"ConceptIndexFilterModel.js","names":["FilterModel","ChoiceAttributeModel","ConceptIndexFilterModel","constructor","data","contributions","modelOptions","attribute","options","_context","_context2","_context3","selectedValues","_mapInstanceProperty","_filterInstanceProperty","call","option","selected","key","hasOptionByCode","forEach","addOption","code","label"],"sources":["../../../src/models/filters/ConceptIndexFilterModel.js"],"sourcesContent":["// @flow\nimport FilterModel from \"../filters/FilterModel\";\nimport ChoiceAttributeModel from \"../attributes/ChoiceAttributeModel\";\n\nimport type { IFilter, ModelOptions } from \"../types\";\n\n/**\n * The concept index model is a special filter used to index all first concept label letters in de modelcatalog.\n */\nexport default class ConceptIndexFilterModel\n extends FilterModel\n implements IFilter\n{\n /**\n * Construct a filter\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n if (this.attribute instanceof ChoiceAttributeModel) {\n const attribute: ChoiceAttributeModel = this.attribute;\n\n if (attribute && data.options) {\n const selectedValues = data.options\n .filter((option) => option.selected)\n .map((option) => option.key);\n\n data.options\n .filter((option) => !attribute.options.hasOptionByCode(option.key))\n .forEach((option) => {\n attribute.options.addOption(selectedValues, {\n code: option.key,\n label: option.key,\n });\n });\n }\n }\n }\n}\n"],"mappings":";;AACA,OAAOA,WAAW,MAAM,wBAAwB;AAChD,OAAOC,oBAAoB,MAAM,oCAAoC;AAIrE;AACA;AACA;AACA,eAAe,MAAMC,uBAAuB,SAClCF,WAAW,CAErB;EACE;AACF;AACA;EACEG,WAAWA,CACTC,IAAY,EACZC,aAAqB,EACrBC,YAA2B,EAC3B;IACA,KAAK,CAACF,IAAI,EAAEC,aAAa,EAAEC,YAAY,CAAC;IAExC,IAAI,IAAI,CAACC,SAAS,YAAYN,oBAAoB,EAAE;MAClD,MAAMM,SAA+B,GAAG,IAAI,CAACA,SAAS;MAEtD,IAAIA,SAAS,IAAIH,IAAI,CAACI,OAAO,EAAE;QAAA,IAAAC,QAAA,EAAAC,SAAA,EAAAC,SAAA;QAC7B,MAAMC,cAAc,GAAGC,oBAAA,CAAAJ,QAAA,GAAAK,uBAAA,CAAAJ,SAAA,GAAAN,IAAI,CAACI,OAAO,EAAAO,IAAA,CAAAL,SAAA,EACxBM,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAAC,EAAAF,IAAA,CAAAN,QAAA,EAC9BO,MAAM,IAAKA,MAAM,CAACE,GAAG,CAAC;QAE9BJ,uBAAA,CAAAH,SAAA,GAAAP,IAAI,CAACI,OAAO,EAAAO,IAAA,CAAAJ,SAAA,EACDK,MAAM,IAAK,CAACT,SAAS,CAACC,OAAO,CAACW,eAAe,CAACH,MAAM,CAACE,GAAG,CAAC,CAAC,CAClEE,OAAO,CAAEJ,MAAM,IAAK;UACnBT,SAAS,CAACC,OAAO,CAACa,SAAS,CAACT,cAAc,EAAE;YAC1CU,IAAI,EAAEN,MAAM,CAACE,GAAG;YAChBK,KAAK,EAAEP,MAAM,CAACE;UAChB,CAAC,CAAC;QACJ,CAAC,CAAC;MACN;IACF;EACF;AACF","ignoreList":[]}
|
|
@@ -69,7 +69,7 @@ export default class FilterCollection extends BaseCollection {
|
|
|
69
69
|
/**
|
|
70
70
|
* Call the reset function on all filters
|
|
71
71
|
*
|
|
72
|
-
* @see {
|
|
72
|
+
* @see {IFilter#reset()}
|
|
73
73
|
*/
|
|
74
74
|
reset() {
|
|
75
75
|
var _context4;
|
|
@@ -95,19 +95,29 @@ export default class FilterCollection extends BaseCollection {
|
|
|
95
95
|
return filter.key === key || filter.user?.key === key || filter.assignmenttype?.key === key;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
/**
|
|
99
|
+
*/
|
|
100
|
+
getFilterByName(name) {
|
|
101
|
+
var _context5;
|
|
102
|
+
return _findInstanceProperty(_context5 = this).call(_context5, filter => filter.name === name) || null;
|
|
103
|
+
}
|
|
104
|
+
|
|
98
105
|
/**
|
|
99
106
|
* Getting the filter by name
|
|
100
107
|
*/
|
|
101
108
|
getFilterByAttributeKey(key) {
|
|
102
|
-
var
|
|
103
|
-
return _findInstanceProperty(
|
|
109
|
+
var _context6;
|
|
110
|
+
return _findInstanceProperty(_context6 = this).call(_context6, filter => {
|
|
104
111
|
if (filter instanceof RangeFilterModel) {
|
|
105
112
|
return this.checkRangeFilterByAttributeKey(filter, key);
|
|
106
113
|
}
|
|
107
114
|
if (filter instanceof AssignmentFilterModel) {
|
|
108
115
|
return this.checkAssignmentFilterByAttributeKey(filter, key);
|
|
109
116
|
}
|
|
110
|
-
|
|
117
|
+
if (filter instanceof FilterModel) {
|
|
118
|
+
return filter.attribute.key === key;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
111
121
|
}) || null;
|
|
112
122
|
}
|
|
113
123
|
|
|
@@ -115,14 +125,14 @@ export default class FilterCollection extends BaseCollection {
|
|
|
115
125
|
* Update Filter by input name and value
|
|
116
126
|
*/
|
|
117
127
|
update(attribute, value) {
|
|
118
|
-
var
|
|
128
|
+
var _context7;
|
|
119
129
|
const filterToUpdate = attribute.parentKey ? this.getFilterByAttributeKey(attribute.parentKey) : this.getFilterByAttributeKey(attribute.key);
|
|
120
130
|
if (!filterToUpdate) {
|
|
121
131
|
throw new Error(`Can not find filter by attribute key: ${attribute.key}`);
|
|
122
132
|
}
|
|
123
133
|
const newFilter = filterToUpdate.clone();
|
|
124
134
|
newFilter.update(attribute, value);
|
|
125
|
-
this.collection = _mapInstanceProperty(
|
|
135
|
+
this.collection = _mapInstanceProperty(_context7 = this.collection).call(_context7, filter => {
|
|
126
136
|
if (filter.name === newFilter.name) {
|
|
127
137
|
return newFilter;
|
|
128
138
|
}
|
|
@@ -144,11 +154,19 @@ export default class FilterCollection extends BaseCollection {
|
|
|
144
154
|
return this.collection.some(filter => filter.isActive());
|
|
145
155
|
}
|
|
146
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Retrieve all filters with a value
|
|
159
|
+
*/
|
|
160
|
+
getActiveFilters() {
|
|
161
|
+
var _context8;
|
|
162
|
+
return _filterInstanceProperty(_context8 = this.collection).call(_context8, filter => filter.isActive());
|
|
163
|
+
}
|
|
164
|
+
|
|
147
165
|
/**
|
|
148
166
|
*/
|
|
149
167
|
get formdata() {
|
|
150
|
-
var
|
|
151
|
-
const bodyFields = _filterInstanceProperty(
|
|
168
|
+
var _context9;
|
|
169
|
+
const bodyFields = _filterInstanceProperty(_context9 = this).call(_context9, f => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue() && f.formdata);
|
|
152
170
|
if (bodyFields.length === 0) {
|
|
153
171
|
return null;
|
|
154
172
|
}
|