@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
|
@@ -8,13 +8,13 @@ import ConceptIndexFilterModel from "../filters/ConceptIndexFilterModel";
|
|
|
8
8
|
import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
|
|
9
9
|
import FilterModel from "../filters/FilterModel";
|
|
10
10
|
|
|
11
|
-
import type { AttributeType,
|
|
11
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
12
12
|
import { PARAMETER_TYPES } from "../../constants";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Contains a collection of filters
|
|
16
16
|
*/
|
|
17
|
-
export default class FilterCollection extends BaseCollection<
|
|
17
|
+
export default class FilterCollection extends BaseCollection<IFilter> {
|
|
18
18
|
/**
|
|
19
19
|
* Construct a collection of filters
|
|
20
20
|
*/
|
|
@@ -68,7 +68,7 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
68
68
|
data: Object,
|
|
69
69
|
contributions: Object,
|
|
70
70
|
modelOptions?: ModelOptions,
|
|
71
|
-
):
|
|
71
|
+
): IFilter {
|
|
72
72
|
const type = contributions.type || "stringfilter";
|
|
73
73
|
if (type === "choicefilter" && filterKey === "index") {
|
|
74
74
|
return new ConceptIndexFilterModel(data, contributions, modelOptions);
|
|
@@ -92,7 +92,7 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
92
92
|
/**
|
|
93
93
|
* Call the reset function on all filters
|
|
94
94
|
*
|
|
95
|
-
* @see {
|
|
95
|
+
* @see {IFilter#reset()}
|
|
96
96
|
*/
|
|
97
97
|
reset(): FilterCollection {
|
|
98
98
|
this.collection = this.collection.map((filter) => filter.reset());
|
|
@@ -134,10 +134,16 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
134
134
|
);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
*/
|
|
139
|
+
getFilterByName(name: string): IFilter | null {
|
|
140
|
+
return this.find((filter) => filter.name === name) || null;
|
|
141
|
+
}
|
|
142
|
+
|
|
137
143
|
/**
|
|
138
144
|
* Getting the filter by name
|
|
139
145
|
*/
|
|
140
|
-
getFilterByAttributeKey(key: string):
|
|
146
|
+
getFilterByAttributeKey(key: string): IFilter | null {
|
|
141
147
|
return (
|
|
142
148
|
this.find((filter) => {
|
|
143
149
|
if (filter instanceof RangeFilterModel) {
|
|
@@ -148,7 +154,11 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
148
154
|
return this.checkAssignmentFilterByAttributeKey(filter, key);
|
|
149
155
|
}
|
|
150
156
|
|
|
151
|
-
|
|
157
|
+
if (filter instanceof FilterModel) {
|
|
158
|
+
return filter.attribute.key === key;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return false;
|
|
152
162
|
}) || null
|
|
153
163
|
);
|
|
154
164
|
}
|
|
@@ -191,6 +201,13 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
191
201
|
return this.collection.some((filter) => filter.isActive());
|
|
192
202
|
}
|
|
193
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Retrieve all filters with a value
|
|
206
|
+
*/
|
|
207
|
+
getActiveFilters(): Array<IFilter> {
|
|
208
|
+
return this.collection.filter((filter) => filter.isActive());
|
|
209
|
+
}
|
|
210
|
+
|
|
194
211
|
/**
|
|
195
212
|
*/
|
|
196
213
|
get formdata(): { [string]: any } | null {
|
|
@@ -3,11 +3,11 @@ import BaseFilterModel from "../filters/BaseFilterModel";
|
|
|
3
3
|
import createAttribute from "../attributes/_createAttribute";
|
|
4
4
|
import { IllegalStateException } from "../../exceptions";
|
|
5
5
|
|
|
6
|
-
import type { AttributeType, ModelOptions } from "../types";
|
|
6
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*/
|
|
10
|
-
export default class FilterModel extends BaseFilterModel {
|
|
10
|
+
export default class FilterModel extends BaseFilterModel implements IFilter {
|
|
11
11
|
_attribute: AttributeType | null = null;
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import FilterModel from "../filters/FilterModel";
|
|
3
3
|
|
|
4
4
|
import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
|
|
5
|
-
import type { AttributeType } from "../types";
|
|
5
|
+
import type { AttributeType, IFilter } from "../types";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Range filter, for instance a date range filter or a number range filter
|
|
9
9
|
*/
|
|
10
|
-
export default class RangeFilterModel extends FilterModel {
|
|
10
|
+
export default class RangeFilterModel extends FilterModel implements IFilter {
|
|
11
11
|
/**
|
|
12
12
|
*/
|
|
13
13
|
update(attribute: AttributeType, value: string) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import type { AttributeType, ModelOptions } from "../types";
|
|
3
|
+
import type { AttributeType, IFilter, ModelOptions } from "../types";
|
|
4
4
|
import FilterModel from "./FilterModel";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* StringFilterModel can handle string filters with multiple setting
|
|
8
8
|
*/
|
|
9
|
-
export default class StringFilterModel extends FilterModel {
|
|
9
|
+
export default class StringFilterModel extends FilterModel implements IFilter {
|
|
10
10
|
_isValid: boolean = true;
|
|
11
11
|
_value: string | null;
|
|
12
12
|
_inputvalue: string;
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
SHOW_ONE_RESULT_AS_DETAIL,
|
|
21
21
|
} from "../../constants/LayoutHints";
|
|
22
22
|
|
|
23
|
-
import type { ModularUIModel,
|
|
23
|
+
import type { ModularUIModel, IFilter } from "../types";
|
|
24
24
|
import type LinkModel from "../links/LinkModel";
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -288,7 +288,7 @@ export default class ListModel extends ResourceModel {
|
|
|
288
288
|
/**
|
|
289
289
|
* Set filterCollection
|
|
290
290
|
*/
|
|
291
|
-
set filterCollection(filterCollection: FilterCollection | Array<
|
|
291
|
+
set filterCollection(filterCollection: FilterCollection | Array<IFilter>) {
|
|
292
292
|
if (Array.isArray(filterCollection)) {
|
|
293
293
|
this._filterCollection.collection = filterCollection;
|
|
294
294
|
} else {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import ListModel from "../list/ListModel";
|
|
3
3
|
|
|
4
4
|
import type { ModularUIResponse } from "../../modularui";
|
|
5
|
-
import type {
|
|
5
|
+
import type { IFilter } from "../types";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Case search model
|
|
@@ -32,7 +32,7 @@ export default class CaseSearchModel extends ListModel {
|
|
|
32
32
|
/**
|
|
33
33
|
* Retrieve quick search filters
|
|
34
34
|
*/
|
|
35
|
-
getQuickSearchFilters(): Array<
|
|
35
|
+
getQuickSearchFilters(): Array<IFilter> {
|
|
36
36
|
return this.filterCollection
|
|
37
37
|
? this.filterCollection.filter((filter) => filter.isQuickSearch())
|
|
38
38
|
: [];
|
package/src/models/types.js
CHANGED
|
@@ -25,10 +25,6 @@ import type SectionModel from "./content/SectionModel";
|
|
|
25
25
|
import type ContentTOCModel from "./content/ContentTOCModel";
|
|
26
26
|
import type ContentTypeModel from "./content/ContentTypeModel";
|
|
27
27
|
import type DetailModel from "./detail/DetailModel";
|
|
28
|
-
import type AssignmentFilterModel from "./filters/AssignmentFilterModel";
|
|
29
|
-
import type FilterModel from "./filters/FilterModel";
|
|
30
|
-
import type RangeFilterModel from "./filters/RangeFilterModel";
|
|
31
|
-
import type ConceptIndexFilterModel from "./filters/ConceptIndexFilterModel";
|
|
32
28
|
import type FormModel from "./form/FormModel";
|
|
33
29
|
import type ListDetailModel from "./list/ListDetailModel";
|
|
34
30
|
import type ListModel from "./list/ListModel";
|
|
@@ -45,6 +41,7 @@ import type AttributeCollection from "./attributes/AttributeCollection";
|
|
|
45
41
|
import type AttributeModel from "./attributes/AttributeModel";
|
|
46
42
|
import type LayoutHintCollection from "./layouthint/LayoutHintCollection";
|
|
47
43
|
import type ErrorResponse from "./error/ErrorResponse";
|
|
44
|
+
import { PARAMETER_TYPES } from "../constants";
|
|
48
45
|
|
|
49
46
|
export type ModularUIModel =
|
|
50
47
|
| ApplicationModel
|
|
@@ -90,12 +87,6 @@ export type RangeChildAttributeType =
|
|
|
90
87
|
| NumberAttributeModel
|
|
91
88
|
| DatetimeAttributeModel;
|
|
92
89
|
|
|
93
|
-
export type FilterType =
|
|
94
|
-
| AssignmentFilterModel
|
|
95
|
-
| FilterModel
|
|
96
|
-
| RangeFilterModel
|
|
97
|
-
| ConceptIndexFilterModel;
|
|
98
|
-
|
|
99
90
|
export type FormErrorAnchor = {
|
|
100
91
|
id: string,
|
|
101
92
|
properties?: {
|
|
@@ -135,6 +126,33 @@ export type textfragmentJSON = {
|
|
|
135
126
|
type: string,
|
|
136
127
|
};
|
|
137
128
|
|
|
129
|
+
export interface IFilter {
|
|
130
|
+
+type: string;
|
|
131
|
+
+parameterType: $Values<typeof PARAMETER_TYPES>;
|
|
132
|
+
+isMultiple: boolean;
|
|
133
|
+
context: Object;
|
|
134
|
+
+contextid: string;
|
|
135
|
+
+contextLabel: string;
|
|
136
|
+
listkey: string;
|
|
137
|
+
+label: string;
|
|
138
|
+
+key: string;
|
|
139
|
+
+name: string;
|
|
140
|
+
+param: string;
|
|
141
|
+
+params: Array<{ name: string, value: ?string }>;
|
|
142
|
+
isQuickSearch(): boolean;
|
|
143
|
+
+assistantMessage: string | null;
|
|
144
|
+
+value: string | { [string]: string } | null;
|
|
145
|
+
+inputvalue: string | { [string]: string };
|
|
146
|
+
hasValue(): boolean;
|
|
147
|
+
reset(): IFilter;
|
|
148
|
+
update(attribute: AttributeType, value: string): void;
|
|
149
|
+
isActive(): boolean;
|
|
150
|
+
+isValid: boolean;
|
|
151
|
+
+readonlyvalue: string | { [string]: string };
|
|
152
|
+
+formdata: { [string]: any } | null;
|
|
153
|
+
clone(): IFilter;
|
|
154
|
+
}
|
|
155
|
+
|
|
138
156
|
export interface IConstraintModel {
|
|
139
157
|
+id: string;
|
|
140
158
|
+defaultMessage: string;
|
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
|
|
23
23
|
import { getEnabledLocales } from "../constants/Settings";
|
|
24
24
|
|
|
25
|
-
import
|
|
25
|
+
import IllegalArgumentException from "../exceptions/IllegalArgumentException";
|
|
26
26
|
|
|
27
|
-
import { initModels } from "../redux";
|
|
27
|
+
import { initModels } from "../redux/_modularui/ModularUIActions";
|
|
28
28
|
import { getLocale } from "../redux/selectors/i18n";
|
|
29
29
|
|
|
30
30
|
import ModularUIRequest from "../modularui/ModularUIRequest";
|