@eui/core 13.0.0-beta.14 → 13.0.0-beta.18
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/classes/ActivatedRouteAction.html +43 -43
- package/docs/classes/AddApiQueueItemAction.html +43 -43
- package/docs/classes/AddAppLoadedConfigModulesAction.html +43 -43
- package/docs/classes/ApiQueueServiceMock.html +26 -526
- package/docs/classes/AsyncStorageService.html +43 -469
- package/docs/classes/AsyncStorageServiceMock.html +40 -1225
- package/docs/classes/EmptyApiQueueAction.html +43 -43
- package/docs/classes/EuiCoreRootGuardClass.html +8 -6
- package/docs/classes/EuiError.html +8 -6
- package/docs/classes/I18nResourceImpl.html +25 -26
- package/docs/classes/InitStoreAction.html +43 -43
- package/docs/classes/LogServiceMock.html +10 -10
- package/docs/classes/OpenIdConnectServiceMock.html +10 -46
- package/docs/classes/RemoveApiQueueItemAction.html +43 -43
- package/docs/classes/RouterMock.html +77 -84
- package/docs/classes/StorageService.html +31 -36
- package/docs/classes/StorageServiceMock.html +16 -479
- package/docs/classes/StoreMock.html +41 -47
- package/docs/classes/TranslateServiceMock.html +251 -270
- package/docs/classes/UpdateAppConnectionAction.html +43 -43
- package/docs/classes/UpdateAppStatusAction.html +43 -43
- package/docs/classes/UpdateAppVersionAction.html +43 -43
- package/docs/classes/UpdateCurrentModuleAction.html +43 -43
- package/docs/classes/UpdateI18nStateAction.html +43 -43
- package/docs/classes/UpdateLocaleStateAction.html +43 -43
- package/docs/classes/UpdateNotificationsListAction.html +43 -43
- package/docs/classes/UpdateUserDashboardAction.html +43 -43
- package/docs/classes/UpdateUserDetailsAction.html +43 -43
- package/docs/classes/UpdateUserPreferencesAction.html +43 -43
- package/docs/classes/UpdateUserRightsAction.html +43 -43
- package/docs/classes/UpdateUserStateAction.html +43 -43
- package/docs/classes/UxErrorManager.html +39 -43
- package/docs/dependencies.html +44 -41
- package/docs/directives/TranslateMockDirective.html +9 -7
- package/docs/index.html +7 -6
- package/docs/injectables/ApiQueueService.html +33 -40
- package/docs/injectables/CoreAppEffects.html +98 -99
- package/docs/injectables/EuiPermissionService.html +26 -31
- package/docs/injectables/GlobalErrorHandler.html +12 -11
- package/docs/injectables/I18nLoader.html +28 -30
- package/docs/injectables/I18nService.html +42 -48
- package/docs/injectables/I18nServiceMock.html +32 -569
- package/docs/injectables/LocalForageService.html +75 -1549
- package/docs/injectables/LocalStorageService.html +38 -499
- package/docs/injectables/LocaleService.html +23 -28
- package/docs/injectables/LocaleServiceMock.html +21 -198
- package/docs/injectables/LogService.html +11 -10
- package/docs/injectables/OpenIdConnectService.html +10 -10
- package/docs/injectables/SessionStorageService.html +38 -499
- package/docs/injectables/StoreService.html +24 -28
- package/docs/injectables/StoreServiceMock.html +18 -360
- package/docs/injectables/UserService.html +24 -27
- package/docs/injectables/UserServiceMock.html +31 -196
- package/docs/injectables/UxAppShellService.html +299 -355
- package/docs/injectables/UxDynamicComponentService.html +16 -16
- package/docs/injectables/UxDynamicMenuService.html +38 -40
- package/docs/injectables/UxErrorFeedbackService.html +42 -48
- package/docs/injectables/UxTimezoneService.html +18 -22
- package/docs/interceptors/AddLangParamInterceptor.html +11 -10
- package/docs/interceptors/CachePreventionInterceptor.html +11 -10
- package/docs/interceptors/CorsSecurityInterceptor.html +11 -10
- package/docs/interceptors/CsrfPreventionInterceptor.html +11 -10
- package/docs/interceptors/EuLoginSessionTimeoutHandlingInterceptor.html +11 -10
- package/docs/interceptors/HttpErrorHandlerInterceptor.html +11 -10
- package/docs/interceptors/OpenIdConnectInterceptor.html +35 -35
- package/docs/interceptors/UxRequestErrorModelInterceptor.html +11 -10
- package/docs/interfaces/LoadedResources.html +37 -12
- package/docs/interfaces/LoadedResourcesError.html +28 -10
- package/docs/interfaces/ModuleLoadEvent.html +37 -12
- package/docs/interfaces/OpenIdConnectUserDetails.html +64 -18
- package/docs/interfaces/ResourceError.html +37 -12
- package/docs/interfaces/TimeZone.html +28 -10
- package/docs/interfaces/UIState.html +325 -76
- package/docs/js/libs/prism.js +46 -14
- package/docs/js/menu-wc.js +76 -79
- package/docs/js/menu-wc_es5.js +60 -0
- package/docs/js/menu.js +15 -11
- package/docs/js/search/lunr.min.js +3 -3
- package/docs/js/search/search_index.js +2 -2
- package/docs/license.html +6 -5
- package/docs/miscellaneous/enumerations.html +18 -17
- package/docs/miscellaneous/functions.html +261 -140
- package/docs/miscellaneous/typealiases.html +18 -17
- package/docs/miscellaneous/variables.html +1719 -1811
- package/docs/modules/CoreModule.html +13 -14
- package/docs/modules/I18nModule.html +11 -11
- package/docs/modules/LogModule.html +16 -16
- package/docs/modules/TranslateMockModule.html +8 -6
- package/docs/modules.html +6 -5
- package/docs/pipes/TranslateMockPipe.html +10 -9
- package/docs/styles/bootstrap.min.css +4 -3
- package/docs/styles/compodoc.css +41 -33
- package/docs/styles/dark.css +113 -0
- package/docs/styles/laravel.css +52 -6
- package/docs/styles/material.css +31 -7
- package/docs/styles/original.css +12 -6
- package/docs/styles/postmark.css +23 -7
- package/docs/styles/prism.css +169 -135
- package/docs/styles/readthedocs.css +22 -11
- package/docs/styles/stripe.css +48 -5
- package/docs/styles/vagrant.css +42 -6
- package/{esm2015/eui-core.js → esm2020/eui-core.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/{esm2015/lib/eui-core.module.js → esm2020/lib/eui-core.module.mjs} +5 -5
- package/{esm2015/lib/helpers/date-helpers.js → esm2020/lib/helpers/date-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/dom-helpers.js → esm2020/lib/helpers/dom-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/event-helpers.js → esm2020/lib/helpers/event-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/form-helpers.js → esm2020/lib/helpers/form-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/format-helpers.js → esm2020/lib/helpers/format-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/http-helpers.js → esm2020/lib/helpers/http-helpers.mjs} +0 -0
- package/{esm2015/lib/helpers/index.js → esm2020/lib/helpers/index.mjs} +0 -0
- package/{esm2015/lib/helpers/utils.js → esm2020/lib/helpers/utils.mjs} +0 -0
- package/{esm2015/lib/interceptors/add-lang-param.interceptor.js → esm2020/lib/interceptors/add-lang-param.interceptor.mjs} +4 -4
- package/{esm2015/lib/interceptors/cache-prevention.interceptor.js → esm2020/lib/interceptors/cache-prevention.interceptor.mjs} +4 -4
- package/{esm2015/lib/interceptors/cors-security.interceptor.js → esm2020/lib/interceptors/cors-security.interceptor.mjs} +4 -4
- package/{esm2015/lib/interceptors/csrf-prevention.interceptor.js → esm2020/lib/interceptors/csrf-prevention.interceptor.mjs} +4 -4
- package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +61 -0
- package/{esm2015/lib/interceptors/index.js → esm2020/lib/interceptors/index.mjs} +0 -0
- package/{esm2015/lib/interceptors/openid/index.js → esm2020/lib/interceptors/openid/index.mjs} +0 -0
- package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +146 -0
- package/{esm2015/lib/interceptors/openid/openid-connect.service.js → esm2020/lib/interceptors/openid/openid-connect.service.mjs} +4 -4
- package/{esm2015/lib/interceptors/openid/openid-connect.service.mock.js → esm2020/lib/interceptors/openid/openid-connect.service.mock.mjs} +0 -0
- package/{esm2015/lib/interceptors/ux-request-error-model.interceptor.js → esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs} +4 -4
- package/{esm2015/lib/services/app/eui-init-app.js → esm2020/lib/services/app/eui-init-app.mjs} +0 -0
- package/esm2020/lib/services/app/eui-pre-init-app.mjs +42 -0
- package/{esm2015/lib/services/app/eui-startup.js → esm2020/lib/services/app/eui-startup.mjs} +0 -0
- package/{esm2015/lib/services/app/factories/log.js → esm2020/lib/services/app/factories/log.mjs} +0 -0
- package/{esm2015/lib/services/app/index.js → esm2020/lib/services/app/index.mjs} +0 -0
- package/esm2020/lib/services/config/defaults.mjs +63 -0
- package/{esm2015/lib/services/config/tokens.js → esm2020/lib/services/config/tokens.mjs} +5 -2
- package/{esm2015/lib/services/errors/eui.error.js → esm2020/lib/services/errors/eui.error.mjs} +0 -0
- package/{esm2015/lib/services/errors/global-error-handler.js → esm2020/lib/services/errors/global-error-handler.mjs} +4 -4
- package/{esm2015/lib/services/errors/http-error-handler-callback-functions.js → esm2020/lib/services/errors/http-error-handler-callback-functions.mjs} +0 -0
- package/{esm2015/lib/services/errors/http-error-handler.interceptor.js → esm2020/lib/services/errors/http-error-handler.interceptor.mjs} +4 -4
- package/{esm2015/lib/services/errors/index.js → esm2020/lib/services/errors/index.mjs} +0 -0
- package/{esm2015/lib/services/i18n/i18n.loader.js → esm2020/lib/services/i18n/i18n.loader.mjs} +4 -4
- package/{esm2015/lib/services/i18n/i18n.resource.js → esm2020/lib/services/i18n/i18n.resource.mjs} +0 -0
- package/esm2020/lib/services/i18n/i18n.service.mjs +222 -0
- package/{esm2015/lib/services/i18n/i18n.service.mock.js → esm2020/lib/services/i18n/i18n.service.mock.mjs} +4 -4
- package/{esm2015/lib/services/i18n/index.js → esm2020/lib/services/i18n/index.mjs} +0 -0
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/{esm2015/lib/services/locale/index.js → esm2020/lib/services/locale/index.mjs} +0 -0
- package/esm2020/lib/services/locale/locale.service.mjs +250 -0
- package/{esm2015/lib/services/log/index.js → esm2020/lib/services/log/index.mjs} +0 -0
- package/{esm2015/lib/services/log/log.module.js → esm2020/lib/services/log/log.module.mjs} +5 -5
- package/{esm2015/lib/services/log/log.service.js → esm2020/lib/services/log/log.service.mjs} +4 -4
- package/{esm2015/lib/services/log/log.service.mock.js → esm2020/lib/services/log/log.service.mock.mjs} +0 -0
- package/{esm2015/lib/services/permission/permission.service.js → esm2020/lib/services/permission/permission.service.mjs} +5 -5
- package/{esm2015/lib/services/queue/api-queue.service.js → esm2020/lib/services/queue/api-queue.service.mjs} +4 -4
- package/{esm2015/lib/services/queue/api-queue.service.mock.js → esm2020/lib/services/queue/api-queue.service.mock.mjs} +0 -0
- package/{esm2015/lib/services/queue/index.js → esm2020/lib/services/queue/index.mjs} +0 -0
- package/{esm2015/lib/services/storage/async-storage.service.js → esm2020/lib/services/storage/async-storage.service.mjs} +0 -0
- package/{esm2015/lib/services/storage/async-storage.service.mock.js → esm2020/lib/services/storage/async-storage.service.mock.mjs} +0 -0
- package/{esm2015/lib/services/storage/index.js → esm2020/lib/services/storage/index.mjs} +0 -0
- package/{esm2015/lib/services/storage/local-forage.service.js → esm2020/lib/services/storage/local-forage.service.mjs} +4 -4
- package/{esm2015/lib/services/storage/local-storage.service.js → esm2020/lib/services/storage/local-storage.service.mjs} +4 -4
- package/{esm2015/lib/services/storage/session-storage.service.js → esm2020/lib/services/storage/session-storage.service.mjs} +4 -4
- package/{esm2015/lib/services/storage/storage.service.js → esm2020/lib/services/storage/storage.service.mjs} +0 -0
- package/{esm2015/lib/services/storage/storage.service.mock.js → esm2020/lib/services/storage/storage.service.mock.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/app.actions.js → esm2020/lib/services/store/actions/app.actions.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/i18n.actions.js → esm2020/lib/services/store/actions/i18n.actions.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/index.js → esm2020/lib/services/store/actions/index.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/locale.actions.js → esm2020/lib/services/store/actions/locale.actions.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/notifications.actions.js → esm2020/lib/services/store/actions/notifications.actions.mjs} +0 -0
- package/{esm2015/lib/services/store/actions/user.actions.js → esm2020/lib/services/store/actions/user.actions.mjs} +0 -0
- package/{esm2015/lib/services/store/effects/app.effects.js → esm2020/lib/services/store/effects/app.effects.mjs} +5 -5
- package/{esm2015/lib/services/store/effects/index.js → esm2020/lib/services/store/effects/index.mjs} +0 -0
- package/{esm2015/lib/services/store/index.js → esm2020/lib/services/store/index.mjs} +0 -0
- package/esm2020/lib/services/store/reducers/app.reducers.mjs +57 -0
- package/{esm2015/lib/services/store/reducers/core.reducers.js → esm2020/lib/services/store/reducers/core.reducers.mjs} +0 -0
- package/esm2020/lib/services/store/reducers/i18n.reducers.mjs +18 -0
- package/{esm2015/lib/services/store/reducers/index.js → esm2020/lib/services/store/reducers/index.mjs} +0 -0
- package/esm2020/lib/services/store/reducers/locale.reducers.mjs +18 -0
- package/esm2020/lib/services/store/reducers/meta.reducers.mjs +91 -0
- package/{esm2015/lib/services/store/reducers/notifications.reducers.js → esm2020/lib/services/store/reducers/notifications.reducers.mjs} +0 -0
- package/esm2020/lib/services/store/reducers/user.reducers.mjs +43 -0
- package/{esm2015/lib/services/store/store.service.js → esm2020/lib/services/store/store.service.mjs} +4 -4
- package/{esm2015/lib/services/store/store.service.mock.js → esm2020/lib/services/store/store.service.mock.mjs} +4 -4
- package/{esm2015/lib/services/user/index.js → esm2020/lib/services/user/index.mjs} +0 -0
- package/{esm2015/lib/services/user/user.service.js → esm2020/lib/services/user/user.service.mjs} +4 -4
- package/{esm2015/lib/services/user/user.service.mock.js → esm2020/lib/services/user/user.service.mock.mjs} +4 -4
- package/esm2020/lib/services/ux-app-shell.service.mjs +633 -0
- package/{esm2015/lib/services/ux-dynamic-component/ux-dynamic-component.service.js → esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs} +4 -4
- package/{esm2015/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.js → esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs} +4 -4
- package/{esm2015/lib/services/ux-error-feedback/ux-error-feedback.service.js → esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs} +4 -4
- package/{esm2015/lib/services/ux-error-feedback/ux-error-handler.operator.js → esm2020/lib/services/ux-error-feedback/ux-error-handler.operator.mjs} +0 -0
- package/{esm2015/lib/services/ux-timezone.service.js → esm2020/lib/services/ux-timezone.service.mjs} +4 -4
- package/fesm2015/{eui-core.js → eui-core.mjs} +270 -247
- package/fesm2015/eui-core.mjs.map +1 -0
- package/fesm2020/eui-core.mjs +4592 -0
- package/fesm2020/eui-core.mjs.map +1 -0
- package/lib/services/locale/locale.service.d.ts.map +1 -1
- package/lib/services/permission/permission.service.d.ts +1 -1
- package/lib/services/permission/permission.service.d.ts.map +1 -1
- package/package.json +19 -6
- package/bundles/eui-core.umd.js +0 -5323
- package/bundles/eui-core.umd.js.map +0 -1
- package/esm2015/lib/interceptors/eu-login-session-timeout-handling.interceptor.js +0 -61
- package/esm2015/lib/interceptors/openid/openid-connect.interceptor.js +0 -146
- package/esm2015/lib/services/app/eui-pre-init-app.js +0 -47
- package/esm2015/lib/services/config/defaults.js +0 -49
- package/esm2015/lib/services/i18n/i18n.service.js +0 -219
- package/esm2015/lib/services/locale/locale.service.js +0 -255
- package/esm2015/lib/services/store/reducers/app.reducers.js +0 -49
- package/esm2015/lib/services/store/reducers/i18n.reducers.js +0 -15
- package/esm2015/lib/services/store/reducers/locale.reducers.js +0 -15
- package/esm2015/lib/services/store/reducers/meta.reducers.js +0 -92
- package/esm2015/lib/services/store/reducers/user.reducers.js +0 -43
- package/esm2015/lib/services/ux-app-shell.service.js +0 -584
- package/fesm2015/eui-core.js.map +0 -1
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Angular is using a gulp task to generate the locales that we dynamically import. This task can be found here
|
|
3
|
-
* https://github.com/angular/angular/blob/master/tools/gulp-tasks/cldr/cldr-data.js
|
|
4
|
-
* That task is utilizing the CLDR library to load and construct the locale for each region. This service is responsible
|
|
5
|
-
* to load those locale dynamically upon request and to update the state of the eUI app.
|
|
6
|
-
*
|
|
7
|
-
* Parts that are handles through configuration:
|
|
8
|
-
* - update of the LOCALE_ID token
|
|
9
|
-
* - initial dynamical load of locales
|
|
10
|
-
* - bind to translation service for locale changes
|
|
11
|
-
*/
|
|
12
|
-
import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';
|
|
13
|
-
import { getLocaleId, registerLocaleData } from '@angular/common';
|
|
14
|
-
import { EuiService, getLocaleState, getLocaleServiceConfigFromBase, } from '@eui/base';
|
|
15
|
-
import { forkJoin, of, Subject, from, throwError } from 'rxjs';
|
|
16
|
-
import { catchError, filter, map, mergeMap, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
17
|
-
import { StoreService, UpdateLocaleStateAction } from '../store';
|
|
18
|
-
import { LogService } from '../log';
|
|
19
|
-
import { I18nService } from '../i18n';
|
|
20
|
-
import { GLOBAL_CONFIG_TOKEN } from '../config/tokens';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "../store";
|
|
23
|
-
import * as i2 from "../i18n";
|
|
24
|
-
import * as i3 from "../log";
|
|
25
|
-
export const LOCALE_ID_MAPPER = new InjectionToken('localeIdMapper');
|
|
26
|
-
export class LocaleService extends EuiService {
|
|
27
|
-
constructor(store, baseGlobalConfig, locale_id, localeMapper, i18n, log) {
|
|
28
|
-
super({ id: getLocaleId(locale_id) });
|
|
29
|
-
this.store = store;
|
|
30
|
-
this.baseGlobalConfig = baseGlobalConfig;
|
|
31
|
-
this.locale_id = locale_id;
|
|
32
|
-
this.localeMapper = localeMapper;
|
|
33
|
-
this.i18n = i18n;
|
|
34
|
-
this.log = log;
|
|
35
|
-
this.subNotifier = new Subject();
|
|
36
|
-
if (log) {
|
|
37
|
-
this.logger = log.getLogger('core.LocaleService');
|
|
38
|
-
}
|
|
39
|
-
this.config = getLocaleServiceConfigFromBase(this.baseGlobalConfig);
|
|
40
|
-
// in case no localeMapper provided, set the angular getLocaleId as default
|
|
41
|
-
if (!this.localeMapper) {
|
|
42
|
-
this.localeMapper = getLocaleId;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
this.subNotifier.next();
|
|
47
|
-
this.subNotifier.complete();
|
|
48
|
-
}
|
|
49
|
-
getState() {
|
|
50
|
-
return this.store.select(getLocaleState).pipe(takeUntil(this.subNotifier),
|
|
51
|
-
// in case service didn't init fallback to LOCALE_ID token value
|
|
52
|
-
map(state => state ? state : this.stateInstance ? this.stateInstance : this.locale_id));
|
|
53
|
-
}
|
|
54
|
-
init(state) {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
super.initEuiService();
|
|
57
|
-
if (state) {
|
|
58
|
-
this.stateInstance = state;
|
|
59
|
-
}
|
|
60
|
-
// bind language changes to locale changes
|
|
61
|
-
if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.bindWithTranslate) {
|
|
62
|
-
this.bindTranslateServiceLangChangeToState();
|
|
63
|
-
}
|
|
64
|
-
// dynamically load locale based on provided configuration
|
|
65
|
-
const availableLocales = (state === null || state === void 0 ? void 0 : state.available) || ((_b = this.config) === null || _b === void 0 ? void 0 : _b.available) || this.getBrowserLocales() || [this.currentLocale];
|
|
66
|
-
return this.loadLocale(availableLocales).pipe(takeUntil(this.subNotifier), tap(() => this.updateState({ id: this.currentLocale })));
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* dynamically load locale and update the state
|
|
70
|
-
*/
|
|
71
|
-
updateState(state) {
|
|
72
|
-
try {
|
|
73
|
-
const id = getLocaleId(state.id);
|
|
74
|
-
this.store.dispatch(new UpdateLocaleStateAction(Object.assign(Object.assign({}, state), { id })));
|
|
75
|
-
// update global TOKEN ID based on configuration
|
|
76
|
-
if (this.config.affectGlobalLocale) {
|
|
77
|
-
this.locale_id = id;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (e) {
|
|
81
|
-
const message = `Locale for '${state.id}' is not available.
|
|
82
|
-
Please use addLocale('${state.id}') first`;
|
|
83
|
-
if (this.log) {
|
|
84
|
-
this.logger.info(message, e);
|
|
85
|
-
}
|
|
86
|
-
throw new Error(message);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
addLocale(id) {
|
|
90
|
-
return this.loadLocale(id);
|
|
91
|
-
}
|
|
92
|
-
get currentLocale() {
|
|
93
|
-
return this.stateInstance.id;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* load and register locale data dynamically
|
|
97
|
-
* @param locale array of locale to load
|
|
98
|
-
*/
|
|
99
|
-
loadLocale(locale) {
|
|
100
|
-
locale = Array.isArray(locale) ? locale : [locale];
|
|
101
|
-
const localeImports = this.filterRegisteredLocales(locale).map(this.importDataAndExtraLocale.bind(this));
|
|
102
|
-
// in case localeImports array is empty because locale exists, Observable still needs to complete
|
|
103
|
-
if (localeImports.length < 1) {
|
|
104
|
-
return of({ success: true });
|
|
105
|
-
}
|
|
106
|
-
return forkJoin(...localeImports).pipe(takeUntil(this.subNotifier), map(localeData => {
|
|
107
|
-
// filter out null results and registerLocaleData including extra
|
|
108
|
-
localeData.filter(({ data }) => data)
|
|
109
|
-
.forEach(({ data, localeId, extraData }) => registerLocaleData(data, localeId, extraData));
|
|
110
|
-
return { success: true };
|
|
111
|
-
}), catchError(error => {
|
|
112
|
-
if (this.log) {
|
|
113
|
-
this.logger.debug(`Locale load error: ${error.message}`, error);
|
|
114
|
-
}
|
|
115
|
-
return of({ success: false, error: error });
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* listen for language changes and dynamically set locale accordingly. In case of non registered locale register it
|
|
120
|
-
* dynamically.
|
|
121
|
-
*/
|
|
122
|
-
bindTranslateServiceLangChangeToState() {
|
|
123
|
-
if (this.i18n) {
|
|
124
|
-
this.i18n.onStateChange.pipe(takeUntil(this.subNotifier),
|
|
125
|
-
// BEWARE: filter is based on convention that locale id sliced(2) will match activeLang e.g. en-US => en
|
|
126
|
-
// Also, if activeLang is 'en' and locale is 'en-GB' it will not trigger locale change
|
|
127
|
-
filter(state => { var _a, _b; return ((_a = state === null || state === void 0 ? void 0 : state.activeLang) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== ((_b = this.stateInstance) === null || _b === void 0 ? void 0 : _b.id.slice(0, 2).toLowerCase()); }),
|
|
128
|
-
// to check if registration of locale otherwise register it
|
|
129
|
-
switchMap(value => of(value).pipe(
|
|
130
|
-
// getLocaleId may throw Error(`Missing locale data for the locale "${locale}".`);
|
|
131
|
-
switchMap(i18state => {
|
|
132
|
-
// check if activeLang is null or undefined
|
|
133
|
-
if (!i18state.activeLang) {
|
|
134
|
-
return throwError('Has i18nService initialized? If not make sure i18nService.init().subscribe(..)');
|
|
135
|
-
}
|
|
136
|
-
return of(this.localeMapper(i18state.activeLang));
|
|
137
|
-
}), catchError(error => {
|
|
138
|
-
if (this.log) {
|
|
139
|
-
this.logger.debug(error);
|
|
140
|
-
}
|
|
141
|
-
return this.loadLocale(value.activeLang).pipe(filter((s) => s.success), map(() => this.localeMapper(value.activeLang)), catchError(e => {
|
|
142
|
-
if (this.log) {
|
|
143
|
-
this.logger.debug('Something went terribly really wrong during locale loading', e.err.message);
|
|
144
|
-
}
|
|
145
|
-
return of(e);
|
|
146
|
-
}));
|
|
147
|
-
}))),
|
|
148
|
-
// update the "available" array attribute with newly registered
|
|
149
|
-
switchMap(id => this.getState().pipe(take(1), map((state) => {
|
|
150
|
-
const available = (state === null || state === void 0 ? void 0 : state.available) ? state.available : [];
|
|
151
|
-
return Object.assign(Object.assign({}, state), { id, available: Array.from(new Set([...available, id])) });
|
|
152
|
-
})))).subscribe((state) => {
|
|
153
|
-
this.updateState(state);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* retrieve locales from browser
|
|
159
|
-
* @param options
|
|
160
|
-
*/
|
|
161
|
-
getBrowserLocales() {
|
|
162
|
-
const browserLocales = navigator.languages === undefined ? [navigator.language] : navigator.languages;
|
|
163
|
-
if (!browserLocales) {
|
|
164
|
-
return undefined;
|
|
165
|
-
}
|
|
166
|
-
return browserLocales.map(locale => locale.trim());
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* if locale is already registered filtered out.
|
|
170
|
-
* @param locales A string array contains all locale id e.g. ["el", "el-CY"]
|
|
171
|
-
*/
|
|
172
|
-
filterRegisteredLocales(locales) {
|
|
173
|
-
return locales.filter((loc) => {
|
|
174
|
-
try {
|
|
175
|
-
getLocaleId(loc);
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
catch (e) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* returns an Observable which loads the locale based on provided ID
|
|
185
|
-
* @param id the locale id e.g. en, el-CY
|
|
186
|
-
* @private
|
|
187
|
-
*/
|
|
188
|
-
importLocale(id) {
|
|
189
|
-
// in case of an error, catch it and return null
|
|
190
|
-
return import(
|
|
191
|
-
/* webpackExclude: /\.d\.ts$/ */
|
|
192
|
-
/* webpackMode: "lazy-once" */
|
|
193
|
-
/* webpackChunkName: "i18n-base" */
|
|
194
|
-
`@angular/common/locales/${id}`)
|
|
195
|
-
.then(m => m.default)
|
|
196
|
-
.catch(error => {
|
|
197
|
-
if (this.log) {
|
|
198
|
-
this.logger.debug(`Locale with ID: "${id}" failed to load. Error: ${error.message}`, error);
|
|
199
|
-
}
|
|
200
|
-
return null;
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* returns a Promise which loads the locale based on provided ID
|
|
205
|
-
* @param id the locale id e.g. en, el-CY
|
|
206
|
-
* @private
|
|
207
|
-
*/
|
|
208
|
-
importExtraLocale(id) {
|
|
209
|
-
// in case of an error, catch it and return null
|
|
210
|
-
return import(
|
|
211
|
-
/* webpackExclude: /\.d\.ts$/ */
|
|
212
|
-
/* webpackMode: "lazy-once" */
|
|
213
|
-
/* webpackChunkName: "i18n-extra" */
|
|
214
|
-
`@angular/common/locales/extra/${id}`)
|
|
215
|
-
.then(m => m.default)
|
|
216
|
-
.catch(error => {
|
|
217
|
-
if (this.log) {
|
|
218
|
-
this.logger.debug(`Extra Locale with ID: "${id}" failed to load. Error: ${error.message}`, error);
|
|
219
|
-
}
|
|
220
|
-
return null;
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Imports Locale and then Extra. It returns the Object which registerLocale(...) function needs.
|
|
225
|
-
* @param localeId The id of the locale
|
|
226
|
-
* @private
|
|
227
|
-
*/
|
|
228
|
-
importDataAndExtraLocale(localeId) {
|
|
229
|
-
return from(this.importLocale(localeId)).pipe(mergeMap(() => from(this.importExtraLocale(localeId)).pipe(map((data, extraData) => Object.assign({}, { data, localeId, extraData }))), 1));
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
/** @nocollapse */ LocaleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.8", ngImport: i0, type: LocaleService, deps: [{ token: i1.StoreService }, { token: GLOBAL_CONFIG_TOKEN }, { token: LOCALE_ID }, { token: LOCALE_ID_MAPPER, optional: true }, { token: i2.I18nService, optional: true }, { token: i3.LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
233
|
-
/** @nocollapse */ LocaleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-next.8", ngImport: i0, type: LocaleService, providedIn: 'root' });
|
|
234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.8", ngImport: i0, type: LocaleService, decorators: [{
|
|
235
|
-
type: Injectable,
|
|
236
|
-
args: [{
|
|
237
|
-
providedIn: 'root'
|
|
238
|
-
}]
|
|
239
|
-
}], ctorParameters: function () { return [{ type: i1.StoreService }, { type: undefined, decorators: [{
|
|
240
|
-
type: Inject,
|
|
241
|
-
args: [GLOBAL_CONFIG_TOKEN]
|
|
242
|
-
}] }, { type: undefined, decorators: [{
|
|
243
|
-
type: Inject,
|
|
244
|
-
args: [LOCALE_ID]
|
|
245
|
-
}] }, { type: undefined, decorators: [{
|
|
246
|
-
type: Optional
|
|
247
|
-
}, {
|
|
248
|
-
type: Inject,
|
|
249
|
-
args: [LOCALE_ID_MAPPER]
|
|
250
|
-
}] }, { type: i2.I18nService, decorators: [{
|
|
251
|
-
type: Optional
|
|
252
|
-
}] }, { type: i3.LogService, decorators: [{
|
|
253
|
-
type: Optional
|
|
254
|
-
}] }]; } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2xvY2FsZS9sb2NhbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCxVQUFVLEVBRVYsY0FBYyxFQUNkLDhCQUE4QixHQUtqQyxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUd2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBZSxnQkFBZ0IsQ0FBQyxDQUFDO0FBS25GLE1BQU0sT0FBTyxhQUFjLFNBQVEsVUFBdUI7SUFLdEQsWUFBc0IsS0FBbUIsRUFDVSxnQkFBOEIsRUFDeEMsU0FBaUIsRUFDQSxZQUEwQixFQUNw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Q0ssd0JBQXdCLENBQUMsUUFBZ0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQzlDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQ3RFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdEQsQ0FBQyxDQUNKLENBQUMsQ0FBQztJQUNYLENBQUM7O29JQTVQUSxhQUFhLDhDQU1GLG1CQUFtQixhQUNuQixTQUFTLGFBQ0csZ0JBQWdCO3dJQVJ2QyxhQUFhLGNBRlYsTUFBTTtrR0FFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBT2dCLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbmd1bGFyIGlzIHVzaW5nIGEgZ3VscCB0YXNrIHRvIGdlbmVyYXRlIHRoZSBsb2NhbGVzIHRoYXQgd2UgZHluYW1pY2FsbHkgaW1wb3J0LiBUaGlzIHRhc2sgY2FuIGJlIGZvdW5kIGhlcmVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYXN0ZXIvdG9vbHMvZ3VscC10YXNrcy9jbGRyL2NsZHItZGF0YS5qc1xuICogVGhhdCB0YXNrIGlzIHV0aWxpemluZyB0aGUgQ0xEUiBsaWJyYXJ5IHRvIGxvYWQgYW5kIGNvbnN0cnVjdCB0aGUgbG9jYWxlIGZvciBlYWNoIHJlZ2lvbi4gVGhpcyBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlXG4gKiB0byBsb2FkIHRob3NlIGxvY2FsZSBkeW5hbWljYWxseSB1cG9uIHJlcXVlc3QgYW5kIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIGVVSSBhcHAuXG4gKlxuICogUGFydHMgdGhhdCBhcmUgaGFuZGxlcyB0aHJvdWdoIGNvbmZpZ3VyYXRpb246XG4gKiAgLSB1cGRhdGUgb2YgdGhlIExPQ0FMRV9JRCB0b2tlblxuICogIC0gaW5pdGlhbCBkeW5hbWljYWwgbG9hZCBvZiBsb2NhbGVzXG4gKiAgLSBiaW5kIHRvIHRyYW5zbGF0aW9uIHNlcnZpY2UgZm9yIGxvY2FsZSBjaGFuZ2VzXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lELCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRMb2NhbGVJZCwgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRXVpU2VydmljZSxcbiAgICBFdWlTZXJ2aWNlU3RhdHVzLFxuICAgIGdldExvY2FsZVN0YXRlLFxuICAgIGdldExvY2FsZVNlcnZpY2VDb25maWdGcm9tQmFzZSxcbiAgICBHbG9iYWxDb25maWcsXG4gICAgTG9jYWxlU2VydmljZUNvbmZpZyxcbiAgICBMb2NhbGVTdGF0ZSxcbiAgICBMb2dnZXIsXG59IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIGZyb20sIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0b3JlU2VydmljZSwgVXBkYXRlTG9jYWxlU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQgeyBHTE9CQUxfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vY29uZmlnL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIExvY2FsZU1hcHBlciA9IChsb2NhbGU6IHN0cmluZykgPT4gYW55O1xuZXhwb3J0IGNvbnN0IExPQ0FMRV9JRF9NQVBQRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9jYWxlTWFwcGVyPignbG9jYWxlSWRNYXBwZXInKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGVTZXJ2aWNlIGV4dGVuZHMgRXVpU2VydmljZTxMb2NhbGVTdGF0ZT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG4gICAgcHJpdmF0ZSBzdWJOb3RpZmllcjogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcm90ZWN0ZWQgY29uZmlnOiBMb2NhbGVTZXJ2aWNlQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHN0b3JlOiBTdG9yZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgYmFzZUdsb2JhbENvbmZpZzogR2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcm90ZWN0ZWQgbG9jYWxlX2lkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSURfTUFQUEVSKSBwcml2YXRlIGxvY2FsZU1hcHBlcjogTG9jYWxlTWFwcGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBsb2c6IExvZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoeyBpZDogZ2V0TG9jYWxlSWQobG9jYWxlX2lkKSB9KTtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2cuZ2V0TG9nZ2VyKCdjb3JlLkxvY2FsZVNlcnZpY2UnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnID0gZ2V0TG9jYWxlU2VydmljZUNvbmZpZ0Zyb21CYXNlKHRoaXMuYmFzZUdsb2JhbENvbmZpZyk7XG4gICAgICAgIC8vIGluIGNhc2Ugbm8gbG9jYWxlTWFwcGVyIHByb3ZpZGVkLCBzZXQgdGhlIGFuZ3VsYXIgZ2V0TG9jYWxlSWQgYXMgZGVmYXVsdFxuICAgICAgICBpZiAoIXRoaXMubG9jYWxlTWFwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZU1hcHBlciA9IGdldExvY2FsZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3ViTm90aWZpZXIubmV4dCgpO1xuICAgICAgICB0aGlzLnN1Yk5vdGlmaWVyLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoKTogT2JzZXJ2YWJsZTxMb2NhbGVTdGF0ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0TG9jYWxlU3RhdGUpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5zdWJOb3RpZmllciksXG4gICAgICAgICAgICAvLyBpbiBjYXNlIHNlcnZpY2UgZGlkbid0IGluaXQgZmFsbGJhY2sgdG8gTE9DQUxFX0lEIHRva2VuIHZhbHVlXG4gICAgICAgICAgICBtYXAoc3RhdGUgPT4gc3RhdGUgPyBzdGF0ZSA6IHRoaXMuc3RhdGVJbnN0YW5jZSA/IHRoaXMuc3RhdGVJbnN0YW5jZSA6IHRoaXMubG9jYWxlX2lkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGluaXQoc3RhdGU/OiBMb2NhbGVTdGF0ZSB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBzdXBlci5pbml0RXVpU2VydmljZSgpO1xuXG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUluc3RhbmNlID0gc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiaW5kIGxhbmd1YWdlIGNoYW5nZXMgdG8gbG9jYWxlIGNoYW5nZXNcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnPy5iaW5kV2l0aFRyYW5zbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5iaW5kVHJhbnNsYXRlU2VydmljZUxhbmdDaGFuZ2VUb1N0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkeW5hbWljYWxseSBsb2FkIGxvY2FsZSBiYXNlZCBvbiBwcm92aWRlZCBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSBzdGF0ZT8uYXZhaWxhYmxlIHx8IHRoaXMuY29uZmlnPy5hdmFpbGFibGUgfHwgdGhpcy5nZXRCcm93c2VyTG9jYWxlcygpIHx8IFt0aGlzLmN1cnJlbnRMb2NhbGVdO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9jYWxlKGF2YWlsYWJsZUxvY2FsZXMpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5zdWJOb3RpZmllciksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy51cGRhdGVTdGF0ZSh7IGlkOiB0aGlzLmN1cnJlbnRMb2NhbGUgfSkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGR5bmFtaWNhbGx5IGxvYWQgbG9jYWxlIGFuZCB1cGRhdGUgdGhlIHN0YXRlXG4gICAgICovXG4gICAgdXBkYXRlU3RhdGUoc3RhdGU6IExvY2FsZVN0YXRlKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGdldExvY2FsZUlkKHN0YXRlLmlkKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUxvY2FsZVN0YXRlQWN0aW9uKHsgLi4uc3RhdGUsIGlkIH0pKTtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBnbG9iYWwgVE9LRU4gSUQgYmFzZWQgb24gY29uZmlndXJhdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmFmZmVjdEdsb2JhbExvY2FsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlX2lkID0gaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTG9jYWxlIGZvciAnJHtzdGF0ZS5pZH0nIGlzIG5vdCBhdmFpbGFibGUuXG4gICAgICAgICAgICAgICAgIFBsZWFzZSB1c2UgYWRkTG9jYWxlKCcke3N0YXRlLmlkfScpIGZpcnN0YDtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8obWVzc2FnZSwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRMb2NhbGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9jYWxlKGlkKTtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZUluc3RhbmNlLmlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvYWQgYW5kIHJlZ2lzdGVyIGxvY2FsZSBkYXRhIGR5bmFtaWNhbGx5XG4gICAgICogQHBhcmFtIGxvY2FsZSBhcnJheSBvZiBsb2NhbGUgdG8gbG9hZFxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZExvY2FsZShsb2NhbGU6IHN0cmluZ1tdIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XG4gICAgICAgIGxvY2FsZSA9IEFycmF5LmlzQXJyYXkobG9jYWxlKSA/IGxvY2FsZSA6IFtsb2NhbGVdO1xuICAgICAgICBjb25zdCBsb2NhbGVJbXBvcnRzOiBPYnNlcnZhYmxlPHsgZGF0YTogYW55LCBsb2NhbGVJZDogc3RyaW5nLCBleHRyYURhdGE6IGFueSB9PltdXG4gICAgICAgICAgICA9IHRoaXMuZmlsdGVyUmVnaXN0ZXJlZExvY2FsZXMobG9jYWxlKS5tYXAodGhpcy5pbXBvcnREYXRhQW5kRXh0cmFMb2NhbGUuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgLy8gaW4gY2FzZSBsb2NhbGVJbXBvcnRzIGFycmF5IGlzIGVtcHR5IGJlY2F1c2UgbG9jYWxlIGV4aXN0cywgT2JzZXJ2YWJsZSBzdGlsbCBuZWVkcyB0byBjb21wbGV0ZVxuICAgICAgICBpZiAobG9jYWxlSW1wb3J0cy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKC4uLmxvY2FsZUltcG9ydHMpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5zdWJOb3RpZmllciksXG4gICAgICAgICAgICBtYXAobG9jYWxlRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIG91dCBudWxsIHJlc3VsdHMgYW5kIHJlZ2lzdGVyTG9jYWxlRGF0YSBpbmNsdWRpbmcgZXh0cmFcbiAgICAgICAgICAgICAgICBsb2NhbGVEYXRhLmZpbHRlcigoeyBkYXRhIH0pID0+IGRhdGEpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKCh7IGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEgfSkgPT4gcmVnaXN0ZXJMb2NhbGVEYXRhKGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTG9jYWxlIGxvYWQgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogZXJyb3IgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxpc3RlbiBmb3IgbGFuZ3VhZ2UgY2hhbmdlcyBhbmQgZHluYW1pY2FsbHkgc2V0IGxvY2FsZSBhY2NvcmRpbmdseS4gSW4gY2FzZSBvZiBub24gcmVnaXN0ZXJlZCBsb2NhbGUgcmVnaXN0ZXIgaXRcbiAgICAgKiBkeW5hbWljYWxseS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGJpbmRUcmFuc2xhdGVTZXJ2aWNlTGFuZ0NoYW5nZVRvU3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmkxOG4pIHtcbiAgICAgICAgICAgIHRoaXMuaTE4bi5vblN0YXRlQ2hhbmdlLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuc3ViTm90aWZpZXIpLFxuICAgICAgICAgICAgICAgIC8vIEJFV0FSRTogZmlsdGVyIGlzIGJhc2VkIG9uIGNvbnZlbnRpb24gdGhhdCBsb2NhbGUgaWQgc2xpY2VkKDIpIHdpbGwgbWF0Y2ggYWN0aXZlTGFuZyBlLmcuIGVuLVVTID0+IGVuXG4gICAgICAgICAgICAgICAgLy8gQWxzbywgaWYgYWN0aXZlTGFuZyBpcyAnZW4nIGFuZCBsb2NhbGUgaXMgJ2VuLUdCJyBpdCB3aWxsIG5vdCB0cmlnZ2VyIGxvY2FsZSBjaGFuZ2VcbiAgICAgICAgICAgICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGU/LmFjdGl2ZUxhbmc/LnRvTG93ZXJDYXNlKCkgIT09IHRoaXMuc3RhdGVJbnN0YW5jZT8uaWQuc2xpY2UoMCwgMikudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICAgICAgLy8gdG8gY2hlY2sgaWYgcmVnaXN0cmF0aW9uIG9mIGxvY2FsZSBvdGhlcndpc2UgcmVnaXN0ZXIgaXRcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gb2YodmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIGdldExvY2FsZUlkIG1heSB0aHJvdyBFcnJvcihgTWlzc2luZyBsb2NhbGUgZGF0YSBmb3IgdGhlIGxvY2FsZSBcIiR7bG9jYWxlfVwiLmApO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoaTE4c3RhdGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgYWN0aXZlTGFuZyBpcyBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpMThzdGF0ZS5hY3RpdmVMYW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0hhcyBpMThuU2VydmljZSBpbml0aWFsaXplZD8gSWYgbm90IG1ha2Ugc3VyZSBpMThuU2VydmljZS5pbml0KCkuc3Vic2NyaWJlKC4uKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubG9jYWxlTWFwcGVyKGkxOHN0YXRlLmFjdGl2ZUxhbmcpKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZSh2YWx1ZS5hY3RpdmVMYW5nKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoczogRXVpU2VydmljZVN0YXR1cykgPT4gcy5zdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5sb2NhbGVNYXBwZXIodmFsdWUuYWN0aXZlTGFuZykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NvbWV0aGluZyB3ZW50IHRlcnJpYmx5IHJlYWxseSB3cm9uZyBkdXJpbmcgbG9jYWxlIGxvYWRpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuZXJyLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIFwiYXZhaWxhYmxlXCIgYXJyYXkgYXR0cmlidXRlIHdpdGggbmV3bHkgcmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpZCA9PiB0aGlzLmdldFN0YXRlKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChzdGF0ZTogTG9jYWxlU3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IHN0YXRlPy5hdmFpbGFibGUgPyBzdGF0ZS5hdmFpbGFibGUgOiBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBpZCwgYXZhaWxhYmxlOiBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLmF2YWlsYWJsZSwgaWRdKSkgfTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHN0YXRlOiBMb2NhbGVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoc3RhdGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXRyaWV2ZSBsb2NhbGVzIGZyb20gYnJvd3NlclxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRCcm93c2VyTG9jYWxlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJMb2NhbGVzID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA9PT0gdW5kZWZpbmVkID8gW25hdmlnYXRvci5sYW5ndWFnZV0gOiBuYXZpZ2F0b3IubGFuZ3VhZ2VzO1xuXG4gICAgICAgIGlmICghYnJvd3NlckxvY2FsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYnJvd3NlckxvY2FsZXMubWFwKGxvY2FsZSA9PiBsb2NhbGUudHJpbSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBsb2NhbGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGZpbHRlcmVkIG91dC5cbiAgICAgKiBAcGFyYW0gbG9jYWxlcyBBIHN0cmluZyBhcnJheSBjb250YWlucyBhbGwgbG9jYWxlIGlkIGUuZy4gW1wiZWxcIiwgXCJlbC1DWVwiXVxuICAgICAqL1xuICAgIHByaXZhdGUgZmlsdGVyUmVnaXN0ZXJlZExvY2FsZXMobG9jYWxlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzLmZpbHRlcigobG9jOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZ2V0TG9jYWxlSWQobG9jKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB3aGljaCBsb2FkcyB0aGUgbG9jYWxlIGJhc2VkIG9uIHByb3ZpZGVkIElEXG4gICAgICogQHBhcmFtIGlkIHRoZSBsb2NhbGUgaWQgZS5nLiBlbiwgZWwtQ1lcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgaW1wb3J0TG9jYWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBpbiBjYXNlIG9mIGFuIGVycm9yLCBjYXRjaCBpdCBhbmQgcmV0dXJuIG51bGxcbiAgICAgICAgcmV0dXJuIGltcG9ydChcbiAgICAgICAgICAgIC8qIHdlYnBhY2tFeGNsdWRlOiAvXFwuZFxcLnRzJC8gKi9cbiAgICAgICAgICAgIC8qIHdlYnBhY2tNb2RlOiBcImxhenktb25jZVwiICovXG4gICAgICAgICAgICAvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImkxOG4tYmFzZVwiICovXG4gICAgICAgICAgICBgQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvJHtpZH1gKVxuICAgICAgICAgICAgLnRoZW4obSA9PiBtLmRlZmF1bHQpXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTG9jYWxlIHdpdGggSUQ6IFwiJHtpZH1cIiBmYWlsZWQgdG8gbG9hZC4gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhIFByb21pc2Ugd2hpY2ggbG9hZHMgdGhlIGxvY2FsZSBiYXNlZCBvbiBwcm92aWRlZCBJRFxuICAgICAqIEBwYXJhbSBpZCB0aGUgbG9jYWxlIGlkIGUuZy4gZW4sIGVsLUNZXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGltcG9ydEV4dHJhTG9jYWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyBpbiBjYXNlIG9mIGFuIGVycm9yLCBjYXRjaCBpdCBhbmQgcmV0dXJuIG51bGxcbiAgICAgICAgcmV0dXJuIGltcG9ydChcbiAgICAgICAgICAgIC8qIHdlYnBhY2tFeGNsdWRlOiAvXFwuZFxcLnRzJC8gKi9cbiAgICAgICAgICAgIC8qIHdlYnBhY2tNb2RlOiBcImxhenktb25jZVwiICovXG4gICAgICAgICAgICAvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImkxOG4tZXh0cmFcIiAqL1xuICAgICAgICAgICAgYEBhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhLyR7aWR9YClcbiAgICAgICAgICAgIC50aGVuKG0gPT4gbS5kZWZhdWx0KVxuICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2cpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEV4dHJhIExvY2FsZSB3aXRoIElEOiBcIiR7aWR9XCIgZmFpbGVkIHRvIGxvYWQuIEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEltcG9ydHMgTG9jYWxlIGFuZCB0aGVuIEV4dHJhLiBJdCByZXR1cm5zIHRoZSBPYmplY3Qgd2hpY2ggcmVnaXN0ZXJMb2NhbGUoLi4uKSBmdW5jdGlvbiBuZWVkcy5cbiAgICAgKiBAcGFyYW0gbG9jYWxlSWQgVGhlIGlkIG9mIHRoZSBsb2NhbGVcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgaW1wb3J0RGF0YUFuZEV4dHJhTG9jYWxlKGxvY2FsZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgZGF0YTogYW55LCBsb2NhbGVJZDogc3RyaW5nLCBleHRyYURhdGE6IGFueSB9PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuaW1wb3J0TG9jYWxlKGxvY2FsZUlkKSkucGlwZShtZXJnZU1hcChcbiAgICAgICAgICAgICAgICAoKSA9PiBmcm9tKHRoaXMuaW1wb3J0RXh0cmFMb2NhbGUobG9jYWxlSWQpKS5waXBlKG1hcCgoZGF0YSwgZXh0cmFEYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCB7IGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEgfSkpKSxcbiAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICApKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { CoreAppActionTypes, } from '../actions/app.actions';
|
|
2
|
-
import { initialAppState } from '@eui/base';
|
|
3
|
-
const updateAppVersion = (state, action) => (Object.assign(Object.assign({}, state), { version: action.payload }));
|
|
4
|
-
const updateAppConnection = (state, action) => (Object.assign(Object.assign({}, state), { connected: action.payload }));
|
|
5
|
-
const AddAppLoadedConfigModules = (state, action) => (Object.assign(Object.assign({}, state), { loadedConfigModules: {
|
|
6
|
-
lastAddedModule: action.payload.moduleName,
|
|
7
|
-
modulesConfig: Object.assign(Object.assign({}, state.loadedConfigModules.modulesConfig), { [action.payload.moduleName]: Object.assign({}, action.payload.moduleConfig) }),
|
|
8
|
-
} }));
|
|
9
|
-
const updateAppStatus = (state, action) => (Object.assign(Object.assign({}, state), { status: action.payload }));
|
|
10
|
-
const updateCurrentModule = (state, action) => {
|
|
11
|
-
return Object.assign({}, state, { currentModule: action.payload });
|
|
12
|
-
};
|
|
13
|
-
const addApiQueueItem = (state, action) => {
|
|
14
|
-
// apply the timestamp to the queue item
|
|
15
|
-
const apiQueueItem = Object.assign({}, action.payload.item, { timestamp: new Date().getTime() });
|
|
16
|
-
// update the queue
|
|
17
|
-
const apiQueue = Object.assign({}, state.apiQueue, { [action.payload.id]: apiQueueItem });
|
|
18
|
-
return Object.assign({}, state, { apiQueue });
|
|
19
|
-
};
|
|
20
|
-
const removeApiQueueItem = (state, action) => {
|
|
21
|
-
// remove the specified id from the list of item ids and recreate the apiQueue from the remaining ids
|
|
22
|
-
const apiQueue = Object.keys(state.apiQueue).filter(id => id !== action.payload).reduce((queue, key) => {
|
|
23
|
-
queue[key] = state.apiQueue[key];
|
|
24
|
-
return queue;
|
|
25
|
-
}, {});
|
|
26
|
-
return Object.assign({}, state, { apiQueue });
|
|
27
|
-
};
|
|
28
|
-
const emptyApiQueue = (state, action) => {
|
|
29
|
-
// remove all items in the Api Queue
|
|
30
|
-
return Object.assign({}, state, { apiQueue: {} });
|
|
31
|
-
};
|
|
32
|
-
const actionToReducerMap = {
|
|
33
|
-
[CoreAppActionTypes.UPDATE_APP_VERSION]: updateAppVersion,
|
|
34
|
-
[CoreAppActionTypes.UPDATE_APP_CONNECTION]: updateAppConnection,
|
|
35
|
-
[CoreAppActionTypes.ADD_APP_LOADED_CONFIG_MODULES]: AddAppLoadedConfigModules,
|
|
36
|
-
[CoreAppActionTypes.UPDATE_APP_STATUS]: updateAppStatus,
|
|
37
|
-
[CoreAppActionTypes.UPDATE_CURRENT_MODULE]: updateCurrentModule,
|
|
38
|
-
[CoreAppActionTypes.ADD_API_QUEUE_ITEM]: addApiQueueItem,
|
|
39
|
-
[CoreAppActionTypes.REMOVE_API_QUEUE_ITEM]: removeApiQueueItem,
|
|
40
|
-
[CoreAppActionTypes.EMPTY_API_QUEUE]: emptyApiQueue,
|
|
41
|
-
};
|
|
42
|
-
export const coreAppReducers = (state = initialAppState, action) => {
|
|
43
|
-
if (actionToReducerMap[action.type]) {
|
|
44
|
-
return actionToReducerMap[action.type](state, action);
|
|
45
|
-
}
|
|
46
|
-
// if the action type is not in the map, call the base reducers method
|
|
47
|
-
return state;
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS9yZWR1Y2Vycy9hcHAucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILGtCQUFrQixHQU1yQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBWSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUE4QixFQUFZLEVBQUUsQ0FDbkYsaUNBQU0sS0FBSyxLQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFHLENBQUM7QUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUFpQyxFQUFZLEVBQUUsQ0FDekYsaUNBQU0sS0FBSyxLQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFHLENBQUM7QUFFOUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUF1QyxFQUFZLEVBQUUsQ0FDckcsaUNBQ08sS0FBSyxLQUNSLG1CQUFtQixFQUFFO1FBQ2pCLGVBQWUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7UUFDMUMsYUFBYSxrQ0FDTixLQUFLLENBQUMsbUJBQW1CLENBQUMsYUFBYSxLQUMxQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9CQUNwQixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksSUFFckM7S0FDSixJQUNILENBQUM7QUFFUCxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUE2QixFQUFZLEVBQUUsQ0FDakYsaUNBQU0sS0FBSyxLQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFHLENBQUM7QUFFM0MsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUFpQyxFQUFFLEVBQUU7SUFDL0Us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Q2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gICAgQ29yZUFwcEFjdGlvblR5cGVzLCBDb3JlQXBwQWN0aW9ucyxcbiAgICBVcGRhdGVBcHBWZXJzaW9uQWN0aW9uLFxuICAgIFVwZGF0ZUFwcENvbm5lY3Rpb25BY3Rpb24sXG4gICAgQWRkQXBwTG9hZGVkQ29uZmlnTW9kdWxlc0FjdGlvbixcbiAgICBVcGRhdGVBcHBTdGF0dXNBY3Rpb24sIFVwZGF0ZUN1cnJlbnRNb2R1bGVBY3Rpb24sXG4gICAgQWRkQXBpUXVldWVJdGVtQWN0aW9uLCBSZW1vdmVBcGlRdWV1ZUl0ZW1BY3Rpb24sIEVtcHR5QXBpUXVldWVBY3Rpb24sXG59IGZyb20gJy4uL2FjdGlvbnMvYXBwLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXBwU3RhdGUsIGluaXRpYWxBcHBTdGF0ZSB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbmNvbnN0IHVwZGF0ZUFwcFZlcnNpb24gPSAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFVwZGF0ZUFwcFZlcnNpb25BY3Rpb24pOiBBcHBTdGF0ZSA9PlxuICAgICh7IC4uLnN0YXRlLCB2ZXJzaW9uOiBhY3Rpb24ucGF5bG9hZCB9KTtcblxuY29uc3QgdXBkYXRlQXBwQ29ubmVjdGlvbiA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogVXBkYXRlQXBwQ29ubmVjdGlvbkFjdGlvbik6IEFwcFN0YXRlID0+XG4gICAgKHsgLi4uc3RhdGUsIGNvbm5lY3RlZDogYWN0aW9uLnBheWxvYWQgfSk7XG5cbmNvbnN0IEFkZEFwcExvYWRlZENvbmZpZ01vZHVsZXMgPSAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IEFkZEFwcExvYWRlZENvbmZpZ01vZHVsZXNBY3Rpb24pOiBBcHBTdGF0ZSA9PlxuICAgICh7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWRDb25maWdNb2R1bGVzOiB7XG4gICAgICAgICAgICBsYXN0QWRkZWRNb2R1bGU6IGFjdGlvbi5wYXlsb2FkLm1vZHVsZU5hbWUsXG4gICAgICAgICAgICBtb2R1bGVzQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUubG9hZGVkQ29uZmlnTW9kdWxlcy5tb2R1bGVzQ29uZmlnLFxuICAgICAgICAgICAgICAgIFthY3Rpb24ucGF5bG9hZC5tb2R1bGVOYW1lXToge1xuICAgICAgICAgICAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZC5tb2R1bGVDb25maWcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbmNvbnN0IHVwZGF0ZUFwcFN0YXR1cyA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogVXBkYXRlQXBwU3RhdHVzQWN0aW9uKTogQXBwU3RhdGUgPT5cbiAgICAoeyAuLi5zdGF0ZSwgc3RhdHVzOiBhY3Rpb24ucGF5bG9hZCB9KTtcblxuY29uc3QgdXBkYXRlQ3VycmVudE1vZHVsZSA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogVXBkYXRlQ3VycmVudE1vZHVsZUFjdGlvbikgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBjdXJyZW50TW9kdWxlOiBhY3Rpb24ucGF5bG9hZCB9KTtcbn07XG5cbmNvbnN0IGFkZEFwaVF1ZXVlSXRlbSA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogQWRkQXBpUXVldWVJdGVtQWN0aW9uKSA9PiB7XG4gICAgLy8gYXBwbHkgdGhlIHRpbWVzdGFtcCB0byB0aGUgcXVldWUgaXRlbVxuICAgIGNvbnN0IGFwaVF1ZXVlSXRlbSA9IE9iamVjdC5hc3NpZ24oe30sIGFjdGlvbi5wYXlsb2FkLml0ZW0sIHsgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSB9KTtcbiAgICAvLyB1cGRhdGUgdGhlIHF1ZXVlXG4gICAgY29uc3QgYXBpUXVldWUgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5hcGlRdWV1ZSwgeyBbYWN0aW9uLnBheWxvYWQuaWRdOiBhcGlRdWV1ZUl0ZW0gfSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGFwaVF1ZXVlIH0pO1xufTtcblxuY29uc3QgcmVtb3ZlQXBpUXVldWVJdGVtID0gKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBSZW1vdmVBcGlRdWV1ZUl0ZW1BY3Rpb24pID0+IHtcbiAgICAvLyByZW1vdmUgdGhlIHNwZWNpZmllZCBpZCBmcm9tIHRoZSBsaXN0IG9mIGl0ZW0gaWRzIGFuZCByZWNyZWF0ZSB0aGUgYXBpUXVldWUgZnJvbSB0aGUgcmVtYWluaW5nIGlkc1xuICAgIGNvbnN0IGFwaVF1ZXVlID0gT2JqZWN0LmtleXMoc3RhdGUuYXBpUXVldWUpLmZpbHRlcihpZCA9PiBpZCAhPT0gYWN0aW9uLnBheWxvYWQpLnJlZHVjZSgocXVldWUsIGtleSkgPT4ge1xuICAgICAgICBxdWV1ZVtrZXldID0gc3RhdGUuYXBpUXVldWVba2V5XTtcbiAgICAgICAgcmV0dXJuIHF1ZXVlO1xuICAgIH0sIHt9KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgYXBpUXVldWUgfSk7XG59O1xuXG5jb25zdCBlbXB0eUFwaVF1ZXVlID0gKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBFbXB0eUFwaVF1ZXVlQWN0aW9uKSA9PiB7XG4gICAgLy8gcmVtb3ZlIGFsbCBpdGVtcyBpbiB0aGUgQXBpIFF1ZXVlXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGFwaVF1ZXVlOiB7fSB9KTtcbn07XG5cbmNvbnN0IGFjdGlvblRvUmVkdWNlck1hcDogeyBba2V5OiBzdHJpbmddOiAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IENvcmVBcHBBY3Rpb25zKSA9PiBBcHBTdGF0ZSB9ID0ge1xuICAgIFtDb3JlQXBwQWN0aW9uVHlwZXMuVVBEQVRFX0FQUF9WRVJTSU9OXTogdXBkYXRlQXBwVmVyc2lvbixcbiAgICBbQ29yZUFwcEFjdGlvblR5cGVzLlVQREFURV9BUFBfQ09OTkVDVElPTl06IHVwZGF0ZUFwcENvbm5lY3Rpb24sXG4gICAgW0NvcmVBcHBBY3Rpb25UeXBlcy5BRERfQVBQX0xPQURFRF9DT05GSUdfTU9EVUxFU106IEFkZEFwcExvYWRlZENvbmZpZ01vZHVsZXMsXG4gICAgW0NvcmVBcHBBY3Rpb25UeXBlcy5VUERBVEVfQVBQX1NUQVRVU106IHVwZGF0ZUFwcFN0YXR1cyxcbiAgICBbQ29yZUFwcEFjdGlvblR5cGVzLlVQREFURV9DVVJSRU5UX01PRFVMRV06IHVwZGF0ZUN1cnJlbnRNb2R1bGUsXG4gICAgW0NvcmVBcHBBY3Rpb25UeXBlcy5BRERfQVBJX1FVRVVFX0lURU1dOiBhZGRBcGlRdWV1ZUl0ZW0sXG4gICAgW0NvcmVBcHBBY3Rpb25UeXBlcy5SRU1PVkVfQVBJX1FVRVVFX0lURU1dOiByZW1vdmVBcGlRdWV1ZUl0ZW0sXG4gICAgW0NvcmVBcHBBY3Rpb25UeXBlcy5FTVBUWV9BUElfUVVFVUVdOiBlbXB0eUFwaVF1ZXVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGNvcmVBcHBSZWR1Y2VyczogKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pID0+IEFwcFN0YXRlID1cbiAgICAoc3RhdGUgPSBpbml0aWFsQXBwU3RhdGUsIGFjdGlvbjogQ29yZUFwcEFjdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKGFjdGlvblRvUmVkdWNlck1hcFthY3Rpb24udHlwZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHRoZSBhY3Rpb24gdHlwZSBpcyBub3QgaW4gdGhlIG1hcCwgY2FsbCB0aGUgYmFzZSByZWR1Y2VycyBtZXRob2RcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH07XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { initialI18nState } from '@eui/base';
|
|
2
|
-
import { CoreI18nActionTypes } from '../actions/i18n.actions';
|
|
3
|
-
const updateI18nState = (state, action) => {
|
|
4
|
-
return Object.assign(Object.assign({}, state), action.payload);
|
|
5
|
-
};
|
|
6
|
-
const actionToReducerMap = {
|
|
7
|
-
[CoreI18nActionTypes.UPDATE_I18N_STATE]: updateI18nState,
|
|
8
|
-
};
|
|
9
|
-
export const corI18nReducers = (state = initialI18nState, action) => {
|
|
10
|
-
if (actionToReducerMap[action.type]) {
|
|
11
|
-
return actionToReducerMap[action.type](state, action);
|
|
12
|
-
}
|
|
13
|
-
return state;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvaTE4bi5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUEwQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRHLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUE2QixFQUFFLEVBQUU7SUFDeEUsdUNBQ08sS0FBSyxHQUNMLE1BQU0sQ0FBQyxPQUFPLEVBQ25CO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBZ0Y7SUFDcEcsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLGVBQWU7Q0FDM0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FDeEIsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLEVBQUUsTUFBdUIsRUFBRSxFQUFFO0lBQ2xELElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pDLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6RDtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEkxOG5TdGF0ZSwgaW5pdGlhbEkxOG5TdGF0ZSB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBDb3JlSTE4bkFjdGlvblR5cGVzLCBDb3JlSTE4bkFjdGlvbnMsIFVwZGF0ZUkxOG5TdGF0ZUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvaTE4bi5hY3Rpb25zJztcblxuY29uc3QgdXBkYXRlSTE4blN0YXRlID0gKHN0YXRlOiBJMThuU3RhdGUsIGFjdGlvbjogVXBkYXRlSTE4blN0YXRlQWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgIH07XG59O1xuXG5jb25zdCBhY3Rpb25Ub1JlZHVjZXJNYXA6IHsgW2tleTogc3RyaW5nXTogKHN0YXRlOiBJMThuU3RhdGUsIGFjdGlvbjogQ29yZUkxOG5BY3Rpb25zKSA9PiBJMThuU3RhdGUgfSA9IHtcbiAgICBbQ29yZUkxOG5BY3Rpb25UeXBlcy5VUERBVEVfSTE4Tl9TVEFURV06IHVwZGF0ZUkxOG5TdGF0ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBjb3JJMThuUmVkdWNlcnM6IChzdGF0ZTogSTE4blN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gSTE4blN0YXRlID1cbiAgICAoc3RhdGUgPSBpbml0aWFsSTE4blN0YXRlLCBhY3Rpb246IENvcmVJMThuQWN0aW9ucykgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uVG9SZWR1Y2VyTWFwW2FjdGlvbi50eXBlXSkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdGlvblRvUmVkdWNlck1hcFthY3Rpb24udHlwZV0oc3RhdGUsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH07XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { initialLocaleState } from '@eui/base';
|
|
2
|
-
import { CoreLocaleActionTypes } from '../actions/locale.actions';
|
|
3
|
-
const updateLocaleState = (state, action) => {
|
|
4
|
-
return Object.assign(Object.assign({}, state), action.payload);
|
|
5
|
-
};
|
|
6
|
-
const actionToReducerMap = {
|
|
7
|
-
[CoreLocaleActionTypes.UPDATE_LOCALE_STATE]: updateLocaleState,
|
|
8
|
-
};
|
|
9
|
-
export const coreLocaleReducers = (state = initialLocaleState, action) => {
|
|
10
|
-
if (actionToReducerMap[action.type]) {
|
|
11
|
-
return actionToReducerMap[action.type](state, action);
|
|
12
|
-
}
|
|
13
|
-
return state;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS9yZWR1Y2Vycy9sb2NhbGUucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBOEMsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBa0IsRUFBRSxNQUErQixFQUFlLEVBQUU7SUFDM0YsdUNBQ08sS0FBSyxHQUNMLE1BQU0sQ0FBQyxPQUFPLEVBQ25CO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBc0Y7SUFDMUcsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLGlCQUFpQjtDQUNqRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzNCLENBQUMsS0FBSyxHQUFHLGtCQUFrQixFQUFFLE1BQXlCLEVBQUUsRUFBRTtJQUN0RCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNqQyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekQ7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBMb2NhbGVTdGF0ZSwgaW5pdGlhbExvY2FsZVN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IENvcmVMb2NhbGVBY3Rpb25UeXBlcywgQ29yZUxvY2FsZUFjdGlvbnMsIFVwZGF0ZUxvY2FsZVN0YXRlQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9sb2NhbGUuYWN0aW9ucyc7XG5cbmNvbnN0IHVwZGF0ZUxvY2FsZVN0YXRlID0gKHN0YXRlOiBMb2NhbGVTdGF0ZSwgYWN0aW9uOiBVcGRhdGVMb2NhbGVTdGF0ZUFjdGlvbik6IExvY2FsZVN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uYWN0aW9uLnBheWxvYWQsXG4gICAgfTtcbn07XG5cbmNvbnN0IGFjdGlvblRvUmVkdWNlck1hcDogeyBba2V5OiBzdHJpbmddOiAoc3RhdGU6IExvY2FsZVN0YXRlLCBhY3Rpb246IENvcmVMb2NhbGVBY3Rpb25zKSA9PiBMb2NhbGVTdGF0ZSB9ID0ge1xuICAgIFtDb3JlTG9jYWxlQWN0aW9uVHlwZXMuVVBEQVRFX0xPQ0FMRV9TVEFURV06IHVwZGF0ZUxvY2FsZVN0YXRlLFxufTtcblxuZXhwb3J0IGNvbnN0IGNvcmVMb2NhbGVSZWR1Y2VyczogKHN0YXRlOiBMb2NhbGVTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pID0+IExvY2FsZVN0YXRlID1cbiAgICAoc3RhdGUgPSBpbml0aWFsTG9jYWxlU3RhdGUsIGFjdGlvbjogQ29yZUxvY2FsZUFjdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKGFjdGlvblRvUmVkdWNlck1hcFthY3Rpb24udHlwZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9O1xuIl19
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { CoreAppActionTypes } from '../actions/app.actions';
|
|
2
|
-
import * as extendProxy from 'extend';
|
|
3
|
-
const extend = extendProxy.default || extendProxy;
|
|
4
|
-
/**
|
|
5
|
-
* Utility meta-reducer to load the state from the local storage
|
|
6
|
-
* @param reducer the action reducer
|
|
7
|
-
*/
|
|
8
|
-
export function localStorageSync(reducer) {
|
|
9
|
-
return cb(reducer, localStorage);
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Utility meta-reducer to load the state from the session storage
|
|
13
|
-
* @param reducer the action reducer
|
|
14
|
-
*/
|
|
15
|
-
export function sessionStorageSync(reducer) {
|
|
16
|
-
return cb(reducer, sessionStorage);
|
|
17
|
-
}
|
|
18
|
-
// Keys that are allowed to be synced with NgRx state from BrowserStorage
|
|
19
|
-
const disallowedKeys = ['loadedConfigModules', 'connect', 'currentModule', 'status', 'apiQueue'];
|
|
20
|
-
/**
|
|
21
|
-
* filters the AppState by removing those keys from the state and return a new state Object
|
|
22
|
-
* @param app the AppState
|
|
23
|
-
*/
|
|
24
|
-
const filterAppState = (app) => {
|
|
25
|
-
// in case app is undefined or null it should return empty object
|
|
26
|
-
if (!app) {
|
|
27
|
-
return {};
|
|
28
|
-
}
|
|
29
|
-
return Object.keys(app)
|
|
30
|
-
// select keys that are present in the allowed list
|
|
31
|
-
.filter(key => !disallowedKeys.includes(key))
|
|
32
|
-
// build a new object with only the allowed properties
|
|
33
|
-
.reduce((obj, key) => {
|
|
34
|
-
obj[key] = app[key];
|
|
35
|
-
return obj;
|
|
36
|
-
}, {});
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param storageType
|
|
41
|
-
*/
|
|
42
|
-
export const loadState = (storage = localStorage) => {
|
|
43
|
-
try {
|
|
44
|
-
// by default falls back to localStorage
|
|
45
|
-
const serializedState = storage.getItem('state');
|
|
46
|
-
if (serializedState === null) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
// deserialize state
|
|
50
|
-
let state = JSON.parse(serializedState);
|
|
51
|
-
// filter AppState and replace
|
|
52
|
-
state = Object.assign(Object.assign({}, state), { app: filterAppState(state === null || state === void 0 ? void 0 : state.app) });
|
|
53
|
-
return state;
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const cb = (reducer, storage) => {
|
|
60
|
-
return function (state, action) {
|
|
61
|
-
var _a;
|
|
62
|
-
if (action.type === CoreAppActionTypes.INIT_STORE) {
|
|
63
|
-
// This action must be dispatched from an app initializer
|
|
64
|
-
// We load the state from a storage and compare the version and userId with the provided ones.
|
|
65
|
-
// If they are the same, we merge the local state into the initial state.
|
|
66
|
-
// If there is a mismatch, we don't merge the local state, but update only the initial state.
|
|
67
|
-
// load the state from the localStorage
|
|
68
|
-
const localState = loadState(storage);
|
|
69
|
-
// extract the details about user and app version from the action payload
|
|
70
|
-
const payload = action.payload;
|
|
71
|
-
const payloadVersion = payload === null || payload === void 0 ? void 0 : payload.version;
|
|
72
|
-
if (localState) {
|
|
73
|
-
// TODO: Why all these checks here? What is the purpose of this code?
|
|
74
|
-
// extract the details about user and app version from the storage state
|
|
75
|
-
const localVersion = (_a = localState === null || localState === void 0 ? void 0 : localState.app) === null || _a === void 0 ? void 0 : _a.version;
|
|
76
|
-
// const localUserId = localState.user && localState.user.userId;
|
|
77
|
-
const isVersionOK = (!localVersion || !payloadVersion || localVersion === payloadVersion);
|
|
78
|
-
// const isUserIdOK = (localUserId === payloadUserId);
|
|
79
|
-
// update the entire state with deep merge of states, if the version and user are the same
|
|
80
|
-
if (isVersionOK) {
|
|
81
|
-
state = extend(true, {}, state, localState);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// update the app version, if defined
|
|
85
|
-
if (payloadVersion) {
|
|
86
|
-
state = Object.assign(Object.assign({}, state), { app: Object.assign(Object.assign({}, state === null || state === void 0 ? void 0 : state.app), { version: payloadVersion }) });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return reducer(state, action);
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvbWV0YS5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFFN0UsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFFdEMsTUFBTSxNQUFNLEdBQVMsV0FBWSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUM7QUFFekQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFzQixPQUF5QjtJQUMzRSxPQUFPLEVBQUUsQ0FBSSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBc0IsT0FBeUI7SUFDN0UsT0FBTyxFQUFFLENBQUksT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVqRzs7O0dBR0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQWEsRUFBWSxFQUFFO0lBQy9DLGlFQUFpRTtJQUNqRSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ04sT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbkIsbURBQW1EO1NBQ2xELE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxzREFBc0Q7U0FDckQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBc0IsVUFBbUIsWUFBWSxFQUFLLEVBQUU7SUFDakYsSUFBSTtRQUNBLHdDQUF3QztRQUN4QyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpELElBQUksZUFBZSxLQUFLLElBQUksRUFBRTtZQUMxQixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELG9CQUFvQjtRQUNwQixJQUFJLEtBQUssR0FBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNDLDhCQUE4QjtRQUM5QixLQUFLLG1DQUFRLEtBQUssS0FBRSxHQUFHLEVBQUUsY0FBYyxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxHQUFHLENBQUMsR0FBRSxDQUFDO1FBRXRELE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNwQjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sRUFBRSxHQUFHLENBQXNCLE9BQXlCLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQzVFLE9BQU8sVUFBVSxLQUFRLEVBQUUsTUFBYzs7UUFDckMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFVBQVUsRUFBRTtZQUMvQyx5REFBeUQ7WUFDekQsOEZBQThGO1lBQzlGLHlFQUF5RTtZQUN6RSw2RkFBNkY7WUFFN0YsdUNBQXVDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFNLFNBQVMsQ0FBSSxPQUFPLENBQUMsQ0FBQztZQUU1Qyx5RUFBeUU7WUFDekUsTUFBTSxPQUFPLEdBQUksTUFBMEIsQ0FBQyxPQUFPLENBQUM7WUFDcEQsTUFBTSxjQUFjLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sQ0FBQztZQUV4QyxJQUFJLFVBQVUsRUFBRTtnQkFDWixxRUFBcUU7Z0JBQ3JFLHdFQUF3RTtnQkFDeEUsTUFBTSxZQUFZLEdBQUcsTUFBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsR0FBRywwQ0FBRSxPQUFPLENBQUM7Z0JBQzlDLGlFQUFpRTtnQkFFakUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLGNBQWMsSUFBSSxZQUFZLEtBQUssY0FBYyxDQUFDLENBQUM7Z0JBQzFGLHNEQUFzRDtnQkFFdEQsMEZBQTBGO2dCQUMxRixJQUFJLFdBQVcsRUFBRTtvQkFDYixLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUMvQzthQUNKO1lBRUQscUNBQXFDO1lBQ3JDLElBQUksY0FBYyxFQUFFO2dCQUNoQixLQUFLLG1DQUFRLEtBQUssS0FBRSxHQUFHLGtDQUFPLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxHQUFHLEtBQUUsT0FBTyxFQUFFLGNBQWMsTUFBSSxDQUFDO2FBQ3pFO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25SZWR1Y2VyIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29yZUFwcEFjdGlvblR5cGVzLCBJbml0U3RvcmVBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL2FwcC5hY3Rpb25zJztcbmltcG9ydCB7IEFwcFN0YXRlLCBDb3JlU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0ICogYXMgZXh0ZW5kUHJveHkgZnJvbSAnZXh0ZW5kJztcblxuY29uc3QgZXh0ZW5kID0gKDxhbnk+ZXh0ZW5kUHJveHkpLmRlZmF1bHQgfHwgZXh0ZW5kUHJveHk7XG5cbi8qKlxuICogVXRpbGl0eSBtZXRhLXJlZHVjZXIgdG8gbG9hZCB0aGUgc3RhdGUgZnJvbSB0aGUgbG9jYWwgc3RvcmFnZVxuICogQHBhcmFtIHJlZHVjZXIgdGhlIGFjdGlvbiByZWR1Y2VyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VTeW5jPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uz4pIHtcbiAgICByZXR1cm4gY2I8Uz4ocmVkdWNlciwgbG9jYWxTdG9yYWdlKTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IG1ldGEtcmVkdWNlciB0byBsb2FkIHRoZSBzdGF0ZSBmcm9tIHRoZSBzZXNzaW9uIHN0b3JhZ2VcbiAqIEBwYXJhbSByZWR1Y2VyIHRoZSBhY3Rpb24gcmVkdWNlclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2Vzc2lvblN0b3JhZ2VTeW5jPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uz4pIHtcbiAgICByZXR1cm4gY2I8Uz4ocmVkdWNlciwgc2Vzc2lvblN0b3JhZ2UpO1xufVxuXG4vLyBLZXlzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgc3luY2VkIHdpdGggTmdSeCBzdGF0ZSBmcm9tIEJyb3dzZXJTdG9yYWdlXG5jb25zdCBkaXNhbGxvd2VkS2V5cyA9IFsnbG9hZGVkQ29uZmlnTW9kdWxlcycsICdjb25uZWN0JywgJ2N1cnJlbnRNb2R1bGUnLCAnc3RhdHVzJywgJ2FwaVF1ZXVlJ107XG5cbi8qKlxuICogZmlsdGVycyB0aGUgQXBwU3RhdGUgYnkgcmVtb3ZpbmcgdGhvc2Uga2V5cyBmcm9tIHRoZSBzdGF0ZSBhbmQgcmV0dXJuIGEgbmV3IHN0YXRlIE9iamVjdFxuICogQHBhcmFtIGFwcCB0aGUgQXBwU3RhdGVcbiAqL1xuY29uc3QgZmlsdGVyQXBwU3RhdGUgPSAoYXBwOiBBcHBTdGF0ZSk6IEFwcFN0YXRlID0+IHtcbiAgICAvLyBpbiBjYXNlIGFwcCBpcyB1bmRlZmluZWQgb3IgbnVsbCBpdCBzaG91bGQgcmV0dXJuIGVtcHR5IG9iamVjdFxuICAgIGlmICghYXBwKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYXBwKVxuICAgICAgICAvLyBzZWxlY3Qga2V5cyB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBhbGxvd2VkIGxpc3RcbiAgICAgICAgLmZpbHRlcihrZXkgPT4gIWRpc2FsbG93ZWRLZXlzLmluY2x1ZGVzKGtleSkpXG4gICAgICAgIC8vIGJ1aWxkIGEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdGhlIGFsbG93ZWQgcHJvcGVydGllc1xuICAgICAgICAucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgICAgICAgb2JqW2tleV0gPSBhcHBba2V5XTtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0sIHt9KTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBzdG9yYWdlVHlwZVxuICovXG5leHBvcnQgY29uc3QgbG9hZFN0YXRlID0gPFMgZXh0ZW5kcyBDb3JlU3RhdGU+KHN0b3JhZ2U6IFN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2UpOiBTID0+IHtcbiAgICB0cnkge1xuICAgICAgICAvLyBieSBkZWZhdWx0IGZhbGxzIGJhY2sgdG8gbG9jYWxTdG9yYWdlXG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRTdGF0ZSA9IHN0b3JhZ2UuZ2V0SXRlbSgnc3RhdGUnKTtcblxuICAgICAgICBpZiAoc2VyaWFsaXplZFN0YXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVzZXJpYWxpemUgc3RhdGVcbiAgICAgICAgbGV0IHN0YXRlOiBTID0gSlNPTi5wYXJzZShzZXJpYWxpemVkU3RhdGUpO1xuXG4gICAgICAgIC8vIGZpbHRlciBBcHBTdGF0ZSBhbmQgcmVwbGFjZVxuICAgICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIGFwcDogZmlsdGVyQXBwU3RhdGUoc3RhdGU/LmFwcCkgfTtcblxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufTtcblxuY29uc3QgY2IgPSA8UyBleHRlbmRzIENvcmVTdGF0ZT4ocmVkdWNlcjogQWN0aW9uUmVkdWNlcjxTPiwgc3RvcmFnZTogU3RvcmFnZSkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAoc3RhdGU6IFMsIGFjdGlvbjogQWN0aW9uKTogUyB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQ29yZUFwcEFjdGlvblR5cGVzLklOSVRfU1RPUkUpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgYWN0aW9uIG11c3QgYmUgZGlzcGF0Y2hlZCBmcm9tIGFuIGFwcCBpbml0aWFsaXplclxuICAgICAgICAgICAgLy8gV2UgbG9hZCB0aGUgc3RhdGUgZnJvbSBhIHN0b3JhZ2UgYW5kIGNvbXBhcmUgdGhlIHZlcnNpb24gYW5kIHVzZXJJZCB3aXRoIHRoZSBwcm92aWRlZCBvbmVzLlxuICAgICAgICAgICAgLy8gSWYgdGhleSBhcmUgdGhlIHNhbWUsIHdlIG1lcmdlIHRoZSBsb2NhbCBzdGF0ZSBpbnRvIHRoZSBpbml0aWFsIHN0YXRlLlxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCwgd2UgZG9uJ3QgbWVyZ2UgdGhlIGxvY2FsIHN0YXRlLCBidXQgdXBkYXRlIG9ubHkgdGhlIGluaXRpYWwgc3RhdGUuXG5cbiAgICAgICAgICAgIC8vIGxvYWQgdGhlIHN0YXRlIGZyb20gdGhlIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgY29uc3QgbG9jYWxTdGF0ZTogUyA9IGxvYWRTdGF0ZTxTPihzdG9yYWdlKTtcblxuICAgICAgICAgICAgLy8gZXh0cmFjdCB0aGUgZGV0YWlscyBhYm91dCB1c2VyIGFuZCBhcHAgdmVyc2lvbiBmcm9tIHRoZSBhY3Rpb24gcGF5bG9hZFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IChhY3Rpb24gYXMgSW5pdFN0b3JlQWN0aW9uKS5wYXlsb2FkO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZFZlcnNpb24gPSBwYXlsb2FkPy52ZXJzaW9uO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxTdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFdoeSBhbGwgdGhlc2UgY2hlY2tzIGhlcmU/IFdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBjb2RlP1xuICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgdGhlIGRldGFpbHMgYWJvdXQgdXNlciBhbmQgYXBwIHZlcnNpb24gZnJvbSB0aGUgc3RvcmFnZSBzdGF0ZVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsVmVyc2lvbiA9IGxvY2FsU3RhdGU/LmFwcD8udmVyc2lvbjtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBsb2NhbFVzZXJJZCA9IGxvY2FsU3RhdGUudXNlciAmJiBsb2NhbFN0YXRlLnVzZXIudXNlcklkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNWZXJzaW9uT0sgPSAoIWxvY2FsVmVyc2lvbiB8fCAhcGF5bG9hZFZlcnNpb24gfHwgbG9jYWxWZXJzaW9uID09PSBwYXlsb2FkVmVyc2lvbik7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgaXNVc2VySWRPSyA9IChsb2NhbFVzZXJJZCA9PT0gcGF5bG9hZFVzZXJJZCk7XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGVudGlyZSBzdGF0ZSB3aXRoIGRlZXAgbWVyZ2Ugb2Ygc3RhdGVzLCBpZiB0aGUgdmVyc2lvbiBhbmQgdXNlciBhcmUgdGhlIHNhbWVcbiAgICAgICAgICAgICAgICBpZiAoaXNWZXJzaW9uT0spIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBleHRlbmQodHJ1ZSwge30sIHN0YXRlLCBsb2NhbFN0YXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgYXBwIHZlcnNpb24sIGlmIGRlZmluZWRcbiAgICAgICAgICAgIGlmIChwYXlsb2FkVmVyc2lvbikge1xuICAgICAgICAgICAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgYXBwOiB7IC4uLnN0YXRlPy5hcHAsIHZlcnNpb246IHBheWxvYWRWZXJzaW9uIH0gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgIH07XG59O1xuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { CoreUserActionTypes, } from '../actions/user.actions';
|
|
2
|
-
import { initialUserState, } from '@eui/base';
|
|
3
|
-
const updateUser = (state, action) => {
|
|
4
|
-
let fullName = action.payload.fullName;
|
|
5
|
-
if (!fullName) {
|
|
6
|
-
fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
|
|
7
|
-
}
|
|
8
|
-
return Object.assign({}, state, action.payload, { fullName });
|
|
9
|
-
};
|
|
10
|
-
const updateUserDetails = (state, action) => {
|
|
11
|
-
let fullName = action.payload.fullName;
|
|
12
|
-
if (!fullName) {
|
|
13
|
-
fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
|
|
14
|
-
}
|
|
15
|
-
// todo should be checked if state.details is really there
|
|
16
|
-
const details = Object.assign({}, state.details, action.payload, { fullName });
|
|
17
|
-
return Object.assign({}, state, details);
|
|
18
|
-
};
|
|
19
|
-
const updateUserPreferences = (state, action) => {
|
|
20
|
-
const preferences = Object.assign({}, state.preferences, action.payload);
|
|
21
|
-
return Object.assign({}, state, { preferences });
|
|
22
|
-
};
|
|
23
|
-
const updateUserRights = (state, action) => Object.assign({}, state, { rights: [...action.payload] });
|
|
24
|
-
const updateUserDashboard = (state, action) => {
|
|
25
|
-
// apply the dashboard to preferences
|
|
26
|
-
const preferences = Object.assign({}, state.preferences, { dashboard: action.payload });
|
|
27
|
-
// update the state
|
|
28
|
-
return Object.assign(Object.assign({}, state), { preferences });
|
|
29
|
-
};
|
|
30
|
-
const actionToReducerMap = {
|
|
31
|
-
[CoreUserActionTypes.UPDATE_USER_DETAILS]: updateUserDetails,
|
|
32
|
-
[CoreUserActionTypes.UPDATE_USER_PREFERENCES]: updateUserPreferences,
|
|
33
|
-
[CoreUserActionTypes.UPDATE_USER_STATE]: updateUser,
|
|
34
|
-
[CoreUserActionTypes.UPDATE_USER_RIGHTS]: updateUserRights,
|
|
35
|
-
[CoreUserActionTypes.UPDATE_USER_DASHBOARD]: updateUserDashboard,
|
|
36
|
-
};
|
|
37
|
-
export const coreUserReducers = (state = initialUserState, action) => {
|
|
38
|
-
if (actionToReducerMap[action.type]) {
|
|
39
|
-
return actionToReducerMap[action.type](state, action);
|
|
40
|
-
}
|
|
41
|
-
return state;
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvdXNlci5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsbUJBQW1CLEdBT3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVILGdCQUFnQixHQUNuQixNQUFNLFdBQVcsQ0FBQztBQUVuQixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWdCLEVBQUUsTUFBNkIsRUFBYSxFQUFFO0lBQzlFLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCxRQUFRLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDMUY7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUErQixFQUFhLEVBQUU7SUFDdkYsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNYLFFBQVEsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUMxRjtJQUNELDBEQUEwRDtJQUMxRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQW1DLEVBQWEsRUFBRTtJQUMvRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWdCLEVBQUUsTUFBOEIsRUFBYSxFQUFFLENBQ3JGLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU5RCxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUFpQyxFQUFFLEVBQUU7SUFDaEYscUNBQXFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsbUJBQW1CO0lBQ25CLHVDQUFZLEtBQUssS0FBRSxXQUFXLElBQUc7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBZ0Y7SUFDcEcsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLGlCQUFpQjtJQUM1RCxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLEVBQUUscUJBQXFCO0lBQ3BFLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsRUFBRSxVQUFVO0lBQ25ELENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsRUFBRSxnQkFBZ0I7SUFDMUQsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLG1CQUFtQjtDQUNuRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQ3pCLENBQUMsS0FBSyxHQUFHLGdCQUFnQixFQUFFLE1BQXVCLEVBQUUsRUFBRTtJQUNsRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNqQyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekQ7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICAgIENvcmVVc2VyQWN0aW9uVHlwZXMsXG4gICAgQ29yZVVzZXJBY3Rpb25zLFxuICAgIFVwZGF0ZVVzZXJEYXNoYm9hcmRBY3Rpb24sXG4gICAgVXBkYXRlVXNlclN0YXRlQWN0aW9uLFxuICAgIFVwZGF0ZVVzZXJEZXRhaWxzQWN0aW9uLFxuICAgIFVwZGF0ZVVzZXJQcmVmZXJlbmNlc0FjdGlvbixcbiAgICBVcGRhdGVVc2VyUmlnaHRzQWN0aW9uLFxufSBmcm9tICcuLi9hY3Rpb25zL3VzZXIuYWN0aW9ucyc7XG5pbXBvcnQge1xuICAgIFVzZXJTdGF0ZSxcbiAgICBpbml0aWFsVXNlclN0YXRlLFxufSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5jb25zdCB1cGRhdGVVc2VyID0gKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogVXBkYXRlVXNlclN0YXRlQWN0aW9uKTogVXNlclN0YXRlID0+IHtcbiAgICBsZXQgZnVsbE5hbWUgPSBhY3Rpb24ucGF5bG9hZC5mdWxsTmFtZTtcbiAgICBpZiAoIWZ1bGxOYW1lKSB7XG4gICAgICAgIGZ1bGxOYW1lID0gYCR7YWN0aW9uLnBheWxvYWQuZmlyc3ROYW1lIHx8ICcnfSAke2FjdGlvbi5wYXlsb2FkLmxhc3ROYW1lIHx8ICcnfWAudHJpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGFjdGlvbi5wYXlsb2FkLCB7IGZ1bGxOYW1lIH0pO1xufTtcblxuY29uc3QgdXBkYXRlVXNlckRldGFpbHMgPSAoc3RhdGU6IFVzZXJTdGF0ZSwgYWN0aW9uOiBVcGRhdGVVc2VyRGV0YWlsc0FjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XG4gICAgbGV0IGZ1bGxOYW1lID0gYWN0aW9uLnBheWxvYWQuZnVsbE5hbWU7XG4gICAgaWYgKCFmdWxsTmFtZSkge1xuICAgICAgICBmdWxsTmFtZSA9IGAke2FjdGlvbi5wYXlsb2FkLmZpcnN0TmFtZSB8fCAnJ30gJHthY3Rpb24ucGF5bG9hZC5sYXN0TmFtZSB8fCAnJ31gLnRyaW0oKTtcbiAgICB9XG4gICAgLy8gdG9kbyBzaG91bGQgYmUgY2hlY2tlZCBpZiBzdGF0ZS5kZXRhaWxzIGlzIHJlYWxseSB0aGVyZVxuICAgIGNvbnN0IGRldGFpbHMgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5kZXRhaWxzLCBhY3Rpb24ucGF5bG9hZCwgeyBmdWxsTmFtZSB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGRldGFpbHMpO1xufTtcblxuY29uc3QgdXBkYXRlVXNlclByZWZlcmVuY2VzID0gKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogVXBkYXRlVXNlclByZWZlcmVuY2VzQWN0aW9uKTogVXNlclN0YXRlID0+IHtcbiAgICBjb25zdCBwcmVmZXJlbmNlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnByZWZlcmVuY2VzLCBhY3Rpb24ucGF5bG9hZCk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IHByZWZlcmVuY2VzIH0pO1xufTtcblxuY29uc3QgdXBkYXRlVXNlclJpZ2h0cyA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJSaWdodHNBY3Rpb24pOiBVc2VyU3RhdGUgPT5cbiAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyByaWdodHM6IFsuLi5hY3Rpb24ucGF5bG9hZF0gfSk7XG5cbmNvbnN0IHVwZGF0ZVVzZXJEYXNoYm9hcmQgPSAoc3RhdGU6IFVzZXJTdGF0ZSwgYWN0aW9uOiBVcGRhdGVVc2VyRGFzaGJvYXJkQWN0aW9uKSA9PiB7XG4gICAgLy8gYXBwbHkgdGhlIGRhc2hib2FyZCB0byBwcmVmZXJlbmNlc1xuICAgIGNvbnN0IHByZWZlcmVuY2VzID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucHJlZmVyZW5jZXMsIHsgZGFzaGJvYXJkOiBhY3Rpb24ucGF5bG9hZCB9KTtcbiAgICAvLyB1cGRhdGUgdGhlIHN0YXRlXG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIHByZWZlcmVuY2VzIH07XG59O1xuXG5jb25zdCBhY3Rpb25Ub1JlZHVjZXJNYXA6IHsgW2tleTogc3RyaW5nXTogKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogQ29yZVVzZXJBY3Rpb25zKSA9PiBVc2VyU3RhdGUgfSA9IHtcbiAgICBbQ29yZVVzZXJBY3Rpb25UeXBlcy5VUERBVEVfVVNFUl9ERVRBSUxTXTogdXBkYXRlVXNlckRldGFpbHMsXG4gICAgW0NvcmVVc2VyQWN0aW9uVHlwZXMuVVBEQVRFX1VTRVJfUFJFRkVSRU5DRVNdOiB1cGRhdGVVc2VyUHJlZmVyZW5jZXMsXG4gICAgW0NvcmVVc2VyQWN0aW9uVHlwZXMuVVBEQVRFX1VTRVJfU1RBVEVdOiB1cGRhdGVVc2VyLFxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX1JJR0hUU106IHVwZGF0ZVVzZXJSaWdodHMsXG4gICAgW0NvcmVVc2VyQWN0aW9uVHlwZXMuVVBEQVRFX1VTRVJfREFTSEJPQVJEXTogdXBkYXRlVXNlckRhc2hib2FyZCxcbn07XG5cbmV4cG9ydCBjb25zdCBjb3JlVXNlclJlZHVjZXJzOiAoc3RhdGU6IFVzZXJTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pID0+IFVzZXJTdGF0ZSA9XG4gICAgKHN0YXRlID0gaW5pdGlhbFVzZXJTdGF0ZSwgYWN0aW9uOiBDb3JlVXNlckFjdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKGFjdGlvblRvUmVkdWNlck1hcFthY3Rpb24udHlwZV0pIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9O1xuIl19
|