@beinformed/ui 1.13.4 → 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 (142) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/esm/models/attributes/AttributeContent.js +3 -3
  3. package/esm/models/attributes/AttributeContent.js.map +1 -1
  4. package/esm/models/attributes/AttributeModel.js.map +1 -1
  5. package/esm/models/attributes/BooleanAttributeModel.js +1 -0
  6. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  7. package/esm/models/attributes/ChoiceAttributeModel.js +1 -0
  8. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  9. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  10. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  11. package/esm/models/attributes/CompositeAttributeChildCollection.js +1 -1
  12. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  13. package/esm/models/attributes/CompositeAttributeModel.js +2 -1
  14. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  15. package/esm/models/base/BaseCollection.js.map +1 -1
  16. package/esm/models/base/ResourceCollection.js +4 -2
  17. package/esm/models/base/ResourceCollection.js.map +1 -1
  18. package/esm/models/base/ResourceModel.js +1 -0
  19. package/esm/models/base/ResourceModel.js.map +1 -1
  20. package/esm/models/concepts/BusinessScenarioModel.js +2 -1
  21. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  22. package/esm/models/concepts/ConceptDetailModel.js +2 -1
  23. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  24. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  25. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  26. package/esm/models/content/ContentLinkModel.js +2 -0
  27. package/esm/models/content/ContentLinkModel.js.map +1 -1
  28. package/esm/models/href/Href.js +1 -1
  29. package/esm/models/href/Href.js.map +1 -1
  30. package/esm/react-server/renderSSRComplete.js +1 -2
  31. package/esm/react-server/renderSSRComplete.js.map +1 -1
  32. package/esm/react-server/serverNoSSR.js +1 -1
  33. package/esm/react-server/serverNoSSR.js.map +1 -1
  34. package/esm/redux/_modularui/actions.js +16 -17
  35. package/esm/redux/_modularui/actions.js.map +1 -1
  36. package/esm/redux/_modularui/reducer.js +1 -2
  37. package/esm/redux/_modularui/reducer.js.map +1 -1
  38. package/esm/redux/actions/SignIn.js +5 -9
  39. package/esm/redux/actions/SignIn.js.map +1 -1
  40. package/esm/utils/helpers/objects.js +2 -1
  41. package/esm/utils/helpers/objects.js.map +1 -1
  42. package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
  43. package/lib/models/attributes/AttributeContent.js +3 -3
  44. package/lib/models/attributes/AttributeContent.js.flow +3 -3
  45. package/lib/models/attributes/AttributeContent.js.map +1 -1
  46. package/lib/models/attributes/AttributeModel.js.flow +10 -2
  47. package/lib/models/attributes/AttributeModel.js.map +1 -1
  48. package/lib/models/attributes/BooleanAttributeModel.js +1 -0
  49. package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
  50. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  51. package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
  52. package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
  53. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  54. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
  55. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  56. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
  57. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  58. package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
  59. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
  60. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  61. package/lib/models/attributes/CompositeAttributeModel.js +2 -1
  62. package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
  63. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  64. package/lib/models/base/BaseCollection.js.flow +2 -2
  65. package/lib/models/base/BaseCollection.js.map +1 -1
  66. package/lib/models/base/ResourceCollection.js +4 -2
  67. package/lib/models/base/ResourceCollection.js.flow +4 -6
  68. package/lib/models/base/ResourceCollection.js.map +1 -1
  69. package/lib/models/base/ResourceModel.js +1 -0
  70. package/lib/models/base/ResourceModel.js.flow +3 -2
  71. package/lib/models/base/ResourceModel.js.map +1 -1
  72. package/lib/models/concepts/BusinessScenarioModel.js +3 -1
  73. package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
  74. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  75. package/lib/models/concepts/ConceptDetailModel.js +3 -1
  76. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  77. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  78. package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
  79. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  80. package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
  81. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  82. package/lib/models/content/ContentLinkModel.js +2 -0
  83. package/lib/models/content/ContentLinkModel.js.flow +2 -0
  84. package/lib/models/content/ContentLinkModel.js.map +1 -1
  85. package/lib/models/href/Href.js +1 -1
  86. package/lib/models/href/Href.js.flow +4 -3
  87. package/lib/models/href/Href.js.map +1 -1
  88. package/lib/models/types.js.flow +2 -2
  89. package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
  90. package/lib/react-server/renderSSRComplete.js +1 -2
  91. package/lib/react-server/renderSSRComplete.js.flow +2 -1
  92. package/lib/react-server/renderSSRComplete.js.map +1 -1
  93. package/lib/react-server/serverNoSSR.js +1 -1
  94. package/lib/react-server/serverNoSSR.js.flow +1 -1
  95. package/lib/react-server/serverNoSSR.js.map +1 -1
  96. package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
  97. package/lib/redux/_modularui/actions.js +12 -12
  98. package/lib/redux/_modularui/actions.js.flow +12 -12
  99. package/lib/redux/_modularui/actions.js.map +1 -1
  100. package/lib/redux/_modularui/reducer.js +1 -2
  101. package/lib/redux/_modularui/reducer.js.flow +0 -1
  102. package/lib/redux/_modularui/reducer.js.map +1 -1
  103. package/lib/redux/actions/SignIn.js +6 -9
  104. package/lib/redux/actions/SignIn.js.flow +5 -11
  105. package/lib/redux/actions/SignIn.js.map +1 -1
  106. package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
  107. package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
  108. package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
  109. package/lib/utils/helpers/objects.js +3 -1
  110. package/lib/utils/helpers/objects.js.flow +2 -2
  111. package/lib/utils/helpers/objects.js.map +1 -1
  112. package/package.json +8 -8
  113. package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
  114. package/src/models/attributes/AttributeContent.js +3 -3
  115. package/src/models/attributes/AttributeModel.js +10 -2
  116. package/src/models/attributes/BooleanAttributeModel.js +4 -1
  117. package/src/models/attributes/ChoiceAttributeModel.js +4 -1
  118. package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
  119. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
  120. package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
  121. package/src/models/attributes/CompositeAttributeModel.js +1 -0
  122. package/src/models/base/BaseCollection.js +2 -2
  123. package/src/models/base/ResourceCollection.js +4 -6
  124. package/src/models/base/ResourceModel.js +3 -2
  125. package/src/models/concepts/BusinessScenarioModel.js +2 -1
  126. package/src/models/concepts/ConceptDetailModel.js +2 -2
  127. package/src/models/concepts/ConceptLinkModel.js +5 -2
  128. package/src/models/concepts/ConceptRelationModel.js +6 -2
  129. package/src/models/content/ContentLinkModel.js +2 -0
  130. package/src/models/href/Href.js +4 -3
  131. package/src/models/types.js +2 -2
  132. package/src/react-server/__tests__/serverUtil.spec.js +15 -14
  133. package/src/react-server/renderSSRComplete.js +2 -1
  134. package/src/react-server/serverNoSSR.js +1 -1
  135. package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
  136. package/src/redux/_modularui/actions.js +12 -12
  137. package/src/redux/_modularui/reducer.js +0 -1
  138. package/src/redux/actions/SignIn.js +5 -11
  139. package/src/redux/actions/__tests__/Application.spec.js +1 -0
  140. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
  141. package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
  142. package/src/utils/helpers/objects.js +2 -2
@@ -19,6 +19,8 @@ exports.updateStatus = exports.updateModel = exports.setModel = exports.resetMod
19
19
 
20
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
21
21
 
22
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
23
+
22
24
  var _Constants = require("../../constants/Constants");
23
25
 
24
26
  var _Href = _interopRequireDefault(require("../../models/href/Href"));
@@ -105,7 +107,8 @@ exports.updateStatus = updateStatus;
105
107
 
106
108
  var loadModelSuccessAction = function loadModelSuccessAction(key, model, modelToUpdate) {
107
109
  if (modelToUpdate) {
108
- if (typeof modelToUpdate.update === "function") {
110
+ // $FlowFixMe[prop-missing]
111
+ if (typeof modelToUpdate["update"] === "function") {
109
112
  var clonedModel = modelToUpdate.clone();
110
113
  clonedModel.update(model);
111
114
  return updateModel(clonedModel);
@@ -168,18 +171,15 @@ var loadModularUI = function loadModularUI(key, href, options) {
168
171
  dispatch(updateStatus(key, _Constants.MODULARUI_STATUS.LOADING));
169
172
  dispatch((0, _ProgressIndicator.startProgress)());
170
173
  var loadModelPromise = dispatch(loadModel(key, href, options));
174
+ return _promise.default.resolve(loadModelPromise).then(function (response) {
175
+ if ((response === null || response === void 0 ? void 0 : response.type) === "FINISH_PROGRESS") {
176
+ dispatch(updateStatus(key, _Constants.MODULARUI_STATUS.FINISHED));
177
+ }
171
178
 
172
- if (typeof loadModelPromise !== "function" && loadModelPromise.then) {
173
- return loadModelPromise.then(function (response) {
174
- if ((response === null || response === void 0 ? void 0 : response.type) === "FINISH_PROGRESS") {
175
- dispatch(updateStatus(key, _Constants.MODULARUI_STATUS.FINISHED));
176
- }
177
-
178
- return dispatch((0, _ProgressIndicator.finishProgress)());
179
- }).catch(function (error) {
180
- return dispatch((0, _Error.handleError)(error));
181
- });
182
- }
179
+ return dispatch((0, _ProgressIndicator.finishProgress)());
180
+ }).catch(function (error) {
181
+ return dispatch((0, _Error.handleError)(error));
182
+ });
183
183
  };
184
184
  };
185
185
  /**
@@ -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":"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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 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
  }
@@ -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.4",
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,7 +78,7 @@
78
78
  "styled-components": "^5.2.0"
79
79
  },
80
80
  "dependencies": {
81
- "@babel/runtime-corejs3": "^7.17.0",
81
+ "@babel/runtime-corejs3": "^7.17.2",
82
82
  "big.js": "^6.1.1",
83
83
  "date-fns": "^2.28.0",
84
84
  "deepmerge": "^4.2.2",
@@ -96,7 +96,7 @@
96
96
  },
97
97
  "devDependencies": {
98
98
  "@babel/cli": "^7.17.0",
99
- "@babel/core": "^7.17.0",
99
+ "@babel/core": "^7.17.2",
100
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",
@@ -107,8 +107,8 @@
107
107
  "@commitlint/cli": "^16.1.0",
108
108
  "@commitlint/config-conventional": "^16.0.0",
109
109
  "@testing-library/react-hooks": "^7.0.2",
110
- "auditjs": "^4.0.35",
111
- "babel-jest": "^27.4.6",
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",
@@ -116,19 +116,19 @@
116
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",
119
+ "eslint-plugin-ft-flow": "^2.0.1",
120
120
  "eslint-plugin-import": "^2.25.4",
121
121
  "eslint-plugin-jest": "^26.0.0",
122
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
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.7",
131
+ "jest": "^27.5.1",
132
132
  "jest-junit": "^13.0.0",
133
133
  "jest-sonar-reporter": "^2.0.0",
134
134
  "jscodeshift": "^0.13.1",
@@ -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
 
@@ -142,7 +142,10 @@ export default class BooleanAttributeModel extends AttributeModel {
142
142
  * Getting all enabled options
143
143
  */
144
144
  get selected(): Array<string> {
145
- return this.options.selected.map<string>((option) => option.code);
145
+ // $FlowFixMe[incompatible-call]
146
+ return this.options.selected.map<string, ChoiceAttributeOptionModel>(
147
+ (option: ChoiceAttributeOptionModel) => option.code
148
+ );
146
149
  }
147
150
 
148
151
  /**
@@ -149,7 +149,10 @@ export default class ChoiceAttributeModel extends AttributeModel {
149
149
  * Getting all enabled options
150
150
  */
151
151
  get selected(): Array<string> {
152
- return this.options.selected.map<string>((option) => option.code);
152
+ // $FlowFixMe[incompatible-call]
153
+ return this.options.selected.map<string, ChoiceAttributeOptionModel>(
154
+ (option: ChoiceAttributeOptionModel) => option.code
155
+ );
153
156
  }
154
157
 
155
158
  /**
@@ -220,7 +220,7 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
220
220
  get selected(): Array<ChoiceAttributeOptionModel> {
221
221
  const selectedOptions = [];
222
222
 
223
- this.collection.forEach((option) => {
223
+ this.collection.forEach((option: ChoiceAttributeOptionModel) => {
224
224
  if (option.selected && option.selected === true) {
225
225
  selectedOptions.push(option);
226
226
  }
@@ -13,13 +13,16 @@ import AttributeCollection from "./AttributeCollection";
13
13
  import ConceptDetailModel from "../concepts/ConceptDetailModel";
14
14
  import AttributeContent from "./AttributeContent";
15
15
 
16
- import type { ModularUIModel } from "../types";
16
+ import type { IModelWithChildModels, ModularUIModel } from "../types";
17
17
  import type ListItemModel from "../list/ListItemModel";
18
18
  import type LinkModel from "../links/LinkModel";
19
19
 
20
20
  /**
21
21
  */
22
- class ChoiceAttributeOptionModel extends BaseModel {
22
+ class ChoiceAttributeOptionModel
23
+ extends BaseModel
24
+ implements IModelWithChildModels
25
+ {
23
26
  _code: string;
24
27
  _isSelected: boolean;
25
28
  _referenceDate: ISO_DATE;
@@ -165,6 +165,7 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
165
165
  */
166
166
  get initvalue(): any {
167
167
  if (this.first instanceof CompositeAttributeChildCollection) {
168
+ // $FlowFixMe[missing-type-arg]
168
169
  return this.collection.map<Array<Object>>(
169
170
  (collection) => collection.initvalue
170
171
  );
@@ -195,7 +196,6 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
195
196
 
196
197
  this.collection.forEach((attribute) => {
197
198
  if (attribute.formdata !== null && !attribute.readonly) {
198
- // $FlowIgnore[cannot-spread-indexer]
199
199
  children = {
200
200
  ...children,
201
201
  ...attribute.formdata,
@@ -375,6 +375,7 @@ class CompositeAttributeModel extends AttributeModel {
375
375
  (this.key === otherAttribute.key &&
376
376
  this.parentKey === otherAttribute.parentKey) ||
377
377
  this.children.some(
378
+ //$FlowFixMe[method-unbinding]
378
379
  (child) => child.equals && child.equals(otherAttribute)
379
380
  )
380
381
  );
@@ -154,9 +154,9 @@ class BaseCollection<T> {
154
154
  */
155
155
  map<U>(
156
156
  callbackfn: (value: T, index: number, array: Array<T>) => U,
157
- thisArg?: any
157
+ thisArg?: T
158
158
  ): Array<U> {
159
- return this.collection.map<U>(callbackfn, thisArg);
159
+ return this.collection.map<U, ?T>(callbackfn, thisArg);
160
160
  }
161
161
 
162
162
  /**
@@ -16,11 +16,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
16
16
  const initialChildModelLinks = [];
17
17
 
18
18
  this.collection.forEach((item: T) => {
19
- if (
20
- item &&
21
- item.getInitialChildModelLinks &&
22
- typeof item.getInitialChildModelLinks === "function"
23
- ) {
19
+ // $FlowFixMe[method-unbinding]
20
+ if (typeof item?.getInitialChildModelLinks === "function") {
24
21
  initialChildModelLinks.push(...item.getInitialChildModelLinks());
25
22
  }
26
23
  });
@@ -33,7 +30,8 @@ class ResourceCollection<T: IModelWithChildModels> extends BaseCollection<T> {
33
30
  */
34
31
  setChildModels(models: Array<ModularUIModel>) {
35
32
  this.collection.forEach((item) => {
36
- if (typeof item.setChildModels === "function") {
33
+ // $FlowFixMe[prop-missing]
34
+ if (typeof item["setChildModels"] === "function") {
37
35
  item.setChildModels(models);
38
36
  }
39
37
  });
@@ -200,8 +200,9 @@ class ResourceModel extends BaseModel implements IModelWithChildModels {
200
200
  ...super.dehydrate(),
201
201
  key: this._key,
202
202
  locale: this._locale,
203
- childModels: this._childModels.map<ModularUIModel>((childModel) =>
204
- childModel.dehydrate()
203
+ // $FlowFixMe[missing-type-arg]
204
+ childModels: this._childModels.map<ModularUIModel>(
205
+ (childModel: ModularUIModel) => childModel.dehydrate()
205
206
  ),
206
207
  };
207
208
  }
@@ -1,5 +1,6 @@
1
1
  // @flow
2
2
  import ConceptDetailModel from "./ConceptDetailModel";
3
+ import ConceptTypeDetailModel from "./ConceptTypeDetailModel";
3
4
 
4
5
  import type { ModularUIResponse } from "../../modularui";
5
6
  import type { ModularUIModel } from "../types";
@@ -58,7 +59,7 @@ class BusinessScenarioModel extends ConceptDetailModel {
58
59
  setChildModels(models: Array<ModularUIModel>) {
59
60
  // $FlowExpectedError[incompatible-type]
60
61
  this.conceptType = models.find(
61
- (model) => model.type === "ConceptTypeDetail"
62
+ (model) => model instanceof ConceptTypeDetailModel
62
63
  );
63
64
 
64
65
  const scenarioSteps = [];