@alfresco/adf-core 7.0.0-alpha.9-13357533609 → 7.0.0-alpha.9-13367447514
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/language-menu/language-menu.component.mjs +7 -4
- package/esm2022/lib/language-menu/language-picker.component.mjs +21 -4
- package/esm2022/lib/notifications/components/notification-history.component.mjs +8 -16
- package/fesm2022/adf-core.mjs +33 -20
- package/fesm2022/adf-core.mjs.map +1 -1
- package/lib/language-menu/language-menu.component.d.ts +3 -1
- package/lib/language-menu/language-picker.component.d.ts +8 -2
- package/lib/notifications/components/notification-history.component.d.ts +2 -4
- package/lib/notifications/components/notification-history.component.scss +78 -65
- package/lib/styles/_mat-selectors.scss +0 -1
- package/package.json +3 -3
- package/schematics/migrations/schematics/migrations/collection.json +8 -8
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { Component, EventEmitter, Output } from '@angular/core';
|
|
17
|
+
import { Component, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core';
|
|
18
18
|
import { LanguageService } from './service/language.service';
|
|
19
19
|
import { CommonModule } from '@angular/common';
|
|
20
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
20
|
+
import { MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
22
|
import * as i1 from "./service/language.service";
|
|
23
23
|
import * as i2 from "@angular/common";
|
|
@@ -34,7 +34,7 @@ export class LanguageMenuComponent {
|
|
|
34
34
|
this.languageService.changeLanguage(language);
|
|
35
35
|
}
|
|
36
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LanguageMenuComponent, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: LanguageMenuComponent, isStandalone: true, selector: "adf-language-menu", outputs: { changedLanguage: "changedLanguage" }, ngImport: i0, template: `
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: LanguageMenuComponent, isStandalone: true, selector: "adf-language-menu", outputs: { changedLanguage: "changedLanguage" }, viewQueries: [{ propertyName: "menuItems", predicate: MatMenuItem, descendants: true }], ngImport: i0, template: `
|
|
38
38
|
<button mat-menu-item *ngFor="let language of languages$ | async" [attr.lang]="language.key" (click)="changeLanguage(language)">
|
|
39
39
|
{{ language.label }}
|
|
40
40
|
</button>
|
|
@@ -54,5 +54,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
54
54
|
}]
|
|
55
55
|
}], ctorParameters: () => [{ type: i1.LanguageService }], propDecorators: { changedLanguage: [{
|
|
56
56
|
type: Output
|
|
57
|
+
}], menuItems: [{
|
|
58
|
+
type: ViewChildren,
|
|
59
|
+
args: [MatMenuItem]
|
|
57
60
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2xhbmd1YWdlLW1lbnUvbGFuZ3VhZ2UtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVlwRSxNQUFNLE9BQU8scUJBQXFCO0lBVTlCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVRwRCx1Q0FBdUM7UUFFdkMsb0JBQWUsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFRM0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjLENBQUMsUUFBc0I7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FqQlEscUJBQXFCO2tHQUFyQixxQkFBcUIsNEpBS2hCLFdBQVcsZ0RBWGY7Ozs7S0FJVCwyREFMUyxZQUFZLGdOQUFFLGFBQWE7OzJGQU81QixxQkFBcUI7a0JBVmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFFBQVEsRUFBRTs7OztLQUlUO2lCQUNKO29GQUlHLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExhbmd1YWdlSXRlbSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9sYW5ndWFnZS1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0TWVudUl0ZW0sIE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtbGFuZ3VhZ2UtbWVudScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIGxhbmd1YWdlcyQgfCBhc3luY1wiIFthdHRyLmxhbmddPVwibGFuZ3VhZ2Uua2V5XCIgKGNsaWNrKT1cImNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlKVwiPlxuICAgICAgICAgICAge3sgbGFuZ3VhZ2UubGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZU1lbnVDb21wb25lbnQge1xuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxhbmd1YWdlIGNoYW5nZSAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNoYW5nZWRMYW5ndWFnZTogRXZlbnRFbWl0dGVyPExhbmd1YWdlSXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPExhbmd1YWdlSXRlbT4oKTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTWF0TWVudUl0ZW0pXG4gICAgbWVudUl0ZW1zOiBRdWVyeUxpc3Q8TWF0TWVudUl0ZW0+O1xuXG4gICAgbGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUl0ZW1bXT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VzJCA9IGxhbmd1YWdlU2VydmljZS5sYW5ndWFnZXMkO1xuICAgIH1cblxuICAgIGNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlOiBMYW5ndWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkTGFuZ3VhZ2UuZW1pdChsYW5ndWFnZSk7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { Component, EventEmitter, Output } from '@angular/core';
|
|
17
|
+
import { Component, EventEmitter, Output, QueryList, ViewChild } from '@angular/core';
|
|
18
18
|
import { CommonModule } from '@angular/common';
|
|
19
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
19
|
+
import { MatMenu, MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
|
20
20
|
import { TranslateModule } from '@ngx-translate/core';
|
|
21
21
|
import { LanguageMenuComponent } from './language-menu.component';
|
|
22
22
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -28,8 +28,16 @@ export class LanguagePickerComponent {
|
|
|
28
28
|
constructor() {
|
|
29
29
|
this.changedLanguage = new EventEmitter();
|
|
30
30
|
}
|
|
31
|
+
ngAfterViewInit() {
|
|
32
|
+
const menuItems = this.languageMenuComponent.menuItems.filter((menuItem) => menuItem !== undefined);
|
|
33
|
+
const menuItemsQueryList = new QueryList();
|
|
34
|
+
menuItemsQueryList.reset(menuItems);
|
|
35
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
36
|
+
this.menu._allItems = menuItemsQueryList;
|
|
37
|
+
this.menu.ngAfterContentInit();
|
|
38
|
+
}
|
|
31
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LanguagePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: LanguagePickerComponent, isStandalone: true, selector: "adf-picker-button", outputs: { changedLanguage: "changedLanguage" }, ngImport: i0, template: `
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: LanguagePickerComponent, isStandalone: true, selector: "adf-picker-button", outputs: { changedLanguage: "changedLanguage" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["langMenu"], descendants: true }, { propertyName: "menuItem", first: true, predicate: MatMenuItem, descendants: true }, { propertyName: "languageMenuComponent", first: true, predicate: LanguageMenuComponent, descendants: true }], ngImport: i0, template: `
|
|
33
41
|
<button mat-menu-item [matMenuTriggerFor]="langMenu">
|
|
34
42
|
<mat-icon>language</mat-icon>
|
|
35
43
|
{{ 'ADF.LANGUAGE' | translate }}
|
|
@@ -57,5 +65,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
57
65
|
}]
|
|
58
66
|
}], propDecorators: { changedLanguage: [{
|
|
59
67
|
type: Output
|
|
68
|
+
}], menu: [{
|
|
69
|
+
type: ViewChild,
|
|
70
|
+
args: ['langMenu']
|
|
71
|
+
}], menuItem: [{
|
|
72
|
+
type: ViewChild,
|
|
73
|
+
args: [MatMenuItem]
|
|
74
|
+
}], languageMenuComponent: [{
|
|
75
|
+
type: ViewChild,
|
|
76
|
+
args: [LanguageMenuComponent]
|
|
60
77
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvbGFuZ3VhZ2UtbWVudS9sYW5ndWFnZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFnQnZELE1BQU0sT0FBTyx1QkFBdUI7SUFkcEM7UUFnQlcsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztLQW1CN0Q7SUFSRyxlQUFlO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNwRyxNQUFNLGtCQUFrQixHQUFHLElBQUksU0FBUyxFQUFlLENBQUM7UUFDeEQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0FwQlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMlBBT3JCLFdBQVcsd0ZBR1gscUJBQXFCLGdEQXBCdEI7Ozs7Ozs7O0tBUVQsMkRBVFMsWUFBWSw4QkFBRSxhQUFhLDZ2QkFBRSxlQUFlLDRGQUFFLHFCQUFxQiwyRkFBRSxhQUFhOzsyRkFXbkYsdUJBQXVCO2tCQWRuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLENBQUM7b0JBQzdGLFFBQVEsRUFBRTs7Ozs7Ozs7S0FRVDtpQkFDSjs4QkFHVSxlQUFlO3NCQURyQixNQUFNO2dCQUlQLElBQUk7c0JBREgsU0FBUzt1QkFBQyxVQUFVO2dCQUlyQixRQUFRO3NCQURQLFNBQVM7dUJBQUMsV0FBVztnQkFJdEIscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlSXRlbSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9sYW5ndWFnZS1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9sYW5ndWFnZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXBpY2tlci1idXR0b24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBMYW5ndWFnZU1lbnVDb21wb25lbnQsIE1hdEljb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGFuZ01lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5sYW5ndWFnZTwvbWF0LWljb24+XG4gICAgICAgICAgICB7eyAnQURGLkxBTkdVQUdFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNsYW5nTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxhZGYtbGFuZ3VhZ2UtbWVudSAoY2hhbmdlZExhbmd1YWdlKT1cImNoYW5nZWRMYW5ndWFnZS5lbWl0KCRldmVudClcIiAvPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2hhbmdlZExhbmd1YWdlID0gbmV3IEV2ZW50RW1pdHRlcjxMYW5ndWFnZUl0ZW0+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdsYW5nTWVudScpXG4gICAgbWVudTogTWF0TWVudTtcblxuICAgIEBWaWV3Q2hpbGQoTWF0TWVudUl0ZW0pXG4gICAgbWVudUl0ZW06IE1hdE1lbnVJdGVtO1xuXG4gICAgQFZpZXdDaGlsZChMYW5ndWFnZU1lbnVDb21wb25lbnQpXG4gICAgbGFuZ3VhZ2VNZW51Q29tcG9uZW50OiBMYW5ndWFnZU1lbnVDb21wb25lbnQ7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IHRoaXMubGFuZ3VhZ2VNZW51Q29tcG9uZW50Lm1lbnVJdGVtcy5maWx0ZXIoKG1lbnVJdGVtKSA9PiBtZW51SXRlbSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1zUXVlcnlMaXN0ID0gbmV3IFF1ZXJ5TGlzdDxNYXRNZW51SXRlbT4oKTtcbiAgICAgICAgbWVudUl0ZW1zUXVlcnlMaXN0LnJlc2V0KG1lbnVJdGVtcyk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgICB0aGlzLm1lbnUuX2FsbEl0ZW1zID0gbWVudUl0ZW1zUXVlcnlMaXN0O1xuICAgICAgICB0aGlzLm1lbnUubmdBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -36,8 +36,7 @@ import * as i4 from "@angular/material/menu";
|
|
|
36
36
|
import * as i5 from "@ngx-translate/core";
|
|
37
37
|
import * as i6 from "@angular/material/icon";
|
|
38
38
|
import * as i7 from "@angular/material/badge";
|
|
39
|
-
import * as i8 from "@angular/material/
|
|
40
|
-
import * as i9 from "@angular/material/divider";
|
|
39
|
+
import * as i8 from "@angular/material/divider";
|
|
41
40
|
export class NotificationHistoryComponent {
|
|
42
41
|
static { this.MAX_NOTIFICATION_STACK_LENGTH = 100; }
|
|
43
42
|
static { this.NOTIFICATION_STORAGE = 'notification-history'; }
|
|
@@ -78,20 +77,11 @@ export class NotificationHistoryComponent {
|
|
|
78
77
|
onMenuOpened() {
|
|
79
78
|
this.createPagination();
|
|
80
79
|
}
|
|
81
|
-
onKeyPress(event) {
|
|
82
|
-
this.closeUserModal(event);
|
|
83
|
-
}
|
|
84
|
-
closeUserModal($event) {
|
|
85
|
-
if ($event.keyCode === 27) {
|
|
86
|
-
this.trigger.closeMenu();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
80
|
markAsRead() {
|
|
90
81
|
this.notifications = [];
|
|
91
82
|
this.paginatedNotifications = [];
|
|
92
83
|
this.storageService.removeItem(NotificationHistoryComponent.NOTIFICATION_STORAGE);
|
|
93
84
|
this.createPagination();
|
|
94
|
-
this.trigger.closeMenu();
|
|
95
85
|
}
|
|
96
86
|
createPagination() {
|
|
97
87
|
this.pagination = {
|
|
@@ -102,7 +92,8 @@ export class NotificationHistoryComponent {
|
|
|
102
92
|
};
|
|
103
93
|
this.paginatedNotifications = this.notifications.slice(0, this.pagination.skipCount);
|
|
104
94
|
}
|
|
105
|
-
loadMore() {
|
|
95
|
+
loadMore($event) {
|
|
96
|
+
$event.stopPropagation();
|
|
106
97
|
this.pagination.skipCount = this.pagination.maxItems + this.pagination.skipCount;
|
|
107
98
|
this.pagination.hasMoreItems = this.notifications.length > this.pagination.skipCount;
|
|
108
99
|
this.paginatedNotifications = this.notifications.slice(0, this.pagination.skipCount);
|
|
@@ -110,14 +101,15 @@ export class NotificationHistoryComponent {
|
|
|
110
101
|
hasMoreNotifications() {
|
|
111
102
|
return this.pagination?.hasMoreItems;
|
|
112
103
|
}
|
|
113
|
-
onNotificationClick(notification) {
|
|
104
|
+
onNotificationClick(notification, $event) {
|
|
105
|
+
$event.stopPropagation();
|
|
114
106
|
if (notification.clickCallBack) {
|
|
115
107
|
notification.clickCallBack(notification.args);
|
|
116
108
|
this.trigger.closeMenu();
|
|
117
109
|
}
|
|
118
110
|
}
|
|
119
111
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NotificationHistoryComponent, deps: [{ token: i1.NotificationService }, { token: i2.StorageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: NotificationHistoryComponent, isStandalone: true, selector: "adf-notification-history", inputs: { menuPositionX: "menuPositionX", menuPositionY: "menuPositionY", maxNotifications: "maxNotifications" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div (keyup)=\"onKeyPress($event)\" tabindex=\"-1\" role=\"button\" class=\"adf-notification-history-container\">\n <button mat-button\n [matMenuTriggerFor]=\"menu\"\n aria-hidden=\"false\"\n [attr.aria-label]=\"'NOTIFICATIONS.OPEN_HISTORY' | translate\"\n title=\"{{ 'NOTIFICATIONS.OPEN_HISTORY' | translate }}\"\n class=\"adf-notification-history-menu_button\"\n id=\"adf-notification-history-open-button\"\n (menuOpened)=\"onMenuOpened()\">\n <mat-icon matBadge=\"⁠\"\n [matBadgeHidden]=\"!notifications.length\"\n class=\"adf-notification-history-menu_button-icon\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\">notifications\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\"\n [xPosition]=\"menuPositionX\"\n [yPosition]=\"menuPositionY\"\n id=\"adf-notification-history-menu\"\n class=\"adf-notification-history-menu adf-notification-history-menu-panel\">\n <div class=\"adf-notification-history-list\"\n role=\"button\"\n tabindex=\"0\"\n (keyup.enter)=\"$event.stopPropagation()\"\n (click)=\"$event.stopPropagation()\">\n <div mat-subheader role=\"menuitem\">\n <span class=\"adf-notification-history-menu-title\">{{ 'NOTIFICATIONS.TITLE' | translate }}</span>\n <button *ngIf=\"notifications.length\"\n id=\"adf-notification-history-mark-as-read\"\n class=\"adf-notification-history-mark-as-read\"\n mat-icon-button\n title=\"{{ 'NOTIFICATIONS.MARK_AS_READ' | translate }}\"\n (click)=\"markAsRead()\">\n <mat-icon>done_all</mat-icon>\n </button>\n </div>\n\n <mat-divider />\n\n <mat-list role=\"menuitem\">\n <ng-container *ngIf=\"notifications.length; else empty_list_template\">\n <mat-list-item *ngFor=\"let notification of paginatedNotifications\"\n class=\"adf-notification-history-menu-item\"\n (click)=\"onNotificationClick(notification)\">\n <div *ngIf=\"notification.initiator; else no_avatar\"\n matListItemAvatar\n [outerHTML]=\"notification.initiator | usernameInitials : 'adf-notification-initiator-pic'\"></div>\n <ng-template #no_avatar>\n <mat-icon matListItemLine\n class=\"adf-notification-history-menu-initiator\">{{notification.icon}}</mat-icon>\n </ng-template>\n <div class=\"adf-notification-history-menu-item-content\">\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-message\"\n *ngFor=\"let message of notification.messages\"\n matListItemLine [title]=\"message\">{{ message }}</p>\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-date\"\n matListItemLine> {{notification.datetime | adfTimeAgo}} </p>\n </div>\n </mat-list-item>\n </ng-container>\n <ng-template #empty_list_template>\n <mat-list-item id=\"adf-notification-history-component-no-message\"\n class=\"adf-notification-history-menu-no-message\">\n <p class=\"adf-notification-history-menu-no-message-text\" matListItemLine>{{ 'NOTIFICATIONS.NO_MESSAGE' | translate }}</p>\n </mat-list-item>\n </ng-template>\n </mat-list>\n\n <mat-divider />\n\n <div class=\"adf-notification-history-load-more\" role=\"menuitem\" *ngIf=\"hasMoreNotifications()\">\n <button mat-button (click)=\"loadMore()\">\n {{ 'NOTIFICATIONS.LOAD_MORE' | translate }}\n </button>\n </div>\n </div>\n </mat-menu>\n</div>\n", styles: [".adf-notification-history-container{margin-top:1px}.adf-notification-history-list .adf-notification-history-menu-item-content-wrapper{height:100%;display:flex;align-items:center}.adf-notification-history-list .mdc-list-item__secondary-text:before{height:auto}.adf-notification-history-menu-item-content{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;padding:0 0 0 16px}.adf-notification-history-menu-item-content p{line-height:16px;margin-bottom:0;color:var(--theme-sidenav-user-menu-color)}.adf-notification-history-menu-title{font-size:14px;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu_button.mat-mdc-button{border-radius:90%;padding:0;min-width:40px;height:40px}.adf-notification-history-menu_button.mat-mdc-button .adf-notification-history-menu_button-icon{margin-right:0;font-size:24px;height:24px;width:24px;color:var(--theme-text-color)}.adf-notification-history-list .mat-mdc-subheader{display:flex;justify-content:space-between;align-items:center}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-item{cursor:pointer;height:72px;align-items:center;padding-left:16px}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-item:focus{outline:none;background:var(--adf-theme-background-hover-color)}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-item:hover{background-color:var(--adf-theme-background-hover-color)}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-message:is(p),.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-no-message:is(p){font-size:var(--theme-body-1-font-size)}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-no-message-text{font-size:16px;color:var(--theme-sidenav-user-menu-color);margin-bottom:0;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-date.adf-notification-history-menu-text:is(p){font-size:var(--theme-caption-font-size)}.adf-notification-history-menu:has(.adf-notification-history-list) .adf-notification-history-menu-initiator{margin:4px}.adf-notification-initiator-pic{min-width:40px;background:var(--theme-accent-color);display:inline-block;height:40px;border-radius:100px;text-align:center;font-weight:bolder;font-size:var(--theme-adf-picture-1-font-size);text-transform:uppercase;vertical-align:middle;line-height:40px;color:var(--adf-theme-mat-grey-color-a200)}.adf-notification-history-load-more{display:flex;justify-content:center;padding:10px}.adf-notification-history-load-more button{width:100%}.adf-notification-history-mark-as-read{margin:4px 0}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel{min-width:320px;max-height:500px}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content{padding:0}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content .mat-mdc-list{padding:8px 0 0}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content .mat-mdc-list .mat-mdc-list-item-unscoped-content{display:flex}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content .mat-mdc-list .mdc-list-item__content{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "directive", type: i8.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i8.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TimeAgoPipe, name: "adfTimeAgo" }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: NotificationHistoryComponent, isStandalone: true, selector: "adf-notification-history", inputs: { menuPositionX: "menuPositionX", menuPositionY: "menuPositionY", maxNotifications: "maxNotifications" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<button mat-button\n [matMenuTriggerFor]=\"menu\"\n aria-hidden=\"false\"\n [attr.aria-label]=\"'NOTIFICATIONS.OPEN_HISTORY' | translate\"\n title=\"{{ 'NOTIFICATIONS.OPEN_HISTORY' | translate }}\"\n class=\"adf-notification-history-menu_button\"\n id=\"adf-notification-history-open-button\"\n (menuOpened)=\"onMenuOpened()\">\n <mat-icon matBadge=\"⁠\"\n [matBadgeHidden]=\"!notifications.length\"\n class=\"adf-notification-history-menu_button-icon\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\">notifications\n </mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\"\n [xPosition]=\"menuPositionX\"\n [yPosition]=\"menuPositionY\"\n id=\"adf-notification-history-menu\"\n class=\"adf-notification-history-menu adf-notification-history-menu-panel\">\n <div class=\"adf-notification-history-list-header\">\n <span class=\"adf-notification-history-menu-title\">{{ 'NOTIFICATIONS.TITLE' | translate }}</span>\n <button mat-menu-item\n *ngIf=\"notifications.length\"\n id=\"adf-notification-history-mark-as-read\"\n class=\"adf-notification-history-mark-as-read\"\n title=\"{{ 'NOTIFICATIONS.MARK_AS_READ' | translate }}\"\n (click)=\"markAsRead()\">\n <mat-icon class=\"adf-notification-history-mark-as-read-icon\">done_all</mat-icon>\n </button>\n </div>\n\n <mat-divider/>\n\n <div class=\"adf-notification-history-item-list\">\n <ng-container *ngIf=\"notifications.length; else empty_list_template\">\n <button mat-menu-item\n *ngFor=\"let notification of paginatedNotifications\"\n (click)=\"onNotificationClick(notification, $event)\"\n class=\"adf-notification-history-menu-item\">\n <div class=\"adf-notification-history-menu-item-content\">\n <div *ngIf=\"notification.initiator; else no_avatar\"\n [outerHTML]=\"notification.initiator | usernameInitials : 'adf-notification-initiator-pic'\"></div>\n <ng-template #no_avatar>\n <mat-icon class=\"adf-notification-history-menu-initiator\">\n {{ notification.icon }}\n </mat-icon>\n </ng-template>\n <div class=\"adf-notification-history-menu-item-content-message\">\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-message\"\n *ngFor=\"let message of notification.messages\"\n [title]=\"message\">{{ message }}</p>\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-date\"\n > {{ notification.datetime | adfTimeAgo }} </p>\n </div>\n </div>\n </button>\n </ng-container>\n <ng-template #empty_list_template>\n <p mat-menu-item id=\"adf-notification-history-component-no-message\"\n class=\"adf-notification-history-menu-no-message-text\">\n {{ 'NOTIFICATIONS.NO_MESSAGE' | translate }}\n </p>\n </ng-template>\n </div>\n\n <mat-divider/>\n\n <div class=\"adf-notification-history-load-more\" *ngIf=\"hasMoreNotifications()\">\n <button mat-menu-item (click)=\"loadMore($event)\">\n {{ 'NOTIFICATIONS.LOAD_MORE' | translate }}\n </button>\n </div>\n</mat-menu>\n", styles: [".adf-notification-history-menu-title{font-size:14px;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu_button.mat-mdc-button{border-radius:90%;padding:0;min-width:40px;height:40px;margin-top:1px}.adf-notification-history-menu_button.mat-mdc-button .adf-notification-history-menu_button-icon{margin-right:0;font-size:24px;height:24px;width:24px;color:var(--theme-text-color)}.adf-notification-history-menu .adf-notification-history-list-header{padding:10.5px 16px;display:flex;justify-content:space-between;align-items:center}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read{display:flex;padding:10px;width:auto;margin:4px 0}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:hover,.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:focus,.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:active{background:none}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read-icon{margin:0;color:inherit}.adf-notification-history-menu .adf-notification-history-menu-title{line-height:28px}.adf-notification-history-menu .adf-notification-history-item-list{padding-top:8px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item{cursor:pointer;height:72px;align-items:center;display:block;padding:0 14px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content{height:100%;display:flex;align-items:center}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content-message{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;overflow:hidden;padding:0 0 0 16px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content-message p{line-height:normal;margin:0;color:var(--theme-sidenav-user-menu-color)}.adf-notification-history-menu .adf-notification-history-menu-item:focus{outline:none;background:var(--adf-theme-background-hover-color)}.adf-notification-history-menu .adf-notification-history-menu-item:hover{background-color:var(--adf-theme-background-hover-color)}.adf-notification-history-menu .adf-notification-history-menu-message:is(p){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--theme-body-1-font-size)}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-no-message-text{color:var(--theme-sidenav-user-menu-color);margin:0;padding:12px 16px;opacity:inherit;border:none}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-no-message-text span{font-size:16px;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu .adf-notification-history-menu-date.adf-notification-history-menu-text:is(p){font-size:var(--theme-caption-font-size);text-indent:3px}.adf-notification-history-menu .adf-notification-history-menu-initiator{margin:4px}.adf-notification-initiator-pic{min-width:40px;background:var(--theme-accent-color);display:inline-block;height:40px;border-radius:100px;text-align:center;font-weight:bolder;font-size:var(--theme-adf-picture-1-font-size);text-transform:uppercase;vertical-align:middle;line-height:40px;color:var(--adf-theme-mat-grey-color-a200)}.adf-notification-history-load-more{display:flex;justify-content:center;padding:10px}.adf-notification-history-load-more button{justify-content:center;width:100%;min-height:36px}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel{min-width:320px;max-height:500px}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TimeAgoPipe, name: "adfTimeAgo" }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
121
113
|
}
|
|
122
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NotificationHistoryComponent, decorators: [{
|
|
123
115
|
type: Component,
|
|
@@ -133,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
133
125
|
TimeAgoPipe,
|
|
134
126
|
InitialUsernamePipe,
|
|
135
127
|
MatSnackBarModule
|
|
136
|
-
], encapsulation: ViewEncapsulation.None, template: "<
|
|
128
|
+
], encapsulation: ViewEncapsulation.None, template: "<button mat-button\n [matMenuTriggerFor]=\"menu\"\n aria-hidden=\"false\"\n [attr.aria-label]=\"'NOTIFICATIONS.OPEN_HISTORY' | translate\"\n title=\"{{ 'NOTIFICATIONS.OPEN_HISTORY' | translate }}\"\n class=\"adf-notification-history-menu_button\"\n id=\"adf-notification-history-open-button\"\n (menuOpened)=\"onMenuOpened()\">\n <mat-icon matBadge=\"⁠\"\n [matBadgeHidden]=\"!notifications.length\"\n class=\"adf-notification-history-menu_button-icon\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\">notifications\n </mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\"\n [xPosition]=\"menuPositionX\"\n [yPosition]=\"menuPositionY\"\n id=\"adf-notification-history-menu\"\n class=\"adf-notification-history-menu adf-notification-history-menu-panel\">\n <div class=\"adf-notification-history-list-header\">\n <span class=\"adf-notification-history-menu-title\">{{ 'NOTIFICATIONS.TITLE' | translate }}</span>\n <button mat-menu-item\n *ngIf=\"notifications.length\"\n id=\"adf-notification-history-mark-as-read\"\n class=\"adf-notification-history-mark-as-read\"\n title=\"{{ 'NOTIFICATIONS.MARK_AS_READ' | translate }}\"\n (click)=\"markAsRead()\">\n <mat-icon class=\"adf-notification-history-mark-as-read-icon\">done_all</mat-icon>\n </button>\n </div>\n\n <mat-divider/>\n\n <div class=\"adf-notification-history-item-list\">\n <ng-container *ngIf=\"notifications.length; else empty_list_template\">\n <button mat-menu-item\n *ngFor=\"let notification of paginatedNotifications\"\n (click)=\"onNotificationClick(notification, $event)\"\n class=\"adf-notification-history-menu-item\">\n <div class=\"adf-notification-history-menu-item-content\">\n <div *ngIf=\"notification.initiator; else no_avatar\"\n [outerHTML]=\"notification.initiator | usernameInitials : 'adf-notification-initiator-pic'\"></div>\n <ng-template #no_avatar>\n <mat-icon class=\"adf-notification-history-menu-initiator\">\n {{ notification.icon }}\n </mat-icon>\n </ng-template>\n <div class=\"adf-notification-history-menu-item-content-message\">\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-message\"\n *ngFor=\"let message of notification.messages\"\n [title]=\"message\">{{ message }}</p>\n <p class=\"adf-notification-history-menu-text adf-notification-history-menu-date\"\n > {{ notification.datetime | adfTimeAgo }} </p>\n </div>\n </div>\n </button>\n </ng-container>\n <ng-template #empty_list_template>\n <p mat-menu-item id=\"adf-notification-history-component-no-message\"\n class=\"adf-notification-history-menu-no-message-text\">\n {{ 'NOTIFICATIONS.NO_MESSAGE' | translate }}\n </p>\n </ng-template>\n </div>\n\n <mat-divider/>\n\n <div class=\"adf-notification-history-load-more\" *ngIf=\"hasMoreNotifications()\">\n <button mat-menu-item (click)=\"loadMore($event)\">\n {{ 'NOTIFICATIONS.LOAD_MORE' | translate }}\n </button>\n </div>\n</mat-menu>\n", styles: [".adf-notification-history-menu-title{font-size:14px;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu_button.mat-mdc-button{border-radius:90%;padding:0;min-width:40px;height:40px;margin-top:1px}.adf-notification-history-menu_button.mat-mdc-button .adf-notification-history-menu_button-icon{margin-right:0;font-size:24px;height:24px;width:24px;color:var(--theme-text-color)}.adf-notification-history-menu .adf-notification-history-list-header{padding:10.5px 16px;display:flex;justify-content:space-between;align-items:center}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read{display:flex;padding:10px;width:auto;margin:4px 0}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:hover,.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:focus,.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read:active{background:none}.adf-notification-history-menu .adf-notification-history-list-header .adf-notification-history-mark-as-read-icon{margin:0;color:inherit}.adf-notification-history-menu .adf-notification-history-menu-title{line-height:28px}.adf-notification-history-menu .adf-notification-history-item-list{padding-top:8px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item{cursor:pointer;height:72px;align-items:center;display:block;padding:0 14px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content{height:100%;display:flex;align-items:center}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content-message{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;overflow:hidden;padding:0 0 0 16px}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-item-content-message p{line-height:normal;margin:0;color:var(--theme-sidenav-user-menu-color)}.adf-notification-history-menu .adf-notification-history-menu-item:focus{outline:none;background:var(--adf-theme-background-hover-color)}.adf-notification-history-menu .adf-notification-history-menu-item:hover{background-color:var(--adf-theme-background-hover-color)}.adf-notification-history-menu .adf-notification-history-menu-message:is(p){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--theme-body-1-font-size)}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-no-message-text{color:var(--theme-sidenav-user-menu-color);margin:0;padding:12px 16px;opacity:inherit;border:none}.adf-notification-history-menu .adf-notification-history-item-list .adf-notification-history-menu-no-message-text span{font-size:16px;-webkit-font-smoothing:subpixel-antialiased}.adf-notification-history-menu .adf-notification-history-menu-date.adf-notification-history-menu-text:is(p){font-size:var(--theme-caption-font-size);text-indent:3px}.adf-notification-history-menu .adf-notification-history-menu-initiator{margin:4px}.adf-notification-initiator-pic{min-width:40px;background:var(--theme-accent-color);display:inline-block;height:40px;border-radius:100px;text-align:center;font-weight:bolder;font-size:var(--theme-adf-picture-1-font-size);text-transform:uppercase;vertical-align:middle;line-height:40px;color:var(--adf-theme-mat-grey-color-a200)}.adf-notification-history-load-more{display:flex;justify-content:center;padding:10px}.adf-notification-history-load-more button{justify-content:center;width:100%;min-height:36px}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel{min-width:320px;max-height:500px}.mat-mdc-menu-panel.adf-notification-history-menu.adf-notification-history-menu-panel .mat-mdc-menu-content{padding:0}\n"] }]
|
|
137
129
|
}], ctorParameters: () => [{ type: i1.NotificationService }, { type: i2.StorageService }, { type: i0.ChangeDetectorRef }], propDecorators: { trigger: [{
|
|
138
130
|
type: ViewChild,
|
|
139
131
|
args: [MatMenuTrigger, { static: true }]
|
|
@@ -144,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
144
136
|
}], maxNotifications: [{
|
|
145
137
|
type: Input
|
|
146
138
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQWdDLE1BQU0sd0JBQXdCLENBQUM7QUFDckcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxP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SUFBSSxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsWUFBWSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQzs4R0F2R1EsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK09BSTFCLGNBQWMsOERDbkU3Qiw0eklBK0VBLHVpSEQ5QlEsZUFBZSx3VUFDZixhQUFhLHltQkFDYixlQUFlLDJGQUNmLGFBQWEsbUxBQ2IsY0FBYywyUEFDZCxhQUFhLDJvQkFDYixJQUFJLDZGQUNKLE9BQU8sOEdBQ1AsV0FBVyw4Q0FDWCxtQkFBbUIsd0RBQ25CLGlCQUFpQjs7MkZBSVosNEJBQTRCO2tCQXBCeEMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUdQO3dCQUNMLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNwQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO3FKQU9yQyxPQUFPO3NCQUROLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLM0MsYUFBYTtzQkFEWixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5PVElGSUNBVElPTl9UWVBFLCBOb3RpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub3RpZmljYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIsIE1lbnVQb3NpdGlvblgsIE1lbnVQb3NpdGlvblkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5pdGlhbFVzZXJuYW1lUGlwZSwgVGltZUFnb1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1oaXN0b3J5LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIFRpbWVBZ29QaXBlLFxuICAgICAgICBJbml0aWFsVXNlcm5hbWVQaXBlLFxuICAgICAgICBNYXRTbmFja0Jhck1vZHVsZVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBwdWJsaWMgc3RhdGljIE1BWF9OT1RJRklDQVRJT05fU1RBQ0tfTEVOR1RIID0gMTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgTk9USUZJQ0FUSU9OX1NUT1JBR0UgPSAnbm90aWZpY2F0aW9uLWhpc3RvcnknO1xuXG4gICAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlciwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICB0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICAgIC8qKiBDdXN0b20gY2hvaWNlIGZvciBvcGVuaW5nIHRoZSBtZW51IGF0IHRoZSBib3R0b20uIENhbiBiZSBgYmVmb3JlYCBvciBgYWZ0ZXJgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVudVBvc2l0aW9uWDogTWVudVBvc2l0aW9uWCA9ICdhZnRlcic7XG5cbiAgICAvKiogQ3VzdG9tIGNob2ljZSBmb3Igb3BlbmluZyB0aGUgbWVudSBhdCB0aGUgYm90dG9tLiBDYW4gYmUgYGFib3ZlYCBvciBgYmVsb3dgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVudVBvc2l0aW9uWTogTWVudVBvc2l0aW9uWSA9ICdiZWxvdyc7XG5cbiAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygbm90aWZpY2F0aW9ucyB0byBkaXNwbGF5LiBUaGUgcmVzdCB3aWxsIHJlbWFpbiBoaWRkZW4gdW50aWwgbG9hZCBtb3JlIGlzIGNsaWNrZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heE5vdGlmaWNhdGlvbnM6IG51bWJlciA9IDU7XG5cbiAgICBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25Nb2RlbFtdID0gW107XG4gICAgcGFnaW5hdGVkTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uTW9kZWxbXSA9IFtdO1xuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSwgcHVibGljIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSwgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50Lk5PVElGSUNBVElPTl9TVE9SQUdFKSkgfHwgW107XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9ucyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZE5ld05vdGlmaWNhdGlvbihub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZE5ld05vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy51bnNoaWZ0KG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPiBOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50Lk1BWF9OT1RJRklDQVRJT05fU1RBQ0tfTEVOR1RIKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2F2ZU5vdGlmaWNhdGlvbnMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgc2F2ZU5vdGlmaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShcbiAgICAgICAgICAgIE5vdGlmaWNhdGlvbkhpc3RvcnlDb21wb25lbnQuTk9USUZJQ0FUSU9OX1NUT1JBR0UsXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm5vdGlmaWNhdGlvbnMuZmlsdGVyKChub3RpZmljYXRpb24pID0+IG5vdGlmaWNhdGlvbi50eXBlICE9PSBOT1RJRklDQVRJT05fVFlQRS5SRUNVUlNJVkUpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmNsb3NlVXNlck1vZGFsKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlVXNlck1vZGFsKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJrQXNSZWFkKCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWROb3RpZmljYXRpb25zID0gW107XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50Lk5PVElGSUNBVElPTl9TVE9SQUdFKTtcbiAgICAgICAgdGhpcy5jcmVhdGVQYWdpbmF0aW9uKCk7XG4gICAgICAgIHRoaXMudHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdpbmF0aW9uKCkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMubWF4Tm90aWZpY2F0aW9ucyxcbiAgICAgICAgICAgIG1heEl0ZW1zOiB0aGlzLm1heE5vdGlmaWNhdGlvbnMsXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiB0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgaGFzTW9yZUl0ZW1zOiB0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhOb3RpZmljYXRpb25zXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucGFnaW5hdGVkTm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9ucy5zbGljZSgwLCB0aGlzLnBhZ2luYXRpb24uc2tpcENvdW50KTtcbiAgICB9XG5cbiAgICBsb2FkTW9yZSgpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnNraXBDb3VudCA9IHRoaXMucGFnaW5hdGlvbi5tYXhJdGVtcyArIHRoaXMucGFnaW5hdGlvbi5za2lwQ291bnQ7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5oYXNNb3JlSXRlbXMgPSB0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoID4gdGhpcy5wYWdpbmF0aW9uLnNraXBDb3VudDtcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWROb3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLnNsaWNlKDAsIHRoaXMucGFnaW5hdGlvbi5za2lwQ291bnQpO1xuICAgIH1cblxuICAgIGhhc01vcmVOb3RpZmljYXRpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uPy5oYXNNb3JlSXRlbXM7XG4gICAgfVxuXG4gICAgb25Ob3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSB7XG4gICAgICAgIGlmIChub3RpZmljYXRpb24uY2xpY2tDYWxsQmFjaykge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uLmNsaWNrQ2FsbEJhY2sobm90aWZpY2F0aW9uLmFyZ3MpO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAoa2V5dXApPVwib25LZXlQcmVzcygkZXZlbnQpXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTk9USUZJQ0FUSU9OUy5PUEVOX0hJU1RPUlknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ05PVElGSUNBVElPTlMuT1BFTl9ISVNUT1JZJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51X2J1dHRvblwiXG4gICAgICAgICAgICBpZD1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1vcGVuLWJ1dHRvblwiXG4gICAgICAgICAgICAobWVudU9wZW5lZCk9XCJvbk1lbnVPcGVuZWQoKVwiPlxuICAgICAgICA8bWF0LWljb24gbWF0QmFkZ2U9XCImIzgyODg7XCJcbiAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhbm90aWZpY2F0aW9ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudV9idXR0b24taWNvblwiXG4gICAgICAgICAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+bm90aWZpY2F0aW9uc1xuICAgICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgICBbeFBvc2l0aW9uXT1cIm1lbnVQb3NpdGlvblhcIlxuICAgICAgICAgICAgICBbeVBvc2l0aW9uXT1cIm1lbnVQb3NpdGlvbllcIlxuICAgICAgICAgICAgICBpZD1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudSBhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LWxpc3RcIlxuICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPGRpdiBtYXQtc3ViaGVhZGVyIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtdGl0bGVcIj57eyAnTk9USUZJQ0FUSU9OUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIm5vdGlmaWNhdGlvbnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1hcmstYXMtcmVhZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tYXJrLWFzLXJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdOT1RJRklDQVRJT05TLk1BUktfQVNfUkVBRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtBc1JlYWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZG9uZV9hbGw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8bWF0LWxpc3Qgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbnMubGVuZ3RoOyBlbHNlIGVtcHR5X2xpc3RfdGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IG5vdGlmaWNhdGlvbiBvZiBwYWdpbmF0ZWROb3RpZmljYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0aW9uKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vdGlmaWNhdGlvbi5pbml0aWF0b3I7IGVsc2Ugbm9fYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0TGlzdEl0ZW1BdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW291dGVySFRNTF09XCJub3RpZmljYXRpb24uaW5pdGlhdG9yIHwgdXNlcm5hbWVJbml0aWFscyA6ICdhZGYtbm90aWZpY2F0aW9uLWluaXRpYXRvci1waWMnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vX2F2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1MaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtaW5pdGlhdG9yXCI+e3tub3RpZmljYXRpb24uaWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtaXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS10ZXh0IGFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51LW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG5vdGlmaWNhdGlvbi5tZXNzYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0TGlzdEl0ZW1MaW5lIFt0aXRsZV09XCJtZXNzYWdlXCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51LXRleHQgYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0TGlzdEl0ZW1MaW5lPiB7e25vdGlmaWNhdGlvbi5kYXRldGltZSB8IGFkZlRpbWVBZ299fSA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlfbGlzdF90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1saXN0LWl0ZW0gaWQ9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktY29tcG9uZW50LW5vLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51LW5vLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtbm8tbWVzc2FnZS10ZXh0XCIgbWF0TGlzdEl0ZW1MaW5lPnt7ICdOT1RJRklDQVRJT05TLk5PX01FU1NBR0UnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Q+XG5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LWxvYWQtbW9yZVwiIHJvbGU9XCJtZW51aXRlbVwiICpuZ0lmPVwiaGFzTW9yZU5vdGlmaWNhdGlvbnMoKVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwibG9hZE1vcmUoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnTk9USUZJQ0FUSU9OUy5MT0FEX01PUkUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvZGl2PlxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBZ0MsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9B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QTVCLDRCQUE0QiwrT0FJMUIsY0FBYyw4REN6RDdCLHVtSEEyRUEsMDZIRHBDUSxlQUFlLDJOQUNmLGFBQWEsNnZCQUNiLGVBQWUsMkZBQ2YsYUFBYSxtTEFDYixjQUFjLDJQQUNkLGFBQWEsbUlBQ2IsSUFBSSw2RkFDSixPQUFPLDhHQUNQLFdBQVcsOENBQ1gsbUJBQW1CLHdEQUNuQixpQkFBaUI7OzJGQUlaLDRCQUE0QjtrQkFwQnhDLFNBQVM7K0JBQ0ksMEJBQTBCLGNBQ3hCLElBQUksV0FHUDt3QkFDTCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjtxQkFDcEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTtxSkFPckMsT0FBTztzQkFETixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSzNDLGFBQWE7c0JBRFosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5PVElGSUNBVElPTl9UWVBFLCBOb3RpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub3RpZmljYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIsIE1lbnVQb3NpdGlvblgsIE1lbnVQb3NpdGlvblkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5pdGlhbFVzZXJuYW1lUGlwZSwgVGltZUFnb1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnbm90aWZpY2F0aW9uLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1oaXN0b3J5LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIFRpbWVBZ29QaXBlLFxuICAgICAgICBJbml0aWFsVXNlcm5hbWVQaXBlLFxuICAgICAgICBNYXRTbmFja0Jhck1vZHVsZVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBwdWJsaWMgc3RhdGljIE1BWF9OT1RJRklDQVRJT05fU1RBQ0tfTEVOR1RIID0gMTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgTk9USUZJQ0FUSU9OX1NUT1JBR0UgPSAnbm90aWZpY2F0aW9uLWhpc3RvcnknO1xuXG4gICAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlciwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICB0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICAgIC8qKiBDdXN0b20gY2hvaWNlIGZvciBvcGVuaW5nIHRoZSBtZW51IGF0IHRoZSBib3R0b20uIENhbiBiZSBgYmVmb3JlYCBvciBgYWZ0ZXJgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVudVBvc2l0aW9uWDogTWVudVBvc2l0aW9uWCA9ICdhZnRlcic7XG5cbiAgICAvKiogQ3VzdG9tIGNob2ljZSBmb3Igb3BlbmluZyB0aGUgbWVudSBhdCB0aGUgYm90dG9tLiBDYW4gYmUgYGFib3ZlYCBvciBgYmVsb3dgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWVudVBvc2l0aW9uWTogTWVudVBvc2l0aW9uWSA9ICdiZWxvdyc7XG5cbiAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygbm90aWZpY2F0aW9ucyB0byBkaXNwbGF5LiBUaGUgcmVzdCB3aWxsIHJlbWFpbiBoaWRkZW4gdW50aWwgbG9hZCBtb3JlIGlzIGNsaWNrZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heE5vdGlmaWNhdGlvbnM6IG51bWJlciA9IDU7XG5cbiAgICBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25Nb2RlbFtdID0gW107XG4gICAgcGFnaW5hdGVkTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uTW9kZWxbXSA9IFtdO1xuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSwgcHVibGljIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSwgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50Lk5PVElGSUNBVElPTl9TVE9SQUdFKSkgfHwgW107XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9ucyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZE5ld05vdGlmaWNhdGlvbihub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZE5ld05vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy51bnNoaWZ0KG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPiBOb3RpZmljYXRpb25IaXN0b3J5Q29tcG9uZW50Lk1BWF9OT1RJRklDQVRJT05fU1RBQ0tfTEVOR1RIKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2F2ZU5vdGlmaWNhdGlvbnMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgc2F2ZU5vdGlmaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShcbiAgICAgICAgICAgIE5vdGlmaWNhdGlvbkhpc3RvcnlDb21wb25lbnQuTk9USUZJQ0FUSU9OX1NUT1JBR0UsXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm5vdGlmaWNhdGlvbnMuZmlsdGVyKChub3RpZmljYXRpb24pID0+IG5vdGlmaWNhdGlvbi50eXBlICE9PSBOT1RJRklDQVRJT05fVFlQRS5SRUNVUlNJVkUpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgbWFya0FzUmVhZCgpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gW107XG4gICAgICAgIHRoaXMucGFnaW5hdGVkTm90aWZpY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oTm90aWZpY2F0aW9uSGlzdG9yeUNvbXBvbmVudC5OT1RJRklDQVRJT05fU1RPUkFHRSk7XG4gICAgICAgIHRoaXMuY3JlYXRlUGFnaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2luYXRpb24oKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5tYXhOb3RpZmljYXRpb25zLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMubWF4Tm90aWZpY2F0aW9ucyxcbiAgICAgICAgICAgIHRvdGFsSXRlbXM6IHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICBoYXNNb3JlSXRlbXM6IHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPiB0aGlzLm1heE5vdGlmaWNhdGlvbnNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWROb3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLnNsaWNlKDAsIHRoaXMucGFnaW5hdGlvbi5za2lwQ291bnQpO1xuICAgIH1cblxuICAgIGxvYWRNb3JlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5za2lwQ291bnQgPSB0aGlzLnBhZ2luYXRpb24ubWF4SXRlbXMgKyB0aGlzLnBhZ2luYXRpb24uc2tpcENvdW50O1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24uaGFzTW9yZUl0ZW1zID0gdGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aCA+IHRoaXMucGFnaW5hdGlvbi5za2lwQ291bnQ7XG4gICAgICAgIHRoaXMucGFnaW5hdGVkTm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9ucy5zbGljZSgwLCB0aGlzLnBhZ2luYXRpb24uc2tpcENvdW50KTtcbiAgICB9XG5cbiAgICBoYXNNb3JlTm90aWZpY2F0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbj8uaGFzTW9yZUl0ZW1zO1xuICAgIH1cblxuICAgIG9uTm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCwgJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5jbGlja0NhbGxCYWNrKSB7XG4gICAgICAgICAgICBub3RpZmljYXRpb24uY2xpY2tDYWxsQmFjayhub3RpZmljYXRpb24uYXJncyk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTk9USUZJQ0FUSU9OUy5PUEVOX0hJU1RPUlknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnTk9USUZJQ0FUSU9OUy5PUEVOX0hJU1RPUlknIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudV9idXR0b25cIlxuICAgICAgICBpZD1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1vcGVuLWJ1dHRvblwiXG4gICAgICAgIChtZW51T3BlbmVkKT1cIm9uTWVudU9wZW5lZCgpXCI+XG4gICAgPG1hdC1pY29uIG1hdEJhZGdlPVwiJiM4Mjg4O1wiXG4gICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhbm90aWZpY2F0aW9ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51X2J1dHRvbi1pY29uXCJcbiAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+bm90aWZpY2F0aW9uc1xuICAgIDwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiXG4gICAgICAgICAgW3hQb3NpdGlvbl09XCJtZW51UG9zaXRpb25YXCJcbiAgICAgICAgICBbeVBvc2l0aW9uXT1cIm1lbnVQb3NpdGlvbllcIlxuICAgICAgICAgIGlkPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnVcIlxuICAgICAgICAgIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUgYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtcGFuZWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LWxpc3QtaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtdGl0bGVcIj57eyAnTk9USUZJQ0FUSU9OUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIGlkPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1hcmstYXMtcmVhZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWFyay1hcy1yZWFkXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdOT1RJRklDQVRJT05TLk1BUktfQVNfUkVBRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtYXJrQXNSZWFkKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tYXJrLWFzLXJlYWQtaWNvblwiPmRvbmVfYWxsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWRpdmlkZXIvPlxuXG4gICAgPGRpdiBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1pdGVtLWxpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbnMubGVuZ3RoOyBlbHNlIGVtcHR5X2xpc3RfdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIHBhZ2luYXRlZE5vdGlmaWNhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ob3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb24sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtaXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3RpZmljYXRpb24uaW5pdGlhdG9yOyBlbHNlIG5vX2F2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW291dGVySFRNTF09XCJub3RpZmljYXRpb24uaW5pdGlhdG9yIHwgdXNlcm5hbWVJbml0aWFscyA6ICdhZGYtbm90aWZpY2F0aW9uLWluaXRpYXRvci1waWMnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9fYXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtaW5pdGlhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbm90aWZpY2F0aW9uLmljb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS1pdGVtLWNvbnRlbnQtbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS10ZXh0IGFkZi1ub3RpZmljYXRpb24taGlzdG9yeS1tZW51LW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2Ygbm90aWZpY2F0aW9uLm1lc3NhZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJtZXNzYWdlXCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtdGV4dCBhZGYtbm90aWZpY2F0aW9uLWhpc3RvcnktbWVudS1kYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID4ge3sgbm90aWZpY2F0aW9uLmRhdGV0aW1lIHwgYWRmVGltZUFnbyB9fSA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5X2xpc3RfdGVtcGxhdGU+XG4gICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGlkPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LWNvbXBvbmVudC1uby1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LW1lbnUtbm8tbWVzc2FnZS10ZXh0XCI+XG4gICAgICAgICAgICAgICAge3sgJ05PVElGSUNBVElPTlMuTk9fTUVTU0FHRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtZGl2aWRlci8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLW5vdGlmaWNhdGlvbi1oaXN0b3J5LWxvYWQtbW9yZVwiICpuZ0lmPVwiaGFzTW9yZU5vdGlmaWNhdGlvbnMoKVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImxvYWRNb3JlKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7ICdOT1RJRklDQVRJT05TLkxPQURfTU9SRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1tZW51PlxuIl19
|