@beinformed/ui 1.18.4 → 1.18.5

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 (214) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/esm/hooks/useAuthentication.js +7 -50
  3. package/esm/hooks/useAuthentication.js.map +1 -1
  4. package/esm/i18n/Locales.js.map +1 -1
  5. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  6. package/esm/models/form/FormModel.js.map +1 -1
  7. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  8. package/esm/models/tab/TabModel.js.map +1 -1
  9. package/esm/modularui/Authenticate.js +2 -1
  10. package/esm/modularui/Authenticate.js.map +1 -1
  11. package/esm/redux/actions/SignOut.js +6 -2
  12. package/esm/redux/actions/SignOut.js.map +1 -1
  13. package/esm/redux/connectors/SignIn.js +3 -2
  14. package/esm/redux/connectors/SignIn.js.map +1 -1
  15. package/esm/redux/connectors/SignOut.js +4 -1
  16. package/esm/redux/connectors/SignOut.js.map +1 -1
  17. package/esm/redux/reducers/AuthReducer.js +0 -10
  18. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  19. package/esm/redux/types.js.map +1 -1
  20. package/esm/utils/helpers/checkResource.js +2 -0
  21. package/esm/utils/helpers/checkResource.js.map +1 -1
  22. package/lib/constants/LayoutHints.js.map +1 -1
  23. package/lib/constants/Settings.js.map +1 -1
  24. package/lib/exceptions/FetchException.js.map +1 -1
  25. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +15 -1
  26. package/lib/hooks/useAllFormsOnModel.js.map +1 -1
  27. package/lib/hooks/useAuthentication.js +7 -55
  28. package/lib/hooks/useAuthentication.js.flow +4 -37
  29. package/lib/hooks/useAuthentication.js.map +1 -1
  30. package/lib/hooks/useContent.js.map +1 -1
  31. package/lib/hooks/useDeepCompareEffect.js.map +1 -1
  32. package/lib/hooks/useForm.js.map +1 -1
  33. package/lib/hooks/useI18n.js.map +1 -1
  34. package/lib/hooks/useModal.js.map +1 -1
  35. package/lib/hooks/useModelCatalog.js.map +1 -1
  36. package/lib/hooks/useModels.js.map +1 -1
  37. package/lib/hooks/useModularUI.js.map +1 -1
  38. package/lib/hooks/useModularUIBasic.js.map +1 -1
  39. package/lib/hooks/useModularUIModel.js.map +1 -1
  40. package/lib/hooks/useModularUIRequest.js.map +1 -1
  41. package/lib/hooks/useNotification.js.map +1 -1
  42. package/lib/hooks/usePreference.js.map +1 -1
  43. package/lib/hooks/useProgressIndicator.js.map +1 -1
  44. package/lib/hooks/useRouter.js.map +1 -1
  45. package/lib/i18n/Locale.js.map +1 -1
  46. package/lib/i18n/Locales.js.map +1 -1
  47. package/lib/i18n/Message.js.map +1 -1
  48. package/lib/i18n/withMessage.js.map +1 -1
  49. package/lib/models/actions/ActionModel.js.map +1 -1
  50. package/lib/models/application/ApplicationModel.js.map +1 -1
  51. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  52. package/lib/models/attributes/AttributeContent.js.map +1 -1
  53. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  54. package/lib/models/attributes/AttributeModel.js.map +1 -1
  55. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  56. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  57. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  58. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  59. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  60. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  61. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  62. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  63. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  64. package/lib/models/attributes/MemoAttributeModel.js.map +1 -1
  65. package/lib/models/attributes/MoneyAttributeModel.js.map +1 -1
  66. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  67. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  68. package/lib/models/attributes/XMLAttributeModel.js.map +1 -1
  69. package/lib/models/attributes/_createAttribute.js.map +1 -1
  70. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  71. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  72. package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
  73. package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
  74. package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
  75. package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
  76. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  77. package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
  78. package/lib/models/base/BaseCollection.js.map +1 -1
  79. package/lib/models/base/BaseModel.js.map +1 -1
  80. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  81. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  82. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  83. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  84. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  85. package/lib/models/content/ContentLinkModel.js.map +1 -1
  86. package/lib/models/content/ContentTOCModel.js.map +1 -1
  87. package/lib/models/content/SectionModel.js.map +1 -1
  88. package/lib/models/content/SubSectionModel.js.map +1 -1
  89. package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
  90. package/lib/models/detail/DetailModel.js.map +1 -1
  91. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  92. package/lib/models/form/FormModel.js.map +1 -1
  93. package/lib/models/form/FormObjectModel.js.map +1 -1
  94. package/lib/models/href/Href.js.map +1 -1
  95. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  96. package/lib/models/links/LinkCollection.js.map +1 -1
  97. package/lib/models/links/LinkModel.js.map +1 -1
  98. package/lib/models/list/ListDetailModel.js.map +1 -1
  99. package/lib/models/list/ListHeaderModel.js.map +1 -1
  100. package/lib/models/list/ListItemCollection.js.map +1 -1
  101. package/lib/models/list/ListModel.js.map +1 -1
  102. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  103. package/lib/models/paging/PagingModel.js.map +1 -1
  104. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  105. package/lib/models/parameter/Parameter.js.map +1 -1
  106. package/lib/models/process/ProcessStatusSettingsModel.js.map +1 -1
  107. package/lib/models/resolveModel.js.map +1 -1
  108. package/lib/models/sorting/SortingModel.js.map +1 -1
  109. package/lib/models/tab/TabModel.js.map +1 -1
  110. package/lib/models/user/UserProfileModel.js.map +1 -1
  111. package/lib/models/user/UserServicesModel.js.map +1 -1
  112. package/lib/modularui/Authenticate.js +3 -1
  113. package/lib/modularui/Authenticate.js.flow +3 -2
  114. package/lib/modularui/Authenticate.js.map +1 -1
  115. package/lib/modularui/ModularUIRequest.js.map +1 -1
  116. package/lib/modularui/ModularUIResponse.js.map +1 -1
  117. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  118. package/lib/react-client/client.js.map +1 -1
  119. package/lib/react-client/rehydrate.js.map +1 -1
  120. package/lib/react-server/createSSRComplete.js.map +1 -1
  121. package/lib/react-server/renderSSRComplete.js.map +1 -1
  122. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  123. package/lib/react-server/serverNoSSR.js.map +1 -1
  124. package/lib/react-server/serverSSR.js.map +1 -1
  125. package/lib/react-server/serverUtil.js.map +1 -1
  126. package/lib/react-theme/ThemeProvider.js.map +1 -1
  127. package/lib/react-theme/createTheme.js.map +1 -1
  128. package/lib/react-theme/useTheme.js.map +1 -1
  129. package/lib/react-theme/utils/background.js.map +1 -1
  130. package/lib/react-theme/utils/colors.js.map +1 -1
  131. package/lib/react-theme/utils/contrast.js.map +1 -1
  132. package/lib/react-theme/utils/corners.js.map +1 -1
  133. package/lib/react-theme/utils/spacers.js.map +1 -1
  134. package/lib/react-theme/utils/themeProps.js.map +1 -1
  135. package/lib/redux/_i18n/actions.js.map +1 -1
  136. package/lib/redux/_i18n/reducer.js.map +1 -1
  137. package/lib/redux/_modularui/actions.js.map +1 -1
  138. package/lib/redux/_modularui/connector.js.map +1 -1
  139. package/lib/redux/_modularui/middleware.js.map +1 -1
  140. package/lib/redux/_modularui/modularuiUtils.js.map +1 -1
  141. package/lib/redux/_modularui/reducer.js.map +1 -1
  142. package/lib/redux/_modularui/selectors.js.map +1 -1
  143. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  144. package/lib/redux/_router/connectors.js.map +1 -1
  145. package/lib/redux/actions/Application.js.map +1 -1
  146. package/lib/redux/actions/Authorization.js.map +1 -1
  147. package/lib/redux/actions/Error.js.map +1 -1
  148. package/lib/redux/actions/Form.js.map +1 -1
  149. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  150. package/lib/redux/actions/FormAttributeSetRepeatable.js.map +1 -1
  151. package/lib/redux/actions/FormAutosave.js.map +1 -1
  152. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  153. package/lib/redux/actions/FormValidations.js.map +1 -1
  154. package/lib/redux/actions/Notification.js.map +1 -1
  155. package/lib/redux/actions/Preferences.js.map +1 -1
  156. package/lib/redux/actions/SignIn.js.map +1 -1
  157. package/lib/redux/actions/SignOut.js +6 -1
  158. package/lib/redux/actions/SignOut.js.flow +9 -5
  159. package/lib/redux/actions/SignOut.js.map +1 -1
  160. package/lib/redux/connectors/Application.js.map +1 -1
  161. package/lib/redux/connectors/Breadcrumb.js.map +1 -1
  162. package/lib/redux/connectors/CaseView.js.map +1 -1
  163. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  164. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  165. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  166. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  167. package/lib/redux/connectors/Form.js.map +1 -1
  168. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  169. package/lib/redux/connectors/ListDetail.js.map +1 -1
  170. package/lib/redux/connectors/Modal.js.map +1 -1
  171. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  172. package/lib/redux/connectors/Notification.js.map +1 -1
  173. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  174. package/lib/redux/connectors/Preferences.js.map +1 -1
  175. package/lib/redux/connectors/Progress.js.map +1 -1
  176. package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
  177. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  178. package/lib/redux/connectors/SignIn.js +3 -5
  179. package/lib/redux/connectors/SignIn.js.flow +1 -6
  180. package/lib/redux/connectors/SignIn.js.map +1 -1
  181. package/lib/redux/connectors/SignOut.js +5 -1
  182. package/lib/redux/connectors/SignOut.js.flow +2 -1
  183. package/lib/redux/connectors/SignOut.js.map +1 -1
  184. package/lib/redux/connectors/Tab.js.map +1 -1
  185. package/lib/redux/reducers/AuthReducer.js +0 -11
  186. package/lib/redux/reducers/AuthReducer.js.flow +0 -11
  187. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  188. package/lib/redux/reducers/__tests__/AuthReducer.spec.js.flow +0 -9
  189. package/lib/redux/store/configureStore.js.map +1 -1
  190. package/lib/redux/types.js.flow +0 -1
  191. package/lib/redux/types.js.map +1 -1
  192. package/lib/utils/browser/Cookies.js.map +1 -1
  193. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  194. package/lib/utils/fetch/universalFetch.js.map +1 -1
  195. package/lib/utils/fetch/xhr.js.map +1 -1
  196. package/lib/utils/helpers/checkResource.js +2 -0
  197. package/lib/utils/helpers/checkResource.js.flow +3 -0
  198. package/lib/utils/helpers/checkResource.js.map +1 -1
  199. package/lib/utils/helpers/objects.js.map +1 -1
  200. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  201. package/lib/utils/helpers/text.js.map +1 -1
  202. package/lib/utils/number/formatValue.js.map +1 -1
  203. package/lib/utils/number/parseNumbers.js.map +1 -1
  204. package/package.json +17 -17
  205. package/src/hooks/__tests__/useAuthentication.spec.js +15 -1
  206. package/src/hooks/useAuthentication.js +4 -37
  207. package/src/modularui/Authenticate.js +3 -2
  208. package/src/redux/actions/SignOut.js +9 -5
  209. package/src/redux/connectors/SignIn.js +1 -6
  210. package/src/redux/connectors/SignOut.js +2 -1
  211. package/src/redux/reducers/AuthReducer.js +0 -11
  212. package/src/redux/reducers/__tests__/AuthReducer.spec.js +0 -9
  213. package/src/redux/types.js +0 -1
  214. package/src/utils/helpers/checkResource.js +3 -0
@@ -19,15 +19,12 @@ exports.default = void 0;
19
19
 
20
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
21
21
 
22
- var _Cache = _interopRequireDefault(require("../../utils/browser/Cache"));
23
-
24
22
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
23
 
26
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
27
25
 
28
26
  // REDUCER
29
27
  var initialState = {
30
- isAuthenticated: false,
31
28
  mustChangePassword: false,
32
29
  error: null
33
30
  };
@@ -46,7 +43,6 @@ var AuthReducer = function AuthReducer() {
46
43
  switch (action.type) {
47
44
  case "AUTHENTICATION_SUCCESS":
48
45
  return _objectSpread(_objectSpread({}, state), {}, {
49
- isAuthenticated: true,
50
46
  error: null,
51
47
  mustChangePassword: false
52
48
  });
@@ -64,21 +60,14 @@ var AuthReducer = function AuthReducer() {
64
60
 
65
61
  case "AUTHENTICATION_LOGOUT":
66
62
  {
67
- // clear cache because of cached contributions
68
- if (state.isAuthenticated) {
69
- _Cache.default.clear();
70
- }
71
-
72
63
  return _objectSpread(_objectSpread({}, state), {}, {
73
64
  mustChangePassword: false,
74
- isAuthenticated: false,
75
65
  error: null
76
66
  });
77
67
  }
78
68
 
79
69
  case "CHANGE_PASSWORD":
80
70
  return _objectSpread(_objectSpread({}, state), {}, {
81
- isAuthenticated: true,
82
71
  mustChangePassword: true,
83
72
  error: null
84
73
  });
@@ -1,12 +1,9 @@
1
1
  // @flow
2
- import Cache from "../../utils/browser/Cache";
3
-
4
2
  import type { Reducer } from "redux";
5
3
  import type { AuthState, ReduxAction } from "../types";
6
4
 
7
5
  // REDUCER
8
6
  const initialState: AuthState = {
9
- isAuthenticated: false,
10
7
  mustChangePassword: false,
11
8
  error: null,
12
9
  };
@@ -26,7 +23,6 @@ const AuthReducer: Reducer<AuthState, ReduxAction> = (
26
23
  case "AUTHENTICATION_SUCCESS":
27
24
  return {
28
25
  ...state,
29
- isAuthenticated: true,
30
26
  error: null,
31
27
  mustChangePassword: false,
32
28
  };
@@ -38,15 +34,9 @@ const AuthReducer: Reducer<AuthState, ReduxAction> = (
38
34
  return { ...state, error: null };
39
35
 
40
36
  case "AUTHENTICATION_LOGOUT": {
41
- // clear cache because of cached contributions
42
- if (state.isAuthenticated) {
43
- Cache.clear();
44
- }
45
-
46
37
  return {
47
38
  ...state,
48
39
  mustChangePassword: false,
49
- isAuthenticated: false,
50
40
  error: null,
51
41
  };
52
42
  }
@@ -54,7 +44,6 @@ const AuthReducer: Reducer<AuthState, ReduxAction> = (
54
44
  case "CHANGE_PASSWORD":
55
45
  return {
56
46
  ...state,
57
- isAuthenticated: true,
58
47
  mustChangePassword: true,
59
48
  error: null,
60
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AuthReducer.js","names":["initialState","isAuthenticated","mustChangePassword","error","AuthReducer","state","action","type","payload","Cache","clear"],"sources":["../../../src/redux/reducers/AuthReducer.js"],"sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\n\nimport type { Reducer } from \"redux\";\nimport type { AuthState, ReduxAction } from \"../types\";\n\n// REDUCER\nconst initialState: AuthState = {\n isAuthenticated: false,\n mustChangePassword: false,\n error: null,\n};\n\n/**\n * Auth reducer\n */\nconst AuthReducer: Reducer<AuthState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"AUTHENTICATION_SUCCESS\":\n return {\n ...state,\n isAuthenticated: true,\n error: null,\n mustChangePassword: false,\n };\n\n case \"AUTHENTICATION_ERROR\":\n return { ...state, mustChangePassword: false, error: action.payload };\n\n case \"AUTHENTICATION_RESET_ERRORS\":\n return { ...state, error: null };\n\n case \"AUTHENTICATION_LOGOUT\": {\n // clear cache because of cached contributions\n if (state.isAuthenticated) {\n Cache.clear();\n }\n\n return {\n ...state,\n mustChangePassword: false,\n isAuthenticated: false,\n error: null,\n };\n }\n\n case \"CHANGE_PASSWORD\":\n return {\n ...state,\n isAuthenticated: true,\n mustChangePassword: true,\n error: null,\n };\n\n default:\n return state;\n }\n};\n\nexport default AuthReducer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAKA;AACA,IAAMA,YAAuB,GAAG;EAC9BC,eAAe,EAAE,KADa;EAE9BC,kBAAkB,EAAE,KAFU;EAG9BC,KAAK,EAAE;AAHuB,CAAhC;AAMA;AACA;AACA;;AACA,IAAMC,WAA4C,GAAG,SAA/CA,WAA+C,GAGhD;EAAA,IAFHC,KAEG,uEAFKL,YAEL;EAAA,IADHM,MACG;;EACH,IAAI,CAACA,MAAL,EAAa;IACX,OAAOD,KAAP;EACD;;EAED,QAAQC,MAAM,CAACC,IAAf;IACE,KAAK,wBAAL;MACE,uCACKF,KADL;QAEEJ,eAAe,EAAE,IAFnB;QAGEE,KAAK,EAAE,IAHT;QAIED,kBAAkB,EAAE;MAJtB;;IAOF,KAAK,sBAAL;MACE,uCAAYG,KAAZ;QAAmBH,kBAAkB,EAAE,KAAvC;QAA8CC,KAAK,EAAEG,MAAM,CAACE;MAA5D;;IAEF,KAAK,6BAAL;MACE,uCAAYH,KAAZ;QAAmBF,KAAK,EAAE;MAA1B;;IAEF,KAAK,uBAAL;MAA8B;QAC5B;QACA,IAAIE,KAAK,CAACJ,eAAV,EAA2B;UACzBQ,eAAMC,KAAN;QACD;;QAED,uCACKL,KADL;UAEEH,kBAAkB,EAAE,KAFtB;UAGED,eAAe,EAAE,KAHnB;UAIEE,KAAK,EAAE;QAJT;MAMD;;IAED,KAAK,iBAAL;MACE,uCACKE,KADL;QAEEJ,eAAe,EAAE,IAFnB;QAGEC,kBAAkB,EAAE,IAHtB;QAIEC,KAAK,EAAE;MAJT;;IAOF;MACE,OAAOE,KAAP;EAtCJ;AAwCD,CAhDD;;eAkDeD,W"}
1
+ {"version":3,"file":"AuthReducer.js","names":["initialState","mustChangePassword","error","AuthReducer","state","action","type","payload"],"sources":["../../../src/redux/reducers/AuthReducer.js"],"sourcesContent":["// @flow\nimport type { Reducer } from \"redux\";\nimport type { AuthState, ReduxAction } from \"../types\";\n\n// REDUCER\nconst initialState: AuthState = {\n mustChangePassword: false,\n error: null,\n};\n\n/**\n * Auth reducer\n */\nconst AuthReducer: Reducer<AuthState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"AUTHENTICATION_SUCCESS\":\n return {\n ...state,\n error: null,\n mustChangePassword: false,\n };\n\n case \"AUTHENTICATION_ERROR\":\n return { ...state, mustChangePassword: false, error: action.payload };\n\n case \"AUTHENTICATION_RESET_ERRORS\":\n return { ...state, error: null };\n\n case \"AUTHENTICATION_LOGOUT\": {\n return {\n ...state,\n mustChangePassword: false,\n error: null,\n };\n }\n\n case \"CHANGE_PASSWORD\":\n return {\n ...state,\n mustChangePassword: true,\n error: null,\n };\n\n default:\n return state;\n }\n};\n\nexport default AuthReducer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAMA,YAAuB,GAAG;EAC9BC,kBAAkB,EAAE,KADU;EAE9BC,KAAK,EAAE;AAFuB,CAAhC;AAKA;AACA;AACA;;AACA,IAAMC,WAA4C,GAAG,SAA/CA,WAA+C,GAGhD;EAAA,IAFHC,KAEG,uEAFKJ,YAEL;EAAA,IADHK,MACG;;EACH,IAAI,CAACA,MAAL,EAAa;IACX,OAAOD,KAAP;EACD;;EAED,QAAQC,MAAM,CAACC,IAAf;IACE,KAAK,wBAAL;MACE,uCACKF,KADL;QAEEF,KAAK,EAAE,IAFT;QAGED,kBAAkB,EAAE;MAHtB;;IAMF,KAAK,sBAAL;MACE,uCAAYG,KAAZ;QAAmBH,kBAAkB,EAAE,KAAvC;QAA8CC,KAAK,EAAEG,MAAM,CAACE;MAA5D;;IAEF,KAAK,6BAAL;MACE,uCAAYH,KAAZ;QAAmBF,KAAK,EAAE;MAA1B;;IAEF,KAAK,uBAAL;MAA8B;QAC5B,uCACKE,KADL;UAEEH,kBAAkB,EAAE,KAFtB;UAGEC,KAAK,EAAE;QAHT;MAKD;;IAED,KAAK,iBAAL;MACE,uCACKE,KADL;QAEEH,kBAAkB,EAAE,IAFtB;QAGEC,KAAK,EAAE;MAHT;;IAMF;MACE,OAAOE,KAAP;EA9BJ;AAgCD,CAxCD;;eA0CeD,W"}
@@ -3,13 +3,11 @@ import AuthReducer from "../AuthReducer";
3
3
  describe("authentication reducer", () => {
4
4
  it("should return the initial state", () => {
5
5
  expect(AuthReducer(undefined, {})).toStrictEqual({
6
- isAuthenticated: false,
7
6
  mustChangePassword: false,
8
7
  error: null,
9
8
  });
10
9
 
11
10
  expect(AuthReducer()).toStrictEqual({
12
- isAuthenticated: false,
13
11
  mustChangePassword: false,
14
12
  error: null,
15
13
  });
@@ -24,7 +22,6 @@ describe("authentication reducer", () => {
24
22
  }
25
23
  )
26
24
  ).toStrictEqual({
27
- isAuthenticated: true,
28
25
  mustChangePassword: false,
29
26
  error: null,
30
27
  });
@@ -49,7 +46,6 @@ describe("authentication reducer", () => {
49
46
  expect(
50
47
  AuthReducer(
51
48
  {
52
- isAuthenticated: true,
53
49
  mustChangePassword: false,
54
50
  error: null,
55
51
  },
@@ -58,7 +54,6 @@ describe("authentication reducer", () => {
58
54
  }
59
55
  )
60
56
  ).toStrictEqual({
61
- isAuthenticated: false,
62
57
  mustChangePassword: false,
63
58
  error: null,
64
59
  });
@@ -68,7 +63,6 @@ describe("authentication reducer", () => {
68
63
  expect(
69
64
  AuthReducer(
70
65
  {
71
- isAuthenticated: false,
72
66
  mustChangePassword: false,
73
67
  error: "In error",
74
68
  },
@@ -77,7 +71,6 @@ describe("authentication reducer", () => {
77
71
  }
78
72
  )
79
73
  ).toStrictEqual({
80
- isAuthenticated: false,
81
74
  mustChangePassword: false,
82
75
  error: null,
83
76
  });
@@ -87,7 +80,6 @@ describe("authentication reducer", () => {
87
80
  expect(
88
81
  AuthReducer(
89
82
  {
90
- isAuthenticated: true,
91
83
  mustChangePassword: false,
92
84
  error: null,
93
85
  },
@@ -96,7 +88,6 @@ describe("authentication reducer", () => {
96
88
  }
97
89
  )
98
90
  ).toStrictEqual({
99
- isAuthenticated: true,
100
91
  mustChangePassword: true,
101
92
  error: null,
102
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"configureStore.js","names":["configureStore","history","customReducers","initialState","composeEnhancers","compose","process","env","NODE_ENV","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","combinedReducers","middleware","modularuiMiddleware","thunk","enhancers","store","dispatch","location"],"sources":["../../../src/redux/store/configureStore.js"],"sourcesContent":["// @flow\nimport {\n applyMiddleware,\n compose,\n combineReducers,\n createStore as createReduxStore,\n} from \"redux\";\nimport thunk from \"redux-thunk\";\n\nimport { routerMiddleware } from \"../_router/middleware\";\nimport { modularuiMiddleware } from \"../_modularui/middleware\";\n\nimport { createReducer } from \"../reducers/createReducer\";\nimport { locationChange } from \"../_router/actions\";\n\nimport type { RouterHistory } from \"react-router\";\nimport type { ReduxAction, ReduxState, ReduxStore } from \"../types\";\nimport type { Reducer } from \"redux\";\n\n/**\n */\nconst configureStore = (\n history: RouterHistory,\n customReducers?: Object,\n initialState?: $Shape<ReduxState>\n): { history: RouterHistory, store: ReduxStore } => {\n let composeEnhancers = compose;\n\n if (process.env.NODE_ENV !== \"production\" && typeof window !== \"undefined\") {\n composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n }\n\n const combinedReducers: Reducer<ReduxState, ReduxAction> = combineReducers({\n ...customReducers,\n ...createReducer(),\n });\n\n const middleware = applyMiddleware(\n modularuiMiddleware,\n routerMiddleware(history),\n thunk\n );\n\n const enhancers = composeEnhancers(middleware);\n\n const store: ReduxStore = createReduxStore(\n combinedReducers,\n initialState,\n enhancers\n );\n\n if (!initialState) {\n store.dispatch(locationChange(history.location, \"PUSH\"));\n }\n return { history, store };\n};\n\nexport default configureStore;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAMA;;AAEA;;AACA;;AAEA;;AACA;;;;;;AAMA;AACA;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,OADqB,EAErBC,cAFqB,EAGrBC,YAHqB,EAI6B;EAClD,IAAIC,gBAAgB,GAAGC,cAAvB;;EAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,OAAOC,MAAP,KAAkB,WAA/D,EAA4E;IAC1EL,gBAAgB,GAAGK,MAAM,CAACC,oCAAP,IAA+CL,cAAlE;EACD;;EAED,IAAMM,gBAAkD,GAAG,4DACtDT,cADsD,GAEtD,mCAFsD,EAA3D;EAKA,IAAMU,UAAU,GAAG,4BACjBC,gCADiB,EAEjB,kCAAiBZ,OAAjB,CAFiB,EAGjBa,mBAHiB,CAAnB;EAMA,IAAMC,SAAS,GAAGX,gBAAgB,CAACQ,UAAD,CAAlC;EAEA,IAAMI,KAAiB,GAAG,wBACxBL,gBADwB,EAExBR,YAFwB,EAGxBY,SAHwB,CAA1B;;EAMA,IAAI,CAACZ,YAAL,EAAmB;IACjBa,KAAK,CAACC,QAAN,CAAe,6BAAehB,OAAO,CAACiB,QAAvB,EAAiC,MAAjC,CAAf;EACD;;EACD,OAAO;IAAEjB,OAAO,EAAPA,OAAF;IAAWe,KAAK,EAALA;EAAX,CAAP;AACD,CAlCD;;eAoCehB,c"}
1
+ {"version":3,"file":"configureStore.js","names":["configureStore","history","customReducers","initialState","composeEnhancers","compose","process","env","NODE_ENV","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","combinedReducers","combineReducers","createReducer","middleware","applyMiddleware","modularuiMiddleware","routerMiddleware","thunk","enhancers","store","createReduxStore","dispatch","locationChange","location"],"sources":["../../../src/redux/store/configureStore.js"],"sourcesContent":["// @flow\nimport {\n applyMiddleware,\n compose,\n combineReducers,\n createStore as createReduxStore,\n} from \"redux\";\nimport thunk from \"redux-thunk\";\n\nimport { routerMiddleware } from \"../_router/middleware\";\nimport { modularuiMiddleware } from \"../_modularui/middleware\";\n\nimport { createReducer } from \"../reducers/createReducer\";\nimport { locationChange } from \"../_router/actions\";\n\nimport type { RouterHistory } from \"react-router\";\nimport type { ReduxAction, ReduxState, ReduxStore } from \"../types\";\nimport type { Reducer } from \"redux\";\n\n/**\n */\nconst configureStore = (\n history: RouterHistory,\n customReducers?: Object,\n initialState?: $Shape<ReduxState>\n): { history: RouterHistory, store: ReduxStore } => {\n let composeEnhancers = compose;\n\n if (process.env.NODE_ENV !== \"production\" && typeof window !== \"undefined\") {\n composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n }\n\n const combinedReducers: Reducer<ReduxState, ReduxAction> = combineReducers({\n ...customReducers,\n ...createReducer(),\n });\n\n const middleware = applyMiddleware(\n modularuiMiddleware,\n routerMiddleware(history),\n thunk\n );\n\n const enhancers = composeEnhancers(middleware);\n\n const store: ReduxStore = createReduxStore(\n combinedReducers,\n initialState,\n enhancers\n );\n\n if (!initialState) {\n store.dispatch(locationChange(history.location, \"PUSH\"));\n }\n return { history, store };\n};\n\nexport default configureStore;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAMA;;AAEA;;AACA;;AAEA;;AACA;;;;;;AAMA;AACA;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,OADqB,EAErBC,cAFqB,EAGrBC,YAHqB,EAI6B;EAClD,IAAIC,gBAAgB,GAAGC,cAAvB;;EAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,OAAOC,MAAP,KAAkB,WAA/D,EAA4E;IAC1EL,gBAAgB,GAAGK,MAAM,CAACC,oCAAP,IAA+CL,cAAlE;EACD;;EAED,IAAMM,gBAAkD,GAAG,IAAAC,sBAAA,kCACtDV,cADsD,GAEtD,IAAAW,4BAAA,GAFsD,EAA3D;EAKA,IAAMC,UAAU,GAAG,IAAAC,sBAAA,EACjBC,gCADiB,EAEjB,IAAAC,4BAAA,EAAiBhB,OAAjB,CAFiB,EAGjBiB,mBAHiB,CAAnB;EAMA,IAAMC,SAAS,GAAGf,gBAAgB,CAACU,UAAD,CAAlC;EAEA,IAAMM,KAAiB,GAAG,IAAAC,kBAAA,EACxBV,gBADwB,EAExBR,YAFwB,EAGxBgB,SAHwB,CAA1B;;EAMA,IAAI,CAAChB,YAAL,EAAmB;IACjBiB,KAAK,CAACE,QAAN,CAAe,IAAAC,uBAAA,EAAetB,OAAO,CAACuB,QAAvB,EAAiC,MAAjC,CAAf;EACD;;EACD,OAAO;IAAEvB,OAAO,EAAPA,OAAF;IAAWmB,KAAK,EAALA;EAAX,CAAP;AACD,CAlCD;;eAoCepB,c"}
@@ -168,7 +168,6 @@ export type ReduxAction =
168
168
 
169
169
  // Redux state
170
170
  export type AuthState = {
171
- +isAuthenticated: boolean,
172
171
  +mustChangePassword: boolean,
173
172
  +error: ?string,
174
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/redux/types.js"],"sourcesContent":["// @flow\nimport type { Store, DispatchAPI } from \"redux\";\n\nimport type ErrorResponse from \"../models/error/ErrorResponse\";\n\nimport type FormModel from \"../models/form/FormModel\";\nimport typeof {\n NOTIFICATION_TYPES,\n AUTOSAVE_STATUS,\n} from \"../constants/Constants\";\n\nimport type { MessageObject } from \"../i18n/types\";\nimport type {\n I18nState,\n UpdateLocaleAction,\n SetLocalesAction,\n} from \"./_i18n/types\";\nimport type {\n ModularUIState,\n ModularUIAction,\n UpdateStatusAction,\n SetModelAction,\n UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n} from \"./_modularui/types\";\nimport type {\n RouterState,\n LocationChangeAction,\n PushAction,\n ReplaceAction,\n GoAction,\n GoBackAction,\n GoForwardAction,\n} from \"./_router/types\";\n\nexport type PreferenceValue =\n | null\n | string\n | boolean\n | { [key: string]: any }\n | Array<PreferenceValue>;\n\nexport type UpdateFormOptions = {\n autosubmit: boolean,\n autosave: boolean,\n forceUpdate?: boolean,\n /** Default true: Activate/deactivate the form object validate by an update */\n validate?: boolean,\n};\n\nexport type NoAction = {\n type: \"NO_ACTION\",\n};\n\nexport type SaveErrorAction = {\n type: \"SAVE_ERROR\",\n payload: ErrorResponse,\n};\n\nexport type ShowModalAction = {\n type: \"SHOW_MODAL\",\n payload: string,\n};\n\nexport type CloseModalAction = {\n type: \"CLOSE_MODAL\",\n payload: string,\n};\n\nexport type DismissNotificationAction = {\n type: \"DISMISS_NOTIFICATION\",\n};\nexport type ShowNotificationAction = {\n type: \"SHOW_NOTIFICATION\",\n payload: {\n type: $Keys<NOTIFICATION_TYPES>,\n message: MessageObject,\n error: ?ErrorResponse,\n },\n};\n\nexport type SetPreferenceAction = {\n type: \"SET_PREFERENCE\",\n payload: { [name: string]: PreferenceValue },\n};\nexport type SetPreferencesAction = {\n type: \"SET_PREFERENCES\",\n payload: { [name: string]: PreferenceValue },\n};\n\nexport type StartProgressAction = {\n type: \"START_PROGRESS\",\n};\nexport type FinishProgressAction = {\n type: \"FINISH_PROGRESS\",\n};\nexport type ResetProgressAction = {\n type: \"RESET_PROGRESS\",\n};\nexport type UpdateProgressAction = {\n type: \"UPDATE_PROGRESS\",\n payload: { percentComplete: number },\n};\n\nexport type LoginFailedAction = {\n type: \"AUTHENTICATION_ERROR\",\n payload: string,\n};\n\nexport type ResetAuthErrorsAction = {\n type: \"AUTHENTICATION_RESET_ERRORS\",\n};\n\nexport type LoginSuccessAction = {\n type: \"AUTHENTICATION_SUCCESS\",\n};\n\nexport type ChangePasswordAction = {\n type: \"CHANGE_PASSWORD\",\n};\n\nexport type LogoutSuccessAction = {\n type: \"AUTHENTICATION_LOGOUT\",\n};\n\nexport type UpdateAutosaveAction = {\n type: \"UPDATE_AUTOSAVE_STATUS\",\n payload: {\n status: $Keys<AUTOSAVE_STATUS>,\n model: FormModel,\n },\n};\n\nexport type ReduxAction =\n | UpdateStatusAction\n | SetModelAction\n | UpdateModelAction\n | RemoveModelByKeyAction\n | ResetModularUIAction\n | SaveErrorAction\n | UpdateLocaleAction\n | SetLocalesAction\n | ShowModalAction\n | CloseModalAction\n | DismissNotificationAction\n | ShowNotificationAction\n | SetPreferenceAction\n | SetPreferencesAction\n | StartProgressAction\n | FinishProgressAction\n | ResetProgressAction\n | UpdateProgressAction\n | LoginFailedAction\n | ResetAuthErrorsAction\n | LoginSuccessAction\n | ChangePasswordAction\n | LogoutSuccessAction\n | UpdateAutosaveAction\n | LocationChangeAction\n | PushAction\n | ReplaceAction\n | GoAction\n | GoBackAction\n | GoForwardAction\n | ModularUIAction\n | NoAction;\n\n// Redux state\nexport type AuthState = {\n +isAuthenticated: boolean,\n +mustChangePassword: boolean,\n +error: ?string,\n};\n\nexport type ErrorState = null | ErrorResponse;\n\nexport type ModalState = {\n +key: string,\n +visible: boolean,\n +size?: string,\n};\n\nexport type ModalsState = {\n +modals: Array<ModalState>,\n};\n\nexport type NotificationState = {\n +render: boolean,\n +messageType: string | null,\n +message: MessageObject | null,\n +error: ?ErrorResponse | null,\n};\n\nexport type PreferencesState = {\n +[name: string]: PreferenceValue,\n};\n\nexport type ProgressIndicatorState = {\n +count: number,\n +timestamp: number,\n +percentComplete: number,\n};\n\nexport type ReduxState = {\n +router: RouterState,\n +modularui: ModularUIState,\n +i18n: I18nState,\n +auth: AuthState,\n +error: ErrorState,\n +modals: ModalsState,\n +notification: NotificationState,\n +progressindicator: ProgressIndicatorState,\n +preferences: PreferencesState,\n ...\n};\n\nexport type GetState = () => ReduxState;\nexport type ThunkAction = (dispatch: Dispatch, getState: GetState) => any;\nexport type PromiseAction = Promise<PossibleAction>;\nexport type Dispatch = DispatchAPI<PossibleAction>;\nexport type ReduxStore = Store<ReduxState, ReduxAction, Dispatch>;\n\nexport type PossibleAction = ReduxAction | ThunkAction | PromiseAction;\n\nexport type CustomReducers = { [reducerKey: string]: any };\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/redux/types.js"],"sourcesContent":["// @flow\nimport type { Store, DispatchAPI } from \"redux\";\n\nimport type ErrorResponse from \"../models/error/ErrorResponse\";\n\nimport type FormModel from \"../models/form/FormModel\";\nimport typeof {\n NOTIFICATION_TYPES,\n AUTOSAVE_STATUS,\n} from \"../constants/Constants\";\n\nimport type { MessageObject } from \"../i18n/types\";\nimport type {\n I18nState,\n UpdateLocaleAction,\n SetLocalesAction,\n} from \"./_i18n/types\";\nimport type {\n ModularUIState,\n ModularUIAction,\n UpdateStatusAction,\n SetModelAction,\n UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n} from \"./_modularui/types\";\nimport type {\n RouterState,\n LocationChangeAction,\n PushAction,\n ReplaceAction,\n GoAction,\n GoBackAction,\n GoForwardAction,\n} from \"./_router/types\";\n\nexport type PreferenceValue =\n | null\n | string\n | boolean\n | { [key: string]: any }\n | Array<PreferenceValue>;\n\nexport type UpdateFormOptions = {\n autosubmit: boolean,\n autosave: boolean,\n forceUpdate?: boolean,\n /** Default true: Activate/deactivate the form object validate by an update */\n validate?: boolean,\n};\n\nexport type NoAction = {\n type: \"NO_ACTION\",\n};\n\nexport type SaveErrorAction = {\n type: \"SAVE_ERROR\",\n payload: ErrorResponse,\n};\n\nexport type ShowModalAction = {\n type: \"SHOW_MODAL\",\n payload: string,\n};\n\nexport type CloseModalAction = {\n type: \"CLOSE_MODAL\",\n payload: string,\n};\n\nexport type DismissNotificationAction = {\n type: \"DISMISS_NOTIFICATION\",\n};\nexport type ShowNotificationAction = {\n type: \"SHOW_NOTIFICATION\",\n payload: {\n type: $Keys<NOTIFICATION_TYPES>,\n message: MessageObject,\n error: ?ErrorResponse,\n },\n};\n\nexport type SetPreferenceAction = {\n type: \"SET_PREFERENCE\",\n payload: { [name: string]: PreferenceValue },\n};\nexport type SetPreferencesAction = {\n type: \"SET_PREFERENCES\",\n payload: { [name: string]: PreferenceValue },\n};\n\nexport type StartProgressAction = {\n type: \"START_PROGRESS\",\n};\nexport type FinishProgressAction = {\n type: \"FINISH_PROGRESS\",\n};\nexport type ResetProgressAction = {\n type: \"RESET_PROGRESS\",\n};\nexport type UpdateProgressAction = {\n type: \"UPDATE_PROGRESS\",\n payload: { percentComplete: number },\n};\n\nexport type LoginFailedAction = {\n type: \"AUTHENTICATION_ERROR\",\n payload: string,\n};\n\nexport type ResetAuthErrorsAction = {\n type: \"AUTHENTICATION_RESET_ERRORS\",\n};\n\nexport type LoginSuccessAction = {\n type: \"AUTHENTICATION_SUCCESS\",\n};\n\nexport type ChangePasswordAction = {\n type: \"CHANGE_PASSWORD\",\n};\n\nexport type LogoutSuccessAction = {\n type: \"AUTHENTICATION_LOGOUT\",\n};\n\nexport type UpdateAutosaveAction = {\n type: \"UPDATE_AUTOSAVE_STATUS\",\n payload: {\n status: $Keys<AUTOSAVE_STATUS>,\n model: FormModel,\n },\n};\n\nexport type ReduxAction =\n | UpdateStatusAction\n | SetModelAction\n | UpdateModelAction\n | RemoveModelByKeyAction\n | ResetModularUIAction\n | SaveErrorAction\n | UpdateLocaleAction\n | SetLocalesAction\n | ShowModalAction\n | CloseModalAction\n | DismissNotificationAction\n | ShowNotificationAction\n | SetPreferenceAction\n | SetPreferencesAction\n | StartProgressAction\n | FinishProgressAction\n | ResetProgressAction\n | UpdateProgressAction\n | LoginFailedAction\n | ResetAuthErrorsAction\n | LoginSuccessAction\n | ChangePasswordAction\n | LogoutSuccessAction\n | UpdateAutosaveAction\n | LocationChangeAction\n | PushAction\n | ReplaceAction\n | GoAction\n | GoBackAction\n | GoForwardAction\n | ModularUIAction\n | NoAction;\n\n// Redux state\nexport type AuthState = {\n +mustChangePassword: boolean,\n +error: ?string,\n};\n\nexport type ErrorState = null | ErrorResponse;\n\nexport type ModalState = {\n +key: string,\n +visible: boolean,\n +size?: string,\n};\n\nexport type ModalsState = {\n +modals: Array<ModalState>,\n};\n\nexport type NotificationState = {\n +render: boolean,\n +messageType: string | null,\n +message: MessageObject | null,\n +error: ?ErrorResponse | null,\n};\n\nexport type PreferencesState = {\n +[name: string]: PreferenceValue,\n};\n\nexport type ProgressIndicatorState = {\n +count: number,\n +timestamp: number,\n +percentComplete: number,\n};\n\nexport type ReduxState = {\n +router: RouterState,\n +modularui: ModularUIState,\n +i18n: I18nState,\n +auth: AuthState,\n +error: ErrorState,\n +modals: ModalsState,\n +notification: NotificationState,\n +progressindicator: ProgressIndicatorState,\n +preferences: PreferencesState,\n ...\n};\n\nexport type GetState = () => ReduxState;\nexport type ThunkAction = (dispatch: Dispatch, getState: GetState) => any;\nexport type PromiseAction = Promise<PossibleAction>;\nexport type Dispatch = DispatchAPI<PossibleAction>;\nexport type ReduxStore = Store<ReduxState, ReduxAction, Dispatch>;\n\nexport type PossibleAction = ReduxAction | ThunkAction | PromiseAction;\n\nexport type CustomReducers = { [reducerKey: string]: any };\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Cookies.js","names":["getCookie","name","Cookies","get","setCookie","value","days","sameSite","secure","attributes","path","BASE","expires","set","clearCookie","remove"],"sources":["../../../src/utils/browser/Cookies.js"],"sourcesContent":["// @flow\nimport Cookies from \"js-cookie\";\n\nimport { BASE } from \"../../constants/Constants\";\n\ntype CookieOptions = {\n days?: number,\n sameSite?: \"None\" | \"Lax\" | \"Strict\",\n secure?: boolean,\n};\n\ntype CookieAttributes = {\n path: string,\n expires?: number,\n sameSite?: string,\n secure?: boolean,\n};\n\n/**\n */\nconst getCookie = (name: string): null | string => {\n return Cookies.get(name);\n};\n\n/**\n */\nconst setCookie = (\n name: string,\n value: any,\n { days, sameSite = \"Strict\", secure }: CookieOptions = {}\n) => {\n const attributes: CookieAttributes = { path: BASE };\n if (days) {\n attributes.expires = days;\n }\n if (sameSite) {\n attributes.sameSite = sameSite;\n }\n if (secure) {\n attributes.secure = secure;\n }\n\n Cookies.set(name, value, attributes);\n};\n\n/**\n */\nconst clearCookie = (name: string) => {\n Cookies.remove(name, { path: BASE });\n};\n\nexport { getCookie, setCookie, clearCookie };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAeA;AACA;AACA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAiC;EACjD,OAAOC,kBAAQC,GAAR,CAAYF,IAAZ,CAAP;AACD,CAFD;AAIA;AACA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAChBH,IADgB,EAEhBI,KAFgB,EAIb;EAAA,+EADoD,EACpD;EAAA,IADDC,IACC,QADDA,IACC;EAAA,yBADKC,QACL;EAAA,IADKA,QACL,8BADgB,QAChB;EAAA,IAD0BC,MAC1B,QAD0BA,MAC1B;;EACH,IAAMC,UAA4B,GAAG;IAAEC,IAAI,EAAEC;EAAR,CAArC;;EACA,IAAIL,IAAJ,EAAU;IACRG,UAAU,CAACG,OAAX,GAAqBN,IAArB;EACD;;EACD,IAAIC,QAAJ,EAAc;IACZE,UAAU,CAACF,QAAX,GAAsBA,QAAtB;EACD;;EACD,IAAIC,MAAJ,EAAY;IACVC,UAAU,CAACD,MAAX,GAAoBA,MAApB;EACD;;EAEDN,kBAAQW,GAAR,CAAYZ,IAAZ,EAAkBI,KAAlB,EAAyBI,UAAzB;AACD,CAjBD;AAmBA;AACA;;;;;AACA,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAACb,IAAD,EAAkB;EACpCC,kBAAQa,MAAR,CAAed,IAAf,EAAqB;IAAES,IAAI,EAAEC;EAAR,CAArB;AACD,CAFD"}
1
+ {"version":3,"file":"Cookies.js","names":["getCookie","name","Cookies","get","setCookie","value","days","sameSite","secure","attributes","path","BASE","expires","set","clearCookie","remove"],"sources":["../../../src/utils/browser/Cookies.js"],"sourcesContent":["// @flow\nimport Cookies from \"js-cookie\";\n\nimport { BASE } from \"../../constants/Constants\";\n\ntype CookieOptions = {\n days?: number,\n sameSite?: \"None\" | \"Lax\" | \"Strict\",\n secure?: boolean,\n};\n\ntype CookieAttributes = {\n path: string,\n expires?: number,\n sameSite?: string,\n secure?: boolean,\n};\n\n/**\n */\nconst getCookie = (name: string): null | string => {\n return Cookies.get(name);\n};\n\n/**\n */\nconst setCookie = (\n name: string,\n value: any,\n { days, sameSite = \"Strict\", secure }: CookieOptions = {}\n) => {\n const attributes: CookieAttributes = { path: BASE };\n if (days) {\n attributes.expires = days;\n }\n if (sameSite) {\n attributes.sameSite = sameSite;\n }\n if (secure) {\n attributes.secure = secure;\n }\n\n Cookies.set(name, value, attributes);\n};\n\n/**\n */\nconst clearCookie = (name: string) => {\n Cookies.remove(name, { path: BASE });\n};\n\nexport { getCookie, setCookie, clearCookie };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAeA;AACA;AACA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAiC;EACjD,OAAOC,iBAAA,CAAQC,GAAR,CAAYF,IAAZ,CAAP;AACD,CAFD;AAIA;AACA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAChBH,IADgB,EAEhBI,KAFgB,EAIb;EAAA,+EADoD,EACpD;EAAA,IADDC,IACC,QADDA,IACC;EAAA,yBADKC,QACL;EAAA,IADKA,QACL,8BADgB,QAChB;EAAA,IAD0BC,MAC1B,QAD0BA,MAC1B;;EACH,IAAMC,UAA4B,GAAG;IAAEC,IAAI,EAAEC;EAAR,CAArC;;EACA,IAAIL,IAAJ,EAAU;IACRG,UAAU,CAACG,OAAX,GAAqBN,IAArB;EACD;;EACD,IAAIC,QAAJ,EAAc;IACZE,UAAU,CAACF,QAAX,GAAsBA,QAAtB;EACD;;EACD,IAAIC,MAAJ,EAAY;IACVC,UAAU,CAACD,MAAX,GAAoBA,MAApB;EACD;;EAEDN,iBAAA,CAAQW,GAAR,CAAYZ,IAAZ,EAAkBI,KAAlB,EAAyBI,UAAzB;AACD,CAjBD;AAmBA;AACA;;;;;AACA,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAACb,IAAD,EAAkB;EACpCC,iBAAA,CAAQa,MAAR,CAAed,IAAf,EAAqB;IAAES,IAAI,EAAEC;EAAR,CAArB;AACD,CAFD"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeUtil.js","names":["BaseDateTimeUtil","isoFormat","_isoFormat","locale","nl","enGB","weekStartsOn","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","date","inputFormat","getOptions","Date","targetFormat","parsedDate","toDate","getLocale","sourceFormat","toISO","realDate","formattedValue","isOutsideRange","replace","toUpperCase","inputDate","afterISODate","isAfter","isSame","beforeISODate","isBefore","compareDate","getTime","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","amount","year","month","hour","minute","second","milliseconds","hours","minutes","seconds","DateUtil","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n parse,\n format,\n isValid,\n isAfter,\n isBefore,\n isSameDay,\n addSeconds,\n addMinutes,\n addHours,\n addDays,\n addWeeks,\n addMonths,\n addYears,\n subSeconds,\n subMinutes,\n subHours,\n subDays,\n subWeeks,\n subMonths,\n subYears,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n setMilliseconds,\n setSeconds,\n setMinutes,\n setHours,\n setMonth,\n setYear,\n set,\n} from \"date-fns\";\nimport { nl, enGB } from \"date-fns/locale\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport {\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n DEFAULT_WEEK_STARTS_ON,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n} from \"../../constants\";\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") || \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n // returns the options defined in settings\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n toDate(date: string, inputFormat: string = this._isoFormat): Date {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(date: string | Date, targetFormat: string): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(date: string | Date, sourceFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate =\n typeof date === \"string\" ? this.toDate(date, sourceFormat) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, this._isoFormat, {\n weekStartsOn,\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n /**\n */\n convertFormat(sourceFormat: string): string {\n return sourceFormat ? sourceFormat : this._isoFormat;\n }\n\n /**\n * VALIDATION\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const { weekStartsOn } = this.getOptions();\n\n const realDate = this.toDate(date, sourceFormat);\n if (isValid(realDate)) {\n const formattedValue = format(realDate, sourceFormat, {\n weekStartsOn,\n });\n\n const isOutsideRange =\n isBefore(realDate, new Date(1000, 1, 1)) ||\n isAfter(realDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n return false;\n }\n\n /**\n */\n isValid(date: string, inputFormat: string = this._isoFormat): boolean {\n return isValid(this.toDate(date, inputFormat));\n }\n\n /**\n */\n isAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string,\n compareDate: string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat)\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * CALCULATIONS\n */\n addSeconds(date: string, amount: number): string {\n return this.toISO(addSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n addMinutes(date: string, amount: number): string {\n return this.toISO(addMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n addHours(date: string, amount: number): string {\n return this.toISO(addHours(this.toDate(date), amount));\n }\n\n /**\n */\n addDays(date: string, amount: number): string {\n return this.toISO(addDays(this.toDate(date), amount));\n }\n\n /**\n */\n addWeeks(date: string, amount: number): string {\n return this.toISO(addWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n addMonths(date: string, amount: number): string {\n return this.toISO(addMonths(this.toDate(date), amount));\n }\n\n /**\n */\n addYears(date: string, amount: number): string {\n return this.toISO(addYears(this.toDate(date), amount));\n }\n\n /**\n */\n subtractSeconds(date: string, amount: number): string {\n return this.toISO(subSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMinutes(date: string, amount: number): string {\n return this.toISO(subMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n subtractHours(date: string, amount: number): string {\n return this.toISO(subHours(this.toDate(date), amount));\n }\n\n /**\n */\n subtractDays(date: string, amount: number): string {\n return this.toISO(subDays(this.toDate(date), amount));\n }\n\n /**\n */\n subtractWeeks(date: string, amount: number): string {\n return this.toISO(subWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMonths(date: string, amount: number): string {\n return this.toISO(subMonths(this.toDate(date), amount));\n }\n\n /**\n */\n subtractYears(date: string, amount: number): string {\n return this.toISO(subYears(this.toDate(date), amount));\n }\n\n /**\n * GETTERS\n */\n startOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(startOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n endOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(endOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n startOfWeek(date: string, inputFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n return this.toISO(\n startOfWeek(this.toDate(date, inputFormat), {\n weekStartsOn,\n })\n );\n }\n\n /**\n */\n getHours(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getHours(parsedDate);\n }\n\n /**\n */\n getMinutes(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getMinutes(parsedDate);\n }\n\n /**\n */\n getWeek(date: string): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return getWeek(this.toDate(date), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n * SETTERS\n */\n setYear(date: string, year: number): string {\n return this.toISO(setYear(this.toDate(date), year));\n }\n\n /**\n */\n setMonth(date: string, month: number): string {\n return this.toISO(setMonth(this.toDate(date), month));\n }\n\n /**\n */\n setHour(date: string, hour: number): string {\n return this.toISO(setHours(this.toDate(date), hour));\n }\n\n /**\n */\n setMinute(date: string, minute: number): string {\n return this.toISO(setMinutes(this.toDate(date), minute));\n }\n\n /**\n */\n setSecond(date: string, second: number): string {\n return this.toISO(setSeconds(this.toDate(date), second));\n }\n\n /**\n */\n setMilliseconds(date: string, milliseconds: number): string {\n return this.toISO(setMilliseconds(this.toDate(date), milliseconds));\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number\n ): string {\n return this.toISO(\n set(this.toDate(date), {\n hours,\n minutes,\n seconds,\n milliseconds,\n })\n );\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeUtil.js","names":["BaseDateTimeUtil","isoFormat","_isoFormat","locale","getCookie","nl","enGB","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","date","inputFormat","getOptions","parse","Date","targetFormat","parsedDate","toDate","isValid","format","getLocale","sourceFormat","toISO","realDate","formattedValue","isOutsideRange","isBefore","isAfter","replace","toUpperCase","inputDate","afterISODate","isSame","beforeISODate","compareDate","getTime","isSameDay","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","amount","addSeconds","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subSeconds","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","year","setYear","month","setMonth","hour","setHours","minute","setMinutes","second","setSeconds","milliseconds","setMilliseconds","hours","minutes","seconds","set","DateUtil","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n parse,\n format,\n isValid,\n isAfter,\n isBefore,\n isSameDay,\n addSeconds,\n addMinutes,\n addHours,\n addDays,\n addWeeks,\n addMonths,\n addYears,\n subSeconds,\n subMinutes,\n subHours,\n subDays,\n subWeeks,\n subMonths,\n subYears,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n setMilliseconds,\n setSeconds,\n setMinutes,\n setHours,\n setMonth,\n setYear,\n set,\n} from \"date-fns\";\nimport { nl, enGB } from \"date-fns/locale\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport {\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n DEFAULT_WEEK_STARTS_ON,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n} from \"../../constants\";\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const locale = getCookie(\"locale\") || \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n // returns the options defined in settings\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n toDate(date: string, inputFormat: string = this._isoFormat): Date {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(date: string | Date, targetFormat: string): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(date: string | Date, sourceFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate =\n typeof date === \"string\" ? this.toDate(date, sourceFormat) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, this._isoFormat, {\n weekStartsOn,\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n /**\n */\n convertFormat(sourceFormat: string): string {\n return sourceFormat ? sourceFormat : this._isoFormat;\n }\n\n /**\n * VALIDATION\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const { weekStartsOn } = this.getOptions();\n\n const realDate = this.toDate(date, sourceFormat);\n if (isValid(realDate)) {\n const formattedValue = format(realDate, sourceFormat, {\n weekStartsOn,\n });\n\n const isOutsideRange =\n isBefore(realDate, new Date(1000, 1, 1)) ||\n isAfter(realDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n return false;\n }\n\n /**\n */\n isValid(date: string, inputFormat: string = this._isoFormat): boolean {\n return isValid(this.toDate(date, inputFormat));\n }\n\n /**\n */\n isAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string,\n compareDate: string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat)\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * CALCULATIONS\n */\n addSeconds(date: string, amount: number): string {\n return this.toISO(addSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n addMinutes(date: string, amount: number): string {\n return this.toISO(addMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n addHours(date: string, amount: number): string {\n return this.toISO(addHours(this.toDate(date), amount));\n }\n\n /**\n */\n addDays(date: string, amount: number): string {\n return this.toISO(addDays(this.toDate(date), amount));\n }\n\n /**\n */\n addWeeks(date: string, amount: number): string {\n return this.toISO(addWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n addMonths(date: string, amount: number): string {\n return this.toISO(addMonths(this.toDate(date), amount));\n }\n\n /**\n */\n addYears(date: string, amount: number): string {\n return this.toISO(addYears(this.toDate(date), amount));\n }\n\n /**\n */\n subtractSeconds(date: string, amount: number): string {\n return this.toISO(subSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMinutes(date: string, amount: number): string {\n return this.toISO(subMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n subtractHours(date: string, amount: number): string {\n return this.toISO(subHours(this.toDate(date), amount));\n }\n\n /**\n */\n subtractDays(date: string, amount: number): string {\n return this.toISO(subDays(this.toDate(date), amount));\n }\n\n /**\n */\n subtractWeeks(date: string, amount: number): string {\n return this.toISO(subWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMonths(date: string, amount: number): string {\n return this.toISO(subMonths(this.toDate(date), amount));\n }\n\n /**\n */\n subtractYears(date: string, amount: number): string {\n return this.toISO(subYears(this.toDate(date), amount));\n }\n\n /**\n * GETTERS\n */\n startOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(startOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n endOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(endOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n startOfWeek(date: string, inputFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n return this.toISO(\n startOfWeek(this.toDate(date, inputFormat), {\n weekStartsOn,\n })\n );\n }\n\n /**\n */\n getHours(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getHours(parsedDate);\n }\n\n /**\n */\n getMinutes(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getMinutes(parsedDate);\n }\n\n /**\n */\n getWeek(date: string): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return getWeek(this.toDate(date), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n * SETTERS\n */\n setYear(date: string, year: number): string {\n return this.toISO(setYear(this.toDate(date), year));\n }\n\n /**\n */\n setMonth(date: string, month: number): string {\n return this.toISO(setMonth(this.toDate(date), month));\n }\n\n /**\n */\n setHour(date: string, hour: number): string {\n return this.toISO(setHours(this.toDate(date), hour));\n }\n\n /**\n */\n setMinute(date: string, minute: number): string {\n return this.toISO(setMinutes(this.toDate(date), minute));\n }\n\n /**\n */\n setSecond(date: string, second: number): string {\n return this.toISO(setSeconds(this.toDate(date), second));\n }\n\n /**\n */\n setMilliseconds(date: string, milliseconds: number): string {\n return this.toISO(setMilliseconds(this.toDate(date), milliseconds));\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number\n ): string {\n return this.toISO(\n set(this.toDate(date), {\n hours,\n minutes,\n seconds,\n milliseconds,\n })\n );\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"universalFetch.js","names":["IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","resolve","reject","check","Cache","getItem","cachedItem","Error","setTimeout","browserFetch","args","USE_CACHE","cache","createResourceKey","hasItem","cacheItem","addItem","then","response","universalFetch","locale","headers","includeContext","url","IS_SYNC"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../helpers/objects\";\n\nimport { IS_SYNC, USE_CACHE } from \"../../constants/Constants\";\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = 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) => {\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) => {\n if (USE_CACHE && 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 (USE_CACHE && 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 */\nexport default function universalFetch(\n args: RequestOptions\n): Promise<CachedResponse> | Promise<?(string | { ... })> {\n // Set locale as Accept-Language header\n if (args.locale) {\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"],"mappings":";;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAMA,IAAMA,WAAW,GAAG,aAApB;AAEA;AACA;AACA;AACA;;AACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAc;EACtC,IAAIC,OAAO,GAAG,IAAd;EACA,IAAMC,aAAa,GAAG,GAAtB;EAEA,OAAO,qBAA4B,UAACC,OAAD,EAAUC,MAAV,EAAqB;IACtD,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAM;MAClB,IAAIC,eAAMC,OAAN,CAAcP,QAAd,MAA4BF,WAAhC,EAA6C;QAC3C,IAAMU,UAAU,GAAGF,eAAMC,OAAN,CAAcP,QAAd,CAAnB;;QACA,IAAIQ,UAAU,IAAI,IAAlB,EAAwB;UACtBL,OAAO,CAACK,UAAD,CAAP;QACD,CAFD,MAEO;UACLJ,MAAM,CAAC,IAAIK,KAAJ,CAAU,mBAAV,CAAD,CAAN;QACD;MACF,CAPD,MAOO,IAAIR,OAAO,IAAI,CAAf,EAAkB;QACvBG,MAAM,CAAC,IAAIK,KAAJ,CAAU,mBAAV,CAAD,CAAN;MACD,CAFM,MAEA;QACLR,OAAO,GAAGA,OAAO,GAAGC,aAApB;QACAQ,UAAU,CAACL,KAAD,EAAQH,aAAR,CAAV;MACD;IACF,CAdD;;IAgBAQ,UAAU,CAACL,KAAD,EAAQH,aAAR,CAAV;EACD,CAlBM,CAAP;AAmBD,CAvBD;AAyBA;AACA;AACA;;;AACA,IAAMS,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAU;EAC7B,IAAIC,wBAAaD,IAAI,CAACE,KAAtB,EAA6B;IAC3B,IAAMd,QAAQ,GAAGM,eAAMS,iBAAN,CAAwBH,IAAxB,CAAjB;;IAEA,IAAIN,eAAMU,OAAN,CAAchB,QAAd,CAAJ,EAA6B;MAC3B,IAAMiB,SAAS,GAAGX,eAAMC,OAAN,CAAcP,QAAd,CAAlB;;MAEA,IAAIiB,SAAS,IAAI,IAAjB,EAAuB;QACrB,IAAIA,SAAS,KAAKnB,WAAlB,EAA+B;UAC7B,OAAOC,iBAAiB,CAACC,QAAD,CAAxB;QACD,CAFD,MAEO,IAAI,4BAAciB,SAAd,CAAJ,EAA8B;UACnC,OAAO,iBAAQd,OAAR,CAAgBc,SAAhB,CAAP;QACD;MACF;IACF;;IAEDX,eAAMY,OAAN,CAAclB,QAAd,EAAwBF,WAAxB;EACD;;EAED,OAAO,kBAAIc,IAAJ,EAAUO,IAAV,CAAe,UAACC,QAAD,EAAc;IAClC,IAAIP,wBAAaD,IAAI,CAACE,KAAtB,EAA6B;MAC3B,IAAMd,SAAQ,GAAGM,eAAMS,iBAAN,CAAwBH,IAAxB,CAAjB;;MAEAN,eAAMY,OAAN,CAAclB,SAAd,EAAwBoB,QAAxB;IACD;;IAED,OAAOA,QAAP;EACD,CARM,CAAP;AASD,CA5BD;AA8BA;AACA;AACA;;;AACe,SAASC,cAAT,CACbT,IADa,EAE2C;EACxD;EACA,IAAIA,IAAI,CAACU,MAAT,EAAiB;IACfV,IAAI,CAACW,OAAL,GAAe;MACb,mBAAmBX,IAAI,CAACU;IADX,CAAf;EAGD;;EAED,IAAIV,IAAI,CAACY,cAAT,EAAyB;IACvBZ,IAAI,CAACa,GAAL,aAAcb,IAAI,CAACa,GAAnB;EACD,CAVuD,CAYxD;;;EACA,IAAIC,kBAAJ,EAAa;IACX,OAAO,0BAAYd,IAAZ,CAAP;EACD;;EAED,OAAOD,YAAY,CAACC,IAAD,CAAnB;AACD"}
1
+ {"version":3,"file":"universalFetch.js","names":["IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","resolve","reject","check","Cache","getItem","cachedItem","Error","setTimeout","browserFetch","args","USE_CACHE","cache","createResourceKey","hasItem","cacheItem","isPlainObject","addItem","xhr","then","response","universalFetch","locale","headers","includeContext","url","IS_SYNC","serverFetch"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../helpers/objects\";\n\nimport { IS_SYNC, USE_CACHE } from \"../../constants/Constants\";\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = 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) => {\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) => {\n if (USE_CACHE && 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 (USE_CACHE && 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 */\nexport default function universalFetch(\n args: RequestOptions\n): Promise<CachedResponse> | Promise<?(string | { ... })> {\n // Set locale as Accept-Language header\n if (args.locale) {\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"],"mappings":";;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAMA,IAAMA,WAAW,GAAG,aAApB;AAEA;AACA;AACA;AACA;;AACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAc;EACtC,IAAIC,OAAO,GAAG,IAAd;EACA,IAAMC,aAAa,GAAG,GAAtB;EAEA,OAAO,qBAA4B,UAACC,OAAD,EAAUC,MAAV,EAAqB;IACtD,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAM;MAClB,IAAIC,cAAA,CAAMC,OAAN,CAAcP,QAAd,MAA4BF,WAAhC,EAA6C;QAC3C,IAAMU,UAAU,GAAGF,cAAA,CAAMC,OAAN,CAAcP,QAAd,CAAnB;;QACA,IAAIQ,UAAU,IAAI,IAAlB,EAAwB;UACtBL,OAAO,CAACK,UAAD,CAAP;QACD,CAFD,MAEO;UACLJ,MAAM,CAAC,IAAIK,KAAJ,CAAU,mBAAV,CAAD,CAAN;QACD;MACF,CAPD,MAOO,IAAIR,OAAO,IAAI,CAAf,EAAkB;QACvBG,MAAM,CAAC,IAAIK,KAAJ,CAAU,mBAAV,CAAD,CAAN;MACD,CAFM,MAEA;QACLR,OAAO,GAAGA,OAAO,GAAGC,aAApB;QACAQ,UAAU,CAACL,KAAD,EAAQH,aAAR,CAAV;MACD;IACF,CAdD;;IAgBAQ,UAAU,CAACL,KAAD,EAAQH,aAAR,CAAV;EACD,CAlBM,CAAP;AAmBD,CAvBD;AAyBA;AACA;AACA;;;AACA,IAAMS,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAU;EAC7B,IAAIC,oBAAA,IAAaD,IAAI,CAACE,KAAtB,EAA6B;IAC3B,IAAMd,QAAQ,GAAGM,cAAA,CAAMS,iBAAN,CAAwBH,IAAxB,CAAjB;;IAEA,IAAIN,cAAA,CAAMU,OAAN,CAAchB,QAAd,CAAJ,EAA6B;MAC3B,IAAMiB,SAAS,GAAGX,cAAA,CAAMC,OAAN,CAAcP,QAAd,CAAlB;;MAEA,IAAIiB,SAAS,IAAI,IAAjB,EAAuB;QACrB,IAAIA,SAAS,KAAKnB,WAAlB,EAA+B;UAC7B,OAAOC,iBAAiB,CAACC,QAAD,CAAxB;QACD,CAFD,MAEO,IAAI,IAAAkB,sBAAA,EAAcD,SAAd,CAAJ,EAA8B;UACnC,OAAO,iBAAQd,OAAR,CAAgBc,SAAhB,CAAP;QACD;MACF;IACF;;IAEDX,cAAA,CAAMa,OAAN,CAAcnB,QAAd,EAAwBF,WAAxB;EACD;;EAED,OAAO,IAAAsB,YAAA,EAAIR,IAAJ,EAAUS,IAAV,CAAe,UAACC,QAAD,EAAc;IAClC,IAAIT,oBAAA,IAAaD,IAAI,CAACE,KAAtB,EAA6B;MAC3B,IAAMd,SAAQ,GAAGM,cAAA,CAAMS,iBAAN,CAAwBH,IAAxB,CAAjB;;MAEAN,cAAA,CAAMa,OAAN,CAAcnB,SAAd,EAAwBsB,QAAxB;IACD;;IAED,OAAOA,QAAP;EACD,CARM,CAAP;AASD,CA5BD;AA8BA;AACA;AACA;;;AACe,SAASC,cAAT,CACbX,IADa,EAE2C;EACxD;EACA,IAAIA,IAAI,CAACY,MAAT,EAAiB;IACfZ,IAAI,CAACa,OAAL,GAAe;MACb,mBAAmBb,IAAI,CAACY;IADX,CAAf;EAGD;;EAED,IAAIZ,IAAI,CAACc,cAAT,EAAyB;IACvBd,IAAI,CAACe,GAAL,aAAcf,IAAI,CAACe,GAAnB;EACD,CAVuD,CAYxD;;;EACA,IAAIC,kBAAJ,EAAa;IACX,OAAO,IAAAC,oBAAA,EAAYjB,IAAZ,CAAP;EACD;;EAED,OAAOD,YAAY,CAACC,IAAD,CAAnB;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"xhr.js","names":["NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","options","_options","_attempts","_xmlhttp","xmlhttp","attempts","url","params","aUrl","split","data","method","HTTP_METHODS","GET","timeout","responseType","onProgress","events","baseHeaders","Accept","headers","reject","TimeoutException","responseJSON","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","response","getResponseHeader","JSON","parse","error","JsonParseException","resolve","getResponse","errorHandler","forEach","eventType","addEventListener","timeoutHandler","responseHandler","eventName","open","Cache","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","send","stringData","XMLHttpRequest","setEventListeners","openConnection","setBasicAuthentication","setCustomHeaders","setOtherOptions","sendData","setXMLHttpRequest","fetch","validateInputArguments","args","IllegalArgumentException","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() {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options() {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts() {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url() {\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() {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data() {\n return this.options.data || null;\n }\n\n /**\n */\n get method() {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout() {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType() {\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() {\n return this.options.events || {};\n }\n\n /**\n */\n get headers() {\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\": \"en\",\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) {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject, responseJSON = null) {\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() {\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, reject) {\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, reject) {\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 this.xmlhttp.withCredentials = true;\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) {\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 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() {\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() {\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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"}
1
+ {"version":3,"file":"xhr.js","names":["NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","options","_options","_attempts","_xmlhttp","xmlhttp","attempts","url","params","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","baseHeaders","Accept","headers","reject","TimeoutException","responseJSON","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","resolve","getResponse","has","errorHandler","forEach","eventType","addEventListener","timeoutHandler","responseHandler","eventName","open","Cache","hasItem","withCredentials","basicToken","getItem","setRequestHeader","headerName","send","stringData","XMLHttpRequest","setEventListeners","openConnection","setBasicAuthentication","setCustomHeaders","setOtherOptions","sendData","setXMLHttpRequest","fetch","validateInputArguments","args","IllegalArgumentException","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() {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options() {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts() {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url() {\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() {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data() {\n return this.options.data || null;\n }\n\n /**\n */\n get method() {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout() {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType() {\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() {\n return this.options.events || {};\n }\n\n /**\n */\n get headers() {\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\": \"en\",\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) {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject, responseJSON = null) {\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() {\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, reject) {\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, reject) {\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 this.xmlhttp.withCredentials = true;\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) {\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 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() {\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() {\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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"}
@@ -25,6 +25,7 @@ var resourceExists = function resourceExists(url) {
25
25
  xhr.open("HEAD", fullUrl, false);
26
26
  xhr.setRequestHeader("Accept", "application/json");
27
27
  xhr.setRequestHeader("Content-Type", "application/json");
28
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
28
29
  xhr.send();
29
30
  return xhr.status !== 404;
30
31
  };
@@ -45,6 +46,7 @@ var resourceRedirectsToSecureLogin = function resourceRedirectsToSecureLogin(url
45
46
  xhr.open("HEAD", fullUrl, false);
46
47
  xhr.setRequestHeader("Accept", "application/json");
47
48
  xhr.setRequestHeader("Content-Type", "application/json");
49
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
48
50
  xhr.send();
49
51
  var responseURL = (_xhr$responseURL = xhr.responseURL) !== null && _xhr$responseURL !== void 0 ? _xhr$responseURL : "";
50
52
  return xhr.status === 400 && (0, _endsWith.default)(responseURL).call(responseURL, "/secureLogin");
@@ -17,6 +17,8 @@ export const resourceExists = (url: string | Href): boolean => {
17
17
  xhr.open("HEAD", fullUrl, false);
18
18
  xhr.setRequestHeader("Accept", "application/json");
19
19
  xhr.setRequestHeader("Content-Type", "application/json");
20
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
21
+
20
22
  xhr.send();
21
23
 
22
24
  return xhr.status !== 404;
@@ -34,6 +36,7 @@ export const resourceRedirectsToSecureLogin = (url: string | Href): boolean => {
34
36
  xhr.open("HEAD", fullUrl, false);
35
37
  xhr.setRequestHeader("Accept", "application/json");
36
38
  xhr.setRequestHeader("Content-Type", "application/json");
39
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
37
40
  xhr.send();
38
41
 
39
42
  const responseURL = xhr.responseURL ?? "";
@@ -1 +1 @@
1
- {"version":3,"file":"checkResource.js","names":["resourceExists","url","fullUrl","Href","absolutehref","xhr","XMLHttpRequest","open","setRequestHeader","send","status","resourceRedirectsToSecureLogin","responseURL"],"sources":["../../../src/utils/helpers/checkResource.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\n/**\n * Checks if a given url to a modular ui resource exists using a HEAD request to the resource (synchronous)\n * When the resource returns a 404, the resource does not exists and the method returns false\n *\n * @param url\n * @returns {boolean}\n */\nexport const resourceExists = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n // const fullUrl = `${BASE}/${url}`.replace(/\\/\\//g, \"/\");\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.send();\n\n return xhr.status !== 404;\n};\n\n/**\n * Indicates if a request to the given url resuls in a redirect to /secureRedirect\n * @param url\n * @returns {boolean}\n */\nexport const resourceRedirectsToSecureLogin = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.send();\n\n const responseURL = xhr.responseURL ?? \"\";\n\n return xhr.status === 400 && responseURL.endsWith(\"/secureLogin\");\n};\n"],"mappings":";;;;;;;;;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD,EAAiC;EAC7D,IAAMC,OAAO,GAAG,IAAIC,aAAJ,CAASF,GAAT,EAAcG,YAA9B,CAD6D,CAG7D;;EAEA,IAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;EACAD,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBL,OAAjB,EAA0B,KAA1B;EACAG,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;EACAH,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;EACAH,GAAG,CAACI,IAAJ;EAEA,OAAOJ,GAAG,CAACK,MAAJ,KAAe,GAAtB;AACD,CAZM;AAcP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACV,GAAD,EAAiC;EAAA;;EAC7E,IAAMC,OAAO,GAAG,IAAIC,aAAJ,CAASF,GAAT,EAAcG,YAA9B;EAEA,IAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;EACAD,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBL,OAAjB,EAA0B,KAA1B;EACAG,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;EACAH,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;EACAH,GAAG,CAACI,IAAJ;EAEA,IAAMG,WAAW,uBAAGP,GAAG,CAACO,WAAP,+DAAsB,EAAvC;EAEA,OAAOP,GAAG,CAACK,MAAJ,KAAe,GAAf,IAAsB,uBAAAE,WAAW,MAAX,CAAAA,WAAW,EAAU,cAAV,CAAxC;AACD,CAZM"}
1
+ {"version":3,"file":"checkResource.js","names":["resourceExists","url","fullUrl","Href","absolutehref","xhr","XMLHttpRequest","open","setRequestHeader","send","status","resourceRedirectsToSecureLogin","responseURL"],"sources":["../../../src/utils/helpers/checkResource.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\n/**\n * Checks if a given url to a modular ui resource exists using a HEAD request to the resource (synchronous)\n * When the resource returns a 404, the resource does not exists and the method returns false\n *\n * @param url\n * @returns {boolean}\n */\nexport const resourceExists = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n // const fullUrl = `${BASE}/${url}`.replace(/\\/\\//g, \"/\");\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n\n xhr.send();\n\n return xhr.status !== 404;\n};\n\n/**\n * Indicates if a request to the given url resuls in a redirect to /secureRedirect\n * @param url\n * @returns {boolean}\n */\nexport const resourceRedirectsToSecureLogin = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n xhr.send();\n\n const responseURL = xhr.responseURL ?? \"\";\n\n return xhr.status === 400 && responseURL.endsWith(\"/secureLogin\");\n};\n"],"mappings":";;;;;;;;;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD,EAAiC;EAC7D,IAAMC,OAAO,GAAG,IAAIC,aAAJ,CAASF,GAAT,EAAcG,YAA9B,CAD6D,CAG7D;;EAEA,IAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;EACAD,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBL,OAAjB,EAA0B,KAA1B;EACAG,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;EACAH,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;EACAH,GAAG,CAACG,gBAAJ,CAAqB,kBAArB,EAAyC,gBAAzC;EAEAH,GAAG,CAACI,IAAJ;EAEA,OAAOJ,GAAG,CAACK,MAAJ,KAAe,GAAtB;AACD,CAdM;AAgBP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACV,GAAD,EAAiC;EAAA;;EAC7E,IAAMC,OAAO,GAAG,IAAIC,aAAJ,CAASF,GAAT,EAAcG,YAA9B;EAEA,IAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;EACAD,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBL,OAAjB,EAA0B,KAA1B;EACAG,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;EACAH,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;EACAH,GAAG,CAACG,gBAAJ,CAAqB,kBAArB,EAAyC,gBAAzC;EACAH,GAAG,CAACI,IAAJ;EAEA,IAAMG,WAAW,uBAAGP,GAAG,CAACO,WAAP,+DAAsB,EAAvC;EAEA,OAAOP,GAAG,CAACK,MAAJ,KAAe,GAAf,IAAsB,uBAAAE,WAAW,MAAX,CAAAA,WAAW,EAAU,cAAV,CAAxC;AACD,CAbM"}
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","names":["isPlainObject","value","has","obj","propName","get","path","defaultValue","String","split","reduce","acc","v"],"sources":["../../../src/utils/helpers/objects.js"],"sourcesContent":["// @flow\nimport _has from \"lodash/has\";\nimport _isPlainObject from \"lodash/isPlainObject\";\n\n/**\n */\nexport const isPlainObject = (value: any): boolean => _isPlainObject(value);\n\n/**\n */\nexport const has = (obj: any, propName: string): boolean => {\n if (!isPlainObject(obj)) {\n return false;\n }\n\n return _has(obj, propName);\n};\n\n/**\n * Retrieve property of an object\n * When path is only one deep better use optional chaining\n */\nexport const get = (obj: { ... }, path: string, defaultValue?: any): any =>\n String(path)\n .split(\".\")\n .reduce((acc, v) => {\n if (typeof acc === \"object\") {\n return acc[v] ?? defaultValue;\n }\n return defaultValue;\n }, obj);\n"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;EAAA,OAAyB,6BAAeA,KAAf,CAAzB;AAAA,CAAtB;AAEP;AACA;;;;;AACO,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,GAAD,EAAWC,QAAX,EAAyC;EAC1D,IAAI,CAACJ,aAAa,CAACG,GAAD,CAAlB,EAAyB;IACvB,OAAO,KAAP;EACD;;EAED,OAAO,mBAAKA,GAAL,EAAUC,QAAV,CAAP;AACD,CANM;AAQP;AACA;AACA;AACA;;;;;AACO,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACF,GAAD,EAAeG,IAAf,EAA6BC,YAA7B;EAAA,OACjBC,MAAM,CAACF,IAAD,CAAN,CACGG,KADH,CACS,GADT,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMC,CAAN,EAAY;IAClB,IAAI,sBAAOD,GAAP,MAAe,QAAnB,EAA6B;MAAA;;MAC3B,iBAAOA,GAAG,CAACC,CAAD,CAAV,2CAAiBL,YAAjB;IACD;;IACD,OAAOA,YAAP;EACD,CAPH,EAOKJ,GAPL,CADiB;AAAA,CAAZ"}
1
+ {"version":3,"file":"objects.js","names":["isPlainObject","value","_isPlainObject","has","obj","propName","_has","get","path","defaultValue","String","split","reduce","acc","v"],"sources":["../../../src/utils/helpers/objects.js"],"sourcesContent":["// @flow\nimport _has from \"lodash/has\";\nimport _isPlainObject from \"lodash/isPlainObject\";\n\n/**\n */\nexport const isPlainObject = (value: any): boolean => _isPlainObject(value);\n\n/**\n */\nexport const has = (obj: any, propName: string): boolean => {\n if (!isPlainObject(obj)) {\n return false;\n }\n\n return _has(obj, propName);\n};\n\n/**\n * Retrieve property of an object\n * When path is only one deep better use optional chaining\n */\nexport const get = (obj: { ... }, path: string, defaultValue?: any): any =>\n String(path)\n .split(\".\")\n .reduce((acc, v) => {\n if (typeof acc === \"object\") {\n return acc[v] ?? defaultValue;\n }\n return defaultValue;\n }, obj);\n"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;EAAA,OAAyB,IAAAC,uBAAA,EAAeD,KAAf,CAAzB;AAAA,CAAtB;AAEP;AACA;;;;;AACO,IAAME,GAAG,GAAG,SAANA,GAAM,CAACC,GAAD,EAAWC,QAAX,EAAyC;EAC1D,IAAI,CAACL,aAAa,CAACI,GAAD,CAAlB,EAAyB;IACvB,OAAO,KAAP;EACD;;EAED,OAAO,IAAAE,aAAA,EAAKF,GAAL,EAAUC,QAAV,CAAP;AACD,CANM;AAQP;AACA;AACA;AACA;;;;;AACO,IAAME,GAAG,GAAG,SAANA,GAAM,CAACH,GAAD,EAAeI,IAAf,EAA6BC,YAA7B;EAAA,OACjBC,MAAM,CAACF,IAAD,CAAN,CACGG,KADH,CACS,GADT,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMC,CAAN,EAAY;IAClB,IAAI,sBAAOD,GAAP,MAAe,QAAnB,EAA6B;MAAA;;MAC3B,iBAAOA,GAAG,CAACC,CAAD,CAAV,2CAAiBL,YAAjB;IACD;;IACD,OAAOA,YAAP;EACD,CAPH,EAOKL,GAPL,CADiB;AAAA,CAAZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeHtml.js","names":["properEntityEncoding","html","escapedGt","replace","escapedLt","properEntities","he","encode","decode","decimal","unescapedGt","removeUnwantedHtml","options","allowedTags","IllegalArgumentException","correctEntityHtml","htmlWithoutAttributes","htmlWithCorrectBR","Array","isArray","join","pattern","regex","RegExp"],"sources":["../../../src/utils/helpers/sanitizeHtml.js"],"sourcesContent":["// @flow\nimport he from \"he\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\ntype removeUnwantedHtmlOptions = {\n allowedTags?: Array<string>,\n};\n\n/**\n * Translates html entities to their correct decimal equivalent\n * When path is only one deep better use optional chaining\n */\nconst properEntityEncoding = (html) => {\n const escapedGt = html.replace(/</g, \"[\");\n const escapedLt = escapedGt.replace(/>/g, \"]\");\n\n const properEntities = he.encode(he.decode(escapedLt), {\n decimal: true,\n });\n\n const unescapedGt = properEntities.replace(/\\[/g, \"<\");\n\n return unescapedGt.replace(/]/g, \">\");\n};\n\n/**\n * removes unwanted html, this might result in incorrect html, as it removes all html that we don't except,\n * like <b style=\"font-weight: 400\">bold</b> will result in bold</b>\n */\nconst removeUnwantedHtml = (\n html: string,\n options: removeUnwantedHtmlOptions = {\n allowedTags: [\"p\", \"br\", \"b\", \"i\", \"u\", \"strike\"],\n }\n): string => {\n if (typeof html !== \"string\") {\n throw new IllegalArgumentException(\"sanitizeHTML method expects a string\");\n }\n\n const correctEntityHtml = properEntityEncoding(html);\n\n // remove attributes from html elements\n const htmlWithoutAttributes = correctEntityHtml.replace(\n /<(\\w+)(.|[\\r\\n])*?>/gi,\n \"<$1>\"\n );\n\n const htmlWithCorrectBR = htmlWithoutAttributes.replace(\n /<br\\s*>/gi,\n \"<br />\"\n );\n\n // remove not allowed tags\n const allowedTags = Array.isArray(options.allowedTags)\n ? options.allowedTags.join(\"|\")\n : \"\";\n const pattern = `<(?!\\\\/?(${allowedTags})(>|\\\\s\\\\/))[^<]+?>`;\n const regex = new RegExp(pattern, \"gi\");\n\n return htmlWithCorrectBR.replace(regex, \"\");\n};\n\nexport { removeUnwantedHtml };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAMA;AACA;AACA;AACA;AACA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,IAAD,EAAU;EACrC,IAAMC,SAAS,GAAGD,IAAI,CAACE,OAAL,CAAa,IAAb,EAAmB,GAAnB,CAAlB;EACA,IAAMC,SAAS,GAAGF,SAAS,CAACC,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAlB;;EAEA,IAAME,cAAc,GAAGC,YAAGC,MAAH,CAAUD,YAAGE,MAAH,CAAUJ,SAAV,CAAV,EAAgC;IACrDK,OAAO,EAAE;EAD4C,CAAhC,CAAvB;;EAIA,IAAMC,WAAW,GAAGL,cAAc,CAACF,OAAf,CAAuB,KAAvB,EAA8B,GAA9B,CAApB;EAEA,OAAOO,WAAW,CAACP,OAAZ,CAAoB,IAApB,EAA0B,GAA1B,CAAP;AACD,CAXD;AAaA;AACA;AACA;AACA;;;AACA,IAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBV,IADyB,EAKd;EAAA,IAHXW,OAGW,uEAH0B;IACnCC,WAAW,EAAE,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,EAAiB,GAAjB,EAAsB,GAAtB,EAA2B,QAA3B;EADsB,CAG1B;;EACX,IAAI,OAAOZ,IAAP,KAAgB,QAApB,EAA8B;IAC5B,MAAM,IAAIa,oCAAJ,CAA6B,sCAA7B,CAAN;EACD;;EAED,IAAMC,iBAAiB,GAAGf,oBAAoB,CAACC,IAAD,CAA9C,CALW,CAOX;;EACA,IAAMe,qBAAqB,GAAGD,iBAAiB,CAACZ,OAAlB,CAC5B,uBAD4B,EAE5B,MAF4B,CAA9B;EAKA,IAAMc,iBAAiB,GAAGD,qBAAqB,CAACb,OAAtB,CACxB,WADwB,EAExB,QAFwB,CAA1B,CAbW,CAkBX;;EACA,IAAMU,WAAW,GAAGK,KAAK,CAACC,OAAN,CAAcP,OAAO,CAACC,WAAtB,IAChBD,OAAO,CAACC,WAAR,CAAoBO,IAApB,CAAyB,GAAzB,CADgB,GAEhB,EAFJ;EAGA,IAAMC,OAAO,sBAAeR,WAAf,wBAAb;EACA,IAAMS,KAAK,GAAG,IAAIC,MAAJ,CAAWF,OAAX,EAAoB,IAApB,CAAd;EAEA,OAAOJ,iBAAiB,CAACd,OAAlB,CAA0BmB,KAA1B,EAAiC,EAAjC,CAAP;AACD,CA/BD"}
1
+ {"version":3,"file":"sanitizeHtml.js","names":["properEntityEncoding","html","escapedGt","replace","escapedLt","properEntities","he","encode","decode","decimal","unescapedGt","removeUnwantedHtml","options","allowedTags","IllegalArgumentException","correctEntityHtml","htmlWithoutAttributes","htmlWithCorrectBR","Array","isArray","join","pattern","regex","RegExp"],"sources":["../../../src/utils/helpers/sanitizeHtml.js"],"sourcesContent":["// @flow\nimport he from \"he\";\n\nimport { IllegalArgumentException } from \"../../exceptions\";\n\ntype removeUnwantedHtmlOptions = {\n allowedTags?: Array<string>,\n};\n\n/**\n * Translates html entities to their correct decimal equivalent\n * When path is only one deep better use optional chaining\n */\nconst properEntityEncoding = (html) => {\n const escapedGt = html.replace(/</g, \"[\");\n const escapedLt = escapedGt.replace(/>/g, \"]\");\n\n const properEntities = he.encode(he.decode(escapedLt), {\n decimal: true,\n });\n\n const unescapedGt = properEntities.replace(/\\[/g, \"<\");\n\n return unescapedGt.replace(/]/g, \">\");\n};\n\n/**\n * removes unwanted html, this might result in incorrect html, as it removes all html that we don't except,\n * like <b style=\"font-weight: 400\">bold</b> will result in bold</b>\n */\nconst removeUnwantedHtml = (\n html: string,\n options: removeUnwantedHtmlOptions = {\n allowedTags: [\"p\", \"br\", \"b\", \"i\", \"u\", \"strike\"],\n }\n): string => {\n if (typeof html !== \"string\") {\n throw new IllegalArgumentException(\"sanitizeHTML method expects a string\");\n }\n\n const correctEntityHtml = properEntityEncoding(html);\n\n // remove attributes from html elements\n const htmlWithoutAttributes = correctEntityHtml.replace(\n /<(\\w+)(.|[\\r\\n])*?>/gi,\n \"<$1>\"\n );\n\n const htmlWithCorrectBR = htmlWithoutAttributes.replace(\n /<br\\s*>/gi,\n \"<br />\"\n );\n\n // remove not allowed tags\n const allowedTags = Array.isArray(options.allowedTags)\n ? options.allowedTags.join(\"|\")\n : \"\";\n const pattern = `<(?!\\\\/?(${allowedTags})(>|\\\\s\\\\/))[^<]+?>`;\n const regex = new RegExp(pattern, \"gi\");\n\n return htmlWithCorrectBR.replace(regex, \"\");\n};\n\nexport { removeUnwantedHtml };\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAMA;AACA;AACA;AACA;AACA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,IAAD,EAAU;EACrC,IAAMC,SAAS,GAAGD,IAAI,CAACE,OAAL,CAAa,IAAb,EAAmB,GAAnB,CAAlB;EACA,IAAMC,SAAS,GAAGF,SAAS,CAACC,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAlB;;EAEA,IAAME,cAAc,GAAGC,WAAA,CAAGC,MAAH,CAAUD,WAAA,CAAGE,MAAH,CAAUJ,SAAV,CAAV,EAAgC;IACrDK,OAAO,EAAE;EAD4C,CAAhC,CAAvB;;EAIA,IAAMC,WAAW,GAAGL,cAAc,CAACF,OAAf,CAAuB,KAAvB,EAA8B,GAA9B,CAApB;EAEA,OAAOO,WAAW,CAACP,OAAZ,CAAoB,IAApB,EAA0B,GAA1B,CAAP;AACD,CAXD;AAaA;AACA;AACA;AACA;;;AACA,IAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBV,IADyB,EAKd;EAAA,IAHXW,OAGW,uEAH0B;IACnCC,WAAW,EAAE,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,EAAiB,GAAjB,EAAsB,GAAtB,EAA2B,QAA3B;EADsB,CAG1B;;EACX,IAAI,OAAOZ,IAAP,KAAgB,QAApB,EAA8B;IAC5B,MAAM,IAAIa,oCAAJ,CAA6B,sCAA7B,CAAN;EACD;;EAED,IAAMC,iBAAiB,GAAGf,oBAAoB,CAACC,IAAD,CAA9C,CALW,CAOX;;EACA,IAAMe,qBAAqB,GAAGD,iBAAiB,CAACZ,OAAlB,CAC5B,uBAD4B,EAE5B,MAF4B,CAA9B;EAKA,IAAMc,iBAAiB,GAAGD,qBAAqB,CAACb,OAAtB,CACxB,WADwB,EAExB,QAFwB,CAA1B,CAbW,CAkBX;;EACA,IAAMU,WAAW,GAAGK,KAAK,CAACC,OAAN,CAAcP,OAAO,CAACC,WAAtB,IAChBD,OAAO,CAACC,WAAR,CAAoBO,IAApB,CAAyB,GAAzB,CADgB,GAEhB,EAFJ;EAGA,IAAMC,OAAO,sBAAeR,WAAf,wBAAb;EACA,IAAMS,KAAK,GAAG,IAAIC,MAAJ,CAAWF,OAAX,EAAoB,IAApB,CAAd;EAEA,OAAOJ,iBAAiB,CAACd,OAAlB,CAA0BmB,KAA1B,EAAiC,EAAjC,CAAP;AACD,CA/BD"}
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","names":["retrieveText","text","message"],"sources":["../../../src/utils/helpers/text.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"./objects\";\n\n/**\n * Handles text that is in the ApplicationMessage form ({ id: string, message: string, properties: object })\n * @param text\n * @returns {string}\n */\nexport const retrieveText = (\n text:\n | string\n | { id?: string, message: string, properties?: { [key: string]: any } }\n): string => {\n if (typeof text === \"string\") {\n return text;\n }\n\n if (isPlainObject(text) && \"message\" in text) {\n return text.message;\n }\n\n return \"\";\n};\n"],"mappings":";;;;;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAC1BC,IAD0B,EAIf;EACX,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;IAC5B,OAAOA,IAAP;EACD;;EAED,IAAI,4BAAcA,IAAd,KAAuB,aAAaA,IAAxC,EAA8C;IAC5C,OAAOA,IAAI,CAACC,OAAZ;EACD;;EAED,OAAO,EAAP;AACD,CAdM"}
1
+ {"version":3,"file":"text.js","names":["retrieveText","text","isPlainObject","message"],"sources":["../../../src/utils/helpers/text.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"./objects\";\n\n/**\n * Handles text that is in the ApplicationMessage form ({ id: string, message: string, properties: object })\n * @param text\n * @returns {string}\n */\nexport const retrieveText = (\n text:\n | string\n | { id?: string, message: string, properties?: { [key: string]: any } }\n): string => {\n if (typeof text === \"string\") {\n return text;\n }\n\n if (isPlainObject(text) && \"message\" in text) {\n return text.message;\n }\n\n return \"\";\n};\n"],"mappings":";;;;;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAC1BC,IAD0B,EAIf;EACX,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;IAC5B,OAAOA,IAAP;EACD;;EAED,IAAI,IAAAC,sBAAA,EAAcD,IAAd,KAAuB,aAAaA,IAAxC,EAA8C;IAC5C,OAAOA,IAAI,CAACE,OAAZ;EACD;;EAED,OAAO,EAAP;AACD,CAdM"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatValue.js","names":["updateGroupingSeparator","input","groupingSeparator","replace","formatValue","value","format","decimalSeparator","numberValue","IllegalArgumentException","stringValue","formattedValue","DecimalFormat","split","integer","decimal","integerPart"],"sources":["../../../src/utils/number/formatValue.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport DecimalFormat from \"./DecimalFormat\";\nimport { parseNumberToString, parseToNumber } from \"./parseNumbers\";\n\n/**\n * @private\n */\nconst updateGroupingSeparator = (input: string, groupingSeparator: string) => {\n if (groupingSeparator == null) {\n return input;\n }\n\n return input.replace(/,/g, groupingSeparator);\n};\n\n/**\n */\nconst formatValue = (\n value: ?number | ?string,\n format: ?string = \"0\",\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\"\n): string => {\n if (value == null) {\n return \"\";\n }\n\n const numberValue =\n typeof value === \"number\"\n ? value\n : parseToNumber(value, groupingSeparator, decimalSeparator);\n\n if (typeof numberValue !== \"number\") {\n throw new IllegalArgumentException(\n `Not a valid number: ${value} for formatValue`\n );\n }\n\n const stringValue = parseNumberToString(numberValue);\n\n if (format != null) {\n const formattedValue = new DecimalFormat(format).format(stringValue);\n\n const [integer, decimal] = formattedValue.split(\".\");\n\n const integerPart = updateGroupingSeparator(integer, groupingSeparator);\n\n if (decimal) {\n return `${integerPart}${decimalSeparator}${decimal}`;\n }\n\n return integerPart;\n }\n\n return stringValue;\n};\n\nexport default formatValue;\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,KAAD,EAAgBC,iBAAhB,EAA8C;EAC5E,IAAIA,iBAAiB,IAAI,IAAzB,EAA+B;IAC7B,OAAOD,KAAP;EACD;;EAED,OAAOA,KAAK,CAACE,OAAN,CAAc,IAAd,EAAoBD,iBAApB,CAAP;AACD,CAND;AAQA;AACA;;;AACA,IAAME,WAAW,GAAG,SAAdA,WAAc,CAClBC,KADkB,EAKP;EAAA,IAHXC,MAGW,uEAHO,GAGP;EAAA,IAFXJ,iBAEW,uEAFiB,GAEjB;EAAA,IADXK,gBACW,uEADgB,GAChB;;EACX,IAAIF,KAAK,IAAI,IAAb,EAAmB;IACjB,OAAO,EAAP;EACD;;EAED,IAAMG,WAAW,GACf,OAAOH,KAAP,KAAiB,QAAjB,GACIA,KADJ,GAEI,iCAAcA,KAAd,EAAqBH,iBAArB,EAAwCK,gBAAxC,CAHN;;EAKA,IAAI,OAAOC,WAAP,KAAuB,QAA3B,EAAqC;IACnC,MAAM,IAAIC,oCAAJ,+BACmBJ,KADnB,sBAAN;EAGD;;EAED,IAAMK,WAAW,GAAG,uCAAoBF,WAApB,CAApB;;EAEA,IAAIF,MAAM,IAAI,IAAd,EAAoB;IAClB,IAAMK,cAAc,GAAG,IAAIC,sBAAJ,CAAkBN,MAAlB,EAA0BA,MAA1B,CAAiCI,WAAjC,CAAvB;;IAEA,4BAA2BC,cAAc,CAACE,KAAf,CAAqB,GAArB,CAA3B;IAAA;IAAA,IAAOC,OAAP;IAAA,IAAgBC,OAAhB;;IAEA,IAAMC,WAAW,GAAGhB,uBAAuB,CAACc,OAAD,EAAUZ,iBAAV,CAA3C;;IAEA,IAAIa,OAAJ,EAAa;MAAA;;MACX,kFAAUC,WAAV,mBAAwBT,gBAAxB,kBAA2CQ,OAA3C;IACD;;IAED,OAAOC,WAAP;EACD;;EAED,OAAON,WAAP;AACD,CAtCD;;eAwCeN,W"}
1
+ {"version":3,"file":"formatValue.js","names":["updateGroupingSeparator","input","groupingSeparator","replace","formatValue","value","format","decimalSeparator","numberValue","parseToNumber","IllegalArgumentException","stringValue","parseNumberToString","formattedValue","DecimalFormat","split","integer","decimal","integerPart"],"sources":["../../../src/utils/number/formatValue.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport DecimalFormat from \"./DecimalFormat\";\nimport { parseNumberToString, parseToNumber } from \"./parseNumbers\";\n\n/**\n * @private\n */\nconst updateGroupingSeparator = (input: string, groupingSeparator: string) => {\n if (groupingSeparator == null) {\n return input;\n }\n\n return input.replace(/,/g, groupingSeparator);\n};\n\n/**\n */\nconst formatValue = (\n value: ?number | ?string,\n format: ?string = \"0\",\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\"\n): string => {\n if (value == null) {\n return \"\";\n }\n\n const numberValue =\n typeof value === \"number\"\n ? value\n : parseToNumber(value, groupingSeparator, decimalSeparator);\n\n if (typeof numberValue !== \"number\") {\n throw new IllegalArgumentException(\n `Not a valid number: ${value} for formatValue`\n );\n }\n\n const stringValue = parseNumberToString(numberValue);\n\n if (format != null) {\n const formattedValue = new DecimalFormat(format).format(stringValue);\n\n const [integer, decimal] = formattedValue.split(\".\");\n\n const integerPart = updateGroupingSeparator(integer, groupingSeparator);\n\n if (decimal) {\n return `${integerPart}${decimalSeparator}${decimal}`;\n }\n\n return integerPart;\n }\n\n return stringValue;\n};\n\nexport default formatValue;\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,KAAD,EAAgBC,iBAAhB,EAA8C;EAC5E,IAAIA,iBAAiB,IAAI,IAAzB,EAA+B;IAC7B,OAAOD,KAAP;EACD;;EAED,OAAOA,KAAK,CAACE,OAAN,CAAc,IAAd,EAAoBD,iBAApB,CAAP;AACD,CAND;AAQA;AACA;;;AACA,IAAME,WAAW,GAAG,SAAdA,WAAc,CAClBC,KADkB,EAKP;EAAA,IAHXC,MAGW,uEAHO,GAGP;EAAA,IAFXJ,iBAEW,uEAFiB,GAEjB;EAAA,IADXK,gBACW,uEADgB,GAChB;;EACX,IAAIF,KAAK,IAAI,IAAb,EAAmB;IACjB,OAAO,EAAP;EACD;;EAED,IAAMG,WAAW,GACf,OAAOH,KAAP,KAAiB,QAAjB,GACIA,KADJ,GAEI,IAAAI,2BAAA,EAAcJ,KAAd,EAAqBH,iBAArB,EAAwCK,gBAAxC,CAHN;;EAKA,IAAI,OAAOC,WAAP,KAAuB,QAA3B,EAAqC;IACnC,MAAM,IAAIE,oCAAJ,+BACmBL,KADnB,sBAAN;EAGD;;EAED,IAAMM,WAAW,GAAG,IAAAC,iCAAA,EAAoBJ,WAApB,CAApB;;EAEA,IAAIF,MAAM,IAAI,IAAd,EAAoB;IAClB,IAAMO,cAAc,GAAG,IAAIC,sBAAJ,CAAkBR,MAAlB,EAA0BA,MAA1B,CAAiCK,WAAjC,CAAvB;;IAEA,4BAA2BE,cAAc,CAACE,KAAf,CAAqB,GAArB,CAA3B;IAAA;IAAA,IAAOC,OAAP;IAAA,IAAgBC,OAAhB;;IAEA,IAAMC,WAAW,GAAGlB,uBAAuB,CAACgB,OAAD,EAAUd,iBAAV,CAA3C;;IAEA,IAAIe,OAAJ,EAAa;MAAA;;MACX,kFAAUC,WAAV,mBAAwBX,gBAAxB,kBAA2CU,OAA3C;IACD;;IAED,OAAOC,WAAP;EACD;;EAED,OAAOP,WAAP;AACD,CAtCD;;eAwCeP,W"}