@tolle_/tolle-ui 18.2.30 → 18.3.0

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.
@@ -6,6 +6,11 @@ import * as i0 from "@angular/core";
6
6
  export class AlertDialogDynamicComponent {
7
7
  config;
8
8
  dialogRef;
9
+ /**
10
+ * Set by `AlertDialogService` once the dialog's result is ready, so the
11
+ * content panel plays its exit animation before the overlay is torn down.
12
+ */
13
+ closing = false;
9
14
  onOpenChange(open) {
10
15
  if (!open) {
11
16
  this.close(false);
@@ -16,7 +21,7 @@ export class AlertDialogDynamicComponent {
16
21
  }
17
22
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertDialogDynamicComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
23
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertDialogDynamicComponent, isStandalone: true, selector: "tolle-alert-dialog-dynamic", ngImport: i0, template: `
19
- <tolle-alert-dialog [open]="true" (openChange)="onOpenChange($event)">
24
+ <tolle-alert-dialog [open]="!closing" (openChange)="onOpenChange($event)">
20
25
  <tolle-alert-dialog-content [size]="config.size || 'lg'">
21
26
  <tolle-alert-dialog-header>
22
27
  <tolle-alert-dialog-title>{{ config.title }}</tolle-alert-dialog-title>
@@ -52,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52
57
  AlertDialogActionComponent,
53
58
  ButtonComponent
54
59
  ], template: `
55
- <tolle-alert-dialog [open]="true" (openChange)="onOpenChange($event)">
60
+ <tolle-alert-dialog [open]="!closing" (openChange)="onOpenChange($event)">
56
61
  <tolle-alert-dialog-content [size]="config.size || 'lg'">
57
62
  <tolle-alert-dialog-header>
58
63
  <tolle-alert-dialog-title>{{ config.title }}</tolle-alert-dialog-title>
@@ -74,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
74
79
  </tolle-alert-dialog>
75
80
  `, styles: [":host{display:block}\n"] }]
76
81
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLWR5bmFtaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9hbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQTBDckQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxNQUFNLENBQXFCO0lBQzNCLFNBQVMsQ0FBa0I7SUFFM0IsWUFBWSxDQUFDLElBQWE7UUFDeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFlO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7d0dBWlUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsc0ZBdkI1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULCtGQWhDQyxZQUFZLCtCQUNaLG9CQUFvQiwwR0FDcEIsMkJBQTJCLGtHQUMzQiwwQkFBMEIseUZBQzFCLHlCQUF5Qix3RkFDekIsK0JBQStCLDhGQUMvQiwwQkFBMEIseUZBQzFCLDBCQUEwQiw4RkFDMUIsMEJBQTBCLDhGQUMxQixlQUFlOzs0RkF5Qk4sMkJBQTJCO2tCQXZDdkMsU0FBUzsrQkFDRSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0NvbnRlbnRDb21wb25lbnQsXG4gIEFsZXJ0RGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ1RpdGxlQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgQWxlcnREaWFsb2dDYW5jZWxDb21wb25lbnQsXG4gIEFsZXJ0RGlhbG9nQWN0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dDb25maWcsIEFsZXJ0RGlhbG9nUmVmIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctZHluYW1pYycsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQWxlcnREaWFsb2dDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dDb250ZW50Q29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nVGl0bGVDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0NhbmNlbENvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0FjdGlvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dG9sbGUtYWxlcnQtZGlhbG9nIFtvcGVuXT1cInRydWVcIiAob3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWNvbnRlbnQgW3NpemVdPVwiY29uZmlnLnNpemUgfHwgJ2xnJ1wiPlxuICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPHRvbGxlLWFsZXJ0LWRpYWxvZy10aXRsZT57eyBjb25maWcudGl0bGUgfX08L3RvbGxlLWFsZXJ0LWRpYWxvZy10aXRsZT5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIHt7IGNvbmZpZy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctZGVzY3JpcHRpb24+XG4gICAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPHRvbGxlLWFsZXJ0LWRpYWxvZy1jYW5jZWwgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiPlxuICAgICAgICAgICAgICA8dG9sbGUtYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lXCI+e3sgY29uZmlnLmNhbmNlbFRleHQgfHwgJ0NhbmNlbCcgfX08L3RvbGxlLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWNhbmNlbD5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctYWN0aW9uIChjbGljayk9XCJjbG9zZSh0cnVlKVwiPlxuICAgICAgICAgICAgICA8dG9sbGUtYnV0dG9uIFt2YXJpYW50XT1cImNvbmZpZy52YXJpYW50ID09PSAnZGVzdHJ1Y3RpdmUnID8gJ2Rlc3RydWN0aXZlJyA6ICdkZWZhdWx0J1wiPlxuICAgICAgICAgICAgICAgIHt7IGNvbmZpZy5hY3Rpb25UZXh0IHx8ICdDb250aW51ZScgfX1cbiAgICAgICAgICAgICAgPC90b2xsZS1idXR0b24+XG4gICAgICAgICAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZy1hY3Rpb24+XG4gICAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZy1jb250ZW50PlxuICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nRHluYW1pY0NvbXBvbmVudCB7XG4gIGNvbmZpZyE6IEFsZXJ0RGlhbG9nQ29uZmlnO1xuICBkaWFsb2dSZWYhOiBBbGVydERpYWxvZ1JlZjtcblxuICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgIGlmICghb3Blbikge1xuICAgICAgdGhpcy5jbG9zZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UocmVzdWx0OiBib29sZWFuKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcbiAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLWR5bmFtaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9hbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQTBDckQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxNQUFNLENBQXFCO0lBQzNCLFNBQVMsQ0FBa0I7SUFFM0I7OztPQUdHO0lBQ0gsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVoQixZQUFZLENBQUMsSUFBYTtRQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQWU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0FsQlUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsc0ZBdkI1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULCtGQWhDQyxZQUFZLCtCQUNaLG9CQUFvQiwwR0FDcEIsMkJBQTJCLGtHQUMzQiwwQkFBMEIseUZBQzFCLHlCQUF5Qix3RkFDekIsK0JBQStCLDhGQUMvQiwwQkFBMEIseUZBQzFCLDBCQUEwQiw4RkFDMUIsMEJBQTBCLDhGQUMxQixlQUFlOzs0RkF5Qk4sMkJBQTJCO2tCQXZDdkMsU0FBUzsrQkFDRSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFsZXJ0RGlhbG9nQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0NvbnRlbnRDb21wb25lbnQsXG4gIEFsZXJ0RGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ1RpdGxlQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uQ29tcG9uZW50LFxuICBBbGVydERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgQWxlcnREaWFsb2dDYW5jZWxDb21wb25lbnQsXG4gIEFsZXJ0RGlhbG9nQWN0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dDb25maWcsIEFsZXJ0RGlhbG9nUmVmIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctZHluYW1pYycsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQWxlcnREaWFsb2dDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dDb250ZW50Q29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgIEFsZXJ0RGlhbG9nVGl0bGVDb21wb25lbnQsXG4gICAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0NhbmNlbENvbXBvbmVudCxcbiAgICBBbGVydERpYWxvZ0FjdGlvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dG9sbGUtYWxlcnQtZGlhbG9nIFtvcGVuXT1cIiFjbG9zaW5nXCIgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPHRvbGxlLWFsZXJ0LWRpYWxvZy1jb250ZW50IFtzaXplXT1cImNvbmZpZy5zaXplIHx8ICdsZydcIj5cbiAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctdGl0bGU+e3sgY29uZmlnLnRpdGxlIH19PC90b2xsZS1hbGVydC1kaWFsb2ctdGl0bGU+XG4gICAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICB7eyBjb25maWcuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDx0b2xsZS1hbGVydC1kaWFsb2ctY2FuY2VsIChjbGljayk9XCJjbG9zZShmYWxzZSlcIj5cbiAgICAgICAgICAgICAgPHRvbGxlLWJ1dHRvbiB2YXJpYW50PVwib3V0bGluZVwiPnt7IGNvbmZpZy5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnIH19PC90b2xsZS1idXR0b24+XG4gICAgICAgICAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZy1jYW5jZWw+XG4gICAgICAgICAgICA8dG9sbGUtYWxlcnQtZGlhbG9nLWFjdGlvbiAoY2xpY2spPVwiY2xvc2UodHJ1ZSlcIj5cbiAgICAgICAgICAgICAgPHRvbGxlLWJ1dHRvbiBbdmFyaWFudF09XCJjb25maWcudmFyaWFudCA9PT0gJ2Rlc3RydWN0aXZlJyA/ICdkZXN0cnVjdGl2ZScgOiAnZGVmYXVsdCdcIj5cbiAgICAgICAgICAgICAgICB7eyBjb25maWcuYWN0aW9uVGV4dCB8fCAnQ29udGludWUnIH19XG4gICAgICAgICAgICAgIDwvdG9sbGUtYnV0dG9uPlxuICAgICAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctYWN0aW9uPlxuICAgICAgICAgIDwvdG9sbGUtYWxlcnQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPC90b2xsZS1hbGVydC1kaWFsb2ctY29udGVudD5cbiAgICA8L3RvbGxlLWFsZXJ0LWRpYWxvZz5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0R5bmFtaWNDb21wb25lbnQge1xuICBjb25maWchOiBBbGVydERpYWxvZ0NvbmZpZztcbiAgZGlhbG9nUmVmITogQWxlcnREaWFsb2dSZWY7XG5cbiAgLyoqXG4gICAqIFNldCBieSBgQWxlcnREaWFsb2dTZXJ2aWNlYCBvbmNlIHRoZSBkaWFsb2cncyByZXN1bHQgaXMgcmVhZHksIHNvIHRoZVxuICAgKiBjb250ZW50IHBhbmVsIHBsYXlzIGl0cyBleGl0IGFuaW1hdGlvbiBiZWZvcmUgdGhlIG92ZXJsYXkgaXMgdG9ybiBkb3duLlxuICAgKi9cbiAgY2xvc2luZyA9IGZhbHNlO1xuXG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZShyZXN1bHQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICB9XG59XG4iXX0=
@@ -7,6 +7,14 @@ import { cn } from './utils/cn';
7
7
  import { BehaviorSubject } from 'rxjs';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/cdk/a11y";
10
+ /**
11
+ * Safety net if the exit animation's `animationend` never fires — reduced
12
+ * motion, no matching keyframe, or a panel that never rendered — so an
13
+ * alert dialog can never get stuck open forever. Also used by
14
+ * `alert-dialog.service.ts` and `alert-dialog-dynamic.component.ts`, which
15
+ * animate the same content component through a different overlay wiring.
16
+ */
17
+ export const CLOSE_FALLBACK_MS = 300;
10
18
  class AlertDialogInternalService {
11
19
  openSubject = new BehaviorSubject(false);
12
20
  open$ = this.openSubject.asObservable();
@@ -101,14 +109,39 @@ export class AlertDialogPortalComponent {
101
109
  });
102
110
  const portal = new TemplatePortal(this.portalContent, this.viewContainerRef);
103
111
  this.overlayRef.attach(portal);
112
+ // The backdrop element only exists once attached — setting this any
113
+ // earlier would silently no-op.
114
+ this.overlayRef.backdropElement?.setAttribute('data-state', 'open');
104
115
  }
116
+ /**
117
+ * Tears the overlay down once its exit animation finishes (or after
118
+ * `CLOSE_FALLBACK_MS`, whichever comes first) instead of instantly, so
119
+ * `data-[state=closed]:animate-out` actually gets a chance to play.
120
+ */
105
121
  hide() {
106
- if (this.overlayRef) {
107
- this.overlayRef.detach();
108
- this.overlayRef.dispose();
109
- this.overlayRef = undefined;
122
+ const ref = this.overlayRef;
123
+ if (!ref)
124
+ return;
125
+ ref.backdropElement?.setAttribute('data-state', 'closed');
126
+ let finished = false;
127
+ const finish = () => {
128
+ if (finished)
129
+ return;
130
+ finished = true;
131
+ ref.detach();
132
+ ref.dispose();
133
+ if (this.overlayRef === ref)
134
+ this.overlayRef = undefined;
110
135
  // Restore focus to the trigger.
111
136
  this.previouslyFocused?.focus?.();
137
+ };
138
+ const panel = ref.overlayElement.querySelector('[data-state]');
139
+ if (panel) {
140
+ panel.addEventListener('animationend', finish, { once: true });
141
+ setTimeout(finish, CLOSE_FALLBACK_MS);
142
+ }
143
+ else {
144
+ finish();
112
145
  }
113
146
  }
114
147
  ngOnDestroy() {
@@ -146,7 +179,7 @@ export class AlertDialogContentComponent {
146
179
  });
147
180
  }
148
181
  get computedClass() {
149
- return cn("fixed left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] z-50 grid w-full gap-4 border border-input bg-background p-6 shadow-lg data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] rounded-lg", {
182
+ return cn("fixed left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%] z-50 grid w-full gap-4 border border-input bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] rounded-lg", {
150
183
  'max-w-xs': this.size === 'xs',
151
184
  'max-w-sm': this.size === 'sm',
152
185
  'max-w-md': this.size === 'md',
@@ -296,4 +329,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
296
329
  type: HostListener,
297
330
  args: ['click', ['$event']]
298
331
  }] } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxnQkFBZ0IsRUFBcUIsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoTSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUd2QyxNQUNNLDBCQUEwQjtJQUNwQixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUQsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFeEMsT0FBTyxDQUFDLEtBQWM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFD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MEJBQTBCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVwRiw2RUFBNkU7SUFDbkUsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFHckQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQzt3R0FWUSwwQkFBMEI7NEZBQTFCLDBCQUEwQixtTEFGekIsMkJBQTJCLCtGQUQzQixZQUFZOzs0RkFHYiwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBRXpCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLDJCQUEyQjs4QkFNM0IsU0FBUztzQkFBbEIsTUFBTTtnQkFHUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0YWJsZSwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29udGVudENoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsLCBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ1NpemUgfSBmcm9tICcuL2FsZXJ0LWRpYWxvZy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG9wZW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgb3BlbiQgPSB0aGlzLm9wZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgc2V0T3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW5TdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldE9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5TdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLnNldE9wZW4oIXRoaXMuZ2V0T3BlbigpKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW0FsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZXQgb3Blbih2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uuc2V0T3Blbih2YWwpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5vcGVuJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHZhbCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctdHJpZ2dlcicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnb25PcGVuKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ1RyaWdnZXJDb21wb25lbnQge1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcblxuICAgIG9uT3BlbigpIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uuc2V0T3Blbih0cnVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLXBvcnRhbCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjcG9ydGFsQ29udGVudD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ3BvcnRhbENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwb3J0YWxDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIGFsZXJ0RGlhbG9nU2VydmljZSA9IGluamVjdChBbGVydERpYWxvZ0ludGVybmFsU2VydmljZSk7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICAgIC8qKiBFbGVtZW50IGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgb3BlbmVkLCByZXN0b3JlZCBvbiBjbG9zZS4gKi9cbiAgICBwcml2YXRlIHByZXZpb3VzbHlGb2N1c2VkPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLm9wZW4kLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3coKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuICAgICAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgb24gY2xvc2UuXG4gICAgICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktYmFja2Ryb3AnLCAnYmctYmxhY2svODAnLCAnYmFja2Ryb3AtYmx1ci1zbScsICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluJywgJ2RhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQnLCAnZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wJywgJ2RhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCddLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuXG4gICAgICAgIC8vIEFsZXJ0LWRpYWxvZyBzZW1hbnRpY3M6IGJhY2tkcm9wIGNsaWNrcyBtdXN0IE5PVCBkaXNtaXNzLlxuICAgICAgICAvLyBFc2NhcGUgc3RpbGwgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLnNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlKCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCIgW2F0dHIuZGF0YS1zdGF0ZV09XCJpc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAgIHJvbGU9XCJhbGVydGRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRpdGxlQ21wPy5pZCB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJkZXNjcmlwdGlvbkNtcD8uaWQgfHwgbnVsbFwiXG4gICAgICAgIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ1wiY29udGVudHNcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQ29udGVudENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHNpemU6IEFsZXJ0RGlhbG9nU2l6ZSA9ICdsZyc7XG5cbiAgICAvKiogUHJvamVjdGVkIHRpdGxlL2Rlc2NyaXB0aW9uIHVzZWQgdG8gYnVpbGQgdGhlIGRpYWxvZydzIGFjY2Vzc2libGUgbmFtZS4gKi9cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudCkpIHRpdGxlQ21wPzogQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudCkpIGRlc2NyaXB0aW9uQ21wPzogQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudDtcblxuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5vcGVuJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFxuICAgICAgICAgICAgXCJmaXhlZCBsZWZ0LVs1MCVdIHRvcC1bNTAlXSB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIHotNTAgZ3JpZCB3LWZ1bGwgZ2FwLTQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9Y2xvc2VkXTp6b29tLW91dC05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AtWzQ4JV0gcm91bmRlZC1sZ1wiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICdtYXgtdy14cyc6IHRoaXMuc2l6ZSA9PT0gJ3hzJyxcbiAgICAgICAgICAgICAgICAnbWF4LXctc20nOiB0aGlzLnNpemUgPT09ICdzbScsXG4gICAgICAgICAgICAgICAgJ21heC13LW1kJzogdGhpcy5zaXplID09PSAnbWQnLFxuICAgICAgICAgICAgICAgICdtYXgtdy1sZyc6IHRoaXMuc2l6ZSA9PT0gJ2xnJyxcbiAgICAgICAgICAgICAgICAnbWF4LXcteGwnOiB0aGlzLnNpemUgPT09ICd4bCcsXG4gICAgICAgICAgICAgICAgJ21heC13LTJ4bCc6IHRoaXMuc2l6ZSA9PT0gJzJ4bCcsXG4gICAgICAgICAgICAgICAgJ21heC13LWZ1bGwnOiB0aGlzLnNpemUgPT09ICdmdWxsJyxcbiAgICAgICAgICAgICAgICAnbWF4LXctZml0JzogdGhpcy5zaXplID09PSAnZml0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy1oZWFkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnIH1cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dIZWFkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHsgcmV0dXJuIGNuKFwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTIgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCIsIHRoaXMuY2xhc3MpOyB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWZvb3RlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHsgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcycgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0Zvb3RlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIGdldCBjb21wdXRlZENsYXNzKCkgeyByZXR1cm4gY24oXCJmbGV4IGZsZXgtcm93IGp1c3RpZnktZW5kIHNwYWNlLXgtMlwiLCB0aGlzLmNsYXNzKTsgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy10aXRsZScsXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJywgJ1thdHRyLmlkXSc6ICdpZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ1RpdGxlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgLyoqIFN0YWJsZSBpZCByZWZlcmVuY2VkIGJ5IHRoZSBkaWFsb2cncyBgYXJpYS1sYWJlbGxlZGJ5YC4gKi9cbiAgICByZWFkb25seSBpZCA9IGB0b2xsZS1hbGVydC1kaWFsb2ctdGl0bGUtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHsgcmV0dXJuIGNuKFwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZFwiLCB0aGlzLmNsYXNzKTsgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0LWRpYWxvZy1kZXNjcmlwdGlvbicsXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJywgJ1thdHRyLmlkXSc6ICdpZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgLyoqIFN0YWJsZSBpZCByZWZlcmVuY2VkIGJ5IHRoZSBkaWFsb2cncyBgYXJpYS1kZXNjcmliZWRieWAuICovXG4gICAgcmVhZG9ubHkgaWQgPSBgdG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7IHJldHVybiBjbihcInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsIHRoaXMuY2xhc3MpOyB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWFjdGlvbicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQWN0aW9uQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGFsZXJ0RGlhbG9nU2VydmljZSA9IGluamVjdChBbGVydERpYWxvZ0ludGVybmFsU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKiBGaXJlcyBiZWZvcmUgdGhlIGRpYWxvZyBjbG9zZXMsIHNvIGNvbnN1bWVycyBjYW4gcnVuIHRoZSBjb25maXJtZWQgYWN0aW9uLiAqL1xuICAgIEBPdXRwdXQoKSBjb25maXJtZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jb25maXJtZWQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlPy5zZXRPcGVuKGZhbHNlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWNhbmNlbCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQ2FuY2VsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGFsZXJ0RGlhbG9nU2VydmljZSA9IGluamVjdChBbGVydERpYWxvZ0ludGVybmFsU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKiBGaXJlcyBiZWZvcmUgdGhlIGRpYWxvZyBjbG9zZXMsIHNvIGNvbnN1bWVycyBjYW4gcmVhY3QgdG8gYSBkaXNtaXNzYWwuICovXG4gICAgQE91dHB1dCgpIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2U/LnNldE9wZW4oZmFsc2UpO1xuICAgIH1cbn1cbiJdfQ==
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYWxlcnQtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxnQkFBZ0IsRUFBcUIsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoTSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUd2Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFDTSwwQkFBMEI7SUFDcEIsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzFELEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhDLE9BQU8sQ0FBQyxLQUFjO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxN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R0FWUSwwQkFBMEI7NEZBQTFCLDBCQUEwQixtTEFGekIsMkJBQTJCLCtGQUQzQixZQUFZOzs0RkFHYiwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBRXpCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLDJCQUEyQjs4QkFNM0IsU0FBUztzQkFBbEIsTUFBTTtnQkFHUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0YWJsZSwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29udGVudENoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsLCBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydERpYWxvZ1NpemUgfSBmcm9tICcuL2FsZXJ0LWRpYWxvZy50eXBlcyc7XG5cbi8qKlxuICogU2FmZXR5IG5ldCBpZiB0aGUgZXhpdCBhbmltYXRpb24ncyBgYW5pbWF0aW9uZW5kYCBuZXZlciBmaXJlcyDigJQgcmVkdWNlZFxuICogbW90aW9uLCBubyBtYXRjaGluZyBrZXlmcmFtZSwgb3IgYSBwYW5lbCB0aGF0IG5ldmVyIHJlbmRlcmVkIOKAlCBzbyBhblxuICogYWxlcnQgZGlhbG9nIGNhbiBuZXZlciBnZXQgc3R1Y2sgb3BlbiBmb3JldmVyLiBBbHNvIHVzZWQgYnlcbiAqIGBhbGVydC1kaWFsb2cuc2VydmljZS50c2AgYW5kIGBhbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQudHNgLCB3aGljaFxuICogYW5pbWF0ZSB0aGUgc2FtZSBjb250ZW50IGNvbXBvbmVudCB0aHJvdWdoIGEgZGlmZmVyZW50IG92ZXJsYXkgd2lyaW5nLlxuICovXG5leHBvcnQgY29uc3QgQ0xPU0VfRkFMTEJBQ0tfTVMgPSAzMDA7XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG9wZW5TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgb3BlbiQgPSB0aGlzLm9wZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgc2V0T3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW5TdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldE9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5TdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLnNldE9wZW4oIXRoaXMuZ2V0T3BlbigpKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW0FsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZXQgb3Blbih2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uuc2V0T3Blbih2YWwpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5vcGVuJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHZhbCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctdHJpZ2dlcicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnb25PcGVuKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ1RyaWdnZXJDb21wb25lbnQge1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcblxuICAgIG9uT3BlbigpIHtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2Uuc2V0T3Blbih0cnVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLXBvcnRhbCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjcG9ydGFsQ29udGVudD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ3BvcnRhbENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwb3J0YWxDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIGFsZXJ0RGlhbG9nU2VydmljZSA9IGluamVjdChBbGVydERpYWxvZ0ludGVybmFsU2VydmljZSk7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICAgIC8qKiBFbGVtZW50IGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgb3BlbmVkLCByZXN0b3JlZCBvbiBjbG9zZS4gKi9cbiAgICBwcml2YXRlIHByZXZpb3VzbHlGb2N1c2VkPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLm9wZW4kLnN1YnNjcmliZShvcGVuID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3coKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuICAgICAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgb24gY2xvc2UuXG4gICAgICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktYmFja2Ryb3AnLCAnYmctYmxhY2svODAnLCAnYmFja2Ryb3AtYmx1ci1zbScsICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluJywgJ2RhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQnLCAnZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wJywgJ2RhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCddLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuXG4gICAgICAgIC8vIEFsZXJ0LWRpYWxvZyBzZW1hbnRpY3M6IGJhY2tkcm9wIGNsaWNrcyBtdXN0IE5PVCBkaXNtaXNzLlxuICAgICAgICAvLyBFc2NhcGUgc3RpbGwgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnREaWFsb2dTZXJ2aWNlLnNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICAgICAgLy8gVGhlIGJhY2tkcm9wIGVsZW1lbnQgb25seSBleGlzdHMgb25jZSBhdHRhY2hlZCDigJQgc2V0dGluZyB0aGlzIGFueVxuICAgICAgICAvLyBlYXJsaWVyIHdvdWxkIHNpbGVudGx5IG5vLW9wLlxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCAnb3BlbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlYXJzIHRoZSBvdmVybGF5IGRvd24gb25jZSBpdHMgZXhpdCBhbmltYXRpb24gZmluaXNoZXMgKG9yIGFmdGVyXG4gICAgICogYENMT1NFX0ZBTExCQUNLX01TYCwgd2hpY2hldmVyIGNvbWVzIGZpcnN0KSBpbnN0ZWFkIG9mIGluc3RhbnRseSwgc29cbiAgICAgKiBgZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dGAgYWN0dWFsbHkgZ2V0cyBhIGNoYW5jZSB0byBwbGF5LlxuICAgICAqL1xuICAgIHByaXZhdGUgaGlkZSgpIHtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy5vdmVybGF5UmVmO1xuICAgICAgICBpZiAoIXJlZikgcmV0dXJuO1xuXG4gICAgICAgIHJlZi5iYWNrZHJvcEVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsICdjbG9zZWQnKTtcblxuICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICByZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICByZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZiA9PT0gcmVmKSB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSB0cmlnZ2VyLlxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c2x5Rm9jdXNlZD8uZm9jdXM/LigpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHBhbmVsID0gcmVmLm92ZXJsYXlFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbZGF0YS1zdGF0ZV0nKTtcbiAgICAgICAgaWYgKHBhbmVsKSB7XG4gICAgICAgICAgICBwYW5lbC5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBmaW5pc2gsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZmluaXNoLCBDTE9TRV9GQUxMQkFDS19NUyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWNvbnRlbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCIgW2F0dHIuZGF0YS1zdGF0ZV09XCJpc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAgIHJvbGU9XCJhbGVydGRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRpdGxlQ21wPy5pZCB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJkZXNjcmlwdGlvbkNtcD8uaWQgfHwgbnVsbFwiXG4gICAgICAgIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+YCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ1wiY29udGVudHNcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nQ29udGVudENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHNpemU6IEFsZXJ0RGlhbG9nU2l6ZSA9ICdsZyc7XG5cbiAgICAvKiogUHJvamVjdGVkIHRpdGxlL2Rlc2NyaXB0aW9uIHVzZWQgdG8gYnVpbGQgdGhlIGRpYWxvZydzIGFjY2Vzc2libGUgbmFtZS4gKi9cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudCkpIHRpdGxlQ21wPzogQWxlcnREaWFsb2dUaXRsZUNvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudCkpIGRlc2NyaXB0aW9uQ21wPzogQWxlcnREaWFsb2dEZXNjcmlwdGlvbkNvbXBvbmVudDtcblxuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlKTtcbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZS5vcGVuJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGNuKFxuICAgICAgICAgICAgXCJmaXhlZCBsZWZ0LVs1MCVdIHRvcC1bNTAlXSB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIHotNTAgZ3JpZCB3LWZ1bGwgZ2FwLTQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZHVyYXRpb24tMjAwIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXRvcC1bNDglXSBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWxlZnQtMS8yIGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLXRvcC1bNDglXSByb3VuZGVkLWxnXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJ21heC13LXhzJzogdGhpcy5zaXplID09PSAneHMnLFxuICAgICAgICAgICAgICAgICdtYXgtdy1zbSc6IHRoaXMuc2l6ZSA9PT0gJ3NtJyxcbiAgICAgICAgICAgICAgICAnbWF4LXctbWQnOiB0aGlzLnNpemUgPT09ICdtZCcsXG4gICAgICAgICAgICAgICAgJ21heC13LWxnJzogdGhpcy5zaXplID09PSAnbGcnLFxuICAgICAgICAgICAgICAgICdtYXgtdy14bCc6IHRoaXMuc2l6ZSA9PT0gJ3hsJyxcbiAgICAgICAgICAgICAgICAnbWF4LXctMnhsJzogdGhpcy5zaXplID09PSAnMnhsJyxcbiAgICAgICAgICAgICAgICAnbWF4LXctZnVsbCc6IHRoaXMuc2l6ZSA9PT0gJ2Z1bGwnLFxuICAgICAgICAgICAgICAgICdtYXgtdy1maXQnOiB0aGlzLnNpemUgPT09ICdmaXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHsgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcycgfVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ0hlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIGdldCBjb21wdXRlZENsYXNzKCkgeyByZXR1cm4gY24oXCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIiwgdGhpcy5jbGFzcyk7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctZm9vdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdjb21wdXRlZENsYXNzJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nRm9vdGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7IHJldHVybiBjbihcImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgc3BhY2UteC0yXCIsIHRoaXMuY2xhc3MpOyB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLXRpdGxlJyxcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnLCAnW2F0dHIuaWRdJzogJ2lkJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nVGl0bGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICAvKiogU3RhYmxlIGlkIHJlZmVyZW5jZWQgYnkgdGhlIGRpYWxvZydzIGBhcmlhLWxhYmVsbGVkYnlgLiAqL1xuICAgIHJlYWRvbmx5IGlkID0gYHRvbGxlLWFsZXJ0LWRpYWxvZy10aXRsZS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICAgIGdldCBjb21wdXRlZENsYXNzKCkgeyByZXR1cm4gY24oXCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kXCIsIHRoaXMuY2xhc3MpOyB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndG9sbGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uJyxcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7ICdbY2xhc3NdJzogJ2NvbXB1dGVkQ2xhc3MnLCAnW2F0dHIuaWRdJzogJ2lkJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICAvKiogU3RhYmxlIGlkIHJlZmVyZW5jZWQgYnkgdGhlIGRpYWxvZydzIGBhcmlhLWRlc2NyaWJlZGJ5YC4gKi9cbiAgICByZWFkb25seSBpZCA9IGB0b2xsZS1hbGVydC1kaWFsb2ctZGVzY3JpcHRpb24tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgICBnZXQgY29tcHV0ZWRDbGFzcygpIHsgcmV0dXJuIGNuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgdGhpcy5jbGFzcyk7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctYWN0aW9uJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dBY3Rpb25Db21wb25lbnQge1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIEZpcmVzIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlcywgc28gY29uc3VtZXJzIGNhbiBydW4gdGhlIGNvbmZpcm1lZCBhY3Rpb24uICovXG4gICAgQE91dHB1dCgpIGNvbmZpcm1lZCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1lZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5hbGVydERpYWxvZ1NlcnZpY2U/LnNldE9wZW4oZmFsc2UpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b2xsZS1hbGVydC1kaWFsb2ctY2FuY2VsJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnREaWFsb2dDYW5jZWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgYWxlcnREaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0RGlhbG9nSW50ZXJuYWxTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIEZpcmVzIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlcywgc28gY29uc3VtZXJzIGNhbiByZWFjdCB0byBhIGRpc21pc3NhbC4gKi9cbiAgICBAT3V0cHV0KCkgY2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2FuY2VsbGVkLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmFsZXJ0RGlhbG9nU2VydmljZT8uc2V0T3BlbihmYWxzZSk7XG4gICAgfVxufVxuIl19
@@ -3,6 +3,7 @@ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
3
3
  import { ComponentPortal } from '@angular/cdk/portal';
4
4
  import { AlertDialogRef } from './alert-dialog.types';
5
5
  import { AlertDialogDynamicComponent } from './alert-dialog-dynamic.component';
6
+ import { CLOSE_FALLBACK_MS } from './alert-dialog.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export class AlertDialogService {
8
9
  overlay = inject(Overlay);
@@ -12,7 +13,15 @@ export class AlertDialogService {
12
13
  const previouslyFocused = document.activeElement;
13
14
  const overlayConfig = new OverlayConfig({
14
15
  hasBackdrop: true,
15
- backdropClass: ['cdk-overlay-backdrop', 'bg-black/80', 'backdrop-blur-sm'],
16
+ backdropClass: [
17
+ 'cdk-overlay-backdrop',
18
+ 'bg-black/80',
19
+ 'backdrop-blur-sm',
20
+ 'data-[state=open]:animate-in',
21
+ 'data-[state=open]:fade-in-0',
22
+ 'data-[state=closed]:animate-out',
23
+ 'data-[state=closed]:fade-out-0',
24
+ ],
16
25
  positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
17
26
  scrollStrategy: this.overlay.scrollStrategies.block()
18
27
  });
@@ -20,13 +29,36 @@ export class AlertDialogService {
20
29
  const dialogRef = new AlertDialogRef();
21
30
  const portal = new ComponentPortal(AlertDialogDynamicComponent, null, this.injector);
22
31
  const componentRef = overlayRef.attach(portal);
32
+ // The backdrop element only exists once attached — setting this any
33
+ // earlier would silently no-op.
34
+ overlayRef.backdropElement?.setAttribute('data-state', 'open');
23
35
  componentRef.instance.config = config;
24
36
  componentRef.instance.dialogRef = dialogRef;
37
+ // The result (`afterClosed$`) is ready immediately, but disposing the
38
+ // overlay waits for the content panel's exit animation to finish (or
39
+ // a fallback timeout), so `data-[state=closed]:animate-out` gets a
40
+ // chance to play instead of being torn down mid-frame.
25
41
  dialogRef.afterClosed$.subscribe(() => {
26
- overlayRef.detach();
27
- overlayRef.dispose();
28
- // Restore focus to the trigger.
29
- previouslyFocused?.focus?.();
42
+ overlayRef.backdropElement?.setAttribute('data-state', 'closed');
43
+ componentRef.instance.closing = true;
44
+ let finished = false;
45
+ const finish = () => {
46
+ if (finished)
47
+ return;
48
+ finished = true;
49
+ overlayRef.detach();
50
+ overlayRef.dispose();
51
+ // Restore focus to the trigger.
52
+ previouslyFocused?.focus?.();
53
+ };
54
+ const panel = overlayRef.overlayElement.querySelector('[data-state]');
55
+ if (panel) {
56
+ panel.addEventListener('animationend', finish, { once: true });
57
+ setTimeout(finish, CLOSE_FALLBACK_MS);
58
+ }
59
+ else {
60
+ finish();
61
+ }
30
62
  });
31
63
  // Alert-dialog semantics: backdrop clicks must NOT dismiss.
32
64
  // Escape still closes the dialog.
@@ -47,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
47
79
  providedIn: 'root'
48
80
  }]
49
81
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2FsZXJ0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFvQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFxQixjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFLL0UsTUFBTSxPQUFPLGtCQUFrQjtJQUNuQixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsSUFBSSxDQUFDLE1BQXlCO1FBQzFCLDBEQUEwRDtRQUMxRCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBRXZFLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ3BDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxDQUFDLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztZQUMxRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUYsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1NBQ3hELENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFFdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN0QyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFNUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsZ0NBQWdDO1lBQ2hDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCw0REFBNEQ7UUFDNUQsa0NBQWtDO1FBQ2xDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDMUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzt3R0F6Q1Esa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dDb25maWcsIEFsZXJ0RGlhbG9nUmVmIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cudHlwZXMnO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dEeW5hbWljQ29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0RGlhbG9nU2VydmljZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgb3Blbihjb25maWc6IEFsZXJ0RGlhbG9nQ29uZmlnKTogQWxlcnREaWFsb2dSZWYge1xuICAgICAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgb24gY2xvc2UuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS1iYWNrZHJvcCcsICdiZy1ibGFjay84MCcsICdiYWNrZHJvcC1ibHVyLXNtJ10sXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IEFsZXJ0RGlhbG9nUmVmKCk7XG5cbiAgICAgICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChBbGVydERpYWxvZ0R5bmFtaWNDb21wb25lbnQsIG51bGwsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWFsb2dSZWYgPSBkaWFsb2dSZWY7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAgIHByZXZpb3VzbHlGb2N1c2VkPy5mb2N1cz8uKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFsZXJ0LWRpYWxvZyBzZW1hbnRpY3M6IGJhY2tkcm9wIGNsaWNrcyBtdXN0IE5PVCBkaXNtaXNzLlxuICAgICAgICAvLyBFc2NhcGUgc3RpbGwgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICAgIG92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuY2xvc2UoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2FsZXJ0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUs3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQ25CLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVwQyxJQUFJLENBQUMsTUFBeUI7UUFDMUIsMERBQTBEO1FBQzFELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGFBQW1DLENBQUM7UUFFdkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDcEMsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFO2dCQUNYLHNCQUFzQjtnQkFDdEIsYUFBYTtnQkFDYixrQkFBa0I7Z0JBQ2xCLDhCQUE4QjtnQkFDOUIsNkJBQTZCO2dCQUM3QixpQ0FBaUM7Z0JBQ2pDLGdDQUFnQzthQUNuQztZQUNELGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxRixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7U0FDeEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUV2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0Msb0VBQW9FO1FBQ3BFLGdDQUFnQztRQUNoQyxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3RDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUU1QyxzRUFBc0U7UUFDdEUscUVBQXFFO1FBQ3JFLG1FQUFtRTtRQUNuRSx1REFBdUQ7UUFDdkQsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRSxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFFckMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxRQUFRO29CQUFFLE9BQU87Z0JBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixnQ0FBZ0M7Z0JBQ2hDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUFDO1lBRUYsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQWMsY0FBYyxDQUFDLENBQUM7WUFDbkYsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxVQUFVLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sRUFBRSxDQUFDO1lBQ2IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsNERBQTREO1FBQzVELGtDQUFrQztRQUNsQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQzFELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7d0dBekVRLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmYsTUFBTTs7NEZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFsZXJ0RGlhbG9nQ29uZmlnLCBBbGVydERpYWxvZ1JlZiB9IGZyb20gJy4vYWxlcnQtZGlhbG9nLnR5cGVzJztcbmltcG9ydCB7IEFsZXJ0RGlhbG9nRHluYW1pY0NvbXBvbmVudCB9IGZyb20gJy4vYWxlcnQtZGlhbG9nLWR5bmFtaWMuY29tcG9uZW50JztcbmltcG9ydCB7IENMT1NFX0ZBTExCQUNLX01TIH0gZnJvbSAnLi9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBbGVydERpYWxvZ1NlcnZpY2Uge1xuICAgIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIG9wZW4oY29uZmlnOiBBbGVydERpYWxvZ0NvbmZpZyk6IEFsZXJ0RGlhbG9nUmVmIHtcbiAgICAgICAgLy8gUmVtZW1iZXIgdGhlIHRyaWdnZXIgc28gZm9jdXMgY2FuIGJlIHJlc3RvcmVkIG9uIGNsb3NlLlxuICAgICAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFtcbiAgICAgICAgICAgICAgICAnY2RrLW92ZXJsYXktYmFja2Ryb3AnLFxuICAgICAgICAgICAgICAgICdiZy1ibGFjay84MCcsXG4gICAgICAgICAgICAgICAgJ2JhY2tkcm9wLWJsdXItc20nLFxuICAgICAgICAgICAgICAgICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluJyxcbiAgICAgICAgICAgICAgICAnZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wJyxcbiAgICAgICAgICAgICAgICAnZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCcsXG4gICAgICAgICAgICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCcsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBBbGVydERpYWxvZ1JlZigpO1xuXG4gICAgICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoQWxlcnREaWFsb2dEeW5hbWljQ29tcG9uZW50LCBudWxsLCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gb3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgICAgICAvLyBUaGUgYmFja2Ryb3AgZWxlbWVudCBvbmx5IGV4aXN0cyBvbmNlIGF0dGFjaGVkIOKAlCBzZXR0aW5nIHRoaXMgYW55XG4gICAgICAgIC8vIGVhcmxpZXIgd291bGQgc2lsZW50bHkgbm8tb3AuXG4gICAgICAgIG92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCAnb3BlbicpO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWFsb2dSZWYgPSBkaWFsb2dSZWY7XG5cbiAgICAgICAgLy8gVGhlIHJlc3VsdCAoYGFmdGVyQ2xvc2VkJGApIGlzIHJlYWR5IGltbWVkaWF0ZWx5LCBidXQgZGlzcG9zaW5nIHRoZVxuICAgICAgICAvLyBvdmVybGF5IHdhaXRzIGZvciB0aGUgY29udGVudCBwYW5lbCdzIGV4aXQgYW5pbWF0aW9uIHRvIGZpbmlzaCAob3JcbiAgICAgICAgLy8gYSBmYWxsYmFjayB0aW1lb3V0KSwgc28gYGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXRgIGdldHMgYVxuICAgICAgICAvLyBjaGFuY2UgdG8gcGxheSBpbnN0ZWFkIG9mIGJlaW5nIHRvcm4gZG93biBtaWQtZnJhbWUuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCAnY2xvc2VkJyk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY2xvc2luZyA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBvdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICAgICAgICAgIG92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgZm9jdXMgdG8gdGhlIHRyaWdnZXIuXG4gICAgICAgICAgICAgICAgcHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignW2RhdGEtc3RhdGVdJyk7XG4gICAgICAgICAgICBpZiAocGFuZWwpIHtcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBmaW5pc2gsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaCwgQ0xPU0VfRkFMTEJBQ0tfTVMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWxlcnQtZGlhbG9nIHNlbWFudGljczogYmFja2Ryb3AgY2xpY2tzIG11c3QgTk9UIGRpc21pc3MuXG4gICAgICAgIC8vIEVzY2FwZSBzdGlsbCBjbG9zZXMgdGhlIGRpYWxvZy5cbiAgICAgICAgb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XG4gICAgfVxufVxuIl19
@@ -67,11 +67,16 @@ export class ContextMenuService {
67
67
  })
68
68
  ]
69
69
  });
70
+ // Position via left/top, not transform: the menu's own
71
+ // data-[state=open]:zoom-in-95/slide-in-from-top-2 enter animation also
72
+ // drives `transform`, and a CSS animation overrides whatever an inline
73
+ // transform says for as long as it's running — so a translate() here
74
+ // would get clobbered by the animation and only "snap" into place once
75
+ // it finishes, which is exactly the top-left-then-jump flash this avoids.
70
76
  Object.assign(menuElement.style, {
71
77
  position: 'fixed',
72
- left: '0',
73
- top: '0',
74
- transform: `translate(${Math.round(x)}px, ${Math.round(y)}px)`
78
+ left: `${Math.round(x)}px`,
79
+ top: `${Math.round(y)}px`,
75
80
  });
76
81
  }
77
82
  async positionSubmenu(triggerElement, submenuElement) {
@@ -100,9 +105,8 @@ export class ContextMenuService {
100
105
  });
101
106
  Object.assign(submenuElement.style, {
102
107
  position: 'fixed',
103
- left: '0',
104
- top: '0',
105
- transform: `translate(${Math.round(x)}px, ${Math.round(y)}px)`
108
+ left: `${Math.round(x)}px`,
109
+ top: `${Math.round(y)}px`,
106
110
  });
107
111
  }
108
112
  performAction(actionId) {
@@ -118,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
118
122
  providedIn: 'root'
119
123
  }]
120
124
  }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2NvbnRleHQtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBMkI5RSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLE1BQU0sR0FBcUI7UUFDakMsQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztRQUNKLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDO0lBRU8sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRTdELElBQUksQ0FBQyxNQUtKO1FBQ0MsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFL0QsK0JBQStCO1FBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ2hCLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTztZQUNoQixLQUFLO1lBQ0wsTUFBTSxFQUFFLElBQUk7WUFDWixjQUFjO1lBQ2QsUUFBUTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxL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YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21wdXRlUG9zaXRpb24sIG9mZnNldCwgc2hpZnQsIGZsaXAsIHNpemUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnVJdGVtID0ge1xuICBpZD86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGVzdHJ1Y3RpdmU/OiBib29sZWFuO1xuICBzZXBhcmF0b3I/OiBib29sZWFuO1xuICBzdWJtZW51PzogQ29udGV4dE1lbnVJdGVtW107XG4gIHNob3J0Y3V0Pzogc3RyaW5nO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgdHlwZT86ICdkZWZhdWx0JyB8ICdjaGVja2JveCcgfCAncmFkaW8nO1xufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudVN0YXRlID0ge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgaXRlbXM6IENvbnRleHRNZW51SXRlbVtdO1xuICBpc09wZW46IGJvb2xlYW47XG4gIHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIG9uQWN0aW9uPzogKGFjdGlvbklkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51U2VydmljZSB7XG4gIHByaXZhdGUgX3N0YXRlOiBDb250ZXh0TWVudVN0YXRlID0ge1xuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgICBpdGVtczogW10sXG4gICAgaXNPcGVuOiBmYWxzZVxuICB9O1xuXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGV4dE1lbnVTdGF0ZT4oKTtcblxuICBvcGVuKGNvbmZpZzoge1xuICAgIGV2ZW50OiBNb3VzZUV2ZW50O1xuICAgIGl0ZW1zPzogQ29udGV4dE1lbnVJdGVtW107XG4gICAgdHJpZ2dlckVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBvbkFjdGlvbj86IChhY3Rpb25JZDogc3RyaW5nKSA9PiB2b2lkO1xuICB9KSB7XG4gICAgY29uc3QgeyBldmVudCwgaXRlbXMgPSBbXSwgdHJpZ2dlckVsZW1lbnQsIG9uQWN0aW9uIH0gPSBjb25maWc7XG5cbiAgICAvLyBQcmV2ZW50IGJyb3dzZXIgY29udGV4dCBtZW51XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgIHk6IGV2ZW50LmNsaWVudFksXG4gICAgICBpdGVtcyxcbiAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgIHRyaWdnZXJFbGVtZW50LFxuICAgICAgb25BY3Rpb25cbiAgICB9O1xuXG4gICAgdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdCh0aGlzLl9zdGF0ZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IHsgLi4udGhpcy5fc3RhdGUsIGlzT3BlbjogZmFsc2UgfTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlZC5lbWl0KHRoaXMuX3N0YXRlKTtcbiAgfVxuXG4gIGFzeW5jIHBvc2l0aW9uTWVudShtZW51RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlO1xuICAgIGlmICghc3RhdGUuaXNPcGVuIHx8ICFtZW51RWxlbWVudCkgcmV0dXJuO1xuXG4gICAgLy8gQ3JlYXRlIGEgcHJlY2lzZSB2aXJ0dWFsIGVsZW1lbnQgZm9yIHRoZSBtb3VzZSBjb29yZGluYXRlc1xuICAgIGNvbnN0IHZpcnR1YWxFbCA9IHtcbiAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgeDogc3RhdGUueCxcbiAgICAgICAgICB5OiBzdGF0ZS55LFxuICAgICAgICAgIHRvcDogc3RhdGUueSxcbiAgICAgICAgICBsZWZ0OiBzdGF0ZS54LFxuICAgICAgICAgIHJpZ2h0OiBzdGF0ZS54LFxuICAgICAgICAgIGJvdHRvbTogc3RhdGUueSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgeyB4LCB5IH0gPSBhd2FpdCBjb21wdXRlUG9zaXRpb24odmlydHVhbEVsIGFzIGFueSwgbWVudUVsZW1lbnQsIHtcbiAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsIC8vIFN0YW5kYXJkOiBNZW51IHRvcC1sZWZ0IGFsaWducyB3aXRoIG1vdXNlXG4gICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgb2Zmc2V0KDIpLCAvLyBTbGlnaHQgb2Zmc2V0IHNvIG1vdXNlIGlzbid0IGNvdmVyaW5nIHRoZSBmaXJzdCBwaXhlbFxuICAgICAgICBmbGlwKHtcbiAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IFsnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddXG4gICAgICAgIH0pLFxuICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDEwIH0pLFxuICAgICAgICBzaXplKHtcbiAgICAgICAgICBhcHBseSh7IGF2YWlsYWJsZUhlaWdodCwgYXZhaWxhYmxlV2lkdGgsIGVsZW1lbnRzIH0pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUsIHtcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtNYXRoLm1heCgxMDAsIGF2YWlsYWJsZUhlaWdodCAtIDE2KX1weGAsXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBgJHtNYXRoLm1heCgyMDAsIGF2YWlsYWJsZVdpZHRoIC0gMTYpfXB4YCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIE9iamVjdC5hc3NpZ24obWVudUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGUoJHtNYXRoLnJvdW5kKHgpfXB4LCAke01hdGgucm91bmQoeSl9cHgpYFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcG9zaXRpb25TdWJtZW51KHRyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCwgc3VibWVudUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbWVudCB8fCAhc3VibWVudUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHsgeCwgeSB9ID0gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHRyaWdnZXJFbGVtZW50LCBzdWJtZW51RWxlbWVudCwge1xuICAgICAgcGxhY2VtZW50OiAncmlnaHQtc3RhcnQnLCAvLyBTdGFuZGFyZDogU3VibWVudSBvcGVucyB0byB0aGUgcmlnaHRcbiAgICAgIHN0cmF0ZWd5OiAnZml4ZWQnLFxuICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICBvZmZzZXQoLTQpLCAvLyBPdmVybGFwIHNsaWdodGx5IHdpdGggcGFyZW50IG1lbnVcbiAgICAgICAgZmxpcCh7XG4gICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzOiBbJ2xlZnQtc3RhcnQnLCAnYm90dG9tLXN0YXJ0J11cbiAgICAgICAgfSksXG4gICAgICAgIHNoaWZ0KHsgcGFkZGluZzogMTAgfSksXG4gICAgICAgIHNpemUoe1xuICAgICAgICAgIGFwcGx5KHsgYXZhaWxhYmxlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgZWxlbWVudHMgfSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke01hdGgubWF4KDEwMCwgYXZhaWxhYmxlSGVpZ2h0IC0gMTYpfXB4YCxcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IGAke01hdGgubWF4KDIwMCwgYXZhaWxhYmxlV2lkdGggLSAxNil9cHhgLFxuICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmFzc2lnbihzdWJtZW51RWxlbWVudC5zdHlsZSwge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICBsZWZ0OiAnMCcsXG4gICAgICB0b3A6ICcwJyxcbiAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSgke01hdGgucm91bmQoeCl9cHgsICR7TWF0aC5yb3VuZCh5KX1weClgXG4gICAgfSk7XG4gIH1cblxuICBwZXJmb3JtQWN0aW9uKGFjdGlvbklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGF0ZS5vbkFjdGlvbj8uKGFjdGlvbklkKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn0iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2NvbnRleHQtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBMkI5RSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLE1BQU0sR0FBcUI7UUFDakMsQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztRQUNKLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDO0lBRU8sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRTdELElBQUksQ0FBQyxNQUtKO1FBQ0MsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFL0QsK0JBQStCO1FBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ2hCLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTztZQUNoQixLQUFLO1lBQ0wsTUFBTSxFQUFFLElBQUk7WUFDWixjQUFjO1lBQ2QsUUFBUTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxL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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBvZmZzZXQsIHNoaWZ0LCBmbGlwLCBzaXplIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW51SXRlbSA9IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRlc3RydWN0aXZlPzogYm9vbGVhbjtcbiAgc2VwYXJhdG9yPzogYm9vbGVhbjtcbiAgc3VibWVudT86IENvbnRleHRNZW51SXRlbVtdO1xuICBzaG9ydGN1dD86IHN0cmluZztcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIHR5cGU/OiAnZGVmYXVsdCcgfCAnY2hlY2tib3gnIHwgJ3JhZGlvJztcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnVTdGF0ZSA9IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIGl0ZW1zOiBDb250ZXh0TWVudUl0ZW1bXTtcbiAgaXNPcGVuOiBib29sZWFuO1xuICB0cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBvbkFjdGlvbj86IChhY3Rpb25JZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudVNlcnZpY2Uge1xuICBwcml2YXRlIF9zdGF0ZTogQ29udGV4dE1lbnVTdGF0ZSA9IHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgaXRlbXM6IFtdLFxuICAgIGlzT3BlbjogZmFsc2VcbiAgfTtcblxuICByZWFkb25seSBzdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRleHRNZW51U3RhdGU+KCk7XG5cbiAgb3Blbihjb25maWc6IHtcbiAgICBldmVudDogTW91c2VFdmVudDtcbiAgICBpdGVtcz86IENvbnRleHRNZW51SXRlbVtdO1xuICAgIHRyaWdnZXJFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgb25BY3Rpb24/OiAoYWN0aW9uSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgfSkge1xuICAgIGNvbnN0IHsgZXZlbnQsIGl0ZW1zID0gW10sIHRyaWdnZXJFbGVtZW50LCBvbkFjdGlvbiB9ID0gY29uZmlnO1xuXG4gICAgLy8gUHJldmVudCBicm93c2VyIGNvbnRleHQgbWVudVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLl9zdGF0ZSA9IHtcbiAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgaXRlbXMsXG4gICAgICBpc09wZW46IHRydWUsXG4gICAgICB0cmlnZ2VyRWxlbWVudCxcbiAgICAgIG9uQWN0aW9uXG4gICAgfTtcblxuICAgIHRoaXMuc3RhdGVDaGFuZ2VkLmVtaXQodGhpcy5fc3RhdGUpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5fc3RhdGUgPSB7IC4uLnRoaXMuX3N0YXRlLCBpc09wZW46IGZhbHNlIH07XG4gICAgdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdCh0aGlzLl9zdGF0ZSk7XG4gIH1cblxuICBhc3luYyBwb3NpdGlvbk1lbnUobWVudUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9zdGF0ZTtcbiAgICBpZiAoIXN0YXRlLmlzT3BlbiB8fCAhbWVudUVsZW1lbnQpIHJldHVybjtcblxuICAgIC8vIENyZWF0ZSBhIHByZWNpc2UgdmlydHVhbCBlbGVtZW50IGZvciB0aGUgbW91c2UgY29vcmRpbmF0ZXNcbiAgICBjb25zdCB2aXJ0dWFsRWwgPSB7XG4gICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgIHg6IHN0YXRlLngsXG4gICAgICAgICAgeTogc3RhdGUueSxcbiAgICAgICAgICB0b3A6IHN0YXRlLnksXG4gICAgICAgICAgbGVmdDogc3RhdGUueCxcbiAgICAgICAgICByaWdodDogc3RhdGUueCxcbiAgICAgICAgICBib3R0b206IHN0YXRlLnksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHsgeCwgeSB9ID0gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHZpcnR1YWxFbCBhcyBhbnksIG1lbnVFbGVtZW50LCB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLCAvLyBTdGFuZGFyZDogTWVudSB0b3AtbGVmdCBhbGlnbnMgd2l0aCBtb3VzZVxuICAgICAgc3RyYXRlZ3k6ICdmaXhlZCcsXG4gICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgIG9mZnNldCgyKSwgLy8gU2xpZ2h0IG9mZnNldCBzbyBtb3VzZSBpc24ndCBjb3ZlcmluZyB0aGUgZmlyc3QgcGl4ZWxcbiAgICAgICAgZmxpcCh7XG4gICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzOiBbJ2JvdHRvbS1lbmQnLCAndG9wLXN0YXJ0JywgJ3RvcC1lbmQnXVxuICAgICAgICB9KSxcbiAgICAgICAgc2hpZnQoeyBwYWRkaW5nOiAxMCB9KSxcbiAgICAgICAgc2l6ZSh7XG4gICAgICAgICAgYXBwbHkoeyBhdmFpbGFibGVIZWlnaHQsIGF2YWlsYWJsZVdpZHRoLCBlbGVtZW50cyB9KSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgIG1heEhlaWdodDogYCR7TWF0aC5tYXgoMTAwLCBhdmFpbGFibGVIZWlnaHQgLSAxNil9cHhgLFxuICAgICAgICAgICAgICBtYXhXaWR0aDogYCR7TWF0aC5tYXgoMjAwLCBhdmFpbGFibGVXaWR0aCAtIDE2KX1weGAsXG4gICAgICAgICAgICAgIG92ZXJmbG93WTogJ2F1dG8nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICAvLyBQb3NpdGlvbiB2aWEgbGVmdC90b3AsIG5vdCB0cmFuc2Zvcm06IHRoZSBtZW51J3Mgb3duXG4gICAgLy8gZGF0YS1bc3RhdGU9b3Blbl06em9vbS1pbi05NS9zbGlkZS1pbi1mcm9tLXRvcC0yIGVudGVyIGFuaW1hdGlvbiBhbHNvXG4gICAgLy8gZHJpdmVzIGB0cmFuc2Zvcm1gLCBhbmQgYSBDU1MgYW5pbWF0aW9uIG92ZXJyaWRlcyB3aGF0ZXZlciBhbiBpbmxpbmVcbiAgICAvLyB0cmFuc2Zvcm0gc2F5cyBmb3IgYXMgbG9uZyBhcyBpdCdzIHJ1bm5pbmcg4oCUIHNvIGEgdHJhbnNsYXRlKCkgaGVyZVxuICAgIC8vIHdvdWxkIGdldCBjbG9iYmVyZWQgYnkgdGhlIGFuaW1hdGlvbiBhbmQgb25seSBcInNuYXBcIiBpbnRvIHBsYWNlIG9uY2VcbiAgICAvLyBpdCBmaW5pc2hlcywgd2hpY2ggaXMgZXhhY3RseSB0aGUgdG9wLWxlZnQtdGhlbi1qdW1wIGZsYXNoIHRoaXMgYXZvaWRzLlxuICAgIE9iamVjdC5hc3NpZ24obWVudUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgbGVmdDogYCR7TWF0aC5yb3VuZCh4KX1weGAsXG4gICAgICB0b3A6IGAke01hdGgucm91bmQoeSl9cHhgLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcG9zaXRpb25TdWJtZW51KHRyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCwgc3VibWVudUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCF0cmlnZ2VyRWxlbWVudCB8fCAhc3VibWVudUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHsgeCwgeSB9ID0gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHRyaWdnZXJFbGVtZW50LCBzdWJtZW51RWxlbWVudCwge1xuICAgICAgcGxhY2VtZW50OiAncmlnaHQtc3RhcnQnLCAvLyBTdGFuZGFyZDogU3VibWVudSBvcGVucyB0byB0aGUgcmlnaHRcbiAgICAgIHN0cmF0ZWd5OiAnZml4ZWQnLFxuICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICBvZmZzZXQoLTQpLCAvLyBPdmVybGFwIHNsaWdodGx5IHdpdGggcGFyZW50IG1lbnVcbiAgICAgICAgZmxpcCh7XG4gICAgICAgICAgcGFkZGluZzogMTAsXG4gICAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzOiBbJ2xlZnQtc3RhcnQnLCAnYm90dG9tLXN0YXJ0J11cbiAgICAgICAgfSksXG4gICAgICAgIHNoaWZ0KHsgcGFkZGluZzogMTAgfSksXG4gICAgICAgIHNpemUoe1xuICAgICAgICAgIGFwcGx5KHsgYXZhaWxhYmxlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgZWxlbWVudHMgfSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICBtYXhIZWlnaHQ6IGAke01hdGgubWF4KDEwMCwgYXZhaWxhYmxlSGVpZ2h0IC0gMTYpfXB4YCxcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IGAke01hdGgubWF4KDIwMCwgYXZhaWxhYmxlV2lkdGggLSAxNil9cHhgLFxuICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmFzc2lnbihzdWJtZW51RWxlbWVudC5zdHlsZSwge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICBsZWZ0OiBgJHtNYXRoLnJvdW5kKHgpfXB4YCxcbiAgICAgIHRvcDogYCR7TWF0aC5yb3VuZCh5KX1weGAsXG4gICAgfSk7XG4gIH1cblxuICBwZXJmb3JtQWN0aW9uKGFjdGlvbklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGF0ZS5vbkFjdGlvbj8uKGFjdGlvbklkKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn0iXX0=
@@ -1,10 +1,19 @@
1
- import { Subject } from 'rxjs';
1
+ import { BehaviorSubject, Subject } from 'rxjs';
2
+ /**
3
+ * Safety net if the exit animation's `animationend` never fires — reduced
4
+ * motion, no matching keyframe, or a panel that never rendered — so a modal
5
+ * can never get stuck open forever.
6
+ */
7
+ const CLOSE_FALLBACK_MS = 300;
2
8
  export class ModalRef {
3
9
  overlay;
4
10
  modal;
5
11
  stack;
6
12
  _afterClosed$ = new Subject();
7
13
  afterClosed$ = this._afterClosed$.asObservable();
14
+ _closingSubject = new BehaviorSubject(false);
15
+ /** True once `close()` has been called — drives the panel's exit animation. */
16
+ closing$ = this._closingSubject.asObservable();
8
17
  constructor(overlay, modal, stack) {
9
18
  this.overlay = overlay;
10
19
  this.modal = modal;
@@ -18,14 +27,34 @@ export class ModalRef {
18
27
  });
19
28
  }
20
29
  /**
21
- * Closes the modal instantly.
30
+ * Closes the modal. Signals the panel and backdrop to play their exit
31
+ * animation, then tears down the overlay once it finishes (or after
32
+ * `CLOSE_FALLBACK_MS`, whichever comes first).
22
33
  * @param result Data to pass back to the caller
23
34
  */
24
35
  close(result) {
25
- this._afterClosed$.next(result);
26
- this._afterClosed$.complete();
27
- this.overlay.dispose(); // Instant disposal (No animation timer)
28
- this.stack.unregister(this);
36
+ if (this._closingSubject.value)
37
+ return;
38
+ this._closingSubject.next(true);
39
+ this.overlay.backdropElement?.setAttribute('data-state', 'closed');
40
+ let finished = false;
41
+ const finish = () => {
42
+ if (finished)
43
+ return;
44
+ finished = true;
45
+ this._afterClosed$.next(result);
46
+ this._afterClosed$.complete();
47
+ this.overlay.dispose();
48
+ this.stack.unregister(this);
49
+ };
50
+ const panel = this.overlay.overlayElement.querySelector('[data-state]');
51
+ if (panel) {
52
+ panel.addEventListener('animationend', finish, { once: true });
53
+ setTimeout(finish, CLOSE_FALLBACK_MS);
54
+ }
55
+ else {
56
+ finish();
57
+ }
29
58
  }
30
59
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9tb2RhbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkvQixNQUFNLE9BQU8sUUFBUTtJQUtUO0lBQ0Q7SUFDQztJQU5PLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztJQUNyRSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVqRCxZQUNVLE9BQW1CLEVBQ3BCLEtBQVksRUFDWCxLQUF3QjtRQUZ4QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUVoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsd0NBQXdDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gJy4vbW9kYWwnO1xuaW1wb3J0IHsgTW9kYWxTdGFja1NlcnZpY2UgfSBmcm9tICcuL21vZGFsLXN0YWNrLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgTW9kYWxSZWY8UiA9IGFueT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlckNsb3NlZCQgPSBuZXcgU3ViamVjdDxSIHwgdW5kZWZpbmVkIHwgbnVsbD4oKTtcbiAgYWZ0ZXJDbG9zZWQkID0gdGhpcy5fYWZ0ZXJDbG9zZWQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVJlZixcbiAgICBwdWJsaWMgbW9kYWw6IE1vZGFsLFxuICAgIHByaXZhdGUgc3RhY2s6IE1vZGFsU3RhY2tTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RhY2sucmVnaXN0ZXIodGhpcyk7XG5cbiAgICAvLyBIYW5kbGUgQmFja2Ryb3AgQ2xpY2tcbiAgICB0aGlzLm92ZXJsYXkuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tb2RhbC5iYWNrZHJvcENsb3NlKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIGluc3RhbnRseS5cbiAgICogQHBhcmFtIHJlc3VsdCBEYXRhIHRvIHBhc3MgYmFjayB0byB0aGUgY2FsbGVyXG4gICAqL1xuICBjbG9zZShyZXN1bHQ/OiBSKTogdm9pZCB7XG4gICAgdGhpcy5fYWZ0ZXJDbG9zZWQkLm5leHQocmVzdWx0KTtcbiAgICB0aGlzLl9hZnRlckNsb3NlZCQuY29tcGxldGUoKTtcbiAgICB0aGlzLm92ZXJsYXkuZGlzcG9zZSgpOyAvLyBJbnN0YW50IGRpc3Bvc2FsIChObyBhbmltYXRpb24gdGltZXIpXG4gICAgdGhpcy5zdGFjay51bnJlZ2lzdGVyKHRoaXMpO1xuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9tb2RhbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJaEQ7Ozs7R0FJRztBQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBRTlCLE1BQU0sT0FBTyxRQUFRO0lBU1Q7SUFDRDtJQUNDO0lBVk8sYUFBYSxHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0lBQ3JFLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWhDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUN2RSwrRUFBK0U7SUFDdEUsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFeEQsWUFDVSxPQUFtQixFQUNwQixLQUFZLEVBQ1gsS0FBd0I7UUFGeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1gsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxNQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkUsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLFFBQVE7Z0JBQUUsT0FBTztZQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQWMsY0FBYyxDQUFDLENBQUM7UUFDckYsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDL0QsVUFBVSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICcuL21vZGFsJztcbmltcG9ydCB7IE1vZGFsU3RhY2tTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1zdGFjay5zZXJ2aWNlJztcblxuLyoqXG4gKiBTYWZldHkgbmV0IGlmIHRoZSBleGl0IGFuaW1hdGlvbidzIGBhbmltYXRpb25lbmRgIG5ldmVyIGZpcmVzIOKAlCByZWR1Y2VkXG4gKiBtb3Rpb24sIG5vIG1hdGNoaW5nIGtleWZyYW1lLCBvciBhIHBhbmVsIHRoYXQgbmV2ZXIgcmVuZGVyZWQg4oCUIHNvIGEgbW9kYWxcbiAqIGNhbiBuZXZlciBnZXQgc3R1Y2sgb3BlbiBmb3JldmVyLlxuICovXG5jb25zdCBDTE9TRV9GQUxMQkFDS19NUyA9IDMwMDtcblxuZXhwb3J0IGNsYXNzIE1vZGFsUmVmPFIgPSBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJDbG9zZWQkID0gbmV3IFN1YmplY3Q8UiB8IHVuZGVmaW5lZCB8IG51bGw+KCk7XG4gIGFmdGVyQ2xvc2VkJCA9IHRoaXMuX2FmdGVyQ2xvc2VkJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogVHJ1ZSBvbmNlIGBjbG9zZSgpYCBoYXMgYmVlbiBjYWxsZWQg4oCUIGRyaXZlcyB0aGUgcGFuZWwncyBleGl0IGFuaW1hdGlvbi4gKi9cbiAgcmVhZG9ubHkgY2xvc2luZyQgPSB0aGlzLl9jbG9zaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlSZWYsXG4gICAgcHVibGljIG1vZGFsOiBNb2RhbCxcbiAgICBwcml2YXRlIHN0YWNrOiBNb2RhbFN0YWNrU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN0YWNrLnJlZ2lzdGVyKHRoaXMpO1xuXG4gICAgLy8gSGFuZGxlIEJhY2tkcm9wIENsaWNrXG4gICAgdGhpcy5vdmVybGF5LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubW9kYWwuYmFja2Ryb3BDbG9zZSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbC4gU2lnbmFscyB0aGUgcGFuZWwgYW5kIGJhY2tkcm9wIHRvIHBsYXkgdGhlaXIgZXhpdFxuICAgKiBhbmltYXRpb24sIHRoZW4gdGVhcnMgZG93biB0aGUgb3ZlcmxheSBvbmNlIGl0IGZpbmlzaGVzIChvciBhZnRlclxuICAgKiBgQ0xPU0VfRkFMTEJBQ0tfTVNgLCB3aGljaGV2ZXIgY29tZXMgZmlyc3QpLlxuICAgKiBAcGFyYW0gcmVzdWx0IERhdGEgdG8gcGFzcyBiYWNrIHRvIHRoZSBjYWxsZXJcbiAgICovXG4gIGNsb3NlKHJlc3VsdD86IFIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2xvc2luZ1N1YmplY3QudmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl9jbG9zaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIHRoaXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsICdjbG9zZWQnKTtcblxuICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbmlzaCA9ICgpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fYWZ0ZXJDbG9zZWQkLm5leHQocmVzdWx0KTtcbiAgICAgIHRoaXMuX2FmdGVyQ2xvc2VkJC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5vdmVybGF5LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuc3RhY2sudW5yZWdpc3Rlcih0aGlzKTtcbiAgICB9O1xuXG4gICAgY29uc3QgcGFuZWwgPSB0aGlzLm92ZXJsYXkub3ZlcmxheUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ1tkYXRhLXN0YXRlXScpO1xuICAgIGlmIChwYW5lbCkge1xuICAgICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgZmluaXNoLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICBzZXRUaW1lb3V0KGZpbmlzaCwgQ0xPU0VfRkFMTEJBQ0tfTVMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5pc2goKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==