@beinformed/ui 1.65.6 → 1.65.8

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.
Files changed (112) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/esm/hooks/__tests__/UseModularUIModel.spec.js.flow +1 -0
  3. package/esm/hooks/index.js +1 -0
  4. package/esm/hooks/index.js.flow +1 -0
  5. package/esm/hooks/index.js.map +1 -1
  6. package/esm/hooks/useForm.js +3 -3
  7. package/esm/hooks/useForm.js.flow +7 -4
  8. package/esm/hooks/useForm.js.map +1 -1
  9. package/esm/hooks/useList.js +47 -3
  10. package/esm/hooks/useList.js.flow +74 -2
  11. package/esm/hooks/useList.js.map +1 -1
  12. package/esm/hooks/useLookup.js +62 -0
  13. package/esm/hooks/useLookup.js.flow +82 -0
  14. package/esm/hooks/useLookup.js.map +1 -0
  15. package/esm/hooks/usePanel.js +6 -1
  16. package/esm/hooks/usePanel.js.flow +6 -4
  17. package/esm/hooks/usePanel.js.map +1 -1
  18. package/esm/hooks/useProgressIndicator.js +21 -6
  19. package/esm/hooks/useProgressIndicator.js.flow +27 -10
  20. package/esm/hooks/useProgressIndicator.js.map +1 -1
  21. package/esm/models/attributes/AttributeSetModel.js +1 -1
  22. package/esm/models/attributes/AttributeSetModel.js.flow +1 -1
  23. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  24. package/esm/models/attributes/ChoiceAttributeModel.js +19 -2
  25. package/esm/models/attributes/ChoiceAttributeModel.js.flow +23 -2
  26. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  27. package/esm/models/filters/AssignmentFilterModel.js +1 -12
  28. package/esm/models/filters/AssignmentFilterModel.js.flow +6 -14
  29. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  30. package/esm/models/filters/BaseFilterModel.js +12 -0
  31. package/esm/models/filters/BaseFilterModel.js.flow +12 -0
  32. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  33. package/esm/models/filters/ConceptIndexFilterModel.js.flow +5 -2
  34. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  35. package/esm/models/filters/FilterCollection.js +26 -8
  36. package/esm/models/filters/FilterCollection.js.flow +23 -6
  37. package/esm/models/filters/FilterCollection.js.map +1 -1
  38. package/esm/models/filters/FilterModel.js.flow +2 -2
  39. package/esm/models/filters/FilterModel.js.map +1 -1
  40. package/esm/models/filters/RangeFilterModel.js.flow +2 -2
  41. package/esm/models/filters/RangeFilterModel.js.map +1 -1
  42. package/esm/models/filters/StringFilterModel.js.flow +2 -2
  43. package/esm/models/filters/StringFilterModel.js.map +1 -1
  44. package/esm/models/links/LinkModel.js +17 -1
  45. package/esm/models/links/LinkModel.js.flow +18 -1
  46. package/esm/models/links/LinkModel.js.map +1 -1
  47. package/esm/models/list/ListModel.js.flow +2 -2
  48. package/esm/models/list/ListModel.js.map +1 -1
  49. package/esm/models/search/CaseSearchModel.js.flow +2 -2
  50. package/esm/models/search/CaseSearchModel.js.map +1 -1
  51. package/esm/models/types.js +1 -1
  52. package/esm/models/types.js.flow +28 -10
  53. package/esm/models/types.js.map +1 -1
  54. package/esm/react-server/serverUtil.js +2 -2
  55. package/esm/react-server/serverUtil.js.flow +2 -2
  56. package/esm/react-server/serverUtil.js.map +1 -1
  57. package/lib/hooks/index.js +11 -0
  58. package/lib/hooks/index.js.map +1 -1
  59. package/lib/hooks/useForm.js +5 -5
  60. package/lib/hooks/useForm.js.map +1 -1
  61. package/lib/hooks/useList.js +47 -3
  62. package/lib/hooks/useList.js.map +1 -1
  63. package/lib/hooks/useLookup.js +70 -0
  64. package/lib/hooks/useLookup.js.map +1 -0
  65. package/lib/hooks/usePanel.js +6 -1
  66. package/lib/hooks/usePanel.js.map +1 -1
  67. package/lib/hooks/useProgressIndicator.js +23 -7
  68. package/lib/hooks/useProgressIndicator.js.map +1 -1
  69. package/lib/models/attributes/AttributeSetModel.js +1 -1
  70. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  71. package/lib/models/attributes/ChoiceAttributeModel.js +18 -1
  72. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  73. package/lib/models/filters/AssignmentFilterModel.js +0 -12
  74. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  75. package/lib/models/filters/BaseFilterModel.js +12 -0
  76. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  77. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  78. package/lib/models/filters/FilterCollection.js +26 -8
  79. package/lib/models/filters/FilterCollection.js.map +1 -1
  80. package/lib/models/filters/FilterModel.js.map +1 -1
  81. package/lib/models/filters/RangeFilterModel.js.map +1 -1
  82. package/lib/models/filters/StringFilterModel.js.map +1 -1
  83. package/lib/models/links/LinkModel.js +17 -0
  84. package/lib/models/links/LinkModel.js.map +1 -1
  85. package/lib/models/list/ListModel.js.map +1 -1
  86. package/lib/models/search/CaseSearchModel.js.map +1 -1
  87. package/lib/models/types.js +2 -0
  88. package/lib/models/types.js.map +1 -1
  89. package/lib/react-server/serverUtil.js +5 -5
  90. package/lib/react-server/serverUtil.js.map +1 -1
  91. package/package.json +3 -3
  92. package/src/hooks/__tests__/UseModularUIModel.spec.js +1 -0
  93. package/src/hooks/index.js +1 -0
  94. package/src/hooks/useForm.js +7 -4
  95. package/src/hooks/useList.js +74 -2
  96. package/src/hooks/useLookup.js +82 -0
  97. package/src/hooks/usePanel.js +6 -4
  98. package/src/hooks/useProgressIndicator.js +27 -10
  99. package/src/models/attributes/AttributeSetModel.js +1 -1
  100. package/src/models/attributes/ChoiceAttributeModel.js +23 -2
  101. package/src/models/filters/AssignmentFilterModel.js +6 -14
  102. package/src/models/filters/BaseFilterModel.js +12 -0
  103. package/src/models/filters/ConceptIndexFilterModel.js +5 -2
  104. package/src/models/filters/FilterCollection.js +23 -6
  105. package/src/models/filters/FilterModel.js +2 -2
  106. package/src/models/filters/RangeFilterModel.js +2 -2
  107. package/src/models/filters/StringFilterModel.js +2 -2
  108. package/src/models/links/LinkModel.js +18 -1
  109. package/src/models/list/ListModel.js +2 -2
  110. package/src/models/search/CaseSearchModel.js +2 -2
  111. package/src/models/types.js +28 -10
  112. package/src/react-server/serverUtil.js +2 -2
@@ -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;
@@ -6,9 +6,10 @@ import BaseModel from "../base/BaseModel";
6
6
  import Href from "../href/Href";
7
7
  import LinkCollection from "../links/LinkCollection";
8
8
  import { INITIAL_FILTER } from "../../constants/LayoutHints";
9
+ import Parameter from "../parameter/Parameter";
10
+ import { HTTP_METHODS } from "../../constants";
9
11
 
10
12
  import type { ModelOptions, ModularUIModel } from "../types";
11
- import Parameter from "../parameter/Parameter";
12
13
 
13
14
  /**
14
15
  * Defines a Link. For instance below example of a link to the tab 'books'
@@ -23,6 +24,7 @@ class LinkModel extends BaseModel {
23
24
  _isCacheable: boolean;
24
25
  _icon: string;
25
26
  _targetModel: ?Class<ModularUIModel>;
27
+ _method: $Keys<typeof HTTP_METHODS>;
26
28
 
27
29
  /**
28
30
  * Create a Link
@@ -36,6 +38,7 @@ class LinkModel extends BaseModel {
36
38
 
37
39
  this.createHref(modelOptions);
38
40
 
41
+ this._method = HTTP_METHODS.GET;
39
42
  this._isCacheable = false;
40
43
  }
41
44
 
@@ -121,6 +124,20 @@ class LinkModel extends BaseModel {
121
124
  this._href = href;
122
125
  }
123
126
 
127
+ /**
128
+ * Indicate how this link must be called, GET by default
129
+ */
130
+ get method(): $Keys<typeof HTTP_METHODS> {
131
+ return this._method;
132
+ }
133
+
134
+ /**
135
+ * Set http method for this link
136
+ */
137
+ set method(method: $Keys<typeof HTTP_METHODS>) {
138
+ this._method = method;
139
+ }
140
+
124
141
  /**
125
142
  * Getting the label of the link
126
143
  */
@@ -20,7 +20,7 @@ import {
20
20
  SHOW_ONE_RESULT_AS_DETAIL,
21
21
  } from "../../constants/LayoutHints";
22
22
 
23
- import type { ModularUIModel, FilterType } from "../types";
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<FilterType>) {
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 { FilterType } from "../types";
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<FilterType> {
35
+ getQuickSearchFilters(): Array<IFilter> {
36
36
  return this.filterCollection
37
37
  ? this.filterCollection.filter((filter) => filter.isQuickSearch())
38
38
  : [];
@@ -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 { IllegalArgumentException } from "../exceptions";
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";