@provoly/dashboard 0.21.3 → 0.21.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/esm2022/lib/core/auth/geoAuth.service.mjs +29 -5
- package/esm2022/lib/core/components/select/select.component.mjs +13 -3
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +14 -6
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +8 -3
- package/esm2022/lib/core/i18n/en.translations.mjs +9 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +9 -3
- package/esm2022/lib/core/model/display-options.interface.mjs +24 -7
- package/esm2022/lib/core/store/item/item.effects.mjs +2 -2
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +12 -5
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +8 -2
- package/esm2022/presentation/components/presentation.component.mjs +9 -3
- package/esm2022/presentation/i18n/en.translations.mjs +2 -1
- package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
- package/esm2022/toolbox/components/delete/delete.component.mjs +29 -0
- package/esm2022/toolbox/components/share/share.component.mjs +69 -0
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +26 -0
- package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
- package/esm2022/toolbox/public-api.mjs +4 -1
- package/esm2022/toolbox/toolbox.model.mjs +22 -2
- package/esm2022/toolbox/toolbox.module.mjs +16 -4
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +27 -13
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -8
- package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +6 -5
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-presentation.mjs +11 -3
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +131 -7
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +37 -23
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +116 -29
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/auth/geoAuth.service.d.ts +5 -1
- package/lib/core/components/select/select.component.d.ts +2 -0
- package/lib/core/components/share/group-share/group-share.component.d.ts +2 -2
- package/lib/core/components/snackbar/snackbar.service.d.ts +2 -1
- package/lib/core/i18n/en.translations.d.ts +7 -0
- package/lib/core/i18n/fr.translations.d.ts +7 -1
- package/lib/core/model/display-options.interface.d.ts +3 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +1 -1
- package/package.json +19 -19
- package/presentation/components/presentation.component.d.ts +1 -0
- package/presentation/i18n/en.translations.d.ts +1 -0
- package/presentation/i18n/fr.translations.d.ts +1 -0
- package/styles/components/_o-draggable-menu.scss +8 -0
- package/toolbox/components/delete/delete.component.d.ts +19 -0
- package/toolbox/components/share/share.component.d.ts +25 -0
- package/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.d.ts +15 -0
- package/toolbox/public-api.d.ts +3 -0
- package/toolbox/toolbox.module.d.ts +12 -9
- package/widgets/widget-map/component/widget-map-layer.service.d.ts +4 -3
- package/widgets/widget-map/component/widget-map.component.d.ts +3 -5
|
@@ -1,23 +1,47 @@
|
|
|
1
1
|
import { Injectable, InjectionToken } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common/http";
|
|
4
|
+
import * as i2 from "../components/snackbar/snackbar.service";
|
|
5
|
+
import * as i3 from "../i18n/i18n.service";
|
|
4
6
|
export class PryGeoAuthService {
|
|
5
7
|
}
|
|
6
8
|
export const PRY_GEOAUTH_TOKEN = new InjectionToken('PRY_GEOAUTH_TOKEN');
|
|
9
|
+
const CONTENT_TYPE = 'Content-Type';
|
|
10
|
+
const ERROR_CONTENT_REGEXP = new RegExp('<ServiceException [\\S\\s]*>([\\S\\s]*)<\\/ServiceException>', 'gm');
|
|
7
11
|
export class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
8
|
-
constructor(httpClient) {
|
|
12
|
+
constructor(httpClient, snack, i18nService) {
|
|
9
13
|
super();
|
|
10
14
|
this.httpClient = httpClient;
|
|
15
|
+
this.snack = snack;
|
|
16
|
+
this.i18nService = i18nService;
|
|
11
17
|
}
|
|
12
18
|
customLoader(tile, src) {
|
|
13
19
|
this.httpClient.get(src, { observe: 'response', params: {}, responseType: 'blob' }).subscribe((blob) => {
|
|
14
|
-
|
|
20
|
+
if (blob.headers.has(CONTENT_TYPE) && (blob.headers.get(CONTENT_TYPE) ?? '').indexOf('text/xml') >= 0) {
|
|
21
|
+
blob.body.text().then((text) => {
|
|
22
|
+
const match = text.match(ERROR_CONTENT_REGEXP);
|
|
23
|
+
const reason = match[0].replace(/\r/g, '').replace(/\n/g, '').replace(/\s\s/g, ' ');
|
|
24
|
+
if (!!reason) {
|
|
25
|
+
console.error(`Geoserver error: ${reason}`);
|
|
26
|
+
this.snack.open({
|
|
27
|
+
type: 'error',
|
|
28
|
+
message: this.i18nService.instant('@pry.geoAuth.failure', { reason })
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.warn(`Strange geoserver return ${text}`);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
tile.getImage().src = URL.createObjectURL(blob.body);
|
|
38
|
+
}
|
|
15
39
|
});
|
|
16
40
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1.HttpClient }, { token: i2.PrySnackbarService }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
42
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
19
43
|
}
|
|
20
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
21
45
|
type: Injectable
|
|
22
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.PrySnackbarService }, { type: i3.PryI18nService }]; } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvQXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvYXV0aC9nZW9BdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSzNELE1BQU0sT0FBZ0IsaUJBQWlCO0NBRXRDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW9CLG1CQUFtQixDQUFDLENBQUM7QUFFNUYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0FBRXBDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUMsOERBQThELEVBQUUsSUFBSSxDQUFDLENBQUM7QUFHOUcsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjtJQUM3RCxZQUFvQixVQUFzQixFQUFVLEtBQXlCLEVBQVUsV0FBMkI7UUFDaEgsS0FBSyxFQUFFLENBQUM7UUFEVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFFbEgsQ0FBQztJQUVRLFlBQVksQ0FBQyxJQUFTLEVBQUUsR0FBVztRQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JHLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxNQUFNLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyRixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7d0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxFQUFFLENBQUMsQ0FBQzt3QkFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7NEJBQ2QsSUFBSSxFQUFFLE9BQU87NEJBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7eUJBQ3RFLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUNsRDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUM7YUFDdkQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBekJVLHdCQUF3QjttSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQcnlTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi9pMThuL2kxOG4uc2VydmljZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcnlHZW9BdXRoU2VydmljZSB7XG4gIGFic3RyYWN0IGN1c3RvbUxvYWRlcih0aWxlOiBhbnksIHNyYzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFBSWV9HRU9BVVRIX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFByeUdlb0F1dGhTZXJ2aWNlPignUFJZX0dFT0FVVEhfVE9LRU4nKTtcblxuY29uc3QgQ09OVEVOVF9UWVBFID0gJ0NvbnRlbnQtVHlwZSc7XG5cbmNvbnN0IEVSUk9SX0NPTlRFTlRfUkVHRVhQID0gbmV3IFJlZ0V4cCgnPFNlcnZpY2VFeGNlcHRpb24gW1xcXFxTXFxcXHNdKj4oW1xcXFxTXFxcXHNdKik8XFxcXC9TZXJ2aWNlRXhjZXB0aW9uPicsICdnbScpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJ5RGVmYXVsdEdlb0F1dGhTZXJ2aWNlIGV4dGVuZHMgUHJ5R2VvQXV0aFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIHByaXZhdGUgc25hY2s6IFByeVNuYWNrYmFyU2VydmljZSwgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY3VzdG9tTG9hZGVyKHRpbGU6IGFueSwgc3JjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHNyYywgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBwYXJhbXM6IHt9LCByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5zdWJzY3JpYmUoKGJsb2IpID0+IHtcbiAgICAgIGlmIChibG9iLmhlYWRlcnMuaGFzKENPTlRFTlRfVFlQRSkgJiYgKGJsb2IuaGVhZGVycy5nZXQoQ09OVEVOVF9UWVBFKSA/PyAnJykuaW5kZXhPZigndGV4dC94bWwnKSA+PSAwKSB7XG4gICAgICAgIGJsb2IuYm9keSEudGV4dCgpLnRoZW4oKHRleHQpID0+IHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goRVJST1JfQ09OVEVOVF9SRUdFWFApO1xuICAgICAgICAgIGNvbnN0IHJlYXNvbiA9IG1hdGNoIVswXS5yZXBsYWNlKC9cXHIvZywgJycpLnJlcGxhY2UoL1xcbi9nLCAnJykucmVwbGFjZSgvXFxzXFxzL2csICcgJyk7XG4gICAgICAgICAgaWYgKCEhcmVhc29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBHZW9zZXJ2ZXIgZXJyb3I6ICR7cmVhc29ufWApO1xuICAgICAgICAgICAgdGhpcy5zbmFjay5vcGVuKHtcbiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5pMThuU2VydmljZS5pbnN0YW50KCdAcHJ5Lmdlb0F1dGguZmFpbHVyZScsIHsgcmVhc29uIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBTdHJhbmdlIGdlb3NlcnZlciByZXR1cm4gJHt0ZXh0fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aWxlLmdldEltYWdlKCkuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iLmJvZHkhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -181,10 +181,20 @@ export class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
181
181
|
else {
|
|
182
182
|
this.overlayRef?.dispose();
|
|
183
183
|
this.overlayRef = undefined;
|
|
184
|
+
this.focused = false;
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
187
|
}
|
|
187
188
|
}
|
|
189
|
+
handleClick() {
|
|
190
|
+
if (!this.focused) {
|
|
191
|
+
this.onInputFocus();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
onInputFocus(force) {
|
|
195
|
+
this.toggle(force);
|
|
196
|
+
this.focused = true;
|
|
197
|
+
}
|
|
188
198
|
getOverlayConfig() {
|
|
189
199
|
const positionStrategy = this.overlay
|
|
190
200
|
.position()
|
|
@@ -223,7 +233,7 @@ export class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
223
233
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
224
234
|
multi: true
|
|
225
235
|
}
|
|
226
|
-
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"
|
|
236
|
+
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n (focus)=\"onInputFocus(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\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: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
|
|
227
237
|
}
|
|
228
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
229
239
|
type: Component,
|
|
@@ -233,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
233
243
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
234
244
|
multi: true
|
|
235
245
|
}
|
|
236
|
-
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"
|
|
246
|
+
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n (focus)=\"onInputFocus(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
237
247
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
238
248
|
type: Input
|
|
239
249
|
}], clearable: [{
|
|
@@ -281,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
281
291
|
}], elementRef: [{
|
|
282
292
|
type: Input
|
|
283
293
|
}] } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBRXJDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQWNqQixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBVTlELElBQWEsS0FBSyxDQUFDLEtBQStCO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBd0JELElBQWEsT0FBTyxDQUFD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TTtnQkFNTSxPQUFPO3NCQUFuQixLQUFLO2dCQWdCNEMsWUFBWTtzQkFBN0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNiLGFBQWE7c0JBQS9DLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG5cbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcnlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5U2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgaWQ6IG51bWJlciA9IHVuaXF1ZUlkKys7XG4gIF9pdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gIG1hdGNoaW5nSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZW4gPSBmYWxzZTtcbiAgYWN0aXZlRGVzY2VuZGFudDogbnVtYmVyID0gLTE7XG4gIHZhbHVlSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih1bmRlZmluZWQpO1xuICBzZWFyY2hTZWxlY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2l0ZW1zJC5uZXh0KGl0ZW1zID8/IFtdKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRm9ybSA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZD86IGFueTtcbiAgQElucHV0KCkgbmFtZT86IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaWNvblNpemUgPSBbMTQsIDE0XTtcbiAgQElucHV0KCkgYmluZEljb246IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQE91dHB1dCgpIHNlYXJjaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBfbG9hZGluZyA9IGZhbHNlO1xuICBoYXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGxvYWRpbmc7XG4gICAgaWYgKHRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIHRoaXMuaGFzTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgnb3B0aW9uc01vZGFsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvcHRpb25zTW9kYWwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JykgcHVibGljIHNlbGVjdEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQElucHV0KCkgZWxlbWVudFJlZiE6IEhUTUxEaXZFbGVtZW50O1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIG1vZGFsV2lkdGggPSAyMDA7XG5cbiAgZ2V0IG1vZGFsSWQoKSB7XG4gICAgcmV0dXJuICdzZWxlY3QtbW9kYWwtJyArIHRoaXMuaWQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1hdGNoaW5nSXRlbXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXMkLCB0aGlzLnNlYXJjaCQsIHRoaXMuc2VhcmNoU2VsZWN0ZWQkXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCB0ZXJtLCBhbHJlYWR5U2VsZWN0ZWRdKSA9PlxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSAmJiB0ZXJtICYmIHRlcm0ubGVuZ3RoID4gMCAmJiAhYWxyZWFkeVNlbGVjdGVkXG4gICAgICAgICAgPyBpdGVtcy5maWx0ZXIoKGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVZhbHVlID0gdGhpcy5iaW5kTGFiZWwgPyBpPy5bdGhpcy5iaW5kTGFiZWxdIDogaTtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1WYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGVybS50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGl0ZW1zXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKSlcbiAgICApO1xuICAgIHRoaXMudmFsdWVJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlJCwgdGhpcy5faXRlbXMkXSkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlLCBpdGVtc10pID0+XG4gICAgICAgICh0aGlzLm11bHRpcGxlID8gdmFsdWUgPz8gW10gOiAhIXZhbHVlID8gW3ZhbHVlXSA6IFtdKS5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBrZXlQcm9wID0gdGhpcy5iaW5kVmFsdWUgPz8gdGhpcy5iaW5kTGFiZWwgPz8gJ2lkJztcbiAgICAgICAgICByZXR1cm4gaXRlbXMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICA/IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGl0ZW1ba2V5UHJvcF0gPT09IHZhbHVlW2tleVByb3BdXG4gICAgICAgICAgICAgICAgOiBpdGVtW2tleVByb3BdID09PSB2YWx1ZVxuICAgICAgICAgICAgICA6IGl0ZW0gPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudmFsdWVJdGVtcyQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZExhYmVsID8gaXRlbVswXT8uW3RoaXMuYmluZExhYmVsXSA6IGl0ZW1bMF07XG4gICAgICAgICAgaWYgKGl0ZW1WYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2gkLm5leHQoaXRlbVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXF1YWwodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSwgb2JqKSkge1xuICAgICAgdGhpcy52YWx1ZSQubmV4dChvYmopO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSk7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5zZWFyY2gkLm5leHQob2JqKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZFZhbHVlID8gaXRlbT8uW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW07XG4gICAgY29uc3Qga2V5UHJvcCA9IHRoaXMuYmluZFZhbHVlID8/IHRoaXMuYmluZExhYmVsID8/ICdpZCc7XG4gICAgdGhpcy53cml0ZVZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSRcbiAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgLmZpbHRlcigoaTogYW55KSA9PiAodHlwZW9mIGl0ZW1WYWx1ZSA9PT0gJ29iamVjdCcgPyBpW2tleVByb3BdICE9PSBpdGVtVmFsdWVba2V5UHJvcF0gOiBpICE9PSBpdGVtVmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBjbGVhckFsbCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2goJycpO1xuICAgIHRoaXMuY2xlYXJlZC5uZXh0KCk7XG4gIH1cblxuICBzZWFyY2goJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaCQubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuc2VhcmNoZWQubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgc2VsZWN0KCRldmVudDogRXZlbnQsIGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZFZhbHVlID8gaXRlbT8uW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW07XG4gICAgY29uc3Qga2V5UHJvcCA9IHRoaXMuYmluZFZhbHVlID8/IHRoaXMuYmluZExhYmVsID8/ICdpZCc7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICghdGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoW2l0ZW1WYWx1ZV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBpdGVtVmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICA/IHRoaXMudmFsdWUkXG4gICAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgICAubWFwKCh2YWw6IGFueSkgPT4gdmFsW2tleVByb3BdKVxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhpdGVtVmFsdWVba2V5UHJvcF0pXG4gICAgICAgICAgICA6IHRoaXMudmFsdWUkLmdldFZhbHVlKCkuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNsZWFyKCRldmVudCwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFsuLi50aGlzLnZhbHVlJC5nZXRWYWx1ZSgpLCBpdGVtVmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoaXRlbVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy50b2dnbGUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQgPSBpbmRleDtcbiAgICBjb25zdCBpdGVtTGFiZWwgPSB0aGlzLmJpbmRMYWJlbCA/IGl0ZW0/Llt0aGlzLmJpbmRMYWJlbF0gOiBpdGVtO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KGl0ZW1MYWJlbCk7XG4gICAgdGhpcy5zZWFyY2hTZWxlY3RlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wZW4gIT09IGZvcmNlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZvcmNlICE9PSB1bmRlZmluZWQgPyBmb3JjZSA6ICF0aGlzLm9wZW47XG4gICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICB0aGlzLm1vZGFsV2lkdGggPSB0aGlzLl9lbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gNTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHRoaXMuZ2V0T3ZlcmxheUNvbmZpZygpKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VhcmNoJC5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm9wdGlvbnNNb2RhbCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH1cbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYS1wcnktc2VsZWN0X19vcHRpb25zJ10sXG4gICAgICBiYWNrZHJvcENsYXNzOiAnYS1wcnktc2VsZWN0X19iYWNrZHJvcCdcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBfZWxlbWVudFJlZigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZiA/PyB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VsZWN0RWxlbWVudFxuICBbY2xhc3MuLWZvY3VzZWRdPVwiZm9jdXNlZFwiXG4gIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gIHJvbGU9XCJjb21ib2JveFwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gIFthdHRyLmFyaWEtb3duc109XCJvcGVuID8gbW9kYWxJZCA6IG51bGxcIlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b2NvbXBsZXRlOyBlbHNlIG5vQXV0b2NvbXBsZXRlXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fc2VhcmNoXCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoJC5nZXRWYWx1ZSgpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwidG9nZ2xlKHRydWUpXCJcbiAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJvcGVuID8gbW9kYWxJZCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub0F1dG9jb21wbGV0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIodmFsdWVJdGVtcyQgfCBhc3luYykubGVuZ3RoID09PSAwOyBlbHNlIHNlbGVjdGVkVmFsdWVzXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYS1wcnktc2VsZWN0X19wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGVkVmFsdWVzPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlSXRlbXMkIHwgYXN5bmNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS1wcnktc2VsZWN0X192YWx1ZVwiIFtjbGFzcy5wcnktc2VsZWN0LWZvcm1dPVwiaXNGb3JtXCIgW2NsYXNzLi1tdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbSwgY2xlYXIgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGVMYWJlbD5cbiAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJiaW5kSWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25TdmddPVwiaXRlbVtiaW5kSWNvbl1cIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpY29uU2l6ZVswXVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVsxXVwiXG4gICAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmluZExhYmVsID8gaXRlbT8uW2JpbmRMYWJlbF0gOiBpdGVtIGFzIHZhbHVlXCI+XG4gICAgICAgICAgICAgICAge3sgKGkxOG5QcmVmaXggPz8gJycpICsgdmFsdWUgfCBpMThuIDogeyB3YXJuOiBmYWxzZSB9IH19XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibXVsdGlwbGUgJiYgY2xlYXJhYmxlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X19jbGVhclwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID7Dlzwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiYS1wcnktc2VsZWN0X19maWxsZXJcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fYWN0aW9uc1wiPlxuICAgIDxzcGFuICpuZ0lmPVwiY2xlYXJhYmxlXCIgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NsZWFyXCIgKGNsaWNrKT1cImNsZWFyQWxsKCRldmVudClcIiBhcmlhLWhpZGRlbj1cInRydWVcIj7Dlzwvc3Bhbj5cbiAgICA8cHJ5LWljb25cbiAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X190b2dnbGVcIlxuICAgICAgW2ljb25TdmddPVwib3BlbiA/ICdjaGV2cm9uX3RvcCcgOiAnY2hldnJvbl9ib3R0b20nXCJcbiAgICAgIFt3aWR0aF09XCJpY29uU2l6ZVswXVwiXG4gICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICA+PC9wcnktaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjb3B0aW9uc01vZGFsPlxuICA8ZGl2XG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Bwcnkuc2VsZWN0LmxhYmVsJyB8IGkxOG5cIlxuICAgIFtpZF09XCJtb2RhbElkXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ3NlbGVjdC1vcHRpb24tJyArIGFjdGl2ZURlc2NlbmRhbnRcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpcGxlXCJcbiAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYS1wcnktc2VsZWN0X19vcHRpb25zX19vcHRpb24gLWhpbnRcIiAqbmdJZj1cImxvYWRpbmdcIiBbc3R5bGUud2lkdGgucHhdPVwibW9kYWxXaWR0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vLXdpZGdldCBuby13aWRnZXRfX2xvYWRlclwiPlxuICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICBpY29uU3ZnPVwibG9hZGVyXCJcbiAgICAgICAgICBjbGFzcz1cIm5vLXdpZGdldF9fbG9hZGluZ1wiXG4gICAgICAgICAgW2FsdF09XCInQHByeS53aWRnZXQudGFyZ2V0LmxvYWRpbmcnIHwgaTE4blwiXG4gICAgICAgICAgW3dpZHRoXT1cIjMwXCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjMwXCJcbiAgICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8cD57eyAnQHByeS5zZWxlY3QubG9hZGluZycgfCBpMThuIH19Li4uPC9wPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtYXRjaGluZ0l0ZW1zJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RfX29wdGlvbnNfX29wdGlvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCIodmFsdWVJdGVtcyQgfCBhc3luYykuaW5jbHVkZXMoaXRlbSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCIodmFsdWVJdGVtcyQgfCBhc3luYykuaW5jbHVkZXMoaXRlbSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBpdGVtLCBpbmRleClcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJtb2RhbFdpZHRoXCJcbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBbaWRdPVwiJ3NlbGVjdC1vcHRpb24tJyArIGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBub1RlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbSwgY2xlYXIgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cImJpbmRJY29uXCJcbiAgICAgICAgICAgICAgW2ljb25TdmddPVwiaXRlbVtiaW5kSWNvbl1cIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiaWNvblNpemVbMF1cIlxuICAgICAgICAgICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJpbmRMYWJlbCA/IGl0ZW0/LltiaW5kTGFiZWxdIDogaXRlbSBhcyB2YWx1ZVwiPlxuICAgICAgICAgICAgICB7eyAoaTE4blByZWZpeCA/IGkxOG5QcmVmaXggOiAnJykgKyB2YWx1ZSB8IGkxOG4gOiB7IHdhcm46IGZhbHNlIH0gfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBRXJDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQWNqQixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBVTlELElBQWEsS0FBSyxDQUFDLEtBQStCO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBd0JELElBQWEsT0FBTyxDQUFD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QUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFNTSxPQUFPO3NCQUFuQixLQUFLO2dCQWdCNEMsWUFBWTtzQkFBN0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNiLGFBQWE7c0JBQS9DLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG5cbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcnlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5U2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgaWQ6IG51bWJlciA9IHVuaXF1ZUlkKys7XG4gIF9pdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gIG1hdGNoaW5nSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZW4gPSBmYWxzZTtcbiAgYWN0aXZlRGVzY2VuZGFudDogbnVtYmVyID0gLTE7XG4gIHZhbHVlSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih1bmRlZmluZWQpO1xuICBzZWFyY2hTZWxlY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2l0ZW1zJC5uZXh0KGl0ZW1zID8/IFtdKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRm9ybSA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZD86IGFueTtcbiAgQElucHV0KCkgbmFtZT86IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaWNvblNpemUgPSBbMTQsIDE0XTtcbiAgQElucHV0KCkgYmluZEljb246IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQE91dHB1dCgpIHNlYXJjaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBfbG9hZGluZyA9IGZhbHNlO1xuICBoYXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGxvYWRpbmc7XG4gICAgaWYgKHRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIHRoaXMuaGFzTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgnb3B0aW9uc01vZGFsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvcHRpb25zTW9kYWwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JykgcHVibGljIHNlbGVjdEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQElucHV0KCkgZWxlbWVudFJlZiE6IEhUTUxEaXZFbGVtZW50O1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIG1vZGFsV2lkdGggPSAyMDA7XG5cbiAgZ2V0IG1vZGFsSWQoKSB7XG4gICAgcmV0dXJuICdzZWxlY3QtbW9kYWwtJyArIHRoaXMuaWQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1hdGNoaW5nSXRlbXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXMkLCB0aGlzLnNlYXJjaCQsIHRoaXMuc2VhcmNoU2VsZWN0ZWQkXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCB0ZXJtLCBhbHJlYWR5U2VsZWN0ZWRdKSA9PlxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSAmJiB0ZXJtICYmIHRlcm0ubGVuZ3RoID4gMCAmJiAhYWxyZWFkeVNlbGVjdGVkXG4gICAgICAgICAgPyBpdGVtcy5maWx0ZXIoKGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVZhbHVlID0gdGhpcy5iaW5kTGFiZWwgPyBpPy5bdGhpcy5iaW5kTGFiZWxdIDogaTtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1WYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGVybS50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGl0ZW1zXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKSlcbiAgICApO1xuICAgIHRoaXMudmFsdWVJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlJCwgdGhpcy5faXRlbXMkXSkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlLCBpdGVtc10pID0+XG4gICAgICAgICh0aGlzLm11bHRpcGxlID8gdmFsdWUgPz8gW10gOiAhIXZhbHVlID8gW3ZhbHVlXSA6IFtdKS5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBrZXlQcm9wID0gdGhpcy5iaW5kVmFsdWUgPz8gdGhpcy5iaW5kTGFiZWwgPz8gJ2lkJztcbiAgICAgICAgICByZXR1cm4gaXRlbXMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICA/IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGl0ZW1ba2V5UHJvcF0gPT09IHZhbHVlW2tleVByb3BdXG4gICAgICAgICAgICAgICAgOiBpdGVtW2tleVByb3BdID09PSB2YWx1ZVxuICAgICAgICAgICAgICA6IGl0ZW0gPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudmFsdWVJdGVtcyQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZExhYmVsID8gaXRlbVswXT8uW3RoaXMuYmluZExhYmVsXSA6IGl0ZW1bMF07XG4gICAgICAgICAgaWYgKGl0ZW1WYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2gkLm5leHQoaXRlbVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXF1YWwodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSwgb2JqKSkge1xuICAgICAgdGhpcy52YWx1ZSQubmV4dChvYmopO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSk7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5zZWFyY2gkLm5leHQob2JqKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZFZhbHVlID8gaXRlbT8uW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW07XG4gICAgY29uc3Qga2V5UHJvcCA9IHRoaXMuYmluZFZhbHVlID8/IHRoaXMuYmluZExhYmVsID8/ICdpZCc7XG4gICAgdGhpcy53cml0ZVZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSRcbiAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgLmZpbHRlcigoaTogYW55KSA9PiAodHlwZW9mIGl0ZW1WYWx1ZSA9PT0gJ29iamVjdCcgPyBpW2tleVByb3BdICE9PSBpdGVtVmFsdWVba2V5UHJvcF0gOiBpICE9PSBpdGVtVmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBjbGVhckFsbCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2goJycpO1xuICAgIHRoaXMuY2xlYXJlZC5uZXh0KCk7XG4gIH1cblxuICBzZWFyY2goJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaCQubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuc2VhcmNoZWQubmV4dCgkZXZlbnQpO1xuICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgc2VsZWN0KCRldmVudDogRXZlbnQsIGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZFZhbHVlID8gaXRlbT8uW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW07XG4gICAgY29uc3Qga2V5UHJvcCA9IHRoaXMuYmluZFZhbHVlID8/IHRoaXMuYmluZExhYmVsID8/ICdpZCc7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICghdGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoW2l0ZW1WYWx1ZV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBpdGVtVmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICA/IHRoaXMudmFsdWUkXG4gICAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgICAubWFwKCh2YWw6IGFueSkgPT4gdmFsW2tleVByb3BdKVxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhpdGVtVmFsdWVba2V5UHJvcF0pXG4gICAgICAgICAgICA6IHRoaXMudmFsdWUkLmdldFZhbHVlKCkuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNsZWFyKCRldmVudCwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFsuLi50aGlzLnZhbHVlJC5nZXRWYWx1ZSgpLCBpdGVtVmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoaXRlbVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy50b2dnbGUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQgPSBpbmRleDtcbiAgICBjb25zdCBpdGVtTGFiZWwgPSB0aGlzLmJpbmRMYWJlbCA/IGl0ZW0/Llt0aGlzLmJpbmRMYWJlbF0gOiBpdGVtO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KGl0ZW1MYWJlbCk7XG4gICAgdGhpcy5zZWFyY2hTZWxlY3RlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wZW4gIT09IGZvcmNlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZvcmNlICE9PSB1bmRlZmluZWQgPyBmb3JjZSA6ICF0aGlzLm9wZW47XG4gICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICB0aGlzLm1vZGFsV2lkdGggPSB0aGlzLl9lbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gNTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHRoaXMuZ2V0T3ZlcmxheUNvbmZpZygpKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VhcmNoJC5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm9wdGlvbnNNb2RhbCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcbiAgICAgIHRoaXMub25JbnB1dEZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEZvY3VzKGZvcmNlPzogYm9vbGVhbikge1xuICAgIHRoaXMudG9nZ2xlKGZvcmNlKTtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH1cbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYS1wcnktc2VsZWN0X19vcHRpb25zJ10sXG4gICAgICBiYWNrZHJvcENsYXNzOiAnYS1wcnktc2VsZWN0X19iYWNrZHJvcCdcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBfZWxlbWVudFJlZigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZiA/PyB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VsZWN0RWxlbWVudFxuICBbY2xhc3MuLWZvY3VzZWRdPVwiZm9jdXNlZFwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygpXCJcbiAgcm9sZT1cImNvbWJvYm94XCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cIm9wZW4gPyBtb2RhbElkIDogbnVsbFwiXG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbj5cbiAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdXRvY29tcGxldGU7IGVsc2Ugbm9BdXRvY29tcGxldGVcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X19zZWFyY2hcIlxuICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2gkLmdldFZhbHVlKClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXModHJ1ZSlcIlxuICAgICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIm9wZW4gPyBtb2RhbElkIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vQXV0b2NvbXBsZXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih2YWx1ZUl0ZW1zJCB8IGFzeW5jKS5sZW5ndGggPT09IDA7IGVsc2Ugc2VsZWN0ZWRWYWx1ZXNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLXByeS1zZWxlY3RfX3BsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRWYWx1ZXM+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWVJdGVtcyQgfCBhc3luY1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX3ZhbHVlXCIgW2NsYXNzLnByeS1zZWxlY3QtZm9ybV09XCJpc0Zvcm1cIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGU7IGVsc2Ugbm9UZW1wbGF0ZUxhYmVsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtLCBjbGVhciB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZUxhYmVsPlxuICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJpbmRJY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN2Z109XCJpdGVtW2JpbmRJY29uXVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cImljb25TaXplWzBdXCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaW5kTGFiZWwgPyBpdGVtPy5bYmluZExhYmVsXSA6IGl0ZW0gYXMgdmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyAoaTE4blByZWZpeCA/PyAnJykgKyB2YWx1ZSB8IGkxOG4gOiB7IHdhcm46IGZhbHNlIH0gfX1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtdWx0aXBsZSAmJiBjbGVhcmFibGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+w5c8L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fZmlsbGVyXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2FjdGlvbnNcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNsZWFyYWJsZVwiIGNsYXNzPVwiYS1wcnktc2VsZWN0X19jbGVhclwiIChjbGljayk9XCJjbGVhckFsbCgkZXZlbnQpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+w5c8L3NwYW4+XG4gICAgPHByeS1pY29uXG4gICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fdG9nZ2xlXCJcbiAgICAgIFtpY29uU3ZnXT1cIm9wZW4gPyAnY2hldnJvbl90b3AnIDogJ2NoZXZyb25fYm90dG9tJ1wiXG4gICAgICBbd2lkdGhdPVwiaWNvblNpemVbMF1cIlxuICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVsxXVwiXG4gICAgPjwvcHJ5LWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI29wdGlvbnNNb2RhbD5cbiAgPGRpdlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidAcHJ5LnNlbGVjdC5sYWJlbCcgfCBpMThuXCJcbiAgICBbaWRdPVwibW9kYWxJZFwiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIidzZWxlY3Qtb3B0aW9uLScgKyBhY3RpdmVEZXNjZW5kYW50XCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJtdWx0aXBsZVwiXG4gICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fb3B0aW9uc19fb3B0aW9uIC1oaW50XCIgKm5nSWY9XCJsb2FkaW5nXCIgW3N0eWxlLndpZHRoLnB4XT1cIm1vZGFsV2lkdGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuby13aWRnZXQgbm8td2lkZ2V0X19sb2FkZXJcIj5cbiAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgaWNvblN2Zz1cImxvYWRlclwiXG4gICAgICAgICAgY2xhc3M9XCJuby13aWRnZXRfX2xvYWRpbmdcIlxuICAgICAgICAgIFthbHRdPVwiJ0Bwcnkud2lkZ2V0LnRhcmdldC5sb2FkaW5nJyB8IGkxOG5cIlxuICAgICAgICAgIFt3aWR0aF09XCIzMFwiXG4gICAgICAgICAgW2hlaWdodF09XCIzMFwiXG4gICAgICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHA+e3sgJ0Bwcnkuc2VsZWN0LmxvYWRpbmcnIHwgaTE4biB9fS4uLjwvcD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWF0Y2hpbmdJdGVtcyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X19vcHRpb25zX19vcHRpb25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiKHZhbHVlSXRlbXMkIHwgYXN5bmMpLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiKHZhbHVlSXRlbXMkIHwgYXN5bmMpLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KCRldmVudCwgaXRlbSwgaW5kZXgpXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwibW9kYWxXaWR0aFwiXG4gICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgW2lkXT1cIidzZWxlY3Qtb3B0aW9uLScgKyBpbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGU7IGVsc2Ugbm9UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW0sIGNsZWFyIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgKm5nSWY9XCJiaW5kSWNvblwiXG4gICAgICAgICAgICAgIFtpY29uU3ZnXT1cIml0ZW1bYmluZEljb25dXCJcbiAgICAgICAgICAgICAgW3dpZHRoXT1cImljb25TaXplWzBdXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVsxXVwiXG4gICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaW5kTGFiZWwgPyBpdGVtPy5bYmluZExhYmVsXSA6IGl0ZW0gYXMgdmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgKGkxOG5QcmVmaXggPyBpMThuUHJlZml4IDogJycpICsgdmFsdWUgfCBpMThuIDogeyB3YXJuOiBmYWxzZSB9IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -5,6 +5,7 @@ import { BehaviorSubject, map, combineLatest } from 'rxjs';
|
|
|
5
5
|
import { ConfigSelectors } from '../../../store/config/config.selectors';
|
|
6
6
|
import { ConfigActions } from '../../../store/config/config.actions';
|
|
7
7
|
import { SubscriptionnerDirective } from '../../../../dashboard/components/subscriptionner.directive';
|
|
8
|
+
import equal from 'fast-deep-equal/es6';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ngrx/store";
|
|
10
11
|
import * as i2 from "@angular/common";
|
|
@@ -16,13 +17,14 @@ export class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
16
17
|
super();
|
|
17
18
|
this.store = store;
|
|
18
19
|
this._cd = _cd;
|
|
19
|
-
this._onChange = (
|
|
20
|
+
this._onChange = (groups) => groups;
|
|
20
21
|
this._onTouched = () => { };
|
|
21
22
|
this._disabled = false;
|
|
23
|
+
// for tracking input
|
|
24
|
+
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
22
25
|
this.radioValue = PryVisibilityType.PRIVATE;
|
|
23
26
|
this.PryVisibilityType = PryVisibilityType;
|
|
24
27
|
this.visibilityTypes = [];
|
|
25
|
-
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
26
28
|
this.store.dispatch(ConfigActions.loadAccessGroups());
|
|
27
29
|
this.groups$ = this.store
|
|
28
30
|
.select(ConfigSelectors.accessGroups)
|
|
@@ -36,8 +38,14 @@ export class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
36
38
|
}));
|
|
37
39
|
}
|
|
38
40
|
writeValue(value) {
|
|
39
|
-
|
|
40
|
-
this.
|
|
41
|
+
value = value ?? [];
|
|
42
|
+
if (!equal(this.assignedGroupNames$.getValue(), value)) {
|
|
43
|
+
this._onChange(value);
|
|
44
|
+
this.assignedGroupNames$.next(value);
|
|
45
|
+
this.updateRadioValue(value);
|
|
46
|
+
this._onTouched();
|
|
47
|
+
this._cd.markForCheck();
|
|
48
|
+
}
|
|
41
49
|
}
|
|
42
50
|
registerOnChange(fn) {
|
|
43
51
|
this._onChange = fn;
|
|
@@ -78,7 +86,7 @@ export class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
78
86
|
}
|
|
79
87
|
changeGroups(groups) {
|
|
80
88
|
if (groups) {
|
|
81
|
-
this._onChange(
|
|
89
|
+
this._onChange(groups.map((group) => (typeof group === 'string' ? group : group.name)));
|
|
82
90
|
this._onTouched();
|
|
83
91
|
this._cd.markForCheck();
|
|
84
92
|
}
|
|
@@ -102,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
102
110
|
}
|
|
103
111
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n\n<ng-container *ngIf=\"radioValue === PryVisibilityType.RESTRICTED\">\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"(groups$ | async) ?? []\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"(assignedGroups$ | async) ?? []\"\n ></pry-chips-selector>\n</ng-container>\n" }]
|
|
104
112
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtc2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zaGFyZS9ncm91cC1zaGFyZS9ncm91cC1zaGFyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2dyb3VwLXNoYXJlL2dyb3VwLXNoYXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFTLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7QUFjdEcsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQVlsRSxZQUFvQixLQUFZLEVBQVUsR0FBc0I7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYeEQsY0FBUyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLEdBQUcsRUFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdyb3VwLCBQcnlWaXNpYmlsaXR5VHlwZSB9IGZyb20gJy4uL3NoYXJlLm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1ncm91cC1zaGFyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1zaGFyZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJ5R3JvdXBTaGFyZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUHJ5R3JvdXBTaGFyZUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFO1xuICBncm91cHMkOiBPYnNlcnZhYmxlPEdyb3VwW10+O1xuICBhc3NpZ25lZEdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBbXT47XG4gIFByeVZpc2liaWxpdHlUeXBlID0gUHJ5VmlzaWJpbGl0eVR5cGU7XG4gIHZpc2liaWxpdHlUeXBlczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogUHJ5VmlzaWJpbGl0eVR5cGUgfVtdID0gW107XG4gIGFzc2lnbmVkR3JvdXBOYW1lcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRBY2Nlc3NHcm91cHMoKSk7XG4gICAgdGhpcy5ncm91cHMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMuYWNjZXNzR3JvdXBzKVxuICAgICAgLnBpcGUobWFwKChncm91cHMpID0+IGdyb3Vwcy5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5uYW1lICE9PSAnQUxMJykpKTtcbiAgICB0aGlzLmFzc2lnbmVkR3JvdXBzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZ3JvdXBzJCwgdGhpcy5hc3NpZ25lZEdyb3VwTmFtZXMkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtncm91cHMsIGdyb3VwTmFtZXNdKSA9PlxuICAgICAgICAgIGdyb3Vwcy5maWx0ZXIoKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBOYW1lcy5pbmNsdWRlcyhncm91cC5uYW1lKTtcbiAgICAgICAgICB9KSA/PyBbXVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy52aXNpYmlsaXR5VHlwZXMgPSBPYmplY3Qua2V5cyhQcnlWaXNpYmlsaXR5VHlwZSkubWFwKChsYWJlbCkgPT4gKHtcbiAgICAgIGxhYmVsOiBsYWJlbC50b0xvd2VyQ2FzZSgpLFxuICAgICAgdmFsdWU6IFByeVZpc2liaWxpdHlUeXBlWzxrZXlvZiB0eXBlb2YgUHJ5VmlzaWJpbGl0eVR5cGU+bGFiZWxdXG4gICAgfSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQubmV4dCh2YWx1ZSA/PyBbXSk7XG4gICAgdGhpcy51cGRhdGVSYWRpb1ZhbHVlKHZhbHVlID8/IFtdKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB1cGRhdGVSYWRpb1ZhbHVlKGdyb3Vwczogc3RyaW5nW10pIHtcbiAgICBpZiAoZ3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gUHJ5VmlzaWJpbGl0eVR5cGUuUFJJVkFURTtcbiAgICB9IGVsc2UgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDEgJiYgZ3JvdXBzLmZpbmQoKGdyb3VwKSA9PiBncm91cCA9PT0gJ0FMTCcpKSB7XG4gICAgICB0aGlzLnJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5QVUJMSUM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFkaW9WYWx1ZSA9IFByeVZpc2liaWxpdHlUeXBlLlJFU1RSSUNURUQ7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlR3JvdXBzQmFzZWRPblJhZGlvVmFsdWUodHlwZTogUHJ5VmlzaWJpbGl0eVR5cGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb1ZhbHVlICE9PSB0eXBlKSB7XG4gICAgICB0aGlzLnJhZGlvVmFsdWUgPSB0eXBlO1xuXG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFOlxuICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBzKFtdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQcnlWaXNpYmlsaXR5VHlwZS5SRVNUUklDVEVEOlxuICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBzKHRoaXMuYXNzaWduZWRHcm91cE5hbWVzJC5nZXRWYWx1ZSgpID8/IFtdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQcnlWaXNpYmlsaXR5VHlwZS5QVUJMSUM6XG4gICAgICAgICAgdGhpcy5jaGFuZ2VHcm91cHMoWydBTEwnXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlR3JvdXBzKGdyb3VwczogKEdyb3VwIHwgc3RyaW5nKVtdIHwgbnVsbCkge1xuICAgIGlmIChncm91cHMpIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuYXNzaWduZWRHcm91cE5hbWVzJC5nZXRWYWx1ZSgpKTtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibS1mb3JtLXJhZGlvLWdyb3VwXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IHR5cGUgb2YgdmlzaWJpbGl0eVR5cGVzXCIgY2xhc3M9XCJtLWZvcm0tcmFkaW8tZ3JvdXBfX2l0ZW1cIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICBuYW1lPVwidmlzaWJpbGl0eVwiXG4gICAgICBbaWRdPVwidHlwZS5sYWJlbFwiXG4gICAgICBbdmFsdWVdPVwidHlwZS52YWx1ZVwiXG4gICAgICBbbmdNb2RlbF09XCJyYWRpb1ZhbHVlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUdyb3Vwc0Jhc2VkT25SYWRpb1ZhbHVlKCRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gICAgLz5cbiAgICA8bGFiZWwgW2Zvcl09XCJ0eXBlLmxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0Bwcnkuc2hhcmUuJyArIHR5cGUubGFiZWwgfCBpMThuIH19PC9sYWJlbD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJhZGlvVmFsdWUgPT09IFByeVZpc2liaWxpdHlUeXBlLlJFU1RSSUNURURcIj5cbiAgPHByeS1jaGlwcy1zZWxlY3RvclxuICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgIGJpbmRWYWx1ZT1cIm5hbWVcIlxuICAgIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuY29tcG9uZW50cy5jaGlwc1NlbGVjdG9yLnNoYXJlLlwiXG4gICAgaXRlbVRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuY29tcG9uZW50cy5jaGlwc1NlbGVjdG9yLnNoYXJlLmdyb3Vwcy5cIlxuICAgIFtzaG93QWN0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgW2l0ZW1zXT1cIihncm91cHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAoaXRlbXNDaGFuZ2VkKT1cImNoYW5nZUdyb3VwcygkZXZlbnQpXCJcbiAgICBbdXNlZEl0ZW1zXT1cIihhc3NpZ25lZEdyb3VwcyQgfCBhc3luYykgPz8gW11cIlxuICA+PC9wcnktY2hpcHMtc2VsZWN0b3I+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtc2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zaGFyZS9ncm91cC1zaGFyZS9ncm91cC1zaGFyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2dyb3VwLXNoYXJlL2dyb3VwLXNoYXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFTLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFjeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQWNsRSxZQUFvQixLQUFZLEVBQVUsR0FBc0I7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFieEQsY0FBUyxHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixxQkFBcUI7UUFDckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFeEQsZUFBVSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUd2QyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxvQkFBZSxHQUFrRCxFQUFFLENBQUM7UUFJbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ3RCLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO2FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUNELENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ1gsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLEtBQUssRUFBRSxpQkFBaUIsQ0FBaUMsS0FBSyxDQUFDO1NBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUEyQjtRQUNwQyxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWdCO1FBQy9CLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7U0FDN0M7YUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztTQUM1QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsNkJBQTZCLENBQUMsSUFBdUI7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUV2QixRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLGlCQUFpQixDQUFDLE9BQU87b0JBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3RCLE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVO29CQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDN0QsTUFBTTtnQkFDUixLQUFLLGlCQUFpQixDQUFDLE1BQU07b0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUMzQixNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBaUM7UUFDNUMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOytHQTVGVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwwQ0FUdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDbkJILHcrQkEyQkE7OzRGRExhLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFFaEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdyb3VwLCBQcnlWaXNpYmlsaXR5VHlwZSB9IGZyb20gJy4uL3NoYXJlLm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1ncm91cC1zaGFyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1zaGFyZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJ5R3JvdXBTaGFyZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUHJ5R3JvdXBTaGFyZUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoZ3JvdXBzOiBzdHJpbmdbXSkgPT4gZ3JvdXBzO1xuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLy8gZm9yIHRyYWNraW5nIGlucHV0XG4gIGFzc2lnbmVkR3JvdXBOYW1lcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgcmFkaW9WYWx1ZSA9IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEU7XG4gIGFzc2lnbmVkR3JvdXBzJDogT2JzZXJ2YWJsZTxHcm91cFtdPjtcbiAgZ3JvdXBzJDogT2JzZXJ2YWJsZTxHcm91cFtdPjtcbiAgUHJ5VmlzaWJpbGl0eVR5cGUgPSBQcnlWaXNpYmlsaXR5VHlwZTtcbiAgdmlzaWJpbGl0eVR5cGVzOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBQcnlWaXNpYmlsaXR5VHlwZSB9W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEFjY2Vzc0dyb3VwcygpKTtcbiAgICB0aGlzLmdyb3VwcyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5hY2Nlc3NHcm91cHMpXG4gICAgICAucGlwZShtYXAoKGdyb3VwcykgPT4gZ3JvdXBzLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm5hbWUgIT09ICdBTEwnKSkpO1xuICAgIHRoaXMuYXNzaWduZWRHcm91cHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5ncm91cHMkLCB0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyRdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2dyb3VwcywgZ3JvdXBOYW1lc10pID0+XG4gICAgICAgICAgZ3JvdXBzLmZpbHRlcigoZ3JvdXApID0+IHtcbiAgICAgICAgICAgIHJldHVybiBncm91cE5hbWVzLmluY2x1ZGVzKGdyb3VwLm5hbWUpO1xuICAgICAgICAgIH0pID8/IFtdXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnZpc2liaWxpdHlUeXBlcyA9IE9iamVjdC5rZXlzKFByeVZpc2liaWxpdHlUeXBlKS5tYXAoKGxhYmVsKSA9PiAoe1xuICAgICAgbGFiZWw6IGxhYmVsLnRvTG93ZXJDYXNlKCksXG4gICAgICB2YWx1ZTogUHJ5VmlzaWJpbGl0eVR5cGVbPGtleW9mIHR5cGVvZiBQcnlWaXNpYmlsaXR5VHlwZT5sYWJlbF1cbiAgICB9KSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gdmFsdWUgPz8gW107XG4gICAgaWYgKCFlcXVhbCh0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQuZ2V0VmFsdWUoKSwgdmFsdWUpKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQubmV4dCh2YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZVJhZGlvVmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBkYXRlUmFkaW9WYWx1ZShncm91cHM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucmFkaW9WYWx1ZSA9IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEU7XG4gICAgfSBlbHNlIGlmIChncm91cHMubGVuZ3RoID09PSAxICYmIGdyb3Vwcy5maW5kKChncm91cCkgPT4gZ3JvdXAgPT09ICdBTEwnKSkge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gUHJ5VmlzaWJpbGl0eVR5cGUuUFVCTElDO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5SRVNUUklDVEVEO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUdyb3Vwc0Jhc2VkT25SYWRpb1ZhbHVlKHR5cGU6IFByeVZpc2liaWxpdHlUeXBlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9WYWx1ZSAhPT0gdHlwZSkge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gdHlwZTtcblxuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUFJJVkFURTpcbiAgICAgICAgICB0aGlzLmNoYW5nZUdyb3VwcyhbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUkVTVFJJQ1RFRDpcbiAgICAgICAgICB0aGlzLmNoYW5nZUdyb3Vwcyh0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQuZ2V0VmFsdWUoKSA/PyBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUFVCTElDOlxuICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBzKFsnQUxMJ10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUdyb3Vwcyhncm91cHM6IChHcm91cCB8IHN0cmluZylbXSB8IG51bGwpIHtcbiAgICBpZiAoZ3JvdXBzKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZShncm91cHMubWFwKChncm91cCkgPT4gKHR5cGVvZiBncm91cCA9PT0gJ3N0cmluZycgPyBncm91cCA6IGdyb3VwLm5hbWUpKSk7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm0tZm9ybS1yYWRpby1ncm91cFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB0eXBlIG9mIHZpc2liaWxpdHlUeXBlc1wiIGNsYXNzPVwibS1mb3JtLXJhZGlvLWdyb3VwX19pdGVtXCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgbmFtZT1cInZpc2liaWxpdHlcIlxuICAgICAgW2lkXT1cInR5cGUubGFiZWxcIlxuICAgICAgW3ZhbHVlXT1cInR5cGUudmFsdWVcIlxuICAgICAgW25nTW9kZWxdPVwicmFkaW9WYWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VHcm91cHNCYXNlZE9uUmFkaW9WYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxuICAgIC8+XG4gICAgPGxhYmVsIFtmb3JdPVwidHlwZS5sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnNoYXJlLicgKyB0eXBlLmxhYmVsIHwgaTE4biB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyYWRpb1ZhbHVlID09PSBQcnlWaXNpYmlsaXR5VHlwZS5SRVNUUklDVEVEXCI+XG4gIDxwcnktY2hpcHMtc2VsZWN0b3JcbiAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICBiaW5kVmFsdWU9XCJuYW1lXCJcbiAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5zaGFyZS5cIlxuICAgIGl0ZW1UcmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5zaGFyZS5ncm91cHMuXCJcbiAgICBbc2hvd0FjdGlvbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgIFtpdGVtc109XCIoZ3JvdXBzJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgKGl0ZW1zQ2hhbmdlZCk9XCJjaGFuZ2VHcm91cHMoJGV2ZW50KVwiXG4gICAgW3VzZWRJdGVtc109XCIoYXNzaWduZWRHcm91cHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgPjwvcHJ5LWNoaXBzLXNlbGVjdG9yPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -24,7 +24,9 @@ export class PrySnackbarService {
|
|
|
24
24
|
pryMessage.action = !!pryMessage.action ? this.translate.instant(pryMessage.action) : undefined;
|
|
25
25
|
this.messageEvents$.next(pryMessage);
|
|
26
26
|
}, false);
|
|
27
|
-
this.messageEvents
|
|
27
|
+
this.messageEvents$
|
|
28
|
+
.pipe(distinctUntilChanged((p, v) => equal(p, v)))
|
|
29
|
+
.subscribe((message) => this.notMitigatedOpen(message));
|
|
28
30
|
}
|
|
29
31
|
setRootViewContainerRef(viewContainerRef) {
|
|
30
32
|
this.rootViewContainer = viewContainerRef;
|
|
@@ -32,7 +34,7 @@ export class PrySnackbarService {
|
|
|
32
34
|
dispatchOpenEvent(message) {
|
|
33
35
|
document.dispatchEvent(new CustomEvent(PRY_CUSTOMEVENT_TYPE, { detail: message }));
|
|
34
36
|
}
|
|
35
|
-
|
|
37
|
+
notMitigatedOpen(message) {
|
|
36
38
|
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
37
39
|
hasBackdrop: false
|
|
38
40
|
}));
|
|
@@ -54,6 +56,9 @@ export class PrySnackbarService {
|
|
|
54
56
|
}, message.timeout ?? DEFAULT_MSG_TIMEOUT);
|
|
55
57
|
return component.instance.actionClicked;
|
|
56
58
|
}
|
|
59
|
+
open(message) {
|
|
60
|
+
this.messageEvents$.next(message);
|
|
61
|
+
}
|
|
57
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, deps: [{ token: i1.Overlay }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
63
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
59
64
|
}
|
|
@@ -63,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
63
68
|
providedIn: 'root'
|
|
64
69
|
}]
|
|
65
70
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i2.PryI18nService }]; } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFckUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBS2pELE1BQU0sT0FBTyxrQkFBa0I7YUFFdEIsVUFBSyxHQUFHLENBQUMsQ0FBQztJQU1qQixZQUFvQixPQUFnQixFQUFVLFNBQXlCO1FBQW5ELFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUYvRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBR3RELCtFQUErRTtRQUMvRSxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLG9CQUFvQixFQUNwQixDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ1gsTUFBTSxVQUFVLEdBQUksQ0FBa0MsQ0FBQyxNQUFNLENBQUM7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bGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5U25hY2tNZXNzYWdlIH0gZnJvbSAnLi9zbmFjay5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJDb21wb25lbnQgfSBmcm9tICcuL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01TR19USU1FT1VUID0gMzAwMDtcbmV4cG9ydCBjb25zdCBERUxBWV9GT1JfSElERSA9IDIwMDtcblxuZXhwb3J0IGNvbnN0IFBSWV9DVVNUT01FVkVOVF9UWVBFID0gJ0Bwcnkuc25hY2snO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTbmFja2JhclNlcnZpY2Uge1xuICByb290Vmlld0NvbnRhaW5lcj86IFZpZXdDb250YWluZXJSZWY7XG4gIHN0YXRpYyBjb3VudCA9IDA7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcblxuICBwcml2YXRlIG1lc3NhZ2VFdmVudHMkID0gbmV3IFN1YmplY3Q8UHJ5U25hY2tNZXNzYWdlPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgLy8gQWxsb3dzIHRvIGFjY2VzcyBzbmFja2JhciBmcm9tIGphdmFzY3JpcHQsIGZvciBleGFtcGxlIHRvIG1hbmFnZSBWZWdhIGVycm9yc1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBQUllfQ1VTVE9NRVZFTlRfVFlQRSxcbiAgICAgIChlOiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwcnlNZXNzYWdlID0gKGUgYXMgQ3VzdG9tRXZlbnQ8UHJ5U25hY2tNZXNzYWdlPikuZGV0YWlsO1xuICAgICAgICBwcnlNZXNzYWdlLm1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByeU1lc3NhZ2UubWVzc2FnZSk7XG4gICAgICAgIHByeU1lc3NhZ2UuYWN0aW9uID0gISFwcnlNZXNzYWdlLmFjdGlvbiA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJ5TWVzc2FnZS5hY3Rpb24pIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm1lc3NhZ2VFdmVudHMkLm5leHQocHJ5TWVzc2FnZSk7XG4gICAgICB9LFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgdGhpcy5tZXNzYWdlRXZlbnRzJFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKHAsIHYpID0+IGVxdWFsKHAsIHYpKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHRoaXMubm90TWl0aWdhdGVkT3BlbihtZXNzYWdlKSk7XG4gIH1cblxuICBzZXRSb290Vmlld0NvbnRhaW5lclJlZih2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdGhpcy5yb290Vmlld0NvbnRhaW5lciA9IHZpZXdDb250YWluZXJSZWY7XG4gIH1cblxuICBkaXNwYXRjaE9wZW5FdmVudChtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UpIHtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChQUllfQ1VTVE9NRVZFTlRfVFlQRSwgeyBkZXRhaWw6IG1lc3NhZ2UgfSkpO1xuICB9XG5cbiAgbm90TWl0aWdhdGVkT3BlbihtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UpOiBPYnNlcnZhYmxlPHZvaWQ+IHwgbnVsbCB7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlXG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgY29tcG9uZW50UG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChQcnlTbmFja2JhckNvbXBvbmVudCwgdGhpcy5yb290Vmlld0NvbnRhaW5lcik7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChjb21wb25lbnRQb3J0YWwpO1xuXG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmRhdGEgPSBtZXNzYWdlO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZS5saXN0SW5kZXggPSBQcnlTbmFja2JhclNlcnZpY2UuY291bnQrKztcbiAgICBjb21wb25lbnQuaW5zdGFuY2UuYWN0aW9uQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qIEZpcnN0IGhpZGUgY29tcG9uZW50IHNvIGl0IHVzZXMgYW5pbWF0aW9uICovXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UuaGlkZGVuRnJvbUFjdGlvbiA9IHRydWU7XG4gICAgICBQcnlTbmFja2JhclNlcnZpY2UuY291bnQtLTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8qIHRoZW4gY2xlYW4gYnkgcmVtb3ZpbmcgaXQgKi9cbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIGNvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgICB9LCBERUxBWV9GT1JfSElERSk7XG4gICAgfSwgbWVzc2FnZS50aW1lb3V0ID8/IERFRkFVTFRfTVNHX1RJTUVPVVQpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkO1xuICB9XG5cbiAgb3BlbihtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UpIHtcbiAgICB0aGlzLm1lc3NhZ2VFdmVudHMkLm5leHQobWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|