@beinformed/ui 1.65.24 → 1.65.26

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 (226) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/esm/builder/mergeLayoutHintConfigurations.js +7 -5
  3. package/esm/builder/mergeLayoutHintConfigurations.js.flow +12 -5
  4. package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
  5. package/esm/constants/Settings.js +4 -1
  6. package/esm/constants/Settings.js.flow +3 -3
  7. package/esm/constants/Settings.js.map +1 -1
  8. package/esm/hooks/useAuthentication.js +7 -3
  9. package/esm/hooks/useAuthentication.js.flow +6 -3
  10. package/esm/hooks/useAuthentication.js.map +1 -1
  11. package/esm/hooks/useModelCatalog.js +1 -1
  12. package/esm/hooks/useModelCatalog.js.flow +1 -1
  13. package/esm/hooks/useModelCatalog.js.map +1 -1
  14. package/esm/i18n/Locale.js +7 -1
  15. package/esm/i18n/Locale.js.flow +4 -2
  16. package/esm/i18n/Locale.js.map +1 -1
  17. package/esm/models/actions/ActionCollection.js +1 -1
  18. package/esm/models/actions/ActionCollection.js.flow +3 -3
  19. package/esm/models/actions/ActionCollection.js.map +1 -1
  20. package/esm/models/application/ApplicationModel.js +6 -1
  21. package/esm/models/application/ApplicationModel.js.flow +7 -2
  22. package/esm/models/application/ApplicationModel.js.map +1 -1
  23. package/esm/models/attributes/ChoiceAttributeModel.js +3 -5
  24. package/esm/models/attributes/ChoiceAttributeModel.js.flow +3 -5
  25. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  26. package/esm/models/attributes/CompositeAttributeModel.js +1 -1
  27. package/esm/models/attributes/CompositeAttributeModel.js.flow +1 -1
  28. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  29. package/esm/models/attributes/NumberAttributeModel.js +3 -1
  30. package/esm/models/attributes/NumberAttributeModel.js.flow +2 -1
  31. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  32. package/esm/models/attributes/StringAttributeModel.js +9 -4
  33. package/esm/models/attributes/StringAttributeModel.js.flow +7 -4
  34. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  35. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  36. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.flow +1 -1
  37. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  38. package/esm/models/base/BaseModel.js +8 -5
  39. package/esm/models/base/BaseModel.js.flow +8 -5
  40. package/esm/models/base/BaseModel.js.map +1 -1
  41. package/esm/models/base/ResourceModel.js +6 -7
  42. package/esm/models/base/ResourceModel.js.flow +4 -4
  43. package/esm/models/base/ResourceModel.js.map +1 -1
  44. package/esm/models/concepts/ConceptDetailModel.js +16 -16
  45. package/esm/models/concepts/ConceptDetailModel.js.flow +16 -19
  46. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  47. package/esm/models/concepts/SourceReferenceCollection.js +1 -1
  48. package/esm/models/concepts/SourceReferenceCollection.js.flow +1 -2
  49. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  50. package/esm/models/content/ContentLinkModel.js +6 -6
  51. package/esm/models/content/ContentLinkModel.js.flow +6 -6
  52. package/esm/models/content/ContentLinkModel.js.map +1 -1
  53. package/esm/models/filters/BaseFilterModel.js +3 -5
  54. package/esm/models/filters/BaseFilterModel.js.flow +4 -5
  55. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  56. package/esm/models/filters/StringFilterModel.js +4 -2
  57. package/esm/models/filters/StringFilterModel.js.flow +3 -2
  58. package/esm/models/filters/StringFilterModel.js.map +1 -1
  59. package/esm/models/form/FormModel.js +1 -1
  60. package/esm/models/form/FormModel.js.flow +1 -2
  61. package/esm/models/form/FormModel.js.map +1 -1
  62. package/esm/models/form/FormObjectModel.js +1 -1
  63. package/esm/models/form/FormObjectModel.js.flow +2 -3
  64. package/esm/models/form/FormObjectModel.js.map +1 -1
  65. package/esm/models/href/Href.js +2 -2
  66. package/esm/models/href/Href.js.flow +2 -2
  67. package/esm/models/href/Href.js.map +1 -1
  68. package/esm/models/index.js +2 -2
  69. package/esm/models/index.js.flow +1 -2
  70. package/esm/models/index.js.map +1 -1
  71. package/esm/models/links/normalizeLinkJSON.js +1 -1
  72. package/esm/models/links/normalizeLinkJSON.js.flow +1 -1
  73. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  74. package/esm/modularui/Authenticate.js +7 -2
  75. package/esm/modularui/Authenticate.js.flow +4 -2
  76. package/esm/modularui/Authenticate.js.map +1 -1
  77. package/esm/modularui/ModularUIRequest.js +2 -5
  78. package/esm/modularui/ModularUIRequest.js.flow +2 -6
  79. package/esm/modularui/ModularUIRequest.js.map +1 -1
  80. package/esm/modularui/UploadRequest.js +3 -1
  81. package/esm/modularui/UploadRequest.js.flow +3 -1
  82. package/esm/modularui/UploadRequest.js.map +1 -1
  83. package/esm/react-client/client.js +22 -10
  84. package/esm/react-client/client.js.flow +17 -11
  85. package/esm/react-client/client.js.map +1 -1
  86. package/esm/react-client/contextPath.js +3 -1
  87. package/esm/react-client/contextPath.js.flow +2 -1
  88. package/esm/react-client/contextPath.js.map +1 -1
  89. package/esm/redux/_i18n/I18nReducer.js +1 -4
  90. package/esm/redux/_i18n/I18nReducer.js.flow +1 -4
  91. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  92. package/esm/redux/_modularui/ModularUIActions.js +1 -4
  93. package/esm/redux/_modularui/ModularUIActions.js.flow +1 -5
  94. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  95. package/esm/redux/_modularui/ModularUIConnector.js +3 -4
  96. package/esm/redux/_modularui/ModularUIConnector.js.flow +2 -1
  97. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  98. package/esm/redux/_modularui/ModularUIReducer.js +6 -3
  99. package/esm/redux/_modularui/ModularUIReducer.js.flow +2 -2
  100. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  101. package/esm/redux/actions/Authorization.js +4 -2
  102. package/esm/redux/actions/Authorization.js.flow +3 -2
  103. package/esm/redux/actions/Authorization.js.map +1 -1
  104. package/esm/redux/actions/Preferences.js +4 -4
  105. package/esm/redux/actions/Preferences.js.flow +6 -10
  106. package/esm/redux/actions/Preferences.js.map +1 -1
  107. package/esm/redux/reducers/ModelCatalogReducer.js +7 -9
  108. package/esm/redux/reducers/ModelCatalogReducer.js.flow +8 -9
  109. package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
  110. package/esm/redux/store/configureStore.js +6 -1
  111. package/esm/redux/store/configureStore.js.flow +4 -1
  112. package/esm/redux/store/configureStore.js.map +1 -1
  113. package/esm/redux/types.js.flow +10 -1
  114. package/esm/redux/types.js.map +1 -1
  115. package/esm/utils/browser/Cache.js +3 -1
  116. package/esm/utils/browser/Cache.js.flow +2 -1
  117. package/esm/utils/browser/Cache.js.map +1 -1
  118. package/esm/utils/browser/__tests__/Cookies.spec.js.flow +2 -1
  119. package/esm/utils/datetime/DateTimeUtil.js +6 -5
  120. package/esm/utils/datetime/DateTimeUtil.js.flow +5 -11
  121. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  122. package/esm/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +0 -6
  123. package/esm/utils/fetch/universalFetch.js +7 -8
  124. package/esm/utils/fetch/universalFetch.js.flow +13 -14
  125. package/esm/utils/fetch/universalFetch.js.map +1 -1
  126. package/esm/utils/fetch/xhr.js +2 -5
  127. package/esm/utils/fetch/xhr.js.flow +2 -6
  128. package/esm/utils/fetch/xhr.js.map +1 -1
  129. package/esm/utils/helpers/createHref.js +4 -1
  130. package/esm/utils/helpers/createHref.js.flow +2 -1
  131. package/esm/utils/helpers/createHref.js.map +1 -1
  132. package/esm/utils/helpers/createUUID.js +2 -1
  133. package/esm/utils/helpers/createUUID.js.flow +1 -1
  134. package/esm/utils/helpers/createUUID.js.map +1 -1
  135. package/esm/utils/number/parseNumbers.js +6 -3
  136. package/esm/utils/number/parseNumbers.js.flow +4 -3
  137. package/esm/utils/number/parseNumbers.js.map +1 -1
  138. package/lib/builder/mergeLayoutHintConfigurations.js +7 -5
  139. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  140. package/lib/constants/Settings.js +4 -1
  141. package/lib/constants/Settings.js.map +1 -1
  142. package/lib/hooks/useAuthentication.js +7 -3
  143. package/lib/hooks/useAuthentication.js.map +1 -1
  144. package/lib/hooks/useModelCatalog.js +1 -1
  145. package/lib/hooks/useModelCatalog.js.map +1 -1
  146. package/lib/i18n/Locale.js +7 -1
  147. package/lib/i18n/Locale.js.map +1 -1
  148. package/lib/models/actions/ActionCollection.js +1 -1
  149. package/lib/models/actions/ActionCollection.js.map +1 -1
  150. package/lib/models/application/ApplicationModel.js +6 -1
  151. package/lib/models/application/ApplicationModel.js.map +1 -1
  152. package/lib/models/attributes/ChoiceAttributeModel.js +3 -5
  153. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  154. package/lib/models/attributes/CompositeAttributeModel.js +1 -1
  155. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  156. package/lib/models/attributes/NumberAttributeModel.js +3 -1
  157. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  158. package/lib/models/attributes/StringAttributeModel.js +9 -4
  159. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  160. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  161. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  162. package/lib/models/base/BaseModel.js +8 -5
  163. package/lib/models/base/BaseModel.js.map +1 -1
  164. package/lib/models/base/ResourceModel.js +6 -7
  165. package/lib/models/base/ResourceModel.js.map +1 -1
  166. package/lib/models/concepts/ConceptDetailModel.js +16 -16
  167. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  168. package/lib/models/concepts/SourceReferenceCollection.js +1 -1
  169. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  170. package/lib/models/content/ContentLinkModel.js +6 -6
  171. package/lib/models/content/ContentLinkModel.js.map +1 -1
  172. package/lib/models/filters/BaseFilterModel.js +3 -5
  173. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  174. package/lib/models/filters/StringFilterModel.js +4 -2
  175. package/lib/models/filters/StringFilterModel.js.map +1 -1
  176. package/lib/models/form/FormModel.js +1 -1
  177. package/lib/models/form/FormModel.js.map +1 -1
  178. package/lib/models/form/FormObjectModel.js +1 -1
  179. package/lib/models/form/FormObjectModel.js.map +1 -1
  180. package/lib/models/href/Href.js +2 -2
  181. package/lib/models/href/Href.js.map +1 -1
  182. package/lib/models/index.js.map +1 -1
  183. package/lib/models/links/normalizeLinkJSON.js +1 -1
  184. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  185. package/lib/modularui/Authenticate.js +7 -2
  186. package/lib/modularui/Authenticate.js.map +1 -1
  187. package/lib/modularui/ModularUIRequest.js +2 -5
  188. package/lib/modularui/ModularUIRequest.js.map +1 -1
  189. package/lib/modularui/UploadRequest.js +3 -1
  190. package/lib/modularui/UploadRequest.js.map +1 -1
  191. package/lib/react-client/client.js +22 -10
  192. package/lib/react-client/client.js.map +1 -1
  193. package/lib/react-client/contextPath.js +4 -1
  194. package/lib/react-client/contextPath.js.map +1 -1
  195. package/lib/redux/_i18n/I18nReducer.js +1 -4
  196. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  197. package/lib/redux/_modularui/ModularUIActions.js +1 -4
  198. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  199. package/lib/redux/_modularui/ModularUIConnector.js +3 -4
  200. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  201. package/lib/redux/_modularui/ModularUIReducer.js +6 -3
  202. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  203. package/lib/redux/actions/Authorization.js +4 -2
  204. package/lib/redux/actions/Authorization.js.map +1 -1
  205. package/lib/redux/actions/Preferences.js +4 -4
  206. package/lib/redux/actions/Preferences.js.map +1 -1
  207. package/lib/redux/reducers/ModelCatalogReducer.js +7 -9
  208. package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
  209. package/lib/redux/store/configureStore.js +6 -1
  210. package/lib/redux/store/configureStore.js.map +1 -1
  211. package/lib/redux/types.js.map +1 -1
  212. package/lib/utils/browser/Cache.js +3 -1
  213. package/lib/utils/browser/Cache.js.map +1 -1
  214. package/lib/utils/datetime/DateTimeUtil.js +6 -5
  215. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  216. package/lib/utils/fetch/universalFetch.js +7 -8
  217. package/lib/utils/fetch/universalFetch.js.map +1 -1
  218. package/lib/utils/fetch/xhr.js +2 -5
  219. package/lib/utils/fetch/xhr.js.map +1 -1
  220. package/lib/utils/helpers/createHref.js +4 -1
  221. package/lib/utils/helpers/createHref.js.map +1 -1
  222. package/lib/utils/helpers/createUUID.js +3 -1
  223. package/lib/utils/helpers/createUUID.js.map +1 -1
  224. package/lib/utils/number/parseNumbers.js +6 -3
  225. package/lib/utils/number/parseNumbers.js.map +1 -1
  226. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
1
  import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
2
- import { isPlainObject } from "../helpers/objects";
3
2
  import { IS_SYNC } from "../../constants/Constants";
4
3
  import { cacheContributions } from "../../constants";
5
4
  import serverFetch from "./serverFetch";
@@ -38,22 +37,22 @@ const waitForCachedItem = cacheKey => {
38
37
  * @private
39
38
  */
40
39
  const browserFetch = args => {
41
- if (cacheContributions() && args.cache) {
40
+ const shouldCache = cacheContributions() && args.cache;
41
+ if (shouldCache) {
42
42
  const cacheKey = Cache.createResourceKey(args);
43
43
  if (Cache.hasItem(cacheKey)) {
44
44
  const cacheItem = Cache.getItem(cacheKey);
45
+ if (cacheItem === IS_FETCHING) {
46
+ return waitForCachedItem(cacheKey);
47
+ }
45
48
  if (cacheItem != null) {
46
- if (cacheItem === IS_FETCHING) {
47
- return waitForCachedItem(cacheKey);
48
- } else if (isPlainObject(cacheItem)) {
49
- return _Promise.resolve(cacheItem);
50
- }
49
+ return _Promise.resolve(cacheItem);
51
50
  }
52
51
  }
53
52
  Cache.addItem(cacheKey, IS_FETCHING);
54
53
  }
55
54
  return xhr(args).then(response => {
56
- if (cacheContributions() && args.cache) {
55
+ if (shouldCache) {
57
56
  const cacheKey = Cache.createResourceKey(args);
58
57
  Cache.addItem(cacheKey, response);
59
58
  }
@@ -1,6 +1,4 @@
1
1
  // @flow
2
- import { isPlainObject } from "../helpers/objects";
3
-
4
2
  import { IS_SYNC } from "../../constants/Constants";
5
3
  import { cacheContributions } from "../../constants";
6
4
 
@@ -10,7 +8,7 @@ import Cache from "../browser/Cache";
10
8
 
11
9
  import type { RequestOptions } from "./types";
12
10
 
13
- type CachedResponse = any;
11
+ type CachedResponse = Object | Array<any> | string;
14
12
 
15
13
  const IS_FETCHING = "is-fetching";
16
14
 
@@ -18,7 +16,7 @@ const IS_FETCHING = "is-fetching";
18
16
  * Checks each x ms if a cache item is set after fetching the item.
19
17
  * @private
20
18
  */
21
- const waitForCachedItem = (cacheKey: string) => {
19
+ const waitForCachedItem = (cacheKey: string): Promise<CachedResponse> => {
22
20
  let TIMEOUT = 3000;
23
21
  const CHECK_TIMEOUT = 100;
24
22
 
@@ -46,29 +44,30 @@ const waitForCachedItem = (cacheKey: string) => {
46
44
  /**
47
45
  * @private
48
46
  */
49
- const browserFetch = (args: RequestOptions) => {
50
- if (cacheContributions() && args.cache) {
47
+ const browserFetch = (args: RequestOptions): Promise<CachedResponse> => {
48
+ const shouldCache = cacheContributions() && args.cache;
49
+
50
+ if (shouldCache) {
51
51
  const cacheKey = Cache.createResourceKey(args);
52
52
 
53
53
  if (Cache.hasItem(cacheKey)) {
54
54
  const cacheItem = Cache.getItem(cacheKey);
55
55
 
56
+ if (cacheItem === IS_FETCHING) {
57
+ return waitForCachedItem(cacheKey);
58
+ }
59
+
56
60
  if (cacheItem != null) {
57
- if (cacheItem === IS_FETCHING) {
58
- return waitForCachedItem(cacheKey);
59
- } else if (isPlainObject(cacheItem)) {
60
- return Promise.resolve(cacheItem);
61
- }
61
+ return Promise.resolve(cacheItem);
62
62
  }
63
63
  }
64
64
 
65
65
  Cache.addItem(cacheKey, IS_FETCHING);
66
66
  }
67
67
 
68
- return xhr(args).then((response) => {
69
- if (cacheContributions() && args.cache) {
68
+ return xhr(args).then((response: CachedResponse) => {
69
+ if (shouldCache) {
70
70
  const cacheKey = Cache.createResourceKey(args);
71
-
72
71
  Cache.addItem(cacheKey, response);
73
72
  }
74
73
 
@@ -1 +1 @@
1
- {"version":3,"file":"universalFetch.js","names":["isPlainObject","IS_SYNC","cacheContributions","serverFetch","xhr","Cache","IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","_Promise","resolve","reject","check","getItem","cachedItem","Error","setTimeout","browserFetch","args","cache","createResourceKey","hasItem","cacheItem","addItem","then","response","universalFetch","locale","headers","includeContext","url"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../helpers/objects\";\n\nimport { IS_SYNC } from \"../../constants/Constants\";\nimport { cacheContributions } from \"../../constants\";\n\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = any;\n\nconst IS_FETCHING = \"is-fetching\";\n\n/**\n * Checks each x ms if a cache item is set after fetching the item.\n * @private\n */\nconst waitForCachedItem = (cacheKey: string) => {\n let TIMEOUT = 3000;\n const CHECK_TIMEOUT = 100;\n\n return new Promise<CachedResponse>((resolve, reject) => {\n const check = () => {\n if (Cache.getItem(cacheKey) !== IS_FETCHING) {\n const cachedItem = Cache.getItem(cacheKey);\n if (cachedItem != null) {\n resolve(cachedItem);\n } else {\n reject(new Error(\"Empty cached item\"));\n }\n } else if (TIMEOUT <= 0) {\n reject(new Error(\"Empty cached item\"));\n } else {\n TIMEOUT = TIMEOUT - CHECK_TIMEOUT;\n setTimeout(check, CHECK_TIMEOUT);\n }\n };\n\n setTimeout(check, CHECK_TIMEOUT);\n });\n};\n\n/**\n * @private\n */\nconst browserFetch = (args: RequestOptions) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n if (Cache.hasItem(cacheKey)) {\n const cacheItem = Cache.getItem(cacheKey);\n\n if (cacheItem != null) {\n if (cacheItem === IS_FETCHING) {\n return waitForCachedItem(cacheKey);\n } else if (isPlainObject(cacheItem)) {\n return Promise.resolve(cacheItem);\n }\n }\n }\n\n Cache.addItem(cacheKey, IS_FETCHING);\n }\n\n return xhr(args).then((response) => {\n if (cacheContributions() && args.cache) {\n const cacheKey = Cache.createResourceKey(args);\n\n Cache.addItem(cacheKey, response);\n }\n\n return response;\n });\n};\n\n/**\n * Request data from server, uses server datafetcher or xhr in browser.\n */\nconst universalFetch = (\n args: RequestOptions,\n): Promise<CachedResponse> | Promise<any> => {\n // Set locale as Accept-Language header\n if (args.locale) {\n // $FlowFixMe\n args.headers = {\n ...args.headers,\n \"Accept-Language\": args.locale,\n };\n }\n\n if (args.includeContext) {\n args.url = `${args.url}?includeContext=true`;\n }\n\n // server side no access to the browser cache apis, no cache available\n if (IS_SYNC) {\n return serverFetch(args);\n }\n\n return browserFetch(args);\n};\n\nexport default universalFetch;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"universalFetch.js","names":["IS_SYNC","cacheContributions","serverFetch","xhr","Cache","IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","_Promise","resolve","reject","check","getItem","cachedItem","Error","setTimeout","browserFetch","args","shouldCache","cache","createResourceKey","hasItem","cacheItem","addItem","then","response","universalFetch","locale","headers","includeContext","url"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { IS_SYNC } from \"../../constants/Constants\";\nimport { cacheContributions } from \"../../constants\";\n\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = Object | Array<any> | string;\n\nconst IS_FETCHING = \"is-fetching\";\n\n/**\n * Checks each x ms if a cache item is set after fetching the item.\n * @private\n */\nconst waitForCachedItem = (cacheKey: string): Promise<CachedResponse> => {\n let TIMEOUT = 3000;\n const CHECK_TIMEOUT = 100;\n\n return new Promise<CachedResponse>((resolve, reject) => {\n const check = () => {\n if (Cache.getItem(cacheKey) !== IS_FETCHING) {\n const cachedItem = Cache.getItem(cacheKey);\n if (cachedItem != null) {\n resolve(cachedItem);\n } else {\n reject(new Error(\"Empty cached item\"));\n }\n } else if (TIMEOUT <= 0) {\n reject(new Error(\"Empty cached item\"));\n } else {\n TIMEOUT = TIMEOUT - CHECK_TIMEOUT;\n setTimeout(check, CHECK_TIMEOUT);\n }\n };\n\n setTimeout(check, CHECK_TIMEOUT);\n });\n};\n\n/**\n * @private\n */\nconst browserFetch = (args: RequestOptions): Promise<CachedResponse> => {\n const shouldCache = cacheContributions() && args.cache;\n\n if (shouldCache) {\n const cacheKey = Cache.createResourceKey(args);\n\n if (Cache.hasItem(cacheKey)) {\n const cacheItem = Cache.getItem(cacheKey);\n\n if (cacheItem === IS_FETCHING) {\n return waitForCachedItem(cacheKey);\n }\n\n if (cacheItem != null) {\n return Promise.resolve(cacheItem);\n }\n }\n\n Cache.addItem(cacheKey, IS_FETCHING);\n }\n\n return xhr(args).then((response: CachedResponse) => {\n if (shouldCache) {\n const cacheKey = Cache.createResourceKey(args);\n Cache.addItem(cacheKey, response);\n }\n\n return response;\n });\n};\n\n/**\n * Request data from server, uses server datafetcher or xhr in browser.\n */\nconst universalFetch = (\n args: RequestOptions,\n): Promise<CachedResponse> | Promise<any> => {\n // Set locale as Accept-Language header\n if (args.locale) {\n // $FlowFixMe\n args.headers = {\n ...args.headers,\n \"Accept-Language\": args.locale,\n };\n }\n\n if (args.includeContext) {\n args.url = `${args.url}?includeContext=true`;\n }\n\n // server side no access to the browser cache apis, no cache available\n if (IS_SYNC) {\n return serverFetch(args);\n }\n\n return browserFetch(args);\n};\n\nexport default universalFetch;\n"],"mappings":"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","ignoreList":[]}
@@ -133,10 +133,7 @@ class XHR {
133
133
  /**
134
134
  */
135
135
  getBaseLocale() {
136
- if (typeof navigator !== "undefined" && navigator.language) {
137
- return navigator.language.split("-")[0] || "en";
138
- }
139
- return "en";
136
+ return navigator?.language?.split("-")[0] || "en";
140
137
  }
141
138
 
142
139
  /**
@@ -332,7 +329,7 @@ const validateInputArguments = args => {
332
329
  throw new IllegalArgumentException("Missing request options, expecting an object as argument for xhr");
333
330
  }
334
331
  if (!isPlainObject(args)) {
335
- throw new IllegalArgumentException(`Expecting an object as argument for xhr, but received: ${args.toString()}`);
332
+ throw new IllegalArgumentException(`Expecting an object as argument for xhr, but received: ${typeof args}`);
336
333
  }
337
334
  if (!has(args, "url")) {
338
335
  throw new IllegalArgumentException(`No url property found in arguments of xhr, received: ${_JSON$stringify(args)}`);
@@ -148,11 +148,7 @@ class XHR {
148
148
  /**
149
149
  */
150
150
  getBaseLocale(): string {
151
- if (typeof navigator !== "undefined" && navigator.language) {
152
- return navigator.language.split("-")[0] || "en";
153
- }
154
-
155
- return "en";
151
+ return navigator?.language?.split("-")[0] || "en";
156
152
  }
157
153
 
158
154
  /**
@@ -383,7 +379,7 @@ const validateInputArguments = (args: RequestOptions) => {
383
379
 
384
380
  if (!isPlainObject(args)) {
385
381
  throw new IllegalArgumentException(
386
- `Expecting an object as argument for xhr, but received: ${args.toString()}`,
382
+ `Expecting an object as argument for xhr, but received: ${typeof args}`,
387
383
  );
388
384
  }
389
385
 
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","toString","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n return navigator?.language?.split(\"-\")[0] || \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${typeof args}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import _URLSearchParams from "@babel/runtime-corejs3/core-js-stable/url-search-p
3
3
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
4
4
  import _keysInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/keys";
5
5
  import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
6
+ import _replaceAllInstanceProperty from "@babel/runtime-corejs3/core-js/instance/replace-all";
6
7
  import Href from "../../models/href/Href";
7
8
  /**
8
9
  */
@@ -71,7 +72,9 @@ export const createHref = (context, dynamicPart, entryDate, location, allowedPar
71
72
  if (!_startsWithInstanceProperty(href).call(href, `/${context}/`)) {
72
73
  href = `/${context}/${href}`;
73
74
  }
74
- href = href.replace(/\/\//g, "/");
75
+
76
+ // $FlowIssue
77
+ href = _replaceAllInstanceProperty(href).call(href, "//", "/");
75
78
  if (location?.search && !_includesInstanceProperty(href).call(href, "?")) {
76
79
  var _context;
77
80
  const search = _startsWithInstanceProperty(_context = location.search).call(_context, "?") ? location.search.substring(1) : location.search;
@@ -87,7 +87,8 @@ export const createHref = (
87
87
  href = `/${context}/${href}`;
88
88
  }
89
89
 
90
- href = href.replace(/\/\//g, "/");
90
+ // $FlowIssue
91
+ href = href.replaceAll("//", "/");
91
92
 
92
93
  if (location?.search && !href.includes("?")) {
93
94
  const search = location.search.startsWith("?")
@@ -1 +1 @@
1
- {"version":3,"file":"createHref.js","names":["Href","parseUrl","href","path","querystring","hash","_includesInstanceProperty","call","hashSplit","split","qsSplit","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_URLSearchParams","params","_Array$from","_keysInstanceProperty","param","delete","toString","resourcetype","origin","contextPath","createHref","context","dynamicPart","entryDate","location","_startsWithInstanceProperty","replace","search","_context","substring","finalHref","setParameter","removeParameter"],"sources":["../../../src/utils/helpers/createHref.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\nimport type { Location } from \"react-router\";\n\n/**\n */\nexport const parseUrl = (\n href: string | Href,\n): { path: string, querystring: null | string, hash: null | string } => {\n if (href instanceof Href) {\n return {\n path: href.path,\n querystring: href.querystring,\n hash: href.hash,\n };\n }\n\n let path = href;\n let hash = null;\n let querystring = null;\n if (href.includes(\"#\")) {\n const hashSplit = href.split(\"#\");\n path = hashSplit[0];\n hash = hashSplit[1];\n }\n if (href.includes(\"?\")) {\n const qsSplit = path.split(\"?\");\n path = qsSplit[0];\n querystring = qsSplit[1];\n }\n return {\n path,\n querystring,\n hash,\n };\n};\n\n/**\n */\nexport const filterParameters = (\n href: string | Href,\n allowedParameters?: Array<string>,\n): Href => {\n if (!Array.isArray(allowedParameters)) {\n return new Href(href);\n }\n\n const url = parseUrl(href);\n let filteredUrl = url.path;\n if (url.querystring) {\n const searchParams = new URLSearchParams(url.querystring);\n const params = Array.from(searchParams.keys());\n for (const param of params) {\n if (!allowedParameters.includes(param)) {\n searchParams.delete(param);\n }\n }\n filteredUrl = filteredUrl + \"?\" + searchParams.toString();\n }\n if (url.hash) {\n filteredUrl = filteredUrl + \"#\" + url.hash;\n }\n\n if (href instanceof Href) {\n return new Href(filteredUrl, href.resourcetype, {\n origin: href.origin,\n contextPath: href.contextPath,\n });\n }\n\n return new Href(filteredUrl);\n};\n\n/**\n */\nexport const createHref = (\n context: string,\n dynamicPart: string | Href,\n entryDate?: ?ISO_DATE,\n location?: ?Location,\n allowedParameters?: Array<string>,\n): Href => {\n let href = dynamicPart.toString();\n\n if (!href.startsWith(`/${context}/`)) {\n href = `/${context}/${href}`;\n }\n\n href = href.replace(/\\/\\//g, \"/\");\n\n if (location?.search && !href.includes(\"?\")) {\n const search = location.search.startsWith(\"?\")\n ? location.search.substring(1)\n : location.search;\n href = `${href}?${search}`;\n }\n\n const finalHref =\n dynamicPart instanceof Href\n ? filterParameters(\n new Href(href, dynamicPart.resourcetype, {\n origin: dynamicPart.origin,\n contextPath: dynamicPart.contextPath,\n }),\n allowedParameters,\n )\n : filterParameters(href, allowedParameters);\n\n if (entryDate) {\n finalHref.setParameter(\"entryDate\", entryDate);\n } else {\n finalHref.removeParameter(\"entryDate\");\n }\n\n return finalHref;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createHref.js","names":["Href","parseUrl","href","path","querystring","hash","_includesInstanceProperty","call","hashSplit","split","qsSplit","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_URLSearchParams","params","_Array$from","_keysInstanceProperty","param","delete","toString","resourcetype","origin","contextPath","createHref","context","dynamicPart","entryDate","location","_startsWithInstanceProperty","_replaceAllInstanceProperty","search","_context","substring","finalHref","setParameter","removeParameter"],"sources":["../../../src/utils/helpers/createHref.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\nimport type { Location } from \"react-router\";\n\n/**\n */\nexport const parseUrl = (\n href: string | Href,\n): { path: string, querystring: null | string, hash: null | string } => {\n if (href instanceof Href) {\n return {\n path: href.path,\n querystring: href.querystring,\n hash: href.hash,\n };\n }\n\n let path = href;\n let hash = null;\n let querystring = null;\n if (href.includes(\"#\")) {\n const hashSplit = href.split(\"#\");\n path = hashSplit[0];\n hash = hashSplit[1];\n }\n if (href.includes(\"?\")) {\n const qsSplit = path.split(\"?\");\n path = qsSplit[0];\n querystring = qsSplit[1];\n }\n return {\n path,\n querystring,\n hash,\n };\n};\n\n/**\n */\nexport const filterParameters = (\n href: string | Href,\n allowedParameters?: Array<string>,\n): Href => {\n if (!Array.isArray(allowedParameters)) {\n return new Href(href);\n }\n\n const url = parseUrl(href);\n let filteredUrl = url.path;\n if (url.querystring) {\n const searchParams = new URLSearchParams(url.querystring);\n const params = Array.from(searchParams.keys());\n for (const param of params) {\n if (!allowedParameters.includes(param)) {\n searchParams.delete(param);\n }\n }\n filteredUrl = filteredUrl + \"?\" + searchParams.toString();\n }\n if (url.hash) {\n filteredUrl = filteredUrl + \"#\" + url.hash;\n }\n\n if (href instanceof Href) {\n return new Href(filteredUrl, href.resourcetype, {\n origin: href.origin,\n contextPath: href.contextPath,\n });\n }\n\n return new Href(filteredUrl);\n};\n\n/**\n */\nexport const createHref = (\n context: string,\n dynamicPart: string | Href,\n entryDate?: ?ISO_DATE,\n location?: ?Location,\n allowedParameters?: Array<string>,\n): Href => {\n let href = dynamicPart.toString();\n\n if (!href.startsWith(`/${context}/`)) {\n href = `/${context}/${href}`;\n }\n\n // $FlowIssue\n href = href.replaceAll(\"//\", \"/\");\n\n if (location?.search && !href.includes(\"?\")) {\n const search = location.search.startsWith(\"?\")\n ? location.search.substring(1)\n : location.search;\n href = `${href}?${search}`;\n }\n\n const finalHref =\n dynamicPart instanceof Href\n ? filterParameters(\n new Href(href, dynamicPart.resourcetype, {\n origin: dynamicPart.origin,\n contextPath: dynamicPart.contextPath,\n }),\n allowedParameters,\n )\n : filterParameters(href, allowedParameters);\n\n if (entryDate) {\n finalHref.setParameter(\"entryDate\", entryDate);\n } else {\n finalHref.removeParameter(\"entryDate\");\n }\n\n return finalHref;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
+ import _Math$trunc from "@babel/runtime-corejs3/core-js-stable/math/trunc";
1
2
  /**
2
3
  */
3
4
  const createUUID = () => {
4
5
  let d = new Date().getTime();
5
6
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => {
6
- const r = (d + Math.random() * 16) % 16 | 0;
7
+ const r = _Math$trunc((d + Math.random() * 16) % 16);
7
8
  d = Math.floor(d / 16);
8
9
  return (c === "x" ? r : r & 0x3 | 0x8).toString(16);
9
10
  });
@@ -4,7 +4,7 @@
4
4
  const createUUID = (): string => {
5
5
  let d = new Date().getTime();
6
6
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
7
- const r = ((d + Math.random() * 16) % 16) | 0;
7
+ const r = Math.trunc((d + Math.random() * 16) % 16);
8
8
  d = Math.floor(d / 16);
9
9
  return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":"AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAI,CAACL,CAAC,GAAGM,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAI,CAAC;IAC7CP,CAAC,GAAGM,IAAI,CAACE,KAAK,CAACR,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACI,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG,EAAEI,QAAQ,CAAC,EAAE,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeV,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","_Math$trunc","Math","random","floor","toString"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.trunc((d + Math.random() * 16) % 16);\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":";AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAGC,WAAA,CAAW,CAACN,CAAC,GAAGO,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACnDR,CAAC,GAAGO,IAAI,CAACE,KAAK,CAACT,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACI,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG,EAAEK,QAAQ,CAAC,EAAE,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeX,UAAU","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import _String$raw from "@babel/runtime-corejs3/core-js-stable/string/raw";
1
2
  import big from "big.js";
2
3
 
3
4
  /**
@@ -5,12 +6,14 @@ import big from "big.js";
5
6
  */
6
7
  const removeGroupingSeparator = (input, groupingSeparator) => {
7
8
  if (typeof input === "number") {
8
- return input;
9
+ return input.toString();
9
10
  }
10
11
  if (groupingSeparator == null) {
11
12
  return input;
12
13
  }
13
- const escapedGroupingSeparator = groupingSeparator.replace(/[$()*+.?[\\\]^{|}]/g, "\\$&");
14
+ const escapedGroupingSeparator = groupingSeparator.replace(/[$()*+.?[\\\]^{|}]/g,
15
+ // $FlowIssue
16
+ _String$raw`\$&`);
14
17
  return input.replace(new RegExp(escapedGroupingSeparator, "g"), "");
15
18
  };
16
19
 
@@ -19,7 +22,7 @@ const removeGroupingSeparator = (input, groupingSeparator) => {
19
22
  */
20
23
  const updateDecimalSeparator = (input, decimalSeparator) => {
21
24
  if (typeof input === "number") {
22
- return input;
25
+ return input.toString();
23
26
  }
24
27
  if (decimalSeparator == null || decimalSeparator === "") {
25
28
  return input;
@@ -9,7 +9,7 @@ const removeGroupingSeparator = (
9
9
  groupingSeparator?: ?string,
10
10
  ) => {
11
11
  if (typeof input === "number") {
12
- return input;
12
+ return input.toString();
13
13
  }
14
14
 
15
15
  if (groupingSeparator == null) {
@@ -18,7 +18,8 @@ const removeGroupingSeparator = (
18
18
 
19
19
  const escapedGroupingSeparator = groupingSeparator.replace(
20
20
  /[$()*+.?[\\\]^{|}]/g,
21
- "\\$&",
21
+ // $FlowIssue
22
+ String.raw`\$&`,
22
23
  );
23
24
 
24
25
  return input.replace(new RegExp(escapedGroupingSeparator, "g"), "");
@@ -32,7 +33,7 @@ const updateDecimalSeparator = (
32
33
  decimalSeparator?: ?string,
33
34
  ) => {
34
35
  if (typeof input === "number") {
35
- return input;
36
+ return input.toString();
36
37
  }
37
38
 
38
39
  if (decimalSeparator == null || decimalSeparator === "") {
@@ -1 +1 @@
1
- {"version":3,"file":"parseNumbers.js","names":["big","removeGroupingSeparator","input","groupingSeparator","escapedGroupingSeparator","replace","RegExp","updateDecimalSeparator","decimalSeparator","parseToNumber","NaN","inputNoGrouping","inputCorrectDecimalSeparator","Number","parseNumberToString","toFixed","error"],"sources":["../../../src/utils/number/parseNumbers.js"],"sourcesContent":["// @flow\nimport big from \"big.js\";\n\n/**\n * @private\n */\nconst removeGroupingSeparator = (\n input: string | number,\n groupingSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input;\n }\n\n if (groupingSeparator == null) {\n return input;\n }\n\n const escapedGroupingSeparator = groupingSeparator.replace(\n /[$()*+.?[\\\\\\]^{|}]/g,\n \"\\\\$&\",\n );\n\n return input.replace(new RegExp(escapedGroupingSeparator, \"g\"), \"\");\n};\n\n/**\n * @private\n */\nconst updateDecimalSeparator = (\n input: string | number,\n decimalSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input;\n }\n\n if (decimalSeparator == null || decimalSeparator === \"\") {\n return input;\n }\n\n return input.replace(decimalSeparator, \".\");\n};\n\n/**\n * Parses input into a number, removes the grouping separator from the input and\n * replaces the decimal separator with a dot to make it a JavaScript parseable number\n */\nconst parseToNumber = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): number => {\n if (input == null || input === \"\") {\n return NaN;\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n return Number(inputCorrectDecimalSeparator);\n};\n\n/**\n * parses Numbers To String\n */\nconst parseNumberToString = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): string => {\n if (input == null || input === \"\") {\n return \"NaN\";\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n try {\n return big(inputCorrectDecimalSeparator).toFixed();\n } catch (error) {\n return \"NaN\";\n }\n};\n\nexport { parseToNumber, parseNumberToString };\n"],"mappings":"AACA,OAAOA,GAAG,MAAM,QAAQ;;AAExB;AACA;AACA;AACA,MAAMC,uBAAuB,GAAGA,CAC9BC,KAAsB,EACtBC,iBAA2B,KACxB;EACH,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,IAAIC,iBAAiB,IAAI,IAAI,EAAE;IAC7B,OAAOD,KAAK;EACd;EAEA,MAAME,wBAAwB,GAAGD,iBAAiB,CAACE,OAAO,CACxD,qBAAqB,EACrB,MACF,CAAC;EAED,OAAOH,KAAK,CAACG,OAAO,CAAC,IAAIC,MAAM,CAACF,wBAAwB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACrE,CAAC;;AAED;AACA;AACA;AACA,MAAMG,sBAAsB,GAAGA,CAC7BL,KAAsB,EACtBM,gBAA0B,KACvB;EACH,IAAI,OAAON,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,IAAIM,gBAAgB,IAAI,IAAI,IAAIA,gBAAgB,KAAK,EAAE,EAAE;IACvD,OAAON,KAAK;EACd;EAEA,OAAOA,KAAK,CAACG,OAAO,CAACG,gBAAgB,EAAE,GAAG,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CACpBP,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCK,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIN,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOQ,GAAG;EACZ;EAEA,MAAMC,eAAe,GAAGV,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMS,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,OAAOK,MAAM,CAACD,4BAA4B,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA,MAAME,mBAAmB,GAAGA,CAC1BZ,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCK,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIN,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAO,KAAK;EACd;EAEA,MAAMS,eAAe,GAAGV,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMS,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,IAAI;IACF,OAAOR,GAAG,CAACY,4BAA4B,CAAC,CAACG,OAAO,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF,CAAC;AAED,SAASP,aAAa,EAAEK,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"parseNumbers.js","names":["big","removeGroupingSeparator","input","groupingSeparator","toString","escapedGroupingSeparator","replace","_String$raw","RegExp","updateDecimalSeparator","decimalSeparator","parseToNumber","NaN","inputNoGrouping","inputCorrectDecimalSeparator","Number","parseNumberToString","toFixed","error"],"sources":["../../../src/utils/number/parseNumbers.js"],"sourcesContent":["// @flow\nimport big from \"big.js\";\n\n/**\n * @private\n */\nconst removeGroupingSeparator = (\n input: string | number,\n groupingSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input.toString();\n }\n\n if (groupingSeparator == null) {\n return input;\n }\n\n const escapedGroupingSeparator = groupingSeparator.replace(\n /[$()*+.?[\\\\\\]^{|}]/g,\n // $FlowIssue\n String.raw`\\$&`,\n );\n\n return input.replace(new RegExp(escapedGroupingSeparator, \"g\"), \"\");\n};\n\n/**\n * @private\n */\nconst updateDecimalSeparator = (\n input: string | number,\n decimalSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input.toString();\n }\n\n if (decimalSeparator == null || decimalSeparator === \"\") {\n return input;\n }\n\n return input.replace(decimalSeparator, \".\");\n};\n\n/**\n * Parses input into a number, removes the grouping separator from the input and\n * replaces the decimal separator with a dot to make it a JavaScript parseable number\n */\nconst parseToNumber = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): number => {\n if (input == null || input === \"\") {\n return NaN;\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n return Number(inputCorrectDecimalSeparator);\n};\n\n/**\n * parses Numbers To String\n */\nconst parseNumberToString = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): string => {\n if (input == null || input === \"\") {\n return \"NaN\";\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n try {\n return big(inputCorrectDecimalSeparator).toFixed();\n } catch (error) {\n return \"NaN\";\n }\n};\n\nexport { parseToNumber, parseNumberToString };\n"],"mappings":";AACA,OAAOA,GAAG,MAAM,QAAQ;;AAExB;AACA;AACA;AACA,MAAMC,uBAAuB,GAAGA,CAC9BC,KAAsB,EACtBC,iBAA2B,KACxB;EACH,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;EACzB;EAEA,IAAID,iBAAiB,IAAI,IAAI,EAAE;IAC7B,OAAOD,KAAK;EACd;EAEA,MAAMG,wBAAwB,GAAGF,iBAAiB,CAACG,OAAO,CACxD,qBAAqB;EACrB;EACAC,WAAU,KACZ,CAAC;EAED,OAAOL,KAAK,CAACI,OAAO,CAAC,IAAIE,MAAM,CAACH,wBAAwB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACrE,CAAC;;AAED;AACA;AACA;AACA,MAAMI,sBAAsB,GAAGA,CAC7BP,KAAsB,EACtBQ,gBAA0B,KACvB;EACH,IAAI,OAAOR,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;EACzB;EAEA,IAAIM,gBAAgB,IAAI,IAAI,IAAIA,gBAAgB,KAAK,EAAE,EAAE;IACvD,OAAOR,KAAK;EACd;EAEA,OAAOA,KAAK,CAACI,OAAO,CAACI,gBAAgB,EAAE,GAAG,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CACpBT,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCO,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIR,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOU,GAAG;EACZ;EAEA,MAAMC,eAAe,GAAGZ,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMW,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,OAAOK,MAAM,CAACD,4BAA4B,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA,MAAME,mBAAmB,GAAGA,CAC1Bd,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCO,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIR,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAO,KAAK;EACd;EAEA,MAAMW,eAAe,GAAGZ,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMW,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,IAAI;IACF,OAAOV,GAAG,CAACc,4BAA4B,CAAC,CAACG,OAAO,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF,CAAC;AAED,SAASP,aAAa,EAAEK,mBAAmB","ignoreList":[]}
@@ -1,17 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _replaceAll = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/replace-all"));
4
5
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
5
6
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
6
7
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
7
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
8
- const path = require("path");
8
+ // $FlowIssue
9
+ const path = require("node:path");
9
10
  const {
10
11
  readdirSync,
11
12
  statSync,
12
13
  readFileSync,
13
14
  writeFileSync
14
- } = require("fs");
15
+ // $FlowIssue
16
+ } = require("node:fs");
15
17
  const mergeWith = require("lodash/mergeWith");
16
18
  const {
17
19
  LayoutHintConfiguration
@@ -40,7 +42,8 @@ const findFiles = dir => {
40
42
  * This file is consumed by Be Informed studio to give layout hint information
41
43
  */
42
44
  exports.mergeLayoutHintConfigurations = async (srcFolder, outputFolder) => {
43
- const escapedSrcFolder = srcFolder.replace(/\\/g, "/");
45
+ // $FlowIssue
46
+ const escapedSrcFolder = (0, _replaceAll.default)(srcFolder).call(srcFolder, "\\", "/");
44
47
  const files = findFiles(escapedSrcFolder);
45
48
  const jsons = (0, _map.default)(files).call(files, file => {
46
49
  const content = readFileSync(file, "utf-8");
@@ -55,6 +58,5 @@ exports.mergeLayoutHintConfigurations = async (srcFolder, outputFolder) => {
55
58
  };
56
59
  const newConfig = mergeWith(LayoutHintConfiguration, ...jsons, customizer);
57
60
  writeFileSync(path.join(outputFolder, "LayoutHintConfig.json"), (0, _stringify.default)(newConfig));
58
- return _promise.default.resolve();
59
61
  };
60
62
  //# sourceMappingURL=mergeLayoutHintConfigurations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeLayoutHintConfigurations.js","names":["path","require","readdirSync","statSync","readFileSync","writeFileSync","mergeWith","LayoutHintConfiguration","findFiles","dir","matchedFiles","files","file","absolute","join","isDirectory","foundFiles","push","filename","basename","exports","mergeLayoutHintConfigurations","srcFolder","outputFolder","escapedSrcFolder","replace","jsons","_map","default","call","content","JSON","parse","customizer","objValue","srcValue","Array","isArray","_set","newConfig","_stringify","_promise","resolve"],"sources":["../../src/builder/mergeLayoutHintConfigurations.js"],"sourcesContent":["// @flow\nconst path = require(\"path\");\nconst { readdirSync, statSync, readFileSync, writeFileSync } = require(\"fs\");\n\nconst mergeWith = require(\"lodash/mergeWith\");\nconst { LayoutHintConfiguration } = require(\"../constants/LayoutHintConfig\");\n\nconst findFiles = (dir: string): Array<string> => {\n const matchedFiles = [];\n\n const files = readdirSync(dir);\n\n for (const file of files) {\n const absolute = path.join(dir, file);\n if (statSync(absolute).isDirectory()) {\n const foundFiles = findFiles(absolute);\n matchedFiles.push(...foundFiles);\n } else {\n const filename = path.basename(file);\n if (filename === \"LayoutHintConfig.json\") {\n matchedFiles.push(absolute);\n }\n }\n }\n\n return matchedFiles;\n};\n\n/**\n * Merge all LayoutHintConfig.json files from this library and in the srcFolder\n * together into one config file, and copies it to the outputFolder.<br/>\n * This file is consumed by Be Informed studio to give layout hint information\n */\nexports.mergeLayoutHintConfigurations = async (\n srcFolder: string,\n outputFolder: string,\n): Promise<void> => {\n const escapedSrcFolder = srcFolder.replace(/\\\\/g, \"/\");\n\n const files = findFiles(escapedSrcFolder);\n\n const jsons = files.map((file) => {\n const content = readFileSync(file, \"utf-8\");\n return JSON.parse(content);\n });\n\n // Function to merge arrays during merging\n const customizer = (objValue: Object, srcValue: Object): Object => {\n if (Array.isArray(objValue)) {\n return [...new Set([...objValue, ...srcValue])];\n }\n };\n\n const newConfig = mergeWith(LayoutHintConfiguration, ...jsons, customizer);\n\n writeFileSync(\n path.join(outputFolder, \"LayoutHintConfig.json\"),\n JSON.stringify(newConfig),\n );\n\n return Promise.resolve();\n};\n"],"mappings":";;;;;;;AACA,MAAMA,IAAI,GAAGC,OAAO,CAAC,MAAM,CAAC;AAC5B,MAAM;EAAEC,WAAW;EAAEC,QAAQ;EAAEC,YAAY;EAAEC;AAAc,CAAC,GAAGJ,OAAO,CAAC,IAAI,CAAC;AAE5E,MAAMK,SAAS,GAAGL,OAAO,CAAC,kBAAkB,CAAC;AAC7C,MAAM;EAAEM;AAAwB,CAAC,GAAGN,OAAO,CAAC,+BAA+B,CAAC;AAE5E,MAAMO,SAAS,GAAIC,GAAW,IAAoB;EAChD,MAAMC,YAAY,GAAG,EAAE;EAEvB,MAAMC,KAAK,GAAGT,WAAW,CAACO,GAAG,CAAC;EAE9B,KAAK,MAAMG,IAAI,IAAID,KAAK,EAAE;IACxB,MAAME,QAAQ,GAAGb,IAAI,CAACc,IAAI,CAACL,GAAG,EAAEG,IAAI,CAAC;IACrC,IAAIT,QAAQ,CAACU,QAAQ,CAAC,CAACE,WAAW,CAAC,CAAC,EAAE;MACpC,MAAMC,UAAU,GAAGR,SAAS,CAACK,QAAQ,CAAC;MACtCH,YAAY,CAACO,IAAI,CAAC,GAAGD,UAAU,CAAC;IAClC,CAAC,MAAM;MACL,MAAME,QAAQ,GAAGlB,IAAI,CAACmB,QAAQ,CAACP,IAAI,CAAC;MACpC,IAAIM,QAAQ,KAAK,uBAAuB,EAAE;QACxCR,YAAY,CAACO,IAAI,CAACJ,QAAQ,CAAC;MAC7B;IACF;EACF;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAU,OAAO,CAACC,6BAA6B,GAAG,OACtCC,SAAiB,EACjBC,YAAoB,KACF;EAClB,MAAMC,gBAAgB,GAAGF,SAAS,CAACG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EAEtD,MAAMd,KAAK,GAAGH,SAAS,CAACgB,gBAAgB,CAAC;EAEzC,MAAME,KAAK,GAAG,IAAAC,IAAA,CAAAC,OAAA,EAAAjB,KAAK,EAAAkB,IAAA,CAALlB,KAAK,EAAMC,IAAI,IAAK;IAChC,MAAMkB,OAAO,GAAG1B,YAAY,CAACQ,IAAI,EAAE,OAAO,CAAC;IAC3C,OAAOmB,IAAI,CAACC,KAAK,CAACF,OAAO,CAAC;EAC5B,CAAC,CAAC;;EAEF;EACA,MAAMG,UAAU,GAAGA,CAACC,QAAgB,EAAEC,QAAgB,KAAa;IACjE,IAAIC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;MAC3B,OAAO,CAAC,GAAG,IAAAI,IAAA,CAAAV,OAAA,CAAQ,CAAC,GAAGM,QAAQ,EAAE,GAAGC,QAAQ,CAAC,CAAC,CAAC;IACjD;EACF,CAAC;EAED,MAAMI,SAAS,GAAGjC,SAAS,CAACC,uBAAuB,EAAE,GAAGmB,KAAK,EAAEO,UAAU,CAAC;EAE1E5B,aAAa,CACXL,IAAI,CAACc,IAAI,CAACS,YAAY,EAAE,uBAAuB,CAAC,EAChD,IAAAiB,UAAA,CAAAZ,OAAA,EAAeW,SAAS,CAC1B,CAAC;EAED,OAAOE,QAAA,CAAAb,OAAA,CAAQc,OAAO,CAAC,CAAC;AAC1B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"mergeLayoutHintConfigurations.js","names":["path","require","readdirSync","statSync","readFileSync","writeFileSync","mergeWith","LayoutHintConfiguration","findFiles","dir","matchedFiles","files","file","absolute","join","isDirectory","foundFiles","push","filename","basename","exports","mergeLayoutHintConfigurations","srcFolder","outputFolder","escapedSrcFolder","_replaceAll","default","call","jsons","_map","content","JSON","parse","customizer","objValue","srcValue","Array","isArray","_set","newConfig","_stringify"],"sources":["../../src/builder/mergeLayoutHintConfigurations.js"],"sourcesContent":["// @flow\n\n// $FlowIssue\nconst path = require(\"node:path\");\nconst {\n readdirSync,\n statSync,\n readFileSync,\n writeFileSync,\n // $FlowIssue\n} = require(\"node:fs\");\n\nconst mergeWith = require(\"lodash/mergeWith\");\nconst { LayoutHintConfiguration } = require(\"../constants/LayoutHintConfig\");\n\nconst findFiles = (dir: string): Array<string> => {\n const matchedFiles = [];\n\n const files = readdirSync(dir);\n\n for (const file of files) {\n const absolute = path.join(dir, file);\n if (statSync(absolute).isDirectory()) {\n const foundFiles = findFiles(absolute);\n matchedFiles.push(...foundFiles);\n } else {\n const filename = path.basename(file);\n if (filename === \"LayoutHintConfig.json\") {\n matchedFiles.push(absolute);\n }\n }\n }\n\n return matchedFiles;\n};\n\n/**\n * Merge all LayoutHintConfig.json files from this library and in the srcFolder\n * together into one config file, and copies it to the outputFolder.<br/>\n * This file is consumed by Be Informed studio to give layout hint information\n */\nexports.mergeLayoutHintConfigurations = async (\n srcFolder: string,\n outputFolder: string,\n): Promise<void> => {\n // $FlowIssue\n const escapedSrcFolder = srcFolder.replaceAll(\"\\\\\", \"/\");\n\n const files = findFiles(escapedSrcFolder);\n\n const jsons = files.map((file) => {\n const content = readFileSync(file, \"utf-8\");\n return JSON.parse(content);\n });\n\n // Function to merge arrays during merging\n const customizer = (objValue: Object, srcValue: Object): Object => {\n if (Array.isArray(objValue)) {\n return [...new Set([...objValue, ...srcValue])];\n }\n };\n\n const newConfig = mergeWith(LayoutHintConfiguration, ...jsons, customizer);\n\n writeFileSync(\n path.join(outputFolder, \"LayoutHintConfig.json\"),\n JSON.stringify(newConfig),\n );\n};\n"],"mappings":";;;;;;;AAEA;AACA,MAAMA,IAAI,GAAGC,OAAO,CAAC,WAAW,CAAC;AACjC,MAAM;EACJC,WAAW;EACXC,QAAQ;EACRC,YAAY;EACZC;EACA;AACF,CAAC,GAAGJ,OAAO,CAAC,SAAS,CAAC;AAEtB,MAAMK,SAAS,GAAGL,OAAO,CAAC,kBAAkB,CAAC;AAC7C,MAAM;EAAEM;AAAwB,CAAC,GAAGN,OAAO,CAAC,+BAA+B,CAAC;AAE5E,MAAMO,SAAS,GAAIC,GAAW,IAAoB;EAChD,MAAMC,YAAY,GAAG,EAAE;EAEvB,MAAMC,KAAK,GAAGT,WAAW,CAACO,GAAG,CAAC;EAE9B,KAAK,MAAMG,IAAI,IAAID,KAAK,EAAE;IACxB,MAAME,QAAQ,GAAGb,IAAI,CAACc,IAAI,CAACL,GAAG,EAAEG,IAAI,CAAC;IACrC,IAAIT,QAAQ,CAACU,QAAQ,CAAC,CAACE,WAAW,CAAC,CAAC,EAAE;MACpC,MAAMC,UAAU,GAAGR,SAAS,CAACK,QAAQ,CAAC;MACtCH,YAAY,CAACO,IAAI,CAAC,GAAGD,UAAU,CAAC;IAClC,CAAC,MAAM;MACL,MAAME,QAAQ,GAAGlB,IAAI,CAACmB,QAAQ,CAACP,IAAI,CAAC;MACpC,IAAIM,QAAQ,KAAK,uBAAuB,EAAE;QACxCR,YAAY,CAACO,IAAI,CAACJ,QAAQ,CAAC;MAC7B;IACF;EACF;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAU,OAAO,CAACC,6BAA6B,GAAG,OACtCC,SAAiB,EACjBC,YAAoB,KACF;EAClB;EACA,MAAMC,gBAAgB,GAAG,IAAAC,WAAA,CAAAC,OAAA,EAAAJ,SAAS,EAAAK,IAAA,CAATL,SAAS,EAAY,IAAI,EAAE,GAAG,CAAC;EAExD,MAAMX,KAAK,GAAGH,SAAS,CAACgB,gBAAgB,CAAC;EAEzC,MAAMI,KAAK,GAAG,IAAAC,IAAA,CAAAH,OAAA,EAAAf,KAAK,EAAAgB,IAAA,CAALhB,KAAK,EAAMC,IAAI,IAAK;IAChC,MAAMkB,OAAO,GAAG1B,YAAY,CAACQ,IAAI,EAAE,OAAO,CAAC;IAC3C,OAAOmB,IAAI,CAACC,KAAK,CAACF,OAAO,CAAC;EAC5B,CAAC,CAAC;;EAEF;EACA,MAAMG,UAAU,GAAGA,CAACC,QAAgB,EAAEC,QAAgB,KAAa;IACjE,IAAIC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;MAC3B,OAAO,CAAC,GAAG,IAAAI,IAAA,CAAAZ,OAAA,CAAQ,CAAC,GAAGQ,QAAQ,EAAE,GAAGC,QAAQ,CAAC,CAAC,CAAC;IACjD;EACF,CAAC;EAED,MAAMI,SAAS,GAAGjC,SAAS,CAACC,uBAAuB,EAAE,GAAGqB,KAAK,EAAEK,UAAU,CAAC;EAE1E5B,aAAa,CACXL,IAAI,CAACc,IAAI,CAACS,YAAY,EAAE,uBAAuB,CAAC,EAChD,IAAAiB,UAAA,CAAAd,OAAA,EAAea,SAAS,CAC1B,CAAC;AACH,CAAC","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.setSettings = exports.setSetting = exports.setContextPath = exports.logoutPath = exports.loginUsernameField = exports.loginType = exports.loginPath = exports.loginPasswordField = exports.isIncludeTimeOffsetInDateTimes = exports.hasAllContentInData = exports.getUploadPath = exports.getSwimLaneDiagramConfiguration = exports.getSetting = exports.getEnabledLocales = exports.getCaptchaPath = exports.getBasePathServer = exports.getBasePathModularUI = exports.getBasePath = exports.cacheContributions = exports.allSettings = exports.LOGOUT_PATH = exports.LOGIN_PATH = exports.BASE = void 0;
8
+ var _globalThis2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/global-this"));
8
9
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
9
10
  var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
10
11
  var _objects = require("../utils/helpers/objects");
@@ -13,7 +14,9 @@ var _Constants = require("./Constants");
13
14
  const serverBase = typeof __CONTEXT_PATH__ === "undefined" ? null : __CONTEXT_PATH__;
14
15
  const defaultSettings = {
15
16
  // This uses contextPath set from property from server
16
- CONTEXT_PATH: serverBase ?? (typeof window !== "undefined" && window.contextPath ? window.contextPath : "/BeInformed"),
17
+ CONTEXT_PATH: serverBase ??
18
+ // $FlowIssue
19
+ _globalThis2.default?.contextPath ?? "/BeInformed",
17
20
  // Indicates if contributions should be cached
18
21
  CACHE_CONTRIBUTIONS: true,
19
22
  // Debug missing i18n messages in layout