@beinformed/ui 1.13.1 → 1.13.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 (176) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/esm/constants/LayoutHintConfig.js +9 -0
  3. package/esm/constants/LayoutHintConfig.js.map +1 -1
  4. package/esm/constants/LayoutHints.js +5 -0
  5. package/esm/constants/LayoutHints.js.map +1 -1
  6. package/esm/constants/Settings.js +2 -1
  7. package/esm/constants/Settings.js.map +1 -1
  8. package/esm/models/attributes/AttributeContent.js +3 -3
  9. package/esm/models/attributes/AttributeContent.js.map +1 -1
  10. package/esm/models/attributes/AttributeModel.js.map +1 -1
  11. package/esm/models/attributes/BooleanAttributeModel.js +1 -0
  12. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  13. package/esm/models/attributes/ChoiceAttributeModel.js +1 -0
  14. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  15. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  16. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  17. package/esm/models/attributes/CompositeAttributeChildCollection.js +1 -1
  18. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  19. package/esm/models/attributes/CompositeAttributeModel.js +2 -1
  20. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  21. package/esm/models/attributes/DatetimeAttributeModel.js +8 -3
  22. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  23. package/esm/models/base/BaseCollection.js.map +1 -1
  24. package/esm/models/base/ResourceCollection.js +4 -2
  25. package/esm/models/base/ResourceCollection.js.map +1 -1
  26. package/esm/models/base/ResourceModel.js +1 -0
  27. package/esm/models/base/ResourceModel.js.map +1 -1
  28. package/esm/models/concepts/BusinessScenarioModel.js +2 -1
  29. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  30. package/esm/models/concepts/ConceptDetailModel.js +2 -1
  31. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  32. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  33. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  34. package/esm/models/content/ContentLinkModel.js +2 -0
  35. package/esm/models/content/ContentLinkModel.js.map +1 -1
  36. package/esm/models/href/Href.js +1 -1
  37. package/esm/models/href/Href.js.map +1 -1
  38. package/esm/react-server/renderSSRComplete.js +1 -2
  39. package/esm/react-server/renderSSRComplete.js.map +1 -1
  40. package/esm/react-server/serverNoSSR.js +1 -1
  41. package/esm/react-server/serverNoSSR.js.map +1 -1
  42. package/esm/redux/_modularui/actions.js +16 -17
  43. package/esm/redux/_modularui/actions.js.map +1 -1
  44. package/esm/redux/_modularui/reducer.js +1 -2
  45. package/esm/redux/_modularui/reducer.js.map +1 -1
  46. package/esm/redux/actions/SignIn.js +5 -9
  47. package/esm/redux/actions/SignIn.js.map +1 -1
  48. package/esm/utils/fetch/xhr.js +2 -1
  49. package/esm/utils/fetch/xhr.js.map +1 -1
  50. package/esm/utils/helpers/objects.js +2 -1
  51. package/esm/utils/helpers/objects.js.map +1 -1
  52. package/lib/constants/LayoutHintConfig.js +9 -0
  53. package/lib/constants/LayoutHintConfig.js.flow +9 -0
  54. package/lib/constants/LayoutHintConfig.js.map +1 -1
  55. package/lib/constants/LayoutHints.js +8 -2
  56. package/lib/constants/LayoutHints.js.flow +4 -0
  57. package/lib/constants/LayoutHints.js.map +1 -1
  58. package/lib/constants/Settings.js +2 -1
  59. package/lib/constants/Settings.js.flow +2 -0
  60. package/lib/constants/Settings.js.map +1 -1
  61. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
  62. package/lib/models/attributes/AttributeContent.js +3 -3
  63. package/lib/models/attributes/AttributeContent.js.flow +3 -3
  64. package/lib/models/attributes/AttributeContent.js.map +1 -1
  65. package/lib/models/attributes/AttributeModel.js.flow +10 -2
  66. package/lib/models/attributes/AttributeModel.js.map +1 -1
  67. package/lib/models/attributes/BooleanAttributeModel.js +1 -0
  68. package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
  69. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  70. package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
  71. package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
  72. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  73. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
  74. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  75. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
  76. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  77. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
  78. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
  79. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  80. package/lib/models/attributes/CompositeAttributeModel.js +2 -1
  81. package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
  82. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  83. package/lib/models/attributes/DatetimeAttributeModel.js +9 -3
  84. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -4
  85. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  86. package/lib/models/attributes/__tests__/StringAttributeModel.spec.js.flow +1 -1
  87. package/lib/models/base/BaseCollection.js.flow +2 -2
  88. package/lib/models/base/BaseCollection.js.map +1 -1
  89. package/lib/models/base/ResourceCollection.js +4 -2
  90. package/lib/models/base/ResourceCollection.js.flow +4 -6
  91. package/lib/models/base/ResourceCollection.js.map +1 -1
  92. package/lib/models/base/ResourceModel.js +1 -0
  93. package/lib/models/base/ResourceModel.js.flow +3 -2
  94. package/lib/models/base/ResourceModel.js.map +1 -1
  95. package/lib/models/base/__tests__/BaseModel.spec.js.flow +5 -5
  96. package/lib/models/concepts/BusinessScenarioModel.js +3 -1
  97. package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
  98. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  99. package/lib/models/concepts/ConceptDetailModel.js +3 -1
  100. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  101. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  102. package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
  103. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  104. package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
  105. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  106. package/lib/models/content/ContentLinkModel.js +2 -0
  107. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  108. package/lib/models/content/ContentLinkModel.js.map +1 -1
  109. package/lib/models/href/Href.js +1 -1
  110. package/lib/models/href/Href.js.flow +4 -3
  111. package/lib/models/href/Href.js.map +1 -1
  112. package/lib/models/types.js.flow +2 -2
  113. package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
  114. package/lib/react-server/renderSSRComplete.js +1 -2
  115. package/lib/react-server/renderSSRComplete.js.flow +2 -1
  116. package/lib/react-server/renderSSRComplete.js.map +1 -1
  117. package/lib/react-server/serverNoSSR.js +1 -1
  118. package/lib/react-server/serverNoSSR.js.flow +1 -1
  119. package/lib/react-server/serverNoSSR.js.map +1 -1
  120. package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
  121. package/lib/redux/_modularui/actions.js +12 -12
  122. package/lib/redux/_modularui/actions.js.flow +12 -12
  123. package/lib/redux/_modularui/actions.js.map +1 -1
  124. package/lib/redux/_modularui/reducer.js +1 -2
  125. package/lib/redux/_modularui/reducer.js.flow +0 -1
  126. package/lib/redux/_modularui/reducer.js.map +1 -1
  127. package/lib/redux/actions/SignIn.js +6 -9
  128. package/lib/redux/actions/SignIn.js.flow +5 -11
  129. package/lib/redux/actions/SignIn.js.map +1 -1
  130. package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
  131. package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
  132. package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
  133. package/lib/utils/fetch/xhr.js +3 -1
  134. package/lib/utils/fetch/xhr.js.flow +3 -1
  135. package/lib/utils/fetch/xhr.js.map +1 -1
  136. package/lib/utils/helpers/objects.js +3 -1
  137. package/lib/utils/helpers/objects.js.flow +2 -2
  138. package/lib/utils/helpers/objects.js.map +1 -1
  139. package/package.json +25 -25
  140. package/src/constants/LayoutHintConfig.js +9 -0
  141. package/src/constants/LayoutHints.js +4 -0
  142. package/src/constants/Settings.js +2 -0
  143. package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
  144. package/src/models/attributes/AttributeContent.js +3 -3
  145. package/src/models/attributes/AttributeModel.js +10 -2
  146. package/src/models/attributes/BooleanAttributeModel.js +4 -1
  147. package/src/models/attributes/ChoiceAttributeModel.js +4 -1
  148. package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
  149. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
  150. package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
  151. package/src/models/attributes/CompositeAttributeModel.js +1 -0
  152. package/src/models/attributes/DatetimeAttributeModel.js +7 -4
  153. package/src/models/attributes/__tests__/StringAttributeModel.spec.js +1 -1
  154. package/src/models/base/BaseCollection.js +2 -2
  155. package/src/models/base/ResourceCollection.js +4 -6
  156. package/src/models/base/ResourceModel.js +3 -2
  157. package/src/models/base/__tests__/BaseModel.spec.js +5 -5
  158. package/src/models/concepts/BusinessScenarioModel.js +2 -1
  159. package/src/models/concepts/ConceptDetailModel.js +2 -2
  160. package/src/models/concepts/ConceptLinkModel.js +5 -2
  161. package/src/models/concepts/ConceptRelationModel.js +6 -2
  162. package/src/models/content/ContentLinkModel.js +2 -0
  163. package/src/models/href/Href.js +4 -3
  164. package/src/models/types.js +2 -2
  165. package/src/react-server/__tests__/serverUtil.spec.js +15 -14
  166. package/src/react-server/renderSSRComplete.js +2 -1
  167. package/src/react-server/serverNoSSR.js +1 -1
  168. package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
  169. package/src/redux/_modularui/actions.js +12 -12
  170. package/src/redux/_modularui/reducer.js +0 -1
  171. package/src/redux/actions/SignIn.js +5 -11
  172. package/src/redux/actions/__tests__/Application.spec.js +1 -0
  173. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
  174. package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
  175. package/src/utils/fetch/xhr.js +3 -1
  176. package/src/utils/helpers/objects.js +2 -2
@@ -73,7 +73,8 @@ const loadModelSuccessAction = (
73
73
  modelToUpdate
74
74
  ): UpdateModelAction | SetModelAction => {
75
75
  if (modelToUpdate) {
76
- if (typeof modelToUpdate.update === "function") {
76
+ // $FlowFixMe[prop-missing]
77
+ if (typeof modelToUpdate["update"] === "function") {
77
78
  const clonedModel = modelToUpdate.clone();
78
79
  clonedModel.update(model);
79
80
 
@@ -140,17 +141,16 @@ export const loadModularUI =
140
141
  dispatch(startProgress());
141
142
 
142
143
  const loadModelPromise = dispatch(loadModel(key, href, options));
143
- if (typeof loadModelPromise !== "function" && loadModelPromise.then) {
144
- return loadModelPromise
145
- .then((response) => {
146
- if (response?.type === "FINISH_PROGRESS") {
147
- dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));
148
- }
149
-
150
- return dispatch(finishProgress());
151
- })
152
- .catch((error) => dispatch(handleError(error)));
153
- }
144
+
145
+ return Promise.resolve(loadModelPromise)
146
+ .then((response) => {
147
+ if (response?.type === "FINISH_PROGRESS") {
148
+ dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));
149
+ }
150
+
151
+ return dispatch(finishProgress());
152
+ })
153
+ .catch((error) => dispatch(handleError(error)));
154
154
  };
155
155
 
156
156
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/_modularui/actions.js"],"names":["setModel","key","model","connectKey","type","payload","updateModel","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","modelToUpdate","update","clonedModel","clone","Error","loadModel","href","options","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","isInvalidUsername","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","LOADING","loadModelPromise","then","response","FINISHED","catch","reloadModel","selfhref","isReload"],"mappings":"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","sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type { RequestBaseOptions } from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n modelToUpdate\n): UpdateModelAction | SetModelAction => {\n if (modelToUpdate) {\n if (typeof modelToUpdate.update === \"function\") {\n const clonedModel = modelToUpdate.clone();\n clonedModel.update(model);\n\n return updateModel(clonedModel);\n }\n\n throw new Error(\n `loadModel action: updateModel is set as option for ${key}, but the model is missing an update methode`\n );\n }\n\n return setModel(key, model);\n};\n\n/**\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n href: href instanceof Href ? href : new Href(href),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateModel),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key);\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (\n errorResponse.isResourceNotFoundAfterReload ||\n errorResponse.isInvalidUsername\n ) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n if (typeof loadModelPromise !== \"function\" && loadModelPromise.then) {\n return loadModelPromise\n .then((response) => {\n if (response?.type === \"FINISH_PROGRESS\") {\n dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));\n }\n\n return dispatch(finishProgress());\n })\n .catch((error) => dispatch(handleError(error)));\n }\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestBaseOptions\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"file":"actions.js"}
1
+ {"version":3,"sources":["../../../src/redux/_modularui/actions.js"],"names":["setModel","key","model","connectKey","type","payload","updateModel","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","modelToUpdate","clonedModel","clone","update","Error","loadModel","href","options","Href","method","HTTP_METHODS","GET","data","locale","childmodels","targetModel","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","isInvalidUsername","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","LOADING","loadModelPromise","resolve","then","response","FINISHED","catch","reloadModel","selfhref","isReload"],"mappings":"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","sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n UpdateModelAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type { RequestBaseOptions } from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n modelToUpdate\n): UpdateModelAction | SetModelAction => {\n if (modelToUpdate) {\n // $FlowFixMe[prop-missing]\n if (typeof modelToUpdate[\"update\"] === \"function\") {\n const clonedModel = modelToUpdate.clone();\n clonedModel.update(model);\n\n return updateModel(clonedModel);\n }\n\n throw new Error(\n `loadModel action: updateModel is set as option for ${key}, but the model is missing an update methode`\n );\n }\n\n return setModel(key, model);\n};\n\n/**\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n href: href instanceof Href ? href : new Href(href),\n method: options?.method ?? HTTP_METHODS.GET,\n data: options?.data,\n locale: options?.locale ?? \"en\",\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateModel),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key);\n if (errorResponse.isChangePassword) {\n return {\n type: \"NO_ACTION\",\n };\n } else if (\n errorResponse.isResourceNotFoundAfterReload ||\n errorResponse.isInvalidUsername\n ) {\n return removeModelByKey(key);\n }\n\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestBaseOptions\n ): ThunkAction =>\n (dispatch: Dispatch) => {\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then((response) => {\n if (response?.type === \"FINISH_PROGRESS\") {\n dispatch(updateStatus(key, MODULARUI_STATUS.FINISHED));\n }\n\n return dispatch(finishProgress());\n })\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestBaseOptions\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"file":"actions.js"}
@@ -121,8 +121,7 @@ var removeKey = function removeKey(modelKey, state) {
121
121
 
122
122
  // eslint-disable-next-line no-unused-vars
123
123
  var _ = state[modelKey],
124
- newState = (0, _objectWithoutProperties2.default)(state, (0, _map.default)(_context2 = [modelKey]).call(_context2, _toPropertyKey)); // $FlowExpectedError[incompatible-return]
125
-
124
+ newState = (0, _objectWithoutProperties2.default)(state, (0, _map.default)(_context2 = [modelKey]).call(_context2, _toPropertyKey));
126
125
  return newState;
127
126
  };
128
127
  /**
@@ -74,7 +74,6 @@ const removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {
74
74
  // eslint-disable-next-line no-unused-vars
75
75
  const { [modelKey]: _, ...newState } = state;
76
76
 
77
- // $FlowExpectedError[incompatible-return]
78
77
  return newState;
79
78
  };
80
79
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/_modularui/reducer.js"],"names":["updateStatus","state","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","model","IllegalArgumentException","getModelKey","connectKey","updateModel","modelKey","Error","removeKey","_","newState","resetModularUI","ApplicationModel","initialState","ModularUIReducer","action","type","payload"],"mappings":"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","sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\n\n/**\n */\nconst updateStatus = (state, { key, status }) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (state, { key, model }) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst getModelKey = (state, model) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state, model) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n // eslint-disable-next-line no-unused-vars\n const { [modelKey]: _, ...newState } = state;\n\n // $FlowExpectedError[incompatible-return]\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"file":"reducer.js"}
1
+ {"version":3,"sources":["../../../src/redux/_modularui/reducer.js"],"names":["updateStatus","state","key","status","MODULARUI_STATUS","LOADING","lastModification","Date","now","setModel","model","IllegalArgumentException","getModelKey","connectKey","updateModel","modelKey","Error","removeKey","_","newState","resetModularUI","ApplicationModel","initialState","ModularUIReducer","action","type","payload"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;;;;;AAMA;AACA;AACA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,QAA4B;AAAA,MAAlBC,GAAkB,QAAlBA,GAAkB;AAAA,MAAbC,MAAa,QAAbA,MAAa;;AAC/C;AACA,MAAIA,MAAM,KAAKC,4BAAiBC,OAA5B,IAAuC,CAACJ,KAAK,CAACC,GAAD,CAAjD,EAAwD;AACtD,WAAOD,KAAP;AACD;;AAED,yCACKA,KADL,yCAEGC,GAFH,kCAGOD,KAAK,CAACC,GAAD,CAHZ;AAIIC,IAAAA,MAAM,EAANA,MAJJ;AAKIG,IAAAA,gBAAgB,EAAEC,IAAI,CAACC,GAAL;AALtB;AAQD,CAdD;AAgBA;AACA;;;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACR,KAAD,SAA2B;AAAA,MAAjBC,GAAiB,SAAjBA,GAAiB;AAAA,MAAZQ,KAAY,SAAZA,KAAY;;AAC1C,MAAI,CAACT,KAAK,CAACC,GAAD,CAAV,EAAiB;AACf,WAAOD,KAAP;AACD;;AAED,MAAIS,KAAJ,EAAW;AACT,2CACKT,KADL,yCAEGC,GAFH,kCAGOD,KAAK,CAACC,GAAD,CAHZ;AAIIQ,MAAAA,KAAK,EAALA,KAJJ;AAKIJ,MAAAA,gBAAgB,EAAEC,IAAI,CAACC,GAAL;AALtB;AAQD;;AAED,QAAM,IAAIG,oCAAJ,CAA6B,uBAA7B,CAAN;AACD,CAjBD;AAmBA;AACA;;;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACX,KAAD,EAAQS,KAAR;AAAA;;AAAA,SAClB,iDAAYT,KAAZ,kBAAwB,UAACC,GAAD,EAAS;AAAA;;AAC/B,QAAMW,UAAU,0CAAGZ,KAAK,CAACC,GAAD,CAAR,mEAAG,WAAYQ,KAAf,qDAAG,iBAAmBG,UAAtB,yEAAoC,EAApD;AACA,WAAOA,UAAU,KAAKH,KAAK,CAACG,UAA5B;AACD,GAHD,CADkB;AAAA,CAApB;AAMA;AACA;;;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACb,KAAD,EAAQS,KAAR,EAAkB;AACpC,MAAMK,QAAQ,GAAGH,WAAW,CAACX,KAAD,EAAQS,KAAR,CAA5B;;AAEA,MAAIK,QAAJ,EAAc;AACZ,WAAON,QAAQ,CAACR,KAAD,EAAQ;AAAEC,MAAAA,GAAG,EAAEa,QAAP;AAAiBL,MAAAA,KAAK,EAALA;AAAjB,KAAR,CAAf;AACD;;AAED,QAAM,IAAIM,KAAJ,0DAC8CN,KAAK,CAACG,UADpD,EAAN;AAGD,CAVD;AAYA;AACA;;;AACA,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAACF,QAAD,EAAmBd,KAAnB,EAA6D;AAAA;;AAC7E;AACA,MAAoBiB,CAApB,GAAuCjB,KAAvC,CAASc,QAAT;AAAA,MAA0BI,QAA1B,0CAAuClB,KAAvC,iCAASc,QAAT;AAEA,SAAOI,QAAP;AACD,CALD;AAOA;AACA;AACA;;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACnB,KAAD,EAA2B;AAChD,MAAMkB,QAAQ,GAAG,EAAjB;;AAEA,OAAK,IAAMjB,GAAX,IAAkBD,KAAlB,EAAyB;AACvB,QAAIA,KAAK,CAACC,GAAD,CAAL,CAAWQ,KAAX,YAA4BW,wBAAhC,EAAkD;AAChDF,MAAAA,QAAQ,CAACjB,GAAD,CAAR,qBAAqBD,KAAK,CAACC,GAAD,CAA1B;AACD;AACF;;AAED,SAAOiB,QAAP;AACD,CAVD;;AAYA,IAAMG,YAA4B,GAAG,EAArC;AAEA;AACA;AACA;;AACO,IAAMC,gBAAsD,GAAG,SAAzDA,gBAAyD,GAGjE;AAAA,MAFHtB,KAEG,uEAFKqB,YAEL;AAAA,MADHE,MACG;;AACH,MAAI,CAACA,MAAL,EAAa;AACX,WAAOvB,KAAP;AACD;;AAED,UAAQuB,MAAM,CAACC,IAAf;AACE,SAAK,iBAAL;AACE,aAAOL,cAAc,CAACnB,KAAD,CAArB;;AAEF,SAAK,kBAAL;AACE,aAAOD,YAAY,CAACC,KAAD,EAAQuB,MAAM,CAACE,OAAf,CAAnB;;AAEF,SAAK,eAAL;AACE,aAAOjB,QAAQ,CAACR,KAAD,EAAQuB,MAAM,CAACE,OAAf,CAAf;;AAEF,SAAK,kBAAL;AACE,aAAOZ,WAAW,CAACb,KAAD,EAAQuB,MAAM,CAACE,OAAf,CAAlB;;AAEF,SAAK,sBAAL;AACE,aAAOT,SAAS,CAACO,MAAM,CAACE,OAAR,EAAiBzB,KAAjB,CAAhB;;AAEF;AACE,aAAOA,KAAP;AAjBJ;AAmBD,CA3BM","sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\nimport { MODULARUI_STATUS } from \"../../constants/Constants\";\nimport { ApplicationModel } from \"../../models\";\n\nimport type { Reducer } from \"redux\";\nimport type { ReduxAction } from \"../types\";\nimport type { ModularUIState } from \"./types\";\n\n/**\n */\nconst updateStatus = (state, { key, status }) => {\n // model should always be available when status is not loading\n if (status !== MODULARUI_STATUS.LOADING && !state[key]) {\n return state;\n }\n\n return {\n ...state,\n [key]: {\n ...state[key],\n status,\n lastModification: Date.now(),\n },\n };\n};\n\n/**\n */\nconst setModel = (state, { key, model }) => {\n if (!state[key]) {\n return state;\n }\n\n if (model) {\n return {\n ...state,\n [key]: {\n ...state[key],\n model,\n lastModification: Date.now(),\n },\n };\n }\n\n throw new IllegalArgumentException(\"No model for setModel\");\n};\n\n/**\n */\nconst getModelKey = (state, model) =>\n Object.keys(state).find((key) => {\n const connectKey = state[key]?.model?.connectKey ?? \"\";\n return connectKey === model.connectKey;\n });\n\n/**\n */\nconst updateModel = (state, model) => {\n const modelKey = getModelKey(state, model);\n\n if (modelKey) {\n return setModel(state, { key: modelKey, model });\n }\n\n throw new Error(\n `ModularUIReducer: Cannot update model with key ${model.connectKey}`\n );\n};\n\n/**\n */\nconst removeKey = (modelKey: string, state: ModularUIState): ModularUIState => {\n // eslint-disable-next-line no-unused-vars\n const { [modelKey]: _, ...newState } = state;\n\n return newState;\n};\n\n/**\n * Remove all but application models\n */\nconst resetModularUI = (state: ModularUIState) => {\n const newState = {};\n\n for (const key in state) {\n if (state[key].model instanceof ApplicationModel) {\n newState[key] = { ...state[key] };\n }\n }\n\n return newState;\n};\n\nconst initialState: ModularUIState = {};\n\n/**\n * Modular UI Reducer\n */\nexport const ModularUIReducer: Reducer<ModularUIState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"MODULARUI/RESET\":\n return resetModularUI(state);\n\n case \"MODULARUI/STATUS\":\n return updateStatus(state, action.payload);\n\n case \"MODULARUI/SET\":\n return setModel(state, action.payload);\n\n case \"MODULARUI/UPDATE\":\n return updateModel(state, action.payload);\n\n case \"MODULARUI/REMOVE_KEY\":\n return removeKey(action.payload, state);\n\n default:\n return state;\n }\n};\n"],"file":"reducer.js"}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.loginSuccess = exports.loginFailed = exports.login = exports.changePassword = void 0;
9
9
 
10
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
11
+
10
12
  var _Cache = _interopRequireDefault(require("../../utils/browser/Cache"));
11
13
 
12
14
  var _Authenticate = _interopRequireDefault(require("../../modularui/Authenticate"));
@@ -81,16 +83,11 @@ var login = function login(username, password) {
81
83
  }).catch(function (error) {
82
84
  if (error.id === "Error.ChangePasswordRequired") {
83
85
  var dispatchedReloadApplication = dispatch((0, _Application.reloadApplication)());
86
+ return _promise.default.resolve(dispatchedReloadApplication).then(function () {
87
+ _Cache.default.addItem("auth", true);
84
88
 
85
- if (typeof dispatchedReloadApplication !== "function" && dispatchedReloadApplication.then) {
86
- dispatchedReloadApplication.then(function () {
87
- _Cache.default.addItem("auth", true);
88
-
89
- return dispatch(changePassword());
90
- }).then(function () {
91
- return dispatch((0, _ProgressIndicator.finishProgress)());
92
- });
93
- }
89
+ return dispatch(changePassword());
90
+ });
94
91
  }
95
92
 
96
93
  dispatch(loginFailed(error.id));
@@ -66,17 +66,11 @@ export const login =
66
66
  .catch((error) => {
67
67
  if (error.id === "Error.ChangePasswordRequired") {
68
68
  const dispatchedReloadApplication = dispatch(reloadApplication());
69
- if (
70
- typeof dispatchedReloadApplication !== "function" &&
71
- dispatchedReloadApplication.then
72
- ) {
73
- dispatchedReloadApplication
74
- .then(() => {
75
- Cache.addItem("auth", true);
76
- return dispatch(changePassword());
77
- })
78
- .then(() => dispatch(finishProgress()));
79
- }
69
+
70
+ return Promise.resolve(dispatchedReloadApplication).then(() => {
71
+ Cache.addItem("auth", true);
72
+ return dispatch(changePassword());
73
+ });
80
74
  }
81
75
 
82
76
  dispatch(loginFailed(error.id));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/actions/SignIn.js"],"names":["loginFailed","errorMessage","type","payload","loginSuccess","changePassword","dispatch","getState","isModal","router","location","state","modal","locationFrom","from","CHANGEPASSWORD_PATH","login","username","password","Authenticate","then","Cache","addItem","catch","error","id","dispatchedReloadApplication"],"mappings":";;;;;;;;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAQA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,YAAD;AAAA,SAA8C;AACvEC,IAAAA,IAAI,EAAE,sBADiE;AAEvEC,IAAAA,OAAO,EAAEF;AAF8D,GAA9C;AAAA,CAApB;AAKP;AACA;AACA;;;;;AACO,IAAMG,YAAY,GAAG,SAAfA,YAAe;AAAA,SAA2B;AACrDF,IAAAA,IAAI,EAAE;AAD+C,GAA3B;AAAA,CAArB;AAIP;AACA;AACA;;;;;AACO,IAAMG,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAmB,UAACC,QAAD,EAAWC,QAAX,EAAwB;AAAA;;AACvED,IAAAA,QAAQ,CAAC;AACPJ,MAAAA,IAAI,EAAE;AADC,KAAD,CAAR;AAIA,QAAMM,OAAO,4BAAGD,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,oFAAG,sBAA4BC,KAA/B,2DAAG,uBAAmCC,KAAnD;AACA,QAAMC,YAAY,6BAAGN,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,qFAAG,uBAA4BC,KAA/B,2DAAG,uBAAmCG,IAAxD;AACA,WAAOR,QAAQ,CACb,mBAAKS,8BAAL,EAA0B;AACxBD,MAAAA,IAAI,EAAED,YAAY,GAAGA,YAAH,GAAkBN,QAAQ,GAAGE,MAAX,CAAkBC,QAD9B;AAExBE,MAAAA,KAAK,EAAEJ;AAFiB,KAA1B,CADa,CAAf;AAMD,GAb6B;AAAA,CAAvB;AAeP;AACA;;;;;AACO,IAAMQ,KAAK,GAChB,SADWA,KACX,CAACC,QAAD,EAAmBC,QAAnB;AAAA,SACA,UAACZ,QAAD,EAAc;AACZA,IAAAA,QAAQ,CAAC,uCAAD,CAAR;AAEA,WAAO,IAAIa,qBAAJ,GACJH,KADI,CACEC,QADF,EACYC,QADZ,EAEJE,IAFI,CAEC;AAAA,aAAMd,QAAQ,CAAC,qCAAD,CAAd;AAAA,KAFD,EAGJc,IAHI,CAGC,YAAM;AACVC,qBAAMC,OAAN,CAAc,MAAd,EAAsB,IAAtB;;AACAhB,MAAAA,QAAQ,CAACF,YAAY,EAAb,CAAR;AAEA,aAAOE,QAAQ,CAAC,wCAAD,CAAf;AACD,KARI,EASJiB,KATI,CASE,UAACC,KAAD,EAAW;AAChB,UAAIA,KAAK,CAACC,EAAN,KAAa,8BAAjB,EAAiD;AAC/C,YAAMC,2BAA2B,GAAGpB,QAAQ,CAAC,qCAAD,CAA5C;;AACA,YACE,OAAOoB,2BAAP,KAAuC,UAAvC,IACAA,2BAA2B,CAACN,IAF9B,EAGE;AACAM,UAAAA,2BAA2B,CACxBN,IADH,CACQ,YAAM;AACVC,2BAAMC,OAAN,CAAc,MAAd,EAAsB,IAAtB;;AACA,mBAAOhB,QAAQ,CAACD,cAAc,EAAf,CAAf;AACD,WAJH,EAKGe,IALH,CAKQ;AAAA,mBAAMd,QAAQ,CAAC,wCAAD,CAAd;AAAA,WALR;AAMD;AACF;;AAEDA,MAAAA,QAAQ,CAACN,WAAW,CAACwB,KAAK,CAACC,EAAP,CAAZ,CAAR;AACA,aAAOnB,QAAQ,CAAC,wCAAD,CAAf;AACD,KA3BI,CAAP;AA4BD,GAhCD;AAAA,CADK","sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport Authenticate from \"../../modularui/Authenticate\";\n\nimport { reloadApplication } from \"./Application\";\n\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { push } from \"../_router/actions\";\nimport { CHANGEPASSWORD_PATH } from \"../../constants/Constants\";\n\nimport type {\n LoginFailedAction,\n LoginSuccessAction,\n ThunkAction,\n} from \"../types\";\n\n/**\n * Send login failed action\n */\nexport const loginFailed = (errorMessage: string): LoginFailedAction => ({\n type: \"AUTHENTICATION_ERROR\",\n payload: errorMessage,\n});\n\n/**\n * Send login success action\n */\nexport const loginSuccess = (): LoginSuccessAction => ({\n type: \"AUTHENTICATION_SUCCESS\",\n});\n\n/**\n * Send change password action\n */\nexport const changePassword = (): ThunkAction => (dispatch, getState) => {\n dispatch({\n type: \"CHANGE_PASSWORD\",\n });\n\n const isModal = getState().router.location?.state?.modal;\n const locationFrom = getState().router.location?.state?.from;\n return dispatch(\n push(CHANGEPASSWORD_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n modal: isModal,\n })\n );\n};\n\n/**\n */\nexport const login =\n (username: string, password: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n\n return new Authenticate()\n .login(username, password)\n .then(() => dispatch(reloadApplication()))\n .then(() => {\n Cache.addItem(\"auth\", true);\n dispatch(loginSuccess());\n\n return dispatch(finishProgress());\n })\n .catch((error) => {\n if (error.id === \"Error.ChangePasswordRequired\") {\n const dispatchedReloadApplication = dispatch(reloadApplication());\n if (\n typeof dispatchedReloadApplication !== \"function\" &&\n dispatchedReloadApplication.then\n ) {\n dispatchedReloadApplication\n .then(() => {\n Cache.addItem(\"auth\", true);\n return dispatch(changePassword());\n })\n .then(() => dispatch(finishProgress()));\n }\n }\n\n dispatch(loginFailed(error.id));\n return dispatch(finishProgress());\n });\n };\n"],"file":"SignIn.js"}
1
+ {"version":3,"sources":["../../../src/redux/actions/SignIn.js"],"names":["loginFailed","errorMessage","type","payload","loginSuccess","changePassword","dispatch","getState","isModal","router","location","state","modal","locationFrom","from","CHANGEPASSWORD_PATH","login","username","password","Authenticate","then","Cache","addItem","catch","error","id","dispatchedReloadApplication","resolve"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAQA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,YAAD;AAAA,SAA8C;AACvEC,IAAAA,IAAI,EAAE,sBADiE;AAEvEC,IAAAA,OAAO,EAAEF;AAF8D,GAA9C;AAAA,CAApB;AAKP;AACA;AACA;;;;;AACO,IAAMG,YAAY,GAAG,SAAfA,YAAe;AAAA,SAA2B;AACrDF,IAAAA,IAAI,EAAE;AAD+C,GAA3B;AAAA,CAArB;AAIP;AACA;AACA;;;;;AACO,IAAMG,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAmB,UAACC,QAAD,EAAWC,QAAX,EAAwB;AAAA;;AACvED,IAAAA,QAAQ,CAAC;AACPJ,MAAAA,IAAI,EAAE;AADC,KAAD,CAAR;AAIA,QAAMM,OAAO,4BAAGD,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,oFAAG,sBAA4BC,KAA/B,2DAAG,uBAAmCC,KAAnD;AACA,QAAMC,YAAY,6BAAGN,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,qFAAG,uBAA4BC,KAA/B,2DAAG,uBAAmCG,IAAxD;AACA,WAAOR,QAAQ,CACb,mBAAKS,8BAAL,EAA0B;AACxBD,MAAAA,IAAI,EAAED,YAAY,GAAGA,YAAH,GAAkBN,QAAQ,GAAGE,MAAX,CAAkBC,QAD9B;AAExBE,MAAAA,KAAK,EAAEJ;AAFiB,KAA1B,CADa,CAAf;AAMD,GAb6B;AAAA,CAAvB;AAeP;AACA;;;;;AACO,IAAMQ,KAAK,GAChB,SADWA,KACX,CAACC,QAAD,EAAmBC,QAAnB;AAAA,SACA,UAACZ,QAAD,EAAc;AACZA,IAAAA,QAAQ,CAAC,uCAAD,CAAR;AAEA,WAAO,IAAIa,qBAAJ,GACJH,KADI,CACEC,QADF,EACYC,QADZ,EAEJE,IAFI,CAEC;AAAA,aAAMd,QAAQ,CAAC,qCAAD,CAAd;AAAA,KAFD,EAGJc,IAHI,CAGC,YAAM;AACVC,qBAAMC,OAAN,CAAc,MAAd,EAAsB,IAAtB;;AACAhB,MAAAA,QAAQ,CAACF,YAAY,EAAb,CAAR;AAEA,aAAOE,QAAQ,CAAC,wCAAD,CAAf;AACD,KARI,EASJiB,KATI,CASE,UAACC,KAAD,EAAW;AAChB,UAAIA,KAAK,CAACC,EAAN,KAAa,8BAAjB,EAAiD;AAC/C,YAAMC,2BAA2B,GAAGpB,QAAQ,CAAC,qCAAD,CAA5C;AAEA,eAAO,iBAAQqB,OAAR,CAAgBD,2BAAhB,EAA6CN,IAA7C,CAAkD,YAAM;AAC7DC,yBAAMC,OAAN,CAAc,MAAd,EAAsB,IAAtB;;AACA,iBAAOhB,QAAQ,CAACD,cAAc,EAAf,CAAf;AACD,SAHM,CAAP;AAID;;AAEDC,MAAAA,QAAQ,CAACN,WAAW,CAACwB,KAAK,CAACC,EAAP,CAAZ,CAAR;AACA,aAAOnB,QAAQ,CAAC,wCAAD,CAAf;AACD,KArBI,CAAP;AAsBD,GA1BD;AAAA,CADK","sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport Authenticate from \"../../modularui/Authenticate\";\n\nimport { reloadApplication } from \"./Application\";\n\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { push } from \"../_router/actions\";\nimport { CHANGEPASSWORD_PATH } from \"../../constants/Constants\";\n\nimport type {\n LoginFailedAction,\n LoginSuccessAction,\n ThunkAction,\n} from \"../types\";\n\n/**\n * Send login failed action\n */\nexport const loginFailed = (errorMessage: string): LoginFailedAction => ({\n type: \"AUTHENTICATION_ERROR\",\n payload: errorMessage,\n});\n\n/**\n * Send login success action\n */\nexport const loginSuccess = (): LoginSuccessAction => ({\n type: \"AUTHENTICATION_SUCCESS\",\n});\n\n/**\n * Send change password action\n */\nexport const changePassword = (): ThunkAction => (dispatch, getState) => {\n dispatch({\n type: \"CHANGE_PASSWORD\",\n });\n\n const isModal = getState().router.location?.state?.modal;\n const locationFrom = getState().router.location?.state?.from;\n return dispatch(\n push(CHANGEPASSWORD_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n modal: isModal,\n })\n );\n};\n\n/**\n */\nexport const login =\n (username: string, password: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n\n return new Authenticate()\n .login(username, password)\n .then(() => dispatch(reloadApplication()))\n .then(() => {\n Cache.addItem(\"auth\", true);\n dispatch(loginSuccess());\n\n return dispatch(finishProgress());\n })\n .catch((error) => {\n if (error.id === \"Error.ChangePasswordRequired\") {\n const dispatchedReloadApplication = dispatch(reloadApplication());\n\n return Promise.resolve(dispatchedReloadApplication).then(() => {\n Cache.addItem(\"auth\", true);\n return dispatch(changePassword());\n });\n }\n\n dispatch(loginFailed(error.id));\n return dispatch(finishProgress());\n });\n };\n"],"file":"SignIn.js"}
@@ -27,6 +27,7 @@ describe("application actions", () => {
27
27
  href: new Href("/", "Application"),
28
28
  }),
29
29
  }),
30
+ { type: "FINISH_PROGRESS" },
30
31
  ]);
31
32
  });
32
33
 
@@ -27,6 +27,7 @@ describe("custom error response handling", () => {
27
27
  const store = mockStore({});
28
28
 
29
29
  setCustomErrorResponseHandler((error) => {
30
+ // eslint-disable-next-line jest/no-conditional-in-test
30
31
  if (error.isRemoteServiceException) {
31
32
  return {
32
33
  type: "REMOTE_SERVICE_EXCEPTION",
@@ -50,6 +51,7 @@ describe("custom error response handling", () => {
50
51
  const store = mockStore({});
51
52
 
52
53
  setCustomErrorResponseHandler((error, defaultHandler) => (dispatch) => {
54
+ // eslint-disable-next-line jest/no-conditional-in-test
53
55
  if (error.isRemoteServiceException) {
54
56
  dispatch({
55
57
  type: "REMOTE_SERVICE_EXCEPTION",
@@ -156,6 +156,7 @@ describe("xhr", () => {
156
156
  onProgress: ({ type, loaded, total, lengthComputable }) => {
157
157
  events.push({ type, loaded, total, lengthComputable });
158
158
 
159
+ // eslint-disable-next-line jest/no-conditional-in-test
159
160
  if (type === "loadend") {
160
161
  resolve(events);
161
162
  }
@@ -45,6 +45,8 @@ var _Cache = _interopRequireDefault(require("../browser/Cache"));
45
45
 
46
46
  var _Constants = require("../../constants/Constants");
47
47
 
48
+ var _Settings = require("../../constants/Settings");
49
+
48
50
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(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; }
49
51
 
50
52
  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; }
@@ -168,7 +170,7 @@ var XHR = /*#__PURE__*/function () {
168
170
  }, {
169
171
  key: "timeout",
170
172
  get: function get() {
171
- return this.options.timeout || 300000;
173
+ return this.options.timeout || (0, _Settings.getSetting)("XHR_TIMEOUT_MS", 300000);
172
174
  }
173
175
  /**
174
176
  */
@@ -15,6 +15,8 @@ import Cache from "../browser/Cache";
15
15
 
16
16
  import { HTTP_METHODS } from "../../constants/Constants";
17
17
 
18
+ import { getSetting } from "../../constants/Settings";
19
+
18
20
  import type { RequestOptions } from "./types";
19
21
 
20
22
  const NETWORK_ERROR_CODE = 0;
@@ -116,7 +118,7 @@ class XHR {
116
118
  /**
117
119
  */
118
120
  get timeout() {
119
- return this.options.timeout || 300000;
121
+ return this.options.timeout || getSetting("XHR_TIMEOUT_MS", 300000);
120
122
  }
121
123
 
122
124
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/fetch/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"],"mappings":"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","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 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 || 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"],"file":"xhr.js"}
1
+ {"version":3,"sources":["../../../src/utils/fetch/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"],"mappings":"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","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"],"file":"xhr.js"}
@@ -11,10 +11,12 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/ty
11
11
 
12
12
  var _has2 = _interopRequireDefault(require("lodash/has"));
13
13
 
14
+ var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
15
+
14
16
  /**
15
17
  */
16
18
  var isPlainObject = function isPlainObject(value) {
17
- return Object.prototype.toString.call(value) === "[object Object]";
19
+ return (0, _isPlainObject2.default)(value);
18
20
  };
19
21
  /**
20
22
  */
@@ -1,10 +1,10 @@
1
1
  // @flow
2
2
  import _has from "lodash/has";
3
+ import _isPlainObject from "lodash/isPlainObject";
3
4
 
4
5
  /**
5
6
  */
6
- export const isPlainObject = (value: any): boolean =>
7
- Object.prototype.toString.call(value) === "[object Object]";
7
+ export const isPlainObject = (value: any): boolean => _isPlainObject(value);
8
8
 
9
9
  /**
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/helpers/objects.js"],"names":["isPlainObject","value","Object","prototype","toString","call","has","obj","propName","get","path","defaultValue","String","split","reduce","acc","v"],"mappings":";;;;;;;;;;;AACA;;AAEA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SAC3BC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,KAA/B,MAA0C,iBADf;AAAA,CAAtB;AAGP;AACA;;;;;AACO,IAAMK,GAAG,GAAG,SAANA,GAAM,CAACC,GAAD,EAAWC,QAAX,EAAyC;AAC1D,MAAI,CAACR,aAAa,CAACO,GAAD,CAAlB,EAAyB;AACvB,WAAO,KAAP;AACD;;AAED,SAAO,mBAAKA,GAAL,EAAUC,QAAV,CAAP;AACD,CANM;AAQP;AACA;AACA;AACA;;;;;AACO,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACF,GAAD,EAAeG,IAAf,EAA6BC,YAA7B;AAAA,SACjBC,MAAM,CAACF,IAAD,CAAN,CACGG,KADH,CACS,GADT,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMC,CAAN,EAAY;AAClB,QAAI,sBAAOD,GAAP,MAAe,QAAnB,EAA6B;AAAA;;AAC3B,uBAAOA,GAAG,CAACC,CAAD,CAAV,2CAAiBL,YAAjB;AACD;;AACD,WAAOA,YAAP;AACD,GAPH,EAOKJ,GAPL,CADiB;AAAA,CAAZ","sourcesContent":["// @flow\nimport _has from \"lodash/has\";\n\n/**\n */\nexport const isPlainObject = (value: any): boolean =>\n Object.prototype.toString.call(value) === \"[object Object]\";\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"],"file":"objects.js"}
1
+ {"version":3,"sources":["../../../src/utils/helpers/objects.js"],"names":["isPlainObject","value","has","obj","propName","get","path","defaultValue","String","split","reduce","acc","v"],"mappings":";;;;;;;;;;;AACA;;AACA;;AAEA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SAAyB,6BAAeA,KAAf,CAAzB;AAAA,CAAtB;AAEP;AACA;;;;;AACO,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,GAAD,EAAWC,QAAX,EAAyC;AAC1D,MAAI,CAACJ,aAAa,CAACG,GAAD,CAAlB,EAAyB;AACvB,WAAO,KAAP;AACD;;AAED,SAAO,mBAAKA,GAAL,EAAUC,QAAV,CAAP;AACD,CANM;AAQP;AACA;AACA;AACA;;;;;AACO,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACF,GAAD,EAAeG,IAAf,EAA6BC,YAA7B;AAAA,SACjBC,MAAM,CAACF,IAAD,CAAN,CACGG,KADH,CACS,GADT,EAEGC,MAFH,CAEU,UAACC,GAAD,EAAMC,CAAN,EAAY;AAClB,QAAI,sBAAOD,GAAP,MAAe,QAAnB,EAA6B;AAAA;;AAC3B,uBAAOA,GAAG,CAACC,CAAD,CAAV,2CAAiBL,YAAjB;AACD;;AACD,WAAOA,YAAP;AACD,GAPH,EAOKJ,GAPL,CADiB;AAAA,CAAZ","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"],"file":"objects.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.13.1",
3
+ "version": "1.13.5",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -78,9 +78,9 @@
78
78
  "styled-components": "^5.2.0"
79
79
  },
80
80
  "dependencies": {
81
- "@babel/runtime-corejs3": "^7.16.5",
81
+ "@babel/runtime-corejs3": "^7.17.2",
82
82
  "big.js": "^6.1.1",
83
- "date-fns": "^2.27.0",
83
+ "date-fns": "^2.28.0",
84
84
  "deepmerge": "^4.2.2",
85
85
  "dequal": "^2.0.2",
86
86
  "element-closest": "^3.0.2",
@@ -95,45 +95,45 @@
95
95
  "setimmediate": "^1.0.5"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/cli": "^7.16.0",
99
- "@babel/core": "^7.16.5",
100
- "@babel/eslint-parser": "^7.16.5",
98
+ "@babel/cli": "^7.17.0",
99
+ "@babel/core": "^7.17.2",
100
+ "@babel/eslint-parser": "^7.17.0",
101
101
  "@babel/eslint-plugin": "^7.16.5",
102
102
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
103
- "@babel/plugin-transform-runtime": "^7.16.5",
104
- "@babel/preset-env": "^7.16.5",
105
- "@babel/preset-flow": "^7.16.5",
106
- "@babel/preset-react": "^7.16.5",
107
- "@commitlint/cli": "^15.0.0",
108
- "@commitlint/config-conventional": "^15.0.0",
103
+ "@babel/plugin-transform-runtime": "^7.17.0",
104
+ "@babel/preset-env": "^7.16.11",
105
+ "@babel/preset-flow": "^7.16.7",
106
+ "@babel/preset-react": "^7.16.7",
107
+ "@commitlint/cli": "^16.1.0",
108
+ "@commitlint/config-conventional": "^16.0.0",
109
109
  "@testing-library/react-hooks": "^7.0.2",
110
- "auditjs": "^4.0.33",
111
- "babel-jest": "^27.4.5",
110
+ "auditjs": "^4.0.36",
111
+ "babel-jest": "^27.5.1",
112
112
  "babel-plugin-styled-components": "^2.0.2",
113
113
  "cherry-pick": "^0.5.0",
114
114
  "cross-env": "^7.0.3",
115
115
  "documentation": "^13.2.5",
116
- "eslint": "^8.5.0",
116
+ "eslint": "^8.8.0",
117
117
  "eslint-config-prettier": "^8.3.0",
118
118
  "eslint-plugin-babel": "^5.3.1",
119
- "eslint-plugin-flowtype": "^8.0.3",
120
- "eslint-plugin-import": "^2.25.3",
121
- "eslint-plugin-jest": "^25.3.0",
122
- "eslint-plugin-jsdoc": "^37.4.0",
119
+ "eslint-plugin-ft-flow": "^2.0.1",
120
+ "eslint-plugin-import": "^2.25.4",
121
+ "eslint-plugin-jest": "^26.0.0",
122
+ "eslint-plugin-jsdoc": "^37.7.1",
123
123
  "eslint-plugin-react": "^7.28.0",
124
124
  "eslint-plugin-react-hooks": "^4.3.0",
125
- "flow-bin": "0.152.0",
125
+ "flow-bin": "^0.171.0",
126
126
  "flow-copy-source": "^2.0.9",
127
- "flow-typed": "^3.5.0",
127
+ "flow-typed": "^3.6.1",
128
128
  "glob": "^7.2.0",
129
129
  "history": "^4.0.0",
130
130
  "husky": "^7.0.4",
131
- "jest": "^27.4.5",
131
+ "jest": "^27.5.1",
132
132
  "jest-junit": "^13.0.0",
133
133
  "jest-sonar-reporter": "^2.0.0",
134
- "jscodeshift": "^0.13.0",
135
- "lint-staged": "^12.1.3",
136
- "polished": "^4.1.3",
134
+ "jscodeshift": "^0.13.1",
135
+ "lint-staged": "^12.3.3",
136
+ "polished": "^4.1.4",
137
137
  "prettier": "^2.5.1",
138
138
  "react": "^17.0.2",
139
139
  "react-dom": "^17.0.2",
@@ -109,6 +109,15 @@ export const LayoutHintConfiguration = {
109
109
  link: "",
110
110
  component: ["attribute/number"],
111
111
  },
112
+ IGNORE_FORMAT_SETTING: {
113
+ hint: "ignore-format-setting",
114
+ description: {
115
+ NL: "Maakt het mogelijk om de global date format setting te negeren voor een specifiek attribuut",
116
+ EN: "Makes it possible to ignore the global date format for a specific attribute",
117
+ },
118
+ link: "",
119
+ component: ["attribute/date", "attribute/datetime"],
120
+ },
112
121
  CREATE_ACTION: {
113
122
  hint: "create",
114
123
  description: {
@@ -53,6 +53,10 @@ export const SORT_OPTIONS: string = getHint("SORT_OPTIONS");
53
53
  * Layout-hint: Marks an attribute as a title attribute
54
54
  */
55
55
  export const TITLE: string = getHint("TITLE");
56
+ /**
57
+ * Layout-hint: Ignore the global input format for specific attribute
58
+ */
59
+ export const IGNORE_FORMAT_SETTING: string = getHint("IGNORE_FORMAT_SETTING");
56
60
 
57
61
  /*
58
62
  * --------------------------------
@@ -64,6 +64,8 @@ const defaultSettings = {
64
64
 
65
65
  // reload the complete page on signout, usefull when third party authentication is in place
66
66
  PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,
67
+
68
+ XHR_TIMEOUT_MS: 300000,
67
69
  };
68
70
 
69
71
  let settings = defaultSettings;
@@ -72,6 +72,7 @@ describe("authentication hooks", () => {
72
72
  href: new Href("/", "Application"),
73
73
  }),
74
74
  }),
75
+ { type: "FINISH_PROGRESS" },
75
76
  { type: "AUTHENTICATION_SUCCESS" },
76
77
  { type: "FINISH_PROGRESS" },
77
78
  ]);
@@ -62,7 +62,7 @@ class AttributeContent {
62
62
  if (this._content?.elements) {
63
63
  return this._content.elements?.map((element) => {
64
64
  if ("propertyElement" in element) {
65
- // $FlowIssue
65
+ // $FlowIssue[prop-missing]
66
66
  const { label, layouthint, properties } = element.propertyElement;
67
67
 
68
68
  return {
@@ -76,7 +76,7 @@ class AttributeContent {
76
76
 
77
77
  if ("textFragmentElement" in element) {
78
78
  const { label, layouthint, textfragments } =
79
- // $FlowIssue
79
+ // $FlowIssue[prop-missing]
80
80
  element.textFragmentElement;
81
81
  return {
82
82
  textFragmentElement: {
@@ -91,7 +91,7 @@ class AttributeContent {
91
91
  }
92
92
 
93
93
  if ("contentElement" in element) {
94
- // $FlowIssue
94
+ // $FlowIssue[prop-missing]
95
95
  const { label, layouthint, sections } = element.contentElement;
96
96
  return {
97
97
  contentElement: {
@@ -26,7 +26,12 @@ import {
26
26
  } from "../../exceptions";
27
27
 
28
28
  import type { MessageParameters } from "../../i18n/types";
29
- import type { AttributeType, FormErrorAnchor, ModularUIModel } from "../types";
29
+ import type {
30
+ AttributeType,
31
+ FormErrorAnchor,
32
+ IModelWithChildModels,
33
+ ModularUIModel,
34
+ } from "../types";
30
35
  import type LinkModel from "../links/LinkModel";
31
36
  import type ContentConfiguration from "../contentconfiguration/ContentConfiguration";
32
37
  import type ContentConfigurationElements from "../contentconfiguration/ContentConfigurationElements";
@@ -37,7 +42,10 @@ import AttributeContent from "./AttributeContent";
37
42
  /**
38
43
  * Attribute model, base model for all kind of attributes
39
44
  */
40
- export default class AttributeModel extends BaseModel {
45
+ export default class AttributeModel
46
+ extends BaseModel
47
+ implements IModelWithChildModels
48
+ {
41
49
  _label: string;
42
50
  _lastModification: number = 0;
43
51