@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
|
@@ -386,6 +386,20 @@ class ModularUIRequest {
|
|
|
386
386
|
return Promise.resolve();
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
+
/**
|
|
390
|
+
* Retrieve an object of key: link
|
|
391
|
+
*/
|
|
392
|
+
dataLinksPerName(dataLinks: any): { [linkName: string]: any } {
|
|
393
|
+
if (Array.isArray(dataLinks)) {
|
|
394
|
+
const links = {};
|
|
395
|
+
for (const dataLink of dataLinks) {
|
|
396
|
+
links[dataLink.name] = dataLink;
|
|
397
|
+
}
|
|
398
|
+
return links;
|
|
399
|
+
}
|
|
400
|
+
return dataLinks;
|
|
401
|
+
}
|
|
402
|
+
|
|
389
403
|
/**
|
|
390
404
|
* Check if links are empty and hide them when hide-when-empty hint exists
|
|
391
405
|
*/
|
|
@@ -393,42 +407,44 @@ class ModularUIRequest {
|
|
|
393
407
|
dataLinks: any,
|
|
394
408
|
contributionLinks: any
|
|
395
409
|
): Promise<Object | Array<Object>> {
|
|
410
|
+
const linksPerName = this.dataLinksPerName(dataLinks);
|
|
411
|
+
const hideWhenEmptyLinks = contributionLinks.filter((contributionLink) =>
|
|
412
|
+
contributionLink.layouthint?.includes(HIDE_WHEN_EMPTY)
|
|
413
|
+
);
|
|
414
|
+
|
|
396
415
|
const isHiddenListChecks = [];
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
isHiddenListChecks.push(
|
|
405
|
-
this.isHiddenList(contributionLink.name, dataLink.href)
|
|
406
|
-
);
|
|
407
|
-
}
|
|
416
|
+
|
|
417
|
+
for (const contributionLink of hideWhenEmptyLinks) {
|
|
418
|
+
const dataLink = linksPerName[contributionLink.name];
|
|
419
|
+
if (dataLink?.href) {
|
|
420
|
+
isHiddenListChecks.push(
|
|
421
|
+
this.isHiddenList(contributionLink.name, dataLink.href)
|
|
422
|
+
);
|
|
408
423
|
}
|
|
409
424
|
}
|
|
410
425
|
|
|
411
|
-
return Promise.all(isHiddenListChecks).then(
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
426
|
+
return Promise.all(isHiddenListChecks).then(
|
|
427
|
+
(hiddenLinks: Array<string>) => {
|
|
428
|
+
if (Array.isArray(dataLinks)) {
|
|
429
|
+
return dataLinks.filter(
|
|
430
|
+
(dataLink) => !hiddenLinks.includes(dataLink.name)
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
const newDataLinks = {};
|
|
419
435
|
for (const dataLinkKey in dataLinks) {
|
|
420
436
|
if (!hiddenLinks.includes(dataLinkKey)) {
|
|
421
437
|
newDataLinks[dataLinkKey] = dataLinks[dataLinkKey];
|
|
422
438
|
}
|
|
423
439
|
}
|
|
440
|
+
return newDataLinks;
|
|
424
441
|
}
|
|
425
|
-
|
|
426
|
-
});
|
|
442
|
+
);
|
|
427
443
|
}
|
|
428
444
|
|
|
429
445
|
/**
|
|
430
446
|
*/
|
|
431
|
-
isHiddenList(name: string, href: string): Promise
|
|
447
|
+
isHiddenList(name: string, href: string): Promise<string> {
|
|
432
448
|
return universalFetch({
|
|
433
449
|
...this.options,
|
|
434
450
|
url: `${BASE}${href}`,
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// @flow
|
|
2
|
+
import Cookies from "js-cookie";
|
|
3
|
+
|
|
2
4
|
import { BASE } from "../../constants/Constants";
|
|
3
5
|
|
|
4
6
|
type CookieOptions = {
|
|
@@ -7,18 +9,17 @@ type CookieOptions = {
|
|
|
7
9
|
secure?: boolean,
|
|
8
10
|
};
|
|
9
11
|
|
|
12
|
+
type CookieAttributes = {
|
|
13
|
+
path: string,
|
|
14
|
+
expires?: number,
|
|
15
|
+
sameSite?: string,
|
|
16
|
+
secure?: boolean,
|
|
17
|
+
};
|
|
18
|
+
|
|
10
19
|
/**
|
|
11
20
|
*/
|
|
12
21
|
const getCookie = (name: string): null | string => {
|
|
13
|
-
|
|
14
|
-
const value = `;${document.cookie}`;
|
|
15
|
-
const parts = value.split(`; ${name}=`);
|
|
16
|
-
if (parts.length === 2) {
|
|
17
|
-
return parts.pop().split(";").shift();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return null;
|
|
22
|
+
return Cookies.get(name);
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -28,31 +29,24 @@ const setCookie = (
|
|
|
28
29
|
value: any,
|
|
29
30
|
{ days, sameSite = "Strict", secure }: CookieOptions = {}
|
|
30
31
|
) => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
let sameSitePart = "";
|
|
41
|
-
if (sameSite) {
|
|
42
|
-
sameSitePart = `; SameSite=${sameSite}`;
|
|
43
|
-
}
|
|
44
|
-
const securePart = secure ? "Secure" : "";
|
|
45
|
-
|
|
46
|
-
document.cookie = `${valuePart}${expires}${sameSitePart}${securePart}; path=${BASE}`;
|
|
32
|
+
const attributes: CookieAttributes = { path: BASE };
|
|
33
|
+
if (days) {
|
|
34
|
+
attributes.expires = days;
|
|
35
|
+
}
|
|
36
|
+
if (sameSite) {
|
|
37
|
+
attributes.sameSite = sameSite;
|
|
38
|
+
}
|
|
39
|
+
if (secure) {
|
|
40
|
+
attributes.secure = secure;
|
|
47
41
|
}
|
|
42
|
+
|
|
43
|
+
Cookies.set(name, value, attributes);
|
|
48
44
|
};
|
|
49
45
|
|
|
50
46
|
/**
|
|
51
47
|
*/
|
|
52
48
|
const clearCookie = (name: string) => {
|
|
53
|
-
|
|
54
|
-
document.cookie = `${name}=; Max-Age=-99999999;`;
|
|
55
|
-
}
|
|
49
|
+
Cookies.remove(name, { path: BASE });
|
|
56
50
|
};
|
|
57
51
|
|
|
58
52
|
export { getCookie, setCookie, clearCookie };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { getCookie, setCookie, clearCookie } from "../Cookies";
|
|
2
|
+
|
|
3
|
+
describe("cookies util", () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
Object.defineProperty(
|
|
6
|
+
window.document,
|
|
7
|
+
"cookie",
|
|
8
|
+
(function (cookies) {
|
|
9
|
+
return {
|
|
10
|
+
get: function _get() {
|
|
11
|
+
const output = [];
|
|
12
|
+
for (const cookieName in cookies) {
|
|
13
|
+
output.push(cookieName + "=" + cookies[cookieName]);
|
|
14
|
+
}
|
|
15
|
+
return output.join("; ");
|
|
16
|
+
},
|
|
17
|
+
set: function _set(s) {
|
|
18
|
+
const indexOfSeparator = s.indexOf("=");
|
|
19
|
+
const key = s.substr(0, indexOfSeparator);
|
|
20
|
+
const value = s.substring(indexOfSeparator + 1);
|
|
21
|
+
const valueWithoutAttributes = value.substr(0, value.indexOf(";"));
|
|
22
|
+
|
|
23
|
+
if (valueWithoutAttributes === "") {
|
|
24
|
+
delete cookies[key];
|
|
25
|
+
} else {
|
|
26
|
+
cookies[key] = value;
|
|
27
|
+
}
|
|
28
|
+
return key + "=" + value;
|
|
29
|
+
},
|
|
30
|
+
reset: function _reset() {
|
|
31
|
+
cookies = {};
|
|
32
|
+
},
|
|
33
|
+
configurable: true,
|
|
34
|
+
};
|
|
35
|
+
})({})
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("should be able retrieve cookies by name", () => {
|
|
40
|
+
setCookie("newCookie", "test");
|
|
41
|
+
expect(getCookie("newCookie")).toBe("test");
|
|
42
|
+
|
|
43
|
+
setCookie("newCookie2", "test2");
|
|
44
|
+
expect(getCookie("newCookie")).toBe("test");
|
|
45
|
+
expect(getCookie("newCookie2")).toBe("test2");
|
|
46
|
+
|
|
47
|
+
clearCookie("newCookie2");
|
|
48
|
+
expect(getCookie("newCookie")).toBe("test");
|
|
49
|
+
expect(getCookie("newCookie2")).toBeUndefined();
|
|
50
|
+
});
|
|
51
|
+
});
|
package/src/utils/fetch/xhr.js
CHANGED
|
@@ -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
|
/**
|