@beinformed/ui 1.13.0 → 1.13.4

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 (123) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/esm/builder/mergeLayoutHintConfigurations.js +3 -3
  3. package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
  4. package/esm/constants/LayoutHintConfig.js +9 -0
  5. package/esm/constants/LayoutHintConfig.js.map +1 -1
  6. package/esm/constants/LayoutHints.js +5 -0
  7. package/esm/constants/LayoutHints.js.map +1 -1
  8. package/esm/constants/Settings.js +2 -1
  9. package/esm/constants/Settings.js.map +1 -1
  10. package/esm/hooks/useContent.js +2 -2
  11. package/esm/hooks/useContent.js.map +1 -1
  12. package/esm/hooks/useDeepCompareEffect.js +2 -1
  13. package/esm/hooks/useDeepCompareEffect.js.map +1 -1
  14. package/esm/hooks/useForm.js.map +1 -1
  15. package/esm/hooks/useModal.js +2 -2
  16. package/esm/hooks/useModal.js.map +1 -1
  17. package/esm/hooks/useModularUI.js +0 -1
  18. package/esm/hooks/useModularUI.js.map +1 -1
  19. package/esm/models/attributes/DatetimeAttributeModel.js +8 -3
  20. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  21. package/esm/models/caseview/CaseViewModel.js +2 -1
  22. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  23. package/esm/models/list/ListItemCollection.js +38 -0
  24. package/esm/models/list/ListItemCollection.js.map +1 -1
  25. package/esm/models/list/ListItemModel.js +14 -2
  26. package/esm/models/list/ListItemModel.js.map +1 -1
  27. package/esm/models/list/ListModel.js +16 -69
  28. package/esm/models/list/ListModel.js.map +1 -1
  29. package/esm/modularui/ModularUIRequest.js +69 -47
  30. package/esm/modularui/ModularUIRequest.js.map +1 -1
  31. package/esm/utils/browser/Cookies.js +18 -32
  32. package/esm/utils/browser/Cookies.js.map +1 -1
  33. package/esm/utils/fetch/xhr.js +4 -2
  34. package/esm/utils/fetch/xhr.js.map +1 -1
  35. package/lib/builder/mergeLayoutHintConfigurations.js +3 -3
  36. package/lib/builder/mergeLayoutHintConfigurations.js.flow +3 -3
  37. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  38. package/lib/constants/LayoutHintConfig.js +9 -0
  39. package/lib/constants/LayoutHintConfig.js.flow +9 -0
  40. package/lib/constants/LayoutHintConfig.js.map +1 -1
  41. package/lib/constants/LayoutHints.js +8 -2
  42. package/lib/constants/LayoutHints.js.flow +4 -0
  43. package/lib/constants/LayoutHints.js.map +1 -1
  44. package/lib/constants/Settings.js +2 -1
  45. package/lib/constants/Settings.js.flow +2 -0
  46. package/lib/constants/Settings.js.map +1 -1
  47. package/lib/hooks/useContent.js +2 -2
  48. package/lib/hooks/useContent.js.flow +2 -2
  49. package/lib/hooks/useContent.js.map +1 -1
  50. package/lib/hooks/useDeepCompareEffect.js +2 -1
  51. package/lib/hooks/useDeepCompareEffect.js.flow +1 -1
  52. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  53. package/lib/hooks/useForm.js.flow +1 -2
  54. package/lib/hooks/useForm.js.map +1 -1
  55. package/lib/hooks/useModal.js +2 -2
  56. package/lib/hooks/useModal.js.flow +1 -1
  57. package/lib/hooks/useModal.js.map +1 -1
  58. package/lib/hooks/useModularUI.js +0 -1
  59. package/lib/hooks/useModularUI.js.flow +0 -2
  60. package/lib/hooks/useModularUI.js.map +1 -1
  61. package/lib/models/attributes/DatetimeAttributeModel.js +9 -3
  62. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -4
  63. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  64. package/lib/models/attributes/__tests__/StringAttributeModel.spec.js.flow +1 -1
  65. package/lib/models/base/__tests__/BaseModel.spec.js.flow +5 -5
  66. package/lib/models/caseview/CaseViewModel.js +3 -1
  67. package/lib/models/caseview/CaseViewModel.js.flow +3 -1
  68. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  69. package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +38 -1
  70. package/lib/models/list/ListItemCollection.js +40 -0
  71. package/lib/models/list/ListItemCollection.js.flow +38 -1
  72. package/lib/models/list/ListItemCollection.js.map +1 -1
  73. package/lib/models/list/ListItemModel.js +14 -2
  74. package/lib/models/list/ListItemModel.js.flow +15 -0
  75. package/lib/models/list/ListItemModel.js.map +1 -1
  76. package/lib/models/list/ListModel.js +15 -70
  77. package/lib/models/list/ListModel.js.flow +1 -45
  78. package/lib/models/list/ListModel.js.map +1 -1
  79. package/lib/models/list/__tests__/ListItemCollection.spec.js.flow +22 -0
  80. package/lib/models/list/__tests__/ListModel.spec.js.flow +0 -2
  81. package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +38 -21
  82. package/lib/models/process/__tests__/ProcessStatusSettingsModel.spec.js.flow +11 -0
  83. package/lib/modularui/ModularUIRequest.js +67 -47
  84. package/lib/modularui/ModularUIRequest.js.flow +38 -22
  85. package/lib/modularui/ModularUIRequest.js.map +1 -1
  86. package/lib/utils/browser/Cookies.js +18 -31
  87. package/lib/utils/browser/Cookies.js.flow +22 -28
  88. package/lib/utils/browser/Cookies.js.map +1 -1
  89. package/lib/utils/browser/__tests__/Cookies.spec.js.flow +51 -0
  90. package/lib/utils/fetch/xhr.js +5 -2
  91. package/lib/utils/fetch/xhr.js.flow +6 -2
  92. package/lib/utils/fetch/xhr.js.map +1 -1
  93. package/package.json +30 -28
  94. package/src/builder/mergeLayoutHintConfigurations.js +3 -3
  95. package/src/constants/LayoutHintConfig.js +9 -0
  96. package/src/constants/LayoutHints.js +4 -0
  97. package/src/constants/Settings.js +2 -0
  98. package/src/hooks/useContent.js +2 -2
  99. package/src/hooks/useDeepCompareEffect.js +1 -1
  100. package/src/hooks/useForm.js +1 -2
  101. package/src/hooks/useModal.js +1 -1
  102. package/src/hooks/useModularUI.js +0 -2
  103. package/src/models/attributes/DatetimeAttributeModel.js +7 -4
  104. package/src/models/attributes/__tests__/StringAttributeModel.spec.js +1 -1
  105. package/src/models/base/__tests__/BaseModel.spec.js +5 -5
  106. package/src/models/caseview/CaseViewModel.js +3 -1
  107. package/src/models/caseview/__tests__/CaseViewModel.spec.js +38 -1
  108. package/src/models/caseview/__tests__/caseview.json +14 -3
  109. package/src/models/caseview/__tests__/caseviewContributions.json +48 -77
  110. package/src/models/caseview/__tests__/caseview_local_taskgroup.json +57 -0
  111. package/src/models/list/ListItemCollection.js +38 -1
  112. package/src/models/list/ListItemModel.js +15 -0
  113. package/src/models/list/ListModel.js +1 -45
  114. package/src/models/list/__tests__/ListItemCollection.spec.js +22 -0
  115. package/src/models/list/__tests__/ListModel.spec.js +0 -2
  116. package/src/models/panels/__tests__/GroupingPanelModel.spec.js +38 -21
  117. package/src/models/panels/__tests__/groupingPanel.json +20 -1
  118. package/src/models/panels/__tests__/groupingPanelContributions.json +14 -1
  119. package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +11 -0
  120. package/src/modularui/ModularUIRequest.js +38 -22
  121. package/src/utils/browser/Cookies.js +22 -28
  122. package/src/utils/browser/__tests__/Cookies.spec.js +51 -0
  123. package/src/utils/fetch/xhr.js +6 -2
@@ -1,4 +1,6 @@
1
1
  // @flow
2
+ import Cookies from "js-cookie";
3
+
2
4
  import { BASE } from "../../constants/Constants";
3
5
 
4
6
  type CookieOptions = {
@@ -7,18 +9,17 @@ type CookieOptions = {
7
9
  secure?: boolean,
8
10
  };
9
11
 
12
+ type CookieAttributes = {
13
+ path: string,
14
+ expires?: number,
15
+ sameSite?: string,
16
+ secure?: boolean,
17
+ };
18
+
10
19
  /**
11
20
  */
12
21
  const getCookie = (name: string): null | string => {
13
- if (typeof document !== "undefined") {
14
- const value = `;${document.cookie}`;
15
- const parts = value.split(`; ${name}=`);
16
- if (parts.length === 2) {
17
- return parts.pop().split(";").shift();
18
- }
19
- }
20
-
21
- return null;
22
+ return Cookies.get(name);
22
23
  };
23
24
 
24
25
  /**
@@ -28,31 +29,24 @@ const setCookie = (
28
29
  value: any,
29
30
  { days, sameSite = "Strict", secure }: CookieOptions = {}
30
31
  ) => {
31
- if (typeof document !== "undefined") {
32
- const valuePart = `${name}=${value || ""}`;
33
-
34
- let expires = "";
35
- if (days) {
36
- const date = new Date();
37
- date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
38
- expires = `; expires=${date.toUTCString()}`;
39
- }
40
- let sameSitePart = "";
41
- if (sameSite) {
42
- sameSitePart = `; SameSite=${sameSite}`;
43
- }
44
- const securePart = secure ? "Secure" : "";
45
-
46
- document.cookie = `${valuePart}${expires}${sameSitePart}${securePart}; path=${BASE}`;
32
+ const attributes: CookieAttributes = { path: BASE };
33
+ if (days) {
34
+ attributes.expires = days;
35
+ }
36
+ if (sameSite) {
37
+ attributes.sameSite = sameSite;
38
+ }
39
+ if (secure) {
40
+ attributes.secure = secure;
47
41
  }
42
+
43
+ Cookies.set(name, value, attributes);
48
44
  };
49
45
 
50
46
  /**
51
47
  */
52
48
  const clearCookie = (name: string) => {
53
- if (typeof document !== "undefined") {
54
- document.cookie = `${name}=; Max-Age=-99999999;`;
55
- }
49
+ Cookies.remove(name, { path: BASE });
56
50
  };
57
51
 
58
52
  export { getCookie, setCookie, clearCookie };
@@ -0,0 +1,51 @@
1
+ import { getCookie, setCookie, clearCookie } from "../Cookies";
2
+
3
+ describe("cookies util", () => {
4
+ beforeEach(() => {
5
+ Object.defineProperty(
6
+ window.document,
7
+ "cookie",
8
+ (function (cookies) {
9
+ return {
10
+ get: function _get() {
11
+ const output = [];
12
+ for (const cookieName in cookies) {
13
+ output.push(cookieName + "=" + cookies[cookieName]);
14
+ }
15
+ return output.join("; ");
16
+ },
17
+ set: function _set(s) {
18
+ const indexOfSeparator = s.indexOf("=");
19
+ const key = s.substr(0, indexOfSeparator);
20
+ const value = s.substring(indexOfSeparator + 1);
21
+ const valueWithoutAttributes = value.substr(0, value.indexOf(";"));
22
+
23
+ if (valueWithoutAttributes === "") {
24
+ delete cookies[key];
25
+ } else {
26
+ cookies[key] = value;
27
+ }
28
+ return key + "=" + value;
29
+ },
30
+ reset: function _reset() {
31
+ cookies = {};
32
+ },
33
+ configurable: true,
34
+ };
35
+ })({})
36
+ );
37
+ });
38
+
39
+ it("should be able retrieve cookies by name", () => {
40
+ setCookie("newCookie", "test");
41
+ expect(getCookie("newCookie")).toBe("test");
42
+
43
+ setCookie("newCookie2", "test2");
44
+ expect(getCookie("newCookie")).toBe("test");
45
+ expect(getCookie("newCookie2")).toBe("test2");
46
+
47
+ clearCookie("newCookie2");
48
+ expect(getCookie("newCookie")).toBe("test");
49
+ expect(getCookie("newCookie2")).toBeUndefined();
50
+ });
51
+ });
@@ -15,6 +15,8 @@ import Cache from "../browser/Cache";
15
15
 
16
16
  import { HTTP_METHODS } from "../../constants/Constants";
17
17
 
18
+ import { getSetting } from "../../constants/Settings";
19
+
18
20
  import type { RequestOptions } from "./types";
19
21
 
20
22
  const NETWORK_ERROR_CODE = 0;
@@ -116,7 +118,7 @@ class XHR {
116
118
  /**
117
119
  */
118
120
  get timeout() {
119
- return this.options.timeout || 300000;
121
+ return this.options.timeout || getSetting("XHR_TIMEOUT_MS", 300000);
120
122
  }
121
123
 
122
124
  /**
@@ -132,7 +134,9 @@ class XHR {
132
134
  return this.options.onProgress;
133
135
  }
134
136
 
135
- return () => {};
137
+ return () => {
138
+ // do nothing
139
+ };
136
140
  }
137
141
 
138
142
  /**