@dotglitch/ngx-common 1.1.9 → 1.1.10

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.
@@ -20,9 +20,11 @@ export declare class TooltipDirective {
20
20
  private isCursorOverTarget;
21
21
  private isFreezeOnKeyCodeBound;
22
22
  constructor(dialog: MatDialog, viewContainer: ViewContainerRef);
23
+ ngAfterViewInit(): void;
23
24
  ngOnDestroy(): void;
24
25
  onKeyDown(evt: any): void;
25
26
  private onKeyDownEvt;
27
+ open(): Promise<void>;
26
28
  onPointerEnter(evt: PointerEvent): Promise<void>;
27
29
  onPointerLeave(evt: PointerEvent): Promise<void>;
28
30
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
@@ -22,12 +22,20 @@ export class TooltipDirective {
22
22
  this.onKeyDownEvt = this.onKeyDown.bind(this);
23
23
  if (this.config.freezeOnKeyCode !== null) {
24
24
  this.isFreezeOnKeyCodeBound = true;
25
- document.body.addEventListener("keydown", this.onKeyDownEvt);
25
+ window.addEventListener("keydown", this.onKeyDownEvt);
26
26
  }
27
27
  }
28
+ ngAfterViewInit() {
29
+ const el = this.viewContainer.element.nativeElement;
30
+ this.config?.triggers?.forEach(t => {
31
+ el.addEventListener(t, () => {
32
+ this.open();
33
+ });
34
+ });
35
+ }
28
36
  ngOnDestroy() {
29
37
  if (this.isFreezeOnKeyCodeBound) {
30
- document.body.removeEventListener("keydown", this.onKeyDownEvt);
38
+ window.removeEventListener("keydown", this.onKeyDownEvt);
31
39
  }
32
40
  }
33
41
  onKeyDown(evt) {
@@ -36,20 +44,17 @@ export class TooltipDirective {
36
44
  this.dialogInstance.componentInstance.isLockedOpen = true;
37
45
  }
38
46
  }
39
- // Needs to be public so we can manually open the dialog
47
+ async open() {
48
+ if (!this.dialogInstance) {
49
+ const el = this.viewContainer.element.nativeElement;
50
+ this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
51
+ }
52
+ }
40
53
  async onPointerEnter(evt) {
41
54
  // If the template is not a template ref, do nothing.
42
55
  if (!(this.template instanceof TemplateRef))
43
56
  return;
44
- // If the click trigger is set, we will immediately open the tooltip.
45
- // This will bypass all other triggers.
46
- if (this.config?.triggers?.includes("click")) {
47
- if (!this.dialogInstance) {
48
- const el = this.viewContainer.element.nativeElement;
49
- const data = this.data;
50
- data.isLockedOpen = true;
51
- this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
52
- }
57
+ if (Array.isArray(this.config?.triggers) && !this.config.triggers.includes("hover")) {
53
58
  return;
54
59
  }
55
60
  this.isCursorOverTarget = true;
@@ -57,10 +62,7 @@ export class TooltipDirective {
57
62
  // If the cursor moved away in the time
58
63
  if (!this.isCursorOverTarget)
59
64
  return;
60
- if (!this.dialogInstance) {
61
- const el = this.viewContainer.element.nativeElement;
62
- this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
63
- }
65
+ this.open();
64
66
  }, this.config.delay ?? 250);
65
67
  }
66
68
  async onPointerLeave(evt) {
@@ -136,4 +138,4 @@ export const openTooltip = async (dialog, template, data, el, config, focusTrap
136
138
  });
137
139
  });
138
140
  };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQzs7O0FBUzdCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3QnpCLFlBQ1ksTUFBaUIsRUFDakIsYUFBK0I7UUFEL0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFuQjNDOztXQUVHO1FBRTBCLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRXpEOztXQUVHO1FBRTJCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFJckMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQXdCL0IsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQWxCN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lB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QyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUMsQ0FBaUIsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0TGlzdGVuZXIsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyAgfSBmcm9tICcuLi90eXBlcy9wb3B1cCc7aW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgY2FsY1Rvb2x0aXBCb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy90b29sdGlwJztcbmltcG9ydCB7IHVsaWQgfSBmcm9tICd1bGlkeCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFRvb2x0aXBdLFtuZ3gtdG9vbHRpcF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNYXREaWFsb2dcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG5cbiAgICAvKipcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwXCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXBcIikgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBvcGVuaW5nIHRoZSBhcHAgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb25maWdcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcC1jb25maWdcIikgY29uZmlnOiBUb29sdGlwT3B0aW9ucyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgdG8gcGFzcyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb250ZXh0XCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29udGV4dFwiKSBkYXRhOiBhbnkgPSB7fTtcblxuXG4gICAgcHJpdmF0ZSBkaWFsb2dJbnN0YW5jZTogTWF0RGlhbG9nUmVmPGFueT47XG4gICAgcHJpdmF0ZSBpc0N1cnNvck92ZXJUYXJnZXQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRnJlZXplT25LZXlDb2RlQm91bmQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZyZWV6ZU9uS2V5Q29kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRnJlZXplT25LZXlDb2RlQm91bmQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2dCkge1xuICAgICAgICAvLyBUT0RPOiBmYWRlIG1lc3NhZ2UgJ3Rvb2x0aXAgaXMgbG9ja2VkIG9wZW4nXG4gICAgICAgIGlmIChldnQuY29kZSA9PSAoXCJGMlwiKSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZS5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgb25LZXlEb3duRXZ0ID0gdGhpcy5vbktleURvd24uYmluZCh0aGlzKTtcblxuICAgIC8vIE5lZWRzIHRvIGJlIHB1YmxpYyBzbyB3ZSBjYW4gbWFudWFsbHkgb3BlbiB0aGUgZGlhbG9nXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgYXN5bmMgb25Qb2ludGVyRW50ZXIoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIHRlbXBsYXRlIGlzIG5vdCBhIHRlbXBsYXRlIHJlZiwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKCEodGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAvLyBJZiB0aGUgY2xpY2sgdHJpZ2dlciBpcyBzZXQsIHdlIHdpbGwgaW1tZWRpYXRlbHkgb3BlbiB0aGUgdG9vbHRpcC5cbiAgICAgICAgLy8gVGhpcyB3aWxsIGJ5cGFzcyBhbGwgb3RoZXIgdHJpZ2dlcnMuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8udHJpZ2dlcnM/LmluY2x1ZGVzKFwiY2xpY2tcIikpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgICAgIGRhdGEuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3IgbW92ZWQgYXdheSBpbiB0aGUgdGltZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5jb25maWcuZGVsYXkgPz8gMjUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJMZWF2ZShldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIH1cbn1cblxuLy8gSGVscGVyIHRvIG9wZW4gdGhlIGNvbnRleHQgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3BlblRvb2x0aXAgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBjb25maWc/OiBUb29sdGlwT3B0aW9ucyxcbiAgICBmb2N1c1RyYXAgPSBmYWxzZSxcbiAgICBtYXRQb3B1cE9wdGlvbnM/OiBNYXREaWFsb2dDb25maWc8YW55PlxuKSA9PiB7XG5cbiAgICBjb25zdCByZWN0ID0gYXdhaXQgY2FsY1Rvb2x0aXBCb3VuZHModGVtcGxhdGUsIGRhdGEsIG1hdFBvcHVwT3B0aW9ucyk7XG4gICAgY29uc3Qgb3duZXJDb3JkcyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvcmRzID0gZ2V0UG9zaXRpb24oZWwsIGNvbmZpZywgcmVjdCk7XG4gICAgY29uc3Qgc3BlY2lmaWNJZCA9IHVsaWQoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4ge1xuICAgICAgICBkaWFsb2cub3BlbihUb29sdGlwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZvY3VzVHJhcCxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZm9jdXNUcmFwLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGRpYWxvZyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICBtYXRQb3B1cE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogb3duZXJDb3JkcyxcbiAgICAgICAgICAgICAgICBzZWxmQ29yZHM6IGNvcmRzLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LXRvb2x0aXBcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgLi4ubWF0UG9wdXBPcHRpb25zXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICByZXMocyk7XG4gICAgICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7OztBQVM3QixNQUFNLE9BQU8sZ0JBQWdCO0lBd0J6QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBbkIzQzs7V0FFRztRQUUwQixXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUV6RDs7V0FFRztRQUUyQixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBSXJDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFrQy9CLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUE1QjdDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekQ7SUFDTCxDQUFDO0lBRUQsZUFBZTtR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QyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFpQixDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZ2V0UG9zaXRpb24gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIGNhbGNUb29sdGlwQm91bmRzIH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvdG9vbHRpcCc7XG5pbXBvcnQgeyB1bGlkIH0gZnJvbSAndWxpZHgnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3hUb29sdGlwXSxbbmd4LXRvb2x0aXBdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTWF0RGlhbG9nXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUge1xuXG4gICAgLyoqXG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcFwiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwXCIpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3Igb3BlbmluZyB0aGUgYXBwIG1lbnVcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwQ29uZmlnXCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29uZmlnXCIpIGNvbmZpZzogVG9vbHRpcE9wdGlvbnMgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEFyYml0cmFyeSBkYXRhIHRvIHBhc3MgaW50byB0aGUgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwQ29udGV4dFwiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwLWNvbnRleHRcIikgZGF0YTogYW55ID0ge307XG5cblxuICAgIHByaXZhdGUgZGlhbG9nSW5zdGFuY2U6IE1hdERpYWxvZ1JlZjxhbnk+O1xuICAgIHByaXZhdGUgaXNDdXJzb3JPdmVyVGFyZ2V0ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5mcmVlemVPbktleUNvZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGcmVlemVPbktleUNvZGVCb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5jb25maWc/LnRyaWdnZXJzPy5mb3JFYWNoKHQgPT4ge1xuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5pc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2dCkge1xuICAgICAgICAvLyBUT0RPOiBmYWRlIG1lc3NhZ2UgJ3Rvb2x0aXAgaXMgbG9ja2VkIG9wZW4nXG4gICAgICAgIGlmIChldnQuY29kZSA9PSAoXCJGMlwiKSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZS5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgb25LZXlEb3duRXZ0ID0gdGhpcy5vbktleURvd24uYmluZCh0aGlzKTtcblxuICAgIGFzeW5jIG9wZW4oKSB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZSA9IGF3YWl0IG9wZW5Ub29sdGlwKHRoaXMuZGlhbG9nLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmRhdGEsIGVsLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJFbnRlcihldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICAvLyBJZiB0aGUgdGVtcGxhdGUgaXMgbm90IGEgdGVtcGxhdGUgcmVmLCBkbyBub3RoaW5nLlxuICAgICAgICBpZiAoISh0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnPy50cmlnZ2VycykgJiYgIXRoaXMuY29uZmlnLnRyaWdnZXJzLmluY2x1ZGVzKFwiaG92ZXJcIikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3IgbW92ZWQgYXdheSBpbiB0aGUgdGltZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9LCB0aGlzLmNvbmZpZy5kZWxheSA/PyAyNTApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGFzeW5jIG9uUG9pbnRlckxlYXZlKGV2dDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gZmFsc2U7XG4gICAgfVxufVxuXG4vLyBIZWxwZXIgdG8gb3BlbiB0aGUgY29udGV4dCBtZW51IHdpdGhvdXQgdXNpbmcgdGhlIGRpcmVjdGl2ZS5cbmV4cG9ydCBjb25zdCBvcGVuVG9vbHRpcCA9IGFzeW5jIChcbiAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PixcbiAgICBkYXRhOiBhbnksXG4gICAgZWw6IEhUTUxFbGVtZW50LFxuICAgIGNvbmZpZz86IFRvb2x0aXBPcHRpb25zLFxuICAgIGZvY3VzVHJhcCA9IGZhbHNlLFxuICAgIG1hdFBvcHVwT3B0aW9ucz86IE1hdERpYWxvZ0NvbmZpZzxhbnk+XG4pID0+IHtcblxuICAgIGNvbnN0IHJlY3QgPSBhd2FpdCBjYWxjVG9vbHRpcEJvdW5kcyh0ZW1wbGF0ZSwgZGF0YSwgbWF0UG9wdXBPcHRpb25zKTtcbiAgICBjb25zdCBvd25lckNvcmRzID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29yZHMgPSBnZXRQb3NpdGlvbihlbCwgY29uZmlnLCByZWN0KTtcbiAgICBjb25zdCBzcGVjaWZpY0lkID0gdWxpZCgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlcyA9PiB7XG4gICAgICAgIGRpYWxvZy5vcGVuKFRvb2x0aXBDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZm9jdXNUcmFwLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmb2N1c1RyYXAsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGlhbG9nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgIG1hdFBvcHVwT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBvd25lckNvcmRzOiBvd25lckNvcmRzLFxuICAgICAgICAgICAgICAgIHNlbGZDb3JkczogY29yZHMsXG4gICAgICAgICAgICAgICAgaWQ6IHNwZWNpZmljSWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtdG9vbHRpcFwiLCAnbmd4LScgKyBzcGVjaWZpY0lkXS5jb25jYXQoY29uZmlnPy5jdXN0b21DbGFzcyB8fCBbXSksXG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAuLi5tYXRQb3B1cE9wdGlvbnNcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgICAgICAgICAgIHJlcyhzKTtcbiAgICAgICAgICAgIH0pXG4gICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xufTtcbiJdfQ==
@@ -373,12 +373,20 @@ class TooltipDirective {
373
373
  this.onKeyDownEvt = this.onKeyDown.bind(this);
374
374
  if (this.config.freezeOnKeyCode !== null) {
375
375
  this.isFreezeOnKeyCodeBound = true;
376
- document.body.addEventListener("keydown", this.onKeyDownEvt);
376
+ window.addEventListener("keydown", this.onKeyDownEvt);
377
377
  }
378
378
  }
379
+ ngAfterViewInit() {
380
+ const el = this.viewContainer.element.nativeElement;
381
+ this.config?.triggers?.forEach(t => {
382
+ el.addEventListener(t, () => {
383
+ this.open();
384
+ });
385
+ });
386
+ }
379
387
  ngOnDestroy() {
380
388
  if (this.isFreezeOnKeyCodeBound) {
381
- document.body.removeEventListener("keydown", this.onKeyDownEvt);
389
+ window.removeEventListener("keydown", this.onKeyDownEvt);
382
390
  }
383
391
  }
384
392
  onKeyDown(evt) {
@@ -387,20 +395,17 @@ class TooltipDirective {
387
395
  this.dialogInstance.componentInstance.isLockedOpen = true;
388
396
  }
389
397
  }
390
- // Needs to be public so we can manually open the dialog
398
+ async open() {
399
+ if (!this.dialogInstance) {
400
+ const el = this.viewContainer.element.nativeElement;
401
+ this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
402
+ }
403
+ }
391
404
  async onPointerEnter(evt) {
392
405
  // If the template is not a template ref, do nothing.
393
406
  if (!(this.template instanceof TemplateRef))
394
407
  return;
395
- // If the click trigger is set, we will immediately open the tooltip.
396
- // This will bypass all other triggers.
397
- if (this.config?.triggers?.includes("click")) {
398
- if (!this.dialogInstance) {
399
- const el = this.viewContainer.element.nativeElement;
400
- const data = this.data;
401
- data.isLockedOpen = true;
402
- this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
403
- }
408
+ if (Array.isArray(this.config?.triggers) && !this.config.triggers.includes("hover")) {
404
409
  return;
405
410
  }
406
411
  this.isCursorOverTarget = true;
@@ -408,10 +413,7 @@ class TooltipDirective {
408
413
  // If the cursor moved away in the time
409
414
  if (!this.isCursorOverTarget)
410
415
  return;
411
- if (!this.dialogInstance) {
412
- const el = this.viewContainer.element.nativeElement;
413
- this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
414
- }
416
+ this.open();
415
417
  }, this.config.delay ?? 250);
416
418
  }
417
419
  async onPointerLeave(evt) {