asksuite-citrus 1.5.7 → 1.5.9

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.
@@ -2,6 +2,7 @@ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/c
2
2
  import { DropdownContainerComponent } from "../components/dropdown-container/dropdown-container.component";
3
3
  import { ComponentPortal } from "@angular/cdk/portal";
4
4
  import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
5
+ import { fromEvent } from "rxjs";
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/cdk/overlay";
7
8
  export class AskDropdownDirective {
@@ -12,7 +13,10 @@ export class AskDropdownDirective {
12
13
  this._destroyRef = _destroyRef;
13
14
  this.dropdownName = '';
14
15
  this.dropdownDisabled = false;
16
+ this.dropdownOpenOnHover = false;
17
+ this.mouseThreshold = 300;
15
18
  this.askDropdownOnClose = new EventEmitter();
19
+ this.mouseLocation = { mouseX: 0, mouseY: 0 };
16
20
  this._isRendered = false;
17
21
  this.overlayConfig = {};
18
22
  this.AVAILABLE_POSITIONS = {
@@ -31,7 +35,7 @@ export class AskDropdownDirective {
31
35
  const positionStrategy = this.overlayPositionBuilder
32
36
  .flexibleConnectedTo(this.elementRef)
33
37
  .withPositions(this.getOverlayPosition());
34
- const scrollStrategy = this.overlay.scrollStrategies.block();
38
+ const scrollStrategy = this.overlay.scrollStrategies.reposition();
35
39
  this.overlayConfig = {
36
40
  hasBackdrop: true,
37
41
  backdropClass: 'cdk-overlay-transparent-backdrop',
@@ -70,6 +74,19 @@ export class AskDropdownDirective {
70
74
  event.stopPropagation();
71
75
  });
72
76
  }
77
+ showOnHoverIn() {
78
+ if (this.dropdownOpenOnHover) {
79
+ this.show();
80
+ this.mouseLocation = this.onMouseMove(event);
81
+ this.mouseDistanceSubscription = fromEvent(document.body, 'mousemove').subscribe((e) => {
82
+ const mouseYCloseOn = Math.abs(this.mouseLocation.mouseY - e.pageY) <= this.mouseThreshold;
83
+ const mouseXCloseOn = Math.abs(this.mouseLocation.mouseX - e.pageX) <= this.mouseThreshold;
84
+ if (!(mouseYCloseOn && mouseXCloseOn)) {
85
+ this.close();
86
+ }
87
+ });
88
+ }
89
+ }
73
90
  show() {
74
91
  if (!this.askDropdown || this.isRendered || this.dropdownDisabled) {
75
92
  this.close();
@@ -77,19 +94,40 @@ export class AskDropdownDirective {
77
94
  }
78
95
  this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));
79
96
  this.containerRef.instance.content = this.askDropdown;
97
+ if (this.dropdownOpenOnHover) {
98
+ this.mouseOutSubscription = fromEvent(this.containerRef.location.nativeElement, 'mouseout')
99
+ .subscribe((event) => {
100
+ if (event.relatedTarget?.classList.contains('cdk-overlay-backdrop')) {
101
+ this.close();
102
+ }
103
+ });
104
+ }
80
105
  this._isRendered = true;
81
106
  }
107
+ onMouseMove(event) {
108
+ const location = {
109
+ mouseX: event.clientX,
110
+ mouseY: event.pageY
111
+ };
112
+ return location;
113
+ }
82
114
  close() {
83
115
  this.containerRef = undefined;
84
116
  this.overlayRef.detach();
85
117
  this._isRendered = false;
86
118
  this.askDropdownOnClose.emit();
119
+ if (this.mouseOutSubscription) {
120
+ this.mouseOutSubscription.unsubscribe();
121
+ }
122
+ if (this.mouseDistanceSubscription) {
123
+ this.mouseDistanceSubscription.unsubscribe();
124
+ }
87
125
  }
88
126
  get isRendered() {
89
127
  return this._isRendered;
90
128
  }
91
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AskDropdownDirective, deps: [{ token: i1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
92
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AskDropdownDirective, selector: "[askDropdown]", inputs: { askDropdown: "askDropdown", dropdownName: "dropdownName", positions: "positions", dropdownDisabled: "dropdownDisabled" }, outputs: { askDropdownOnClose: "askDropdownOnClose" }, host: { listeners: { "click": "show()" } }, ngImport: i0 }); }
130
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AskDropdownDirective, selector: "[askDropdown]", inputs: { askDropdown: "askDropdown", dropdownName: "dropdownName", positions: "positions", dropdownDisabled: "dropdownDisabled", dropdownOpenOnHover: "dropdownOpenOnHover", mouseThreshold: "mouseThreshold" }, outputs: { askDropdownOnClose: "askDropdownOnClose" }, host: { listeners: { "mouseenter": "showOnHoverIn()", "click": "show()" } }, ngImport: i0 }); }
93
131
  }
94
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AskDropdownDirective, decorators: [{
95
133
  type: Directive,
@@ -104,10 +142,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
104
142
  type: Input
105
143
  }], dropdownDisabled: [{
106
144
  type: Input
145
+ }], dropdownOpenOnHover: [{
146
+ type: Input
147
+ }], mouseThreshold: [{
148
+ type: Input
107
149
  }], askDropdownOnClose: [{
108
150
  type: Output
151
+ }], showOnHoverIn: [{
152
+ type: HostListener,
153
+ args: ['mouseenter']
109
154
  }], show: [{
110
155
  type: HostListener,
111
156
  args: ['click']
112
157
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNrLWRyb3Bkb3duLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2RpcmVjdGl2ZXMvYXNrLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixZQUNVLHNCQUE4QyxFQUM5QyxVQUFzQixFQUN0QixPQUFnQixFQUNoQixXQUF1QjtRQUh2QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXRCeEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBSXpCLHdCQUFtQixHQUFvSTtZQUN0SyxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUN2SCxRQUFRLEVBQUUsRUFB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QUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRztZQUNsRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7OEdBNUdVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtxTEFHVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQWlGQSxJQUFJO3NCQURWLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thc2tEcm9wZG93bl0nXG59KVxuZXhwb3J0IGNsYXNzIEFza0Ryb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBhc2tEcm9wZG93bj86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGRyb3Bkb3duTmFtZSA9ICcnO1xuICBASW5wdXQoKSBwb3NpdGlvbnM/OiBBcnJheTxDb25uZWN0ZWRQb3NpdGlvbj4gfCAnVE9QX1JJR0hUJyB8ICdUT1BfTEVGVCcgfCAnQk9UVE9NX1JJR0hUJyB8ICdCT1RUT01fTEVGVCc7XG4gIEBJbnB1dCgpIGRyb3Bkb3duRGlzYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgYXNrRHJvcGRvd25PbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgX2lzUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnID0ge307XG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgY29udGFpbmVyUmVmITogQ29tcG9uZW50UmVmPERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IEFWQUlMQUJMRV9QT1NJVElPTlM6IHsgVE9QX1JJR0hUOiBDb25uZWN0ZWRQb3NpdGlvbjsgVE9QX0xFRlQ6IENvbm5lY3RlZFBvc2l0aW9uOyBCT1RUT01fUklHSFQ6IENvbm5lY3RlZFBvc2l0aW9uOyBCT1RUT01fTEVGVDogQ29ubmVjdGVkUG9zaXRpb247IH0gPSB7XG4gICAgVE9QX1JJR0hUOiB7IHBhbmVsQ2xhc3M6ICdhc2stZHJvcGRvd24tdG9wLXJpZ2h0Jywgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnIH0sXG4gICAgVE9QX0xFRlQ6IHsgcGFuZWxDbGFzczogJ2Fzay1kcm9wZG93bi10b3AtbGVmdCcsIG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIEJPVFRPTV9SSUdIVDogeyBwYW5lbENsYXNzOiAnYXNrLWRyb3Bkb3duLWJvdHRvbS1yaWdodCcsIG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICBCT1RUT01fTEVGVDogeyBwYW5lbENsYXNzOiAnYXNrLWRyb3Bkb3duLWJvdHRvbS1sZWZ0Jywgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRPdmVybGF5Q29uZmlnKCk7XG4gICAgdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy5saXN0ZW5PdXRzaWRlQ2xpY2tzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldE92ZXJsYXlDb25maWcoKSB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVBvc2l0aW9uQnVpbGRlclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxuICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRPdmVybGF5UG9zaXRpb24oKSk7XG5cbiAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG5cbiAgICB0aGlzLm92ZXJsYXlDb25maWcgPSB7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3lcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCkge1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUodGhpcy5vdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheVBvc2l0aW9uKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgIGlmICh0aGlzLnBvc2l0aW9ucykge1xuICAgICAgbGV0IGNob3NlblBvc2l0aW9uczogQXJyYXk8Q29ubmVjdGVkUG9zaXRpb24+ID0gW107XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3NpdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNob3NlblBvc2l0aW9ucy5wdXNoKHRoaXMuQVZBSUxBQkxFX1BPU0lUSU9OU1t0aGlzLnBvc2l0aW9uc10pO1xuICAgICAgfVxuXG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucG9zaXRpb25zKSkge1xuICAgICAgICBjaG9zZW5Qb3NpdGlvbnMgPSBbLi4udGhpcy5wb3NpdGlvbnNdO1xuICAgICAgfVxuXG4gICAgICBjaG9zZW5Qb3NpdGlvbnMgPSBjaG9zZW5Qb3NpdGlvbnMuZmlsdGVyKHAgPT4gISFwKTtcblxuICAgICAgaWYgKGNob3NlblBvc2l0aW9ucy5sZW5ndGgpIHJldHVybiBjaG9zZW5Qb3NpdGlvbnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuQVZBSUxBQkxFX1BPU0lUSU9OUy5CT1RUT01fUklHSFQsXG4gICAgICB0aGlzLkFWQUlMQUJMRV9QT1NJVElPTlMuQk9UVE9NX0xFRlQsXG4gICAgICB0aGlzLkFWQUlMQUJMRV9QT1NJVElPTlMuVE9QX1JJR0hULFxuICAgICAgdGhpcy5BVkFJTEFCTEVfUE9TSVRJT05TLlRPUF9MRUZULFxuICAgIF1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuT3V0c2lkZUNsaWNrcygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9KVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwdWJsaWMgc2hvdygpIHtcbiAgICBpZiAoIXRoaXMuYXNrRHJvcGRvd24gfHwgdGhpcy5pc1JlbmRlcmVkIHx8IHRoaXMuZHJvcGRvd25EaXNhYmxlZCApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRhaW5lclJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCkpO1xuICAgIHRoaXMuY29udGFpbmVyUmVmLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmFza0Ryb3Bkb3duO1xuICAgIHRoaXMuX2lzUmVuZGVyZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMuY29udGFpbmVyUmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9pc1JlbmRlcmVkID0gZmFsc2U7XG4gICAgdGhpcy5hc2tEcm9wZG93bk9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1JlbmRlcmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1JlbmRlcmVkO1xuICB9XG5cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNrLWRyb3Bkb3duLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2RpcmVjdGl2ZXMvYXNrLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBMkIsTUFBTSxNQUFNLENBQUM7OztBQUt6RCxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixZQUNVLHNCQUE4QyxFQUM5QyxVQUFzQixFQUN0QixPQUFnQixFQUNoQixXQUF1QjtRQUh2QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXpCeEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLGtCQUFhLEdBQXFDLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFDLENBQUM7UUFDekUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FBa0IsRUFBRSxD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QUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOzhHQXRKVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7cUxBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFtRkEsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxZQUFZO2dCQWtCbkIsSUFBSTtzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHJvcGRvd25Db250YWluZXJDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0Nvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Fza0Ryb3Bkb3duXSdcbn0pXG5leHBvcnQgY2xhc3MgQXNrRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGFza0Ryb3Bkb3duPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZHJvcGRvd25OYW1lID0gJyc7XG4gIEBJbnB1dCgpIHBvc2l0aW9ucz86IEFycmF5PENvbm5lY3RlZFBvc2l0aW9uPiB8ICdUT1BfUklHSFQnIHwgJ1RPUF9MRUZUJyB8ICdCT1RUT01fUklHSFQnIHwgJ0JPVFRPTV9MRUZUJztcbiAgQElucHV0KCkgZHJvcGRvd25EaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkcm9wZG93bk9wZW5PbkhvdmVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vdXNlVGhyZXNob2xkID0gMzAwO1xuICBAT3V0cHV0KCkgYXNrRHJvcGRvd25PbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIG1vdXNlTG9jYXRpb246IHttb3VzZVg6IG51bWJlcjsgbW91c2VZOiBudW1iZXJ9ID0ge21vdXNlWDogMCwgbW91c2VZOiAwfTtcbiAgcHJpdmF0ZSBfaXNSZW5kZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIG92ZXJsYXlDb25maWc6IE92ZXJsYXlDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjb250YWluZXJSZWYhOiBDb21wb25lbnRSZWY8RHJvcGRvd25Db250YWluZXJDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIG1vdXNlT3V0U3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG1vdXNlRGlzdGFuY2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBBVkFJTEFCTEVfUE9TSVRJT05TOiB7IFRPUF9SSUdIVDogQ29ubmVjdGVkUG9zaXRpb247IFRPUF9MRUZUOiBDb25uZWN0ZWRQb3NpdGlvbjsgQk9UVE9NX1JJR0hUOiBDb25uZWN0ZWRQb3NpdGlvbjsgQk9UVE9NX0xFRlQ6IENvbm5lY3RlZFBvc2l0aW9uOyB9ID0ge1xuICAgIFRPUF9SSUdIVDogeyBwYW5lbENsYXNzOiAnYXNrLWRyb3Bkb3duLXRvcC1yaWdodCcsIG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIFRPUF9MRUZUOiB7IHBhbmVsQ2xhc3M6ICdhc2stZHJvcGRvd24tdG9wLWxlZnQnLCBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICBCT1RUT01fUklHSFQ6IHsgcGFuZWxDbGFzczogJ2Fzay1kcm9wZG93bi1ib3R0b20tcmlnaHQnLCBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnIH0sXG4gICAgQk9UVE9NX0xFRlQ6IHsgcGFuZWxDbGFzczogJ2Fzay1kcm9wZG93bi1ib3R0b20tbGVmdCcsIG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnIH0sXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0T3ZlcmxheUNvbmZpZygpO1xuICAgIHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgIHRoaXMubGlzdGVuT3V0c2lkZUNsaWNrcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRPdmVybGF5Q29uZmlnKCkge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcbiAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuZ2V0T3ZlcmxheVBvc2l0aW9uKCkpO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLm92ZXJsYXlDb25maWcgPSB7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3lcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCkge1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUodGhpcy5vdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheVBvc2l0aW9uKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgIGlmICh0aGlzLnBvc2l0aW9ucykge1xuICAgICAgbGV0IGNob3NlblBvc2l0aW9uczogQXJyYXk8Q29ubmVjdGVkUG9zaXRpb24+ID0gW107XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3NpdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNob3NlblBvc2l0aW9ucy5wdXNoKHRoaXMuQVZBSUxBQkxFX1BPU0lUSU9OU1t0aGlzLnBvc2l0aW9uc10pO1xuICAgICAgfVxuXG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucG9zaXRpb25zKSkge1xuICAgICAgICBjaG9zZW5Qb3NpdGlvbnMgPSBbLi4udGhpcy5wb3NpdGlvbnNdO1xuICAgICAgfVxuXG4gICAgICBjaG9zZW5Qb3NpdGlvbnMgPSBjaG9zZW5Qb3NpdGlvbnMuZmlsdGVyKHAgPT4gISFwKTtcblxuICAgICAgaWYgKGNob3NlblBvc2l0aW9ucy5sZW5ndGgpIHJldHVybiBjaG9zZW5Qb3NpdGlvbnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuQVZBSUxBQkxFX1BPU0lUSU9OUy5CT1RUT01fUklHSFQsXG4gICAgICB0aGlzLkFWQUlMQUJMRV9QT1NJVElPTlMuQk9UVE9NX0xFRlQsXG4gICAgICB0aGlzLkFWQUlMQUJMRV9QT1NJVElPTlMuVE9QX1JJR0hULFxuICAgICAgdGhpcy5BVkFJTEFCTEVfUE9TSVRJT05TLlRPUF9MRUZULFxuICAgIF1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuT3V0c2lkZUNsaWNrcygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9KVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHB1YmxpYyBzaG93T25Ib3ZlckluKCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duT3Blbk9uSG92ZXIpIHtcblxuICAgICAgdGhpcy5zaG93KCk7XG4gICAgICB0aGlzLm1vdXNlTG9jYXRpb24gPSB0aGlzLm9uTW91c2VNb3ZlKGV2ZW50KVxuICAgICAgdGhpcy5tb3VzZURpc3RhbmNlU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdtb3VzZW1vdmUnKS5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xuXG4gICAgICAgIGNvbnN0IG1vdXNlWUNsb3NlT24gPSBNYXRoLmFicyh0aGlzLm1vdXNlTG9jYXRpb24ubW91c2VZIC0gZS5wYWdlWSkgPD0gdGhpcy5tb3VzZVRocmVzaG9sZDtcbiAgICAgICAgY29uc3QgbW91c2VYQ2xvc2VPbiA9IE1hdGguYWJzKHRoaXMubW91c2VMb2NhdGlvbi5tb3VzZVggLSBlLnBhZ2VYKSA8PSB0aGlzLm1vdXNlVGhyZXNob2xkO1xuICAgICAgICBpZiAoIShtb3VzZVlDbG9zZU9uICYmIG1vdXNlWENsb3NlT24pKXtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIHNob3coKSB7XG4gICAgaWYgKCF0aGlzLmFza0Ryb3Bkb3duIHx8IHRoaXMuaXNSZW5kZXJlZCB8fCB0aGlzLmRyb3Bkb3duRGlzYWJsZWQgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb250YWluZXJSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoRHJvcGRvd25Db250YWluZXJDb21wb25lbnQpKTtcbiAgICB0aGlzLmNvbnRhaW5lclJlZi5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5hc2tEcm9wZG93bjtcbiAgICBpZiAodGhpcy5kcm9wZG93bk9wZW5PbkhvdmVyKSB7XG4gICAgICB0aGlzLm1vdXNlT3V0U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuY29udGFpbmVyUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsICdtb3VzZW91dCcpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdjZGstb3ZlcmxheS1iYWNrZHJvcCcpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5faXNSZW5kZXJlZCA9IHRydWU7XG4gIH1cbiAgcHVibGljIG9uTW91c2VNb3ZlKGV2ZW50OiBhbnkpOiB7bW91c2VYOiBudW1iZXI7IG1vdXNlWTogbnVtYmVyfSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSB7XG4gICAgICBtb3VzZVg6IGV2ZW50LmNsaWVudFgsXG4gICAgICBtb3VzZVk6IGV2ZW50LnBhZ2VZXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2F0aW9uO1xuICB9XG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICB0aGlzLmNvbnRhaW5lclJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgdGhpcy5faXNSZW5kZXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuYXNrRHJvcGRvd25PbkNsb3NlLmVtaXQoKTtcblxuICAgIGlmICh0aGlzLm1vdXNlT3V0U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm1vdXNlT3V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vdXNlRGlzdGFuY2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubW91c2VEaXN0YW5jZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNSZW5kZXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNSZW5kZXJlZDtcbiAgfVxuXG59XG4iXX0=
@@ -6,7 +6,7 @@ import * as i1$2 from '@angular/material/tooltip';
6
6
  import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
7
7
  import * as i1$1 from '@angular/forms';
8
8
  import { NG_VALUE_ACCESSOR, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
- import { debounceTime, tap, map, Subject } from 'rxjs';
9
+ import { debounceTime, tap, map, fromEvent, Subject } from 'rxjs';
10
10
  import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
11
11
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
12
  import * as i1$3 from '@angular/cdk/overlay';
@@ -1592,7 +1592,10 @@ class AskDropdownDirective {
1592
1592
  this._destroyRef = _destroyRef;
1593
1593
  this.dropdownName = '';
1594
1594
  this.dropdownDisabled = false;
1595
+ this.dropdownOpenOnHover = false;
1596
+ this.mouseThreshold = 300;
1595
1597
  this.askDropdownOnClose = new EventEmitter();
1598
+ this.mouseLocation = { mouseX: 0, mouseY: 0 };
1596
1599
  this._isRendered = false;
1597
1600
  this.overlayConfig = {};
1598
1601
  this.AVAILABLE_POSITIONS = {
@@ -1611,7 +1614,7 @@ class AskDropdownDirective {
1611
1614
  const positionStrategy = this.overlayPositionBuilder
1612
1615
  .flexibleConnectedTo(this.elementRef)
1613
1616
  .withPositions(this.getOverlayPosition());
1614
- const scrollStrategy = this.overlay.scrollStrategies.block();
1617
+ const scrollStrategy = this.overlay.scrollStrategies.reposition();
1615
1618
  this.overlayConfig = {
1616
1619
  hasBackdrop: true,
1617
1620
  backdropClass: 'cdk-overlay-transparent-backdrop',
@@ -1650,6 +1653,19 @@ class AskDropdownDirective {
1650
1653
  event.stopPropagation();
1651
1654
  });
1652
1655
  }
1656
+ showOnHoverIn() {
1657
+ if (this.dropdownOpenOnHover) {
1658
+ this.show();
1659
+ this.mouseLocation = this.onMouseMove(event);
1660
+ this.mouseDistanceSubscription = fromEvent(document.body, 'mousemove').subscribe((e) => {
1661
+ const mouseYCloseOn = Math.abs(this.mouseLocation.mouseY - e.pageY) <= this.mouseThreshold;
1662
+ const mouseXCloseOn = Math.abs(this.mouseLocation.mouseX - e.pageX) <= this.mouseThreshold;
1663
+ if (!(mouseYCloseOn && mouseXCloseOn)) {
1664
+ this.close();
1665
+ }
1666
+ });
1667
+ }
1668
+ }
1653
1669
  show() {
1654
1670
  if (!this.askDropdown || this.isRendered || this.dropdownDisabled) {
1655
1671
  this.close();
@@ -1657,19 +1673,40 @@ class AskDropdownDirective {
1657
1673
  }
1658
1674
  this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));
1659
1675
  this.containerRef.instance.content = this.askDropdown;
1676
+ if (this.dropdownOpenOnHover) {
1677
+ this.mouseOutSubscription = fromEvent(this.containerRef.location.nativeElement, 'mouseout')
1678
+ .subscribe((event) => {
1679
+ if (event.relatedTarget?.classList.contains('cdk-overlay-backdrop')) {
1680
+ this.close();
1681
+ }
1682
+ });
1683
+ }
1660
1684
  this._isRendered = true;
1661
1685
  }
1686
+ onMouseMove(event) {
1687
+ const location = {
1688
+ mouseX: event.clientX,
1689
+ mouseY: event.pageY
1690
+ };
1691
+ return location;
1692
+ }
1662
1693
  close() {
1663
1694
  this.containerRef = undefined;
1664
1695
  this.overlayRef.detach();
1665
1696
  this._isRendered = false;
1666
1697
  this.askDropdownOnClose.emit();
1698
+ if (this.mouseOutSubscription) {
1699
+ this.mouseOutSubscription.unsubscribe();
1700
+ }
1701
+ if (this.mouseDistanceSubscription) {
1702
+ this.mouseDistanceSubscription.unsubscribe();
1703
+ }
1667
1704
  }
1668
1705
  get isRendered() {
1669
1706
  return this._isRendered;
1670
1707
  }
1671
1708
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AskDropdownDirective, deps: [{ token: i1$3.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$3.Overlay }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1672
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AskDropdownDirective, selector: "[askDropdown]", inputs: { askDropdown: "askDropdown", dropdownName: "dropdownName", positions: "positions", dropdownDisabled: "dropdownDisabled" }, outputs: { askDropdownOnClose: "askDropdownOnClose" }, host: { listeners: { "click": "show()" } }, ngImport: i0 }); }
1709
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AskDropdownDirective, selector: "[askDropdown]", inputs: { askDropdown: "askDropdown", dropdownName: "dropdownName", positions: "positions", dropdownDisabled: "dropdownDisabled", dropdownOpenOnHover: "dropdownOpenOnHover", mouseThreshold: "mouseThreshold" }, outputs: { askDropdownOnClose: "askDropdownOnClose" }, host: { listeners: { "mouseenter": "showOnHoverIn()", "click": "show()" } }, ngImport: i0 }); }
1673
1710
  }
1674
1711
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AskDropdownDirective, decorators: [{
1675
1712
  type: Directive,
@@ -1684,8 +1721,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
1684
1721
  type: Input
1685
1722
  }], dropdownDisabled: [{
1686
1723
  type: Input
1724
+ }], dropdownOpenOnHover: [{
1725
+ type: Input
1726
+ }], mouseThreshold: [{
1727
+ type: Input
1687
1728
  }], askDropdownOnClose: [{
1688
1729
  type: Output
1730
+ }], showOnHoverIn: [{
1731
+ type: HostListener,
1732
+ args: ['mouseenter']
1689
1733
  }], show: [{
1690
1734
  type: HostListener,
1691
1735
  args: ['click']