@beinformed/ui 1.12.2 → 1.13.3
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.
- package/CHANGELOG.md +31 -0
- package/esm/builder/mergeLayoutHintConfigurations.js +3 -3
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/LayoutHintConfig.js +9 -0
- package/esm/constants/LayoutHintConfig.js.map +1 -1
- package/esm/constants/LayoutHints.js +5 -0
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/constants/Settings.js +2 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/ConfigurationException.js +2 -1
- package/esm/exceptions/ConfigurationException.js.map +1 -1
- package/esm/exceptions/FetchException.js +4 -3
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/IllegalArgumentException.js +2 -1
- package/esm/exceptions/IllegalArgumentException.js.map +1 -1
- package/esm/exceptions/IllegalReturnException.js +2 -1
- package/esm/exceptions/IllegalReturnException.js.map +1 -1
- package/esm/exceptions/IllegalStateException.js +2 -1
- package/esm/exceptions/IllegalStateException.js.map +1 -1
- package/esm/exceptions/JsonParseException.js +2 -1
- package/esm/exceptions/JsonParseException.js.map +1 -1
- package/esm/exceptions/MissingPropertyException.js +2 -1
- package/esm/exceptions/MissingPropertyException.js.map +1 -1
- package/esm/exceptions/NetworkException.js +2 -1
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotAllowedUriException.js +2 -1
- package/esm/exceptions/NotAllowedUriException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js +2 -1
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/ServerRequestException.js +2 -1
- package/esm/exceptions/ServerRequestException.js.map +1 -1
- package/esm/exceptions/ThemePropertyException.js +2 -1
- package/esm/exceptions/ThemePropertyException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js +2 -1
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js +2 -1
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/exceptions/UnsupportedOperationException.js +2 -1
- package/esm/exceptions/UnsupportedOperationException.js.map +1 -1
- package/esm/hooks/useContent.js +2 -2
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useDeepCompareEffect.js +2 -1
- package/esm/hooks/useDeepCompareEffect.js.map +1 -1
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useModal.js +2 -2
- package/esm/hooks/useModal.js.map +1 -1
- package/esm/hooks/useModularUI.js +0 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useProgressIndicator.js +2 -2
- package/esm/i18n/Locale.js +11 -4
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js +2 -2
- package/esm/i18n/Message.js +2 -2
- package/esm/i18n/languages.js +2 -1
- package/esm/i18n/languages.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js +2 -2
- package/esm/models/attributes/AttributeContent.js +2 -2
- package/esm/models/attributes/AttributeDataHelper.js +2 -2
- package/esm/models/attributes/BooleanAttributeModel.js +2 -2
- package/esm/models/attributes/ChoiceAttributeModel.js +2 -2
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +2 -2
- package/esm/models/attributes/CompositeAttributeChildCollection.js +2 -2
- package/esm/models/attributes/DatetimeAttributeModel.js +7 -3
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js +2 -2
- package/esm/models/base/ResourceModel.js +2 -2
- package/esm/models/caseview/CaseViewModel.js +2 -1
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +2 -2
- package/esm/models/concepts/SourceReferenceModel.js +2 -2
- package/esm/models/content/ContentTOCModel.js +2 -2
- package/esm/models/filters/AssignmentFilterModel.js +2 -2
- package/esm/models/filters/BaseFilterModel.js +2 -2
- package/esm/models/filters/ConceptIndexFilterModel.js +2 -1
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +2 -2
- package/esm/models/filters/FilterModel.js +2 -1
- package/esm/models/filters/FilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +28 -4
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +2 -2
- package/esm/models/grouping/GroupingModel.js +2 -2
- package/esm/models/links/normalizeLinkJSON.js +2 -2
- package/esm/models/list/ListDetailModel.js +2 -2
- package/esm/models/list/ListItemCollection.js +38 -0
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js +14 -2
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js +17 -70
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/lookup/LookupOptionCollection.js +2 -2
- package/esm/modularui/ModularUIError.js +2 -1
- package/esm/modularui/ModularUIError.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +71 -49
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react-server/serverUtil.js +2 -2
- package/esm/react-theme/createTheme.js +2 -2
- package/esm/redux/_i18n/reducer.js +2 -2
- package/esm/redux/_modularui/actions.js +2 -2
- package/esm/redux/_modularui/connector.js +2 -2
- package/esm/redux/_modularui/reducer.js +2 -2
- package/esm/redux/_modularui/selectors.js +2 -2
- package/esm/redux/reducers/AuthReducer.js +2 -2
- package/esm/redux/reducers/ModalsReducer.js +2 -2
- package/esm/redux/reducers/NotificationReducer.js +2 -2
- package/esm/redux/reducers/PreferencesReducer.js +2 -2
- package/esm/redux/reducers/ProgressIndicatorReducer.js +2 -2
- package/esm/redux/store/configureStore.js +2 -2
- package/esm/utils/browser/Cookies.js +18 -32
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/fetch/xhr.js +6 -4
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +3 -3
- package/lib/builder/mergeLayoutHintConfigurations.js.flow +3 -3
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/LayoutHintConfig.js +9 -0
- package/lib/constants/LayoutHintConfig.js.flow +9 -0
- package/lib/constants/LayoutHintConfig.js.map +1 -1
- package/lib/constants/LayoutHints.js +8 -2
- package/lib/constants/LayoutHints.js.flow +4 -0
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/constants/Settings.js +2 -1
- package/lib/constants/Settings.js.flow +2 -0
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/ConfigurationException.js +3 -1
- package/lib/exceptions/ConfigurationException.js.map +1 -1
- package/lib/exceptions/FetchException.js +5 -3
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/IllegalArgumentException.js +3 -1
- package/lib/exceptions/IllegalArgumentException.js.map +1 -1
- package/lib/exceptions/IllegalReturnException.js +3 -1
- package/lib/exceptions/IllegalReturnException.js.map +1 -1
- package/lib/exceptions/IllegalStateException.js +3 -1
- package/lib/exceptions/IllegalStateException.js.map +1 -1
- package/lib/exceptions/JsonParseException.js +3 -1
- package/lib/exceptions/JsonParseException.js.map +1 -1
- package/lib/exceptions/MissingPropertyException.js +3 -1
- package/lib/exceptions/MissingPropertyException.js.map +1 -1
- package/lib/exceptions/NetworkException.js +3 -1
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotAllowedUriException.js +3 -1
- package/lib/exceptions/NotAllowedUriException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js +3 -1
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/ServerRequestException.js +3 -1
- package/lib/exceptions/ServerRequestException.js.map +1 -1
- package/lib/exceptions/ThemePropertyException.js +3 -1
- package/lib/exceptions/ThemePropertyException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js +3 -1
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js +3 -1
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/exceptions/UnsupportedOperationException.js +3 -1
- package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
- package/lib/hooks/useContent.js +2 -2
- package/lib/hooks/useContent.js.flow +2 -2
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +2 -1
- package/lib/hooks/useDeepCompareEffect.js.flow +1 -1
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/hooks/useForm.js.flow +1 -2
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useModal.js +2 -2
- package/lib/hooks/useModal.js.flow +1 -1
- package/lib/hooks/useModal.js.map +1 -1
- package/lib/hooks/useModularUI.js +0 -1
- package/lib/hooks/useModularUI.js.flow +0 -2
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useProgressIndicator.js +2 -2
- package/lib/i18n/Locale.js +11 -5
- package/lib/i18n/Locale.js.flow +7 -0
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js +2 -2
- package/lib/i18n/Message.js +2 -2
- package/lib/i18n/__tests__/Locale.spec.js.flow +14 -0
- package/lib/i18n/languages.js +2 -1
- package/lib/i18n/languages.js.flow +1 -0
- package/lib/i18n/languages.js.map +1 -1
- package/lib/i18n/types.js.flow +1 -0
- package/lib/models/attributes/AttributeCollection.js +2 -2
- package/lib/models/attributes/AttributeContent.js +2 -2
- package/lib/models/attributes/AttributeDataHelper.js +2 -2
- package/lib/models/attributes/BooleanAttributeModel.js +2 -2
- package/lib/models/attributes/ChoiceAttributeModel.js +2 -2
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +2 -2
- package/lib/models/attributes/CompositeAttributeChildCollection.js +2 -2
- package/lib/models/attributes/DatetimeAttributeModel.js +7 -3
- package/lib/models/attributes/DatetimeAttributeModel.js.flow +9 -4
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/StringAttributeModel.spec.js.flow +1 -1
- package/lib/models/attributes/_createAttribute.js +2 -2
- package/lib/models/base/ResourceModel.js +2 -2
- package/lib/models/base/__tests__/BaseModel.spec.js.flow +5 -5
- package/lib/models/caseview/CaseViewModel.js +3 -1
- package/lib/models/caseview/CaseViewModel.js.flow +3 -1
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +38 -1
- package/lib/models/concepts/ConceptDetailModel.js +2 -2
- package/lib/models/concepts/SourceReferenceModel.js +2 -2
- package/lib/models/content/ContentTOCModel.js +2 -2
- package/lib/models/filters/AssignmentFilterModel.js +2 -2
- package/lib/models/filters/BaseFilterModel.js +2 -2
- package/lib/models/filters/ConceptIndexFilterModel.js +3 -1
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +2 -2
- package/lib/models/filters/FilterModel.js +3 -1
- package/lib/models/filters/FilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +28 -4
- package/lib/models/form/FormModel.js.flow +18 -1
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +2 -2
- package/lib/models/form/__tests__/FormModel.getters.spec.js.flow +15 -0
- package/lib/models/grouping/GroupingModel.js +2 -2
- package/lib/models/links/normalizeLinkJSON.js +2 -2
- package/lib/models/list/ListDetailModel.js +2 -2
- package/lib/models/list/ListItemCollection.js +40 -0
- package/lib/models/list/ListItemCollection.js.flow +38 -1
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js +14 -2
- package/lib/models/list/ListItemModel.js.flow +15 -0
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js +16 -71
- package/lib/models/list/ListModel.js.flow +1 -45
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/list/__tests__/ListItemCollection.spec.js.flow +22 -0
- package/lib/models/list/__tests__/ListModel.spec.js.flow +0 -2
- package/lib/models/lookup/LookupOptionCollection.js +2 -2
- package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +38 -21
- package/lib/models/process/__tests__/ProcessStatusSettingsModel.spec.js.flow +11 -0
- package/lib/modularui/ModularUIError.js +3 -1
- package/lib/modularui/ModularUIError.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +69 -49
- package/lib/modularui/ModularUIRequest.js.flow +38 -22
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react-server/serverUtil.js +2 -2
- package/lib/react-theme/createTheme.js +2 -2
- package/lib/redux/_i18n/reducer.js +2 -2
- package/lib/redux/_modularui/actions.js +2 -2
- package/lib/redux/_modularui/connector.js +2 -2
- package/lib/redux/_modularui/reducer.js +2 -2
- package/lib/redux/_modularui/selectors.js +2 -2
- package/lib/redux/reducers/AuthReducer.js +2 -2
- package/lib/redux/reducers/ModalsReducer.js +2 -2
- package/lib/redux/reducers/NotificationReducer.js +2 -2
- package/lib/redux/reducers/PreferencesReducer.js +2 -2
- package/lib/redux/reducers/ProgressIndicatorReducer.js +2 -2
- package/lib/redux/store/configureStore.js +2 -2
- package/lib/utils/browser/Cookies.js +18 -31
- package/lib/utils/browser/Cookies.js.flow +22 -28
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/browser/__tests__/Cookies.spec.js.flow +51 -0
- package/lib/utils/fetch/xhr.js +7 -4
- package/lib/utils/fetch/xhr.js.flow +6 -2
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/package.json +37 -35
- package/src/builder/mergeLayoutHintConfigurations.js +3 -3
- package/src/constants/LayoutHintConfig.js +9 -0
- package/src/constants/LayoutHints.js +4 -0
- package/src/constants/Settings.js +2 -0
- package/src/hooks/useContent.js +2 -2
- package/src/hooks/useDeepCompareEffect.js +1 -1
- package/src/hooks/useForm.js +1 -2
- package/src/hooks/useModal.js +1 -1
- package/src/hooks/useModularUI.js +0 -2
- package/src/i18n/Locale.js +7 -0
- package/src/i18n/__tests__/Locale.spec.js +14 -0
- package/src/i18n/languages.js +1 -0
- package/src/i18n/types.js +1 -0
- package/src/models/attributes/DatetimeAttributeModel.js +9 -4
- package/src/models/attributes/__tests__/StringAttributeModel.spec.js +1 -1
- package/src/models/base/__tests__/BaseModel.spec.js +5 -5
- package/src/models/caseview/CaseViewModel.js +3 -1
- package/src/models/caseview/__tests__/CaseViewModel.spec.js +38 -1
- package/src/models/caseview/__tests__/caseview.json +14 -3
- package/src/models/caseview/__tests__/caseviewContributions.json +48 -77
- package/src/models/caseview/__tests__/caseview_local_taskgroup.json +57 -0
- package/src/models/form/FormModel.js +18 -1
- package/src/models/form/__tests__/FormModel.getters.spec.js +15 -0
- package/src/models/list/ListItemCollection.js +38 -1
- package/src/models/list/ListItemModel.js +15 -0
- package/src/models/list/ListModel.js +1 -45
- package/src/models/list/__tests__/ListItemCollection.spec.js +22 -0
- package/src/models/list/__tests__/ListModel.spec.js +0 -2
- package/src/models/panels/__tests__/GroupingPanelModel.spec.js +38 -21
- package/src/models/panels/__tests__/groupingPanel.json +20 -1
- package/src/models/panels/__tests__/groupingPanelContributions.json +14 -1
- package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +11 -0
- package/src/modularui/ModularUIRequest.js +38 -22
- package/src/utils/browser/Cookies.js +22 -28
- package/src/utils/browser/__tests__/Cookies.spec.js +51 -0
- package/src/utils/fetch/xhr.js +6 -2
package/lib/utils/fetch/xhr.js
CHANGED
|
@@ -45,9 +45,11 @@ var _Cache = _interopRequireDefault(require("../browser/Cache"));
|
|
|
45
45
|
|
|
46
46
|
var _Constants = require("../../constants/Constants");
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
var _Settings = require("../../constants/Settings");
|
|
49
49
|
|
|
50
|
-
function
|
|
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; }
|
|
51
|
+
|
|
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; }
|
|
51
53
|
|
|
52
54
|
var NETWORK_ERROR_CODE = 0;
|
|
53
55
|
var SUCCESS_CODE = 200;
|
|
@@ -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
|
*/
|
|
@@ -188,7 +190,8 @@ var XHR = /*#__PURE__*/function () {
|
|
|
188
190
|
return this.options.onProgress;
|
|
189
191
|
}
|
|
190
192
|
|
|
191
|
-
return function () {
|
|
193
|
+
return function () {// do nothing
|
|
194
|
+
};
|
|
192
195
|
}
|
|
193
196
|
/**
|
|
194
197
|
*/
|
|
@@ -15,6 +15,8 @@ import Cache from "../browser/Cache";
|
|
|
15
15
|
|
|
16
16
|
import { HTTP_METHODS } from "../../constants/Constants";
|
|
17
17
|
|
|
18
|
+
import { getSetting } from "../../constants/Settings";
|
|
19
|
+
|
|
18
20
|
import type { RequestOptions } from "./types";
|
|
19
21
|
|
|
20
22
|
const NETWORK_ERROR_CODE = 0;
|
|
@@ -116,7 +118,7 @@ class XHR {
|
|
|
116
118
|
/**
|
|
117
119
|
*/
|
|
118
120
|
get timeout() {
|
|
119
|
-
return this.options.timeout || 300000;
|
|
121
|
+
return this.options.timeout || getSetting("XHR_TIMEOUT_MS", 300000);
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
/**
|
|
@@ -132,7 +134,9 @@ class XHR {
|
|
|
132
134
|
return this.options.onProgress;
|
|
133
135
|
}
|
|
134
136
|
|
|
135
|
-
return () => {
|
|
137
|
+
return () => {
|
|
138
|
+
// do nothing
|
|
139
|
+
};
|
|
136
140
|
}
|
|
137
141
|
|
|
138
142
|
/**
|
|
@@ -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 }\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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.3",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "http://support.beinformed.com",
|
|
7
7
|
"main": "lib/index.js",
|
|
8
8
|
"module": "esm/index.js",
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": "^12.20 || ^14.
|
|
10
|
+
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
|
11
11
|
},
|
|
12
12
|
"esnext": "src/index.js",
|
|
13
13
|
"sideEffects": false,
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"prepublishOnly": "npm run build",
|
|
39
39
|
"docs": "node ./.build/docs.js",
|
|
40
40
|
"prepare": "husky install",
|
|
41
|
-
"security-audit": "
|
|
41
|
+
"security-audit": "auditjs ossi --xml > npm-audit.xml"
|
|
42
42
|
},
|
|
43
43
|
"repository": {
|
|
44
44
|
"type": "git",
|
|
@@ -71,16 +71,16 @@
|
|
|
71
71
|
"react": "^16.14.0 || ^17.0.0",
|
|
72
72
|
"react-dom": "^16.14.0 || ^17.0.0",
|
|
73
73
|
"react-helmet-async": "^1.0.0",
|
|
74
|
-
"redux": "^4.0.0",
|
|
75
74
|
"react-redux": "^7.0.0",
|
|
76
75
|
"react-router-dom": "^5.2.0",
|
|
76
|
+
"redux": "^4.0.0",
|
|
77
77
|
"redux-thunk": "^2.3.0",
|
|
78
78
|
"styled-components": "^5.2.0"
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
|
-
"@babel/runtime-corejs3": "^7.
|
|
81
|
+
"@babel/runtime-corejs3": "^7.17.0",
|
|
82
82
|
"big.js": "^6.1.1",
|
|
83
|
-
"date-fns": "^2.
|
|
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",
|
|
@@ -89,59 +89,61 @@
|
|
|
89
89
|
"format-message": "^6.2.3",
|
|
90
90
|
"he": "^1.2.0",
|
|
91
91
|
"iban": "^0.0.14",
|
|
92
|
+
"js-cookie": "^3.0.1",
|
|
92
93
|
"lodash": "^4.17.21",
|
|
93
|
-
"reselect": "^4.1.
|
|
94
|
+
"reselect": "^4.1.5",
|
|
94
95
|
"setimmediate": "^1.0.5"
|
|
95
96
|
},
|
|
96
97
|
"devDependencies": {
|
|
97
|
-
"@babel/cli": "^7.
|
|
98
|
-
"@babel/core": "^7.
|
|
99
|
-
"@babel/eslint-parser": "^7.
|
|
100
|
-
"@babel/eslint-plugin": "^7.
|
|
98
|
+
"@babel/cli": "^7.17.0",
|
|
99
|
+
"@babel/core": "^7.17.0",
|
|
100
|
+
"@babel/eslint-parser": "^7.17.0",
|
|
101
|
+
"@babel/eslint-plugin": "^7.16.5",
|
|
101
102
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
102
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
103
|
-
"@babel/preset-env": "^7.
|
|
104
|
-
"@babel/preset-flow": "^7.
|
|
105
|
-
"@babel/preset-react": "^7.
|
|
106
|
-
"@commitlint/cli": "^
|
|
107
|
-
"@commitlint/config-conventional": "^
|
|
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",
|
|
108
109
|
"@testing-library/react-hooks": "^7.0.2",
|
|
109
|
-
"
|
|
110
|
-
"babel-
|
|
110
|
+
"auditjs": "^4.0.35",
|
|
111
|
+
"babel-jest": "^27.4.6",
|
|
112
|
+
"babel-plugin-styled-components": "^2.0.2",
|
|
111
113
|
"cherry-pick": "^0.5.0",
|
|
112
114
|
"cross-env": "^7.0.3",
|
|
113
115
|
"documentation": "^13.2.5",
|
|
114
|
-
"eslint": "^
|
|
116
|
+
"eslint": "^8.8.0",
|
|
115
117
|
"eslint-config-prettier": "^8.3.0",
|
|
116
118
|
"eslint-plugin-babel": "^5.3.1",
|
|
117
|
-
"eslint-plugin-flowtype": "^
|
|
118
|
-
"eslint-plugin-import": "^2.25.
|
|
119
|
-
"eslint-plugin-jest": "^
|
|
120
|
-
"eslint-plugin-jsdoc": "^37.
|
|
121
|
-
"eslint-plugin-react": "^7.
|
|
122
|
-
"eslint-plugin-react-hooks": "^4.
|
|
119
|
+
"eslint-plugin-flowtype": "^8.0.3",
|
|
120
|
+
"eslint-plugin-import": "^2.25.4",
|
|
121
|
+
"eslint-plugin-jest": "^26.0.0",
|
|
122
|
+
"eslint-plugin-jsdoc": "^37.7.1",
|
|
123
|
+
"eslint-plugin-react": "^7.28.0",
|
|
124
|
+
"eslint-plugin-react-hooks": "^4.3.0",
|
|
123
125
|
"flow-bin": "0.152.0",
|
|
124
126
|
"flow-copy-source": "^2.0.9",
|
|
125
|
-
"flow-typed": "^3.
|
|
127
|
+
"flow-typed": "^3.6.1",
|
|
126
128
|
"glob": "^7.2.0",
|
|
127
129
|
"history": "^4.0.0",
|
|
128
130
|
"husky": "^7.0.4",
|
|
129
|
-
"jest": "^27.
|
|
131
|
+
"jest": "^27.4.7",
|
|
130
132
|
"jest-junit": "^13.0.0",
|
|
131
133
|
"jest-sonar-reporter": "^2.0.0",
|
|
132
|
-
"jscodeshift": "^0.13.
|
|
133
|
-
"lint-staged": "^
|
|
134
|
-
"polished": "^4.1.
|
|
135
|
-
"prettier": "^2.
|
|
134
|
+
"jscodeshift": "^0.13.1",
|
|
135
|
+
"lint-staged": "^12.3.3",
|
|
136
|
+
"polished": "^4.1.4",
|
|
137
|
+
"prettier": "^2.5.1",
|
|
136
138
|
"react": "^17.0.2",
|
|
137
139
|
"react-dom": "^17.0.2",
|
|
138
|
-
"react-helmet-async": "^1.
|
|
140
|
+
"react-helmet-async": "^1.2.2",
|
|
139
141
|
"react-redux": "^7.2.6",
|
|
140
142
|
"react-router-dom": "^5.3.0",
|
|
141
143
|
"react-test-renderer": "^17.0.2",
|
|
142
|
-
"redux": "^4.1.
|
|
144
|
+
"redux": "^4.1.2",
|
|
143
145
|
"redux-mock-store": "^1.5.4",
|
|
144
|
-
"redux-thunk": "^2.4.
|
|
146
|
+
"redux-thunk": "^2.4.1",
|
|
145
147
|
"rimraf": "^3.0.2",
|
|
146
148
|
"standard-version": "^9.3.2",
|
|
147
149
|
"styled-components": "^5.3.3",
|
|
@@ -44,9 +44,9 @@ exports.mergeLayoutHintConfigurations = async (
|
|
|
44
44
|
path.join(outputFolder, "LayoutHintConfig.json"),
|
|
45
45
|
JSON.stringify(newConfig),
|
|
46
46
|
|
|
47
|
-
(
|
|
48
|
-
if (
|
|
49
|
-
return reject(
|
|
47
|
+
(writeErr) => {
|
|
48
|
+
if (writeErr) {
|
|
49
|
+
return reject(writeErr);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
return resolve();
|
|
@@ -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
|
* --------------------------------
|
package/src/hooks/useContent.js
CHANGED
|
@@ -10,7 +10,7 @@ type DependencyList = Array<mixed>;
|
|
|
10
10
|
* Need to copy this, because the dependency on dequal breaks in ie11
|
|
11
11
|
*/
|
|
12
12
|
const useDeepCompareMemoize = (value: DependencyList) => {
|
|
13
|
-
const ref = React.useRef<DependencyList | null>(null);
|
|
13
|
+
const ref = React.useRef<DependencyList | null>(null); // NOSONAR
|
|
14
14
|
const signalRef = React.useRef<number>(0);
|
|
15
15
|
|
|
16
16
|
if (!deepEqual(value, ref.current)) {
|
package/src/hooks/useForm.js
CHANGED
|
@@ -20,8 +20,7 @@ import {
|
|
|
20
20
|
|
|
21
21
|
import FormModel from "../models/form/FormModel";
|
|
22
22
|
|
|
23
|
-
import type { FormObjectModel } from "../models";
|
|
24
|
-
import type { AttributeType } from "../models";
|
|
23
|
+
import type { FormObjectModel, AttributeType } from "../models";
|
|
25
24
|
import type { UpdateFormOptions } from "../redux/types";
|
|
26
25
|
import type {
|
|
27
26
|
RemoveModelByKeyAction,
|
package/src/hooks/useModal.js
CHANGED
|
@@ -25,7 +25,7 @@ export const useModal: ModalHook = (modalId: string) => {
|
|
|
25
25
|
|
|
26
26
|
const dispatch = useDispatch();
|
|
27
27
|
const modal = useSelector(({ modals }) =>
|
|
28
|
-
modals.modals.find((
|
|
28
|
+
modals.modals.find((m) => m.key === modalId)
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
const show = useCallback(() => {
|
|
@@ -38,8 +38,6 @@ export const useModularUI = (
|
|
|
38
38
|
|
|
39
39
|
// dispatch loadModularUI
|
|
40
40
|
useDeepCompareEffect(() => {
|
|
41
|
-
// console.info({ new: options }, { old: prevOptions.current });
|
|
42
|
-
|
|
43
41
|
// prevent reloads when previous option had the isReload, but the new options not
|
|
44
42
|
const isOldReload =
|
|
45
43
|
prevHref.current === href &&
|
package/src/i18n/Locale.js
CHANGED
|
@@ -15,6 +15,7 @@ class Locale {
|
|
|
15
15
|
_code: string;
|
|
16
16
|
_messages: { [string]: string };
|
|
17
17
|
_errors: { [string]: string };
|
|
18
|
+
_nativeName: ?string;
|
|
18
19
|
|
|
19
20
|
constructor(locale: LocaleConfiguration) {
|
|
20
21
|
this._code = locale.code;
|
|
@@ -22,6 +23,8 @@ class Locale {
|
|
|
22
23
|
this._messages = this.fixPlaceHoldersInObject(locale.messages);
|
|
23
24
|
this._errors = this.fixPlaceHoldersInObject(locale.errors);
|
|
24
25
|
|
|
26
|
+
this._nativeName = locale.nativeName;
|
|
27
|
+
|
|
25
28
|
formatMessage.setup({
|
|
26
29
|
missingTranslation: "ignore",
|
|
27
30
|
});
|
|
@@ -38,6 +41,10 @@ class Locale {
|
|
|
38
41
|
* Retrieve nativeName
|
|
39
42
|
*/
|
|
40
43
|
get nativeName(): string {
|
|
44
|
+
if (this._nativeName) {
|
|
45
|
+
return this._nativeName;
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
const aLocale = this.code.split("-");
|
|
42
49
|
|
|
43
50
|
if (aLocale.length > 0) {
|
|
@@ -39,6 +39,20 @@ describe("locale", () => {
|
|
|
39
39
|
expect(locale.getMessage("testMessage")).toBe("Updated message");
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
+
it("can handle languages without iso-639-2 code", () => {
|
|
43
|
+
const locale = new Locale({
|
|
44
|
+
code: "pap",
|
|
45
|
+
nativeName: "Papiamento",
|
|
46
|
+
messages: {
|
|
47
|
+
descr: "Papiamento",
|
|
48
|
+
},
|
|
49
|
+
errors: {},
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
expect(locale.code).toBe("pap");
|
|
53
|
+
expect(locale.nativeName).toBe("Papiamento");
|
|
54
|
+
});
|
|
55
|
+
|
|
42
56
|
it("throws on non exising locale", () => {
|
|
43
57
|
const locale = new Locale({
|
|
44
58
|
code: "NONEXISTING",
|
package/src/i18n/languages.js
CHANGED
package/src/i18n/types.js
CHANGED
|
@@ -239,10 +239,15 @@ class DatetimeAttributeModel extends StringAttributeModel {
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
// setting for date input
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
const ignoreDateInputFormatSetting = getSetting(
|
|
243
|
+
"IGNORE_FORMAT_SETTING",
|
|
244
|
+
false
|
|
245
|
+
);
|
|
246
|
+
if (!ignoreDateInputFormatSetting) {
|
|
247
|
+
const dateInputFormatSetting = getSetting("DATE_INPUT_FORMAT", "");
|
|
248
|
+
if (dateInputFormatSetting) {
|
|
249
|
+
return dateInputFormatSetting;
|
|
250
|
+
}
|
|
246
251
|
}
|
|
247
252
|
|
|
248
253
|
let format = this.format;
|
|
@@ -73,13 +73,13 @@ describe("baseModel", () => {
|
|
|
73
73
|
});
|
|
74
74
|
|
|
75
75
|
const shallowClone = model.clone();
|
|
76
|
-
expect(model
|
|
77
|
-
expect(model.data.prop
|
|
78
|
-
expect(model.data.prop.child
|
|
76
|
+
expect(model).not.toBe(shallowClone);
|
|
77
|
+
expect(model.data.prop).toBe(shallowClone.data.prop);
|
|
78
|
+
expect(model.data.prop.child).toBe(shallowClone.data.prop.child);
|
|
79
79
|
|
|
80
80
|
const deepClone = model.clone(true);
|
|
81
|
-
expect(model
|
|
81
|
+
expect(model).not.toBe(deepClone);
|
|
82
82
|
expect(model.data.prop === deepClone.data.prop).toBeFalsy();
|
|
83
|
-
expect(model.data.prop.child
|
|
83
|
+
expect(model.data.prop.child).toBe(deepClone.data.prop.child);
|
|
84
84
|
});
|
|
85
85
|
});
|
|
@@ -6,6 +6,8 @@ import TaskGroupModel from "../taskgroup/TaskGroupModel";
|
|
|
6
6
|
|
|
7
7
|
import { TITLE } from "../../constants/LayoutHints";
|
|
8
8
|
|
|
9
|
+
import IllegalStateException from "../../exceptions/IllegalStateException";
|
|
10
|
+
|
|
9
11
|
import type { ModularUIModel, AttributeType } from "../types";
|
|
10
12
|
import type { ModularUIResponse } from "../../modularui";
|
|
11
13
|
import type LinkCollection from "../links/LinkCollection";
|
|
@@ -122,7 +124,7 @@ export default class CaseViewModel extends DetailModel {
|
|
|
122
124
|
const selfLink = this.links.getLinkByKey("self");
|
|
123
125
|
|
|
124
126
|
if (selfLink === null) {
|
|
125
|
-
throw new
|
|
127
|
+
throw new IllegalStateException("No self href available");
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
return new Href(selfLink.href);
|
|
@@ -2,13 +2,26 @@ import CaseViewModel from "../CaseViewModel";
|
|
|
2
2
|
import DetailModel from "../../detail/DetailModel";
|
|
3
3
|
|
|
4
4
|
import caseviewJson from "./caseview.json";
|
|
5
|
+
import caseviewLocalTaskgroupJson from "./caseview_local_taskgroup.json";
|
|
5
6
|
import caseviewContributionsJson from "./caseviewContributions.json";
|
|
6
7
|
|
|
8
|
+
import IllegalStateException from "../../../exceptions/IllegalStateException";
|
|
9
|
+
|
|
7
10
|
describe("caseViewModel", () => {
|
|
8
11
|
it("should be able to create an empty casedetail", () => {
|
|
9
12
|
const caseview = new CaseViewModel({});
|
|
10
13
|
|
|
11
14
|
expect(caseview).toBeInstanceOf(CaseViewModel);
|
|
15
|
+
expect(caseview.getInitialChildModelLinks()).toHaveLength(0);
|
|
16
|
+
expect(caseview.panelLinks).toHaveLength(0);
|
|
17
|
+
expect(caseview.introtext).toBe("");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("throws when no self link is available", () => {
|
|
21
|
+
const caseview = new CaseViewModel({});
|
|
22
|
+
expect(() => {
|
|
23
|
+
caseview.selfhref;
|
|
24
|
+
}).toThrow(IllegalStateException);
|
|
12
25
|
});
|
|
13
26
|
|
|
14
27
|
it("should be able to create a casedetail from a typical modular UI json structure", () => {
|
|
@@ -18,6 +31,8 @@ describe("caseViewModel", () => {
|
|
|
18
31
|
contributions: caseviewContributionsJson,
|
|
19
32
|
});
|
|
20
33
|
|
|
34
|
+
expect(caseDetail.viewLabel).toBe("Book");
|
|
35
|
+
expect(caseDetail.hasIntroText()).toBe(true);
|
|
21
36
|
expect(caseDetail).toBeInstanceOf(CaseViewModel);
|
|
22
37
|
expect(caseDetail).toBeInstanceOf(DetailModel);
|
|
23
38
|
|
|
@@ -25,13 +40,35 @@ describe("caseViewModel", () => {
|
|
|
25
40
|
expect(caseDetail.id).toBe(24);
|
|
26
41
|
|
|
27
42
|
expect(caseDetail.casename.value).toBe("The safety of objects");
|
|
43
|
+
|
|
44
|
+
expect(caseDetail.hasTaskGroups()).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("should be able to handle local taskgroup", () => {
|
|
48
|
+
const caseDetail = new CaseViewModel({
|
|
49
|
+
key: "Book",
|
|
50
|
+
data: caseviewLocalTaskgroupJson,
|
|
51
|
+
contributions: caseviewContributionsJson,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
expect(caseDetail.hasTaskGroups()).toBe(true);
|
|
55
|
+
expect(caseDetail.taskGroupCollection).toHaveLength(1);
|
|
28
56
|
});
|
|
29
57
|
|
|
30
58
|
it("should be able to handle different kind of introtext", () => {
|
|
31
59
|
const caseviewOldStructure = new CaseViewModel({
|
|
32
60
|
key: "Book",
|
|
33
61
|
data: caseviewJson,
|
|
34
|
-
contributions:
|
|
62
|
+
contributions: {
|
|
63
|
+
...caseviewContributionsJson,
|
|
64
|
+
text: undefined,
|
|
65
|
+
texts: [
|
|
66
|
+
{
|
|
67
|
+
type: "master",
|
|
68
|
+
text: "<p>This is introtext</p>",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
35
72
|
});
|
|
36
73
|
|
|
37
74
|
expect(caseviewOldStructure.introtext).toBe("<p>This is introtext</p>");
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
"href": "/books/book/24"
|
|
5
5
|
},
|
|
6
6
|
"api_doc": {
|
|
7
|
-
"href": "/api-docs/books/book/
|
|
7
|
+
"href": "/api-docs/v3/books/book/(case-id)"
|
|
8
8
|
},
|
|
9
9
|
"contributions": {
|
|
10
|
-
"href": "/contributions/books/book/
|
|
10
|
+
"href": "/contributions/books/book/(case-id)"
|
|
11
|
+
},
|
|
12
|
+
"Details": {
|
|
13
|
+
"href": "/books/book/24/details"
|
|
11
14
|
},
|
|
12
15
|
"Creator": {
|
|
13
16
|
"href": "/books/book/24/creator"
|
|
@@ -19,6 +22,14 @@
|
|
|
19
22
|
"href": "/books/book/24/activities"
|
|
20
23
|
},
|
|
21
24
|
"taskgroup": [
|
|
25
|
+
{
|
|
26
|
+
"href": "/books/book/24/contributors-tasks",
|
|
27
|
+
"name": "Contributors"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"href": "/books/book/24/delivery-tasks",
|
|
31
|
+
"name": "Delivery"
|
|
32
|
+
},
|
|
22
33
|
{
|
|
23
34
|
"href": "/books/book/24/Tasks",
|
|
24
35
|
"name": "Tasks"
|
|
@@ -35,4 +46,4 @@
|
|
|
35
46
|
"Language": "EN",
|
|
36
47
|
"NumberOfPages": 176,
|
|
37
48
|
"State": "Registered"
|
|
38
|
-
}
|
|
49
|
+
}
|