@eui/core 18.0.0-rc.32 → 18.0.0-rc.34
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/docs/dependencies.html +1 -1
- package/docs/injectables/LocalStorageService.html +12 -1
- package/docs/injectables/StoreService.html +12 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/functions.html +284 -0
- package/docs/miscellaneous/variables.html +58 -21
- package/esm2022/lib/services/storage/local-storage.service.mjs +36 -25
- package/esm2022/lib/services/store/reducers/meta.reducers.mjs +46 -32
- package/esm2022/lib/services/store/store.service.mjs +17 -9
- package/esm2022/lib/services/store/store.service.mock.mjs +3 -2
- package/fesm2022/eui-core.mjs +95 -65
- package/fesm2022/eui-core.mjs.map +1 -1
- package/lib/services/storage/local-storage.service.d.ts +3 -2
- package/lib/services/storage/local-storage.service.d.ts.map +1 -1
- package/lib/services/store/reducers/meta.reducers.d.ts +11 -1
- package/lib/services/store/reducers/meta.reducers.d.ts.map +1 -1
- package/lib/services/store/store.service.d.ts +3 -2
- package/lib/services/store/store.service.d.ts.map +1 -1
- package/lib/services/store/store.service.mock.d.ts +1 -0
- package/lib/services/store/store.service.mock.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,21 +1,31 @@
|
|
|
1
|
+
import { inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
1
3
|
import { CoreAppActionTypes } from '../actions/app.actions';
|
|
2
4
|
import * as extendProxy from 'extend';
|
|
3
5
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
4
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
7
|
const extend = extendProxy.default || extendProxy;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
export function localStorageSync(reducer, platformId) {
|
|
9
|
+
if (platformId) {
|
|
10
|
+
return (reducer) => {
|
|
11
|
+
return cb(reducer, isPlatformBrowser(platformId) ? localStorage : null);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const platformId = inject(PLATFORM_ID, { optional: true });
|
|
16
|
+
return cb(reducer, isPlatformBrowser(platformId) ? localStorage : null);
|
|
17
|
+
}
|
|
12
18
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
export function sessionStorageSync(reducer, platformId) {
|
|
20
|
+
if (platformId) {
|
|
21
|
+
return (reducer) => {
|
|
22
|
+
return cb(reducer, isPlatformBrowser(platformId) ? sessionStorage : null);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const platformId = inject(PLATFORM_ID, { optional: true });
|
|
27
|
+
return cb(reducer, isPlatformBrowser(platformId) ? sessionStorage : null);
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
30
|
// Keys that are allowed to be synced with NgRx state from BrowserStorage
|
|
21
31
|
const disallowedKeys = ['loadedConfigModules', 'connect', 'currentModule', 'status', 'apiQueue'];
|
|
@@ -42,6 +52,9 @@ const filterAppState = (app) => {
|
|
|
42
52
|
* @param storage Type of storage to load the state from
|
|
43
53
|
*/
|
|
44
54
|
export const loadState = (storage = localStorage) => {
|
|
55
|
+
if (!storage) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
45
58
|
try {
|
|
46
59
|
// by default falls back to localStorage
|
|
47
60
|
const serializedState = storage.getItem('state');
|
|
@@ -64,28 +77,29 @@ const cb = (reducer, storage) => (state, action) => {
|
|
|
64
77
|
// We load the state from a storage and compare the version and userId with the provided ones.
|
|
65
78
|
// If they are the same, we merge the local state into the initial state.
|
|
66
79
|
// If there is a mismatch, we don't merge the local state, but update only the initial state.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
if (storage) {
|
|
81
|
+
// load the state from the localStorage
|
|
82
|
+
const localState = loadState(storage);
|
|
83
|
+
// extract the details about user and app version from the action payload
|
|
84
|
+
const payloadVersion = action.payload?.version;
|
|
85
|
+
if (localState) {
|
|
86
|
+
// TODO: Why all these checks here? What is the purpose of this code?
|
|
87
|
+
// extract the details about user and app version from the storage state
|
|
88
|
+
const localVersion = localState?.app?.version;
|
|
89
|
+
// const localUserId = localState.user && localState.user.userId;
|
|
90
|
+
const isVersionOK = !localVersion || !payloadVersion || localVersion === payloadVersion;
|
|
91
|
+
// const isUserIdOK = (localUserId === payloadUserId);
|
|
92
|
+
// update the entire state with deep merge of states, if the version and user are the same
|
|
93
|
+
if (isVersionOK) {
|
|
94
|
+
state = extend(true, {}, state, localState);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// update the app version, if defined
|
|
98
|
+
if (payloadVersion) {
|
|
99
|
+
state = { ...state, app: { ...state?.app, version: payloadVersion } };
|
|
82
100
|
}
|
|
83
|
-
}
|
|
84
|
-
// update the app version, if defined
|
|
85
|
-
if (payloadVersion) {
|
|
86
|
-
state = { ...state, app: { ...state?.app, version: payloadVersion } };
|
|
87
101
|
}
|
|
88
102
|
}
|
|
89
103
|
return reducer(state, action);
|
|
90
104
|
};
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvbWV0YS5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFFN0UsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFFdEMsbUhBQW1IO0FBQ25ILDhEQUE4RDtBQUM5RCxNQUFNLE1BQU0sR0FBUyxXQUFZLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztBQUV6RDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQXNCLE9BQXlCO0lBQzNFLE9BQU8sRUFBRSxDQUFJLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFzQixPQUF5QjtJQUM3RSxPQUFPLEVBQUUsQ0FBSSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRWpHOzs7R0FHRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBYSxFQUFZLEVBQUU7SUFDL0MsaUVBQWlFO0lBQ2pFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNQLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNaLG1EQUFtRDtTQUNsRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxzREFBc0Q7U0FDckQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFzQixVQUFtQixZQUFZLEVBQUssRUFBRTtJQUNqRixJQUFJLENBQUM7UUFDRCx3Q0FBd0M7UUFDeEMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxJQUFJLGVBQWUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLElBQUksS0FBSyxHQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFM0MsOEJBQThCO1FBQzlCLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFFdEQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxFQUFFLEdBQ0osQ0FBc0IsT0FBeUIsRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FDckUsQ0FBQyxLQUFRLEVBQUUsTUFBYyxFQUFLLEVBQUU7SUFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hELHlEQUF5RDtRQUN6RCw4RkFBOEY7UUFDOUYseUVBQXlFO1FBQ3pFLDZGQUE2RjtRQUU3Rix1Q0FBdUM7UUFDdkMsTUFBTSxVQUFVLEdBQU0sU0FBUyxDQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLHlFQUF5RTtRQUN6RSxNQUFNLE9BQU8sR0FBSSxNQUEwQixDQUFDLE9BQU8sQ0FBQztRQUNwRCxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsT0FBTyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixxRUFBcUU7WUFDckUsd0VBQXdFO1lBQ3hFLE1BQU0sWUFBWSxHQUFHLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDO1lBQzlDLGlFQUFpRTtZQUVqRSxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLGNBQWMsSUFBSSxZQUFZLEtBQUssY0FBYyxDQUFDO1lBQ3hGLHNEQUFzRDtZQUV0RCwwRkFBMEY7WUFDMUYsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDTCxDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDakIsS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDO1FBQzFFLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgQWN0aW9uUmVkdWNlciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvcmVBcHBBY3Rpb25UeXBlcywgSW5pdFN0b3JlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9hcHAuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQ29yZVN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCAqIGFzIGV4dGVuZFByb3h5IGZyb20gJ2V4dGVuZCc7XG5cbi8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBleHRlbmQgPSAoPGFueT5leHRlbmRQcm94eSkuZGVmYXVsdCB8fCBleHRlbmRQcm94eTtcblxuLyoqXG4gKiBVdGlsaXR5IG1ldGEtcmVkdWNlciB0byBsb2FkIHRoZSBzdGF0ZSBmcm9tIHRoZSBsb2NhbCBzdG9yYWdlXG4gKiBAcGFyYW0gcmVkdWNlciB0aGUgYWN0aW9uIHJlZHVjZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZVN5bmM8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPik6IChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pID0+IFMge1xuICAgIHJldHVybiBjYjxTPihyZWR1Y2VyLCBsb2NhbFN0b3JhZ2UpO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgbWV0YS1yZWR1Y2VyIHRvIGxvYWQgdGhlIHN0YXRlIGZyb20gdGhlIHNlc3Npb24gc3RvcmFnZVxuICogQHBhcmFtIHJlZHVjZXIgdGhlIGFjdGlvbiByZWR1Y2VyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZVN5bmM8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPik6IChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pID0+IFMge1xuICAgIHJldHVybiBjYjxTPihyZWR1Y2VyLCBzZXNzaW9uU3RvcmFnZSk7XG59XG5cbi8vIEtleXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBzeW5jZWQgd2l0aCBOZ1J4IHN0YXRlIGZyb20gQnJvd3NlclN0b3JhZ2VcbmNvbnN0IGRpc2FsbG93ZWRLZXlzID0gWydsb2FkZWRDb25maWdNb2R1bGVzJywgJ2Nvbm5lY3QnLCAnY3VycmVudE1vZHVsZScsICdzdGF0dXMnLCAnYXBpUXVldWUnXTtcblxuLyoqXG4gKiBmaWx0ZXJzIHRoZSBBcHBTdGF0ZSBieSByZW1vdmluZyB0aG9zZSBrZXlzIGZyb20gdGhlIHN0YXRlIGFuZCByZXR1cm4gYSBuZXcgc3RhdGUgT2JqZWN0XG4gKiBAcGFyYW0gYXBwIHRoZSBBcHBTdGF0ZVxuICovXG5jb25zdCBmaWx0ZXJBcHBTdGF0ZSA9IChhcHA6IEFwcFN0YXRlKTogQXBwU3RhdGUgPT4ge1xuICAgIC8vIGluIGNhc2UgYXBwIGlzIHVuZGVmaW5lZCBvciBudWxsIGl0IHNob3VsZCByZXR1cm4gZW1wdHkgb2JqZWN0XG4gICAgaWYgKCFhcHApIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIE9iamVjdC5rZXlzKGFwcClcbiAgICAgICAgICAgIC8vIHNlbGVjdCBrZXlzIHRoYXQgYXJlIHByZXNlbnQgaW4gdGhlIGFsbG93ZWQgbGlzdFxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiAhZGlzYWxsb3dlZEtleXMuaW5jbHVkZXMoa2V5KSlcbiAgICAgICAgICAgIC8vIGJ1aWxkIGEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdGhlIGFsbG93ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBvYmpba2V5XSA9IGFwcFtrZXldO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9LCB7fSlcbiAgICApO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHN0b3JhZ2UgVHlwZSBvZiBzdG9yYWdlIHRvIGxvYWQgdGhlIHN0YXRlIGZyb21cbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRTdGF0ZSA9IDxTIGV4dGVuZHMgQ29yZVN0YXRlPihzdG9yYWdlOiBTdG9yYWdlID0gbG9jYWxTdG9yYWdlKTogUyA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gYnkgZGVmYXVsdCBmYWxscyBiYWNrIHRvIGxvY2FsU3RvcmFnZVxuICAgICAgICBjb25zdCBzZXJpYWxpemVkU3RhdGUgPSBzdG9yYWdlLmdldEl0ZW0oJ3N0YXRlJyk7XG5cbiAgICAgICAgaWYgKHNlcmlhbGl6ZWRTdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRlc2VyaWFsaXplIHN0YXRlXG4gICAgICAgIGxldCBzdGF0ZTogUyA9IEpTT04ucGFyc2Uoc2VyaWFsaXplZFN0YXRlKTtcblxuICAgICAgICAvLyBmaWx0ZXIgQXBwU3RhdGUgYW5kIHJlcGxhY2VcbiAgICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCBhcHA6IGZpbHRlckFwcFN0YXRlKHN0YXRlPy5hcHApIH07XG5cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn07XG5cbmNvbnN0IGNiID1cbiAgICA8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPiwgc3RvcmFnZTogU3RvcmFnZSkgPT5cbiAgICAoc3RhdGU6IFMsIGFjdGlvbjogQWN0aW9uKTogUyA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQ29yZUFwcEFjdGlvblR5cGVzLklOSVRfU1RPUkUpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgYWN0aW9uIG11c3QgYmUgZGlzcGF0Y2hlZCBmcm9tIGFuIGFwcCBpbml0aWFsaXplclxuICAgICAgICAgICAgLy8gV2UgbG9hZCB0aGUgc3RhdGUgZnJvbSBhIHN0b3JhZ2UgYW5kIGNvbXBhcmUgdGhlIHZlcnNpb24gYW5kIHVzZXJJZCB3aXRoIHRoZSBwcm92aWRlZCBvbmVzLlxuICAgICAgICAgICAgLy8gSWYgdGhleSBhcmUgdGhlIHNhbWUsIHdlIG1lcmdlIHRoZSBsb2NhbCBzdGF0ZSBpbnRvIHRoZSBpbml0aWFsIHN0YXRlLlxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCwgd2UgZG9uJ3QgbWVyZ2UgdGhlIGxvY2FsIHN0YXRlLCBidXQgdXBkYXRlIG9ubHkgdGhlIGluaXRpYWwgc3RhdGUuXG5cbiAgICAgICAgICAgIC8vIGxvYWQgdGhlIHN0YXRlIGZyb20gdGhlIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgY29uc3QgbG9jYWxTdGF0ZTogUyA9IGxvYWRTdGF0ZTxTPihzdG9yYWdlKTtcblxuICAgICAgICAgICAgLy8gZXh0cmFjdCB0aGUgZGV0YWlscyBhYm91dCB1c2VyIGFuZCBhcHAgdmVyc2lvbiBmcm9tIHRoZSBhY3Rpb24gcGF5bG9hZFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IChhY3Rpb24gYXMgSW5pdFN0b3JlQWN0aW9uKS5wYXlsb2FkO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZFZlcnNpb24gPSBwYXlsb2FkPy52ZXJzaW9uO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxTdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFdoeSBhbGwgdGhlc2UgY2hlY2tzIGhlcmU/IFdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjb2RlP1xuICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgdGhlIGRldGFpbHMgYWJvdXQgdXNlciBhbmQgYXBwIHZlcnNpb24gZnJvbSB0aGUgc3RvcmFnZSBzdGF0ZVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsVmVyc2lvbiA9IGxvY2FsU3RhdGU/LmFwcD8udmVyc2lvbjtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBsb2NhbFVzZXJJZCA9IGxvY2FsU3RhdGUudXNlciAmJiBsb2NhbFN0YXRlLnVzZXIudXNlcklkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNWZXJzaW9uT0sgPSAhbG9jYWxWZXJzaW9uIHx8ICFwYXlsb2FkVmVyc2lvbiB8fCBsb2NhbFZlcnNpb24gPT09IHBheWxvYWRWZXJzaW9uO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlzVXNlcklkT0sgPSAobG9jYWxVc2VySWQgPT09IHBheWxvYWRVc2VySWQpO1xuXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBlbnRpcmUgc3RhdGUgd2l0aCBkZWVwIG1lcmdlIG9mIHN0YXRlcywgaWYgdGhlIHZlcnNpb24gYW5kIHVzZXIgYXJlIHRoZSBzYW1lXG4gICAgICAgICAgICAgICAgaWYgKGlzVmVyc2lvbk9LKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gZXh0ZW5kKHRydWUsIHt9LCBzdGF0ZSwgbG9jYWxTdGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGFwcCB2ZXJzaW9uLCBpZiBkZWZpbmVkXG4gICAgICAgICAgICBpZiAocGF5bG9hZFZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIGFwcDogeyAuLi5zdGF0ZT8uYXBwLCB2ZXJzaW9uOiBwYXlsb2FkVmVyc2lvbiB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9O1xuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvbWV0YS5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFFN0UsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFFdEMsbUhBQW1IO0FBQ25ILDhEQUE4RDtBQUM5RCxNQUFNLE1BQU0sR0FBUyxXQUFZLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQztBQVl6RCxNQUFNLFVBQVUsZ0JBQWdCLENBQXNCLE9BQXlCLEVBQUUsVUFBb0I7SUFDakcsSUFBRyxVQUFVLEVBQUUsQ0FBQztRQUNaLE9BQU8sQ0FBc0IsT0FBeUIsRUFBbUMsRUFBRTtZQUN2RixPQUFPLEVBQUUsQ0FBSSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsT0FBTyxFQUFFLENBQUksT0FBTyxFQUFFLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7QUFDTCxDQUFDO0FBWUQsTUFBTSxVQUFVLGtCQUFrQixDQUFzQixPQUF5QixFQUFFLFVBQW9C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QU0sY0FBYyxHQUFJLE1BQTBCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUVwRSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNiLHFFQUFxRTtnQkFDckUsd0VBQXdFO2dCQUN4RSxNQUFNLFlBQVksR0FBRyxVQUFVLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztnQkFDOUMsaUVBQWlFO2dCQUVqRSxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLGNBQWMsSUFBSSxZQUFZLEtBQUssY0FBYyxDQUFDO2dCQUN4RixzREFBc0Q7Z0JBRXRELDBGQUEwRjtnQkFDMUYsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQztZQUVELHFDQUFxQztZQUNyQyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNqQixLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDMUUsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uUmVkdWNlciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvcmVBcHBBY3Rpb25UeXBlcywgSW5pdFN0b3JlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9hcHAuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQ29yZVN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCAqIGFzIGV4dGVuZFByb3h5IGZyb20gJ2V4dGVuZCc7XG5cbi8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5jb25zdCBleHRlbmQgPSAoPGFueT5leHRlbmRQcm94eSkuZGVmYXVsdCB8fCBleHRlbmRQcm94eTtcblxuLyoqXG4gKiBVdGlsaXR5IG1ldGEtcmVkdWNlciB0byBsb2FkIHRoZSBzdGF0ZSBmcm9tIHRoZSBsb2NhbCBzdG9yYWdlXG4gKiBAcGFyYW0gcGxhdGZvcm1JZCB0aGUgcGxhdGZvcm1JZCBiYXNlZCBvbiBQTEFURk9STV9JRCB0b2tlbiBvZiBBbmd1bGFyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VTeW5jPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHBsYXRmb3JtSWQ6IHVua25vd24pOiAoKHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uz4pID0+IChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pID0+IFMpO1xuLyoqXG4gKiBVdGlsaXR5IG1ldGEtcmVkdWNlciB0byBsb2FkIHRoZSBzdGF0ZSBmcm9tIHRoZSBsb2NhbCBzdG9yYWdlXG4gKiBAcGFyYW0gcmVkdWNlciB0aGUgYWN0aW9uIHJlZHVjZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZVN5bmM8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPik6IChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pID0+IFM7XG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlU3luYzxTIGV4dGVuZHMgQ29yZVN0YXRlPihyZWR1Y2VyOiBBY3Rpb25SZWR1Y2VyPFM+LCBwbGF0Zm9ybUlkPzogdW5rbm93bik6IEZ1bmN0aW9uIHtcbiAgICBpZihwbGF0Zm9ybUlkKSB7XG4gICAgICAgIHJldHVybiA8VCBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxUPik6IChzdGF0ZTogVCwgYWN0aW9uOiBBY3Rpb24pID0+IFQgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNiPFQ+KHJlZHVjZXIsIGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpID8gbG9jYWxTdG9yYWdlIDogbnVsbCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lELCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4gY2I8Uz4ocmVkdWNlciwgaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkgPyBsb2NhbFN0b3JhZ2UgOiBudWxsKTtcbiAgICB9XG59XG5cbi8qKlxuICogVXRpbGl0eSBtZXRhLXJlZHVjZXIgdG8gbG9hZCB0aGUgc3RhdGUgZnJvbSB0aGUgc2Vzc2lvbiBzdG9yYWdlXG4gKiBAcGFyYW0gcGxhdGZvcm1JZCB0aGUgcGxhdGZvcm1JZCBiYXNlZCBvbiBQTEFURk9STV9JRCB0b2tlbiBvZiBBbmd1bGFyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZVN5bmM8UyBleHRlbmRzIENvcmVTdGF0ZT4ocGxhdGZvcm1JZDogdW5rbm93bik6ICgocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPikgPT4gKHN0YXRlOiBTLCBhY3Rpb246IEFjdGlvbikgPT4gUyk7XG4vKipcbiAqIFV0aWxpdHkgbWV0YS1yZWR1Y2VyIHRvIGxvYWQgdGhlIHN0YXRlIGZyb20gdGhlIHNlc3Npb24gc3RvcmFnZVxuICogQHBhcmFtIHJlZHVjZXIgdGhlIGFjdGlvbiByZWR1Y2VyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZVN5bmM8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPik6IChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pID0+IFM7XG5leHBvcnQgZnVuY3Rpb24gc2Vzc2lvblN0b3JhZ2VTeW5jPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uz4sIHBsYXRmb3JtSWQ/OiB1bmtub3duKTogRnVuY3Rpb24ge1xuICAgIGlmKHBsYXRmb3JtSWQpIHtcbiAgICAgICAgcmV0dXJuIDxUIGV4dGVuZHMgQ29yZVN0YXRlPihyZWR1Y2VyOiBBY3Rpb25SZWR1Y2VyPFQ+KTogKHN0YXRlOiBULCBhY3Rpb246IEFjdGlvbikgPT4gVCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2I8VD4ocmVkdWNlciwgaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkgPyBzZXNzaW9uU3RvcmFnZSA6IG51bGwpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIGNiPFM+KHJlZHVjZXIsIGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpID8gc2Vzc2lvblN0b3JhZ2UgOiBudWxsKTtcbiAgICB9XG59XG5cbi8vIEtleXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBzeW5jZWQgd2l0aCBOZ1J4IHN0YXRlIGZyb20gQnJvd3NlclN0b3JhZ2VcbmNvbnN0IGRpc2FsbG93ZWRLZXlzID0gWydsb2FkZWRDb25maWdNb2R1bGVzJywgJ2Nvbm5lY3QnLCAnY3VycmVudE1vZHVsZScsICdzdGF0dXMnLCAnYXBpUXVldWUnXTtcblxuLyoqXG4gKiBmaWx0ZXJzIHRoZSBBcHBTdGF0ZSBieSByZW1vdmluZyB0aG9zZSBrZXlzIGZyb20gdGhlIHN0YXRlIGFuZCByZXR1cm4gYSBuZXcgc3RhdGUgT2JqZWN0XG4gKiBAcGFyYW0gYXBwIHRoZSBBcHBTdGF0ZVxuICovXG5jb25zdCBmaWx0ZXJBcHBTdGF0ZSA9IChhcHA6IEFwcFN0YXRlKTogQXBwU3RhdGUgPT4ge1xuICAgIC8vIGluIGNhc2UgYXBwIGlzIHVuZGVmaW5lZCBvciBudWxsIGl0IHNob3VsZCByZXR1cm4gZW1wdHkgb2JqZWN0XG4gICAgaWYgKCFhcHApIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIE9iamVjdC5rZXlzKGFwcClcbiAgICAgICAgICAgIC8vIHNlbGVjdCBrZXlzIHRoYXQgYXJlIHByZXNlbnQgaW4gdGhlIGFsbG93ZWQgbGlzdFxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiAhZGlzYWxsb3dlZEtleXMuaW5jbHVkZXMoa2V5KSlcbiAgICAgICAgICAgIC8vIGJ1aWxkIGEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdGhlIGFsbG93ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBvYmpba2V5XSA9IGFwcFtrZXldO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9LCB7fSlcbiAgICApO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHN0b3JhZ2UgVHlwZSBvZiBzdG9yYWdlIHRvIGxvYWQgdGhlIHN0YXRlIGZyb21cbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRTdGF0ZSA9IDxTIGV4dGVuZHMgQ29yZVN0YXRlPihzdG9yYWdlOiBTdG9yYWdlIHwgbnVsbCA9IGxvY2FsU3RvcmFnZSk6IFMgPT4ge1xuICAgIGlmICghc3RvcmFnZSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIC8vIGJ5IGRlZmF1bHQgZmFsbHMgYmFjayB0byBsb2NhbFN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZFN0YXRlID0gc3RvcmFnZS5nZXRJdGVtKCdzdGF0ZScpO1xuXG4gICAgICAgIGlmIChzZXJpYWxpemVkU3RhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkZXNlcmlhbGl6ZSBzdGF0ZVxuICAgICAgICBsZXQgc3RhdGU6IFMgPSBKU09OLnBhcnNlKHNlcmlhbGl6ZWRTdGF0ZSk7XG5cbiAgICAgICAgLy8gZmlsdGVyIEFwcFN0YXRlIGFuZCByZXBsYWNlXG4gICAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgYXBwOiBmaWx0ZXJBcHBTdGF0ZShzdGF0ZT8uYXBwKSB9O1xuXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5jb25zdCBjYiA9XG4gICAgPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uz4sIHN0b3JhZ2U6IFN0b3JhZ2UgfCBudWxsKSA9PlxuICAgIChzdGF0ZTogUywgYWN0aW9uOiBBY3Rpb24pOiBTID0+IHtcbiAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBDb3JlQXBwQWN0aW9uVHlwZXMuSU5JVF9TVE9SRSkge1xuICAgICAgICAgICAgLy8gVGhpcyBhY3Rpb24gbXVzdCBiZSBkaXNwYXRjaGVkIGZyb20gYW4gYXBwIGluaXRpYWxpemVyXG4gICAgICAgICAgICAvLyBXZSBsb2FkIHRoZSBzdGF0ZSBmcm9tIGEgc3RvcmFnZSBhbmQgY29tcGFyZSB0aGUgdmVyc2lvbiBhbmQgdXNlcklkIHdpdGggdGhlIHByb3ZpZGVkIG9uZXMuXG4gICAgICAgICAgICAvLyBJZiB0aGV5IGFyZSB0aGUgc2FtZSwgd2UgbWVyZ2UgdGhlIGxvY2FsIHN0YXRlIGludG8gdGhlIGluaXRpYWwgc3RhdGUuXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIG1pc21hdGNoLCB3ZSBkb24ndCBtZXJnZSB0aGUgbG9jYWwgc3RhdGUsIGJ1dCB1cGRhdGUgb25seSB0aGUgaW5pdGlhbCBzdGF0ZS5cblxuICAgICAgICAgICAgaWYgKHN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBsb2FkIHRoZSBzdGF0ZSBmcm9tIHRoZSBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbFN0YXRlOiBTID0gbG9hZFN0YXRlPFM+KHN0b3JhZ2UpO1xuXG4gICAgICAgICAgICAgICAgLy8gZXh0cmFjdCB0aGUgZGV0YWlscyBhYm91dCB1c2VyIGFuZCBhcHAgdmVyc2lvbiBmcm9tIHRoZSBhY3Rpb24gcGF5bG9hZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWRWZXJzaW9uID0gKGFjdGlvbiBhcyBJbml0U3RvcmVBY3Rpb24pLnBheWxvYWQ/LnZlcnNpb247XG5cbiAgICAgICAgICAgICAgICBpZiAobG9jYWxTdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBXaHkgYWxsIHRoZXNlIGNoZWNrcyBoZXJlPyBXaGF0IGlzIHRoZSBwdXJwb3NlIG9mIHRoaXMgY29kZT9cbiAgICAgICAgICAgICAgICAgICAgLy8gZXh0cmFjdCB0aGUgZGV0YWlscyBhYm91dCB1c2VyIGFuZCBhcHAgdmVyc2lvbiBmcm9tIHRoZSBzdG9yYWdlIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsVmVyc2lvbiA9IGxvY2FsU3RhdGU/LmFwcD8udmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgbG9jYWxVc2VySWQgPSBsb2NhbFN0YXRlLnVzZXIgJiYgbG9jYWxTdGF0ZS51c2VyLnVzZXJJZDtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZlcnNpb25PSyA9ICFsb2NhbFZlcnNpb24gfHwgIXBheWxvYWRWZXJzaW9uIHx8IGxvY2FsVmVyc2lvbiA9PT0gcGF5bG9hZFZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlzVXNlcklkT0sgPSAobG9jYWxVc2VySWQgPT09IHBheWxvYWRVc2VySWQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgZW50aXJlIHN0YXRlIHdpdGggZGVlcCBtZXJnZSBvZiBzdGF0ZXMsIGlmIHRoZSB2ZXJzaW9uIGFuZCB1c2VyIGFyZSB0aGUgc2FtZVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNWZXJzaW9uT0spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gZXh0ZW5kKHRydWUsIHt9LCBzdGF0ZSwgbG9jYWxTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGFwcCB2ZXJzaW9uLCBpZiBkZWZpbmVkXG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRWZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgYXBwOiB7IC4uLnN0YXRlPy5hcHAsIHZlcnNpb246IHBheWxvYWRWZXJzaW9uIH0gfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICB9O1xuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Injectable, Optional } from '@angular/core';
|
|
1
|
+
import { Injectable, Optional, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import { throwError } from 'rxjs';
|
|
3
4
|
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
4
5
|
import { InitStoreAction } from './actions';
|
|
@@ -14,23 +15,27 @@ export var BrowserStorageType;
|
|
|
14
15
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
15
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
17
|
export class StoreService {
|
|
17
|
-
constructor(store, logService) {
|
|
18
|
+
constructor(store, logService, platformId) {
|
|
18
19
|
this.store = store;
|
|
19
20
|
this.logService = logService;
|
|
21
|
+
this.platformId = platformId;
|
|
20
22
|
/**
|
|
21
23
|
* autoSave handlers to call before saving in local Storage
|
|
22
24
|
*/
|
|
23
25
|
this._autoSaveHandlers = {};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
27
|
+
this._storage = localStorage;
|
|
28
|
+
}
|
|
26
29
|
}
|
|
27
30
|
// use init with just version info, to update to user state, UserService.updateState
|
|
28
31
|
// initializeStore(version?: string, userDetails?: BaseUserDetails) {
|
|
29
32
|
// this.dispatch(new InitStoreAction({ version, userDetails }));
|
|
30
33
|
// }
|
|
31
34
|
init(version, storageType) {
|
|
32
|
-
this.
|
|
33
|
-
|
|
35
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
36
|
+
this.dispatch(new InitStoreAction({ version }));
|
|
37
|
+
this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
addAutoSaveHandler(stateSlice, handler) {
|
|
36
41
|
if (!this.store) {
|
|
@@ -98,13 +103,13 @@ export class StoreService {
|
|
|
98
103
|
});
|
|
99
104
|
try {
|
|
100
105
|
const serializedState = JSON.stringify(stateToSave);
|
|
101
|
-
this._storage
|
|
106
|
+
this._storage?.setItem('state', serializedState);
|
|
102
107
|
}
|
|
103
108
|
catch (err) {
|
|
104
109
|
// Ignore write errors.
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, deps: [{ token: i1.Store, optional: true }, { token: i2.LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, deps: [{ token: i1.Store, optional: true }, { token: i2.LogService, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
108
113
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, providedIn: 'root' }); }
|
|
109
114
|
}
|
|
110
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, decorators: [{
|
|
@@ -116,5 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
116
121
|
type: Optional
|
|
117
122
|
}] }, { type: i2.LogService, decorators: [{
|
|
118
123
|
type: Optional
|
|
124
|
+
}] }, { type: undefined, decorators: [{
|
|
125
|
+
type: Inject,
|
|
126
|
+
args: [PLATFORM_ID]
|
|
119
127
|
}] }] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRzVDLE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDMUIsNkRBQUssQ0FBQTtJQUNMLGlFQUFPLENBQUE7QUFDWCxDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQUVELGdGQUFnRjtBQUloRixtSEFBbUg7QUFDbkgsOERBQThEO0FBQzlELE1BQU0sT0FBTyxZQUFZO0lBUXJCLFlBQzBCLEtBQWUsRUFDZixVQUFzQjtRQUR0QixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVRoRDs7V0FFRztRQUNPLHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDOUQseURBQXlEO1FBQ2pELGFBQVEsR0FBWSxZQUFZLENBQUM7SUFLdEMsQ0FBQztJQUVKLG9GQUFvRjtJQUNwRixxRUFBcUU7SUFDckUsb0VBQW9FO0lBQ3BFLElBQUk7SUFDSixJQUFJLENBQUMsT0FBZ0IsRUFBRSxXQUFnQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxLQUFLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENB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SUFBSSxDQUFDO1lBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDWCx1QkFBdUI7UUFDM0IsQ0FBQztJQUNMLENBQUM7OEdBdEdRLFlBQVk7a0hBQVosWUFBWSxjQUpULE1BQU07OzJGQUlULFlBQVk7a0JBTHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFZUSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uUmVkdWNlciwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nJztcbmltcG9ydCB7IEluaXRTdG9yZUFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBDb3JlU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBCcm93c2VyU3RvcmFnZVR5cGUge1xuICAgIGxvY2FsLFxuICAgIHNlc3Npb24sXG59XG5cbi8vIHRvZG8gc2hvdWxkIHN0YXkgaGVyZSBidXQgYWxsIHRoZSBzdG9yZSBkaXJlY3Rvcnkgc2hvdWxkIGJlIG1vdmVkIHVwcGVyIGxldmVsXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbi8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgU3RvcmVTZXJ2aWNlPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBhdXRvU2F2ZSBoYW5kbGVycyB0byBjYWxsIGJlZm9yZSBzYXZpbmcgaW4gbG9jYWwgU3RvcmFnZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYXV0b1NhdmVIYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9ID0ge307XG4gICAgLyoqIHN0b3JhZ2UgaW5zdGFuY2UgZS5nLiBsb2NhbFN0b3JhZ2UsIHNlc3Npb25TdG9yYWdlICovXG4gICAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPFQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbG9nU2VydmljZTogTG9nU2VydmljZSxcbiAgICApIHt9XG5cbiAgICAvLyB1c2UgaW5pdCB3aXRoIGp1c3QgdmVyc2lvbiBpbmZvLCB0byB1cGRhdGUgdG8gdXNlciBzdGF0ZSwgVXNlclNlcnZpY2UudXBkYXRlU3RhdGVcbiAgICAvLyBpbml0aWFsaXplU3RvcmUodmVyc2lvbj86IHN0cmluZywgdXNlckRldGFpbHM/OiBCYXNlVXNlckRldGFpbHMpIHtcbiAgICAvLyAgICAgdGhpcy5kaXNwYXRjaChuZXcgSW5pdFN0b3JlQWN0aW9uKHsgdmVyc2lvbiwgdXNlckRldGFpbHMgfSkpO1xuICAgIC8vIH1cbiAgICBpbml0KHZlcnNpb24/OiBzdHJpbmcsIHN0b3JhZ2VUeXBlPzogQnJvd3NlclN0b3JhZ2VUeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2gobmV3IEluaXRTdG9yZUFjdGlvbih7IHZlcnNpb24gfSkpO1xuXG4gICAgICAgIHRoaXMuX3N0b3JhZ2UgPSBzdG9yYWdlVHlwZSA9PT0gQnJvd3NlclN0b3JhZ2VUeXBlLnNlc3Npb24gPyBzZXNzaW9uU3RvcmFnZSA6IGxvY2FsU3RvcmFnZTtcbiAgICB9XG5cbiAgICBhZGRBdXRvU2F2ZUhhbmRsZXIoc3RhdGVTbGljZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2Uud2FybignU3RvcmVTZXJ2aWNlLmFkZEF1dG9TYXZlSGFuZGxlcigpIG5vdCBhdmFpbGFibGUgd2l0aG91dCBOR1JYJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXV0b1NhdmVIYW5kbGVyc1tzdGF0ZVNsaWNlXSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaGFuZGxlQXV0b1NhdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKGRlYm91bmNlVGltZSgxMDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUoc3RhdGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm94eSB0byBOR1JYIHN0b3JlLmRpc3BhdGNoKClcbiAgICAgKiB0aGF0IGFsbG93cyB0byBpbnRlcmNlcHQgaWYgdGhlIHN0b3JlIGlzIHByZXNlbnRcbiAgICAgKi9cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBkaXNwYXRjaChhY3Rpb246IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGRpc3BhdGNoQWN0aW9uKHN0YXRlOiBULCBhY3Rpb25LZXk6IHN0cmluZywgcmVkdWNlcjogQWN0aW9uUmVkdWNlcjxhbnksIEFjdGlvbj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuYWRkUmVkdWNlcihhY3Rpb25LZXksIHJlZHVjZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goeyB0eXBlOiBhY3Rpb25LZXksIHBheWxvYWQ6IHN0YXRlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJveHkgdG8gTkdSWCBzdG9yZS5zZWxlY3QoKVxuICAgICAqIHRoYXQgYWxsb3dzIHRvIGludGVyY2VwdCBpZiB0aGUgc3RvcmUgaXMgcHJlc2VudFxuICAgICAqL1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHNlbGVjdChrZXk6IGFueSk6IE9ic2VydmFibGU8VFthbnldPiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdOR1JYIFN0b3JlIG5vdCBjb25maWd1cmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlcnMgYW5kIHNhdmUgdGhlIHN0YXRlIHdpdGggdGhlIEJyb3dzZXIgc3RvcmFnZVxuICAgICAqIEBwYXJhbSBzdGF0ZSB0eXBlIG9mIENvcmVTdGF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzYXZlU3RhdGUoc3RhdGU6IENvcmVTdGF0ZSk6IHZvaWQge1xuICAgICAgICBsZXQgc3RhdGVUb1NhdmU6IENvcmVTdGF0ZSA9IHtcbiAgICAgICAgICAgIGFwcDogc3RhdGUuYXBwLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzdGF0ZS51c2VyKSB7XG4gICAgICAgICAgICBjb25zdCB7IHVzZXJJZCwgcHJlZmVyZW5jZXMgfSA9IHN0YXRlLnVzZXI7XG4gICAgICAgICAgICBzdGF0ZVRvU2F2ZS51c2VyID0geyB1c2VySWQsIHByZWZlcmVuY2VzIH07XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzKS5mb3JFYWNoKChzbGljZVN0YXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzW3NsaWNlU3RhdGVdO1xuICAgICAgICAgICAgc3RhdGVUb1NhdmUgPSBPYmplY3QuYXNzaWduKHN0YXRlVG9TYXZlLCB7IFtzbGljZVN0YXRlXTogaGFuZGxlcihzdGF0ZVtzbGljZVN0YXRlXSkgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkU3RhdGUgPSBKU09OLnN0cmluZ2lmeShzdGF0ZVRvU2F2ZSk7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldEl0ZW0oJ3N0YXRlJywgc2VyaWFsaXplZFN0YXRlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgd3JpdGUgZXJyb3JzLlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFHNUMsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUMxQiw2REFBSyxDQUFBO0lBQ0wsaUVBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBRUQsZ0ZBQWdGO0FBSWhGLG1IQUFtSDtBQUNuSCw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLFlBQVk7SUFRckIsWUFDMEIsS0FBZSxFQUNmLFVBQXNCLEVBQ2YsVUFBbUI7UUFGMUIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFTO1FBVnBEOztXQUVHO1FBQ08sc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQVMxRCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0ZBQW9GO0lBQ3BGLHFFQUFxRTtJQUNyRSxvRUFBb0U7SUFDcEUsSUFBSTtJQUNKLElB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QUMsVUFBa0IsRUFBRSxFQUFFO1lBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUM7WUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNYLHVCQUF1QjtRQUMzQixDQUFDO0lBQ0wsQ0FBQzs4R0E3R1EsWUFBWSxpR0FXVCxXQUFXO2tIQVhkLFlBQVksY0FKVCxNQUFNOzsyRkFJVCxZQUFZO2tCQUx4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBWVEsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uUmVkdWNlciwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nJztcbmltcG9ydCB7IEluaXRTdG9yZUFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBDb3JlU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5leHBvcnQgZW51bSBCcm93c2VyU3RvcmFnZVR5cGUge1xuICAgIGxvY2FsLFxuICAgIHNlc3Npb24sXG59XG5cbi8vIHRvZG8gc2hvdWxkIHN0YXkgaGVyZSBidXQgYWxsIHRoZSBzdG9yZSBkaXJlY3Rvcnkgc2hvdWxkIGJlIG1vdmVkIHVwcGVyIGxldmVsXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbi8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgU3RvcmVTZXJ2aWNlPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBhdXRvU2F2ZSBoYW5kbGVycyB0byBjYWxsIGJlZm9yZSBzYXZpbmcgaW4gbG9jYWwgU3RvcmFnZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYXV0b1NhdmVIYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9ID0ge307XG4gICAgLyoqIHN0b3JhZ2UgaW5zdGFuY2UgZS5nLiBsb2NhbFN0b3JhZ2UsIHNlc3Npb25TdG9yYWdlICovXG4gICAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPFQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbG9nU2VydmljZTogTG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiB1bmtub3duLFxuICAgICkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHVzZSBpbml0IHdpdGgganVzdCB2ZXJzaW9uIGluZm8sIHRvIHVwZGF0ZSB0byB1c2VyIHN0YXRlLCBVc2VyU2VydmljZS51cGRhdGVTdGF0ZVxuICAgIC8vIGluaXRpYWxpemVTdG9yZSh2ZXJzaW9uPzogc3RyaW5nLCB1c2VyRGV0YWlscz86IEJhc2VVc2VyRGV0YWlscykge1xuICAgIC8vICAgICB0aGlzLmRpc3BhdGNoKG5ldyBJbml0U3RvcmVBY3Rpb24oeyB2ZXJzaW9uLCB1c2VyRGV0YWlscyB9KSk7XG4gICAgLy8gfVxuICAgIGluaXQodmVyc2lvbj86IHN0cmluZywgc3RvcmFnZVR5cGU/OiBCcm93c2VyU3RvcmFnZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2gobmV3IEluaXRTdG9yZUFjdGlvbih7IHZlcnNpb24gfSkpO1xuXG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlID0gc3RvcmFnZVR5cGUgPT09IEJyb3dzZXJTdG9yYWdlVHlwZS5zZXNzaW9uID8gc2Vzc2lvblN0b3JhZ2UgOiBsb2NhbFN0b3JhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRBdXRvU2F2ZUhhbmRsZXIoc3RhdGVTbGljZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2Uud2FybignU3RvcmVTZXJ2aWNlLmFkZEF1dG9TYXZlSGFuZGxlcigpIG5vdCBhdmFpbGFibGUgd2l0aG91dCBOR1JYJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXV0b1NhdmVIYW5kbGVyc1tzdGF0ZVNsaWNlXSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaGFuZGxlQXV0b1NhdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKGRlYm91bmNlVGltZSgxMDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUoc3RhdGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm94eSB0byBOR1JYIHN0b3JlLmRpc3BhdGNoKClcbiAgICAgKiB0aGF0IGFsbG93cyB0byBpbnRlcmNlcHQgaWYgdGhlIHN0b3JlIGlzIHByZXNlbnRcbiAgICAgKi9cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBkaXNwYXRjaChhY3Rpb246IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGRpc3BhdGNoQWN0aW9uKHN0YXRlOiBULCBhY3Rpb25LZXk6IHN0cmluZywgcmVkdWNlcjogQWN0aW9uUmVkdWNlcjxhbnksIEFjdGlvbj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuYWRkUmVkdWNlcihhY3Rpb25LZXksIHJlZHVjZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goeyB0eXBlOiBhY3Rpb25LZXksIHBheWxvYWQ6IHN0YXRlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJveHkgdG8gTkdSWCBzdG9yZS5zZWxlY3QoKVxuICAgICAqIHRoYXQgYWxsb3dzIHRvIGludGVyY2VwdCBpZiB0aGUgc3RvcmUgaXMgcHJlc2VudFxuICAgICAqL1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHNlbGVjdChrZXk6IGFueSk6IE9ic2VydmFibGU8VFthbnldPiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdOR1JYIFN0b3JlIG5vdCBjb25maWd1cmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlcnMgYW5kIHNhdmUgdGhlIHN0YXRlIHdpdGggdGhlIEJyb3dzZXIgc3RvcmFnZVxuICAgICAqIEBwYXJhbSBzdGF0ZSB0eXBlIG9mIENvcmVTdGF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzYXZlU3RhdGUoc3RhdGU6IENvcmVTdGF0ZSk6IHZvaWQge1xuICAgICAgICBsZXQgc3RhdGVUb1NhdmU6IENvcmVTdGF0ZSA9IHtcbiAgICAgICAgICAgIGFwcDogc3RhdGUuYXBwLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzdGF0ZS51c2VyKSB7XG4gICAgICAgICAgICBjb25zdCB7IHVzZXJJZCwgcHJlZmVyZW5jZXMgfSA9IHN0YXRlLnVzZXI7XG4gICAgICAgICAgICBzdGF0ZVRvU2F2ZS51c2VyID0geyB1c2VySWQsIHByZWZlcmVuY2VzIH07XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzKS5mb3JFYWNoKChzbGljZVN0YXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzW3NsaWNlU3RhdGVdO1xuICAgICAgICAgICAgc3RhdGVUb1NhdmUgPSBPYmplY3QuYXNzaWduKHN0YXRlVG9TYXZlLCB7IFtzbGljZVN0YXRlXTogaGFuZGxlcihzdGF0ZVtzbGljZVN0YXRlXSkgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkU3RhdGUgPSBKU09OLnN0cmluZ2lmeShzdGF0ZVRvU2F2ZSk7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlPy5zZXRJdGVtKCdzdGF0ZScsIHNlcmlhbGl6ZWRTdGF0ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gSWdub3JlIHdyaXRlIGVycm9ycy5cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,9 +2,10 @@ import { of } from 'rxjs';
|
|
|
2
2
|
import { StoreService } from './store.service';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
export const PLATFORM_BROWSER_ID = 'browser';
|
|
5
6
|
export class StoreServiceMock extends StoreService {
|
|
6
7
|
constructor() {
|
|
7
|
-
super(null, null);
|
|
8
|
+
super(null, null, PLATFORM_BROWSER_ID);
|
|
8
9
|
}
|
|
9
10
|
init() { }
|
|
10
11
|
addAutoSaveHandler() { }
|
|
@@ -19,4 +20,4 @@ export class StoreServiceMock extends StoreService {
|
|
|
19
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreServiceMock, decorators: [{
|
|
20
21
|
type: Injectable
|
|
21
22
|
}], ctorParameters: () => [] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS9zdG9yZS5zZXJ2aWNlLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRzdDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0lBQzlDO1FBQ0ksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRVEsSUFBSSxLQUFxQixDQUFDO0lBRTFCLGtCQUFrQixLQUFxQixDQUFDO0lBRXhDLGNBQWMsS0FBcUIsQ0FBQztJQUVwQyxRQUFRLEtBQXFCLENBQUM7SUFFOUIsTUFBTTtRQUNYLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7OEdBZlEsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFBMQVRGT1JNX0JST1dTRVJfSUQgPSAnYnJvd3Nlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdG9yZVNlcnZpY2VNb2NrIGV4dGVuZHMgU3RvcmVTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIobnVsbCwgbnVsbCwgUExBVEZPUk1fQlJPV1NFUl9JRCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdCgpOiB2b2lkIHsvKiBlbXB0eSAqL31cblxuICAgIG92ZXJyaWRlIGFkZEF1dG9TYXZlSGFuZGxlcigpOiB2b2lkIHsvKiBlbXB0eSAqL31cblxuICAgIG92ZXJyaWRlIGhhbmRsZUF1dG9TYXZlKCk6IHZvaWQgey8qIGVtcHR5ICovfVxuXG4gICAgb3ZlcnJpZGUgZGlzcGF0Y2goKTogdm9pZCB7LyogZW1wdHkgKi99XG5cbiAgICBvdmVycmlkZSBzZWxlY3QoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICB9XG59XG4iXX0=
|
package/fesm2022/eui-core.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import * as i1 from '@eui/base';
|
|
|
2
2
|
import { LogLevel, ConsoleAppender, initialAppState, initialUserState, initialNotificationsState, initialI18nState, initialLocaleState, Logger, LoggerMock, xhr, getApiQueue, getApiQueueItem, mergeAll, getI18nLoaderConfig, EuiLazyService, getI18nServiceConfigFromBase, getI18nState, getLastAddedModule, getBrowserDefaultLanguage, EuiEuLanguages, getActiveLang, EuiService, getUserRights, getUserState, getLocaleServiceConfigFromBase, getLocaleState, transformToUxHttpResponse } from '@eui/base';
|
|
3
3
|
export * from '@eui/base';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { InjectionToken, Injectable, Inject, Injector, NgModule, Optional, APP_INITIALIZER, SkipSelf, ErrorHandler,
|
|
5
|
+
import { InjectionToken, Injectable, Inject, inject, PLATFORM_ID, Injector, NgModule, Optional, APP_INITIALIZER, SkipSelf, ErrorHandler, LOCALE_ID } from '@angular/core';
|
|
6
6
|
import * as extendProxy from 'extend';
|
|
7
7
|
import * as i1$1 from '@ngrx/effects';
|
|
8
8
|
import { createEffect, ofType } from '@ngrx/effects';
|
|
@@ -10,11 +10,11 @@ import { merge, fromEvent, throwError, of, forkJoin, from, BehaviorSubject, defe
|
|
|
10
10
|
import { mapTo, map, mergeMap, tap, debounceTime, distinctUntilChanged, take, switchMap, catchError, concatMap, filter, takeUntil } from 'rxjs/operators';
|
|
11
11
|
import * as i1$2 from '@ngx-translate/core';
|
|
12
12
|
import { TranslateLoader } from '@ngx-translate/core';
|
|
13
|
+
import { isPlatformBrowser, LOCATION_INITIALIZED, DOCUMENT, getLocaleId, registerLocaleData } from '@angular/common';
|
|
13
14
|
import * as i1$3 from '@ngrx/store';
|
|
14
15
|
import { createSelector } from '@ngrx/store';
|
|
15
16
|
import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
16
17
|
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
17
|
-
import { LOCATION_INITIALIZED, DOCUMENT, isPlatformBrowser, getLocaleId, registerLocaleData } from '@angular/common';
|
|
18
18
|
import * as i1$5 from '@angular/common/http';
|
|
19
19
|
import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
|
|
20
20
|
import * as i1$4 from '@angular/router';
|
|
@@ -587,19 +587,27 @@ const coreReducers = Object.assign({}, {
|
|
|
587
587
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
588
588
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
589
589
|
const extend = extendProxy.default || extendProxy;
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
590
|
+
function localStorageSync(reducer, platformId) {
|
|
591
|
+
if (platformId) {
|
|
592
|
+
return (reducer) => {
|
|
593
|
+
return cb(reducer, isPlatformBrowser(platformId) ? localStorage : null);
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
else {
|
|
597
|
+
const platformId = inject(PLATFORM_ID, { optional: true });
|
|
598
|
+
return cb(reducer, isPlatformBrowser(platformId) ? localStorage : null);
|
|
599
|
+
}
|
|
596
600
|
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
601
|
+
function sessionStorageSync(reducer, platformId) {
|
|
602
|
+
if (platformId) {
|
|
603
|
+
return (reducer) => {
|
|
604
|
+
return cb(reducer, isPlatformBrowser(platformId) ? sessionStorage : null);
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
const platformId = inject(PLATFORM_ID, { optional: true });
|
|
609
|
+
return cb(reducer, isPlatformBrowser(platformId) ? sessionStorage : null);
|
|
610
|
+
}
|
|
603
611
|
}
|
|
604
612
|
// Keys that are allowed to be synced with NgRx state from BrowserStorage
|
|
605
613
|
const disallowedKeys = ['loadedConfigModules', 'connect', 'currentModule', 'status', 'apiQueue'];
|
|
@@ -626,6 +634,9 @@ const filterAppState = (app) => {
|
|
|
626
634
|
* @param storage Type of storage to load the state from
|
|
627
635
|
*/
|
|
628
636
|
const loadState = (storage = localStorage) => {
|
|
637
|
+
if (!storage) {
|
|
638
|
+
return undefined;
|
|
639
|
+
}
|
|
629
640
|
try {
|
|
630
641
|
// by default falls back to localStorage
|
|
631
642
|
const serializedState = storage.getItem('state');
|
|
@@ -648,26 +659,27 @@ const cb = (reducer, storage) => (state, action) => {
|
|
|
648
659
|
// We load the state from a storage and compare the version and userId with the provided ones.
|
|
649
660
|
// If they are the same, we merge the local state into the initial state.
|
|
650
661
|
// If there is a mismatch, we don't merge the local state, but update only the initial state.
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
662
|
+
if (storage) {
|
|
663
|
+
// load the state from the localStorage
|
|
664
|
+
const localState = loadState(storage);
|
|
665
|
+
// extract the details about user and app version from the action payload
|
|
666
|
+
const payloadVersion = action.payload?.version;
|
|
667
|
+
if (localState) {
|
|
668
|
+
// TODO: Why all these checks here? What is the purpose of this code?
|
|
669
|
+
// extract the details about user and app version from the storage state
|
|
670
|
+
const localVersion = localState?.app?.version;
|
|
671
|
+
// const localUserId = localState.user && localState.user.userId;
|
|
672
|
+
const isVersionOK = !localVersion || !payloadVersion || localVersion === payloadVersion;
|
|
673
|
+
// const isUserIdOK = (localUserId === payloadUserId);
|
|
674
|
+
// update the entire state with deep merge of states, if the version and user are the same
|
|
675
|
+
if (isVersionOK) {
|
|
676
|
+
state = extend(true, {}, state, localState);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
// update the app version, if defined
|
|
680
|
+
if (payloadVersion) {
|
|
681
|
+
state = { ...state, app: { ...state?.app, version: payloadVersion } };
|
|
666
682
|
}
|
|
667
|
-
}
|
|
668
|
-
// update the app version, if defined
|
|
669
|
-
if (payloadVersion) {
|
|
670
|
-
state = { ...state, app: { ...state?.app, version: payloadVersion } };
|
|
671
683
|
}
|
|
672
684
|
}
|
|
673
685
|
return reducer(state, action);
|
|
@@ -821,23 +833,27 @@ var BrowserStorageType;
|
|
|
821
833
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
822
834
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
823
835
|
class StoreService {
|
|
824
|
-
constructor(store, logService) {
|
|
836
|
+
constructor(store, logService, platformId) {
|
|
825
837
|
this.store = store;
|
|
826
838
|
this.logService = logService;
|
|
839
|
+
this.platformId = platformId;
|
|
827
840
|
/**
|
|
828
841
|
* autoSave handlers to call before saving in local Storage
|
|
829
842
|
*/
|
|
830
843
|
this._autoSaveHandlers = {};
|
|
831
|
-
|
|
832
|
-
|
|
844
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
845
|
+
this._storage = localStorage;
|
|
846
|
+
}
|
|
833
847
|
}
|
|
834
848
|
// use init with just version info, to update to user state, UserService.updateState
|
|
835
849
|
// initializeStore(version?: string, userDetails?: BaseUserDetails) {
|
|
836
850
|
// this.dispatch(new InitStoreAction({ version, userDetails }));
|
|
837
851
|
// }
|
|
838
852
|
init(version, storageType) {
|
|
839
|
-
this.
|
|
840
|
-
|
|
853
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
854
|
+
this.dispatch(new InitStoreAction({ version }));
|
|
855
|
+
this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;
|
|
856
|
+
}
|
|
841
857
|
}
|
|
842
858
|
addAutoSaveHandler(stateSlice, handler) {
|
|
843
859
|
if (!this.store) {
|
|
@@ -905,13 +921,13 @@ class StoreService {
|
|
|
905
921
|
});
|
|
906
922
|
try {
|
|
907
923
|
const serializedState = JSON.stringify(stateToSave);
|
|
908
|
-
this._storage
|
|
924
|
+
this._storage?.setItem('state', serializedState);
|
|
909
925
|
}
|
|
910
926
|
catch (err) {
|
|
911
927
|
// Ignore write errors.
|
|
912
928
|
}
|
|
913
929
|
}
|
|
914
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, deps: [{ token: i1$3.Store, optional: true }, { token: LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
930
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, deps: [{ token: i1$3.Store, optional: true }, { token: LogService, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
915
931
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, providedIn: 'root' }); }
|
|
916
932
|
}
|
|
917
933
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: StoreService, decorators: [{
|
|
@@ -923,11 +939,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
923
939
|
type: Optional
|
|
924
940
|
}] }, { type: LogService, decorators: [{
|
|
925
941
|
type: Optional
|
|
942
|
+
}] }, { type: undefined, decorators: [{
|
|
943
|
+
type: Inject,
|
|
944
|
+
args: [PLATFORM_ID]
|
|
926
945
|
}] }] });
|
|
927
946
|
|
|
947
|
+
const PLATFORM_BROWSER_ID = 'browser';
|
|
928
948
|
class StoreServiceMock extends StoreService {
|
|
929
949
|
constructor() {
|
|
930
|
-
super(null, null);
|
|
950
|
+
super(null, null, PLATFORM_BROWSER_ID);
|
|
931
951
|
}
|
|
932
952
|
init() { }
|
|
933
953
|
addAutoSaveHandler() { }
|
|
@@ -4156,9 +4176,10 @@ class AsyncStorageServiceMock extends AsyncStorageService {
|
|
|
4156
4176
|
*/
|
|
4157
4177
|
class LocalStorageService extends StorageService {
|
|
4158
4178
|
static { this.NAME = 'LocalStorageService'; }
|
|
4159
|
-
constructor(log) {
|
|
4179
|
+
constructor(log, platformId) {
|
|
4160
4180
|
super();
|
|
4161
4181
|
this.log = log;
|
|
4182
|
+
this.platformId = platformId;
|
|
4162
4183
|
}
|
|
4163
4184
|
/**
|
|
4164
4185
|
* the name of the storage service
|
|
@@ -4174,15 +4195,17 @@ class LocalStorageService extends StorageService {
|
|
|
4174
4195
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
4175
4196
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4176
4197
|
get(key) {
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
this.log
|
|
4198
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
4199
|
+
try {
|
|
4200
|
+
const serialized = localStorage.getItem(key);
|
|
4201
|
+
return serialized && JSON.parse(serialized);
|
|
4202
|
+
}
|
|
4203
|
+
catch (err) {
|
|
4204
|
+
if (this.log) {
|
|
4205
|
+
this.log.error(this.name(), 'get', err);
|
|
4206
|
+
}
|
|
4207
|
+
return undefined;
|
|
4184
4208
|
}
|
|
4185
|
-
return undefined;
|
|
4186
4209
|
}
|
|
4187
4210
|
}
|
|
4188
4211
|
/**
|
|
@@ -4193,13 +4216,15 @@ class LocalStorageService extends StorageService {
|
|
|
4193
4216
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
4194
4217
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4195
4218
|
set(key, value) {
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
this.log
|
|
4219
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
4220
|
+
try {
|
|
4221
|
+
const serialized = JSON.stringify(value);
|
|
4222
|
+
localStorage.setItem(key, serialized);
|
|
4223
|
+
}
|
|
4224
|
+
catch (err) {
|
|
4225
|
+
if (this.log) {
|
|
4226
|
+
this.log.error(this.name(), 'set', err);
|
|
4227
|
+
}
|
|
4203
4228
|
}
|
|
4204
4229
|
}
|
|
4205
4230
|
}
|
|
@@ -4208,22 +4233,27 @@ class LocalStorageService extends StorageService {
|
|
|
4208
4233
|
* @param key the associated key
|
|
4209
4234
|
*/
|
|
4210
4235
|
remove(key) {
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
this.log
|
|
4236
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
4237
|
+
try {
|
|
4238
|
+
localStorage.removeItem(key);
|
|
4239
|
+
}
|
|
4240
|
+
catch (err) {
|
|
4241
|
+
if (this.log) {
|
|
4242
|
+
this.log.error(this.name(), 'remove', err);
|
|
4243
|
+
}
|
|
4217
4244
|
}
|
|
4218
4245
|
}
|
|
4219
4246
|
}
|
|
4220
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LocalStorageService, deps: [{ token: LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LocalStorageService, deps: [{ token: LogService, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4221
4248
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LocalStorageService }); }
|
|
4222
4249
|
}
|
|
4223
4250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
4224
4251
|
type: Injectable
|
|
4225
4252
|
}], ctorParameters: () => [{ type: LogService, decorators: [{
|
|
4226
4253
|
type: Optional
|
|
4254
|
+
}] }, { type: undefined, decorators: [{
|
|
4255
|
+
type: Inject,
|
|
4256
|
+
args: [PLATFORM_ID]
|
|
4227
4257
|
}] }] });
|
|
4228
4258
|
|
|
4229
4259
|
/**
|
|
@@ -5241,5 +5271,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
5241
5271
|
* Generated bundle index. Do not edit.
|
|
5242
5272
|
*/
|
|
5243
5273
|
|
|
5244
|
-
export { ActivatedRouteAction, AddApiQueueItemAction, AddAppLoadedConfigModulesAction, AddLangParamInterceptor, AlertHttpErrorCallbackFn, ApiQueueService, ApiQueueServiceMock, AsyncStorageService, AsyncStorageServiceMock, BASE_LOGGER_NAME_TOKEN, BASE_NAME_TOKEN, BrowserStorageType, CONFIG_TOKEN, CORE_ROOT_GUARD, CachePreventionInterceptor, ConsoleHttpErrorCallbackFn, CoreAppActionTypes, CoreAppEffects, CoreI18nActionTypes, CoreLocaleActionTypes, CoreModule, CoreModuleEffects, CoreNotificationsActionTypes, CoreUserActionTypes, CorsSecurityInterceptor, CsrfPreventionInterceptor, CssUtils, DYNAMIC_COMPONENT_CONFIG, EUI_CONFIG_TOKEN, EUI_COUNTRIES, EUI_TIMEZONES, EmptyApiQueueAction, ErrorSubClass, EuLoginSessionTimeoutHandlingInterceptor, EuiAppShellService, EuiCoreRootGuardClass, EuiDynamicComponentService, EuiDynamicMenuService, EuiError, EuiGrowlService, EuiLoaderService, EuiPermissionService, EuiTheme, EuiThemeService, EuiTimezoneService, GLOBAL_CONFIG_TOKEN, GlobalErrorHandler, GrowlHttpErrorCallbackFn, HTTP_ERROR_HANDLER_CONFIG_TOKEN, HttpErrorHandlerInterceptor, I18nLoader, I18nResourceImpl, I18nService, InitStoreAction, LANG_PARAM_KEY, LOCALE_ID_MAPPER, LOCAL_FORAGE_SERVICE_CONFIG_TOKEN, LOG_APPENDERS_TOKEN, LOG_LEVEL_TOKEN, LocalForageService, LocalStorageService, LocaleService, LocaleServiceMock, LogHttpErrorCallbackFn, LogModule, LogService, LogServiceMock, MODULE_CONFIG_TOKEN, MODULE_NAME_TOKEN, ROOT_LOG_CONFIG_TOKEN, RemoveApiQueueItemAction, SHOW_CONNECTION_STATUS_TOKEN, SessionStorageService, Status, StorageService, StorageServiceMock, StoreService, StoreServiceMock, UX_ERROR_MAPPING_HANDLER_TOKEN, UpdateAppConnectionAction, UpdateAppStatusAction, UpdateAppVersionAction, UpdateCurrentModuleAction, UpdateI18nStateAction, UpdateLocaleStateAction, UpdateNotificationsListAction, UpdateUserDashboardAction, UpdateUserDetailsAction, UpdateUserPreferencesAction, UpdateUserRightsAction, UpdateUserStateAction, UserService, UserServiceMock, UxRequestErrorModelInterceptor, closestMatchingParent, consumeEvent, corI18nReducers, coreAppReducers, coreLocaleReducers, coreNotificationsReducers, coreUserReducers, createEuiCoreRootGuard, diffDays, diffDaysFromToday, errorCodes, euiCoreRootGuardClass, formatNumber, getGlobalConfig, getHttpErrorHandlingConfig, getModuleConfig, getRootLogConfig, getShowConnectionStatus, getViewElement, handleError, isDefined, loadEuiDynamicEnvironmentConfig, loadState, localForage, localStorageSync, markControlsTouched, markFormGroupTouched, mergeAppHandlerConfigToAppConfig, mergeAppJsonConfigToAppConfig, offset, parentOffsetEl, position, preInitApp, prepareEuiAppConfigToken, coreReducers as reducers, sessionStorageSync, translateConfig, uniqueId, validateEmail };
|
|
5274
|
+
export { ActivatedRouteAction, AddApiQueueItemAction, AddAppLoadedConfigModulesAction, AddLangParamInterceptor, AlertHttpErrorCallbackFn, ApiQueueService, ApiQueueServiceMock, AsyncStorageService, AsyncStorageServiceMock, BASE_LOGGER_NAME_TOKEN, BASE_NAME_TOKEN, BrowserStorageType, CONFIG_TOKEN, CORE_ROOT_GUARD, CachePreventionInterceptor, ConsoleHttpErrorCallbackFn, CoreAppActionTypes, CoreAppEffects, CoreI18nActionTypes, CoreLocaleActionTypes, CoreModule, CoreModuleEffects, CoreNotificationsActionTypes, CoreUserActionTypes, CorsSecurityInterceptor, CsrfPreventionInterceptor, CssUtils, DYNAMIC_COMPONENT_CONFIG, EUI_CONFIG_TOKEN, EUI_COUNTRIES, EUI_TIMEZONES, EmptyApiQueueAction, ErrorSubClass, EuLoginSessionTimeoutHandlingInterceptor, EuiAppShellService, EuiCoreRootGuardClass, EuiDynamicComponentService, EuiDynamicMenuService, EuiError, EuiGrowlService, EuiLoaderService, EuiPermissionService, EuiTheme, EuiThemeService, EuiTimezoneService, GLOBAL_CONFIG_TOKEN, GlobalErrorHandler, GrowlHttpErrorCallbackFn, HTTP_ERROR_HANDLER_CONFIG_TOKEN, HttpErrorHandlerInterceptor, I18nLoader, I18nResourceImpl, I18nService, InitStoreAction, LANG_PARAM_KEY, LOCALE_ID_MAPPER, LOCAL_FORAGE_SERVICE_CONFIG_TOKEN, LOG_APPENDERS_TOKEN, LOG_LEVEL_TOKEN, LocalForageService, LocalStorageService, LocaleService, LocaleServiceMock, LogHttpErrorCallbackFn, LogModule, LogService, LogServiceMock, MODULE_CONFIG_TOKEN, MODULE_NAME_TOKEN, PLATFORM_BROWSER_ID, ROOT_LOG_CONFIG_TOKEN, RemoveApiQueueItemAction, SHOW_CONNECTION_STATUS_TOKEN, SessionStorageService, Status, StorageService, StorageServiceMock, StoreService, StoreServiceMock, UX_ERROR_MAPPING_HANDLER_TOKEN, UpdateAppConnectionAction, UpdateAppStatusAction, UpdateAppVersionAction, UpdateCurrentModuleAction, UpdateI18nStateAction, UpdateLocaleStateAction, UpdateNotificationsListAction, UpdateUserDashboardAction, UpdateUserDetailsAction, UpdateUserPreferencesAction, UpdateUserRightsAction, UpdateUserStateAction, UserService, UserServiceMock, UxRequestErrorModelInterceptor, closestMatchingParent, consumeEvent, corI18nReducers, coreAppReducers, coreLocaleReducers, coreNotificationsReducers, coreUserReducers, createEuiCoreRootGuard, diffDays, diffDaysFromToday, errorCodes, euiCoreRootGuardClass, formatNumber, getGlobalConfig, getHttpErrorHandlingConfig, getModuleConfig, getRootLogConfig, getShowConnectionStatus, getViewElement, handleError, isDefined, loadEuiDynamicEnvironmentConfig, loadState, localForage, localStorageSync, markControlsTouched, markFormGroupTouched, mergeAppHandlerConfigToAppConfig, mergeAppJsonConfigToAppConfig, offset, parentOffsetEl, position, preInitApp, prepareEuiAppConfigToken, coreReducers as reducers, sessionStorageSync, translateConfig, uniqueId, validateEmail };
|
|
5245
5275
|
//# sourceMappingURL=eui-core.mjs.map
|