@beinformed/ui 1.65.5 → 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 +11 -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/concepts/ConceptIndexModel.js +17 -3
- package/esm/models/concepts/ConceptIndexModel.js.flow +22 -7
- package/esm/models/concepts/ConceptIndexModel.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 +3 -3
- 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 +3 -3
- 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/concepts/ConceptIndexModel.js +17 -3
- package/lib/models/concepts/ConceptIndexModel.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/concepts/ConceptIndexModel.js +22 -7
- 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 +3 -3
- package/src/models/filters/RangeFilterModel.js +2 -2
- package/src/models/filters/StringFilterModel.js +3 -3
- 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,17 @@
|
|
|
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
|
+
|
|
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)
|
|
15
|
+
|
|
5
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)
|
|
6
17
|
|
|
7
18
|
|
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":[]}
|
|
@@ -4,6 +4,8 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
|
|
|
4
4
|
import ResourceModel from "../base/ResourceModel";
|
|
5
5
|
import ResourceCollection from "../base/ResourceCollection";
|
|
6
6
|
import FilterCollection from "../filters/FilterCollection";
|
|
7
|
+
import ConceptIndexFilterModel from "../filters/ConceptIndexFilterModel";
|
|
8
|
+
import FilterModel from "../filters/FilterModel";
|
|
7
9
|
import ConceptLinkModel from "./ConceptLinkModel";
|
|
8
10
|
import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
|
|
9
11
|
/**
|
|
@@ -97,7 +99,11 @@ export default class ConceptIndexModel extends ResourceModel {
|
|
|
97
99
|
* Get index filter
|
|
98
100
|
*/
|
|
99
101
|
get indexfilter() {
|
|
100
|
-
|
|
102
|
+
const indexFilter = this.filterCollection.getFilterByAttributeKey("index");
|
|
103
|
+
if (indexFilter instanceof ConceptIndexFilterModel) {
|
|
104
|
+
return indexFilter;
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
/**
|
|
@@ -116,14 +122,22 @@ export default class ConceptIndexModel extends ResourceModel {
|
|
|
116
122
|
* get searchterm filter
|
|
117
123
|
*/
|
|
118
124
|
get searchtermfilter() {
|
|
119
|
-
|
|
125
|
+
const termFilter = this.filterCollection.getFilterByAttributeKey("label");
|
|
126
|
+
if (termFilter instanceof FilterModel) {
|
|
127
|
+
return termFilter;
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
120
130
|
}
|
|
121
131
|
|
|
122
132
|
/**
|
|
123
133
|
* Get model category filter
|
|
124
134
|
*/
|
|
125
135
|
get modelCategoryFilter() {
|
|
126
|
-
|
|
136
|
+
const categoryFilter = this.filterCollection.getFilterByAttributeKey("modelCategory");
|
|
137
|
+
if (categoryFilter instanceof FilterModel) {
|
|
138
|
+
return categoryFilter;
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
127
141
|
}
|
|
128
142
|
|
|
129
143
|
/**
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
import ResourceModel from "../base/ResourceModel";
|
|
3
3
|
import ResourceCollection from "../base/ResourceCollection";
|
|
4
4
|
import FilterCollection from "../filters/FilterCollection";
|
|
5
|
+
import ConceptIndexFilterModel from "../filters/ConceptIndexFilterModel";
|
|
6
|
+
import FilterModel from "../filters/FilterModel";
|
|
5
7
|
import ConceptLinkModel from "./ConceptLinkModel";
|
|
6
8
|
|
|
7
9
|
import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
|
|
8
10
|
|
|
9
11
|
import type { ModularUIResponse } from "../../modularui";
|
|
10
|
-
import type {
|
|
12
|
+
import type { ModularUIModel } from "../types";
|
|
11
13
|
import type LinkModel from "../links/LinkModel";
|
|
12
14
|
import type Href from "../href/Href";
|
|
13
15
|
import type ErrorResponse from "../error/ErrorResponse";
|
|
@@ -122,8 +124,12 @@ export default class ConceptIndexModel extends ResourceModel {
|
|
|
122
124
|
/**
|
|
123
125
|
* Get index filter
|
|
124
126
|
*/
|
|
125
|
-
get indexfilter():
|
|
126
|
-
|
|
127
|
+
get indexfilter(): ConceptIndexFilterModel | null {
|
|
128
|
+
const indexFilter = this.filterCollection.getFilterByAttributeKey("index");
|
|
129
|
+
if (indexFilter instanceof ConceptIndexFilterModel) {
|
|
130
|
+
return indexFilter;
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
127
133
|
}
|
|
128
134
|
|
|
129
135
|
/**
|
|
@@ -144,15 +150,24 @@ export default class ConceptIndexModel extends ResourceModel {
|
|
|
144
150
|
/**
|
|
145
151
|
* get searchterm filter
|
|
146
152
|
*/
|
|
147
|
-
get searchtermfilter():
|
|
148
|
-
|
|
153
|
+
get searchtermfilter(): FilterModel | null {
|
|
154
|
+
const termFilter = this.filterCollection.getFilterByAttributeKey("label");
|
|
155
|
+
if (termFilter instanceof FilterModel) {
|
|
156
|
+
return termFilter;
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
149
159
|
}
|
|
150
160
|
|
|
151
161
|
/**
|
|
152
162
|
* Get model category filter
|
|
153
163
|
*/
|
|
154
|
-
get modelCategoryFilter():
|
|
155
|
-
|
|
164
|
+
get modelCategoryFilter(): FilterModel | null {
|
|
165
|
+
const categoryFilter =
|
|
166
|
+
this.filterCollection.getFilterByAttributeKey("modelCategory");
|
|
167
|
+
if (categoryFilter instanceof FilterModel) {
|
|
168
|
+
return categoryFilter;
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
156
171
|
}
|
|
157
172
|
|
|
158
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptIndexModel.js","names":["ResourceModel","ResourceCollection","FilterCollection","ConceptLinkModel","TIMEVERSION_FILTER_NAME","ConceptIndexModel","constructor","modularuiResponse","_context","_defineProperty","_filterCollection","_filterInstanceProperty","data","filter","contributions","dynamicschema","modelOptions","_concepts","collection","_embedded","_mapInstanceProperty","results","call","concept","entryDate","type","resourcetype","modelName","isApplicableModel","resourceType","getInitialChildModelLinks","items","setChildModels","models","errors","selfhref","href","selflink","filterCollection","hasItems","forEach","params","param","value","setParameter","name","removeParameter","label","getContribution","indexfilter","getFilterByAttributeKey","timeversionFilter","date","searchtermfilter","modelCategoryFilter","itemCollection"],"sources":["../../../src/models/concepts/ConceptIndexModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ConceptLinkModel from \"./ConceptLinkModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type {
|
|
1
|
+
{"version":3,"file":"ConceptIndexModel.js","names":["ResourceModel","ResourceCollection","FilterCollection","ConceptIndexFilterModel","FilterModel","ConceptLinkModel","TIMEVERSION_FILTER_NAME","ConceptIndexModel","constructor","modularuiResponse","_context","_defineProperty","_filterCollection","_filterInstanceProperty","data","filter","contributions","dynamicschema","modelOptions","_concepts","collection","_embedded","_mapInstanceProperty","results","call","concept","entryDate","type","resourcetype","modelName","isApplicableModel","resourceType","getInitialChildModelLinks","items","setChildModels","models","errors","selfhref","href","selflink","filterCollection","hasItems","forEach","params","param","value","setParameter","name","removeParameter","label","getContribution","indexfilter","indexFilter","getFilterByAttributeKey","timeversionFilter","date","searchtermfilter","termFilter","modelCategoryFilter","categoryFilter","itemCollection"],"sources":["../../../src/models/concepts/ConceptIndexModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ConceptIndexFilterModel from \"../filters/ConceptIndexFilterModel\";\nimport FilterModel from \"../filters/FilterModel\";\nimport ConceptLinkModel from \"./ConceptLinkModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Get Index of concepts, to filter model catalog\n */\nexport default class ConceptIndexModel extends ResourceModel {\n _filterCollection: FilterCollection;\n _concepts: ResourceCollection<ConceptLinkModel>;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter,\n dynamicschema: this.data.dynamicschema,\n },\n this.modelOptions,\n );\n\n this._concepts = new ResourceCollection();\n this._concepts.collection = this.data._embedded\n ? this.data._embedded.results.map(\n (concept) =>\n new ConceptLinkModel(\n concept.concept,\n this.entryDate,\n this.modelOptions,\n ),\n )\n : [];\n }\n\n /**\n */\n get type(): string {\n if (this.resourcetype === \"RelatedConcepts\") {\n return \"RelatedConcepts\";\n }\n\n return \"ConceptIndex\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptIndexModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const resourceType = data.contributions?.resourcetype;\n return (\n resourceType === \"ConceptSearch\" ||\n resourceType === \"relatedConcepts\" ||\n resourceType === \"RelatedConcepts\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.items.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this.items.setChildModels(models, errors);\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.filterCollection.hasItems) {\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\n return href;\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\");\n }\n\n /**\n * Retrieve filters of conceptindex model\n */\n get filterCollection(): FilterCollection {\n return this._filterCollection;\n }\n\n /**\n * Get index filter\n */\n get indexfilter(): ConceptIndexFilterModel | null {\n const indexFilter = this.filterCollection.getFilterByAttributeKey(\"index\");\n if (indexFilter instanceof ConceptIndexFilterModel) {\n return indexFilter;\n }\n return null;\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 const date = timeversionFilter?.value;\n if (typeof date === \"string\") {\n return date;\n }\n return null;\n }\n\n /**\n * get searchterm filter\n */\n get searchtermfilter(): FilterModel | null {\n const termFilter = this.filterCollection.getFilterByAttributeKey(\"label\");\n if (termFilter instanceof FilterModel) {\n return termFilter;\n }\n return null;\n }\n\n /**\n * Get model category filter\n */\n get modelCategoryFilter(): FilterModel | null {\n const categoryFilter =\n this.filterCollection.getFilterByAttributeKey(\"modelCategory\");\n if (categoryFilter instanceof FilterModel) {\n return categoryFilter;\n }\n return null;\n }\n\n /**\n * Get concept links found by index filter\n */\n get items(): ResourceCollection<ConceptLinkModel> {\n return this._concepts;\n }\n\n /**\n * Replace the items collection\n */\n set items(itemCollection: ResourceCollection<ConceptLinkModel>) {\n this._concepts = itemCollection;\n }\n}\n"],"mappings":"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","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
|
*/
|