@beinformed/ui 1.63.14 → 1.65.0
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 +25 -0
- package/esm/constants/Constants.js +4 -0
- package/esm/constants/Constants.js.flow +5 -0
- package/esm/constants/Constants.js.map +1 -1
- package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +7 -5
- package/esm/hooks/index.js +2 -0
- package/esm/hooks/index.js.flow +2 -0
- package/esm/hooks/index.js.map +1 -1
- package/esm/hooks/useList.js +69 -0
- package/esm/hooks/useList.js.flow +90 -0
- package/esm/hooks/useList.js.map +1 -0
- package/esm/hooks/useModularUIBasic.js +1 -1
- package/esm/hooks/useModularUIBasic.js.flow +6 -2
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useModularUIModel.js +0 -34
- package/esm/hooks/useModularUIModel.js.flow +1 -55
- package/esm/hooks/useModularUIModel.js.map +1 -1
- package/esm/hooks/usePanel.js +49 -0
- package/esm/hooks/usePanel.js.flow +76 -0
- package/esm/hooks/usePanel.js.map +1 -0
- package/esm/models/filters/BaseFilterModel.js +27 -1
- package/esm/models/filters/BaseFilterModel.js.flow +30 -1
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +18 -0
- package/esm/models/filters/FilterCollection.js.flow +18 -0
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js +8 -0
- package/esm/models/filters/StringFilterModel.js.flow +8 -0
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/href/ListHref.js +3 -1
- package/esm/models/href/ListHref.js.flow +11 -8
- package/esm/models/href/ListHref.js.map +1 -1
- package/esm/models/list/ListModel.js +17 -7
- package/esm/models/list/ListModel.js.flow +20 -8
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/paging/PagesizeModel.js +6 -0
- package/esm/models/paging/PagesizeModel.js.flow +6 -0
- package/esm/models/paging/PagesizeModel.js.map +1 -1
- package/esm/models/paging/PagingModel.js +11 -0
- package/esm/models/paging/PagingModel.js.flow +11 -0
- package/esm/models/paging/PagingModel.js.map +1 -1
- package/lib/constants/Constants.js +5 -1
- package/lib/constants/Constants.js.map +1 -1
- package/lib/hooks/index.js +22 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useList.js +80 -0
- package/lib/hooks/useList.js.map +1 -0
- package/lib/hooks/useModularUIBasic.js +2 -2
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useModularUIModel.js +1 -39
- package/lib/hooks/useModularUIModel.js.map +1 -1
- package/lib/hooks/usePanel.js +57 -0
- package/lib/hooks/usePanel.js.map +1 -0
- package/lib/models/filters/BaseFilterModel.js +26 -0
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +17 -0
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js +8 -0
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/href/ListHref.js +3 -1
- package/lib/models/href/ListHref.js.map +1 -1
- package/lib/models/list/ListModel.js +17 -7
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/paging/PagesizeModel.js +6 -0
- package/lib/models/paging/PagesizeModel.js.map +1 -1
- package/lib/models/paging/PagingModel.js +11 -0
- package/lib/models/paging/PagingModel.js.map +1 -1
- package/package.json +8 -8
- package/src/constants/Constants.js +5 -0
- package/src/hooks/__tests__/UseModularUIModel.spec.js +7 -5
- package/src/hooks/index.js +2 -0
- package/src/hooks/useList.js +90 -0
- package/src/hooks/useModularUIBasic.js +6 -2
- package/src/hooks/useModularUIModel.js +1 -55
- package/src/hooks/usePanel.js +76 -0
- package/src/models/filters/BaseFilterModel.js +30 -1
- package/src/models/filters/FilterCollection.js +18 -0
- package/src/models/filters/StringFilterModel.js +8 -0
- package/src/models/href/ListHref.js +11 -8
- package/src/models/list/ListModel.js +20 -8
- package/src/models/paging/PagesizeModel.js +6 -0
- package/src/models/paging/PagingModel.js +11 -0
|
@@ -9,6 +9,7 @@ import CompositeAttributeModel from "../attributes/CompositeAttributeModel";
|
|
|
9
9
|
import FilterModel from "../filters/FilterModel";
|
|
10
10
|
|
|
11
11
|
import type { AttributeType, FilterType, ModelOptions } from "../types";
|
|
12
|
+
import { PARAMETER_TYPES } from "../../constants";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Contains a collection of filters
|
|
@@ -189,4 +190,21 @@ export default class FilterCollection extends BaseCollection<FilterType> {
|
|
|
189
190
|
hasActiveFilters(): boolean {
|
|
190
191
|
return this.collection.some((filter) => filter.isActive());
|
|
191
192
|
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
*/
|
|
196
|
+
get formdata(): { [string]: any } | null {
|
|
197
|
+
let data = {};
|
|
198
|
+
this.filter(
|
|
199
|
+
(f) => f.parameterType === PARAMETER_TYPES.BODY && f.hasValue(),
|
|
200
|
+
).forEach((f) => {
|
|
201
|
+
// $FlowIgnore[cannot-spread-indexer]
|
|
202
|
+
// $FlowIgnore[exponential-spread]
|
|
203
|
+
data = {
|
|
204
|
+
...data,
|
|
205
|
+
...f.formdata,
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
return data;
|
|
209
|
+
}
|
|
192
210
|
}
|
|
@@ -156,4 +156,12 @@ export default class StringFilterModel extends FilterModel {
|
|
|
156
156
|
(this.isIBAN() || this.isZipcode() || this.isBSN())
|
|
157
157
|
);
|
|
158
158
|
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
*/
|
|
162
|
+
get formdata(): { [string]: any } | null {
|
|
163
|
+
return {
|
|
164
|
+
[this.param]: this.value,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
159
167
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import Href from "./Href";
|
|
3
|
+
import { PARAMETER_TYPES } from "../../constants/Constants";
|
|
3
4
|
|
|
4
5
|
import type FilterCollection from "../filters/FilterCollection";
|
|
5
6
|
import type ListModel from "../list/ListModel";
|
|
@@ -133,14 +134,16 @@ export default class ListHref extends Href {
|
|
|
133
134
|
return;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
filters
|
|
137
|
-
filter
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
137
|
+
filters
|
|
138
|
+
.filter((filter) => filter.parameterType === PARAMETER_TYPES.QUERY)
|
|
139
|
+
.forEach((filter) => {
|
|
140
|
+
filter.params.forEach((param) => {
|
|
141
|
+
if (param.value != null) {
|
|
142
|
+
this.setParameter(param.name, param.value, this.prefix);
|
|
143
|
+
} else {
|
|
144
|
+
this.removeParameter(param.name, this.prefix);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
143
147
|
});
|
|
144
|
-
});
|
|
145
148
|
}
|
|
146
149
|
}
|
|
@@ -12,6 +12,8 @@ import ListItemModel from "../list/ListItemModel";
|
|
|
12
12
|
import PagingModel from "../paging/PagingModel";
|
|
13
13
|
import ResourceModel from "../base/ResourceModel";
|
|
14
14
|
import SortingModel from "../sorting/SortingModel";
|
|
15
|
+
import { HTTP_METHODS, PARAMETER_TYPES } from "../../constants";
|
|
16
|
+
|
|
15
17
|
import {
|
|
16
18
|
CASEVIEW_LINK,
|
|
17
19
|
HIDE_WHEN_EMPTY,
|
|
@@ -33,7 +35,6 @@ export default class ListModel extends ResourceModel {
|
|
|
33
35
|
_actionCollection: ActionCollection;
|
|
34
36
|
_listItemCollection: ListItemCollection;
|
|
35
37
|
_grouping: GroupingModel;
|
|
36
|
-
_selfhref: ListHref;
|
|
37
38
|
|
|
38
39
|
/**
|
|
39
40
|
*/
|
|
@@ -91,6 +92,16 @@ export default class ListModel extends ResourceModel {
|
|
|
91
92
|
this.detail = models.find((childModel) => childModel.type === "ListDetail");
|
|
92
93
|
}
|
|
93
94
|
|
|
95
|
+
/**
|
|
96
|
+
*/
|
|
97
|
+
get requestMethod(): $Keys<typeof HTTP_METHODS> {
|
|
98
|
+
const mustPost = this.filterCollection.some(
|
|
99
|
+
(filter) =>
|
|
100
|
+
filter.parameterType === PARAMETER_TYPES.BODY && filter.hasValue(),
|
|
101
|
+
);
|
|
102
|
+
return mustPost ? HTTP_METHODS.POST : HTTP_METHODS.GET;
|
|
103
|
+
}
|
|
104
|
+
|
|
94
105
|
/**
|
|
95
106
|
* Getting the label of the list
|
|
96
107
|
*/
|
|
@@ -159,8 +170,6 @@ export default class ListModel extends ResourceModel {
|
|
|
159
170
|
|
|
160
171
|
this._detail = detail;
|
|
161
172
|
}
|
|
162
|
-
|
|
163
|
-
this.setSelfHref();
|
|
164
173
|
}
|
|
165
174
|
|
|
166
175
|
/**
|
|
@@ -335,7 +344,7 @@ export default class ListModel extends ResourceModel {
|
|
|
335
344
|
/**
|
|
336
345
|
* Sets self href from links collection
|
|
337
346
|
*/
|
|
338
|
-
|
|
347
|
+
getSelfHref(): ListHref {
|
|
339
348
|
const selfLink = this.links ? this.links.getLinkByKey("self") : null;
|
|
340
349
|
|
|
341
350
|
if (selfLink !== null) {
|
|
@@ -349,10 +358,7 @@ export default class ListModel extends ResourceModel {
|
|
|
349
358
|
* Getting the self link of this list
|
|
350
359
|
*/
|
|
351
360
|
get selfhref(): ListHref {
|
|
352
|
-
|
|
353
|
-
this._selfhref = this.setSelfHref();
|
|
354
|
-
}
|
|
355
|
-
return this._selfhref;
|
|
361
|
+
return this.getSelfHref();
|
|
356
362
|
}
|
|
357
363
|
|
|
358
364
|
/**
|
|
@@ -435,4 +441,10 @@ export default class ListModel extends ResourceModel {
|
|
|
435
441
|
|
|
436
442
|
return null;
|
|
437
443
|
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
*/
|
|
447
|
+
get formdata(): string {
|
|
448
|
+
return JSON.stringify(this.filterCollection.formdata);
|
|
449
|
+
}
|
|
438
450
|
}
|
|
@@ -91,4 +91,15 @@ export default class PagingModel {
|
|
|
91
91
|
get pagesize(): PagesizeModel {
|
|
92
92
|
return this._pagesize;
|
|
93
93
|
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
*/
|
|
97
|
+
get querystring(): string {
|
|
98
|
+
const qs = [];
|
|
99
|
+
if (this.pagesize) {
|
|
100
|
+
qs.push(this.pagesize.querystring);
|
|
101
|
+
}
|
|
102
|
+
qs.push(`${this.name}=${this.page}`);
|
|
103
|
+
return qs.join("&");
|
|
104
|
+
}
|
|
94
105
|
}
|