@eui/core 16.0.0-next.1 → 16.0.0-next.11
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/README.md +0 -1
- package/docs/dependencies.html +60 -72
- package/docs/js/search/search_index.js +2 -2
- package/docs/properties.html +1 -1
- package/{esm2020 → esm2022}/lib/eui-core.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/interceptors/add-lang-param.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/cache-prevention.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/cors-security.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/csrf-prevention.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/openid/openid-connect.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/openid/openid-connect.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/interceptors/ux-request-error-model.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/errors/global-error-handler.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/errors/http-error-handler.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/i18n/i18n.loader.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/i18n/i18n.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/i18n/i18n.service.mock.mjs +4 -4
- package/esm2022/lib/services/locale/locale.service.mjs +231 -0
- package/{esm2020 → esm2022}/lib/services/locale/locale.service.mock.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/log/log.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/log/log.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/permission/permission.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/queue/api-queue.service.mjs +4 -4
- package/esm2022/lib/services/storage/local-forage.service.mjs +93 -0
- package/esm2022/lib/services/storage/local-storage.service.mjs +75 -0
- package/esm2022/lib/services/storage/session-storage.service.mjs +75 -0
- package/{esm2020 → esm2022}/lib/services/store/effects/app.effects.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/store/store.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/store/store.service.mock.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/user/user.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/user/user.service.mock.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/ux-app-shell.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +4 -4
- package/esm2022/lib/services/ux-timezone.service.mjs +717 -0
- package/{fesm2020 → fesm2022}/eui-core.mjs +106 -105
- package/fesm2022/eui-core.mjs.map +1 -0
- package/lib/services/ux-timezone.service.d.ts.map +1 -1
- package/package.json +5 -11
- package/esm2020/lib/services/locale/locale.service.mjs +0 -231
- package/esm2020/lib/services/storage/local-forage.service.mjs +0 -93
- package/esm2020/lib/services/storage/local-storage.service.mjs +0 -75
- package/esm2020/lib/services/storage/session-storage.service.mjs +0 -75
- package/esm2020/lib/services/ux-timezone.service.mjs +0 -716
- package/fesm2015/eui-core.mjs +0 -4624
- package/fesm2015/eui-core.mjs.map +0 -1
- package/fesm2020/eui-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/eui-core.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/date-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/dom-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/event-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/form-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/format-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/http-helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/helpers/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interceptors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interceptors/openid/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/interceptors/openid/openid-connect.service.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/app/eui-init-app.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/app/eui-pre-init-app.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/app/eui-startup.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/app/factories/log.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/app/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/config/defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/config/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/errors/eui.error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/errors/http-error-handler-callback-functions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/errors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/i18n/i18n.resource.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/i18n/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/locale/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/log/log.service.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/queue/api-queue.service.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/queue/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/storage/async-storage.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/storage/async-storage.service.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/storage/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/storage/storage.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/storage/storage.service.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/app.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/i18n.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/locale.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/notifications.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/actions/user.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/effects/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/app.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/core.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/i18n.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/locale.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/meta.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/notifications.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/store/reducers/user.reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/user/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/ux-error-feedback/ux-error-handler.operator.mjs +0 -0
|
@@ -207,10 +207,10 @@ export class I18nService extends EuiLazyService {
|
|
|
207
207
|
updateHTMLDOMLang(lang) {
|
|
208
208
|
this.document.documentElement.lang = lang;
|
|
209
209
|
}
|
|
210
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nService, deps: [{ token: GLOBAL_CONFIG_TOKEN }, { token: i1.TranslateService }, { token: i2.LogService, optional: true }, { token: i3.StoreService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
211
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
210
212
|
}
|
|
211
|
-
|
|
212
|
-
/** @nocollapse */ I18nService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: I18nService, providedIn: 'root' });
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: I18nService, decorators: [{
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nService, decorators: [{
|
|
214
214
|
type: Injectable,
|
|
215
215
|
args: [{
|
|
216
216
|
providedIn: 'root',
|
|
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2",
|
|
|
224
224
|
type: Inject,
|
|
225
225
|
args: [DOCUMENT]
|
|
226
226
|
}] }]; } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBRUgsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixZQUFZLEVBQ1osYUFBYSxFQUNiLGtCQUFrQixFQUtsQix5QkFBeUIsRUFDekIsYUFBYSxHQUNoQixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQVc3QyxNQUFNLE9BQU8sV0FBNkMsU0FBUSxjQUE2QjtJQUkzRixZQUMyQyxnQkFBOEIsRUFDM0QsZ0JBQWtDLEVBQ3RCLFVBQXNCLEVBQ2xDLEtBQW1CLEVBQ0gsUUFBa0I7UUFFNUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFOVyxxQkFBZ0IsR0FB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Q0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM5QyxDQUFDOztrSUF0UFEsV0FBVyxrQkFLUixtQkFBbUIsbUhBSW5CLFFBQVE7c0lBVFgsV0FBVyxjQUZSLE1BQU07a0dBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQU1RLE1BQU07MkJBQUMsbUJBQW1COzswQkFFMUIsUUFBUTs7MEJBRVIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHRha2UsIHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBHbG9iYWxDb25maWcsXG4gICAgRXVpTGF6eVNlcnZpY2UsXG4gICAgRXVpU2VydmljZVN0YXR1cyxcbiAgICBnZXRJMThuU2VydmljZUNvbmZpZ0Zyb21CYXNlLFxuICAgIGdldEkxOG5TdGF0ZSxcbiAgICBnZXRBY3RpdmVMYW5nLFxuICAgIGdldExhc3RBZGRlZE1vZHVsZSxcbiAgICBJMThuTG9hZGVyQ29uZmlnLFxuICAgIEkxOG5TZXJ2aWNlQ29uZmlnLFxuICAgIEkxOG5TdGF0ZSxcbiAgICBNb2R1bGVDb25maWcsXG4gICAgZ2V0QnJvd3NlckRlZmF1bHRMYW5ndWFnZSxcbiAgICBVeEV1TGFuZ3VhZ2VzLFxufSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5pbXBvcnQgeyBJMThuTG9hZGVyLCBMb2FkZWRSZXNvdXJjZXMgfSBmcm9tICcuL2kxOG4ubG9hZGVyJztcbmltcG9ydCB7IEdMT0JBTF9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb25maWcvdG9rZW5zJztcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmUvc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBVcGRhdGVJMThuU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9zdG9yZS9hY3Rpb25zL2kxOG4uYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX0kxOE5fU0VSVklDRV9DT05GSUcgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmludGVyZmFjZSBNb2R1bGVMb2FkRXZlbnQge1xuICAgIHJlYWR5OiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlcnJvcj86IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2U8VCBleHRlbmRzIEkxOG5TdGF0ZSA9IEkxOG5TdGF0ZT4gZXh0ZW5kcyBFdWlMYXp5U2VydmljZTxUIHwgSTE4blN0YXRlPiB7XG4gICAgcHJvdGVjdGVkIGNvbmZpZzogSTE4blNlcnZpY2VDb25maWc7XG4gICAgcHJvdGVjdGVkIG9uTW9kdWxlTG9hZDogQmVoYXZpb3JTdWJqZWN0PE1vZHVsZUxvYWRFdmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgYmFzZUdsb2JhbENvbmZpZzogR2xvYmFsQ29uZmlnLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICAgICkge1xuICAgICAgICBzdXBlcih7IGFjdGl2ZUxhbmc6ICdlbicgfSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gZ2V0STE4blNlcnZpY2VDb25maWdGcm9tQmFzZSh0aGlzLmJhc2VHbG9iYWxDb25maWcpO1xuICAgICAgICB0aGlzLm9uTW9kdWxlTG9hZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TW9kdWxlTG9hZEV2ZW50Pih7IHJlYWR5OiBmYWxzZSwgbmFtZTogbnVsbCB9KTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZTxLID0gVD4obWFwRm4/OiAoc3RhdGU6IFQpID0+IEspOiBPYnNlcnZhYmxlPEs+O1xuICAgIGdldFN0YXRlPGEgZXh0ZW5kcyBrZXlvZiBUPihrZXk/OiBhKTogT2JzZXJ2YWJsZTxUW2FdPjtcbiAgICBnZXRTdGF0ZTxLPihrZXlPck1hcEZuPzogKChzdGF0ZTogVCkgPT4gSykgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPEs+IHtcbiAgICAgICAgbGV0IHNlbGVjdG9yOiBhbnkgPSBnZXRJMThuU3RhdGU7XG5cbiAgICAgICAgaWYgKGtleU9yTWFwRm4pIHtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIGtleU9yTWFwRm4pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoZ2V0STE4blN0YXRlLCBrZXlPck1hcEZuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihnZXRJMThuU3RhdGUsIChzdGF0ZSkgPT4gc3RhdGVba2V5T3JNYXBGbl0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0b3IpO1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlKGxhbmdTdGF0ZTogVCB8IEkxOG5TdGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhUTUxET01MYW5nKGxhbmdTdGF0ZS5hY3RpdmVMYW5nKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlSTE4blN0YXRlQWN0aW9uKGxhbmdTdGF0ZSkpO1xuICAgIH1cblxuICAgIGluaXQobGFuZ1N0YXRlPzogVCk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBjb25zdCBpbml0TGFuZyA9IGxhbmdTdGF0ZSAmJiBsYW5nU3RhdGUuYWN0aXZlTGFuZyA/IGxhbmdTdGF0ZS5hY3RpdmVMYW5nIDogdGhpcy5wcmVwYXJlZERlZmF1bHRMYW5ndWFnZSgpO1xuICAgICAgICBjb25zdCBpbml0U3RhdGUgPSB7XG4gICAgICAgICAgICAuLi5sYW5nU3RhdGUsXG4gICAgICAgICAgICBhY3RpdmVMYW5nOiBpbml0TGFuZyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbml0TGFuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHN1cGVyLmluaXRFdWlTZXJ2aWNlKHRoaXMuc3RvcmUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZShpbml0U3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0dXAoaW5pdExhbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0luaXRpYWwgYWN0aXZlIGxhbmcgc2hvdWxkIGJlIHN0cmluZycgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBwaXBlIGZ1bmN0aW9uIHRoYXQgY291bGQgc2VydmUgYXMgYSB3cmFwcGVyIG9mIGFub3RoZXIgb2JzZXJ2YWJsZVxuICAgICAqIGUuZy4gbmd4LXRyYW5zbGF0ZSBpMThuLm9uUmVhZHkoJ215X21vZHVsZScpLnBpcGUoc3dpdGNoTWFwKCgpPT50cmFuc2xhdGUuZ2V0KCdldWkuS0VZJykpKTtcbiAgICAgKiBXQVJOSU5HOiBvblJlYWR5IHdpbGwgZW1pdCBvbmx5IG9uY2UgZm9yIGEgbG9hZGVkIE1vZHVsZSwgZ29pbmcgdG8gYW5vdGhlciBhbmQgdGhlbiBnb2luZyBiYWNrIHdpbGwgbm90IHJlc3VsdFxuICAgICAqIGludG8gYW5vdGhlciBlbWlzc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtb2R1bGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhhdCBoYXMgYmVlbiBnaXZlbiB0aHJvdWdoIHRoZSBlVUkgZ2xvYmFsQ29uZmlnLiBJbiBjYXNlIG5vbiBwcm92aWRlZFxuICAgICAqIGZldGNoIG1vZHVsZSBuYW1lIGZyb20gdGhlIHN0YXRlLlxuICAgICAqL1xuICAgIG9uUmVhZHkobW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9uTW9kdWxlTG9hZC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChldnQ6IE1vZHVsZUxvYWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgICBtb2R1bGVOYW1lXG4gICAgICAgICAgICAgICAgICAgID8gb2YoZXZ0KVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc3RvcmUuc2VsZWN0KGdldExhc3RBZGRlZE1vZHVsZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChtKSA9PiAobW9kdWxlTmFtZSA9IG0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV2dClcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gZW1pdCBvbmx5IGlmIGV2ZW50IGVtaXR0ZWQgbWF0Y2hlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIGlzIHJlYWR5XG4gICAgICAgICAgICBmaWx0ZXIoKGV2dDogTW9kdWxlTG9hZEV2ZW50KSA9PiBldnQucmVhZHkgPT09IHRydWUgJiYgZXZ0Lm5hbWUgPT09IG1vZHVsZU5hbWUpLFxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb2JzZXJ2YWJsZSBjb21wbGV0ZXNcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWQoY29uZmlnOiBJMThuTG9hZGVyQ29uZmlnKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IG1vZHVsZUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwICsgMSkudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUmVzb3VyY2VzKGNvbmZpZywgbW9kdWxlSWQpO1xuICAgIH1cblxuICAgIGxhenlMb2FkSW5pdChtb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZywgbW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBjb25zdCBpMThuTG9hZGVyQ29uZmlnID0gbW9kdWxlQ29uZmlnIGFzIEkxOG5Mb2FkZXJDb25maWc7XG4gICAgICAgIC8vIGFkZCByZXNvdXJjZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUmVzb3VyY2VzKGkxOG5Mb2FkZXJDb25maWcsIG1vZHVsZU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCByZXNvdXJjZXMgYmFzZWQgb2YgYSBjb25maWcgbG9hZGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlnIEkxOG5Mb2FkZXJDb25maWdcbiAgICAgKiBAcmV0dXJuIFByb21pc2U8RXVpU2VydmljZVN0YXR1cz4gYW4gRXVpU2VydmljZVN0YXR1cyB3aGVuIHRyYW5zbGF0aW9uIGhhcyBmdWxseSBsb2FkZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUmVzb3VyY2VzKGNvbmZpZzogSTE4bkxvYWRlckNvbmZpZywgbW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICAvLyBlbWl0IHRoYXQgbW9kdWxlIGlzIGxvYWRpbmdcbiAgICAgICAgdGhpcy5vbk1vZHVsZUxvYWQubmV4dCh7IHJlYWR5OiBmYWxzZSwgbmFtZTogbW9kdWxlTmFtZSB9KTtcblxuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExvYWRlcjtcbiAgICAgICAgaWYgKGxvYWRlciBpbnN0YW5jZW9mIEkxOG5Mb2FkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmdTdWJzY3JpcHRpb246IE9ic2VydmFibGU8YW55PltdID0gW107XG4gICAgICAgICAgICBjb25zdCBpMThuTG9hZGVyID0gPEkxOG5Mb2FkZXI+bG9hZGVyO1xuXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHJlc291cmNlcyB0byB0aGUgbG9hZGVyXG4gICAgICAgICAgICBjb25zdCByZXNvdXJjZXMgPSBpMThuTG9hZGVyLmFkZFJlc291cmNlcyhjb25maWcpO1xuXG4gICAgICAgICAgICAvLyBtYW51YWxseSBsb2FkIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBDVVJSRU5UIGxhbmd1YWdlIGFuZCBhZGQgdGhlbSB0byB0aGUgdHJhbnNsYXRlIHNlcnZpY2VcbiAgICAgICAgICAgIGxhbmdTdWJzY3JpcHRpb24ucHVzaChcbiAgICAgICAgICAgICAgICBpMThuTG9hZGVyLmxvYWRSZXNvdXJjZXMocmVzb3VyY2VzLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgobG9hZGVkUmVzb3VyY2VzOiBMb2FkZWRSZXNvdXJjZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCB0aGUgbmV3IHNldCBvZiB0cmFuc2xhdGlvbnMgdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXRUcmFuc2xhdGlvbih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsIGxvYWRlZFJlc291cmNlcy50cmFuc2xhdGlvbnMsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGxhbmd1YWdlIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBERUZBVUxUIGxhbmd1YWdlXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuY29uZmlnLmRlZmF1bHRMYW5ndWFnZSB8fCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZGVmYXVsdExhbmc7XG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9PSBkZWZhdWx0TGFuZykge1xuICAgICAgICAgICAgICAgIC8vIG1hbnVhbGx5IGxvYWQgdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgYW5kIGFkZCB0aGVtIHRvIHRoZSB0cmFuc2xhdGUgc2VydmljZVxuICAgICAgICAgICAgICAgIGxhbmdTdWJzY3JpcHRpb24ucHVzaChcbiAgICAgICAgICAgICAgICAgICAgaTE4bkxvYWRlci5sb2FkUmVzb3VyY2VzKHJlc291cmNlcywgZGVmYXVsdExhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChsb2FkZWRSZXNvdXJjZXM6IExvYWRlZFJlc291cmNlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXRUcmFuc2xhdGlvbihkZWZhdWx0TGFuZywgbG9hZGVkUmVzb3VyY2VzLnRyYW5zbGF0aW9ucywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKGxhbmdTdWJzY3JpcHRpb24pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChsb2FkZWRSZXNvdXJjZXNBcnI6IExvYWRlZFJlc291cmNlc1tdKSA9PlxuICAgICAgICAgICAgICAgICAgICAhbG9hZGVkUmVzb3VyY2VzQXJyWzBdLmhhc0Vycm9yID8geyBzdWNjZXNzOiB0cnVlIH0gOiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogbG9hZGVkUmVzb3VyY2VzQXJyWzBdLmVycm9ycyB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbWl0IHN0YXR1cyBvZiBtb2R1bGUgbG9hZGluZyBwcm9ncmVzc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTW9kdWxlTG9hZC5uZXh0KHsgcmVhZHk6IHRydWUsIG5hbWU6IG1vZHVsZU5hbWUgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW1pdCBzdGF0dXMgb2YgbW9kdWxlIGxvYWRpbmcgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1vZHVsZUxvYWQubmV4dCh7IHJlYWR5OiB0cnVlLCBuYW1lOiBtb2R1bGVOYW1lLCBlcnJvciB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAnY3VycmVudExvYWRlciBpcyBub3QgYW4gSTE4bkxvYWRlci4nIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJlcGFyZXMgdGhlIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVkRGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJQcmVmID0gZ2V0QnJvd3NlckRlZmF1bHRMYW5ndWFnZSgpO1xuICAgICAgICAvLyBJZiB1c2VyIGhhcyBicm93c2VyIHByZWZlcnJlZCBsYW5nLCBhbmQgdGhhdCBsYW5ndWFnZSBpcyBwYXJ0IG9mIHRoZSBsYW5ndWFnZXMgYXJyYXlcbiAgICAgICAgaWYgKGJyb3dzZXJQcmVmICYmIHRoaXMuY29uZmlnLmxhbmd1YWdlcyAmJiBVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlQ29kZXModGhpcy5jb25maWcubGFuZ3VhZ2VzKS5pbmNsdWRlcyhicm93c2VyUHJlZikpIHtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VyUHJlZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBkZWZhdWx0X2xhbmd1YWdlIGlmIGdpdmVuIGRlZmF1bHQgbGFuZ3VhZ2UgdG8gb3ZlcnJpZGUgZGVmYXVsdCBsYW5ndWFnZSBjb21pbmcgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmF0aW9uIHRva2VuLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0dXAoaW5pdExhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV1aVNlcnZpY2VTdGF0dXM+IHtcbiAgICAgICAgLy8gdXNlIHRoZSBkZWZhdWx0IGNvbmZpZyBhcyBhIHJlZmVyZW5jZSBiYXNlXG4gICAgICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9JMThOX1NFUlZJQ0VfQ09ORklHLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgIC8vIGNvbmZpZ3VyZSB0aGUgdHJhbnNsYXRlIGNvbmZpZyBzZXJ2aWNlXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYW5ndWFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5hZGRMYW5ncyhVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlQ29kZXModGhpcy5jb25maWcubGFuZ3VhZ2VzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2dTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oYEkxOG4gYWNjZXB0ZWQgbGFuZ3VhZ2VzIHNldCB0byAke1V4RXVMYW5ndWFnZXMuZ2V0TGFuZ3VhZ2VDb2Rlcyh0aGlzLmNvbmZpZy5sYW5ndWFnZXMpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSwgY2F1c2luZyB0byBsb2FkIHRyYW5zbGF0aW9uc1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShpbml0TGFuZ3VhZ2UpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZEFjdGl2ZUxhbmdTdGF0ZVRvVHJhbnNsYXRlU2VydmljZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZFRyYW5zbGF0ZVNlcnZpY2VMYW5nQ2hhbmdlVG9TdGF0ZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZWZhdWx0TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0TGFuZ3VhZ2UodGhpcy5jb25maWcuZGVmYXVsdExhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGluc3RhbmNlb2YgSTE4bkxvYWRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRSZXNvdXJjZXMgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExvYWRlci5nZXRGYWlsZWRSZXNvdXJjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IGZhaWxlZFJlc291cmNlcyB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmluZEFjdGl2ZUxhbmdTdGF0ZVRvVHJhbnNsYXRlU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoZ2V0QWN0aXZlTGFuZykuc3Vic2NyaWJlKChsYW5nOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChsYW5nICE9PSBudWxsICYmIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlKGxhbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRUcmFuc2xhdGVTZXJ2aWNlTGFuZ0NoYW5nZVRvU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZUluc3RhbmNlLmFjdGl2ZUxhbmcgIT09IGV2ZW50LmxhbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKHsgYWN0aXZlTGFuZzogZXZlbnQubGFuZyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhgSTE4biBjdXJyZW50IGxhbmd1YWdlIHNldCB0byAke2V2ZW50Lmxhbmd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdExhbmd1YWdlKGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIHJlbW92ZWQsIGN1cnJlbnQgbGFuZ3VhZ2UgaXMgYWxyZWFkeSBjYWxjdWxhdGVkIGluIGluaXQsIHNldHVwIGZ1bmN0aW9uIGZpbGwgdXNlIGl0IGRpcmVjdGx5LCBub3QgZGVmYXVsdFxuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgPSBkZWZhdWx0X2xhbmd1YWdlIHx8IHRoaXMuY29uZmlnLmRlZmF1bHRMYW5ndWFnZTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGRlZmF1bHRMYW5ndWFnZSk7XG4gICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMubG9nU2VydmljZS5pbmZvKGBJMThuIGRlZmF1bHQgbGFuZ3VhZ2Ugc2V0IHRvICR7ZGVmYXVsdExhbmd1YWdlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hhbmdlIHRoZSBjdXJyZW50bHkgdXNlZCBsYW5ndWFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIGxhbmcgaXMgdGhlIGxhbmd1YWdlIGNvZGUgYmFzZWQgb24gdGhlIGNvbnZlbnRpb24geW91IHVzZWQgZS5nLiAoZW4gb3IgZW4tRU4pXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW4gdGhlIG9iamVjdCB0cmFuc2xhdGlvbiBmb3IgZ2l2ZW4gbGFuZ3VhZ2UgYWZ0ZXIgbGFuZ3VhZ2VcbiAgICAgKiBmdWxseSBsb2FkZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSB1c2UobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdXBkYXRlcyB0aGUgSFRNTCBlbGVtZW50IGxhbmcgYXR0cmlidXRlXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlSFRNTERPTUxhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nO1xuICAgIH1cbn1cbiJdfQ==
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBRUgsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixZQUFZLEVBQ1osYUFBYSxFQUNiLGtCQUFrQixFQUtsQix5QkFBeUIsRUFDekIsYUFBYSxHQUNoQixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQVc3QyxNQUFNLE9BQU8sV0FBNkMsU0FBUSxjQUE2QjtJQUkzRixZQUMyQyxnQkFBOEIsRUFDM0QsZ0JBQWtDLEVBQ3RCLFVBQXNCLEVBQ2xDLEtBQW1CLEVBQ0gsUUFBa0I7UUFFNUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFOVyxxQkFBZ0IsR0FB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Q0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM5QyxDQUFDO2lJQXRQUSxXQUFXLGtCQUtSLG1CQUFtQixtSEFJbkIsUUFBUTtxSUFUWCxXQUFXLGNBRlIsTUFBTTs7MkZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQU1RLE1BQU07MkJBQUMsbUJBQW1COzswQkFFMUIsUUFBUTs7MEJBRVIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHRha2UsIHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBHbG9iYWxDb25maWcsXG4gICAgRXVpTGF6eVNlcnZpY2UsXG4gICAgRXVpU2VydmljZVN0YXR1cyxcbiAgICBnZXRJMThuU2VydmljZUNvbmZpZ0Zyb21CYXNlLFxuICAgIGdldEkxOG5TdGF0ZSxcbiAgICBnZXRBY3RpdmVMYW5nLFxuICAgIGdldExhc3RBZGRlZE1vZHVsZSxcbiAgICBJMThuTG9hZGVyQ29uZmlnLFxuICAgIEkxOG5TZXJ2aWNlQ29uZmlnLFxuICAgIEkxOG5TdGF0ZSxcbiAgICBNb2R1bGVDb25maWcsXG4gICAgZ2V0QnJvd3NlckRlZmF1bHRMYW5ndWFnZSxcbiAgICBVeEV1TGFuZ3VhZ2VzLFxufSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5pbXBvcnQgeyBJMThuTG9hZGVyLCBMb2FkZWRSZXNvdXJjZXMgfSBmcm9tICcuL2kxOG4ubG9hZGVyJztcbmltcG9ydCB7IEdMT0JBTF9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb25maWcvdG9rZW5zJztcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmUvc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBVcGRhdGVJMThuU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9zdG9yZS9hY3Rpb25zL2kxOG4uYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX0kxOE5fU0VSVklDRV9DT05GSUcgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmludGVyZmFjZSBNb2R1bGVMb2FkRXZlbnQge1xuICAgIHJlYWR5OiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlcnJvcj86IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2U8VCBleHRlbmRzIEkxOG5TdGF0ZSA9IEkxOG5TdGF0ZT4gZXh0ZW5kcyBFdWlMYXp5U2VydmljZTxUIHwgSTE4blN0YXRlPiB7XG4gICAgcHJvdGVjdGVkIGNvbmZpZzogSTE4blNlcnZpY2VDb25maWc7XG4gICAgcHJvdGVjdGVkIG9uTW9kdWxlTG9hZDogQmVoYXZpb3JTdWJqZWN0PE1vZHVsZUxvYWRFdmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgYmFzZUdsb2JhbENvbmZpZzogR2xvYmFsQ29uZmlnLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICAgICkge1xuICAgICAgICBzdXBlcih7IGFjdGl2ZUxhbmc6ICdlbicgfSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gZ2V0STE4blNlcnZpY2VDb25maWdGcm9tQmFzZSh0aGlzLmJhc2VHbG9iYWxDb25maWcpO1xuICAgICAgICB0aGlzLm9uTW9kdWxlTG9hZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TW9kdWxlTG9hZEV2ZW50Pih7IHJlYWR5OiBmYWxzZSwgbmFtZTogbnVsbCB9KTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZTxLID0gVD4obWFwRm4/OiAoc3RhdGU6IFQpID0+IEspOiBPYnNlcnZhYmxlPEs+O1xuICAgIGdldFN0YXRlPGEgZXh0ZW5kcyBrZXlvZiBUPihrZXk/OiBhKTogT2JzZXJ2YWJsZTxUW2FdPjtcbiAgICBnZXRTdGF0ZTxLPihrZXlPck1hcEZuPzogKChzdGF0ZTogVCkgPT4gSykgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPEs+IHtcbiAgICAgICAgbGV0IHNlbGVjdG9yOiBhbnkgPSBnZXRJMThuU3RhdGU7XG5cbiAgICAgICAgaWYgKGtleU9yTWFwRm4pIHtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIGtleU9yTWFwRm4pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoZ2V0STE4blN0YXRlLCBrZXlPck1hcEZuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihnZXRJMThuU3RhdGUsIChzdGF0ZSkgPT4gc3RhdGVba2V5T3JNYXBGbl0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0b3IpO1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlKGxhbmdTdGF0ZTogVCB8IEkxOG5TdGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhUTUxET01MYW5nKGxhbmdTdGF0ZS5hY3RpdmVMYW5nKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlSTE4blN0YXRlQWN0aW9uKGxhbmdTdGF0ZSkpO1xuICAgIH1cblxuICAgIGluaXQobGFuZ1N0YXRlPzogVCk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBjb25zdCBpbml0TGFuZyA9IGxhbmdTdGF0ZSAmJiBsYW5nU3RhdGUuYWN0aXZlTGFuZyA/IGxhbmdTdGF0ZS5hY3RpdmVMYW5nIDogdGhpcy5wcmVwYXJlZERlZmF1bHRMYW5ndWFnZSgpO1xuICAgICAgICBjb25zdCBpbml0U3RhdGUgPSB7XG4gICAgICAgICAgICAuLi5sYW5nU3RhdGUsXG4gICAgICAgICAgICBhY3RpdmVMYW5nOiBpbml0TGFuZyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbml0TGFuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHN1cGVyLmluaXRFdWlTZXJ2aWNlKHRoaXMuc3RvcmUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZShpbml0U3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0dXAoaW5pdExhbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0luaXRpYWwgYWN0aXZlIGxhbmcgc2hvdWxkIGJlIHN0cmluZycgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBwaXBlIGZ1bmN0aW9uIHRoYXQgY291bGQgc2VydmUgYXMgYSB3cmFwcGVyIG9mIGFub3RoZXIgb2JzZXJ2YWJsZVxuICAgICAqIGUuZy4gbmd4LXRyYW5zbGF0ZSBpMThuLm9uUmVhZHkoJ215X21vZHVsZScpLnBpcGUoc3dpdGNoTWFwKCgpPT50cmFuc2xhdGUuZ2V0KCdldWkuS0VZJykpKTtcbiAgICAgKiBXQVJOSU5HOiBvblJlYWR5IHdpbGwgZW1pdCBvbmx5IG9uY2UgZm9yIGEgbG9hZGVkIE1vZHVsZSwgZ29pbmcgdG8gYW5vdGhlciBhbmQgdGhlbiBnb2luZyBiYWNrIHdpbGwgbm90IHJlc3VsdFxuICAgICAqIGludG8gYW5vdGhlciBlbWlzc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtb2R1bGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhhdCBoYXMgYmVlbiBnaXZlbiB0aHJvdWdoIHRoZSBlVUkgZ2xvYmFsQ29uZmlnLiBJbiBjYXNlIG5vbiBwcm92aWRlZFxuICAgICAqIGZldGNoIG1vZHVsZSBuYW1lIGZyb20gdGhlIHN0YXRlLlxuICAgICAqL1xuICAgIG9uUmVhZHkobW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9uTW9kdWxlTG9hZC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChldnQ6IE1vZHVsZUxvYWRFdmVudCkgPT5cbiAgICAgICAgICAgICAgICBtb2R1bGVOYW1lXG4gICAgICAgICAgICAgICAgICAgID8gb2YoZXZ0KVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc3RvcmUuc2VsZWN0KGdldExhc3RBZGRlZE1vZHVsZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChtKSA9PiAobW9kdWxlTmFtZSA9IG0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV2dClcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gZW1pdCBvbmx5IGlmIGV2ZW50IGVtaXR0ZWQgbWF0Y2hlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIGlzIHJlYWR5XG4gICAgICAgICAgICBmaWx0ZXIoKGV2dDogTW9kdWxlTG9hZEV2ZW50KSA9PiBldnQucmVhZHkgPT09IHRydWUgJiYgZXZ0Lm5hbWUgPT09IG1vZHVsZU5hbWUpLFxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb2JzZXJ2YWJsZSBjb21wbGV0ZXNcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWQoY29uZmlnOiBJMThuTG9hZGVyQ29uZmlnKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IG1vZHVsZUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwICsgMSkudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUmVzb3VyY2VzKGNvbmZpZywgbW9kdWxlSWQpO1xuICAgIH1cblxuICAgIGxhenlMb2FkSW5pdChtb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZywgbW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBjb25zdCBpMThuTG9hZGVyQ29uZmlnID0gbW9kdWxlQ29uZmlnIGFzIEkxOG5Mb2FkZXJDb25maWc7XG4gICAgICAgIC8vIGFkZCByZXNvdXJjZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUmVzb3VyY2VzKGkxOG5Mb2FkZXJDb25maWcsIG1vZHVsZU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCByZXNvdXJjZXMgYmFzZWQgb2YgYSBjb25maWcgbG9hZGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlnIEkxOG5Mb2FkZXJDb25maWdcbiAgICAgKiBAcmV0dXJuIFByb21pc2U8RXVpU2VydmljZVN0YXR1cz4gYW4gRXVpU2VydmljZVN0YXR1cyB3aGVuIHRyYW5zbGF0aW9uIGhhcyBmdWxseSBsb2FkZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUmVzb3VyY2VzKGNvbmZpZzogSTE4bkxvYWRlckNvbmZpZywgbW9kdWxlTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICAvLyBlbWl0IHRoYXQgbW9kdWxlIGlzIGxvYWRpbmdcbiAgICAgICAgdGhpcy5vbk1vZHVsZUxvYWQubmV4dCh7IHJlYWR5OiBmYWxzZSwgbmFtZTogbW9kdWxlTmFtZSB9KTtcblxuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExvYWRlcjtcbiAgICAgICAgaWYgKGxvYWRlciBpbnN0YW5jZW9mIEkxOG5Mb2FkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmdTdWJzY3JpcHRpb246IE9ic2VydmFibGU8YW55PltdID0gW107XG4gICAgICAgICAgICBjb25zdCBpMThuTG9hZGVyID0gPEkxOG5Mb2FkZXI+bG9hZGVyO1xuXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHJlc291cmNlcyB0byB0aGUgbG9hZGVyXG4gICAgICAgICAgICBjb25zdCByZXNvdXJjZXMgPSBpMThuTG9hZGVyLmFkZFJlc291cmNlcyhjb25maWcpO1xuXG4gICAgICAgICAgICAvLyBtYW51YWxseSBsb2FkIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBDVVJSRU5UIGxhbmd1YWdlIGFuZCBhZGQgdGhlbSB0byB0aGUgdHJhbnNsYXRlIHNlcnZpY2VcbiAgICAgICAgICAgIGxhbmdTdWJzY3JpcHRpb24ucHVzaChcbiAgICAgICAgICAgICAgICBpMThuTG9hZGVyLmxvYWRSZXNvdXJjZXMocmVzb3VyY2VzLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgobG9hZGVkUmVzb3VyY2VzOiBMb2FkZWRSZXNvdXJjZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCB0aGUgbmV3IHNldCBvZiB0cmFuc2xhdGlvbnMgdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXRUcmFuc2xhdGlvbih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsIGxvYWRlZFJlc291cmNlcy50cmFuc2xhdGlvbnMsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGxhbmd1YWdlIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBERUZBVUxUIGxhbmd1YWdlXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuY29uZmlnLmRlZmF1bHRMYW5ndWFnZSB8fCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZGVmYXVsdExhbmc7XG4gICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9PSBkZWZhdWx0TGFuZykge1xuICAgICAgICAgICAgICAgIC8vIG1hbnVhbGx5IGxvYWQgdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgYW5kIGFkZCB0aGVtIHRvIHRoZSB0cmFuc2xhdGUgc2VydmljZVxuICAgICAgICAgICAgICAgIGxhbmdTdWJzY3JpcHRpb24ucHVzaChcbiAgICAgICAgICAgICAgICAgICAgaTE4bkxvYWRlci5sb2FkUmVzb3VyY2VzKHJlc291cmNlcywgZGVmYXVsdExhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChsb2FkZWRSZXNvdXJjZXM6IExvYWRlZFJlc291cmNlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXRUcmFuc2xhdGlvbihkZWZhdWx0TGFuZywgbG9hZGVkUmVzb3VyY2VzLnRyYW5zbGF0aW9ucywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKGxhbmdTdWJzY3JpcHRpb24pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChsb2FkZWRSZXNvdXJjZXNBcnI6IExvYWRlZFJlc291cmNlc1tdKSA9PlxuICAgICAgICAgICAgICAgICAgICAhbG9hZGVkUmVzb3VyY2VzQXJyWzBdLmhhc0Vycm9yID8geyBzdWNjZXNzOiB0cnVlIH0gOiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogbG9hZGVkUmVzb3VyY2VzQXJyWzBdLmVycm9ycyB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbWl0IHN0YXR1cyBvZiBtb2R1bGUgbG9hZGluZyBwcm9ncmVzc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTW9kdWxlTG9hZC5uZXh0KHsgcmVhZHk6IHRydWUsIG5hbWU6IG1vZHVsZU5hbWUgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW1pdCBzdGF0dXMgb2YgbW9kdWxlIGxvYWRpbmcgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk1vZHVsZUxvYWQubmV4dCh7IHJlYWR5OiB0cnVlLCBuYW1lOiBtb2R1bGVOYW1lLCBlcnJvciB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAnY3VycmVudExvYWRlciBpcyBub3QgYW4gSTE4bkxvYWRlci4nIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJlcGFyZXMgdGhlIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVkRGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJQcmVmID0gZ2V0QnJvd3NlckRlZmF1bHRMYW5ndWFnZSgpO1xuICAgICAgICAvLyBJZiB1c2VyIGhhcyBicm93c2VyIHByZWZlcnJlZCBsYW5nLCBhbmQgdGhhdCBsYW5ndWFnZSBpcyBwYXJ0IG9mIHRoZSBsYW5ndWFnZXMgYXJyYXlcbiAgICAgICAgaWYgKGJyb3dzZXJQcmVmICYmIHRoaXMuY29uZmlnLmxhbmd1YWdlcyAmJiBVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlQ29kZXModGhpcy5jb25maWcubGFuZ3VhZ2VzKS5pbmNsdWRlcyhicm93c2VyUHJlZikpIHtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VyUHJlZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBkZWZhdWx0X2xhbmd1YWdlIGlmIGdpdmVuIGRlZmF1bHQgbGFuZ3VhZ2UgdG8gb3ZlcnJpZGUgZGVmYXVsdCBsYW5ndWFnZSBjb21pbmcgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmF0aW9uIHRva2VuLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0dXAoaW5pdExhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV1aVNlcnZpY2VTdGF0dXM+IHtcbiAgICAgICAgLy8gdXNlIHRoZSBkZWZhdWx0IGNvbmZpZyBhcyBhIHJlZmVyZW5jZSBiYXNlXG4gICAgICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9JMThOX1NFUlZJQ0VfQ09ORklHLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgIC8vIGNvbmZpZ3VyZSB0aGUgdHJhbnNsYXRlIGNvbmZpZyBzZXJ2aWNlXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYW5ndWFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5hZGRMYW5ncyhVeEV1TGFuZ3VhZ2VzLmdldExhbmd1YWdlQ29kZXModGhpcy5jb25maWcubGFuZ3VhZ2VzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2dTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oYEkxOG4gYWNjZXB0ZWQgbGFuZ3VhZ2VzIHNldCB0byAke1V4RXVMYW5ndWFnZXMuZ2V0TGFuZ3VhZ2VDb2Rlcyh0aGlzLmNvbmZpZy5sYW5ndWFnZXMpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSwgY2F1c2luZyB0byBsb2FkIHRyYW5zbGF0aW9uc1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShpbml0TGFuZ3VhZ2UpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZEFjdGl2ZUxhbmdTdGF0ZVRvVHJhbnNsYXRlU2VydmljZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZFRyYW5zbGF0ZVNlcnZpY2VMYW5nQ2hhbmdlVG9TdGF0ZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZWZhdWx0TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0TGFuZ3VhZ2UodGhpcy5jb25maWcuZGVmYXVsdExhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGluc3RhbmNlb2YgSTE4bkxvYWRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRSZXNvdXJjZXMgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExvYWRlci5nZXRGYWlsZWRSZXNvdXJjZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZFJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IGZhaWxlZFJlc291cmNlcyB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmluZEFjdGl2ZUxhbmdTdGF0ZVRvVHJhbnNsYXRlU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoZ2V0QWN0aXZlTGFuZykuc3Vic2NyaWJlKChsYW5nOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChsYW5nICE9PSBudWxsICYmIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlKGxhbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRUcmFuc2xhdGVTZXJ2aWNlTGFuZ0NoYW5nZVRvU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZUluc3RhbmNlLmFjdGl2ZUxhbmcgIT09IGV2ZW50LmxhbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKHsgYWN0aXZlTGFuZzogZXZlbnQubGFuZyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhgSTE4biBjdXJyZW50IGxhbmd1YWdlIHNldCB0byAke2V2ZW50Lmxhbmd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdExhbmd1YWdlKGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIHJlbW92ZWQsIGN1cnJlbnQgbGFuZ3VhZ2UgaXMgYWxyZWFkeSBjYWxjdWxhdGVkIGluIGluaXQsIHNldHVwIGZ1bmN0aW9uIGZpbGwgdXNlIGl0IGRpcmVjdGx5LCBub3QgZGVmYXVsdFxuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgPSBkZWZhdWx0X2xhbmd1YWdlIHx8IHRoaXMuY29uZmlnLmRlZmF1bHRMYW5ndWFnZTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGRlZmF1bHRMYW5ndWFnZSk7XG4gICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMubG9nU2VydmljZS5pbmZvKGBJMThuIGRlZmF1bHQgbGFuZ3VhZ2Ugc2V0IHRvICR7ZGVmYXVsdExhbmd1YWdlfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hhbmdlIHRoZSBjdXJyZW50bHkgdXNlZCBsYW5ndWFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIGxhbmcgaXMgdGhlIGxhbmd1YWdlIGNvZGUgYmFzZWQgb24gdGhlIGNvbnZlbnRpb24geW91IHVzZWQgZS5nLiAoZW4gb3IgZW4tRU4pXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW4gdGhlIG9iamVjdCB0cmFuc2xhdGlvbiBmb3IgZ2l2ZW4gbGFuZ3VhZ2UgYWZ0ZXIgbGFuZ3VhZ2VcbiAgICAgKiBmdWxseSBsb2FkZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSB1c2UobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdXBkYXRlcyB0aGUgSFRNTCBlbGVtZW50IGxhbmcgYXR0cmlidXRlXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlSFRNTERPTUxhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -29,10 +29,10 @@ export class I18nServiceMock extends I18nService {
|
|
|
29
29
|
lazyLoadInit() {
|
|
30
30
|
return of({ success: true });
|
|
31
31
|
}
|
|
32
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nServiceMock }); }
|
|
32
34
|
}
|
|
33
|
-
|
|
34
|
-
/** @nocollapse */ I18nServiceMock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: I18nServiceMock });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: I18nServiceMock, decorators: [{
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: I18nServiceMock, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: function () { return []; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzdDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFHNUM7UUFDSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBSGhDLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQUloQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQW9CO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXFCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO2lJQWxDUSxlQUFlO3FJQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV1aVNlcnZpY2VTdGF0dXMsIEkxOG5TdGF0ZSB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEkxOG5TZXJ2aWNlTW9jayBleHRlbmRzIEkxOG5TZXJ2aWNlIHtcbiAgICBwcml2YXRlIERFRkFVTFRfTEFOR1VBR0UgPSAnZW4nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIGdldCBvbkxhbmdDaGFuZ2UoKTogRXZlbnRFbWl0dGVyPExhbmdDaGFuZ2VFdmVudD4ge1xuICAgICAgICByZXR1cm4gbmV3IEV2ZW50RW1pdHRlcjxMYW5nQ2hhbmdlRXZlbnQ+KCk7XG4gICAgfVxuXG4gICAgYWRkUmVzb3VyY2VzKCk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuREVGQVVMVF9MQU5HVUFHRTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZSgpOiBPYnNlcnZhYmxlPEkxOG5TdGF0ZT4ge1xuICAgICAgICByZXR1cm4gb2YoeyBhY3RpdmVMYW5nOiB0aGlzLkRFRkFVTFRfTEFOR1VBR0UgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlU3RhdGUoaTE4blN0YXRlOiBJMThuU3RhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ERUZBVUxUX0xBTkdVQUdFID0gaTE4blN0YXRlLmFjdGl2ZUxhbmcgfHwgJ2VuJztcbiAgICB9XG5cbiAgICBpbml0KGkxOG5TdGF0ZT86IEkxOG5TdGF0ZSk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICB0aGlzLkRFRkFVTFRfTEFOR1VBR0UgPSBpMThuU3RhdGUuYWN0aXZlTGFuZyB8fCAnZW4nO1xuICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGxhenlMb2FkSW5pdCgpOiBPYnNlcnZhYmxlPEV1aVNlcnZpY2VTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogdHJ1ZSB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,231 @@
|
|
|
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 } from '@angular/common';
|
|
14
|
+
import { EuiService, getLocaleState, getLocaleServiceConfigFromBase, } from '@eui/base';
|
|
15
|
+
import { of, Subject, throwError } from 'rxjs';
|
|
16
|
+
import { catchError, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
17
|
+
import { UpdateLocaleStateAction } from '../store';
|
|
18
|
+
import { GLOBAL_CONFIG_TOKEN } from '../config/tokens';
|
|
19
|
+
import { createSelector } from '@ngrx/store';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../store";
|
|
22
|
+
import * as i2 from "../i18n";
|
|
23
|
+
import * as i3 from "../log";
|
|
24
|
+
export const LOCALE_ID_MAPPER = new InjectionToken('localeIdMapper');
|
|
25
|
+
export class LocaleService extends EuiService {
|
|
26
|
+
constructor(store, baseGlobalConfig, locale_id, localeMapper, i18n, log) {
|
|
27
|
+
super({ id: getLocaleId(locale_id) });
|
|
28
|
+
this.store = store;
|
|
29
|
+
this.baseGlobalConfig = baseGlobalConfig;
|
|
30
|
+
this.locale_id = locale_id;
|
|
31
|
+
this.localeMapper = localeMapper;
|
|
32
|
+
this.i18n = i18n;
|
|
33
|
+
this.log = log;
|
|
34
|
+
this.subNotifier = new Subject();
|
|
35
|
+
if (log) {
|
|
36
|
+
this.logger = log.getLogger('core.LocaleService');
|
|
37
|
+
}
|
|
38
|
+
this.config = getLocaleServiceConfigFromBase(this.baseGlobalConfig);
|
|
39
|
+
// in case no localeMapper provided, set the angular getLocaleId as default
|
|
40
|
+
if (!this.localeMapper) {
|
|
41
|
+
this.localeMapper = getLocaleId;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ngOnDestroy() {
|
|
45
|
+
this.subNotifier.next(void 0);
|
|
46
|
+
this.subNotifier.complete();
|
|
47
|
+
}
|
|
48
|
+
getState(keyOrMapFn) {
|
|
49
|
+
let selector = getLocaleState;
|
|
50
|
+
if (keyOrMapFn) {
|
|
51
|
+
switch (typeof keyOrMapFn) {
|
|
52
|
+
case 'function':
|
|
53
|
+
selector = createSelector(getLocaleState, keyOrMapFn);
|
|
54
|
+
break;
|
|
55
|
+
case 'string':
|
|
56
|
+
selector = createSelector(getLocaleState, (state) => state[keyOrMapFn]);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return this.store.select(selector).pipe(takeUntil(this.subNotifier),
|
|
61
|
+
// in case service didn't init fallback to LOCALE_ID token value
|
|
62
|
+
map((state) => (state ? state : this.stateInstance ? this.stateInstance : this.locale_id)));
|
|
63
|
+
}
|
|
64
|
+
init(state) {
|
|
65
|
+
super.initEuiService();
|
|
66
|
+
// bind language changes to locale changes
|
|
67
|
+
if (this.config?.bindWithTranslate) {
|
|
68
|
+
this.bindTranslateServiceLangChangeToState();
|
|
69
|
+
}
|
|
70
|
+
// dynamically load locale based on provided configuration
|
|
71
|
+
const availableLocales = state?.available || this.config?.available || this.getBrowserLocales() || [this.currentLocale];
|
|
72
|
+
return this.loadLocale(availableLocales).pipe(takeUntil(this.subNotifier), tap(() => this.updateState(state || { id: this.currentLocale })));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* dynamically load locale and update the state
|
|
76
|
+
*/
|
|
77
|
+
updateState(state) {
|
|
78
|
+
try {
|
|
79
|
+
const id = this.localeMapper(state.id);
|
|
80
|
+
this.store.dispatch(new UpdateLocaleStateAction({ ...state, id }));
|
|
81
|
+
// update global TOKEN ID based on configuration
|
|
82
|
+
if (this.config.affectGlobalLocale) {
|
|
83
|
+
this.locale_id = id;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
const message = `Locale for '${state.id}' is not available.
|
|
88
|
+
Please use addLocale('${state.id}') first`;
|
|
89
|
+
if (this.log) {
|
|
90
|
+
this.logger.info(message, e);
|
|
91
|
+
}
|
|
92
|
+
throw new Error(message);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
addLocale(id) {
|
|
96
|
+
return this.loadLocale(id);
|
|
97
|
+
}
|
|
98
|
+
get previousLocale() {
|
|
99
|
+
return this.prevStateInstance?.id || this.currentLocale;
|
|
100
|
+
}
|
|
101
|
+
get currentLocale() {
|
|
102
|
+
return this.stateInstance?.id;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* load and register locale data dynamically
|
|
106
|
+
*
|
|
107
|
+
* @param locale array of locale to load
|
|
108
|
+
*/
|
|
109
|
+
loadLocale(locale) {
|
|
110
|
+
// locale = Array.isArray(locale) ? locale : [locale];
|
|
111
|
+
// const localeImports: Observable<{ data: any, localeId: string, extraData: any }>[]
|
|
112
|
+
// = this.filterRegisteredLocales(locale).map(this.importDataAndExtraLocale.bind(this));
|
|
113
|
+
//
|
|
114
|
+
// // in case localeImports array is empty because locale exists, Observable still needs to complete
|
|
115
|
+
// if (localeImports.length < 1) {
|
|
116
|
+
// return of({ success: true });
|
|
117
|
+
// }
|
|
118
|
+
//
|
|
119
|
+
// return forkJoin(...localeImports).pipe(
|
|
120
|
+
// takeUntil(this.subNotifier),
|
|
121
|
+
// map(localeData => {
|
|
122
|
+
// // filter out null results and registerLocaleData including extra
|
|
123
|
+
// localeData.filter(({ data }) => data)
|
|
124
|
+
// .forEach(({ data, localeId, extraData }) => registerLocaleData(data, localeId, extraData));
|
|
125
|
+
// return { success: true };
|
|
126
|
+
// }),
|
|
127
|
+
// catchError(error => {
|
|
128
|
+
// if (this.log) {
|
|
129
|
+
// this.logger.debug(`Locale load error: ${error.message}`, error);
|
|
130
|
+
// }
|
|
131
|
+
// return of({ success: false, error: error });
|
|
132
|
+
// })
|
|
133
|
+
// );
|
|
134
|
+
return of({ success: true });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* listen for language changes and dynamically set locale accordingly. In case of non registered locale register it
|
|
138
|
+
* dynamically.
|
|
139
|
+
*/
|
|
140
|
+
bindTranslateServiceLangChangeToState() {
|
|
141
|
+
if (this.i18n) {
|
|
142
|
+
this.i18n.onStateChange
|
|
143
|
+
.pipe(takeUntil(this.subNotifier),
|
|
144
|
+
// filter out null values
|
|
145
|
+
filter((state) => state?.activeLang !== null && state?.activeLang !== undefined),
|
|
146
|
+
// BEWARE: filter is based on convention that locale id sliced(2) will match activeLang e.g. en-US => en
|
|
147
|
+
// Also, if activeLang is 'en' and locale is 'en-GB' it will not trigger locale change
|
|
148
|
+
filter((state) => state.activeLang.toLowerCase() !== this.stateInstance?.id.slice(0, 2).toLowerCase()),
|
|
149
|
+
// to check if registration of locale otherwise register it
|
|
150
|
+
switchMap((value) => of(value).pipe(
|
|
151
|
+
// getLocaleId may throw Error(`Missing locale data for the locale "${locale}".`);
|
|
152
|
+
switchMap((i18state) => {
|
|
153
|
+
// check if activeLang is null or undefined
|
|
154
|
+
if (!i18state.activeLang) {
|
|
155
|
+
return throwError('Has i18nService initialized? If not make sure i18nService.init().subscribe(..)');
|
|
156
|
+
}
|
|
157
|
+
return of(this.localeMapper(i18state.activeLang));
|
|
158
|
+
}), catchError((error) => {
|
|
159
|
+
if (this.log) {
|
|
160
|
+
this.logger.debug(error);
|
|
161
|
+
}
|
|
162
|
+
return this.loadLocale(value?.activeLang).pipe(filter((s) => s.success), map(() => this.localeMapper(value?.activeLang)), catchError((e) => {
|
|
163
|
+
if (this.log) {
|
|
164
|
+
this.logger.debug('Something went terribly really wrong during locale loading', e.err.message);
|
|
165
|
+
}
|
|
166
|
+
return of(e);
|
|
167
|
+
}));
|
|
168
|
+
}))),
|
|
169
|
+
// update the "available" array attribute with newly registered
|
|
170
|
+
switchMap((id) => this.getState().pipe(take(1), map((state) => {
|
|
171
|
+
const available = state?.available ? state.available : [];
|
|
172
|
+
return { ...state, id, available: Array.from(new Set([...available, id])) };
|
|
173
|
+
}))))
|
|
174
|
+
.subscribe((state) => {
|
|
175
|
+
this.updateState(state);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* retrieve locales from browser
|
|
181
|
+
*
|
|
182
|
+
* @param options
|
|
183
|
+
*/
|
|
184
|
+
getBrowserLocales() {
|
|
185
|
+
const browserLocales = navigator.languages === undefined ? [navigator.language] : navigator.languages;
|
|
186
|
+
if (!browserLocales) {
|
|
187
|
+
return undefined;
|
|
188
|
+
}
|
|
189
|
+
return browserLocales.map((locale) => locale.trim());
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* if locale is already registered filtered out.
|
|
193
|
+
*
|
|
194
|
+
* @param locales A string array contains all locale id e.g. ["el", "el-CY"]
|
|
195
|
+
*/
|
|
196
|
+
filterRegisteredLocales(locales) {
|
|
197
|
+
return locales.filter((loc) => {
|
|
198
|
+
try {
|
|
199
|
+
getLocaleId(loc);
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", 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 }); }
|
|
208
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LocaleService, providedIn: 'root' }); }
|
|
209
|
+
}
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LocaleService, decorators: [{
|
|
211
|
+
type: Injectable,
|
|
212
|
+
args: [{
|
|
213
|
+
providedIn: 'root',
|
|
214
|
+
}]
|
|
215
|
+
}], ctorParameters: function () { return [{ type: i1.StoreService }, { type: undefined, decorators: [{
|
|
216
|
+
type: Inject,
|
|
217
|
+
args: [GLOBAL_CONFIG_TOKEN]
|
|
218
|
+
}] }, { type: undefined, decorators: [{
|
|
219
|
+
type: Inject,
|
|
220
|
+
args: [LOCALE_ID]
|
|
221
|
+
}] }, { type: undefined, decorators: [{
|
|
222
|
+
type: Optional
|
|
223
|
+
}, {
|
|
224
|
+
type: Inject,
|
|
225
|
+
args: [LOCALE_ID_MAPPER]
|
|
226
|
+
}] }, { type: i2.I18nService, decorators: [{
|
|
227
|
+
type: Optional
|
|
228
|
+
}] }, { type: i3.LogService, decorators: [{
|
|
229
|
+
type: Optional
|
|
230
|
+
}] }]; } });
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2xvY2FsZS9sb2NhbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFDSCxVQUFVLEVBRVYsY0FBYyxFQUNkLDhCQUE4QixHQUtqQyxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBZ0IsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFHN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWUsZ0JBQWdCLENBQUMsQ0FBQztBQUtuRixNQUFNLE9BQU8sYUFBbUQsU0FBUSxVQUEyQjtJQUsvRixZQUNjLEtBQW1CLEVBQ1UsZ0JBQThCLEVBQ3hDLFNBQWlCLEVBQ0EsWUFBMEIsRUFDcEQsSUFBaUIsRUFDakIsR0FBZTtRQUVuQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQVA1QixV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UUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbmd1bGFyIGlzIHVzaW5nIGEgZ3VscCB0YXNrIHRvIGdlbmVyYXRlIHRoZSBsb2NhbGVzIHRoYXQgd2UgZHluYW1pY2FsbHkgaW1wb3J0LiBUaGlzIHRhc2sgY2FuIGJlIGZvdW5kIGhlcmVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYXN0ZXIvdG9vbHMvZ3VscC10YXNrcy9jbGRyL2NsZHItZGF0YS5qc1xuICogVGhhdCB0YXNrIGlzIHV0aWxpemluZyB0aGUgQ0xEUiBsaWJyYXJ5IHRvIGxvYWQgYW5kIGNvbnN0cnVjdCB0aGUgbG9jYWxlIGZvciBlYWNoIHJlZ2lvbi4gVGhpcyBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlXG4gKiB0byBsb2FkIHRob3NlIGxvY2FsZSBkeW5hbWljYWxseSB1cG9uIHJlcXVlc3QgYW5kIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIGVVSSBhcHAuXG4gKlxuICogUGFydHMgdGhhdCBhcmUgaGFuZGxlcyB0aHJvdWdoIGNvbmZpZ3VyYXRpb246XG4gKiAgLSB1cGRhdGUgb2YgdGhlIExPQ0FMRV9JRCB0b2tlblxuICogIC0gaW5pdGlhbCBkeW5hbWljYWwgbG9hZCBvZiBsb2NhbGVzXG4gKiAgLSBiaW5kIHRvIHRyYW5zbGF0aW9uIHNlcnZpY2UgZm9yIGxvY2FsZSBjaGFuZ2VzXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lELCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRMb2NhbGVJZCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEV1aVNlcnZpY2UsXG4gICAgRXVpU2VydmljZVN0YXR1cyxcbiAgICBnZXRMb2NhbGVTdGF0ZSxcbiAgICBnZXRMb2NhbGVTZXJ2aWNlQ29uZmlnRnJvbUJhc2UsXG4gICAgR2xvYmFsQ29uZmlnLFxuICAgIExvY2FsZVNlcnZpY2VDb25maWcsXG4gICAgTG9jYWxlU3RhdGUsXG4gICAgTG9nZ2VyLFxufSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlLCBVcGRhdGVMb2NhbGVTdGF0ZUFjdGlvbiB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEdMT0JBTF9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb25maWcvdG9rZW5zJztcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGVNYXBwZXIgPSAobG9jYWxlOiBzdHJpbmcpID0+IGFueTtcbmV4cG9ydCBjb25zdCBMT0NBTEVfSURfTUFQUEVSID0gbmV3IEluamVjdGlvblRva2VuPExvY2FsZU1hcHBlcj4oJ2xvY2FsZUlkTWFwcGVyJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZVNlcnZpY2U8VCBleHRlbmRzIExvY2FsZVN0YXRlID0gTG9jYWxlU3RhdGU+IGV4dGVuZHMgRXVpU2VydmljZTxUIHwgTG9jYWxlU3RhdGU+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuICAgIHByaXZhdGUgc3ViTm90aWZpZXI6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJvdGVjdGVkIGNvbmZpZzogTG9jYWxlU2VydmljZUNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlU2VydmljZSxcbiAgICAgICAgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgYmFzZUdsb2JhbENvbmZpZzogR2xvYmFsQ29uZmlnLFxuICAgICAgICBASW5qZWN0KExPQ0FMRV9JRCkgcHJvdGVjdGVkIGxvY2FsZV9pZDogc3RyaW5nLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMRV9JRF9NQVBQRVIpIHByaXZhdGUgbG9jYWxlTWFwcGVyOiBMb2NhbGVNYXBwZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaTE4bjogSTE4blNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbG9nOiBMb2dTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHsgaWQ6IGdldExvY2FsZUlkKGxvY2FsZV9pZCkgfSk7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gbG9nLmdldExvZ2dlcignY29yZS5Mb2NhbGVTZXJ2aWNlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGdldExvY2FsZVNlcnZpY2VDb25maWdGcm9tQmFzZSh0aGlzLmJhc2VHbG9iYWxDb25maWcpO1xuICAgICAgICAvLyBpbiBjYXNlIG5vIGxvY2FsZU1hcHBlciBwcm92aWRlZCwgc2V0IHRoZSBhbmd1bGFyIGdldExvY2FsZUlkIGFzIGRlZmF1bHRcbiAgICAgICAgaWYgKCF0aGlzLmxvY2FsZU1hcHBlcikge1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVNYXBwZXIgPSBnZXRMb2NhbGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Yk5vdGlmaWVyLm5leHQodm9pZCAwKTtcbiAgICAgICAgdGhpcy5zdWJOb3RpZmllci5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGdldFN0YXRlPEsgPSBUPihtYXBGbj86IChzdGF0ZTogVCkgPT4gSyk6IE9ic2VydmFibGU8Sz47XG4gICAgZ2V0U3RhdGU8YSBleHRlbmRzIGtleW9mIFQ+KGtleT86IGEpOiBPYnNlcnZhYmxlPFRbYV0+O1xuICAgIGdldFN0YXRlPEs+KGtleU9yTWFwRm4/OiAoKHN0YXRlOiBUKSA9PiBLKSB8IHN0cmluZyk6IE9ic2VydmFibGU8Sz4ge1xuICAgICAgICBsZXQgc2VsZWN0b3I6IGFueSA9IGdldExvY2FsZVN0YXRlO1xuXG4gICAgICAgIGlmIChrZXlPck1hcEZuKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBrZXlPck1hcEZuKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKGdldExvY2FsZVN0YXRlLCBrZXlPck1hcEZuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihnZXRMb2NhbGVTdGF0ZSwgKHN0YXRlKSA9PiBzdGF0ZVtrZXlPck1hcEZuXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChzZWxlY3RvcikucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnN1Yk5vdGlmaWVyKSxcbiAgICAgICAgICAgIC8vIGluIGNhc2Ugc2VydmljZSBkaWRuJ3QgaW5pdCBmYWxsYmFjayB0byBMT0NBTEVfSUQgdG9rZW4gdmFsdWVcbiAgICAgICAgICAgIG1hcCgoc3RhdGUpID0+IChzdGF0ZSA/IHN0YXRlIDogdGhpcy5zdGF0ZUluc3RhbmNlID8gdGhpcy5zdGF0ZUluc3RhbmNlIDogdGhpcy5sb2NhbGVfaWQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGluaXQoc3RhdGU/OiBMb2NhbGVTdGF0ZSB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICBzdXBlci5pbml0RXVpU2VydmljZSgpO1xuXG4gICAgICAgIC8vIGJpbmQgbGFuZ3VhZ2UgY2hhbmdlcyB0byBsb2NhbGUgY2hhbmdlc1xuICAgICAgICBpZiAodGhpcy5jb25maWc/LmJpbmRXaXRoVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmRUcmFuc2xhdGVTZXJ2aWNlTGFuZ0NoYW5nZVRvU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGR5bmFtaWNhbGx5IGxvYWQgbG9jYWxlIGJhc2VkIG9uIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTG9jYWxlcyA9IHN0YXRlPy5hdmFpbGFibGUgfHwgdGhpcy5jb25maWc/LmF2YWlsYWJsZSB8fCB0aGlzLmdldEJyb3dzZXJMb2NhbGVzKCkgfHwgW3RoaXMuY3VycmVudExvY2FsZV07XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRMb2NhbGUoYXZhaWxhYmxlTG9jYWxlcykucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnN1Yk5vdGlmaWVyKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZVN0YXRlKHN0YXRlIHx8IHsgaWQ6IHRoaXMuY3VycmVudExvY2FsZSB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkeW5hbWljYWxseSBsb2FkIGxvY2FsZSBhbmQgdXBkYXRlIHRoZSBzdGF0ZVxuICAgICAqL1xuICAgIHVwZGF0ZVN0YXRlKHN0YXRlOiBMb2NhbGVTdGF0ZSk6IHZvaWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmxvY2FsZU1hcHBlcihzdGF0ZS5pZCk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVMb2NhbGVTdGF0ZUFjdGlvbih7IC4uLnN0YXRlLCBpZCB9KSk7XG4gICAgICAgICAgICAvLyB1cGRhdGUgZ2xvYmFsIFRPS0VOIElEIGJhc2VkIG9uIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5hZmZlY3RHbG9iYWxMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZV9pZCA9IGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYExvY2FsZSBmb3IgJyR7c3RhdGUuaWR9JyBpcyBub3QgYXZhaWxhYmxlLlxuICAgICAgICAgICAgICAgICBQbGVhc2UgdXNlIGFkZExvY2FsZSgnJHtzdGF0ZS5pZH0nKSBmaXJzdGA7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKG1lc3NhZ2UsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkTG9jYWxlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV1aVNlcnZpY2VTdGF0dXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZShpZCk7XG4gICAgfVxuXG4gICAgZ2V0IHByZXZpb3VzTG9jYWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZTdGF0ZUluc3RhbmNlPy5pZCB8fCB0aGlzLmN1cnJlbnRMb2NhbGU7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVJbnN0YW5jZT8uaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZCBhbmQgcmVnaXN0ZXIgbG9jYWxlIGRhdGEgZHluYW1pY2FsbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsb2NhbGUgYXJyYXkgb2YgbG9jYWxlIHRvIGxvYWRcbiAgICAgKi9cbiAgICBwcml2YXRlIGxvYWRMb2NhbGUobG9jYWxlOiBzdHJpbmdbXSB8IHN0cmluZyk6IE9ic2VydmFibGU8RXVpU2VydmljZVN0YXR1cz4ge1xuICAgICAgICAvLyBsb2NhbGUgPSBBcnJheS5pc0FycmF5KGxvY2FsZSkgPyBsb2NhbGUgOiBbbG9jYWxlXTtcbiAgICAgICAgLy8gY29uc3QgbG9jYWxlSW1wb3J0czogT2JzZXJ2YWJsZTx7IGRhdGE6IGFueSwgbG9jYWxlSWQ6IHN0cmluZywgZXh0cmFEYXRhOiBhbnkgfT5bXVxuICAgICAgICAvLyAgICAgPSB0aGlzLmZpbHRlclJlZ2lzdGVyZWRMb2NhbGVzKGxvY2FsZSkubWFwKHRoaXMuaW1wb3J0RGF0YUFuZEV4dHJhTG9jYWxlLmJpbmQodGhpcykpO1xuICAgICAgICAvL1xuICAgICAgICAvLyAvLyBpbiBjYXNlIGxvY2FsZUltcG9ydHMgYXJyYXkgaXMgZW1wdHkgYmVjYXVzZSBsb2NhbGUgZXhpc3RzLCBPYnNlcnZhYmxlIHN0aWxsIG5lZWRzIHRvIGNvbXBsZXRlXG4gICAgICAgIC8vIGlmIChsb2NhbGVJbXBvcnRzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgLy8gICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy9cbiAgICAgICAgLy8gcmV0dXJuIGZvcmtKb2luKC4uLmxvY2FsZUltcG9ydHMpLnBpcGUoXG4gICAgICAgIC8vICAgICB0YWtlVW50aWwodGhpcy5zdWJOb3RpZmllciksXG4gICAgICAgIC8vICAgICBtYXAobG9jYWxlRGF0YSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgLy8gZmlsdGVyIG91dCBudWxsIHJlc3VsdHMgYW5kIHJlZ2lzdGVyTG9jYWxlRGF0YSBpbmNsdWRpbmcgZXh0cmFcbiAgICAgICAgLy8gICAgICAgICBsb2NhbGVEYXRhLmZpbHRlcigoeyBkYXRhIH0pID0+IGRhdGEpXG4gICAgICAgIC8vICAgICAgICAgICAgIC5mb3JFYWNoKCh7IGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEgfSkgPT4gcmVnaXN0ZXJMb2NhbGVEYXRhKGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEpKTtcbiAgICAgICAgLy8gICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICAgIC8vICAgICB9KSxcbiAgICAgICAgLy8gICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTG9jYWxlIGxvYWQgZXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvcik7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogZXJyb3IgfSk7XG4gICAgICAgIC8vICAgICB9KVxuICAgICAgICAvLyApO1xuICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxpc3RlbiBmb3IgbGFuZ3VhZ2UgY2hhbmdlcyBhbmQgZHluYW1pY2FsbHkgc2V0IGxvY2FsZSBhY2NvcmRpbmdseS4gSW4gY2FzZSBvZiBub24gcmVnaXN0ZXJlZCBsb2NhbGUgcmVnaXN0ZXIgaXRcbiAgICAgKiBkeW5hbWljYWxseS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGJpbmRUcmFuc2xhdGVTZXJ2aWNlTGFuZ0NoYW5nZVRvU3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmkxOG4pIHtcbiAgICAgICAgICAgIHRoaXMuaTE4bi5vblN0YXRlQ2hhbmdlXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnN1Yk5vdGlmaWVyKSxcbiAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyIG91dCBudWxsIHZhbHVlc1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXRlKSA9PiBzdGF0ZT8uYWN0aXZlTGFuZyAhPT0gbnVsbCAmJiBzdGF0ZT8uYWN0aXZlTGFuZyAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgLy8gQkVXQVJFOiBmaWx0ZXIgaXMgYmFzZWQgb24gY29udmVudGlvbiB0aGF0IGxvY2FsZSBpZCBzbGljZWQoMikgd2lsbCBtYXRjaCBhY3RpdmVMYW5nIGUuZy4gZW4tVVMgPT4gZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gQWxzbywgaWYgYWN0aXZlTGFuZyBpcyAnZW4nIGFuZCBsb2NhbGUgaXMgJ2VuLUdCJyBpdCB3aWxsIG5vdCB0cmlnZ2VyIGxvY2FsZSBjaGFuZ2VcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0ZSkgPT4gc3RhdGUuYWN0aXZlTGFuZy50b0xvd2VyQ2FzZSgpICE9PSB0aGlzLnN0YXRlSW5zdGFuY2U/LmlkLnNsaWNlKDAsIDIpLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICAgICAgICAgICAgICAvLyB0byBjaGVjayBpZiByZWdpc3RyYXRpb24gb2YgbG9jYWxlIG90aGVyd2lzZSByZWdpc3RlciBpdFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgb2YodmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0TG9jYWxlSWQgbWF5IHRocm93IEVycm9yKGBNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlIFwiJHtsb2NhbGV9XCIuYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKChpMThzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiBhY3RpdmVMYW5nIGlzIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaTE4c3RhdGUuYWN0aXZlTGFuZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0hhcyBpMThuU2VydmljZSBpbml0aWFsaXplZD8gSWYgbm90IG1ha2Ugc3VyZSBpMThuU2VydmljZS5pbml0KCkuc3Vic2NyaWJlKC4uKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmxvY2FsZU1hcHBlcihpMThzdGF0ZS5hY3RpdmVMYW5nKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubG9nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZSh2YWx1ZT8uYWN0aXZlTGFuZykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoczogRXVpU2VydmljZVN0YXR1cykgPT4gcy5zdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmxvY2FsZU1hcHBlcih2YWx1ZT8uYWN0aXZlTGFuZykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU29tZXRoaW5nIHdlbnQgdGVycmlibHkgcmVhbGx5IHdyb25nIGR1cmluZyBsb2NhbGUgbG9hZGluZycsIGUuZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgXCJhdmFpbGFibGVcIiBhcnJheSBhdHRyaWJ1dGUgd2l0aCBuZXdseSByZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoaWQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN0YXRlKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoc3RhdGU6IExvY2FsZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IHN0YXRlPy5hdmFpbGFibGUgPyBzdGF0ZS5hdmFpbGFibGUgOiBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGlkLCBhdmFpbGFibGU6IEFycmF5LmZyb20obmV3IFNldChbLi4uYXZhaWxhYmxlLCBpZF0pKSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IExvY2FsZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoc3RhdGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0cmlldmUgbG9jYWxlcyBmcm9tIGJyb3dzZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRCcm93c2VyTG9jYWxlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJMb2NhbGVzID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA9PT0gdW5kZWZpbmVkID8gW25hdmlnYXRvci5sYW5ndWFnZV0gOiBuYXZpZ2F0b3IubGFuZ3VhZ2VzO1xuXG4gICAgICAgIGlmICghYnJvd3NlckxvY2FsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYnJvd3NlckxvY2FsZXMubWFwKChsb2NhbGUpID0+IGxvY2FsZS50cmltKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlmIGxvY2FsZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgZmlsdGVyZWQgb3V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvY2FsZXMgQSBzdHJpbmcgYXJyYXkgY29udGFpbnMgYWxsIGxvY2FsZSBpZCBlLmcuIFtcImVsXCIsIFwiZWwtQ1lcIl1cbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbHRlclJlZ2lzdGVyZWRMb2NhbGVzKGxvY2FsZXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gbG9jYWxlcy5maWx0ZXIoKGxvYzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGdldExvY2FsZUlkKGxvYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgd2hpY2ggbG9hZHMgdGhlIGxvY2FsZSBiYXNlZCBvbiBwcm92aWRlZCBJRFxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIHRoZSBsb2NhbGUgaWQgZS5nLiBlbiwgZWwtQ1lcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIC8vIHByaXZhdGUgaW1wb3J0TG9jYWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vICAgICAvLyBpbiBjYXNlIG9mIGFuIGVycm9yLCBjYXRjaCBpdCBhbmQgcmV0dXJuIG51bGxcbiAgICAvLyAgICAgcmV0dXJuIGltcG9ydChcbiAgICAvLyAgICAgICAgIC8qIHdlYnBhY2tFeGNsdWRlOiAvXFwuZFxcLnRzJC8gKi9cbiAgICAvLyAgICAgICAgIC8qIHdlYnBhY2tNb2RlOiBcImxhenktb25jZVwiICovXG4gICAgLy8gICAgICAgICAvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImkxOG4tYmFzZVwiICovXG4gICAgLy8gICAgICAgICBgQC8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvJHtpZH1gKVxuICAgIC8vICAgICAgICAgLnRoZW4obSA9PiBtLmRlZmF1bHQpXG4gICAgLy8gICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgIC8vICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgIC8vICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTG9jYWxlIHdpdGggSUQ6IFwiJHtpZH1cIiBmYWlsZWQgdG8gbG9hZC4gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvcik7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIC8vICAgICAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhIFByb21pc2Ugd2hpY2ggbG9hZHMgdGhlIGxvY2FsZSBiYXNlZCBvbiBwcm92aWRlZCBJRFxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIHRoZSBsb2NhbGUgaWQgZS5nLiBlbiwgZWwtQ1lcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIC8vIHByaXZhdGUgaW1wb3J0RXh0cmFMb2NhbGUoaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gICAgIC8vIGluIGNhc2Ugb2YgYW4gZXJyb3IsIGNhdGNoIGl0IGFuZCByZXR1cm4gbnVsbFxuICAgIC8vICAgICByZXR1cm4gaW1wb3J0KFxuICAgIC8vICAgICAgICAgLyogd2VicGFja0V4Y2x1ZGU6IC9cXC5kXFwudHMkLyAqL1xuICAgIC8vICAgICAgICAgLyogd2VicGFja01vZGU6IFwibGF6eS1vbmNlXCIgKi9cbiAgICAvLyAgICAgICAgIC8qIHdlYnBhY2tDaHVua05hbWU6IFwiaTE4bi1leHRyYVwiICovXG4gICAgLy8gICAgICAgICBgQC8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvJHtpZH1gKVxuICAgIC8vICAgICAgICAgLnRoZW4obSA9PiBtLmRlZmF1bHQpXG4gICAgLy8gICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgIC8vICAgICAgICAgICAgIGlmICh0aGlzLmxvZykge1xuICAgIC8vICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRXh0cmEgTG9jYWxlIHdpdGggSUQ6IFwiJHtpZH1cIiBmYWlsZWQgdG8gbG9hZC4gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCBlcnJvcik7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIC8vICAgICAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgLyoqXG4gICAgICogSW1wb3J0cyBMb2NhbGUgYW5kIHRoZW4gRXh0cmEuIEl0IHJldHVybnMgdGhlIE9iamVjdCB3aGljaCByZWdpc3RlckxvY2FsZSguLi4pIGZ1bmN0aW9uIG5lZWRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvY2FsZUlkIFRoZSBpZCBvZiB0aGUgbG9jYWxlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICAvLyBwcml2YXRlIGltcG9ydERhdGFBbmRFeHRyYUxvY2FsZShsb2NhbGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGRhdGE6IGFueSwgbG9jYWxlSWQ6IHN0cmluZywgZXh0cmFEYXRhOiBhbnkgfT4ge1xuICAgIC8vICAgICByZXR1cm4gZnJvbSh0aGlzLmltcG9ydExvY2FsZShsb2NhbGVJZCkpLnBpcGUoXG4gICAgLy8gICAgICAgICBtZXJnZU1hcCgoZGF0YSkgPT4gZnJvbSh0aGlzLmltcG9ydEV4dHJhTG9jYWxlKGxvY2FsZUlkKSkucGlwZShtYXAoKGV4dHJhRGF0YSkgPT5cbiAgICAvLyAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgeyBkYXRhLCBsb2NhbGVJZCwgZXh0cmFEYXRhIH0pKSksXG4gICAgLy8gICAgICAgICAgICAgMVxuICAgIC8vICAgICAgICAgKSk7XG4gICAgLy8gfVxufVxuIl19
|
|
@@ -29,10 +29,10 @@ export class LocaleServiceMock extends LocaleService {
|
|
|
29
29
|
this.DEFAULT_LOCALE = state.id || 'en';
|
|
30
30
|
return of({ success: true });
|
|
31
31
|
}
|
|
32
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LocaleServiceMock, deps: [{ token: LOCALE_ID, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LocaleServiceMock }); }
|
|
32
34
|
}
|
|
33
|
-
|
|
34
|
-
/** @nocollapse */ LocaleServiceMock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LocaleServiceMock });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LocaleServiceMock, decorators: [{
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LocaleServiceMock, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
38
38
|
type: Optional
|
|
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2",
|
|
|
40
40
|
type: Inject,
|
|
41
41
|
args: [LOCALE_ID]
|
|
42
42
|
}] }]; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UubW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbG9jYWxlL2xvY2FsZS5zZXJ2aWNlLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBSWhELFlBQXFELFNBQWlCO1FBQ2xFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRGpDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFIOUQsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBaUMsSUFBSSxlQUFlLENBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFJbkgsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFrQjtRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkIsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxQixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQW1CO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUM7UUFDdkMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO2lJQXpCUSxpQkFBaUIsa0JBSU0sU0FBUztxSUFKaEMsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFLTSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCwgSW5qZWN0LCBJbmplY3RhYmxlLCBMT0NBTEVfSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV1aVNlcnZpY2VTdGF0dXMsIExvY2FsZVN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCBsb2NhbGVGciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9mcic7XG5pbXBvcnQgbG9jYWxlRWwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZWwnO1xuaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsZVNlcnZpY2VNb2NrIGV4dGVuZHMgTG9jYWxlU2VydmljZSB7XG4gICAgcHJpdmF0ZSBERUZBVUxUX0xPQ0FMRSA9ICdlbic7XG4gICAgcHJpdmF0ZSBzdGF0ZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxMb2NhbGVTdGF0ZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExvY2FsZVN0YXRlPih7IGlkOiB0aGlzLkRFRkFVTFRfTE9DQUxFIH0pO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTEVfSUQpIHByb3RlY3RlZCBsb2NhbGVfaWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihudWxsLCB7IGxvY2FsZTogeyBpZDogJ2VuJywgYXZhaWxhYmxlOiBbXSB9IH0sIGxvY2FsZV9pZCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoKTogT2JzZXJ2YWJsZTxMb2NhbGVTdGF0ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlU3RhdGUoc3RhdGU6IExvY2FsZVN0YXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuREVGQVVMVF9MT0NBTEUgPSBzdGF0ZS5pZCB8fCAnZW4nO1xuICAgICAgICBpZiAoc3RhdGUuaWQgPT09ICdmcicpIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVGciwgJ2ZyJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuaWQgPT09ICdlbCcpIHtcbiAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbCwgJ2ZyJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgfVxuXG4gICAgaW5pdChzdGF0ZT86IExvY2FsZVN0YXRlKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XG4gICAgICAgIHRoaXMuREVGQVVMVF9MT0NBTEUgPSBzdGF0ZS5pZCB8fCAnZW4nO1xuICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -28,11 +28,11 @@ export class LogModule {
|
|
|
28
28
|
],
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
32
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.4", ngImport: i0, type: LogModule }); }
|
|
33
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogModule }); }
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
/** @nocollapse */ LogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.2", ngImport: i0, type: LogModule });
|
|
34
|
-
/** @nocollapse */ LogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LogModule });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LogModule, decorators: [{
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogModule, decorators: [{
|
|
36
36
|
type: NgModule
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbG9nL2xvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV6RCxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFZLFlBQVksQ0FBQyxDQUFDO0FBRTVFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFNBQVM7SUFDbEIsa0VBQWtFO0lBQ2xFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBb0Isa0JBQWtCO1FBQ2pELE9BQU87WUFDSCxRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtnQkFDdEQsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsRUFBRTthQUNwRztTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsK0dBQStHO0lBQy9HLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBb0Isa0JBQWtCO1FBQ2xELE9BQU87WUFDSCxRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtnQkFDdEQsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsRUFBRTthQUNwRztTQUNKLENBQUM7SUFDTixDQUFDO2lJQXJCUSxTQUFTO2tJQUFULFNBQVM7a0lBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFEckIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ0NvbmZpZyB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfTE9HX0NPTkZJRyB9IGZyb20gJy4uL2NvbmZpZy9kZWZhdWx0cyc7XG5pbXBvcnQgeyBsb2dTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4uL2FwcC9mYWN0b3JpZXMvbG9nJztcblxuY29uc3QgTE9HX01PRFVMRV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nQ29uZmlnPignTE9HX0NPTkZJRycpO1xuXG4vKipcbiAqIExvZyBNb2R1bGVcbiAqL1xuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBMb2dNb2R1bGUge1xuICAgIC8qKiBtZXRob2QgY2FsbGVkIGluIHlvdXIgcm9vdCBtb2R1bGUgdG8gcHJvdmlkZSB0aGUgTG9nU2VydmljZSAqL1xuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZzogTG9nQ29uZmlnID0gREVGQVVMVF9MT0dfQ09ORklHKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMb2dNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBMb2dNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExPR19NT0RVTEVfQ09ORklHX1RPS0VOLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMb2dTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2dTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0xPR19NT0RVTEVfQ09ORklHX1RPS0VOLCBJbmplY3Rvcl0gfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIG1ldGhvZCBjYWxsZWQgaW4geW91ciBvdGhlciAobm9uIHJvb3QsIGxhenkgbG9hZGVkKSBtb2R1bGVzIHRvIGltcG9ydCBhIGRpZmZlcmVudCBpbnN0YW5jZSBvZiBMb2dTZXJ2aWNlICovXG4gICAgc3RhdGljIGZvckNoaWxkKGNvbmZpZzogTG9nQ29uZmlnID0gREVGQVVMVF9MT0dfQ09ORklHKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMb2dNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBMb2dNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExPR19NT0RVTEVfQ09ORklHX1RPS0VOLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMb2dTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2dTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0xPR19NT0RVTEVfQ09ORklHX1RPS0VOLCBJbmplY3Rvcl0gfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -33,10 +33,10 @@ export class LogService extends Logger {
|
|
|
33
33
|
}
|
|
34
34
|
return logger;
|
|
35
35
|
}
|
|
36
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogService, deps: [{ token: BASE_LOGGER_NAME_TOKEN }, { token: LOG_LEVEL_TOKEN }, { token: LOG_APPENDERS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogService }); }
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
/** @nocollapse */ LogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LogService });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LogService, decorators: [{
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LogService, decorators: [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
42
42
|
type: Inject,
|
|
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2",
|
|
|
48
48
|
type: Inject,
|
|
49
49
|
args: [LOG_APPENDERS_TOKEN]
|
|
50
50
|
}] }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2xvZy9sb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFlLE1BQU0sRUFBWSxNQUFNLFdBQVcsQ0FBQzs7O0FBRTFELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFTLGtCQUFrQixDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFnQixlQUFlLENBQUMsQ0FBQztBQUV0Rjs7R0FFRztBQUVILE1BQU0sT0FBTyxVQUFXLFNBQVEsTUFBTTtJQUlsQyxZQUM4QyxJQUFZLEVBQ25CLEtBQWUsRUFDWCxTQUF3QjtRQUUvRCxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUpZLFNBQUksR0FBSixJQUFJLENBQVE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFObkUscUNBQXFDO1FBQzNCLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFRdkIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxVQUFrQixFQUFFLFVBQW1CLEtBQUs7UUFDbEQsa0NBQWtDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLENBQUMsT0FBTyxJQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkgsd0VBQXdFO1FBQ3hFLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDckM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO2lJQTdCUSxVQUFVLGtCQUtQLHNCQUFzQixhQUN0QixlQUFlLGFBQ2YsbUJBQW1CO3FJQVB0QixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixVQUFVOzswQkFNRixNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nQXBwZW5kZXIsIExvZ2dlciwgTG9nTGV2ZWwgfSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgQkFTRV9MT0dHRVJfTkFNRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdCQVNFX0xPR0dFUl9OQU1FJyk7XG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPExvZ0xldmVsPignTE9HX0xFVkVMJyk7XG5leHBvcnQgY29uc3QgTE9HX0FQUEVOREVSU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMb2dBcHBlbmRlcltdPignTE9HX0FQUEVOREVSUycpO1xuXG4vKipcbiAqIExvZyBzZXJ2aWNlLCByZXNwb25zaWJsZSBmb3IgZ2V0dGluZyBvciBjcmVhdGluZyBsb2dnZXJzLiBJdCBpdHNlbGYgYWN0cyBhcyBhIGJhc2UgbG9nZ2VyXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2dTZXJ2aWNlIGV4dGVuZHMgTG9nZ2VyIHtcbiAgICAvKiogdGhlIGxpc3Qgb2YgcGVyc2lzdGVudCBsb2dnZXJzICovXG4gICAgcHJvdGVjdGVkIGxvZ2dlcnMgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEJBU0VfTE9HR0VSX05BTUVfVE9LRU4pIHByb3RlY3RlZCBuYW1lOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoTE9HX0xFVkVMX1RPS0VOKSBwcm90ZWN0ZWQgbGV2ZWw6IExvZ0xldmVsLFxuICAgICAgICBASW5qZWN0KExPR19BUFBFTkRFUlNfVE9LRU4pIHByb3RlY3RlZCBhcHBlbmRlcnM6IExvZ0FwcGVuZGVyW11cbiAgICApIHtcbiAgICAgICAgc3VwZXIobmFtZSwgbGV2ZWwsIGFwcGVuZGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGxvZ2dlciBieSBuYW1lLiBJZiB0aGUgbG9nZ2VyIGRvZXMgbm90IGV4aXN0LCBpdCBpcyBjcmVhdGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9nZ2VyTmFtZSBsb2dnZXIgbmFtZVxuICAgICAqIEBwYXJhbSBwZXJzaXN0IG9wdGlvbmFsIHBhcmFtZXRlci4gU2V0IGl0IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gcmV1c2UgdGhlIGxvZ2dlci4gQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIGZhbHNlXG4gICAgICogQHJldHVybnMgdGhlIGxvZ2dlclxuICAgICAqL1xuICAgIGdldExvZ2dlcihsb2dnZXJOYW1lOiBzdHJpbmcsIHBlcnNpc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IExvZ2dlciB7XG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgbG9nZ2VyLCBpZiBuZWNlc3NhcnlcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gKHBlcnNpc3QgJiYgPExvZ2dlcj50aGlzLmxvZ2dlcnNbbG9nZ2VyTmFtZV0pIHx8IG5ldyBMb2dnZXIobG9nZ2VyTmFtZSwgdGhpcy5sZXZlbCwgdGhpcy5hcHBlbmRlcnMpO1xuXG4gICAgICAgIC8vIGlmIHRoZSBsb2dnZXIgaXMgcGVyc2lzdGVudCwgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIHBlcnNpc3RlbnQgbG9nZ2Vyc1xuICAgICAgICBpZiAocGVyc2lzdCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXJzW2xvZ2dlck5hbWVdID0gbG9nZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxvZ2dlcjtcbiAgICB9XG59XG4iXX0=
|