@bravobit/bb-foundation 0.23.1 → 0.23.4
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/elements/lib/date-picker/date-picker.component.d.ts +3 -5
- package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
- package/esm2020/auth/lib/auth.module.mjs +4 -4
- package/esm2020/auth/lib/auth.service.mjs +3 -3
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
- package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
- package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
- package/esm2020/collections/lib/collections.module.mjs +4 -4
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
- package/esm2020/controls/lib/controls.module.mjs +4 -4
- package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control.module.mjs +4 -4
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2020/dialog/lib/dialog.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog.service.mjs +3 -3
- package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/elements/lib/button/button.component.mjs +6 -6
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +27 -29
- package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +7 -7
- package/esm2020/elements/lib/elements.module.mjs +4 -4
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
- package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
- package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
- package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
- package/esm2020/http/lib/http.module.mjs +5 -5
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
- package/esm2020/lib/core/services/clipboard.service.mjs +4 -4
- package/esm2020/lib/core/services/exif.service.mjs +3 -3
- package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2020/lib/core/services/languages.service.mjs +3 -3
- package/esm2020/lib/core/services/network.service.mjs +4 -4
- package/esm2020/lib/core/services/patch.service.mjs +4 -4
- package/esm2020/localize/lib/locale.token.mjs +14 -0
- package/esm2020/localize/lib/localize.module.mjs +4 -4
- package/esm2020/localize/lib/localize.pipe.mjs +9 -11
- package/esm2020/localize/lib/localize.service.mjs +19 -10
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
- package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2020/localize/public_api.mjs +2 -1
- package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/masking.module.mjs +4 -4
- package/esm2020/masking/lib/masking.service.mjs +3 -3
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications.module.mjs +4 -4
- package/esm2020/notifications/lib/notifications.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +49 -15
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +12 -7
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2020/storage/lib/storage.service.mjs +3 -3
- package/esm2020/table/lib/components/table/table.component.mjs +9 -9
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
- package/esm2020/table/lib/table.module.mjs +4 -4
- package/esm2020/theming/lib/theming.directive.mjs +3 -3
- package/esm2020/theming/lib/theming.module.mjs +4 -4
- package/esm2020/utils/lib/directives/autosize.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus-trap.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/template.directive.mjs +3 -3
- package/esm2020/utils/lib/utils.module.mjs +4 -4
- package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-controls.mjs +37 -37
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-elements.mjs +99 -102
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-localize.mjs +57 -36
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +64 -25
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2015/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation.mjs +21 -21
- package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-controls.mjs +37 -37
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-elements.mjs +99 -101
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-localize.mjs +49 -33
- package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +61 -23
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2020/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation.mjs +21 -21
- package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/locale.token.d.ts +3 -0
- package/localize/lib/localize.module.d.ts +1 -1
- package/localize/lib/localize.pipe.d.ts +3 -3
- package/localize/lib/localize.service.d.ts +5 -3
- package/localize/public_api.d.ts +1 -0
- package/package.json +1 -1
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +11 -3
- package/recaptcha/lib/recaptcha-loader.service.d.ts +4 -2
|
@@ -3,6 +3,7 @@ import { LocalizeDictionary } from './dictionary/dictionary.class';
|
|
|
3
3
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
4
4
|
import { WINDOW } from '@bravobit/bb-foundation';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@bravobit/bb-foundation/storage";
|
|
8
9
|
import * as i2 from "@bravobit/bb-foundation";
|
|
@@ -23,7 +24,9 @@ export class Localize {
|
|
|
23
24
|
this._bestMatchingLanguage = this.retrieveBestMatchingLanguage();
|
|
24
25
|
this._loadedDictionaries = new Map();
|
|
25
26
|
// Current dictionary.
|
|
26
|
-
this._current = null;
|
|
27
|
+
this._current$ = new BehaviorSubject(null);
|
|
28
|
+
// State changes.
|
|
29
|
+
this.dictionaryChanges$ = this._current$.asObservable();
|
|
27
30
|
this.convertToParams = (tokenOrParams) => {
|
|
28
31
|
if (typeof tokenOrParams !== 'string') {
|
|
29
32
|
// Destruct the params from the object.
|
|
@@ -41,7 +44,7 @@ export class Localize {
|
|
|
41
44
|
return this._availableLanguages ?? [];
|
|
42
45
|
}
|
|
43
46
|
get current() {
|
|
44
|
-
return this._current;
|
|
47
|
+
return this._current$.getValue();
|
|
45
48
|
}
|
|
46
49
|
async load(id) {
|
|
47
50
|
if (id === null || id === undefined) {
|
|
@@ -61,17 +64,23 @@ export class Localize {
|
|
|
61
64
|
this._loadedDictionaries.set(id, dictionary);
|
|
62
65
|
return dictionary;
|
|
63
66
|
}
|
|
67
|
+
async loadAllLanguages() {
|
|
68
|
+
for (const language of this.languages) {
|
|
69
|
+
await this.load(this.current?.id);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
64
72
|
async switch(id, options) {
|
|
65
|
-
|
|
73
|
+
const dictionary = await this.load(id);
|
|
74
|
+
this._current$.next(dictionary);
|
|
66
75
|
const cache = options?.cache ?? true;
|
|
67
76
|
if (cache) {
|
|
68
|
-
this._storage.cookie.set(this._storageToken,
|
|
77
|
+
this._storage.cookie.set(this._storageToken, dictionary?.id, {});
|
|
69
78
|
}
|
|
70
79
|
const reload = options?.reload ?? false;
|
|
71
80
|
if (reload) {
|
|
72
81
|
this._window?.location?.reload?.();
|
|
73
82
|
}
|
|
74
|
-
return
|
|
83
|
+
return dictionary;
|
|
75
84
|
}
|
|
76
85
|
select(id) {
|
|
77
86
|
if (!this._loadedDictionaries.has(id)) {
|
|
@@ -126,7 +135,7 @@ export class Localize {
|
|
|
126
135
|
}
|
|
127
136
|
getDictionary(id) {
|
|
128
137
|
if (id === null || id === undefined) {
|
|
129
|
-
return this.
|
|
138
|
+
return this.current;
|
|
130
139
|
}
|
|
131
140
|
return this.select(id);
|
|
132
141
|
}
|
|
@@ -138,9 +147,9 @@ export class Localize {
|
|
|
138
147
|
element.lang = this._bestMatchingLanguage?.supported?.[0] ?? this._bestMatchingLanguage?.locale;
|
|
139
148
|
}
|
|
140
149
|
}
|
|
141
|
-
Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
142
|
-
Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
150
|
+
Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Localize, deps: [{ token: i1.Storage }, { token: i2.Languages }, { token: i3.LocalizeMissingHandler }, { token: i4.LocalizeConfig, optional: true }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_TRANSFORM, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
151
|
+
Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Localize });
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Localize, decorators: [{
|
|
144
153
|
type: Injectable
|
|
145
154
|
}], ctorParameters: function () { return [{ type: i1.Storage }, { type: i2.Languages }, { type: i3.LocalizeMissingHandler }, { type: i4.LocalizeConfig, decorators: [{
|
|
146
155
|
type: Optional
|
|
@@ -160,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
160
169
|
type: Inject,
|
|
161
170
|
args: [LOCALIZE_TRANSFORM]
|
|
162
171
|
}] }]; } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBSXRFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQVksTUFBTSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFHekMsTUFBTSxPQUFPLFFBQVE7SUFZakIsWUFBb0IsUUFBaUIsRUFDakIsVUFBcUIsRUFDckIsZUFBdUMsRUFDM0IsT0FBd0IsRUFDUixPQUFnQixFQUNkLFNBQW9CLEVBQ1YsV0FBaUM7UUFOekUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNSLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ1YsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBaEI3RixpQkFBaUI7UUFDQSxrQkFBYSxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxJQUFJLDJCQUEyQixDQUFDO1FBQ2xGLHdCQUFtQixHQUE2QixJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDL0UsMEJBQXFCLEdBQTJCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBRXBGLHdCQUFtQixHQUFvQyxJ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Q0FBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQ3BHLENBQUM7O3FHQW5KUSxRQUFRLHNKQWdCZSxNQUFNLDZCQUNOLFFBQVEsNkJBQ1Isa0JBQWtCO3lHQWxCekMsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVOzswQkFnQk0sUUFBUTs4QkFDcUMsTUFBTTswQkFBbkQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzhCQUN3QixRQUFROzBCQUF6RCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYWxpemVDb25maWcsIExvY2FsaXplQ29uZmlnTGFuZ3VhZ2V9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xPQ0FMSVpFX1RSQU5TRk9STX0gZnJvbSAnLi9pbnRlcmZhY2VzL3RyYW5zZm9ybXMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeURhdGF9IGZyb20gJy4vZGljdGlvbmFyeS9kaWN0aW9uYXJ5LmRhdGEnO1xuaW1wb3J0IHtMb2NhbGl6ZVRyYW5zZm9ybX0gZnJvbSAnLi90cmFuc2Zvcm1zL2Fic3RyYWN0LnRyYW5zZm9ybSc7XG5pbXBvcnQge0xvY2FsaXplTWlzc2luZ0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvbWlzc2luZy5oYW5kbGVyJztcbmltcG9ydCB7TG9jYWxpemVEaWN0aW9uYXJ5fSBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5jbGFzcyc7XG5pbXBvcnQge0xvY2FsaXplUGFyYW1zfSBmcm9tICcuL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xhbmd1YWdlcywgV0lORE9XfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge1N0b3JhZ2V9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3N0b3JhZ2UnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXplIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmFnZVRva2VuOiBzdHJpbmcgPSB0aGlzLl9jb25maWc/LnN0b3JhZ2VUb2tlbiA/PyAnYmItbGFuZ3VhZ2UtZGljdGlvbmFyeS1pZCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlW10gPSB0aGlzPy5fY29uZmlnPy5sYW5ndWFnZXMgPz8gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYmVzdE1hdGNoaW5nTGFuZ3VhZ2U6IExvY2FsaXplQ29uZmlnTGFuZ3VhZ2UgPSB0aGlzLnJldHJpZXZlQmVzdE1hdGNoaW5nTGFuZ3VhZ2UoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRlZERpY3Rpb25hcmllczogTWFwPHN0cmluZywgTG9jYWxpemVEaWN0aW9uYXJ5PiA9IG5ldyBNYXA8c3RyaW5nLCBMb2NhbGl6ZURpY3Rpb25hcnk+KCk7XG5cbiAgICAvLyBDdXJyZW50IGRpY3Rpb25hcnkuXG4gICAgcHJpdmF0ZSBfY3VycmVudDogTG9jYWxpemVEaWN0aW9uYXJ5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhbmd1YWdlczogTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21pc3NpbmdIYW5kbGVyOiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IExvY2FsaXplQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIF93aW5kb3c/OiBXaW5kb3csXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX1RSQU5TRk9STSkgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IExvY2FsaXplVHJhbnNmb3JtW10pIHtcbiAgICAgICAgdGhpcy5yZW5kZXJEb2N1bWVudExhbmd1YWdlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxhbmd1YWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcyA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZChpZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBsb2FkIGxhbmd1YWdlIHdpdGggaWQ6IFwiJHtpZH1cIi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuaGFzKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5nZXQoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlcz8uZmluZChsYW5ndWFnZSA9PiBsYW5ndWFnZT8uaWQgPT09IGlkKTtcbiAgICAgICAgaWYgKCFsYW5ndWFnZSB8fCAhbGFuZ3VhZ2U/LmRhdGEpIHtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgTm8gbGFuZ3VhZ2Ugd2FzIGZvdW5kIHdpdGggaWQ6IFwiJHtpZH1cIjsgRGVmYXVsdGluZyB0byBmaXJzdCBhdmFpbGFibGUgbGFuZ3VhZ2UuYCk7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUlkID0gdGhpcy5sYW5ndWFnZXM/LlswXT8uaWQgPz8gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQobGFuZ3VhZ2VJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5RGF0YVZhbHVlcyA9IGF3YWl0IGxhbmd1YWdlPy5kYXRhPy4oKTtcbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuY3JlYXRlRGljdGlvbmFyeShkaWN0aW9uYXJ5RGF0YVZhbHVlcywgbGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuc2V0KGlkLCBkaWN0aW9uYXJ5KTtcbiAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgYXN5bmMgc3dpdGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbiwgcmVsb2FkPzogYm9vbGVhbiB9KSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnQgPSBhd2FpdCB0aGlzLmxvYWQoaWQpO1xuXG4gICAgICAgIGNvbnN0IGNhY2hlID0gb3B0aW9ucz8uY2FjaGUgPz8gdHJ1ZTtcbiAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5zZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4sIHRoaXMuX2N1cnJlbnQ/LmlkLCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWxvYWQgPSBvcHRpb25zPy5yZWxvYWQgPz8gZmFsc2U7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3dpbmRvdz8ubG9jYXRpb24/LnJlbG9hZD8uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudDtcbiAgICB9XG5cbiAgICBzZWxlY3QoaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpY3Rpb25hcnkgd2l0aCBpZDogXCIke2lkfVwiIG5vdCBsb2FkZWQ7IExvYWQgZGljdGlvbmFyeSBmaXJzdCBiZWZvcmUgdXNpbmcgLnNlbGVjdCg6aWQpLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuZ2V0KGlkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gdGhpcy5zd2l0Y2godGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LmlkLCB7cmVsb2FkOiBmYWxzZSwgY2FjaGU6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX3N0b3JhZ2UuY29va2llLnJlbW92ZSh0aGlzLl9zdG9yYWdlVG9rZW4pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBkYXRhOiBMb2NhbGl6ZVBhcmFtc1snZGF0YSddID0ge30pIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl90cmFuc2Zvcm1zID8/IFtdKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudC5leGVjdXRlKHByZXZpb3VzLCBkYXRhLCB0aGlzKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRyYW5zbGF0ZSh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykge1xuICAgICAgICAvLyAxLiBDb252ZXJ0IHRvIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydFRvUGFyYW1zKHRva2VuT3JQYXJhbXMpO1xuXG4gICAgICAgIC8vIDIuIFRyeSB0byBmaW5kIHRoZSB0cmFuc2xhdGlvbiBpbiB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuZ2V0RGljdGlvbmFyeShwYXJhbXM/LmRpY3Rpb25hcnkpO1xuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHQgPSAhIWRpY3Rpb25hcnkgPyBkaWN0aW9uYXJ5LmdldChwYXJhbXM/LnRva2VuKSA6IG51bGw7XG5cbiAgICAgICAgLy8gMy4gVmVyaWZ5IHRoZSB0cmFuc2xhdGlvbiB3YXMgZm91bmQuXG4gICAgICAgIGlmICghc2VhcmNoUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlzc2luZ0hhbmRsZXIuaGFuZGxlKHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oc2VhcmNoUmVzdWx0LCBwYXJhbXM/LmRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV0cmlldmVCZXN0TWF0Y2hpbmdMYW5ndWFnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGFuZ3VhZ2VGcm9tU3RvcmFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLmdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLl9hdmFpbGFibGVMYW5ndWFnZXM/LlswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhbmd1YWdlRnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIC8vIEdldCBpZCBmcm9tIHRoZSBzdG9yYWdlLlxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX3N0b3JhZ2UuY29va2llLmdldDxzdHJpbmc+KHRoaXMuX3N0b3JhZ2VUb2tlbik7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgc3RvcmFnZSBpZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpIHtcbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCBicm93c2VyIGxhbmd1YWdlcyBhbmQgcmV0dXJuIHRoZVxuICAgICAgICAvLyBiZXN0IG1hdGNoaW5nIGxhbmd1YWdlLlxuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VzLmFsbC5tYXAoKHtjb2RlLCByZWdpb259KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBbY29kZSwgcmVnaW9uXS5maWx0ZXIoZGF0YSA9PiAhIWRhdGEpLmpvaW4oJy0nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uc3VwcG9ydGVkPy5pbmNsdWRlcyhsYW5ndWFnZUNvZGUpKTtcbiAgICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKS5maW5kKChfLCBpbmRleCkgPT4gaW5kZXggPT09IDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGljdGlvbmFyeShkYXRhOiBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhLCBsYW5ndWFnZTogTG9jYWxpemVDb25maWdMYW5ndWFnZSkge1xuICAgICAgICByZXR1cm4gbmV3IExvY2FsaXplRGljdGlvbmFyeShsYW5ndWFnZT8uaWQsIGxhbmd1YWdlPy5sb2NhbGUsIGxhbmd1YWdlPy5zdXBwb3J0ZWQsIGRhdGE/LmRhdGEsIHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGljdGlvbmFyeShpZDogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckRvY3VtZW50TGFuZ3VhZ2UoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudD8uZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQubGFuZyA9IHRoaXMuX2Jlc3RNYXRjaGluZ0xhbmd1YWdlPy5zdXBwb3J0ZWQ/LlswXSA/PyB0aGlzLl9iZXN0TWF0Y2hpbmdMYW5ndWFnZT8ubG9jYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFRvUGFyYW1zID0gKHRva2VuT3JQYXJhbXM6IHN0cmluZyB8IExvY2FsaXplUGFyYW1zKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW5PclBhcmFtcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIERlc3RydWN0IHRoZSBwYXJhbXMgZnJvbSB0aGUgb2JqZWN0LlxuICAgICAgICAgICAgY29uc3Qge3Rva2VuLCBvcHRpb25hbCwgZGljdGlvbmFyeSwgZGF0YX0gPSB0b2tlbk9yUGFyYW1zO1xuXG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgYWxsIHBhcmFtZXRlcnMgYXJlIHZhbGlkXG4gICAgICAgICAgICAvLyBieSB0eXBlIHNhZmUgYWRkaW5nIHRoZW0uXG4gICAgICAgICAgICByZXR1cm4ge3Rva2VuOiB0b2tlbiwgb3B0aW9uYWw6IG9wdGlvbmFsID8/IGZhbHNlLCBkaWN0aW9uYXJ5OiBkaWN0aW9uYXJ5ID8/IG51bGwsIGRhdGE6IGRhdGEgPz8ge319O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBpcyBhIHN0cmluZyBmaWxsIGluIHRoZSBibGFua3MuXG4gICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuT3JQYXJhbXMsIG9wdGlvbmFsOiBmYWxzZSwgZGljdGlvbmFyeTogbnVsbCwgZGF0YToge319O1xuICAgIH07XG5cbn1cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBSXRFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQVksTUFBTSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUdyQyxNQUFNLE9BQU8sUUFBUTtJQWVqQixZQUFvQixRQUFpQixFQUNqQixVQUFxQixFQUNyQixlQUF1QyxFQUMzQixPQUF3QixFQUNSLE9BQWdCLEVBQ2QsU0FBb0IsRUFDVixXQUFpQztRQU56RSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNkLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFuQjdGLGlCQUFpQjtRQUNBLGtCQUFhLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksMkJBQTJCLENBQUM7UUFDbEYsd0JBQW1CLEdBQTZCLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMvRSwwQkFBcUIsR0FBMkIsSUFBSSxD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QUMsQ0FBQztJQUN6RyxDQUFDO0lBRU8sYUFBYSxDQUFDLEVBQWlCO1FBQ25DLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN2QjtRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPO1NBQ1Y7UUFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQ3BHLENBQUM7O3FHQTdKUSxRQUFRLHNKQW1CZSxNQUFNLDZCQUNOLFFBQVEsNkJBQ1Isa0JBQWtCO3lHQXJCekMsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVOzswQkFtQk0sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplQ29uZmlnLCBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMT0NBTElaRV9UUkFOU0ZPUk19IGZyb20gJy4vaW50ZXJmYWNlcy90cmFuc2Zvcm1zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnlEYXRhfSBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhJztcbmltcG9ydCB7TG9jYWxpemVUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9hYnN0cmFjdC50cmFuc2Zvcm0nO1xuaW1wb3J0IHtMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlcic7XG5pbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeX0gZnJvbSAnLi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MnO1xuaW1wb3J0IHtMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYW5ndWFnZXMsIFdJTkRPV30gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JhZ2VUb2tlbjogc3RyaW5nID0gdGhpcy5fY29uZmlnPy5zdG9yYWdlVG9rZW4gPz8gJ2JiLWxhbmd1YWdlLWRpY3Rpb25hcnktaWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2F2YWlsYWJsZUxhbmd1YWdlczogTG9jYWxpemVDb25maWdMYW5ndWFnZVtdID0gdGhpcz8uX2NvbmZpZz8ubGFuZ3VhZ2VzID8/IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Jlc3RNYXRjaGluZ0xhbmd1YWdlOiBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlID0gdGhpcy5yZXRyaWV2ZUJlc3RNYXRjaGluZ0xhbmd1YWdlKCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkZWREaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIExvY2FsaXplRGljdGlvbmFyeT4gPSBuZXcgTWFwPHN0cmluZywgTG9jYWxpemVEaWN0aW9uYXJ5PigpO1xuXG4gICAgLy8gQ3VycmVudCBkaWN0aW9uYXJ5LlxuICAgIHByaXZhdGUgX2N1cnJlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2NhbGl6ZURpY3Rpb25hcnkgfCBudWxsPihudWxsKTtcblxuICAgIC8vIFN0YXRlIGNoYW5nZXMuXG4gICAgZGljdGlvbmFyeUNoYW5nZXMkID0gdGhpcy5fY3VycmVudCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhbmd1YWdlczogTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21pc3NpbmdIYW5kbGVyOiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IExvY2FsaXplQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIF93aW5kb3c/OiBXaW5kb3csXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX1RSQU5TRk9STSkgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IExvY2FsaXplVHJhbnNmb3JtW10pIHtcbiAgICAgICAgdGhpcy5yZW5kZXJEb2N1bWVudExhbmd1YWdlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxhbmd1YWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcyA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZChpZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBsb2FkIGxhbmd1YWdlIHdpdGggaWQ6IFwiJHtpZH1cIi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuaGFzKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5nZXQoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlcz8uZmluZChsYW5ndWFnZSA9PiBsYW5ndWFnZT8uaWQgPT09IGlkKTtcbiAgICAgICAgaWYgKCFsYW5ndWFnZSB8fCAhbGFuZ3VhZ2U/LmRhdGEpIHtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgTm8gbGFuZ3VhZ2Ugd2FzIGZvdW5kIHdpdGggaWQ6IFwiJHtpZH1cIjsgRGVmYXVsdGluZyB0byBmaXJzdCBhdmFpbGFibGUgbGFuZ3VhZ2UuYCk7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUlkID0gdGhpcy5sYW5ndWFnZXM/LlswXT8uaWQgPz8gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQobGFuZ3VhZ2VJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5RGF0YVZhbHVlcyA9IGF3YWl0IGxhbmd1YWdlPy5kYXRhPy4oKTtcbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuY3JlYXRlRGljdGlvbmFyeShkaWN0aW9uYXJ5RGF0YVZhbHVlcywgbGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuc2V0KGlkLCBkaWN0aW9uYXJ5KTtcbiAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZEFsbExhbmd1YWdlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYW5ndWFnZSBvZiB0aGlzLmxhbmd1YWdlcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkKHRoaXMuY3VycmVudD8uaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgc3dpdGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbiwgcmVsb2FkPzogYm9vbGVhbiB9KSB7XG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSBhd2FpdCB0aGlzLmxvYWQoaWQpO1xuICAgICAgICB0aGlzLl9jdXJyZW50JC5uZXh0KGRpY3Rpb25hcnkpO1xuXG4gICAgICAgIGNvbnN0IGNhY2hlID0gb3B0aW9ucz8uY2FjaGUgPz8gdHJ1ZTtcbiAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5zZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4sIGRpY3Rpb25hcnk/LmlkLCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWxvYWQgPSBvcHRpb25zPy5yZWxvYWQgPz8gZmFsc2U7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3dpbmRvdz8ubG9jYXRpb24/LnJlbG9hZD8uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBzZWxlY3QoaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpY3Rpb25hcnkgd2l0aCBpZDogXCIke2lkfVwiIG5vdCBsb2FkZWQ7IExvYWQgZGljdGlvbmFyeSBmaXJzdCBiZWZvcmUgdXNpbmcgLnNlbGVjdCg6aWQpLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuZ2V0KGlkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gdGhpcy5zd2l0Y2godGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LmlkLCB7cmVsb2FkOiBmYWxzZSwgY2FjaGU6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX3N0b3JhZ2UuY29va2llLnJlbW92ZSh0aGlzLl9zdG9yYWdlVG9rZW4pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBkYXRhOiBMb2NhbGl6ZVBhcmFtc1snZGF0YSddID0ge30pIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl90cmFuc2Zvcm1zID8/IFtdKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudC5leGVjdXRlKHByZXZpb3VzLCBkYXRhLCB0aGlzKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRyYW5zbGF0ZSh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykge1xuICAgICAgICAvLyAxLiBDb252ZXJ0IHRvIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydFRvUGFyYW1zKHRva2VuT3JQYXJhbXMpO1xuXG4gICAgICAgIC8vIDIuIFRyeSB0byBmaW5kIHRoZSB0cmFuc2xhdGlvbiBpbiB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuZ2V0RGljdGlvbmFyeShwYXJhbXM/LmRpY3Rpb25hcnkpO1xuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHQgPSAhIWRpY3Rpb25hcnkgPyBkaWN0aW9uYXJ5LmdldChwYXJhbXM/LnRva2VuKSA6IG51bGw7XG5cbiAgICAgICAgLy8gMy4gVmVyaWZ5IHRoZSB0cmFuc2xhdGlvbiB3YXMgZm91bmQuXG4gICAgICAgIGlmICghc2VhcmNoUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlzc2luZ0hhbmRsZXIuaGFuZGxlKHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oc2VhcmNoUmVzdWx0LCBwYXJhbXM/LmRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV0cmlldmVCZXN0TWF0Y2hpbmdMYW5ndWFnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGFuZ3VhZ2VGcm9tU3RvcmFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLmdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLl9hdmFpbGFibGVMYW5ndWFnZXM/LlswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhbmd1YWdlRnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIC8vIEdldCBpZCBmcm9tIHRoZSBzdG9yYWdlLlxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX3N0b3JhZ2UuY29va2llLmdldDxzdHJpbmc+KHRoaXMuX3N0b3JhZ2VUb2tlbik7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgc3RvcmFnZSBpZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpIHtcbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCBicm93c2VyIGxhbmd1YWdlcyBhbmQgcmV0dXJuIHRoZVxuICAgICAgICAvLyBiZXN0IG1hdGNoaW5nIGxhbmd1YWdlLlxuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VzLmFsbC5tYXAoKHtjb2RlLCByZWdpb259KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBbY29kZSwgcmVnaW9uXS5maWx0ZXIoZGF0YSA9PiAhIWRhdGEpLmpvaW4oJy0nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uc3VwcG9ydGVkPy5pbmNsdWRlcyhsYW5ndWFnZUNvZGUpKTtcbiAgICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKS5maW5kKChfLCBpbmRleCkgPT4gaW5kZXggPT09IDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGljdGlvbmFyeShkYXRhOiBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhLCBsYW5ndWFnZTogTG9jYWxpemVDb25maWdMYW5ndWFnZSkge1xuICAgICAgICByZXR1cm4gbmV3IExvY2FsaXplRGljdGlvbmFyeShsYW5ndWFnZT8uaWQsIGxhbmd1YWdlPy5sb2NhbGUsIGxhbmd1YWdlPy5zdXBwb3J0ZWQsIGRhdGE/LmRhdGEsIHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGljdGlvbmFyeShpZDogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyRG9jdW1lbnRMYW5ndWFnZSgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5sYW5nID0gdGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LnN1cHBvcnRlZD8uWzBdID8/IHRoaXMuX2Jlc3RNYXRjaGluZ0xhbmd1YWdlPy5sb2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9QYXJhbXMgPSAodG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbk9yUGFyYW1zICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gRGVzdHJ1Y3QgdGhlIHBhcmFtcyBmcm9tIHRoZSBvYmplY3QuXG4gICAgICAgICAgICBjb25zdCB7dG9rZW4sIG9wdGlvbmFsLCBkaWN0aW9uYXJ5LCBkYXRhfSA9IHRva2VuT3JQYXJhbXM7XG5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBhbGwgcGFyYW1ldGVycyBhcmUgdmFsaWRcbiAgICAgICAgICAgIC8vIGJ5IHR5cGUgc2FmZSBhZGRpbmcgdGhlbS5cbiAgICAgICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuLCBvcHRpb25hbDogb3B0aW9uYWwgPz8gZmFsc2UsIGRpY3Rpb25hcnk6IGRpY3Rpb25hcnkgPz8gbnVsbCwgZGF0YTogZGF0YSA/PyB7fX07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgcGFyYW1ldGVyIGlzIGEgc3RyaW5nIGZpbGwgaW4gdGhlIGJsYW5rcy5cbiAgICAgICAgcmV0dXJuIHt0b2tlbjogdG9rZW5PclBhcmFtcywgb3B0aW9uYWw6IGZhbHNlLCBkaWN0aW9uYXJ5OiBudWxsLCBkYXRhOiB7fX07XG4gICAgfTtcblxufVxuIl19
|
|
@@ -70,9 +70,9 @@ export class BbLocalizeString {
|
|
|
70
70
|
];
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
-
BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
73
|
+
BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbTemplate]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbLocalizeString, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
77
|
args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
78
78
|
'class': 'bb-localize-string'
|
|
@@ -7,9 +7,9 @@ export class BbLocalizeTemplate {
|
|
|
7
7
|
this.name = null;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
11
|
-
BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
10
|
+
BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
11
|
+
BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[bbLocalizeTemplate]'
|
|
@@ -17,7 +17,8 @@ export * from './lib/transforms/interpolate.transform';
|
|
|
17
17
|
export * from './lib/transforms/reference.transform';
|
|
18
18
|
export * from './lib/views/localize-string/localize-string.component';
|
|
19
19
|
export * from './lib/views/localize-template.directive';
|
|
20
|
+
export * from './lib/locale.token';
|
|
20
21
|
export * from './lib/localize.service';
|
|
21
22
|
export * from './lib/localize.pipe';
|
|
22
23
|
export * from './lib/localize.module';
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvaGFuZGxlcnMuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3RyYW5zZm9ybXMuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy9sb3dlcmNhc2UuZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL3VwcGVyY2FzZS5mdW5jdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2FsaXphdGlvbnMvZW5nbGlzaC5sb2NhbGl6YXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9jYWxpemF0aW9ucy9kdXRjaC5sb2NhbGl6YXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGljdGlvbmFyeS9kaWN0aW9uYXJ5LmNvbnRleHQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2Zvcm1zL2Fic3RyYWN0LnRyYW5zZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2Zvcm1zL2ludGVycG9sYXRlLnRyYW5zZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2Zvcm1zL3JlZmVyZW5jZS50cmFuc2Zvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2NhbGUudG9rZW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2FsaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9jYWxpemUubW9kdWxlJztcbiJdfQ==
|
|
@@ -16,9 +16,9 @@ export class BbCurrencyMask {
|
|
|
16
16
|
this._inputMask.mask = this._masking.currency(currencyCode, options);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
BbCurrencyMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
20
|
-
BbCurrencyMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
19
|
+
BbCurrencyMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbCurrencyMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
BbCurrencyMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbCurrencyMask, selector: "input[bbCurrencyMask]", inputs: { currencyCode: ["bbCurrencyMask", "currencyCode"], options: ["bbCurrencyMaskOptions", "options"] }, usesOnChanges: true, ngImport: i0 });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbCurrencyMask, decorators: [{
|
|
22
22
|
type: Directive,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: 'input[bbCurrencyMask]'
|
|
@@ -16,9 +16,9 @@ export class BbDateMask {
|
|
|
16
16
|
this._inputMask.mask = this._masking.date(format, separator);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
BbDateMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
20
|
-
BbDateMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
19
|
+
BbDateMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDateMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
BbDateMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbDateMask, selector: "input[bbDateMask]", inputs: { format: ["bbDateMask", "format"], separator: ["bbDateMaskSeparator", "separator"] }, usesOnChanges: true, ngImport: i0 });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDateMask, decorators: [{
|
|
22
22
|
type: Directive,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: 'input[bbDateMask]'
|
|
@@ -94,9 +94,9 @@ export class BbInputMask {
|
|
|
94
94
|
this.inputMaskPlugin = null;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
98
|
-
BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
97
|
+
BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbInputMask, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbInputMask, selector: "input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]", inputs: { mask: ["bbInputMask", "mask"] }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)" } }, ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbInputMask, decorators: [{
|
|
100
100
|
type: Directive,
|
|
101
101
|
args: [{
|
|
102
102
|
selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'
|
|
@@ -5,14 +5,14 @@ import { NgModule } from '@angular/core';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class MaskingModule {
|
|
7
7
|
}
|
|
8
|
-
MaskingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
9
|
-
MaskingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
8
|
+
MaskingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: MaskingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
MaskingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: MaskingModule, declarations: [BbInputMask,
|
|
10
10
|
BbCurrencyMask,
|
|
11
11
|
BbDateMask], exports: [BbInputMask,
|
|
12
12
|
BbCurrencyMask,
|
|
13
13
|
BbDateMask] });
|
|
14
|
-
MaskingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
14
|
+
MaskingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: MaskingModule });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: MaskingModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
declarations: [
|
|
@@ -90,9 +90,9 @@ export class Masking {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
Masking.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
94
|
-
Masking.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
93
|
+
Masking.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Masking, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
94
|
+
Masking.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Masking, providedIn: 'root' });
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Masking, decorators: [{
|
|
96
96
|
type: Injectable,
|
|
97
97
|
args: [{
|
|
98
98
|
providedIn: 'root'
|
|
@@ -79,9 +79,9 @@ export class BbNotificationsItem {
|
|
|
79
79
|
this._zone.runOutsideAngular(() => this._timer = this.setTimeout(this.instance, this._speed));
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
83
|
-
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
82
|
+
BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbNotificationsItem, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbNotificationsItem, selector: "bb-notifications-item", inputs: { notification: "notification", dismissButtonText: "dismissButtonText" }, host: { attributes: { "role": "alert" }, properties: { "class": "this.getClass" } }, viewQueries: [{ propertyName: "progressElementRef", first: true, predicate: ["progress"], descendants: true }], ngImport: i0, template: "<div class=\"notification-content-wrapper\">\n <!--\n The icon for the notification.\n\n The icon is reflected by the type of the\n notification. Same goes for the color and\n background-color.\n -->\n <div [style.color]=\"notification?.color\"\n [style.background-color]=\"notification?.backgroundColor\"\n class=\"notification-icon-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 19.5\"\n class=\"notification-icon\">\n <path\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\n </path>\n </svg>\n\n <!--\n The circular progress for the notification.\n\n The progress is only visible when a timeout is\n set. The progress adapts to the time remaining\n for the notification.\n -->\n <svg *ngIf=\"notification?.timeout > 0\"\n class=\"notification-progress-ring\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\">\n <circle #progress\n [attr.stroke-dasharray]=\"progressStrokeArray\"\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\n [style.stroke]=\"notification?.color\"\n class=\"notification-progress-circle\"\n stroke-width=\"2\"\n fill=\"transparent\"\n r=\"19\"\n cx=\"20\"\n cy=\"20\">\n </circle>\n </svg>\n </div>\n\n <!--\n The content for the notification.\n\n This displays a string or a template based\n on the given parameter by the user.\n -->\n <div class=\"notification-content\">\n <ng-container *ngIf=\"isContentString; else templateContent\"\n [ngSwitch]=\"notification?.localize\">\n <ng-container *ngSwitchCase=\"true\">\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ notification?.content }}\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<!--\n The actions of the notification.\n\n All actions are displayed here and are\n based on the actions array the user provided.\n-->\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\n class=\"notification-actions\">\n <button *ngFor=\"let action of notification?.actions\"\n (click)=\"callActionAndDestroy(notification, action)\"\n type=\"button\"\n [class.destructive]=\"action?.type === 'cancel'\"\n class=\"notification-actions-button\">\n <span [ngSwitch]=\"notification?.localize\"\n class=\"notification-actions-button-highlight\">\n <ng-container *ngSwitchCase=\"true\">\n {{ action?.title | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ action?.title }}\n </ng-container>\n </span>\n </button>\n <button *ngIf=\"notification?.dismiss\"\n (click)=\"notification?.destroy()\"\n class=\"notification-actions-button destructive\"\n type=\"button\">\n <span class=\"notification-actions-button-highlight\">\n {{ notification?.dismissText || dismissButtonText }}\n </span>\n </button>\n</div>\n\n<!--\n The outlet for the notification content template ref.\n-->\n<ng-template #templateContent>\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\n</ng-template>\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i3.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbNotificationsItem, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
86
|
args: [{ selector: 'bb-notifications-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
87
87
|
'role': 'alert'
|
|
@@ -29,9 +29,9 @@ export class BbNotificationsList {
|
|
|
29
29
|
return { vertical: y ?? null, horizontal: x ?? null };
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
33
|
-
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
32
|
+
BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbNotificationsList, deps: [{ token: i1.NotificationsData }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbNotificationsList, selector: "bb-notifications-list", host: { attributes: { "role": "list" }, properties: { "style.justify-content": "this.horizontalPosition", "style.align-items": "this.verticalPosition" }, classAttribute: "bb-notifications-list" }, ngImport: i0, template: "<!--\n The notifications list.\n\n The list provides the animation effect for the\n incoming notifications.\n-->\n<div *ngIf=\"data?.data | async as notifications\"\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\n class=\"notifications-list-wrapper\">\n <!--\n The loop for the notifications.\n\n All notifications will be displayed here. They\n are wrapped within a wrapper which separates them.\n -->\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\n class=\"notifications-item-wrapper\">\n <bb-notifications-item [notification]=\"notification\"\n [dismissButtonText]=\"data?.dismissText\">\n </bb-notifications-item>\n </div>\n</div>\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbNotificationsItem, selector: "bb-notifications-item", inputs: ["notification", "dismissButtonText"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [notificationAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbNotificationsList, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{ selector: 'bb-notifications-list', animations: [notificationAnimation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
37
37
|
'class': 'bb-notifications-list',
|
|
@@ -17,10 +17,10 @@ export class NotificationsModule {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
21
|
-
NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
22
|
-
NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
20
|
+
NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: NotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: NotificationsModule, declarations: [BbNotificationsList, BbNotificationsItem], imports: [CommonModule, LocalizeModule] });
|
|
22
|
+
NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: NotificationsModule, imports: [CommonModule, LocalizeModule] });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: NotificationsModule, decorators: [{
|
|
24
24
|
type: NgModule,
|
|
25
25
|
args: [{
|
|
26
26
|
imports: [CommonModule, LocalizeModule],
|
|
@@ -129,9 +129,9 @@ export class Notifications {
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
133
|
-
Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
132
|
+
Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Notifications, deps: [{ token: i1.Platform }, { token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i2.Localize, optional: true }, { token: i3.NotificationsConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
133
|
+
Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Notifications });
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: Notifications, decorators: [{
|
|
135
135
|
type: Injectable
|
|
136
136
|
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i2.Localize, decorators: [{
|
|
137
137
|
type: Optional
|
|
@@ -2,19 +2,25 @@ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBindi
|
|
|
2
2
|
import { RECAPTCHA_CONFIG } from '../recaptcha.interface';
|
|
3
3
|
import { mixinGrouped } from '@bravobit/bb-foundation';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { LOCALIZE_ID } from '@bravobit/bb-foundation/localize';
|
|
5
6
|
import { Subscription } from 'rxjs';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "
|
|
8
|
+
import * as i1 from "@angular/cdk/platform";
|
|
9
|
+
import * as i2 from "../recaptcha-loader.service";
|
|
10
|
+
import * as i3 from "rxjs";
|
|
8
11
|
let nextUniqueId = 0;
|
|
9
12
|
class BbRecaptchaBase {
|
|
10
13
|
}
|
|
11
14
|
const BbRecaptchaMixinBase = mixinGrouped(BbRecaptchaBase);
|
|
12
15
|
export class RecaptchaComponent extends BbRecaptchaMixinBase {
|
|
13
|
-
constructor(_zone, _elementRef, _loader, _config) {
|
|
16
|
+
constructor(_zone, _platform, _renderer, _elementRef, _loader, _localizeId, _config) {
|
|
14
17
|
super();
|
|
15
18
|
this._zone = _zone;
|
|
19
|
+
this._platform = _platform;
|
|
20
|
+
this._renderer = _renderer;
|
|
16
21
|
this._elementRef = _elementRef;
|
|
17
22
|
this._loader = _loader;
|
|
23
|
+
this._localizeId = _localizeId;
|
|
18
24
|
this._config = _config;
|
|
19
25
|
// Host bindings.
|
|
20
26
|
this.id = `bb-recaptcha-${nextUniqueId++}`;
|
|
@@ -41,14 +47,8 @@ export class RecaptchaComponent extends BbRecaptchaMixinBase {
|
|
|
41
47
|
this.initializeProperties();
|
|
42
48
|
}
|
|
43
49
|
ngAfterViewInit() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this._grecaptcha = grecaptcha;
|
|
49
|
-
this.renderCaptchaElement();
|
|
50
|
-
});
|
|
51
|
-
this._subscriptions.add(subscription);
|
|
50
|
+
this.handleOnLoad();
|
|
51
|
+
this.handleLocaleChanges();
|
|
52
52
|
}
|
|
53
53
|
ngOnDestroy() {
|
|
54
54
|
// Reset the captcha.
|
|
@@ -132,16 +132,47 @@ export class RecaptchaComponent extends BbRecaptchaMixinBase {
|
|
|
132
132
|
this.type = this.type ?? this._config?.type;
|
|
133
133
|
this.badge = this.badge ?? this._config?.badge;
|
|
134
134
|
}
|
|
135
|
+
handleOnLoad() {
|
|
136
|
+
const subscription = this._loader.ready$.subscribe((grecaptcha) => {
|
|
137
|
+
if (grecaptcha == null || !(grecaptcha.render instanceof Function)) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
this._grecaptcha = grecaptcha;
|
|
141
|
+
this.renderCaptchaElement();
|
|
142
|
+
});
|
|
143
|
+
this._subscriptions.add(subscription);
|
|
144
|
+
}
|
|
145
|
+
handleLocaleChanges() {
|
|
146
|
+
const subscription = this._localizeId.subscribe(locale => this.onLocaleChanged(locale));
|
|
147
|
+
this._subscriptions.add(subscription);
|
|
148
|
+
}
|
|
149
|
+
onLocaleChanged(locale) {
|
|
150
|
+
const element = this._elementRef?.nativeElement ?? null;
|
|
151
|
+
if (!element || !this._platform.isBrowser) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const frame = element?.querySelector('iframe');
|
|
155
|
+
if (!frame) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const src = frame.getAttribute('src');
|
|
159
|
+
const currentLanguageId = src.match(/hl=(.*?)&/).pop();
|
|
160
|
+
if (currentLanguageId === locale) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const newSrc = src.replace(/hl=(.*?)&/, `hl=${locale}&`);
|
|
164
|
+
this._renderer.setAttribute(frame, 'src', newSrc);
|
|
165
|
+
}
|
|
135
166
|
}
|
|
136
|
-
RecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
137
|
-
RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
167
|
+
RecaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.RecaptchaLoader }, { token: LOCALIZE_ID }, { token: RECAPTCHA_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
+
RecaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: RecaptchaComponent, selector: "bb-recaptcha", inputs: { grouped: "grouped", id: "id", siteKey: "siteKey", tabIndex: "tabIndex", type: "type", size: "size", theme: "theme", badge: "badge", errorMode: "errorMode" }, outputs: { resolved: "resolved", error: "error" }, host: { properties: { "class.grouped": "grouped", "attr.id": "this.id" }, classAttribute: "bb-recaptcha" }, providers: [
|
|
138
169
|
{
|
|
139
170
|
provide: NG_VALUE_ACCESSOR,
|
|
140
171
|
useExisting: forwardRef(() => RecaptchaComponent),
|
|
141
172
|
multi: true
|
|
142
173
|
}
|
|
143
174
|
], exportAs: ["bbRecaptcha"], usesInheritance: true, ngImport: i0, template: "", styles: [".bb-recaptcha{display:block}.bb-recaptcha.grouped{margin-bottom:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: RecaptchaComponent, decorators: [{
|
|
145
176
|
type: Component,
|
|
146
177
|
args: [{ selector: 'bb-recaptcha', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'bbRecaptcha', providers: [
|
|
147
178
|
{
|
|
@@ -153,7 +184,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
153
184
|
'class': 'bb-recaptcha',
|
|
154
185
|
'[class.grouped]': 'grouped'
|
|
155
186
|
}, inputs: ['grouped'], preserveWhitespaces: false, template: "", styles: [".bb-recaptcha{display:block}.bb-recaptcha.grouped{margin-bottom:20px}\n"] }]
|
|
156
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type:
|
|
187
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.RecaptchaLoader }, { type: i3.Observable, decorators: [{
|
|
188
|
+
type: Inject,
|
|
189
|
+
args: [LOCALIZE_ID]
|
|
190
|
+
}] }, { type: undefined, decorators: [{
|
|
157
191
|
type: Optional
|
|
158
192
|
}, {
|
|
159
193
|
type: Inject,
|
|
@@ -182,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
182
216
|
}], error: [{
|
|
183
217
|
type: Output
|
|
184
218
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcmVjYXB0Y2hhL3NyYy9saWIvcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3JlY2FwdGNoYS9zcmMvbGliL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQTRDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkcsT0FBTyxFQUF1QixZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLGVBQWU7Q0FDcEI7QUFFRCxNQUFNLG9CQUFvQixHQUVwQixZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7QUF1QnBDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUE4QnhELFlBQW9CLEtBQWEsRUFDYixXQUF1QixFQUN2QixPQUF3QixFQUNjLE9BQXlCO1FBQy9FLEtBQUssRUFBRSxDQUFDO1FBSlEsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ2MsWUFBTyxH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RUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSiw0RUM1Q0wsRUFBQTsyRkRvRGEsa0JBQWtCO2tCQXJCOUIsU0FBUzsrQkFDSSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksWUFDM0IsYUFBYSxhQUNaO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixRQUNLO3dCQUNGLE9BQU8sRUFBRSxjQUFjO3dCQUN2QixpQkFBaUIsRUFBRSxTQUFTO3FCQUMvQixVQUNPLENBQUMsU0FBUyxDQUFDLHVCQUNFLEtBQUs7OzBCQW1DYixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQjs0Q0E5QmYsRUFBRTtzQkFBbEMsV0FBVzt1QkFBQyxTQUFTOztzQkFBRyxLQUFLO2dCQUdyQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JFQ0FQVENIQV9DT05GSUcsIFJlY2FwdGNoYUNvbmZpZywgUmVjYXB0Y2hhRXJyb3JQYXJhbWV0ZXJzfSBmcm9tICcuLi9yZWNhcHRjaGEuaW50ZXJmYWNlJztcbmltcG9ydCB7SXNHcm91cGVkQ29uc3RydWN0b3IsIG1peGluR3JvdXBlZH0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVjYXB0Y2hhTG9hZGVyfSBmcm9tICcuLi9yZWNhcHRjaGEtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuY2xhc3MgQmJSZWNhcHRjaGFCYXNlIHtcbn1cblxuY29uc3QgQmJSZWNhcHRjaGFNaXhpbkJhc2U6IElzR3JvdXBlZENvbnN0cnVjdG9yXG4gICAgJiB0eXBlb2YgQmJSZWNhcHRjaGFCYXNlXG4gICAgPSBtaXhpbkdyb3VwZWQoQmJSZWNhcHRjaGFCYXNlKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1yZWNhcHRjaGEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlY2FwdGNoYS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgZXhwb3J0QXM6ICdiYlJlY2FwdGNoYScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVjYXB0Y2hhQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLXJlY2FwdGNoYScsXG4gICAgICAgICdbY2xhc3MuZ3JvdXBlZF0nOiAnZ3JvdXBlZCdcbiAgICB9LFxuICAgIGlucHV0czogWydncm91cGVkJ10sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgUmVjYXB0Y2hhQ29tcG9uZW50IGV4dGVuZHMgQmJSZWNhcHRjaGFNaXhpbkJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIEhvc3QgYmluZGluZ3MuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgQElucHV0KCkgaWQ6IHN0cmluZyA9IGBiYi1yZWNhcHRjaGEtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHNpdGVLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0eXBlOiBSZUNhcHRjaGFWMi5UeXBlIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgc2l6ZTogUmVDYXB0Y2hhVjIuU2l6ZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRoZW1lOiBSZUNhcHRjaGFWMi5UaGVtZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGJhZGdlOiBSZUNhcHRjaGFWMi5CYWRnZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGVycm9yTW9kZTogJ2hhbmRsZWQnIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gICAgLy8gT3V0cHV0cy5cbiAgICBAT3V0cHV0KCkgcmVzb2x2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2FwdGNoYUVycm9yUGFyYW1ldGVycz4oKTtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSBfd2lkZ2V0SWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2dyZWNhcHRjaGE6IFJlQ2FwdGNoYVYyLlJlQ2FwdGNoYSB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2V4ZWN1dGVSZXF1ZXN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEZvcm0gbWV0aG9kcy5cbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xvYWRlcjogUmVjYXB0Y2hhTG9hZGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUkVDQVBUQ0hBX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnPzogUmVjYXB0Y2hhQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVByb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuX2xvYWRlci5yZWFkeSQuc3Vic2NyaWJlKChncmVjYXB0Y2hhOiBSZUNhcHRjaGFWMi5SZUNhcHRjaGEpID0+IHtcbiAgICAgICAgICAgIGlmIChncmVjYXB0Y2hhID09IG51bGwgfHwgIShncmVjYXB0Y2hhLnJlbmRlciBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZ3JlY2FwdGNoYSA9IGdyZWNhcHRjaGE7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckNhcHRjaGFFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFJlc2V0IHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcblxuICAgICAgICAvLyBVbnN1YnNjcmliZSBvZiByZWFkeSBkYXRhLlxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjYXB0Y2hhIGlzIGludmlzaWJsZS5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSAhPT0gJ2ludmlzaWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB3aWRnZXQgZXhpc3RzIGVsc2UgcmV0dXJuLlxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZVJlcXVlc3RlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLl9ncmVjYXB0Y2hhLmV4ZWN1dGUodGhpcy5fd2lkZ2V0SWQpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2dyZWNhcHRjaGEuZ2V0UmVzcG9uc2UodGhpcy5fd2lkZ2V0SWQpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkLmVtaXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBvblJlc29sdmUoZXZlbnQ6IHN0cmluZykge1xuICAgICAgICAvLyBFbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgdGhpcy5yZXNvbHZlZC5lbWl0KGV2ZW50KTtcblxuICAgICAgICAvLyBDYWxsIHRoZSBmb3JtIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5fb25DaGFuZ2U/LihldmVudCk7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZD8uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDYXB0Y2hhRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyczogUmVDYXB0Y2hhVjIuUGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIGJhZGdlOiB0aGlzLmJhZGdlLFxuICAgICAgICAgICAgc2l0ZWtleTogdGhpcy5zaXRlS2V5LFxuICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICAgICAgdGFiaW5kZXg6IHRoaXMudGFiSW5kZXgsXG4gICAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZTogc3RyaW5nKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShyZXNwb25zZSkpLFxuICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShudWxsKSlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5lcnJvck1vZGUgPT09ICdoYW5kbGVkJykge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1snZXJyb3ItY2FsbGJhY2snXSA9ICguLi5hcmdzOiBSZWNhcHRjaGFFcnJvclBhcmFtZXRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5lcnJvci5lbWl0KGFyZ3MpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aWRnZXRJZCA9IHRoaXMuX2dyZWNhcHRjaGEucmVuZGVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcGFyYW1ldGVycyk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENhcHRjaGFFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9ncmVjYXB0Y2hhLnJlc2V0KHRoaXMuX3dpZGdldElkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUHJvcGVydGllcygpIHtcbiAgICAgICAgdGhpcy5zaXRlS2V5ID0gdGhpcy5zaXRlS2V5ID8/IHRoaXMuX2NvbmZpZz8uc2l0ZUtleTtcbiAgICAgICAgdGhpcy50aGVtZSA9IHRoaXMudGhlbWUgPz8gdGhpcy5fY29uZmlnPy50aGVtZTtcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplID8/IHRoaXMuX2NvbmZpZz8uc2l6ZTtcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy50eXBlID8/IHRoaXMuX2NvbmZpZz8udHlwZTtcbiAgICAgICAgdGhpcy5iYWRnZSA9IHRoaXMuYmFkZ2UgPz8gdGhpcy5fY29uZmlnPy5iYWRnZTtcbiAgICB9XG5cbn1cbiIsIiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vcmVjYXB0Y2hhL3NyYy9saWIvcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3JlY2FwdGNoYS9zcmMvbGliL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQTRDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkcsT0FBTyxFQUF1QixZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRzdELE9BQU8sRUFBYSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRTlDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLGVBQWU7Q0FDcEI7QUFFRCxNQUFNLG9CQUFvQixHQUVwQixZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7QUF1QnBDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUE4QnhELFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixTQUFvQixFQUNwQixXQUF1QixFQUN2QixPQUF3QixFQUNILFdBQStCLEVBQ2QsT0FBeUI7UUFDL0UsS0FBSyxFQUFFLENBQUM7UUFQUSxVQUFL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dEQsQ0FBQzs7K0dBMUxRLGtCQUFrQixrSkFtQ1AsV0FBVyxhQUNDLGdCQUFnQjttR0FwQ3ZDLGtCQUFrQiw4V0FkaEI7UUFDUDtZQUNJLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osNEVDOUNMLEVBQUE7MkZEc0RhLGtCQUFrQjtrQkFyQjlCLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLGFBQWEsYUFDWjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osUUFDSzt3QkFDRixPQUFPLEVBQUUsY0FBYzt3QkFDdkIsaUJBQWlCLEVBQUUsU0FBUztxQkFDL0IsVUFDTyxDQUFDLFNBQVMsQ0FBQyx1QkFDRSxLQUFLOzswQkFxQ2IsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBakNmLEVBQUU7c0JBQWxDLFdBQVc7dUJBQUMsU0FBUzs7c0JBQUcsS0FBSztnQkFHckIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JFQ0FQVENIQV9DT05GSUcsIFJlY2FwdGNoYUNvbmZpZywgUmVjYXB0Y2hhRXJyb3JQYXJhbWV0ZXJzfSBmcm9tICcuLi9yZWNhcHRjaGEuaW50ZXJmYWNlJztcbmltcG9ydCB7SXNHcm91cGVkQ29uc3RydWN0b3IsIG1peGluR3JvdXBlZH0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TE9DQUxJWkVfSUR9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7UmVjYXB0Y2hhTG9hZGVyfSBmcm9tICcuLi9yZWNhcHRjaGEtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbmNsYXNzIEJiUmVjYXB0Y2hhQmFzZSB7XG59XG5cbmNvbnN0IEJiUmVjYXB0Y2hhTWl4aW5CYXNlOiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgdHlwZW9mIEJiUmVjYXB0Y2hhQmFzZVxuICAgID0gbWl4aW5Hcm91cGVkKEJiUmVjYXB0Y2hhQmFzZSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItcmVjYXB0Y2hhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZWNhcHRjaGEuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGV4cG9ydEFzOiAnYmJSZWNhcHRjaGEnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlY2FwdGNoYUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1yZWNhcHRjaGEnLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnZ3JvdXBlZCddLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYUNvbXBvbmVudCBleHRlbmRzIEJiUmVjYXB0Y2hhTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBIb3N0IGJpbmRpbmdzLlxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBgYmItcmVjYXB0Y2hhLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgdHlwZTogUmVDYXB0Y2hhVjIuVHlwZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNpemU6IFJlQ2FwdGNoYVYyLlNpemUgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSB0aGVtZTogUmVDYXB0Y2hhVjIuVGhlbWUgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBiYWRnZTogUmVDYXB0Y2hhVjIuQmFkZ2UgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBlcnJvck1vZGU6ICdoYW5kbGVkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICAgIC8vIE91dHB1dHMuXG4gICAgQE91dHB1dCgpIHJlc29sdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNhcHRjaGFFcnJvclBhcmFtZXRlcnM+KCk7XG5cbiAgICAvLyBEYXRhLlxuICAgIHByaXZhdGUgX3dpZGdldElkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9ncmVjYXB0Y2hhOiBSZUNhcHRjaGFWMi5SZUNhcHRjaGEgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9leGVjdXRlUmVxdWVzdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBGb3JtIG1ldGhvZHMuXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2FkZXI6IFJlY2FwdGNoYUxvYWRlcixcbiAgICAgICAgICAgICAgICBASW5qZWN0KExPQ0FMSVpFX0lEKSBwcml2YXRlIF9sb2NhbGl6ZUlkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChSRUNBUFRDSEFfQ09ORklHKSBwcml2YXRlIF9jb25maWc/OiBSZWNhcHRjaGFDb25maWcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPbkxvYWQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVMb2NhbGVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFJlc2V0IHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcblxuICAgICAgICAvLyBVbnN1YnNjcmliZSBvZiByZWFkeSBkYXRhLlxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjYXB0Y2hhIGlzIGludmlzaWJsZS5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSAhPT0gJ2ludmlzaWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB3aWRnZXQgZXhpc3RzIGVsc2UgcmV0dXJuLlxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZVJlcXVlc3RlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBjYXB0Y2hhLlxuICAgICAgICB0aGlzLl9ncmVjYXB0Y2hhLmV4ZWN1dGUodGhpcy5fd2lkZ2V0SWQpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2dyZWNhcHRjaGEuZ2V0UmVzcG9uc2UodGhpcy5fd2lkZ2V0SWQpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkLmVtaXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0Q2FwdGNoYUVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBvblJlc29sdmUoZXZlbnQ6IHN0cmluZykge1xuICAgICAgICAvLyBFbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgdGhpcy5yZXNvbHZlZC5lbWl0KGV2ZW50KTtcblxuICAgICAgICAvLyBDYWxsIHRoZSBmb3JtIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5fb25DaGFuZ2U/LihldmVudCk7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZD8uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDYXB0Y2hhRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyczogUmVDYXB0Y2hhVjIuUGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIGJhZGdlOiB0aGlzLmJhZGdlLFxuICAgICAgICAgICAgc2l0ZWtleTogdGhpcy5zaXRlS2V5LFxuICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICAgICAgdGFiaW5kZXg6IHRoaXMudGFiSW5kZXgsXG4gICAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgICdjYWxsYmFjayc6IChyZXNwb25zZTogc3RyaW5nKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShyZXNwb25zZSkpLFxuICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLm9uUmVzb2x2ZShudWxsKSlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5lcnJvck1vZGUgPT09ICdoYW5kbGVkJykge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1snZXJyb3ItY2FsbGJhY2snXSA9ICguLi5hcmdzOiBSZWNhcHRjaGFFcnJvclBhcmFtZXRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5lcnJvci5lbWl0KGFyZ3MpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aWRnZXRJZCA9IHRoaXMuX2dyZWNhcHRjaGEucmVuZGVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcGFyYW1ldGVycyk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENhcHRjaGFFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0SWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9ncmVjYXB0Y2hhLnJlc2V0KHRoaXMuX3dpZGdldElkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUHJvcGVydGllcygpIHtcbiAgICAgICAgdGhpcy5zaXRlS2V5ID0gdGhpcy5zaXRlS2V5ID8/IHRoaXMuX2NvbmZpZz8uc2l0ZUtleTtcbiAgICAgICAgdGhpcy50aGVtZSA9IHRoaXMudGhlbWUgPz8gdGhpcy5fY29uZmlnPy50aGVtZTtcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplID8/IHRoaXMuX2NvbmZpZz8uc2l6ZTtcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy50eXBlID8/IHRoaXMuX2NvbmZpZz8udHlwZTtcbiAgICAgICAgdGhpcy5iYWRnZSA9IHRoaXMuYmFkZ2UgPz8gdGhpcy5fY29uZmlnPy5iYWRnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU9uTG9hZCgpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5fbG9hZGVyLnJlYWR5JC5zdWJzY3JpYmUoKGdyZWNhcHRjaGE6IFJlQ2FwdGNoYVYyLlJlQ2FwdGNoYSkgPT4ge1xuICAgICAgICAgICAgaWYgKGdyZWNhcHRjaGEgPT0gbnVsbCB8fCAhKGdyZWNhcHRjaGEucmVuZGVyIGluc3RhbmNlb2YgRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9ncmVjYXB0Y2hhID0gZ3JlY2FwdGNoYTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FwdGNoYUVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUxvY2FsZUNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuX2xvY2FsaXplSWQuc3Vic2NyaWJlKGxvY2FsZSA9PiB0aGlzLm9uTG9jYWxlQ2hhbmdlZChsb2NhbGUpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTG9jYWxlQ2hhbmdlZChsb2NhbGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBlbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKTtcbiAgICAgICAgaWYgKCFmcmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3JjID0gZnJhbWUuZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgICAgICAgY29uc3QgY3VycmVudExhbmd1YWdlSWQgPSBzcmMubWF0Y2goL2hsPSguKj8pJi8pLnBvcCgpO1xuICAgICAgICBpZiAoY3VycmVudExhbmd1YWdlSWQgPT09IGxvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3U3JjID0gc3JjLnJlcGxhY2UoL2hsPSguKj8pJi8sIGBobD0ke2xvY2FsZX0mYCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShmcmFtZSwgJ3NyYycsIG5ld1NyYyk7XG4gICAgfVxuXG59XG4iLCIiXX0=
|