@spartan-ng/brain 0.0.1-alpha.405 → 0.0.1-alpha.407

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.
Files changed (38) hide show
  1. package/alert-dialog/lib/brn-alert-dialog-trigger.directive.d.ts +3 -2
  2. package/dialog/index.d.ts +1 -0
  3. package/dialog/lib/brn-dialog-close.directive.d.ts +2 -4
  4. package/dialog/lib/brn-dialog-content.directive.d.ts +3 -3
  5. package/dialog/lib/brn-dialog-overlay.component.d.ts +3 -2
  6. package/dialog/lib/brn-dialog-token.d.ts +8 -0
  7. package/dialog/lib/brn-dialog-trigger.directive.d.ts +5 -2
  8. package/dialog/lib/brn-dialog.component.d.ts +52 -31
  9. package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +16 -9
  10. package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +5 -5
  11. package/esm2022/dialog/index.mjs +2 -1
  12. package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +6 -11
  13. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +19 -19
  14. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +13 -9
  15. package/esm2022/dialog/lib/brn-dialog-token.mjs +15 -0
  16. package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +16 -8
  17. package/esm2022/dialog/lib/brn-dialog.component.mjs +112 -133
  18. package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +19 -13
  19. package/esm2022/popover/lib/brn-popover.component.mjs +36 -40
  20. package/esm2022/select/lib/brn-select.component.mjs +5 -3
  21. package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +8 -9
  22. package/esm2022/sheet/lib/brn-sheet.component.mjs +27 -25
  23. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +18 -11
  24. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  25. package/fesm2022/spartan-ng-brain-dialog.mjs +170 -171
  26. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  27. package/fesm2022/spartan-ng-brain-popover.mjs +52 -50
  28. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  29. package/fesm2022/spartan-ng-brain-select.mjs +4 -2
  30. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  31. package/fesm2022/spartan-ng-brain-sheet.mjs +32 -31
  32. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  33. package/package.json +1 -1
  34. package/popover/lib/brn-popover-trigger.directive.d.ts +2 -2
  35. package/popover/lib/brn-popover.component.d.ts +3 -6
  36. package/select/lib/brn-select.component.d.ts +3 -2
  37. package/sheet/lib/brn-sheet-trigger.directive.d.ts +2 -2
  38. package/sheet/lib/brn-sheet.component.d.ts +4 -3
@@ -30,11 +30,12 @@ export class BrnSelectComponent {
30
30
  optionsAndIndex$ = this.options$.pipe(map((options, index) => [options, index]));
31
31
  /** Overlay pane containing the options. */
32
32
  _overlayDir = viewChild(CdkConnectedOverlay);
33
- openedChange = output();
34
33
  closeDelay = input(100);
35
34
  isExpanded = this._selectService.isExpanded;
36
35
  _delayedExpanded = toSignal(toObservable(this.isExpanded).pipe(switchMap((expanded) => (!expanded ? of(expanded).pipe(delay(this.closeDelay())) : of(expanded))), takeUntilDestroyed()), { initialValue: false });
37
36
  state = computed(() => (this.isExpanded() ? 'open' : 'closed'));
37
+ openedChange = output();
38
+ valueChange = output();
38
39
  _positionChanges$ = new Subject();
39
40
  side = toSignal(this._positionChanges$.pipe(map((change) =>
40
41
  // todo: better translation or adjusting hlm to take that into account
@@ -124,6 +125,7 @@ export class BrnSelectComponent {
124
125
  toObservable(this._selectService.value).subscribe((value) => {
125
126
  if (this._shouldEmitValueChange()) {
126
127
  this._onChange((value ?? null));
128
+ this.valueChange.emit((value ?? null));
127
129
  }
128
130
  this._shouldEmitValueChange.set(true);
129
131
  });
@@ -260,7 +262,7 @@ export class BrnSelectComponent {
260
262
  }
261
263
  }
262
264
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
263
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnSelectComponent, isStandalone: true, selector: "brn-select, hlm-select", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, providers: [
265
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnSelectComponent, isStandalone: true, selector: "brn-select, hlm-select", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange", valueChange: "valueChange" }, providers: [
264
266
  BrnSelectService,
265
267
  CdkListbox,
266
268
  provideExposedSideProviderExisting((() => BrnSelectComponent)),
@@ -341,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
341
343
  `,
342
344
  }]
343
345
  }], ctorParameters: () => [] });
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNOLG1CQUFtQixFQUduQixhQUFhLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUdOLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsaUJBQWlCLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlC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LGtCQUFrQixFQUFDO1lBQzVELG1DQUFtQyxFQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFDO1lBQzdEO2dCQUNDLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxrQkFBa0I7YUFDL0I7U0FDRCxtRUF5Q29DLGlCQUFpQiw2RUFFTix5QkFBeUIsNkVBRXJDLFNBQVMsNkdBS1gsbUJBQW1CLGdFQWpEM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQsMkRBckNTLGFBQWEsMHJDQUFFLGdCQUFnQjs7MkZBdUM3QixrQkFBa0I7a0JBMUM5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUM7b0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLGtDQUFrQyxFQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBQzt3QkFDNUQsbUNBQW1DLEVBQUMsR0FBRyxFQUFFLG1CQUFtQixFQUFDO3dCQUM3RDs0QkFDQyxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG9CQUFvQjt5QkFDL0I7cUJBQ0Q7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBeUJUO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTGlzdGJveCwgQ2RrTGlzdGJveE1vZHVsZSwgQ2RrT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xpc3Rib3gnO1xuaW1wb3J0IHtcblx0Q2RrQ29ubmVjdGVkT3ZlcmxheSxcblx0dHlwZSBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXG5cdHR5cGUgQ29ubmVjdGVkUG9zaXRpb24sXG5cdE92ZXJsYXlNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdHR5cGUgRG9DaGVjayxcblx0dHlwZSBTaWduYWwsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGNvbnRlbnRDaGlsZHJlbixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0eXBlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcblx0dHlwZSBFeHBvc2VzU2lkZSxcblx0dHlwZSBFeHBvc2VzU3RhdGUsXG5cdHByb3ZpZGVFeHBvc2VkU2lkZVByb3ZpZGVyRXhpc3RpbmcsXG5cdHByb3ZpZGVFeHBvc2VzU3RhdGVQcm92aWRlckV4aXN0aW5nLFxufSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9jb3JlJztcbmltcG9ydCB7IEJybkZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IENoYW5nZUZuLCBFcnJvclN0YXRlTWF0Y2hlciwgRXJyb3JTdGF0ZVRyYWNrZXIsIFRvdWNoRm4gfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9mb3Jtcyc7XG5pbXBvcnQgeyBCcm5MYWJlbERpcmVjdGl2ZSB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2xhYmVsJztcbmltcG9ydCB7IFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9icm4tc2VsZWN0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJyblNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2Jybi1zZWxlY3Quc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEJyblJlYWREaXJlY3Rpb24gPSAnbHRyJyB8ICdydGwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXNlbGVjdCwgaGxtLXNlbGVjdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtPdmVybGF5TW9kdWxlLCBDZGtMaXN0Ym94TW9kdWxlXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHByb3ZpZGVyczogW1xuXHRcdEJyblNlbGVjdFNlcnZpY2UsXG5cdFx0Q2RrTGlzdGJveCxcblx0XHRwcm92aWRlRXhwb3NlZFNpZGVQcm92aWRlckV4aXN0aW5nKCgpID0+IEJyblNlbGVjdENvbXBvbmVudCksXG5cdFx0cHJvdmlkZUV4cG9zZXNTdGF0ZVByb3ZpZGVyRXhpc3RpbmcoKCkgPT4gQnJuU2VsZWN0Q29tcG9uZW50KSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBCcm5Gb3JtRmllbGRDb250cm9sLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IEJyblNlbGVjdENvbXBvbmVudCxcblx0XHR9LFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoIWxhYmVsUHJvdmlkZWQoKSAmJiBwbGFjZWhvbGRlcigpKSB7XG5cdFx0XHQ8bGFiZWwgY2xhc3M9XCJoaWRkZW5cIiBbYXR0ci5pZF09XCJiYWNrdXBMYWJlbElkKClcIj57eyBwbGFjZWhvbGRlcigpIH19PC9sYWJlbD5cblx0XHR9IEBlbHNlIHtcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsW2hsbUxhYmVsXSxsYWJlbFticm5MYWJlbF1cIiAvPlxuXHRcdH1cblxuXHRcdDxkaXYgY2RrLW92ZXJsYXktb3JpZ2luIChjbGljayk9XCJ0b2dnbGUoKVwiICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiaGxtLXNlbGVjdC10cmlnZ2VyLFticm5TZWxlY3RUcmlnZ2VyXVwiIC8+XG5cdFx0PC9kaXY+XG5cdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRjZGstY29ubmVjdGVkLW92ZXJsYXlcblx0XHRcdGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cblx0XHRcdGNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcFxuXHRcdFx0Y2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcblx0XHRcdFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJfZGVsYXllZEV4cGFuZGVkKClcIlxuXHRcdFx0W2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwiX3Bvc2l0aW9uc1wiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cInRyaWdnZXJXaWR0aCgpID4gMCA/IHRyaWdnZXJXaWR0aCgpIDogJ2F1dG8nXCJcblx0XHRcdChiYWNrZHJvcENsaWNrKT1cImNsb3NlKClcIlxuXHRcdFx0KGRldGFjaCk9XCJjbG9zZSgpXCJcblx0XHRcdChwb3NpdGlvbkNoYW5nZSk9XCJfcG9zaXRpb25DaGFuZ2VzJC5uZXh0KCRldmVudClcIlxuXHRcdD5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPlxuXHRpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlckNvbnRlbnRJbml0LCBEb0NoZWNrLCBFeHBvc2VzU2lkZSwgRXhwb3Nlc1N0YXRlLCBCcm5Gb3JtRmllbGRDb250cm9sXG57XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdFNlcnZpY2UgPSBpbmplY3QoQnJuU2VsZWN0U2VydmljZSk7XG5cblx0cHVibGljIHJlYWRvbmx5IHRyaWdnZXJXaWR0aCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UudHJpZ2dlcldpZHRoO1xuXG5cdHB1YmxpYyByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHVibGljIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHVibGljIHJlYWRvbmx5IGRpciA9IGlucHV0PEJyblJlYWREaXJlY3Rpb24+KCdsdHInKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHJvdGVjdGVkIHNlbGVjdExhYmVsID0gY29udGVudENoaWxkKEJybkxhYmVsRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KTtcblx0LyoqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLiAqL1xuXHRwcm90ZWN0ZWQgc2VsZWN0Q29udGVudCA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KTtcblxuXHRwcm90ZWN0ZWQgb3B0aW9ucyA9IGNvbnRlbnRDaGlsZHJlbihDZGtPcHRpb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cdHByb3RlY3RlZCBvcHRpb25zJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLm9wdGlvbnMpO1xuXHRwcm90ZWN0ZWQgb3B0aW9uc0FuZEluZGV4JCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKG9wdGlvbnMsIGluZGV4KSA9PiBbb3B0aW9ucywgaW5kZXhdIGFzIGNvbnN0KSk7XG5cblx0LyoqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLiAqL1xuXHRwcm90ZWN0ZWQgX292ZXJsYXlEaXIgPSB2aWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSk7XG5cblx0cHVibGljIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG5cdHB1YmxpYyByZWFkb25seSBjbG9zZURlbGF5ID0gaW5wdXQ8bnVtYmVyPigxMDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgaXNFeHBhbmRlZCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UuaXNFeHBhbmRlZDtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9kZWxheWVkRXhwYW5kZWQgPSB0b1NpZ25hbChcblx0XHR0b09ic2VydmFibGUodGhpcy5pc0V4cGFuZGVkKS5waXBlKFxuXHRcdFx0c3dpdGNoTWFwKChleHBhbmRlZCkgPT4gKCFleHBhbmRlZCA/IG9mKGV4cGFuZGVkKS5waXBlKGRlbGF5KHRoaXMuY2xvc2VEZWxheSgpKSkgOiBvZihleHBhbmRlZCkpKSxcblx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCgpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6IGZhbHNlIH0sXG5cdCk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzRXhwYW5kZWQoKSA/ICdvcGVuJyA6ICdjbG9zZWQnKSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wb3NpdGlvbkNoYW5nZXMkID0gbmV3IFN1YmplY3Q8Q29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlPigpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2lkZTogU2lnbmFsPCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPiA9IHRvU2lnbmFsKFxuXHRcdHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcyQucGlwZShcblx0XHRcdG1hcDxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPigoY2hhbmdlKSA9PlxuXHRcdFx0XHQvLyB0b2RvOiBiZXR0ZXIgdHJhbnNsYXRpb24gb3IgYWRqdXN0aW5nIGhsbSB0byB0YWtlIHRoYXQgaW50byBhY2NvdW50XG5cdFx0XHRcdGNoYW5nZS5jb25uZWN0aW9uUGFpci5vcmlnaW5ZID09PSAnY2VudGVyJ1xuXHRcdFx0XHRcdD8gY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblggPT09ICdzdGFydCdcblx0XHRcdFx0XHRcdD8gJ2xlZnQnXG5cdFx0XHRcdFx0XHQ6ICdyaWdodCdcblx0XHRcdFx0XHQ6IGNoYW5nZS5jb25uZWN0aW9uUGFpci5vcmlnaW5ZLFxuXHRcdFx0KSxcblx0XHQpLFxuXHRcdHsgaW5pdGlhbFZhbHVlOiAnYm90dG9tJyB9LFxuXHQpO1xuXG5cdHB1YmxpYyByZWFkb25seSBiYWNrdXBMYWJlbElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0U2VydmljZS5sYWJlbElkKCkpO1xuXHRwdWJsaWMgcmVhZG9ubHkgbGFiZWxQcm92aWRlZCA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHVibGljIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRwcml2YXRlIF9vbkNoYW5nZTogQ2hhbmdlRm48VD4gPSAoKSA9PiB7fTtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRwcml2YXRlIF9vblRvdWNoZWQ6IFRvdWNoRm4gPSAoKSA9PiB7fTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9zaG91bGRFbWl0VmFsdWVDaGFuZ2UgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8qXG5cdCAqIFRoaXMgcG9zaXRpb24gY29uZmlnIGVuc3VyZXMgdGhhdCB0aGUgdG9wIFwic3RhcnRcIiBjb3JuZXIgb2YgdGhlIG92ZXJsYXlcblx0ICogaXMgYWxpZ25lZCB3aXRoIHdpdGggdGhlIHRvcCBcInN0YXJ0XCIgb2YgdGhlIG9yaWdpbiBieSBkZWZhdWx0IChvdmVybGFwcGluZ1xuXHQgKiB0aGUgdHJpZ2dlciBjb21wbGV0ZWx5KS4gSWYgdGhlIHBhbmVsIGNhbm5vdCBmaXQgYmVsb3cgdGhlIHRyaWdnZXIsIGl0XG5cdCAqIHdpbGwgZmFsbCBiYWNrIHRvIGEgcG9zaXRpb24gYWJvdmUgdGhlIHRyaWdnZXIuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgX3Bvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtcblx0XHR7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdlbmQnLFxuXHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRvdmVybGF5WDogJ2VuZCcsXG5cdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdlbmQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0XHRvdmVybGF5WDogJ2VuZCcsXG5cdFx0XHRvdmVybGF5WTogJ2JvdHRvbScsXG5cdFx0fSxcblx0XTtcblxuXHRwdWJsaWMgZXJyb3JTdGF0ZVRyYWNrZXI6IEVycm9yU3RhdGVUcmFja2VyO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciA9IGluamVjdChFcnJvclN0YXRlTWF0Y2hlcik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudEZvcm0gPSBpbmplY3QoTmdGb3JtLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRGb3JtR3JvdXAgPSBpbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG5cdHB1YmxpYyBlcnJvclN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvclN0YXRlVHJhY2tlci5lcnJvclN0YXRlKCkpO1xuXG5cdHB1YmxpYyB3cml0ZVZhbHVlJCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcblx0XHRcdHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxuXHRcdFx0ZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG5cdFx0XHRkaXNhYmxlZEJ5U2V0RGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkRnJvbVNldERpc2FibGVkU3RhdGUsXG5cdFx0XHRkaXI6IHRoaXMuZGlyLFxuXHRcdH0pKTtcblx0XHR0aGlzLmhhbmRsZU9wdGlvbkNoYW5nZXMoKTtcblx0XHR0aGlzLmhhbmRsZUluaXRpYWxPcHRpb25TZWxlY3QoKTtcblxuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aWQ6IGBicm4tc2VsZWN0LSR7bmV4dElkKyt9YCxcblx0XHR9KSk7XG5cdFx0aWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsKSB7XG5cdFx0XHR0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcblx0XHR9XG5cblx0XHQvLyBXYXRjaCBmb3IgTGlzdGJveCBTZWxlY3Rpb24gQ2hhbmdlcyB0byB0cmlnZ2VyIENvbGxhcHNlIGFuZCBWYWx1ZSBDaGFuZ2Vcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLmxpc3RCb3hWYWx1ZUNoYW5nZUV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLm11bHRpcGxlKCkpIHtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3ZSBzZXQgc2hvdWxkRW1pdFZhbHVlQ2hhbmdlIHRvIHRydWUgYmVjYXVzZSB3ZSB3YW50IHRvIHByb3BhZ2F0ZSB0aGUgdmFsdWUgY2hhbmdlXG5cdFx0XHQvLyBhcyBhIHJlc3VsdCBvZiB1c2VyIGludGVyYWN0aW9uXG5cdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0LyoqXG5cdFx0ICogTGlzdGVuaW5nIHRvIHZhbHVlIGNoYW5nZXMgaW4gb3JkZXIgdG8gdHJpZ2dlciBmb3JtcyBhcGkgb24gY2hhbmdlXG5cdFx0ICogU2hvdWxkRW1pdFZhbHVlQ2hhbmdlIHNpbXBseSBlbnN1cmVzIHdlIG9ubHkgcHJvcGFnYXRlIHZhbHVlIGNoYW5nZSB3aGVuIGEgdXNlciBtYWtlcyBhIHNlbGVjdGlvblxuXHRcdCAqIHdlIGRvbid0IHByb3BhZ2F0ZSBjaGFuZ2VzIG1hZGUgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgKGV4LiBwYXRjaCB2YWx1ZSBvciBpbml0aWFsIHZhbHVlIGZyb20gZm9ybSBjb250cm9sKVxuXHRcdCAqL1xuXHRcdHRvT2JzZXJ2YWJsZSh0aGlzLl9zZWxlY3RTZXJ2aWNlLnZhbHVlKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5fc2hvdWxkRW1pdFZhbHVlQ2hhbmdlKCkpIHtcblx0XHRcdFx0dGhpcy5fb25DaGFuZ2UoKHZhbHVlID8/IG51bGwpIGFzIFQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fc2hvdWxkRW1pdFZhbHVlQ2hhbmdlLnNldCh0cnVlKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuZXJyb3JTdGF0ZVRyYWNrZXIgPSBuZXcgRXJyb3JTdGF0ZVRyYWNrZXIoXG5cdFx0XHR0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsXG5cdFx0XHR0aGlzLm5nQ29udHJvbCxcblx0XHRcdHRoaXMuX3BhcmVudEZvcm1Hcm91cCxcblx0XHRcdHRoaXMuX3BhcmVudEZvcm0sXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cdFx0Ly8gQ2hlY2sgaWYgTGFiZWwgRGlyZWN0aXZlIFByb3ZpZGVkIGFuZCBwYXNzIHRvIHNlcnZpY2Vcblx0XHRjb25zdCBsYWJlbCA9IHRoaXMuc2VsZWN0TGFiZWwoKTtcblx0XHRpZiAobGFiZWwpIHtcblx0XHRcdHRoaXMubGFiZWxQcm92aWRlZC5zZXQodHJ1ZSk7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRsYWJlbElkOiBsYWJlbC5pZCgpLFxuXHRcdFx0fSkpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5wbGFjZWhvbGRlcigpKSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRsYWJlbElkOiBgJHtzdGF0ZS5pZH0tLWxhYmVsYCxcblx0XHRcdH0pKTtcblx0XHR9XG5cdH1cblxuXHRuZ0RvQ2hlY2soKSB7XG5cdFx0dGhpcy5lcnJvclN0YXRlVHJhY2tlci51cGRhdGVFcnJvclN0YXRlKCk7XG5cdH1cblxuXHRwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzRXhwYW5kZWQoKSkge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm9wZW4oKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgb3BlbigpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuX2Nhbk9wZW4oKSkgcmV0dXJuO1xuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aXNFeHBhbmRlZDogdHJ1ZSxcblx0XHR9KSk7XG5cdFx0dGhpcy5vcGVuZWRDaGFuZ2UuZW1pdCh0cnVlKTtcblx0XHR0aGlzLl9tb3ZlRm9jdXNUb0NES0xpc3QoKTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXNFeHBhbmRlZCgpKSByZXR1cm47XG5cblx0XHRpZiAodGhpcy5fc2VsZWN0U2VydmljZS5zZWxlY3RUcmlnZ2VyKSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdFRyaWdnZXIuZm9jdXMoKTtcblx0XHR9XG5cblx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KGZhbHNlKTtcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHQuLi5zdGF0ZSxcblx0XHRcdGlzRXhwYW5kZWQ6IGZhbHNlLFxuXHRcdH0pKTtcblx0XHR0aGlzLl9vblRvdWNoZWQoKTtcblx0fVxuXG5cdHByb3RlY3RlZCBfY2FuT3BlbigpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gIXRoaXMuaXNFeHBhbmRlZCgpICYmICF0aGlzLmRpc2FibGVkKCkgJiYgdGhpcy5vcHRpb25zKCk/Lmxlbmd0aCA+IDA7XG5cdH1cblxuXHRwcml2YXRlIF9tb3ZlRm9jdXNUb0NES0xpc3QoKTogdm9pZCB7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNlbGVjdENvbnRlbnQoKT8uZm9jdXNMaXN0KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuXHRcdHRoaXMud3JpdGVWYWx1ZSQubmV4dCh2YWx1ZSk7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogQ2hhbmdlRm48VD4pOiB2b2lkIHtcblx0XHR0aGlzLl9vbkNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBUb3VjaEZuKTogdm9pZCB7XG5cdFx0dGhpcy5fb25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHRwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZS5zZXQoaXNEaXNhYmxlZCk7XG5cdH1cblxuXHQvKipcblx0ICogT25jZSB3cml0ZVZhbHVlIGlzIGNhbGxlZCBhbmQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHdlIGNhbiBoYW5kbGUgc2V0dGluZyB0aGUgaW5pdGlhbCBvcHRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZUluaXRpYWxPcHRpb25TZWxlY3QoKSB7XG5cdFx0Ly8gV3JpdGUgdmFsdWUgY2Fubm90IGJlIGhhbmRsZWQgdW50aWwgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLCBzbyB3ZSB3YWl0IHVudGlsIGJvdGggYXJlIGF2YWlsYWJsZSB3aXRoIGEgY29tYmluZUxhdGVzdFxuXHRcdGNvbWJpbmVMYXRlc3QoW3RoaXMud3JpdGVWYWx1ZSQsIHRoaXMub3B0aW9ucyRdKVxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdG1hcCgodmFsdWVzLCBpbmRleCkgPT4gWy4uLnZhbHVlcywgaW5kZXhdKSxcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKCksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKChbdmFsdWUsIF8sIGluZGV4XSkgPT4ge1xuXHRcdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KGZhbHNlKTtcblx0XHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zZXRJbml0aWFsU2VsZWN0ZWRPcHRpb25zKHZhbHVlKTtcblx0XHRcdFx0Ly8gdGhlIGZpcnN0IHRpbWUgdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGEgdmFsdWUgd2UgYXJlIHNpbXBseSBzZXR0aW5nIHRoZSBpbml0aWFsIHN0YXRlXG5cdFx0XHRcdC8vIHRoaXMgY2hhbmdlIHNob3VsZCBub3QgY291bnQgYXMgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZSBzZWxlY3QsIHNvIHdlIG5lZWQgdG8gbWFyayBhcyBwcmlzdGluZVxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ubWFya0FzUHJpc3RpbmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2hlbiBvcHRpb25zIGNoYW5nZSwgb3VyIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9ucyBtYXkgYmVjb21lIGludmFsaWRcblx0ICogSGVyZSB3ZSB3aWxsIGF1dG9tYXRpY2FsbHkgdXBkYXRlIG91ciBjdXJyZW50IHNlbGVjdGVkIG9wdGlvbnMgc28gdGhhdCB0aGV5IGFyZSBhbHdheXMgaW5saW5lIHdpdGggdGhlIHBvc3NpYmxlT3B0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVPcHRpb25DaGFuZ2VzKCkge1xuXHRcdHRoaXMub3B0aW9uc0FuZEluZGV4JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKFtvcHRpb25zLCBpbmRleF0pID0+IHtcblx0XHRcdGlmIChpbmRleCA+IDApIHtcblx0XHRcdFx0dGhpcy5oYW5kbGVJbnZhbGlkT3B0aW9ucyhvcHRpb25zKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2UudXBkYXRlUG9zc2libGVPcHRpb25zKG9wdGlvbnMpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIHRoYXQgb3VyIFwic2VsZWN0ZWRPcHRpb25zXCIgYXJlIHN0aWxsIHZhbGlkIHdoZW4gXCJwb3NzaWJsZU9wdGlvbnNcIiBpcyBhYm91dCB0byBiZSB1cGRhdGVkXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZUludmFsaWRPcHRpb25zKG9wdGlvbnM6IHJlYWRvbmx5IENka09wdGlvbltdKSB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5fc2VsZWN0U2VydmljZS5zZWxlY3RlZE9wdGlvbnMoKTtcblx0XHRjb25zdCBhdmFpbGFibGVPcHRpb25TZXQgPSBuZXcgU2V0PENka09wdGlvbiB8IG51bGw+KG9wdGlvbnMpO1xuXHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLm11bHRpcGxlKCkpIHtcblx0XHRcdGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKG8pID0+IGF2YWlsYWJsZU9wdGlvblNldC5oYXMobykpO1xuXHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggIT09IGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBmaWx0ZXJlZE9wdGlvbnMubWFwKChvKSA9PiAobz8udmFsdWUgYXMgc3RyaW5nKSA/PyAnJyk7XG5cdFx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0XHQuLi5zdGF0ZSxcblx0XHRcdFx0XHRzZWxlY3RlZE9wdGlvbnM6IGZpbHRlcmVkT3B0aW9ucyxcblx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdH0pKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBzZWxlY3RlZE9wdGlvbnNbMF0gPz8gbnVsbDtcblx0XHRcdGlmIChzZWxlY3RlZE9wdGlvbiAhPT0gbnVsbCAmJiAhYXZhaWxhYmxlT3B0aW9uU2V0LmhhcyhzZWxlY3RlZE9wdGlvbikpIHtcblx0XHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRcdHNlbGVjdGVkT3B0aW9uczogW10sXG5cdFx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0=
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNOLG1CQUFtQixFQUduQixhQUFhLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUdOLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsaUJBQWlCLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlC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QztJQUNGLENBQUM7MEhBOVNXLGtCQUFrQjs4R0FBbEIsa0JBQWtCLDZ4QkFyQ25CO1lBQ1YsZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixrQ0FBa0MsRUFBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBQztZQUM1RCxtQ0FBbUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBQztZQUM3RDtnQkFDQyxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsa0JBQWtCO2FBQy9CO1NBQ0QsbUVBeUNvQyxpQkFBaUIsNkVBRU4seUJBQXlCLDZFQUVyQyxTQUFTLDZHQUtYLG1CQUFtQixnRUFqRDNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBeUJULDJEQXJDUyxhQUFhLDByQ0FBRSxnQkFBZ0I7OzJGQXVDN0Isa0JBQWtCO2tCQTFDOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNWLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixrQ0FBa0MsRUFBQyxHQUFHLEVBQUUsbUJBQW1CLEVBQUM7d0JBQzVELG1DQUFtQyxFQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBQzt3QkFDN0Q7NEJBQ0MsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxvQkFBb0I7eUJBQy9CO3FCQUNEO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0xpc3Rib3gsIENka0xpc3Rib3hNb2R1bGUsIENka09wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9saXN0Ym94JztcbmltcG9ydCB7XG5cdENka0Nvbm5lY3RlZE92ZXJsYXksXG5cdHR5cGUgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxuXHR0eXBlIENvbm5lY3RlZFBvc2l0aW9uLFxuXHRPdmVybGF5TW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHR0eXBlIERvQ2hlY2ssXG5cdHR5cGUgU2lnbmFsLFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHlwZSBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG5cdHR5cGUgRXhwb3Nlc1NpZGUsXG5cdHR5cGUgRXhwb3Nlc1N0YXRlLFxuXHRwcm92aWRlRXhwb3NlZFNpZGVQcm92aWRlckV4aXN0aW5nLFxuXHRwcm92aWRlRXhwb3Nlc1N0YXRlUHJvdmlkZXJFeGlzdGluZyxcbn0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vY29yZSc7XG5pbXBvcnQgeyBCcm5Gb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBDaGFuZ2VGbiwgRXJyb3JTdGF0ZU1hdGNoZXIsIEVycm9yU3RhdGVUcmFja2VyLCBUb3VjaEZuIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vZm9ybXMnO1xuaW1wb3J0IHsgQnJuTGFiZWxEaXJlY3RpdmUgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9sYWJlbCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4vYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcm5TZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9icm4tc2VsZWN0LnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBCcm5SZWFkRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Jybi1zZWxlY3QsIGhsbS1zZWxlY3QnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbT3ZlcmxheU1vZHVsZSwgQ2RrTGlzdGJveE1vZHVsZV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRwcm92aWRlcnM6IFtcblx0XHRCcm5TZWxlY3RTZXJ2aWNlLFxuXHRcdENka0xpc3Rib3gsXG5cdFx0cHJvdmlkZUV4cG9zZWRTaWRlUHJvdmlkZXJFeGlzdGluZygoKSA9PiBCcm5TZWxlY3RDb21wb25lbnQpLFxuXHRcdHByb3ZpZGVFeHBvc2VzU3RhdGVQcm92aWRlckV4aXN0aW5nKCgpID0+IEJyblNlbGVjdENvbXBvbmVudCksXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQnJuRm9ybUZpZWxkQ29udHJvbCxcblx0XHRcdHVzZUV4aXN0aW5nOiBCcm5TZWxlY3RDb21wb25lbnQsXG5cdFx0fSxcblx0XSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKCFsYWJlbFByb3ZpZGVkKCkgJiYgcGxhY2Vob2xkZXIoKSkge1xuXHRcdFx0PGxhYmVsIGNsYXNzPVwiaGlkZGVuXCIgW2F0dHIuaWRdPVwiYmFja3VwTGFiZWxJZCgpXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvbGFiZWw+XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFtobG1MYWJlbF0sbGFiZWxbYnJuTGFiZWxdXCIgLz5cblx0XHR9XG5cblx0XHQ8ZGl2IGNkay1vdmVybGF5LW9yaWdpbiAoY2xpY2spPVwidG9nZ2xlKClcIiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3QtdHJpZ2dlcixbYnJuU2VsZWN0VHJpZ2dlcl1cIiAvPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0Y2RrLWNvbm5lY3RlZC1vdmVybGF5XG5cdFx0XHRjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uXG5cdFx0XHRjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3Bcblx0XHRcdGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPVwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxuXHRcdFx0W2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiX2RlbGF5ZWRFeHBhbmRlZCgpXCJcblx0XHRcdFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIl9wb3NpdGlvbnNcIlxuXHRcdFx0W2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJ0cmlnZ2VyV2lkdGgoKSA+IDAgPyB0cmlnZ2VyV2lkdGgoKSA6ICdhdXRvJ1wiXG5cdFx0XHQoYmFja2Ryb3BDbGljayk9XCJjbG9zZSgpXCJcblx0XHRcdChkZXRhY2gpPVwiY2xvc2UoKVwiXG5cdFx0XHQocG9zaXRpb25DaGFuZ2UpPVwiX3Bvc2l0aW9uQ2hhbmdlcyQubmV4dCgkZXZlbnQpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdENvbXBvbmVudDxUID0gdW5rbm93bj5cblx0aW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgRG9DaGVjaywgRXhwb3Nlc1NpZGUsIEV4cG9zZXNTdGF0ZSwgQnJuRm9ybUZpZWxkQ29udHJvbFxue1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RTZXJ2aWNlID0gaW5qZWN0KEJyblNlbGVjdFNlcnZpY2UpO1xuXG5cdHB1YmxpYyByZWFkb25seSB0cmlnZ2VyV2lkdGggPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLnRyaWdnZXJXaWR0aDtcblxuXHRwdWJsaWMgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cdHB1YmxpYyByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cdHB1YmxpYyByZWFkb25seSBkaXIgPSBpbnB1dDxCcm5SZWFkRGlyZWN0aW9uPignbHRyJyk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkRnJvbVNldERpc2FibGVkU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuXG5cdHByb3RlY3RlZCBzZWxlY3RMYWJlbCA9IGNvbnRlbnRDaGlsZChCcm5MYWJlbERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSk7XG5cdC8qKiBPdmVybGF5IHBhbmUgY29udGFpbmluZyB0aGUgb3B0aW9ucy4gKi9cblx0cHJvdGVjdGVkIHNlbGVjdENvbnRlbnQgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJvdGVjdGVkIG9wdGlvbnMgPSBjb250ZW50Q2hpbGRyZW4oQ2RrT3B0aW9uLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXHRwcm90ZWN0ZWQgb3B0aW9ucyQgPSB0b09ic2VydmFibGUodGhpcy5vcHRpb25zKTtcblx0cHJvdGVjdGVkIG9wdGlvbnNBbmRJbmRleCQgPSB0aGlzLm9wdGlvbnMkLnBpcGUobWFwKChvcHRpb25zLCBpbmRleCkgPT4gW29wdGlvbnMsIGluZGV4XSBhcyBjb25zdCkpO1xuXG5cdC8qKiBPdmVybGF5IHBhbmUgY29udGFpbmluZyB0aGUgb3B0aW9ucy4gKi9cblx0cHJvdGVjdGVkIF9vdmVybGF5RGlyID0gdmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBjbG9zZURlbGF5ID0gaW5wdXQ8bnVtYmVyPigxMDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgaXNFeHBhbmRlZCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UuaXNFeHBhbmRlZDtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9kZWxheWVkRXhwYW5kZWQgPSB0b1NpZ25hbChcblx0XHR0b09ic2VydmFibGUodGhpcy5pc0V4cGFuZGVkKS5waXBlKFxuXHRcdFx0c3dpdGNoTWFwKChleHBhbmRlZCkgPT4gKCFleHBhbmRlZCA/IG9mKGV4cGFuZGVkKS5waXBlKGRlbGF5KHRoaXMuY2xvc2VEZWxheSgpKSkgOiBvZihleHBhbmRlZCkpKSxcblx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCgpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6IGZhbHNlIH0sXG5cdCk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzRXhwYW5kZWQoKSA/ICdvcGVuJyA6ICdjbG9zZWQnKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXHRwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8VD4oKTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3Bvc2l0aW9uQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+KCk7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlOiBTaWduYWw8J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+ID0gdG9TaWduYWwoXG5cdFx0dGhpcy5fcG9zaXRpb25DaGFuZ2VzJC5waXBlKFxuXHRcdFx0bWFwPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+KChjaGFuZ2UpID0+XG5cdFx0XHRcdC8vIHRvZG86IGJldHRlciB0cmFuc2xhdGlvbiBvciBhZGp1c3RpbmcgaGxtIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnRcblx0XHRcdFx0Y2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblkgPT09ICdjZW50ZXInXG5cdFx0XHRcdFx0PyBjaGFuZ2UuY29ubmVjdGlvblBhaXIub3JpZ2luWCA9PT0gJ3N0YXJ0J1xuXHRcdFx0XHRcdFx0PyAnbGVmdCdcblx0XHRcdFx0XHRcdDogJ3JpZ2h0J1xuXHRcdFx0XHRcdDogY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblksXG5cdFx0XHQpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6ICdib3R0b20nIH0sXG5cdCk7XG5cblx0cHVibGljIHJlYWRvbmx5IGJhY2t1cExhYmVsSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zZWxlY3RTZXJ2aWNlLmxhYmVsSWQoKSk7XG5cdHB1YmxpYyByZWFkb25seSBsYWJlbFByb3ZpZGVkID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdHByaXZhdGUgX29uQ2hhbmdlOiBDaGFuZ2VGbjxUPiA9ICgpID0+IHt9O1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdHByaXZhdGUgX29uVG91Y2hlZDogVG91Y2hGbiA9ICgpID0+IHt9O1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZSA9IHNpZ25hbChmYWxzZSk7XG5cblx0Lypcblx0ICogVGhpcyBwb3NpdGlvbiBjb25maWcgZW5zdXJlcyB0aGF0IHRoZSB0b3AgXCJzdGFydFwiIGNvcm5lciBvZiB0aGUgb3ZlcmxheVxuXHQgKiBpcyBhbGlnbmVkIHdpdGggd2l0aCB0aGUgdG9wIFwic3RhcnRcIiBvZiB0aGUgb3JpZ2luIGJ5IGRlZmF1bHQgKG92ZXJsYXBwaW5nXG5cdCAqIHRoZSB0cmlnZ2VyIGNvbXBsZXRlbHkpLiBJZiB0aGUgcGFuZWwgY2Fubm90IGZpdCBiZWxvdyB0aGUgdHJpZ2dlciwgaXRcblx0ICogd2lsbCBmYWxsIGJhY2sgdG8gYSBwb3NpdGlvbiBhYm92ZSB0aGUgdHJpZ2dlci5cblx0ICovXG5cdHByb3RlY3RlZCBfcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0XHRvcmlnaW5ZOiAnYm90dG9tJyxcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICd0b3AnLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0b3JpZ2luWDogJ2VuZCcsXG5cdFx0XHRvcmlnaW5ZOiAnYm90dG9tJyxcblx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcblx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0b3JpZ2luWDogJ2VuZCcsXG5cdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcblx0XHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcblx0XHR9LFxuXHRdO1xuXG5cdHB1YmxpYyBlcnJvclN0YXRlVHJhY2tlcjogRXJyb3JTdGF0ZVRyYWNrZXI7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyID0gaW5qZWN0KEVycm9yU3RhdGVNYXRjaGVyKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcGFyZW50Rm9ybSA9IGluamVjdChOZ0Zvcm0sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudEZvcm1Hcm91cCA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0cHVibGljIGVycm9yU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yU3RhdGVUcmFja2VyLmVycm9yU3RhdGUoKSk7XG5cblx0cHVibGljIHdyaXRlVmFsdWUkID0gbmV3IFN1YmplY3Q8VD4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHQuLi5zdGF0ZSxcblx0XHRcdG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG5cdFx0XHRkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcblx0XHRcdGRpc2FibGVkQnlTZXREaXNhYmxlZDogdGhpcy5fZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZSxcblx0XHRcdGRpcjogdGhpcy5kaXIsXG5cdFx0fSkpO1xuXHRcdHRoaXMuaGFuZGxlT3B0aW9uQ2hhbmdlcygpO1xuXHRcdHRoaXMuaGFuZGxlSW5pdGlhbE9wdGlvblNlbGVjdCgpO1xuXG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRpZDogYGJybi1zZWxlY3QtJHtuZXh0SWQrK31gLFxuXHRcdH0pKTtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwpIHtcblx0XHRcdHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIFdhdGNoIGZvciBMaXN0Ym94IFNlbGVjdGlvbiBDaGFuZ2VzIHRvIHRyaWdnZXIgQ29sbGFwc2UgYW5kIFZhbHVlIENoYW5nZVxuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2UubGlzdEJveFZhbHVlQ2hhbmdlRXZlbnQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMubXVsdGlwbGUoKSkge1xuXHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdlIHNldCBzaG91bGRFbWl0VmFsdWVDaGFuZ2UgdG8gdHJ1ZSBiZWNhdXNlIHdlIHdhbnQgdG8gcHJvcGFnYXRlIHRoZSB2YWx1ZSBjaGFuZ2Vcblx0XHRcdC8vIGFzIGEgcmVzdWx0IG9mIHVzZXIgaW50ZXJhY3Rpb25cblx0XHRcdHRoaXMuX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZS5zZXQodHJ1ZSk7XG5cdFx0fSk7XG5cblx0XHQvKipcblx0XHQgKiBMaXN0ZW5pbmcgdG8gdmFsdWUgY2hhbmdlcyBpbiBvcmRlciB0byB0cmlnZ2VyIGZvcm1zIGFwaSBvbiBjaGFuZ2Vcblx0XHQgKiBTaG91bGRFbWl0VmFsdWVDaGFuZ2Ugc2ltcGx5IGVuc3VyZXMgd2Ugb25seSBwcm9wYWdhdGUgdmFsdWUgY2hhbmdlIHdoZW4gYSB1c2VyIG1ha2VzIGEgc2VsZWN0aW9uXG5cdFx0ICogd2UgZG9uJ3QgcHJvcGFnYXRlIGNoYW5nZXMgbWFkZSBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAoZXguIHBhdGNoIHZhbHVlIG9yIGluaXRpYWwgdmFsdWUgZnJvbSBmb3JtIGNvbnRyb2wpXG5cdFx0ICovXG5cdFx0dG9PYnNlcnZhYmxlKHRoaXMuX3NlbGVjdFNlcnZpY2UudmFsdWUpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2UoKSkge1xuXHRcdFx0XHR0aGlzLl9vbkNoYW5nZSgodmFsdWUgPz8gbnVsbCkgYXMgVCk7XG5cdFx0XHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgodmFsdWUgPz8gbnVsbCkgYXMgVCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5lcnJvclN0YXRlVHJhY2tlciA9IG5ldyBFcnJvclN0YXRlVHJhY2tlcihcblx0XHRcdHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcblx0XHRcdHRoaXMubmdDb250cm9sLFxuXHRcdFx0dGhpcy5fcGFyZW50Rm9ybUdyb3VwLFxuXHRcdFx0dGhpcy5fcGFyZW50Rm9ybSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBDaGVjayBpZiBMYWJlbCBEaXJlY3RpdmUgUHJvdmlkZWQgYW5kIHBhc3MgdG8gc2VydmljZVxuXHRcdGNvbnN0IGxhYmVsID0gdGhpcy5zZWxlY3RMYWJlbCgpO1xuXHRcdGlmIChsYWJlbCkge1xuXHRcdFx0dGhpcy5sYWJlbFByb3ZpZGVkLnNldCh0cnVlKTtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdGxhYmVsSWQ6IGxhYmVsLmlkKCksXG5cdFx0XHR9KSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLnBsYWNlaG9sZGVyKCkpIHtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdGxhYmVsSWQ6IGAke3N0YXRlLmlkfS0tbGFiZWxgLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0fVxuXG5cdG5nRG9DaGVjaygpIHtcblx0XHR0aGlzLmVycm9yU3RhdGVUcmFja2VyLnVwZGF0ZUVycm9yU3RhdGUoKTtcblx0fVxuXG5cdHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaXNFeHBhbmRlZCgpKSB7XG5cdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMub3BlbigpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5fY2FuT3BlbigpKSByZXR1cm47XG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRpc0V4cGFuZGVkOiB0cnVlLFxuXHRcdH0pKTtcblx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRydWUpO1xuXHRcdHRoaXMuX21vdmVGb2N1c1RvQ0RLTGlzdCgpO1xuXHR9XG5cblx0cHVibGljIGNsb3NlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5pc0V4cGFuZGVkKCkpIHJldHVybjtcblxuXHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdFRyaWdnZXIpIHtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc2VsZWN0VHJpZ2dlci5mb2N1cygpO1xuXHRcdH1cblxuXHRcdHRoaXMub3BlbmVkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aXNFeHBhbmRlZDogZmFsc2UsXG5cdFx0fSkpO1xuXHRcdHRoaXMuX29uVG91Y2hlZCgpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9jYW5PcGVuKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhdGhpcy5pc0V4cGFuZGVkKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLm9wdGlvbnMoKT8ubGVuZ3RoID4gMDtcblx0fVxuXG5cdHByaXZhdGUgX21vdmVGb2N1c1RvQ0RLTGlzdCgpOiB2b2lkIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuc2VsZWN0Q29udGVudCgpPy5mb2N1c0xpc3QoKTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0dGhpcy53cml0ZVZhbHVlJC5uZXh0KHZhbHVlKTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBDaGFuZ2VGbjxUPik6IHZvaWQge1xuXHRcdHRoaXMuX29uQ2hhbmdlID0gZm47XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IFRvdWNoRm4pOiB2b2lkIHtcblx0XHR0aGlzLl9vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9kaXNhYmxlZEZyb21TZXREaXNhYmxlZFN0YXRlLnNldChpc0Rpc2FibGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPbmNlIHdyaXRlVmFsdWUgaXMgY2FsbGVkIGFuZCBvcHRpb25zIGFyZSBhdmFpbGFibGUgd2UgY2FuIGhhbmRsZSBzZXR0aW5nIHRoZSBpbml0aWFsIG9wdGlvbnNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgaGFuZGxlSW5pdGlhbE9wdGlvblNlbGVjdCgpIHtcblx0XHQvLyBXcml0ZSB2YWx1ZSBjYW5ub3QgYmUgaGFuZGxlZCB1bnRpbCBvcHRpb25zIGFyZSBhdmFpbGFibGUsIHNvIHdlIHdhaXQgdW50aWwgYm90aCBhcmUgYXZhaWxhYmxlIHdpdGggYSBjb21iaW5lTGF0ZXN0XG5cdFx0Y29tYmluZUxhdGVzdChbdGhpcy53cml0ZVZhbHVlJCwgdGhpcy5vcHRpb25zJF0pXG5cdFx0XHQucGlwZShcblx0XHRcdFx0bWFwKCh2YWx1ZXMsIGluZGV4KSA9PiBbLi4udmFsdWVzLCBpbmRleF0pLFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQoKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKFt2YWx1ZSwgXywgaW5kZXhdKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZS5zZXQoZmFsc2UpO1xuXHRcdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnNldEluaXRpYWxTZWxlY3RlZE9wdGlvbnModmFsdWUpO1xuXHRcdFx0XHQvLyB0aGUgZmlyc3QgdGltZSB0aGlzIG9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSB3ZSBhcmUgc2ltcGx5IHNldHRpbmcgdGhlIGluaXRpYWwgc3RhdGVcblx0XHRcdFx0Ly8gdGhpcyBjaGFuZ2Ugc2hvdWxkIG5vdCBjb3VudCBhcyBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlIHNlbGVjdCwgc28gd2UgbmVlZCB0byBtYXJrIGFzIHByaXN0aW5lXG5cdFx0XHRcdGlmIChpbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNQcmlzdGluZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaGVuIG9wdGlvbnMgY2hhbmdlLCBvdXIgY3VycmVudCBzZWxlY3RlZCBvcHRpb25zIG1heSBiZWNvbWUgaW52YWxpZFxuXHQgKiBIZXJlIHdlIHdpbGwgYXV0b21hdGljYWxseSB1cGRhdGUgb3VyIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9ucyBzbyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBpbmxpbmUgd2l0aCB0aGUgcG9zc2libGVPcHRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZU9wdGlvbkNoYW5nZXMoKSB7XG5cdFx0dGhpcy5vcHRpb25zQW5kSW5kZXgkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoW29wdGlvbnMsIGluZGV4XSkgPT4ge1xuXHRcdFx0aWYgKGluZGV4ID4gMCkge1xuXHRcdFx0XHR0aGlzLmhhbmRsZUludmFsaWRPcHRpb25zKG9wdGlvbnMpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS51cGRhdGVQb3NzaWJsZU9wdGlvbnMob3B0aW9ucyk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgdGhhdCBvdXIgXCJzZWxlY3RlZE9wdGlvbnNcIiBhcmUgc3RpbGwgdmFsaWQgd2hlbiBcInBvc3NpYmxlT3B0aW9uc1wiIGlzIGFib3V0IHRvIGJlIHVwZGF0ZWRcblx0ICovXG5cdHByaXZhdGUgaGFuZGxlSW52YWxpZE9wdGlvbnMob3B0aW9uczogcmVhZG9ubHkgQ2RrT3B0aW9uW10pIHtcblx0XHRjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdGVkT3B0aW9ucygpO1xuXHRcdGNvbnN0IGF2YWlsYWJsZU9wdGlvblNldCA9IG5ldyBTZXQ8Q2RrT3B0aW9uIHwgbnVsbD4ob3B0aW9ucyk7XG5cdFx0aWYgKHRoaXMuX3NlbGVjdFNlcnZpY2UubXVsdGlwbGUoKSkge1xuXHRcdFx0Y29uc3QgZmlsdGVyZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zLmZpbHRlcigobykgPT4gYXZhaWxhYmxlT3B0aW9uU2V0LmhhcyhvKSk7XG5cdFx0XHRpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAhPT0gZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGZpbHRlcmVkT3B0aW9ucy5tYXAoKG8pID0+IChvPy52YWx1ZSBhcyBzdHJpbmcpID8/ICcnKTtcblx0XHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRcdHNlbGVjdGVkT3B0aW9uczogZmlsdGVyZWRPcHRpb25zLFxuXHRcdFx0XHRcdHZhbHVlOiB2YWx1ZSxcblx0XHRcdFx0fSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHNlbGVjdGVkT3B0aW9uc1swXSA/PyBudWxsO1xuXHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9uICE9PSBudWxsICYmICFhdmFpbGFibGVPcHRpb25TZXQuaGFzKHNlbGVjdGVkT3B0aW9uKSkge1xuXHRcdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdFx0c2VsZWN0ZWRPcHRpb25zOiBbXSxcblx0XHRcdFx0XHR2YWx1ZTogJycsXG5cdFx0XHRcdH0pKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -1,18 +1,19 @@
1
- import { Directive, Input, inject } from '@angular/core';
1
+ import { Directive, inject, input } from '@angular/core';
2
2
  import { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';
3
3
  import { BrnSheetComponent } from './brn-sheet.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class BrnSheetTriggerDirective extends BrnDialogTriggerDirective {
6
6
  _sheet = inject(BrnSheetComponent, { optional: true });
7
- side;
7
+ side = input(undefined);
8
8
  open() {
9
- if (this._sheet && this.side) {
10
- this._sheet.setSide = this.side;
9
+ const side = this.side();
10
+ if (this._sheet && side) {
11
+ this._sheet.sideInputState().set(side);
11
12
  }
12
13
  super.open();
13
14
  }
14
15
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSheetTriggerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
15
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSheetTriggerDirective, isStandalone: true, selector: "button[brnSheetTrigger]", inputs: { side: "side" }, usesInheritance: true, ngImport: i0 });
16
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnSheetTriggerDirective, isStandalone: true, selector: "button[brnSheetTrigger]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
16
17
  }
17
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSheetTriggerDirective, decorators: [{
18
19
  type: Directive,
@@ -20,7 +21,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
20
21
  selector: 'button[brnSheetTrigger]',
21
22
  standalone: true,
22
23
  }]
23
- }], propDecorators: { side: [{
24
- type: Input
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNoZWV0LXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zaGVldC9zcmMvbGliL2Jybi1zaGVldC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFDckQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWpFLElBQUksQ0FBa0Q7SUFFcEQsSUFBSTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzswSEFWVyx3QkFBd0I7OEdBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDaEI7OEJBSU8sSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5EaWFsb2dUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vZGlhbG9nJztcbmltcG9ydCB7IEJyblNoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi9icm4tc2hlZXQuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnV0dG9uW2JyblNoZWV0VHJpZ2dlcl0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TaGVldFRyaWdnZXJEaXJlY3RpdmUgZXh0ZW5kcyBCcm5EaWFsb2dUcmlnZ2VyRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfc2hlZXQgPSBpbmplY3QoQnJuU2hlZXRDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cdEBJbnB1dCgpXG5cdHB1YmxpYyBzaWRlOiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8IHVuZGVmaW5lZDtcblxuXHRvdmVycmlkZSBvcGVuKCkge1xuXHRcdGlmICh0aGlzLl9zaGVldCAmJiB0aGlzLnNpZGUpIHtcblx0XHRcdHRoaXMuX3NoZWV0LnNldFNpZGUgPSB0aGlzLnNpZGU7XG5cdFx0fVxuXHRcdHN1cGVyLm9wZW4oKTtcblx0fVxufVxuIl19
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNoZWV0LXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zaGVldC9zcmMvbGliL2Jybi1zaGVldC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFDckQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWpFLElBQUksR0FBRyxLQUFLLENBQWtELFNBQVMsQ0FBQyxDQUFDO0lBRXZFLElBQUk7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOzBIQVhXLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2RpYWxvZyc7XG5pbXBvcnQgeyBCcm5TaGVldENvbXBvbmVudCB9IGZyb20gJy4vYnJuLXNoZWV0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2J1dHRvblticm5TaGVldFRyaWdnZXJdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2hlZXRUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NoZWV0ID0gaW5qZWN0KEJyblNoZWV0Q29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG5cdHB1YmxpYyBzaWRlID0gaW5wdXQ8J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cblx0b3ZlcnJpZGUgb3BlbigpIHtcblx0XHRjb25zdCBzaWRlID0gdGhpcy5zaWRlKCk7XG5cdFx0aWYgKHRoaXMuX3NoZWV0ICYmIHNpZGUpIHtcblx0XHRcdHRoaXMuX3NoZWV0LnNpZGVJbnB1dFN0YXRlKCkuc2V0KHNpZGUpO1xuXHRcdH1cblx0XHRzdXBlci5vcGVuKCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,27 +1,32 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, forwardRef, signal } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, forwardRef, input, signal, untracked, ViewEncapsulation, } from '@angular/core';
2
2
  import { BrnDialogComponent } from '@spartan-ng/brain/dialog';
3
3
  import * as i0 from "@angular/core";
4
4
  export class BrnSheetComponent extends BrnDialogComponent {
5
- _side = signal('top');
6
- side = this._side.asReadonly();
7
- /* eslint-disable-next-line @angular-eslint/no-input-rename */
8
- set setSide(side) {
9
- this._side.set(side);
10
- if (side === 'top') {
11
- this.positionStrategy = this.positionBuilder.global().top();
12
- }
13
- if (side === 'bottom') {
14
- this.positionStrategy = this.positionBuilder.global().bottom();
15
- }
16
- if (side === 'left') {
17
- this.positionStrategy = this.positionBuilder.global().left();
18
- }
19
- if (side === 'right') {
20
- this.positionStrategy = this.positionBuilder.global().right();
21
- }
5
+ sideInput = input('top', { alias: 'side' });
6
+ sideInputState = computed(() => signal(this.sideInput()));
7
+ side = computed(() => this.sideInputState().asReadonly()());
8
+ constructor() {
9
+ super();
10
+ effect(() => {
11
+ const side = this.side();
12
+ untracked(() => {
13
+ if (side === 'top') {
14
+ this.mutablePositionStrategy().set(this.positionBuilder.global().top());
15
+ }
16
+ if (side === 'bottom') {
17
+ this.mutablePositionStrategy().set(this.positionBuilder.global().bottom());
18
+ }
19
+ if (side === 'left') {
20
+ this.mutablePositionStrategy().set(this.positionBuilder.global().left());
21
+ }
22
+ if (side === 'right') {
23
+ this.mutablePositionStrategy().set(this.positionBuilder.global().right());
24
+ }
25
+ });
26
+ });
22
27
  }
23
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSheetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: BrnSheetComponent, isStandalone: true, selector: "brn-sheet", inputs: { setSide: ["side", "setSide"] }, providers: [
28
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnSheetComponent, isStandalone: true, selector: "brn-sheet", inputs: { sideInput: { classPropertyName: "sideInput", publicName: "side", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
25
30
  {
26
31
  provide: BrnDialogComponent,
27
32
  useExisting: forwardRef((() => BrnSheetComponent)),
@@ -48,8 +53,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
48
53
  encapsulation: ViewEncapsulation.None,
49
54
  exportAs: 'brnSheet',
50
55
  }]
51
- }], propDecorators: { setSide: [{
52
- type: Input,
53
- args: ['side']
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2hlZXQvc3JjL2xpYi9icm4tc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBa0I5RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBQ3ZDLEtBQUssR0FBRyxNQUFNLENBQXNDLEtBQUssQ0FBQyxDQUFDO0lBQzVELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQy9DLDhEQUE4RDtJQUM5RCxJQUNXLE9BQU8sQ0FBQyxJQUF5QztRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvRCxDQUFDO0lBQ0YsQ0FBQzswSEFuQlcsaUJBQWlCOzhHQUFqQixpQkFBaUIsa0dBVmxCO1lBQ1Y7Z0JBQ0MsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBQzthQUNoRDtTQUNELHlFQVJTOztFQUVUOzsyRkFXVyxpQkFBaUI7a0JBaEI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBQzt5QkFDaEQ7cUJBQ0Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsVUFBVTtpQkFDcEI7OEJBTVcsT0FBTztzQkFEakIsS0FBSzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJybkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Jybi1zaGVldCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRlbnQgLz5cblx0YCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQnJuRGlhbG9nQ29tcG9uZW50LFxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQnJuU2hlZXRDb21wb25lbnQpLFxuXHRcdH0sXG5cdF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRleHBvcnRBczogJ2JyblNoZWV0Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2hlZXRDb21wb25lbnQgZXh0ZW5kcyBCcm5EaWFsb2dDb21wb25lbnQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zaWRlID0gc2lnbmFsPCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPigndG9wJyk7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlID0gdGhpcy5fc2lkZS5hc1JlYWRvbmx5KCk7XG5cdC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG5cdEBJbnB1dCgnc2lkZScpXG5cdHB1YmxpYyBzZXQgc2V0U2lkZShzaWRlOiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0Jykge1xuXHRcdHRoaXMuX3NpZGUuc2V0KHNpZGUpO1xuXHRcdGlmIChzaWRlID09PSAndG9wJykge1xuXHRcdFx0dGhpcy5wb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5wb3NpdGlvbkJ1aWxkZXIuZ2xvYmFsKCkudG9wKCk7XG5cdFx0fVxuXHRcdGlmIChzaWRlID09PSAnYm90dG9tJykge1xuXHRcdFx0dGhpcy5wb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5wb3NpdGlvbkJ1aWxkZXIuZ2xvYmFsKCkuYm90dG9tKCk7XG5cdFx0fVxuXHRcdGlmIChzaWRlID09PSAnbGVmdCcpIHtcblx0XHRcdHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucG9zaXRpb25CdWlsZGVyLmdsb2JhbCgpLmxlZnQoKTtcblx0XHR9XG5cdFx0aWYgKHNpZGUgPT09ICdyaWdodCcpIHtcblx0XHRcdHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucG9zaXRpb25CdWlsZGVyLmdsb2JhbCgpLnJpZ2h0KCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
56
+ }], ctorParameters: () => [] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2hlZXQvc3JjL2xpYi9icm4tc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFrQjlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDeEMsU0FBUyxHQUFHLEtBQUssQ0FBc0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakYsY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRCxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUU7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekUsQ0FBQztnQkFDRCxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztnQkFDRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUUsQ0FBQztnQkFDRCxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDM0UsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzBIQXZCVyxpQkFBaUI7OEdBQWpCLGlCQUFpQixtTUFWbEI7WUFDVjtnQkFDQyxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFDO2FBQ2hEO1NBQ0QseUVBUlM7O0VBRVQ7OzJGQVdXLGlCQUFpQjtrQkFoQjdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFDO3lCQUNoRDtxQkFDRDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGZvcndhcmRSZWYsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0Vmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXNoZWV0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBCcm5EaWFsb2dDb21wb25lbnQsXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCcm5TaGVldENvbXBvbmVudCksXG5cdFx0fSxcblx0XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGV4cG9ydEFzOiAnYnJuU2hlZXQnLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TaGVldENvbXBvbmVudCBleHRlbmRzIEJybkRpYWxvZ0NvbXBvbmVudCB7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlSW5wdXQgPSBpbnB1dDwndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0Jz4oJ3RvcCcsIHsgYWxpYXM6ICdzaWRlJyB9KTtcblx0cHVibGljIHJlYWRvbmx5IHNpZGVJbnB1dFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuc2lkZUlucHV0KCkpKTtcblx0cHVibGljIHJlYWRvbmx5IHNpZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNpZGVJbnB1dFN0YXRlKCkuYXNSZWFkb25seSgpKCkpO1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzaWRlID0gdGhpcy5zaWRlKCk7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRpZiAoc2lkZSA9PT0gJ3RvcCcpIHtcblx0XHRcdFx0XHR0aGlzLm11dGFibGVQb3NpdGlvblN0cmF0ZWd5KCkuc2V0KHRoaXMucG9zaXRpb25CdWlsZGVyLmdsb2JhbCgpLnRvcCgpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc2lkZSA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdFx0XHR0aGlzLm11dGFibGVQb3NpdGlvblN0cmF0ZWd5KCkuc2V0KHRoaXMucG9zaXRpb25CdWlsZGVyLmdsb2JhbCgpLmJvdHRvbSgpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5tdXRhYmxlUG9zaXRpb25TdHJhdGVneSgpLnNldCh0aGlzLnBvc2l0aW9uQnVpbGRlci5nbG9iYWwoKS5sZWZ0KCkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChzaWRlID09PSAncmlnaHQnKSB7XG5cdFx0XHRcdFx0dGhpcy5tdXRhYmxlUG9zaXRpb25TdHJhdGVneSgpLnNldCh0aGlzLnBvc2l0aW9uQnVpbGRlci5nbG9iYWwoKS5yaWdodCgpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, forwardRef, NgModule } from '@angular/core';
2
+ import { Directive, Component, ChangeDetectionStrategy, ViewEncapsulation, input, effect, untracked, forwardRef, NgModule } from '@angular/core';
3
3
  import { provideExposesStateProviderExisting, provideCustomClassSettableExisting } from '@spartan-ng/brain/core';
4
4
  import { BrnDialogContentDirective, BrnDialogDescriptionDirective, BrnDialogOverlayComponent, BrnDialogTitleDirective, BrnDialogTriggerDirective, BrnDialogComponent } from '@spartan-ng/brain/dialog';
5
5
 
@@ -63,11 +63,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
63
63
  }] });
64
64
 
65
65
  class BrnAlertDialogTriggerDirective extends BrnDialogTriggerDirective {
66
- set brnAlertDialogTriggerFor(brnDialog) {
67
- super.brnDialogTriggerFor = brnDialog;
66
+ brnAlertDialogTriggerFor = input();
67
+ constructor() {
68
+ super();
69
+ effect(() => {
70
+ const brnDialog = this.brnAlertDialogTriggerFor();
71
+ untracked(() => {
72
+ if (brnDialog) {
73
+ this.mutableBrnDialogTriggerFor().set(brnDialog);
74
+ }
75
+ });
76
+ });
68
77
  }
69
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnAlertDialogTriggerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
70
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnAlertDialogTriggerDirective, isStandalone: true, selector: "button[brnAlertDialogTrigger],button[brnAlertDialogTriggerFor]", inputs: { brnAlertDialogTriggerFor: "brnAlertDialogTriggerFor" }, host: { attributes: { "aria-haspopup": "dialog" }, properties: { "id": "id()", "attr.aria-expanded": "state() === 'open' ? 'true': 'false'", "attr.data-state": "state()", "attr.aria-controls": "dialogId" } }, usesInheritance: true, ngImport: i0 });
78
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnAlertDialogTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
79
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnAlertDialogTriggerDirective, isStandalone: true, selector: "button[brnAlertDialogTrigger],button[brnAlertDialogTriggerFor]", inputs: { brnAlertDialogTriggerFor: { classPropertyName: "brnAlertDialogTriggerFor", publicName: "brnAlertDialogTriggerFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-haspopup": "dialog" }, properties: { "id": "id()", "attr.aria-expanded": "state() === 'open' ? 'true': 'false'", "attr.data-state": "state()", "attr.aria-controls": "dialogId" } }, usesInheritance: true, ngImport: i0 });
71
80
  }
72
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnAlertDialogTriggerDirective, decorators: [{
73
82
  type: Directive,
@@ -82,16 +91,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
82
91
  '[attr.aria-controls]': 'dialogId',
83
92
  },
84
93
  }]
85
- }], propDecorators: { brnAlertDialogTriggerFor: [{
86
- type: Input
87
- }] } });
94
+ }], ctorParameters: () => [] });
88
95
 
89
96
  class BrnAlertDialogComponent extends BrnDialogComponent {
90
97
  constructor() {
91
98
  super();
92
- this._options.role = 'alertdialog';
93
- this._options.closeOnBackdropClick = false;
94
- this._options.closeOnOutsidePointerEvents = false;
99
+ this.mutableCloseOnOutsidePointerEvents().set(false);
100
+ this.mutableCloseOnBackdropClick().set(false);
101
+ this.mutableRole().set('alertdialog');
95
102
  }
96
103
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
104
  /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: BrnAlertDialogComponent, isStandalone: true, selector: "brn-alert-dialog", providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-alert-dialog.mjs","sources":["../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-content.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-description.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-overlay.component.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-title.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-trigger.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog.component.ts","../../../../libs/brain/alert-dialog/src/index.ts","../../../../libs/brain/alert-dialog/src/spartan-ng-brain-alert-dialog.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnAlertDialogContentDirective)],\n})\nexport class BrnAlertDialogContentDirective<T> extends BrnDialogContentDirective<T> {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescriptionDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnAlertDialogDescriptionDirective extends BrnDialogDescriptionDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlayComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-alert-dialog-overlay',\n\tstandalone: true,\n\tproviders: [provideCustomClassSettableExisting(() => BrnAlertDialogOverlayComponent)],\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnAlertDialogOverlayComponent extends BrnDialogOverlayComponent {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitleDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnAlertDialogTitleDirective extends BrnDialogTitleDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport type { BrnAlertDialogComponent } from './brn-alert-dialog.component';\n\n@Directive({\n\tselector: 'button[brnAlertDialogTrigger],button[brnAlertDialogTriggerFor]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t},\n})\nexport class BrnAlertDialogTriggerDirective extends BrnDialogTriggerDirective {\n\t@Input()\n\tpublic set brnAlertDialogTriggerFor(brnDialog: BrnAlertDialogComponent) {\n\t\tsuper.brnDialogTriggerFor = brnDialog;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-alert-dialog',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnAlertDialogComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnAlertDialog',\n})\nexport class BrnAlertDialogComponent extends BrnDialogComponent {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._options.role = 'alertdialog';\n\t\tthis._options.closeOnBackdropClick = false;\n\t\tthis._options.closeOnOutsidePointerEvents = false;\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnAlertDialogContentDirective } from './lib/brn-alert-dialog-content.directive';\nimport { BrnAlertDialogDescriptionDirective } from './lib/brn-alert-dialog-description.directive';\nimport { BrnAlertDialogOverlayComponent } from './lib/brn-alert-dialog-overlay.component';\nimport { BrnAlertDialogTitleDirective } from './lib/brn-alert-dialog-title.directive';\nimport { BrnAlertDialogTriggerDirective } from './lib/brn-alert-dialog-trigger.directive';\nimport { BrnAlertDialogComponent } from './lib/brn-alert-dialog.component';\n\nexport * from './lib/brn-alert-dialog-content.directive';\nexport * from './lib/brn-alert-dialog-description.directive';\nexport * from './lib/brn-alert-dialog-overlay.component';\nexport * from './lib/brn-alert-dialog-title.directive';\nexport * from './lib/brn-alert-dialog-trigger.directive';\nexport * from './lib/brn-alert-dialog.component';\n\nexport const BrnAlertDialogImports = [\n\tBrnAlertDialogComponent,\n\tBrnAlertDialogOverlayComponent,\n\tBrnAlertDialogTriggerDirective,\n\tBrnAlertDialogContentDirective,\n\tBrnAlertDialogTitleDirective,\n\tBrnAlertDialogDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnAlertDialogImports],\n\texports: [...BrnAlertDialogImports],\n})\nexport class BrnAlertDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-alert-dialog.mjs","sources":["../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-content.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-description.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-overlay.component.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-title.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog-trigger.directive.ts","../../../../libs/brain/alert-dialog/src/lib/brn-alert-dialog.component.ts","../../../../libs/brain/alert-dialog/src/index.ts","../../../../libs/brain/alert-dialog/src/spartan-ng-brain-alert-dialog.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnAlertDialogContentDirective)],\n})\nexport class BrnAlertDialogContentDirective<T> extends BrnDialogContentDirective<T> {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescriptionDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnAlertDialogDescriptionDirective extends BrnDialogDescriptionDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlayComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-alert-dialog-overlay',\n\tstandalone: true,\n\tproviders: [provideCustomClassSettableExisting(() => BrnAlertDialogOverlayComponent)],\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnAlertDialogOverlayComponent extends BrnDialogOverlayComponent {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitleDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnAlertDialogTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnAlertDialogTitleDirective extends BrnDialogTitleDirective {}\n","import { Directive, effect, input, untracked } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport type { BrnAlertDialogComponent } from './brn-alert-dialog.component';\n\n@Directive({\n\tselector: 'button[brnAlertDialogTrigger],button[brnAlertDialogTriggerFor]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t},\n})\nexport class BrnAlertDialogTriggerDirective extends BrnDialogTriggerDirective {\n\tpublic readonly brnAlertDialogTriggerFor = input<BrnAlertDialogComponent | undefined>();\n\n\tconstructor() {\n\t\tsuper();\n\t\teffect(() => {\n\t\t\tconst brnDialog = this.brnAlertDialogTriggerFor();\n\t\t\tuntracked(() => {\n\t\t\t\tif (brnDialog) {\n\t\t\t\t\tthis.mutableBrnDialogTriggerFor().set(brnDialog);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-alert-dialog',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnAlertDialogComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnAlertDialog',\n})\nexport class BrnAlertDialogComponent extends BrnDialogComponent {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.mutableCloseOnOutsidePointerEvents().set(false);\n\t\tthis.mutableCloseOnBackdropClick().set(false);\n\t\tthis.mutableRole().set('alertdialog');\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnAlertDialogContentDirective } from './lib/brn-alert-dialog-content.directive';\nimport { BrnAlertDialogDescriptionDirective } from './lib/brn-alert-dialog-description.directive';\nimport { BrnAlertDialogOverlayComponent } from './lib/brn-alert-dialog-overlay.component';\nimport { BrnAlertDialogTitleDirective } from './lib/brn-alert-dialog-title.directive';\nimport { BrnAlertDialogTriggerDirective } from './lib/brn-alert-dialog-trigger.directive';\nimport { BrnAlertDialogComponent } from './lib/brn-alert-dialog.component';\n\nexport * from './lib/brn-alert-dialog-content.directive';\nexport * from './lib/brn-alert-dialog-description.directive';\nexport * from './lib/brn-alert-dialog-overlay.component';\nexport * from './lib/brn-alert-dialog-title.directive';\nexport * from './lib/brn-alert-dialog-trigger.directive';\nexport * from './lib/brn-alert-dialog.component';\n\nexport const BrnAlertDialogImports = [\n\tBrnAlertDialogComponent,\n\tBrnAlertDialogOverlayComponent,\n\tBrnAlertDialogTriggerDirective,\n\tBrnAlertDialogContentDirective,\n\tBrnAlertDialogTitleDirective,\n\tBrnAlertDialogDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnAlertDialogImports],\n\texports: [...BrnAlertDialogImports],\n})\nexport class BrnAlertDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}