@odx/angular 12.11.0 → 12.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 12.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 8eb7eaa: Tooltip behavior improvement
8
+
9
+ ## 12.12.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 58f727e: fixed inability to smoothly proceed to the next select control because of losing focus
14
+
3
15
  ## 12.11.0
4
16
 
5
17
  ### Minor Changes
@@ -15,6 +15,7 @@ export declare class TooltipDirective implements OnInit, OnChanges, OnDestroy {
15
15
  private readonly hideTrigger$$;
16
16
  private readonly document;
17
17
  private readonly injector;
18
+ private readonly ngZone;
18
19
  private connectedOverlayRef;
19
20
  private tooltipOptions;
20
21
  private ignoreBrowserTabSwitchFocus;
@@ -25,7 +25,7 @@ let DropdownComponent = class DropdownComponent {
25
25
  this.host.close();
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownComponent, isStandalone: true, selector: "odx-dropdown", inputs: { content: "content", showLoader: "showLoader", clickOutsideActive: "clickOutsideActive" }, host: { listeners: { "odxDropdownClose": "onDropdownClose()" } }, ngImport: i0, template: "<div\n class=\"odx-dropdown__inner\"\n [odxLoadingSpinner]=\"showLoader\"\n [odxClickOutsideActive]=\"clickOutsideActive\"\n (odxClickOutside)=\"host.close()\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.LoadingSpinnerDirective, selector: "[odxLoadingSpinner]", inputs: ["odxLoadingSpinnerAutoColor", "odxLoadingSpinner", "odxLoadingSpinnerMinHeight"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownComponent, isStandalone: true, selector: "odx-dropdown", inputs: { content: "content", showLoader: "showLoader", clickOutsideActive: "clickOutsideActive" }, host: { listeners: { "odxDropdownClose": "onDropdownClose()" } }, ngImport: i0, template: "<div class=\"odx-dropdown__inner\" [odxLoadingSpinner]=\"showLoader\" [odxClickOutsideActive]=\"clickOutsideActive\" (odxClickOutside)=\"host.close()\" cdkTrapFocus>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.LoadingSpinnerDirective, selector: "[odxLoadingSpinner]", inputs: ["odxLoadingSpinnerAutoColor", "odxLoadingSpinner", "odxLoadingSpinnerMinHeight"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
29
  };
30
30
  DropdownComponent = __decorate([
31
31
  CSSComponent('dropdown')
@@ -33,7 +33,7 @@ DropdownComponent = __decorate([
33
33
  export { DropdownComponent };
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ standalone: true, selector: 'odx-dropdown', imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"odx-dropdown__inner\"\n [odxLoadingSpinner]=\"showLoader\"\n [odxClickOutsideActive]=\"clickOutsideActive\"\n (odxClickOutside)=\"host.close()\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n" }]
36
+ args: [{ standalone: true, selector: 'odx-dropdown', imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"odx-dropdown__inner\" [odxLoadingSpinner]=\"showLoader\" [odxClickOutsideActive]=\"clickOutsideActive\" (odxClickOutside)=\"host.close()\" cdkTrapFocus>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n" }]
37
37
  }], propDecorators: { content: [{
38
38
  type: Input
39
39
  }], showLoader: [{
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
44
44
  type: HostListener,
45
45
  args: [CloseDropdownEvent.TYPE]
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24vc3JjL2xpYi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvbGliL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQWtCLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRTlDOztHQUVHO0FBVUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFBdkI7UUFDYyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0E4QjNDO0lBSFcsZUFBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBaENVLGlCQUFpQjttR0FBakIsaUJBQWlCLDhPQ3RCOUIsbVRBVUEsMkNET1ksVUFBVSxzTEFBRSxvQkFBb0Isc0pBQUUsb0JBQW9CLG1OQUFFLFVBQVU7O0FBS2pFLGlCQUFpQjtJQVQ3QixZQUFZLENBQUMsVUFBVSxDQUFDO0dBU1osaUJBQWlCLENBaUM3Qjs7NEZBakNZLGlCQUFpQjtrQkFSN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxpQkFFOUQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFheEMsT0FBTztzQkFEYixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlJLGVBQWU7c0JBRHhCLFlBQVk7dUJBQUMsa0JBQWtCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbG9zZURyb3Bkb3duRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqL1xuQENTU0NvbXBvbmVudCgnZHJvcGRvd24nKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWRyb3Bkb3duJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIER5bmFtaWNWaWV3RGlyZWN0aXZlLCBMb2FkaW5nU3Bpbm5lck1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KERyb3Bkb3duRGlyZWN0aXZlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljQ29udGVudCB8IG51bGx9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29udGVudD86IER5bmFtaWNDb250ZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gc2hvdyBhIGxvYWRlciB3aGlsZSBsb2FkaW5nIHRoZSBkcm9wZG93biBjb250ZW50LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93TG9hZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgY2xpY2tpbmcgb3V0c2lkZSB0aGUgZHJvcGRvd24gc2hvdWxkIGNsb3NlIGl0LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjbGlja091dHNpZGVBY3RpdmU/OiBib29sZWFuO1xuXG4gIEBIb3N0TGlzdGVuZXIoQ2xvc2VEcm9wZG93bkV2ZW50LlRZUEUpXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0LmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJvZHgtZHJvcGRvd25fX2lubmVyXCJcbiAgW29keExvYWRpbmdTcGlubmVyXT1cInNob3dMb2FkZXJcIlxuICBbb2R4Q2xpY2tPdXRzaWRlQWN0aXZlXT1cImNsaWNrT3V0c2lkZUFjdGl2ZVwiXG4gIChvZHhDbGlja091dHNpZGUpPVwiaG9zdC5jbG9zZSgpXCJcbiAgY2RrVHJhcEZvY3VzXG4gIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlXG4+XG4gIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwiY29udGVudFwiIFtvZHhEeW5hbWljVmlld0luamVjdG9yXT1cImluamVjdG9yXCIgLz5cbjwvZGl2PlxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24vc3JjL2xpYi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvbGliL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQWtCLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRTlDOztHQUVHO0FBVUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFBdkI7UUFDYyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0E4QjNDO0lBSFcsZUFBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBaENVLGlCQUFpQjttR0FBakIsaUJBQWlCLDhPQ3RCOUIsdVFBR0EsMkNEY1ksVUFBVSxzTEFBRSxvQkFBb0Isc0pBQUUsb0JBQW9CLG1OQUFFLFVBQVU7O0FBS2pFLGlCQUFpQjtJQVQ3QixZQUFZLENBQUMsVUFBVSxDQUFDO0dBU1osaUJBQWlCLENBaUM3Qjs7NEZBakNZLGlCQUFpQjtrQkFSN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxpQkFFOUQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFheEMsT0FBTztzQkFEYixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlJLGVBQWU7c0JBRHhCLFlBQVk7dUJBQUMsa0JBQWtCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbG9zZURyb3Bkb3duRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqL1xuQENTU0NvbXBvbmVudCgnZHJvcGRvd24nKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWRyb3Bkb3duJyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIER5bmFtaWNWaWV3RGlyZWN0aXZlLCBMb2FkaW5nU3Bpbm5lck1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KERyb3Bkb3duRGlyZWN0aXZlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljQ29udGVudCB8IG51bGx9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29udGVudD86IER5bmFtaWNDb250ZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gc2hvdyBhIGxvYWRlciB3aGlsZSBsb2FkaW5nIHRoZSBkcm9wZG93biBjb250ZW50LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93TG9hZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgY2xpY2tpbmcgb3V0c2lkZSB0aGUgZHJvcGRvd24gc2hvdWxkIGNsb3NlIGl0LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjbGlja091dHNpZGVBY3RpdmU/OiBib29sZWFuO1xuXG4gIEBIb3N0TGlzdGVuZXIoQ2xvc2VEcm9wZG93bkV2ZW50LlRZUEUpXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0LmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvZHgtZHJvcGRvd25fX2lubmVyXCIgW29keExvYWRpbmdTcGlubmVyXT1cInNob3dMb2FkZXJcIiBbb2R4Q2xpY2tPdXRzaWRlQWN0aXZlXT1cImNsaWNrT3V0c2lkZUFjdGl2ZVwiIChvZHhDbGlja091dHNpZGUpPVwiaG9zdC5jbG9zZSgpXCIgY2RrVHJhcEZvY3VzPlxuICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cImNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdJbmplY3Rvcl09XCJpbmplY3RvclwiIC8+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { DOCUMENT } from '@angular/common';
3
- import { booleanAttribute, Directive, inject, Injector, Input } from '@angular/core';
3
+ import { booleanAttribute, Directive, inject, Injector, Input, NgZone } from '@angular/core';
4
4
  import { ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';
5
5
  import { CSSComponent, deepmerge } from '@odx/angular/internal';
6
6
  import { delayUntil } from '@odx/angular/rxjs';
@@ -40,6 +40,7 @@ let TooltipDirective = class TooltipDirective {
40
40
  this.hideTrigger$$ = new Subject();
41
41
  this.document = inject(DOCUMENT);
42
42
  this.injector = inject(Injector);
43
+ this.ngZone = inject(NgZone);
43
44
  this.connectedOverlayRef = null;
44
45
  this.tooltipOptions = injectTooltipConfig();
45
46
  this.ignoreBrowserTabSwitchFocus = false;
@@ -119,10 +120,7 @@ let TooltipDirective = class TooltipDirective {
119
120
  showArrow: true,
120
121
  enableFallback: true,
121
122
  nonInteractive: true,
122
- }, {
123
- host: this.element.nativeElement.parentElement,
124
- injector: this.injector,
125
- });
123
+ }, { host: this.element.nativeElement.parentElement, injector: this.injector });
126
124
  }
127
125
  /**
128
126
  * Hides the tooltip, detaching the overlay from the host element.
@@ -137,20 +135,22 @@ let TooltipDirective = class TooltipDirective {
137
135
  registerEvents() {
138
136
  const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);
139
137
  this.eventManager.destroyListeners();
140
- this.eventManager.register([openEvent, 'focusin'], (event) => {
141
- if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {
142
- this.ignoreBrowserTabSwitchFocus = false;
143
- return;
144
- }
145
- this.showTrigger$$.next();
138
+ this.ngZone.runOutsideAngular(() => {
139
+ this.eventManager.register([openEvent, 'focusin'], (event) => {
140
+ if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {
141
+ this.ignoreBrowserTabSwitchFocus = false;
142
+ return;
143
+ }
144
+ this.showTrigger$$.next();
145
+ });
146
+ this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());
147
+ this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');
148
+ this.eventManager.register(['visibilitychange'], () => {
149
+ if (this.document.visibilityState === 'hidden') {
150
+ this.ignoreBrowserTabSwitchFocus = true;
151
+ }
152
+ }, 'document');
146
153
  });
147
- this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());
148
- this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');
149
- this.eventManager.register(['visibilitychange'], () => {
150
- if (this.document.visibilityState === 'hidden') {
151
- this.ignoreBrowserTabSwitchFocus = true;
152
- }
153
- }, 'document');
154
154
  }
155
155
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
156
156
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: TooltipDirective, isStandalone: true, selector: "[odxTooltip]", inputs: { content: ["odxTooltip", "content"], disabled: ["odxTooltipDisabled", "disabled", booleanAttribute], options: ["odxTooltipOptions", "options"], size: ["odxTooltipSize", "size"], visible: ["odxTooltipVisible", "visible", booleanAttribute] }, host: { properties: { "attr.aria-describedby": "tooltipId" } }, providers: [EventManager], exportAs: ["odxTooltip"], usesOnChanges: true, ngImport: i0 }); }
@@ -162,15 +162,7 @@ TooltipDirective = __decorate([
162
162
  export { TooltipDirective };
163
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, decorators: [{
164
164
  type: Directive,
165
- args: [{
166
- standalone: true,
167
- selector: '[odxTooltip]',
168
- exportAs: 'odxTooltip',
169
- providers: [EventManager],
170
- host: {
171
- '[attr.aria-describedby]': 'tooltipId',
172
- },
173
- }]
165
+ args: [{ standalone: true, selector: '[odxTooltip]', exportAs: 'odxTooltip', providers: [EventManager], host: { '[attr.aria-describedby]': 'tooltipId' } }]
174
166
  }], ctorParameters: () => [], propDecorators: { content: [{
175
167
  type: Input,
176
168
  args: ['odxTooltip']
@@ -187,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
187
179
  type: Input,
188
180
  args: [{ alias: 'odxTooltipVisible', transform: booleanAttribute }]
189
181
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBYSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNySCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFdkQ7Ozs7R0FJRztBQVdJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBaUMzQjs7Ozs7T0FLRztJQUNILElBQ1csT0FBTyxDQUFDLEtBQWlEO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFtQixDQUFDO0lB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J0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UmVmLCBDb25uZWN0ZWRPdmVybGF5U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWxheVVudGlsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyLCBnZXRVbmlxdWVJZCwgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlc29sdmVUb29sdGlwVHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFNpemUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbi8qKlxuICogVG9vbHRpcERpcmVjdGl2ZSBtYW5hZ2VzIHRvb2x0aXBzIGZvciBob3N0IGVsZW1lbnRzIGJ5IGNyZWF0aW5nIG92ZXJsYXkgY29tcG9uZW50cyBkeW5hbWljYWxseS5cbiAqIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdWNoIGFzIGNvbnRlbnQsIGRlbGF5IHRpbWluZ3MsIHZpc2liaWxpdHksIGFuZCB0b29sdGlwIHNpemluZy5cbiAqIFRoaXMgZGlyZWN0aXZlIHVzZXMgQW5ndWxhcidzIGNvbm5lY3RlZCBvdmVybGF5IHN5c3RlbSB0byBwb3NpdGlvbiBhbmQgbWFuYWdlIHRvb2x0aXAgdmlzaWJpbGl0eS5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9vbHRpcC1ob3N0JylcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhUb29sdGlwXScsXG4gIGV4cG9ydEFzOiAnb2R4VG9vbHRpcCcsXG4gIHByb3ZpZGVyczogW0V2ZW50TWFuYWdlcl0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAndG9vbHRpcElkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50TWFuYWdlciA9IGluamVjdChFdmVudE1hbmFnZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KENvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzaG93VHJpZ2dlciQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBoaWRlVHJpZ2dlciQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIGNvbm5lY3RlZE92ZXJsYXlSZWY6IENvbm5lY3RlZE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0b29sdGlwT3B0aW9ucyA9IGluamVjdFRvb2x0aXBDb25maWcoKTtcbiAgcHJpdmF0ZSBpZ25vcmVCcm93c2VyVGFiU3dpdGNoRm9jdXMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdG9vbHRpcElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIElucHV0IGZvciBkeW5hbWljIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgdG9vbHRpcC5cbiAgICogVGhpcyBjb250ZW50IGlzIHJlYWN0aXZlIGFuZCBjYW4gY2hhbmdlIGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBAdHlwZSB7RHluYW1pY0NvbnRlbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoJ29keFRvb2x0aXAnKVxuICBwdWJsaWMgY29udGVudD86IEV4Y2x1ZGU8RHluYW1pY0NvbnRlbnQsIFR5cGU8dW5rbm93bj4+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgZGlzYWJsZWQuIEEgZGlzYWJsZWQgdG9vbHRpcCB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdvZHhUb29sdGlwRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRvb2x0aXAuXG4gICAqIEl0IGFsbG93cyBzZXR0aW5nIHZhcmlvdXMgYmVoYXZpb3JzIGxpa2UgZGVsYXkgYW5kIHBvc2l0aW9uaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgnb2R4VG9vbHRpcE9wdGlvbnMnKVxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IFBhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudG9vbHRpcE9wdGlvbnMgPSBkZWVwbWVyZ2UodGhpcy50b29sdGlwT3B0aW9ucywgdmFsdWUpIGFzIFRvb2x0aXBPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNpemUgb2YgdGhlIHRvb2x0aXAuXG4gICAqXG4gICAqIEB0eXBlIHtUb29sdGlwU2l6ZX1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KCdvZHhUb29sdGlwU2l6ZScpXG4gIHB1YmxpYyBzaXplPzogVG9vbHRpcFNpemUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHRvb2x0aXAuXG4gICAqIFVzZWZ1bCBmb3IgcHJvZ3JhbW1hdGljYWxseSB0b2dnbGluZyB0aGUgdG9vbHRpcCBkaXNwbGF5LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAnb2R4VG9vbHRpcFZpc2libGUnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgY3VycmVudGx5IG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkT3ZlcmxheVJlZiAhPT0gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gICAgY29uc3Qgc2hvdyQgPSB0aGlzLnNob3dUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc09wZW4pLFxuICAgICAgZGVsYXlVbnRpbCgoKSA9PiB0aGlzLnRvb2x0aXBPcHRpb25zLmRlbGF5SW4sIHRoaXMuaGlkZVRyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zaG93KCkpLFxuICAgICk7XG4gICAgY29uc3QgaGlkZSQgPSB0aGlzLmhpZGVUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzT3BlbiksXG4gICAgICBkZWxheVVudGlsKCgpID0+IHRoaXMudG9vbHRpcE9wdGlvbnMuZGVsYXlPdXQsIHRoaXMuc2hvd1RyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5oaWRlKCkpLFxuICAgICk7XG4gICAgbWVyZ2Uoc2hvdyQsIGhpZGUkKS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPFRvb2x0aXBEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2Rpc2FibGVkJykgJiYgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnY29udGVudCcsICdzaXplJ10pKSB7XG4gICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LnVwZGF0ZSh7IGNvbnRleHQ6IHsgY29udGVudDogdGhpcy5jb250ZW50LCBzaXplOiB0aGlzLnNpemUgfSB9KTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ29wdGlvbnMnKSkge1xuICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmPy51cGRhdGUodGhpcy50b29sdGlwT3B0aW9ucyk7XG4gICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSB0b29sdGlwLCBjcmVhdGluZyBhbmQgYXR0YWNoaW5nIHRoZSBvdmVybGF5IHRvIHRoZSBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gfHwgdGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jb250ZW50KSByZXR1cm47XG4gICAgdGhpcy50b29sdGlwSWQgPSBnZXRVbmlxdWVJZCgnb2R4LXRvb2x0aXAnKTtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWYgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlLmNyZWF0ZU92ZXJsYXkoXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy50b29sdGlwT3B0aW9ucyxcbiAgICAgICAgY29udGFpbmVyQ2xhc3M6ICdvZHgtdG9vbHRpcC1vdmVybGF5JyxcbiAgICAgICAgY29udGVudDogVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgY29udGV4dDogeyBjb250ZW50OiB0aGlzLmNvbnRlbnQsIHNpemU6IHRoaXMuc2l6ZSA/PyB0aGlzLnRvb2x0aXBPcHRpb25zLnNpemUsIGlkOiB0aGlzLnRvb2x0aXBJZCB9LFxuICAgICAgICBzaG93QXJyb3c6IHRydWUsXG4gICAgICAgIGVuYWJsZUZhbGxiYWNrOiB0cnVlLFxuICAgICAgICBub25JbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhvc3Q6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsXG4gICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSB0b29sdGlwLCBkZXRhY2hpbmcgdGhlIG92ZXJsYXkgZnJvbSB0aGUgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGhpZGUoZm9yY2UgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICgoIXRoaXMuaXNPcGVuIHx8ICh0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQpKSAmJiAhZm9yY2UpIHJldHVybjtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LmNsb3NlKGZvcmNlKTtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWYgPSBudWxsO1xuICAgIHRoaXMudG9vbHRpcElkID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJFdmVudHMoKTogdm9pZCB7XG4gICAgY29uc3QgW29wZW5FdmVudCwgY2xvc2VFdmVudF0gPSByZXNvbHZlVG9vbHRpcFRyaWdnZXJFdmVudHModGhpcy50b29sdGlwT3B0aW9ucy50cmlnZ2VyKTtcbiAgICB0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5ldmVudE1hbmFnZXIucmVnaXN0ZXIoW29wZW5FdmVudCwgJ2ZvY3VzaW4nXSwgKGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQnJvd3NlclRhYlN3aXRjaEZvY3VzICYmIGV2ZW50Py50eXBlID09PSAnZm9jdXNpbicpIHtcbiAgICAgICAgdGhpcy5pZ25vcmVCcm93c2VyVGFiU3dpdGNoRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zaG93VHJpZ2dlciQkLm5leHQoKTtcbiAgICB9KTtcbiAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihbY2xvc2VFdmVudCwgJ2ZvY3Vzb3V0J10sICgpID0+IHRoaXMuaGlkZVRyaWdnZXIkJC5uZXh0KCkpO1xuICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFsna2V5dXAuZXNjJ10sICgpID0+IHRoaXMuaGlkZVRyaWdnZXIkJC5uZXh0KCksICdkb2N1bWVudCcpO1xuICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFxuICAgICAgWyd2aXNpYmlsaXR5Y2hhbmdlJ10sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICB0aGlzLmlnbm9yZUJyb3dzZXJUYWJTd2l0Y2hGb2N1cyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnZG9jdW1lbnQnLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRXZEOzs7O0dBSUc7QUFHSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQW1DM0I7Ozs7O09BS0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFpRDtRQUNsRSxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBbUIsQ0FBQztJQUNoRixDQUFDO0lBcUJEOzs7O09BSUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVEO1FBekVpQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLHdCQUFtQixHQUErQixJQUFJLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZDLGdDQUEyQixHQUFHLEtBQUssQ0FBQztRQUVsQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUMxQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFFMUM7Ozs7OztXQU1HO1FBRUksWUFBTyxHQUFtRCxJQUFJLENBQUM7UUFFdEU7Ozs7O1dBS0c7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBYXhCOzs7OztXQUtHO1FBRUksU0FBSSxHQUF3QixJQUFJLENBQUM7UUFFeEM7Ozs7OztXQU1HO1FBRUksWUFBTyxHQUFHLEtBQUssQ0FBQztRQVlyQixNQUFNLGtCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQ2pFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDdkIsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNsRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQ3ZCLENBQUM7UUFDRixLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFvQztRQUNyRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDMUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQ25FLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQjtZQUNFLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDdEIsY0FBYyxFQUFFLHFCQUFxQjtZQUNyQyxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25HLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsY0FBYyxFQUFFLElBQUk7U0FDckIsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDNUUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSztRQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDekUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUF3QixFQUFFLEVBQUU7Z0JBQzlFLElBQUksSUFBSSxDQUFDLDJCQUEyQixJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ2xFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7b0JBQ3pDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDeEIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNwQixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUMsRUFDRCxVQUFVLENBQ1gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F6S1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMklBZ0NzQixnQkFBZ0IsMEhBOEJqQixnQkFBZ0IsZ0ZBL0QwQixDQUFDLFlBQVksQ0FBQzs7QUFDN0YsZ0JBQWdCO0lBRjVCLFlBQVksQ0FBQyxjQUFjLENBQUM7O0dBRWhCLGdCQUFnQixDQTBLNUI7OzRGQTFLWSxnQkFBZ0I7a0JBRDVCLFNBQVM7bUJBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsRUFBRTt3REF5QnJKLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxZQUFZO2dCQVVaLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVXhELE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVluQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVdoQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UmVmLCBDb25uZWN0ZWRPdmVybGF5U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWxheVVudGlsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyLCBnZXRVbmlxdWVJZCwgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlc29sdmVUb29sdGlwVHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFNpemUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbi8qKlxuICogVG9vbHRpcERpcmVjdGl2ZSBtYW5hZ2VzIHRvb2x0aXBzIGZvciBob3N0IGVsZW1lbnRzIGJ5IGNyZWF0aW5nIG92ZXJsYXkgY29tcG9uZW50cyBkeW5hbWljYWxseS5cbiAqIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdWNoIGFzIGNvbnRlbnQsIGRlbGF5IHRpbWluZ3MsIHZpc2liaWxpdHksIGFuZCB0b29sdGlwIHNpemluZy5cbiAqIFRoaXMgZGlyZWN0aXZlIHVzZXMgQW5ndWxhcidzIGNvbm5lY3RlZCBvdmVybGF5IHN5c3RlbSB0byBwb3NpdGlvbiBhbmQgbWFuYWdlIHRvb2x0aXAgdmlzaWJpbGl0eS5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9vbHRpcC1ob3N0JylcbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ1tvZHhUb29sdGlwXScsIGV4cG9ydEFzOiAnb2R4VG9vbHRpcCcsIHByb3ZpZGVyczogW0V2ZW50TWFuYWdlcl0sIGhvc3Q6IHsgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ3Rvb2x0aXBJZCcgfSB9KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudE1hbmFnZXIgPSBpbmplY3QoRXZlbnRNYW5hZ2VyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0ZWRPdmVybGF5U2VydmljZSA9IGluamVjdChDb25uZWN0ZWRPdmVybGF5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd1RyaWdnZXIkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGlkZVRyaWdnZXIkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIGNvbm5lY3RlZE92ZXJsYXlSZWY6IENvbm5lY3RlZE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0b29sdGlwT3B0aW9ucyA9IGluamVjdFRvb2x0aXBDb25maWcoKTtcbiAgcHJpdmF0ZSBpZ25vcmVCcm93c2VyVGFiU3dpdGNoRm9jdXMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdG9vbHRpcElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIElucHV0IGZvciBkeW5hbWljIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgdG9vbHRpcC5cbiAgICogVGhpcyBjb250ZW50IGlzIHJlYWN0aXZlIGFuZCBjYW4gY2hhbmdlIGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBAdHlwZSB7RHluYW1pY0NvbnRlbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoJ29keFRvb2x0aXAnKVxuICBwdWJsaWMgY29udGVudD86IEV4Y2x1ZGU8RHluYW1pY0NvbnRlbnQsIFR5cGU8dW5rbm93bj4+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgZGlzYWJsZWQuIEEgZGlzYWJsZWQgdG9vbHRpcCB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdvZHhUb29sdGlwRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRvb2x0aXAuXG4gICAqIEl0IGFsbG93cyBzZXR0aW5nIHZhcmlvdXMgYmVoYXZpb3JzIGxpa2UgZGVsYXkgYW5kIHBvc2l0aW9uaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgnb2R4VG9vbHRpcE9wdGlvbnMnKVxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IFBhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudG9vbHRpcE9wdGlvbnMgPSBkZWVwbWVyZ2UodGhpcy50b29sdGlwT3B0aW9ucywgdmFsdWUpIGFzIFRvb2x0aXBPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNpemUgb2YgdGhlIHRvb2x0aXAuXG4gICAqXG4gICAqIEB0eXBlIHtUb29sdGlwU2l6ZX1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KCdvZHhUb29sdGlwU2l6ZScpXG4gIHB1YmxpYyBzaXplPzogVG9vbHRpcFNpemUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHRvb2x0aXAuXG4gICAqIFVzZWZ1bCBmb3IgcHJvZ3JhbW1hdGljYWxseSB0b2dnbGluZyB0aGUgdG9vbHRpcCBkaXNwbGF5LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAnb2R4VG9vbHRpcFZpc2libGUnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgY3VycmVudGx5IG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkT3ZlcmxheVJlZiAhPT0gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gICAgY29uc3Qgc2hvdyQgPSB0aGlzLnNob3dUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc09wZW4pLFxuICAgICAgZGVsYXlVbnRpbCgoKSA9PiB0aGlzLnRvb2x0aXBPcHRpb25zLmRlbGF5SW4sIHRoaXMuaGlkZVRyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zaG93KCkpLFxuICAgICk7XG4gICAgY29uc3QgaGlkZSQgPSB0aGlzLmhpZGVUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzT3BlbiksXG4gICAgICBkZWxheVVudGlsKCgpID0+IHRoaXMudG9vbHRpcE9wdGlvbnMuZGVsYXlPdXQsIHRoaXMuc2hvd1RyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5oaWRlKCkpLFxuICAgICk7XG4gICAgbWVyZ2Uoc2hvdyQsIGhpZGUkKS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPFRvb2x0aXBEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2Rpc2FibGVkJykgJiYgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnY29udGVudCcsICdzaXplJ10pKSB7XG4gICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LnVwZGF0ZSh7IGNvbnRleHQ6IHsgY29udGVudDogdGhpcy5jb250ZW50LCBzaXplOiB0aGlzLnNpemUgfSB9KTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ29wdGlvbnMnKSkge1xuICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmPy51cGRhdGUodGhpcy50b29sdGlwT3B0aW9ucyk7XG4gICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSB0b29sdGlwLCBjcmVhdGluZyBhbmQgYXR0YWNoaW5nIHRoZSBvdmVybGF5IHRvIHRoZSBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gfHwgdGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jb250ZW50KSByZXR1cm47XG4gICAgdGhpcy50b29sdGlwSWQgPSBnZXRVbmlxdWVJZCgnb2R4LXRvb2x0aXAnKTtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWYgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlLmNyZWF0ZU92ZXJsYXkoXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy50b29sdGlwT3B0aW9ucyxcbiAgICAgICAgY29udGFpbmVyQ2xhc3M6ICdvZHgtdG9vbHRpcC1vdmVybGF5JyxcbiAgICAgICAgY29udGVudDogVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgY29udGV4dDogeyBjb250ZW50OiB0aGlzLmNvbnRlbnQsIHNpemU6IHRoaXMuc2l6ZSA/PyB0aGlzLnRvb2x0aXBPcHRpb25zLnNpemUsIGlkOiB0aGlzLnRvb2x0aXBJZCB9LFxuICAgICAgICBzaG93QXJyb3c6IHRydWUsXG4gICAgICAgIGVuYWJsZUZhbGxiYWNrOiB0cnVlLFxuICAgICAgICBub25JbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7IGhvc3Q6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgdG9vbHRpcCwgZGV0YWNoaW5nIHRoZSBvdmVybGF5IGZyb20gdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBoaWRlKGZvcmNlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoKCF0aGlzLmlzT3BlbiB8fCAodGhpcy52aXNpYmxlICYmICF0aGlzLmRpc2FibGVkKSkgJiYgIWZvcmNlKSByZXR1cm47XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmPy5jbG9zZShmb3JjZSk7XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmID0gbnVsbDtcbiAgICB0aGlzLnRvb2x0aXBJZCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyRXZlbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IFtvcGVuRXZlbnQsIGNsb3NlRXZlbnRdID0gcmVzb2x2ZVRvb2x0aXBUcmlnZ2VyRXZlbnRzKHRoaXMudG9vbHRpcE9wdGlvbnMudHJpZ2dlcik7XG4gICAgdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveUxpc3RlbmVycygpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFtvcGVuRXZlbnQsICdmb2N1c2luJ10sIChldmVudDogRXZlbnQgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlQnJvd3NlclRhYlN3aXRjaEZvY3VzICYmIGV2ZW50Py50eXBlID09PSAnZm9jdXNpbicpIHtcbiAgICAgICAgICB0aGlzLmlnbm9yZUJyb3dzZXJUYWJTd2l0Y2hGb2N1cyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dUcmlnZ2VyJCQubmV4dCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihbY2xvc2VFdmVudCwgJ2ZvY3Vzb3V0J10sICgpID0+IHRoaXMuaGlkZVRyaWdnZXIkJC5uZXh0KCkpO1xuICAgICAgdGhpcy5ldmVudE1hbmFnZXIucmVnaXN0ZXIoWydrZXl1cC5lc2MnXSwgKCkgPT4gdGhpcy5oaWRlVHJpZ2dlciQkLm5leHQoKSwgJ2RvY3VtZW50Jyk7XG4gICAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihcbiAgICAgICAgWyd2aXNpYmlsaXR5Y2hhbmdlJ10sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICB0aGlzLmlnbm9yZUJyb3dzZXJUYWJTd2l0Y2hGb2N1cyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -270,14 +270,14 @@ let DropdownComponent = class DropdownComponent {
270
270
  this.host.close();
271
271
  }
272
272
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
273
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownComponent, isStandalone: true, selector: "odx-dropdown", inputs: { content: "content", showLoader: "showLoader", clickOutsideActive: "clickOutsideActive" }, host: { listeners: { "odxDropdownClose": "onDropdownClose()" } }, ngImport: i0, template: "<div\n class=\"odx-dropdown__inner\"\n [odxLoadingSpinner]=\"showLoader\"\n [odxClickOutsideActive]=\"clickOutsideActive\"\n (odxClickOutside)=\"host.close()\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.LoadingSpinnerDirective, selector: "[odxLoadingSpinner]", inputs: ["odxLoadingSpinnerAutoColor", "odxLoadingSpinner", "odxLoadingSpinnerMinHeight"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownComponent, isStandalone: true, selector: "odx-dropdown", inputs: { content: "content", showLoader: "showLoader", clickOutsideActive: "clickOutsideActive" }, host: { listeners: { "odxDropdownClose": "onDropdownClose()" } }, ngImport: i0, template: "<div class=\"odx-dropdown__inner\" [odxLoadingSpinner]=\"showLoader\" [odxClickOutsideActive]=\"clickOutsideActive\" (odxClickOutside)=\"host.close()\" cdkTrapFocus>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.LoadingSpinnerDirective, selector: "[odxLoadingSpinner]", inputs: ["odxLoadingSpinnerAutoColor", "odxLoadingSpinner", "odxLoadingSpinnerMinHeight"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
274
274
  };
275
275
  DropdownComponent = __decorate([
276
276
  CSSComponent('dropdown')
277
277
  ], DropdownComponent);
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownComponent, decorators: [{
279
279
  type: Component,
280
- args: [{ standalone: true, selector: 'odx-dropdown', imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"odx-dropdown__inner\"\n [odxLoadingSpinner]=\"showLoader\"\n [odxClickOutsideActive]=\"clickOutsideActive\"\n (odxClickOutside)=\"host.close()\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n" }]
280
+ args: [{ standalone: true, selector: 'odx-dropdown', imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"odx-dropdown__inner\" [odxLoadingSpinner]=\"showLoader\" [odxClickOutsideActive]=\"clickOutsideActive\" (odxClickOutside)=\"host.close()\" cdkTrapFocus>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n" }]
281
281
  }], propDecorators: { content: [{
282
282
  type: Input
283
283
  }], showLoader: [{
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-dropdown.mjs","sources":["../../../../libs/angular/components/dropdown/src/lib/models/close-dropdown-event.ts","../../../../libs/angular/components/dropdown/src/lib/models/dropdown-options.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.directive.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.component.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.component.html","../../../../libs/angular/components/dropdown/src/lib/dropdown.module.ts","../../../../libs/angular/components/dropdown/src/lib/helpers/close-current-dropdown.ts","../../../../libs/angular/components/dropdown/src/odx-angular-components-dropdown.ts"],"sourcesContent":["export class CloseDropdownEvent extends Event {\n public static readonly TYPE = 'odxDropdownClose';\n\n constructor() {\n super(CloseDropdownEvent.TYPE, { bubbles: true });\n }\n}\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\n\nexport type DropdownOptions = Pick<\n ConnectedOverlayOptions,\n 'position' | 'containerClass' | 'enableFallback' | 'matchReferenceWidth' | 'minHeight' | 'offset' | 'showArrow' | 'outerPadding'\n>;\n\nexport const DefaultDropdownOptions: DropdownOptions = {\n position: 'bottom',\n matchReferenceWidth: false,\n enableFallback: true,\n minHeight: 0,\n offset: 6,\n outerPadding: 12,\n};\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { EventManager, GetProperties, hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { DropdownComponent } from './dropdown.component';\nimport { DefaultDropdownOptions, DropdownOptions } from './models';\n\nexport const DEFAULT_DROPDOWN_OPEN_TRIGGERS = ['click', 'keydown.enter'];\nexport const DEFAULT_DROPDOWN_CLOSE_TRIGGERS = ['keyup.esc'];\n\n/**\n * Represents a directive that enables dropdown functionality in Angular.\n * This directive handles the opening and closing of a dropdown menu, as well as\n * managing the associated overlay and event handling.\n */\n@CSSComponent('dropdown-host')\n@Directive({\n standalone: true,\n selector: '[odxDropdown]',\n exportAs: 'odxDropdown',\n providers: [EventManager],\n host: {\n '[attr.aria-haspopup]': 'true',\n '[attr.aria-expanded]': 'isOpen',\n },\n})\nexport class DropdownDirective implements AfterViewInit, OnChanges, OnDestroy {\n private readonly changeDetector = inject(ChangeDetectorRef);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly eventManager = inject(EventManager);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private overlayRef: ConnectedOverlayRef | null = null;\n\n public readonly element = injectElement();\n\n /**\n * Gets a value indicating whether the dropdown is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.overlayRef !== null;\n }\n\n /**\n * The content to be displayed in the dropdown.\n * It can be either a static content or a dynamically loaded content.\n *\n * @type {DynamicContent | null}\n */\n @Input('odxDropdown')\n public content?: DynamicContent | null;\n\n /**\n * Indicates whether the dropdown is disabled or not.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxDropdownDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Indicates whether the loader should be shown.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxDropdownShowLoader', transform: booleanAttribute })\n public showLoader = false;\n\n /**\n * Determines whether the dropdown should close when a click event occurs outside of it.\n *\n * @type {boolean}\n * @default true\n */\n @Input({ alias: 'odxDropdownClickOutsideActive', transform: booleanAttribute })\n public clickOutsideActive = true;\n\n /**\n * The options to be used when creating the dropdown overlay.\n *\n * @type {Partial<DropdownOptions> | null}\n */\n @Input('odxDropdownOptions')\n public options?: Partial<DropdownOptions> | null;\n\n /**\n * The reference element to which the dropdown is anchored.\n *\n * @type {HTMLElement | null}\n */\n @Input('odxDropdownReferenceElement')\n public referenceElement?: HTMLElement | null;\n\n /**\n * The trigger element that opens the dropdown.\n *\n * @type {HTMLElement | null}\n */\n @Input('odxDropdownTriggerElement')\n public triggerElement?: HTMLElement | null;\n\n /**\n * The host element to which the dropdown is appended.\n *\n * @type {HTMLElement | ViewContainerRef | null}\n */\n @Input('odxDropdownHost')\n public host?: HTMLElement | ViewContainerRef | null = this.viewContainer;\n\n /**\n * The event triggers that open the dropdown.\n *\n * @type {string[] | null}\n * @default DEFAULT_DROPDOWN_OPEN_TRIGGERS\n */\n @Input('odxDropdownOpenTrigger')\n public openTrigger?: string[] | null = DEFAULT_DROPDOWN_OPEN_TRIGGERS;\n\n /**\n * The event triggers that close the dropdown.\n *\n * @type {string[] | null}\n * @default DEFAULT_DROPDOWN_CLOSE_TRIGGERS\n */\n @Input('odxDropdownCloseTrigger')\n public closeTrigger?: string[] | null = DEFAULT_DROPDOWN_CLOSE_TRIGGERS;\n\n /**\n * Event emitter that emits before the dropdown is opened.\n *\n * @emits {void}\n */\n @Output('odxDropdownBeforeOpen')\n public beforeOpen = new EventEmitter<void>();\n\n /**\n * Event emitter that emits after the dropdown is opened.\n *\n * @emits {void}\n */\n @Output('odxDropdownAfterOpen')\n public afterOpen = new EventEmitter<void>();\n\n /**\n * Event emitter that emits before the dropdown is closed.\n *\n * @emits {void}\n */\n @Output('odxDropdownBeforeClose')\n public beforeClose = new EventEmitter<void>();\n\n /**\n * Event emitter that emits after the dropdown is closed.\n *\n * @emits {void}\n */\n @Output('odxDropdownAfterClose')\n public afterClose = new EventEmitter<void>();\n\n public ngAfterViewInit(): void {\n this.eventManager.register(this.openTrigger ?? [], (event) => this.toggle(event), this.triggerElement ?? this.referenceElement);\n this.eventManager.register(this.closeTrigger ?? [], () => this.close(), 'document');\n }\n\n public ngOnDestroy(): void {\n this.close();\n }\n\n public ngOnChanges(changes: NgChanges<DropdownDirective>) {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.close();\n }\n if (hasChanged(changes, ['options', 'content', 'showLoader', 'clickOutsideActive'])) {\n this.overlayRef?.update(this.createOverlayOptions());\n }\n }\n\n /**\n * Toggles the state of the dropdown.\n * If the dropdown is open, it will be closed. If it is closed, it will be opened.\n *\n * @param {Event | undefined} event - The optional event that triggered the toggle.\n */\n public toggle(event?: Event): void {\n if (this.isOpen) {\n this.close(event);\n } else {\n this.open(event);\n }\n }\n\n /**\n * Opens the dropdown.\n *\n * @param {Event | undefined} event - The optional event that triggered the open.\n */\n public open(event?: Event) {\n event?.preventDefault();\n if (this.isOpen || !this.content || this.disabled) return;\n this.overlayRef = this.connectedOverlayService.createOverlay(this.referenceElement ?? this.element.nativeElement, this.createOverlayOptions(), {\n host: this.referenceElement?.parentElement ?? this.host,\n injector: this.injector,\n });\n this.changeDetector.markForCheck();\n }\n\n /**\n * Closes the dropdown.\n *\n * @param {Event | undefined} event - The optional event that triggered the close.\n */\n public close(event?: Event) {\n event?.preventDefault();\n this.overlayRef?.close();\n this.overlayRef = null;\n this.changeDetector.markForCheck();\n }\n\n private createOverlayOptions(): Partial<ConnectedOverlayOptions> {\n const containerClass = ['odx-dropdown-overlay', this.options?.containerClass].filter(Boolean).join(' ');\n const context = {\n content: this.content,\n showLoader: this.showLoader,\n clickOutsideActive: this.clickOutsideActive,\n } as Partial<GetProperties<DropdownComponent>>;\n return {\n ...DefaultDropdownOptions,\n ...this.options,\n fallbackAxisSideDirection: 'end',\n containerClass,\n content: DropdownComponent,\n context,\n hooks: {\n beforeOpen: () => this.beforeOpen.emit(),\n afterOpen: () => this.afterOpen.emit(),\n beforeClose: () => this.beforeClose.emit(),\n afterClose: () => this.afterClose.emit(),\n },\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, HostListener, inject, Injector, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { DropdownDirective } from './dropdown.directive';\nimport { CloseDropdownEvent } from './models';\n\n/**\n * Represents a dropdown component.\n */\n@CSSComponent('dropdown')\n@Component({\n standalone: true,\n selector: 'odx-dropdown',\n imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule],\n templateUrl: './dropdown.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {\n protected readonly host = inject(DropdownDirective);\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The content to be displayed in the dropdown.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: DynamicContent | null;\n\n /**\n * Indicates whether to show a loader while loading the dropdown content.\n *\n * @type {boolean | undefined}\n */\n @Input()\n public showLoader?: boolean;\n\n /**\n * Indicates whether clicking outside the dropdown should close it.\n *\n * @type {boolean | undefined}\n */\n @Input()\n public clickOutsideActive?: boolean;\n\n @HostListener(CloseDropdownEvent.TYPE)\n protected onDropdownClose(): void {\n this.host.close();\n }\n}\n","<div\n class=\"odx-dropdown__inner\"\n [odxLoadingSpinner]=\"showLoader\"\n [odxClickOutsideActive]=\"clickOutsideActive\"\n (odxClickOutside)=\"host.close()\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DropdownDirective } from './dropdown.directive';\n\nconst modules = [DropdownDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class DropdownModule {}\n","import { CloseDropdownEvent } from '../models';\n\n/**\n * @internal\n * Dispatches a CloseDropdownEvent for target to close the current dropdown.\n *\n * @param {Element} target - The target element to close the dropdown for.\n */\nexport function closeCurrentDropdown(target: Element): void {\n target.dispatchEvent(new CloseDropdownEvent());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-dropdown.mjs","sources":["../../../../libs/angular/components/dropdown/src/lib/models/close-dropdown-event.ts","../../../../libs/angular/components/dropdown/src/lib/models/dropdown-options.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.directive.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.component.ts","../../../../libs/angular/components/dropdown/src/lib/dropdown.component.html","../../../../libs/angular/components/dropdown/src/lib/dropdown.module.ts","../../../../libs/angular/components/dropdown/src/lib/helpers/close-current-dropdown.ts","../../../../libs/angular/components/dropdown/src/odx-angular-components-dropdown.ts"],"sourcesContent":["export class CloseDropdownEvent extends Event {\n public static readonly TYPE = 'odxDropdownClose';\n\n constructor() {\n super(CloseDropdownEvent.TYPE, { bubbles: true });\n }\n}\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\n\nexport type DropdownOptions = Pick<\n ConnectedOverlayOptions,\n 'position' | 'containerClass' | 'enableFallback' | 'matchReferenceWidth' | 'minHeight' | 'offset' | 'showArrow' | 'outerPadding'\n>;\n\nexport const DefaultDropdownOptions: DropdownOptions = {\n position: 'bottom',\n matchReferenceWidth: false,\n enableFallback: true,\n minHeight: 0,\n offset: 6,\n outerPadding: 12,\n};\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { EventManager, GetProperties, hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { DropdownComponent } from './dropdown.component';\nimport { DefaultDropdownOptions, DropdownOptions } from './models';\n\nexport const DEFAULT_DROPDOWN_OPEN_TRIGGERS = ['click', 'keydown.enter'];\nexport const DEFAULT_DROPDOWN_CLOSE_TRIGGERS = ['keyup.esc'];\n\n/**\n * Represents a directive that enables dropdown functionality in Angular.\n * This directive handles the opening and closing of a dropdown menu, as well as\n * managing the associated overlay and event handling.\n */\n@CSSComponent('dropdown-host')\n@Directive({\n standalone: true,\n selector: '[odxDropdown]',\n exportAs: 'odxDropdown',\n providers: [EventManager],\n host: {\n '[attr.aria-haspopup]': 'true',\n '[attr.aria-expanded]': 'isOpen',\n },\n})\nexport class DropdownDirective implements AfterViewInit, OnChanges, OnDestroy {\n private readonly changeDetector = inject(ChangeDetectorRef);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly eventManager = inject(EventManager);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private overlayRef: ConnectedOverlayRef | null = null;\n\n public readonly element = injectElement();\n\n /**\n * Gets a value indicating whether the dropdown is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.overlayRef !== null;\n }\n\n /**\n * The content to be displayed in the dropdown.\n * It can be either a static content or a dynamically loaded content.\n *\n * @type {DynamicContent | null}\n */\n @Input('odxDropdown')\n public content?: DynamicContent | null;\n\n /**\n * Indicates whether the dropdown is disabled or not.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxDropdownDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Indicates whether the loader should be shown.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxDropdownShowLoader', transform: booleanAttribute })\n public showLoader = false;\n\n /**\n * Determines whether the dropdown should close when a click event occurs outside of it.\n *\n * @type {boolean}\n * @default true\n */\n @Input({ alias: 'odxDropdownClickOutsideActive', transform: booleanAttribute })\n public clickOutsideActive = true;\n\n /**\n * The options to be used when creating the dropdown overlay.\n *\n * @type {Partial<DropdownOptions> | null}\n */\n @Input('odxDropdownOptions')\n public options?: Partial<DropdownOptions> | null;\n\n /**\n * The reference element to which the dropdown is anchored.\n *\n * @type {HTMLElement | null}\n */\n @Input('odxDropdownReferenceElement')\n public referenceElement?: HTMLElement | null;\n\n /**\n * The trigger element that opens the dropdown.\n *\n * @type {HTMLElement | null}\n */\n @Input('odxDropdownTriggerElement')\n public triggerElement?: HTMLElement | null;\n\n /**\n * The host element to which the dropdown is appended.\n *\n * @type {HTMLElement | ViewContainerRef | null}\n */\n @Input('odxDropdownHost')\n public host?: HTMLElement | ViewContainerRef | null = this.viewContainer;\n\n /**\n * The event triggers that open the dropdown.\n *\n * @type {string[] | null}\n * @default DEFAULT_DROPDOWN_OPEN_TRIGGERS\n */\n @Input('odxDropdownOpenTrigger')\n public openTrigger?: string[] | null = DEFAULT_DROPDOWN_OPEN_TRIGGERS;\n\n /**\n * The event triggers that close the dropdown.\n *\n * @type {string[] | null}\n * @default DEFAULT_DROPDOWN_CLOSE_TRIGGERS\n */\n @Input('odxDropdownCloseTrigger')\n public closeTrigger?: string[] | null = DEFAULT_DROPDOWN_CLOSE_TRIGGERS;\n\n /**\n * Event emitter that emits before the dropdown is opened.\n *\n * @emits {void}\n */\n @Output('odxDropdownBeforeOpen')\n public beforeOpen = new EventEmitter<void>();\n\n /**\n * Event emitter that emits after the dropdown is opened.\n *\n * @emits {void}\n */\n @Output('odxDropdownAfterOpen')\n public afterOpen = new EventEmitter<void>();\n\n /**\n * Event emitter that emits before the dropdown is closed.\n *\n * @emits {void}\n */\n @Output('odxDropdownBeforeClose')\n public beforeClose = new EventEmitter<void>();\n\n /**\n * Event emitter that emits after the dropdown is closed.\n *\n * @emits {void}\n */\n @Output('odxDropdownAfterClose')\n public afterClose = new EventEmitter<void>();\n\n public ngAfterViewInit(): void {\n this.eventManager.register(this.openTrigger ?? [], (event) => this.toggle(event), this.triggerElement ?? this.referenceElement);\n this.eventManager.register(this.closeTrigger ?? [], () => this.close(), 'document');\n }\n\n public ngOnDestroy(): void {\n this.close();\n }\n\n public ngOnChanges(changes: NgChanges<DropdownDirective>) {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.close();\n }\n if (hasChanged(changes, ['options', 'content', 'showLoader', 'clickOutsideActive'])) {\n this.overlayRef?.update(this.createOverlayOptions());\n }\n }\n\n /**\n * Toggles the state of the dropdown.\n * If the dropdown is open, it will be closed. If it is closed, it will be opened.\n *\n * @param {Event | undefined} event - The optional event that triggered the toggle.\n */\n public toggle(event?: Event): void {\n if (this.isOpen) {\n this.close(event);\n } else {\n this.open(event);\n }\n }\n\n /**\n * Opens the dropdown.\n *\n * @param {Event | undefined} event - The optional event that triggered the open.\n */\n public open(event?: Event) {\n event?.preventDefault();\n if (this.isOpen || !this.content || this.disabled) return;\n this.overlayRef = this.connectedOverlayService.createOverlay(this.referenceElement ?? this.element.nativeElement, this.createOverlayOptions(), {\n host: this.referenceElement?.parentElement ?? this.host,\n injector: this.injector,\n });\n this.changeDetector.markForCheck();\n }\n\n /**\n * Closes the dropdown.\n *\n * @param {Event | undefined} event - The optional event that triggered the close.\n */\n public close(event?: Event) {\n event?.preventDefault();\n this.overlayRef?.close();\n this.overlayRef = null;\n this.changeDetector.markForCheck();\n }\n\n private createOverlayOptions(): Partial<ConnectedOverlayOptions> {\n const containerClass = ['odx-dropdown-overlay', this.options?.containerClass].filter(Boolean).join(' ');\n const context = {\n content: this.content,\n showLoader: this.showLoader,\n clickOutsideActive: this.clickOutsideActive,\n } as Partial<GetProperties<DropdownComponent>>;\n return {\n ...DefaultDropdownOptions,\n ...this.options,\n fallbackAxisSideDirection: 'end',\n containerClass,\n content: DropdownComponent,\n context,\n hooks: {\n beforeOpen: () => this.beforeOpen.emit(),\n afterOpen: () => this.afterOpen.emit(),\n beforeClose: () => this.beforeClose.emit(),\n afterClose: () => this.afterClose.emit(),\n },\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, HostListener, inject, Injector, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { DropdownDirective } from './dropdown.directive';\nimport { CloseDropdownEvent } from './models';\n\n/**\n * Represents a dropdown component.\n */\n@CSSComponent('dropdown')\n@Component({\n standalone: true,\n selector: 'odx-dropdown',\n imports: [CoreModule, DynamicViewDirective, LoadingSpinnerModule, A11yModule],\n templateUrl: './dropdown.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {\n protected readonly host = inject(DropdownDirective);\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The content to be displayed in the dropdown.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: DynamicContent | null;\n\n /**\n * Indicates whether to show a loader while loading the dropdown content.\n *\n * @type {boolean | undefined}\n */\n @Input()\n public showLoader?: boolean;\n\n /**\n * Indicates whether clicking outside the dropdown should close it.\n *\n * @type {boolean | undefined}\n */\n @Input()\n public clickOutsideActive?: boolean;\n\n @HostListener(CloseDropdownEvent.TYPE)\n protected onDropdownClose(): void {\n this.host.close();\n }\n}\n","<div class=\"odx-dropdown__inner\" [odxLoadingSpinner]=\"showLoader\" [odxClickOutsideActive]=\"clickOutsideActive\" (odxClickOutside)=\"host.close()\" cdkTrapFocus>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DropdownDirective } from './dropdown.directive';\n\nconst modules = [DropdownDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class DropdownModule {}\n","import { CloseDropdownEvent } from '../models';\n\n/**\n * @internal\n * Dispatches a CloseDropdownEvent for target to close the current dropdown.\n *\n * @param {Element} target - The target element to close the dropdown for.\n */\nexport function closeCurrentDropdown(target: Element): void {\n target.dispatchEvent(new CloseDropdownEvent());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { createConfigTokens, injectElement, EventManager, untilDestroyed, hasCha
2
2
  import { __decorate, __metadata } from 'tslib';
3
3
  import { DOCUMENT } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, Injector, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, booleanAttribute, Directive } from '@angular/core';
5
+ import { inject, Injector, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgZone, booleanAttribute, Directive } from '@angular/core';
6
6
  import { ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';
7
7
  import { CSSModifier, CSSComponent, deepmerge } from '@odx/angular/internal';
8
8
  import { delayUntil } from '@odx/angular/rxjs';
@@ -154,6 +154,7 @@ let TooltipDirective = class TooltipDirective {
154
154
  this.hideTrigger$$ = new Subject();
155
155
  this.document = inject(DOCUMENT);
156
156
  this.injector = inject(Injector);
157
+ this.ngZone = inject(NgZone);
157
158
  this.connectedOverlayRef = null;
158
159
  this.tooltipOptions = injectTooltipConfig();
159
160
  this.ignoreBrowserTabSwitchFocus = false;
@@ -233,10 +234,7 @@ let TooltipDirective = class TooltipDirective {
233
234
  showArrow: true,
234
235
  enableFallback: true,
235
236
  nonInteractive: true,
236
- }, {
237
- host: this.element.nativeElement.parentElement,
238
- injector: this.injector,
239
- });
237
+ }, { host: this.element.nativeElement.parentElement, injector: this.injector });
240
238
  }
241
239
  /**
242
240
  * Hides the tooltip, detaching the overlay from the host element.
@@ -251,20 +249,22 @@ let TooltipDirective = class TooltipDirective {
251
249
  registerEvents() {
252
250
  const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);
253
251
  this.eventManager.destroyListeners();
254
- this.eventManager.register([openEvent, 'focusin'], (event) => {
255
- if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {
256
- this.ignoreBrowserTabSwitchFocus = false;
257
- return;
258
- }
259
- this.showTrigger$$.next();
252
+ this.ngZone.runOutsideAngular(() => {
253
+ this.eventManager.register([openEvent, 'focusin'], (event) => {
254
+ if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {
255
+ this.ignoreBrowserTabSwitchFocus = false;
256
+ return;
257
+ }
258
+ this.showTrigger$$.next();
259
+ });
260
+ this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());
261
+ this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');
262
+ this.eventManager.register(['visibilitychange'], () => {
263
+ if (this.document.visibilityState === 'hidden') {
264
+ this.ignoreBrowserTabSwitchFocus = true;
265
+ }
266
+ }, 'document');
260
267
  });
261
- this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());
262
- this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');
263
- this.eventManager.register(['visibilitychange'], () => {
264
- if (this.document.visibilityState === 'hidden') {
265
- this.ignoreBrowserTabSwitchFocus = true;
266
- }
267
- }, 'document');
268
268
  }
269
269
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
270
270
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: TooltipDirective, isStandalone: true, selector: "[odxTooltip]", inputs: { content: ["odxTooltip", "content"], disabled: ["odxTooltipDisabled", "disabled", booleanAttribute], options: ["odxTooltipOptions", "options"], size: ["odxTooltipSize", "size"], visible: ["odxTooltipVisible", "visible", booleanAttribute] }, host: { properties: { "attr.aria-describedby": "tooltipId" } }, providers: [EventManager], exportAs: ["odxTooltip"], usesOnChanges: true, ngImport: i0 }); }
@@ -275,15 +275,7 @@ TooltipDirective = __decorate([
275
275
  ], TooltipDirective);
276
276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, decorators: [{
277
277
  type: Directive,
278
- args: [{
279
- standalone: true,
280
- selector: '[odxTooltip]',
281
- exportAs: 'odxTooltip',
282
- providers: [EventManager],
283
- host: {
284
- '[attr.aria-describedby]': 'tooltipId',
285
- },
286
- }]
278
+ args: [{ standalone: true, selector: '[odxTooltip]', exportAs: 'odxTooltip', providers: [EventManager], host: { '[attr.aria-describedby]': 'tooltipId' } }]
287
279
  }], ctorParameters: () => [], propDecorators: { content: [{
288
280
  type: Input,
289
281
  args: ['odxTooltip']
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n private readonly config = injectTooltipConfig();\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO from the configuration\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = this.config.size;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreBrowserTabSwitchFocus = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide(true);\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size ?? this.tooltipOptions.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n nonInteractive: true,\n },\n {\n host: this.element.nativeElement.parentElement,\n injector: this.injector,\n },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(force = false): void {\n if ((!this.isOpen || (this.visible && !this.disabled)) && !force) return;\n this.connectedOverlayRef?.close(force);\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {\n this.ignoreBrowserTabSwitchFocus = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['visibilitychange'],\n () => {\n if (this.document.visibilityState === 'hidden') {\n this.ignoreBrowserTabSwitchFocus = true;\n }\n },\n 'document',\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n private readonly config = injectTooltipConfig();\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO from the configuration\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = this.config.size;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, NgZone, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({ standalone: true, selector: '[odxTooltip]', exportAs: 'odxTooltip', providers: [EventManager], host: { '[attr.aria-describedby]': 'tooltipId' } })\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private readonly ngZone = inject(NgZone);\n\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreBrowserTabSwitchFocus = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide(true);\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size ?? this.tooltipOptions.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n nonInteractive: true,\n },\n { host: this.element.nativeElement.parentElement, injector: this.injector },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(force = false): void {\n if ((!this.isOpen || (this.visible && !this.disabled)) && !force) return;\n this.connectedOverlayRef?.close(force);\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.ngZone.runOutsideAngular(() => {\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {\n this.ignoreBrowserTabSwitchFocus = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['visibilitychange'],\n () => {\n if (this.document.visibilityState === 'hidden') {\n this.ignoreBrowserTabSwitchFocus = true;\n }\n },\n 'document',\n );\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "12.11.0",
3
+ "version": "12.12.1",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -196,18 +196,18 @@
196
196
  "esm": "./esm2022/components/bar/odx-angular-components-bar.mjs",
197
197
  "default": "./fesm2022/odx-angular-components-bar.mjs"
198
198
  },
199
- "./components/button": {
200
- "types": "./components/button/index.d.ts",
201
- "esm2022": "./esm2022/components/button/odx-angular-components-button.mjs",
202
- "esm": "./esm2022/components/button/odx-angular-components-button.mjs",
203
- "default": "./fesm2022/odx-angular-components-button.mjs"
204
- },
205
199
  "./components/breadcrumbs": {
206
200
  "types": "./components/breadcrumbs/index.d.ts",
207
201
  "esm2022": "./esm2022/components/breadcrumbs/odx-angular-components-breadcrumbs.mjs",
208
202
  "esm": "./esm2022/components/breadcrumbs/odx-angular-components-breadcrumbs.mjs",
209
203
  "default": "./fesm2022/odx-angular-components-breadcrumbs.mjs"
210
204
  },
205
+ "./components/button": {
206
+ "types": "./components/button/index.d.ts",
207
+ "esm2022": "./esm2022/components/button/odx-angular-components-button.mjs",
208
+ "esm": "./esm2022/components/button/odx-angular-components-button.mjs",
209
+ "default": "./fesm2022/odx-angular-components-button.mjs"
210
+ },
211
211
  "./components/button-group": {
212
212
  "types": "./components/button-group/index.d.ts",
213
213
  "esm2022": "./esm2022/components/button-group/odx-angular-components-button-group.mjs",