ng-primitives 0.7.4 → 0.7.6

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.
@@ -1,7 +1,6 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { NgpDialogContext } from '../dialog/dialog.service';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "ng-primitives/button";
5
4
  export declare class NgpDialogTrigger {
6
5
  /** Access the dialog manager. */
7
6
  private readonly dialogManager;
@@ -20,5 +19,5 @@ export declare class NgpDialogTrigger {
20
19
  private dialogRef;
21
20
  protected launch(): void;
22
21
  static ɵfac: i0.ɵɵFactoryDeclaration<NgpDialogTrigger, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgpDialogTrigger, "[ngpDialogTrigger]", ["ngpDialogTrigger"], { "template": { "alias": "ngpDialogTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgpButton; inputs: {}; outputs: {}; }]>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgpDialogTrigger, "[ngpDialogTrigger]", ["ngpDialogTrigger"], { "template": { "alias": "ngpDialogTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
24
23
  }
@@ -7,11 +7,9 @@
7
7
  */
8
8
  import { FocusMonitor } from '@angular/cdk/a11y';
9
9
  import { Directive, ElementRef, HostListener, inject, input, ViewContainerRef, } from '@angular/core';
10
- import { NgpButton } from 'ng-primitives/button';
11
10
  import { NgpDialogManager } from '../dialog/dialog.service';
12
11
  import { NgpDialogTriggerToken } from './dialog-trigger.token';
13
12
  import * as i0 from "@angular/core";
14
- import * as i1 from "ng-primitives/button";
15
13
  export class NgpDialogTrigger {
16
14
  constructor() {
17
15
  /** Access the dialog manager. */
@@ -43,7 +41,7 @@ export class NgpDialogTrigger {
43
41
  });
44
42
  }
45
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialogTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }], exportAs: ["ngpDialogTrigger"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }], exportAs: ["ngpDialogTrigger"], ngImport: i0 }); }
47
45
  }
48
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialogTrigger, decorators: [{
49
47
  type: Directive,
@@ -52,10 +50,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
52
50
  selector: '[ngpDialogTrigger]',
53
51
  exportAs: 'ngpDialogTrigger',
54
52
  providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }],
55
- hostDirectives: [NgpButton],
56
53
  }]
57
54
  }], propDecorators: { launch: [{
58
55
  type: HostListener,
59
56
  args: ['click']
60
57
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kaWFsb2cvc3JjL2RpYWxvZy10cmlnZ2VyL2RpYWxvZy10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVMvRCxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBUUUsaUNBQWlDO1FBQ2hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFMUQscUNBQXFDO1FBQ3BCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdELGdDQUFnQztRQUNmLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJELDhCQUE4QjtRQUNiLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLDhCQUE4QjtRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBZ0M7WUFDaEUsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQixDQUFDLENBQUM7UUFFSDs7O1dBR0c7UUFDSyxjQUFTLEdBQXdCLElBQUksQ0FBQztLQWMvQztJQVhXLE1BQU07UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixxREFBcUQ7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5DVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixtUUFIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7MkZBR25FLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO29CQUM5RSxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQzVCOzhCQTBCVyxNQUFNO3NCQURmLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ncEJ1dHRvbiB9IGZyb20gJ25nLXByaW1pdGl2ZXMvYnV0dG9uJztcbmltcG9ydCB7IE5ncERpYWxvZ1JlZiB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2ctcmVmJztcbmltcG9ydCB7IE5ncERpYWxvZ0NvbnRleHQsIE5ncERpYWxvZ01hbmFnZXIgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdwRGlhbG9nVHJpZ2dlclRva2VuIH0gZnJvbSAnLi9kaWFsb2ctdHJpZ2dlci50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BEaWFsb2dUcmlnZ2VyXScsXG4gIGV4cG9ydEFzOiAnbmdwRGlhbG9nVHJpZ2dlcicsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwRGlhbG9nVHJpZ2dlclRva2VuLCB1c2VFeGlzdGluZzogTmdwRGlhbG9nVHJpZ2dlciB9XSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOZ3BCdXR0b25dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BEaWFsb2dUcmlnZ2VyIHtcbiAgLyoqIEFjY2VzcyB0aGUgZGlhbG9nIG1hbmFnZXIuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nTWFuYWdlciA9IGluamVjdChOZ3BEaWFsb2dNYW5hZ2VyKTtcblxuICAvKiogQWNjZXNzIHRoZSB2aWV3IGNvbnRhaW5lciByZWYuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAvKiogQWNjZXNzIHRoZSBmb2N1cyBtb25pdG9yLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGVsZW1lbnQgcmVmLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKiBUaGUgdGVtcGxhdGUgdG8gbGF1bmNoLiAqL1xuICByZWFkb25seSB0ZW1wbGF0ZSA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPE5ncERpYWxvZ0NvbnRleHQ+Pih7XG4gICAgYWxpYXM6ICduZ3BEaWFsb2dUcmlnZ2VyJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSBkaWFsb2cgcmVmLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgZGlhbG9nUmVmOiBOZ3BEaWFsb2dSZWYgfCBudWxsID0gbnVsbDtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHByb3RlY3RlZCBsYXVuY2goKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ01hbmFnZXIub3Blbih0aGlzLnRlbXBsYXRlKCksIHtcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICB9KTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlZC5zdWJzY3JpYmUoZm9jdXNPcmlnaW4gPT4ge1xuICAgICAgdGhpcy5kaWFsb2dSZWYgPSBudWxsO1xuICAgICAgLy8gRm9jdXMgdGhlIHRyaWdnZXIgZWxlbWVudCBhZnRlciB0aGUgZGlhbG9nIGNsb3Nlcy5cbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmb2N1c09yaWdpbik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9kaWFsb2cvc3JjL2RpYWxvZy10cmlnZ2VyL2RpYWxvZy10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFRL0QsTUFBTSxPQUFPLGdCQUFnQjtJQU43QjtRQU9FLGlDQUFpQztRQUNoQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFELHFDQUFxQztRQUNwQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RCxnQ0FBZ0M7UUFDZixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCw4QkFBOEI7UUFDYixlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRSw4QkFBOEI7UUFDckIsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQWdDO1lBQ2hFLEtBQUssRUFBRSxrQkFBa0I7U0FDMUIsQ0FBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ0ssY0FBUyxHQUF3QixJQUFJLENBQUM7S0FjL0M7SUFYVyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDeEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIscURBQXFEO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuQ1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbVFBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7OzJGQUVuRSxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztpQkFDL0U7OEJBMEJXLE1BQU07c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdwRGlhbG9nUmVmIH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy1yZWYnO1xuaW1wb3J0IHsgTmdwRGlhbG9nQ29udGV4dCwgTmdwRGlhbG9nTWFuYWdlciB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3BEaWFsb2dUcmlnZ2VyVG9rZW4gfSBmcm9tICcuL2RpYWxvZy10cmlnZ2VyLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncERpYWxvZ1RyaWdnZXJdJyxcbiAgZXhwb3J0QXM6ICduZ3BEaWFsb2dUcmlnZ2VyJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BEaWFsb2dUcmlnZ2VyVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BEaWFsb2dUcmlnZ2VyIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BEaWFsb2dUcmlnZ2VyIHtcbiAgLyoqIEFjY2VzcyB0aGUgZGlhbG9nIG1hbmFnZXIuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nTWFuYWdlciA9IGluamVjdChOZ3BEaWFsb2dNYW5hZ2VyKTtcblxuICAvKiogQWNjZXNzIHRoZSB2aWV3IGNvbnRhaW5lciByZWYuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAvKiogQWNjZXNzIHRoZSBmb2N1cyBtb25pdG9yLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGVsZW1lbnQgcmVmLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKiBUaGUgdGVtcGxhdGUgdG8gbGF1bmNoLiAqL1xuICByZWFkb25seSB0ZW1wbGF0ZSA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPE5ncERpYWxvZ0NvbnRleHQ+Pih7XG4gICAgYWxpYXM6ICduZ3BEaWFsb2dUcmlnZ2VyJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSBkaWFsb2cgcmVmLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgZGlhbG9nUmVmOiBOZ3BEaWFsb2dSZWYgfCBudWxsID0gbnVsbDtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHByb3RlY3RlZCBsYXVuY2goKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ01hbmFnZXIub3Blbih0aGlzLnRlbXBsYXRlKCksIHtcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICB9KTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlZC5zdWJzY3JpYmUoZm9jdXNPcmlnaW4gPT4ge1xuICAgICAgdGhpcy5kaWFsb2dSZWYgPSBudWxsO1xuICAgICAgLy8gRm9jdXMgdGhlIHRyaWdnZXIgZWxlbWVudCBhZnRlciB0aGUgZGlhbG9nIGNsb3Nlcy5cbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmb2N1c09yaWdpbik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -103,7 +103,7 @@ export class NgpFocusVisible {
103
103
  return false;
104
104
  }
105
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisible" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
106
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisible" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused() && !isDisabled()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, decorators: [{
109
109
  type: Directive,
@@ -113,11 +113,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
113
113
  exportAs: 'ngpFocusVisible',
114
114
  providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }],
115
115
  host: {
116
- '[attr.data-focus-visible]': 'isFocused()',
116
+ '[attr.data-focus-visible]': 'isFocused() && !isDisabled()',
117
117
  },
118
118
  }]
119
119
  }], ctorParameters: () => [], propDecorators: { onBlur: [{
120
120
  type: HostListener,
121
121
  args: ['blur']
122
122
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdmlzaWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2ludGVyYWN0aW9ucy9zcmMvZm9jdXMtdmlzaWJsZS9mb2N1cy12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVc3RCxNQUFNLE9BQU8sZUFBZTtJQW9DMUI7UUFuQ0E7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNjLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSx5QkFBeUI7WUFDaEMsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQVU7WUFDckMsS0FBSyxFQUFFLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFFSDs7V0FFRztR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RUFBRSxhQUFhO3FCQUMzQztpQkFDRjt3REFvRVcsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGluamVjdERpc2FibGVkIH0gZnJvbSAnbmctcHJpbWl0aXZlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBOZ3BGb2N1c1Zpc2libGVUb2tlbiB9IGZyb20gJy4vZm9jdXMtdmlzaWJsZS50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BGb2N1c1Zpc2libGVdJyxcbiAgZXhwb3J0QXM6ICduZ3BGb2N1c1Zpc2libGUnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5ncEZvY3VzVmlzaWJsZVRva2VuLCB1c2VFeGlzdGluZzogTmdwRm9jdXNWaXNpYmxlIH1dLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtZm9jdXMtdmlzaWJsZV0nOiAnaXNGb2N1c2VkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BGb2N1c1Zpc2libGUge1xuICAvKipcbiAgICogQWNjZXNzIHRoZSBlbGVtZW50IHRoYXQgdGhlIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIHRvLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBmb2N1cyBtb25pdG9yLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcblxuICAvKipcbiAgICogV2hldGhlciBmb2N1cyBldmVudHMgYXJlIGxpc3RlbmVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BGb2N1c1Zpc2libGVEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkaXNhYmxlZCBzdGF0ZSBmcm9tIGFueSBwYXJlbnQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGlzRGlzYWJsZWQgPSBpbmplY3REaXNhYmxlZCh0aGlzLmRpc2FibGVkKTtcblxuICAvKipcbiAgICogRW1pdCB3aGVuIHRoZSBlbGVtZW50IGlzIHZpc3VhbGx5IGZvY3VzZWQuXG4gICAqL1xuICByZWFkb25seSBmb2N1c0NoYW5nZSA9IG91dHB1dDxib29sZWFuPih7XG4gICAgYWxpYXM6ICduZ3BGb2N1c1Zpc2libGUnLFxuICB9KTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBjdXJyZW50bHkgZm9jdXNlZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0ZvY3VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShvcmlnaW4gPT4gdGhpcy5vbkZvY3VzKG9yaWdpbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5pc0ZvY3VzZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGZvciBzb21lIGVsZW1lbnRzIHRoZSBmb2N1cyB2aXNpYmxlIHN0YXRlIHNob3VsZCBhbHdheXMgYXBwZWFyIG9uIGZvY3VzXG4gICAgaWYgKHRoaXMuYWx3YXlzU2hvd0ZvY3VzKCkpIHtcbiAgICAgIHRoaXMuaXNGb2N1c2VkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgZm9jdXMgb3JpZ2luIGlzIGtleWJvYXJkLCB0aGVuIHRoZSBmb2N1cyBpcyB2aXNpYmxlXG4gICAgaWYgKG9yaWdpbiA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGJsdXIgZXZlbnRzLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHByb3RlY3RlZCBvbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8ICF0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhbHdheXNTaG93Rm9jdXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9uVGV4dElucHV0VHlwZXMgPSBbXG4gICAgICAnY2hlY2tib3gnLFxuICAgICAgJ3JhZGlvJyxcbiAgICAgICdyYW5nZScsXG4gICAgICAnY29sb3InLFxuICAgICAgJ2ZpbGUnLFxuICAgICAgJ2ltYWdlJyxcbiAgICAgICdidXR0b24nLFxuICAgICAgJ3N1Ym1pdCcsXG4gICAgICAncmVzZXQnLFxuICAgIF07XG5cbiAgICAvLyBpZiB0aGlzIGlzIGFuIGlucHV0IGVsZW1lbnQgYW5kIGl0IGlzIGEgdGV4dCBpbnB1dFxuICAgIGlmIChcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICAgIW5vblRleHRJbnB1dFR5cGVzLmluY2x1ZGVzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIGlzIGEgdGV4dGFyZWFcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIGlzIGFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGVcbiAgICBpZiAoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSB8fFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdmlzaWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2ludGVyYWN0aW9ucy9zcmMvZm9jdXMtdmlzaWJsZS9mb2N1cy12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVc3RCxNQUFNLE9BQU8sZUFBZTtJQW9DMUI7UUFuQ0E7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNjLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSx5QkFBeUI7WUFDaEMsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQVU7WUFDckMsS0FBSyxFQUFFLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFFSDs7V0FFRztR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RUFBRSw4QkFBOEI7cUJBQzVEO2lCQUNGO3dEQW9FVyxNQUFNO3NCQURmLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0RGlzYWJsZWQgfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IE5ncEZvY3VzVmlzaWJsZVRva2VuIH0gZnJvbSAnLi9mb2N1cy12aXNpYmxlLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncEZvY3VzVmlzaWJsZV0nLFxuICBleHBvcnRBczogJ25ncEZvY3VzVmlzaWJsZScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwRm9jdXNWaXNpYmxlVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BGb2N1c1Zpc2libGUgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mb2N1cy12aXNpYmxlXSc6ICdpc0ZvY3VzZWQoKSAmJiAhaXNEaXNhYmxlZCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdwRm9jdXNWaXNpYmxlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZWxlbWVudCB0aGF0IHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZCB0by5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZm9jdXMgbW9uaXRvci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZm9jdXMgZXZlbnRzIGFyZSBsaXN0ZW5lZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwRm9jdXNWaXNpYmxlRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGlzYWJsZWQgc3RhdGUgZnJvbSBhbnkgcGFyZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Rpc2FibGVkID0gaW5qZWN0RGlzYWJsZWQodGhpcy5kaXNhYmxlZCk7XG5cbiAgLyoqXG4gICAqIEVtaXQgd2hlbiB0aGUgZWxlbWVudCBpcyB2aXN1YWxseSBmb2N1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9jdXNDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oe1xuICAgIGFsaWFzOiAnbmdwRm9jdXNWaXNpYmxlJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb2N1c2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvclxuICAgICAgLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUob3JpZ2luID0+IHRoaXMub25Gb2N1cyhvcmlnaW4pKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Gb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMuaXNGb2N1c2VkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBmb3Igc29tZSBlbGVtZW50cyB0aGUgZm9jdXMgdmlzaWJsZSBzdGF0ZSBzaG91bGQgYWx3YXlzIGFwcGVhciBvbiBmb2N1c1xuICAgIGlmICh0aGlzLmFsd2F5c1Nob3dGb2N1cygpKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGZvY3VzIG9yaWdpbiBpcyBrZXlib2FyZCwgdGhlbiB0aGUgZm9jdXMgaXMgdmlzaWJsZVxuICAgIGlmIChvcmlnaW4gPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIHRoaXMuaXNGb2N1c2VkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBibHVyIGV2ZW50cy5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSB8fCAhdGhpcy5pc0ZvY3VzZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNGb2N1c2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYWx3YXlzU2hvd0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5vblRleHRJbnB1dFR5cGVzID0gW1xuICAgICAgJ2NoZWNrYm94JyxcbiAgICAgICdyYWRpbycsXG4gICAgICAncmFuZ2UnLFxuICAgICAgJ2NvbG9yJyxcbiAgICAgICdmaWxlJyxcbiAgICAgICdpbWFnZScsXG4gICAgICAnYnV0dG9uJyxcbiAgICAgICdzdWJtaXQnLFxuICAgICAgJ3Jlc2V0JyxcbiAgICBdO1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhbiBpbnB1dCBlbGVtZW50IGFuZCBpdCBpcyBhIHRleHQgaW5wdXRcbiAgICBpZiAoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiZcbiAgICAgICFub25UZXh0SW5wdXRUeXBlcy5pbmNsdWRlcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50eXBlKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhpcyBpcyBhIHRleHRhcmVhXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhpcyBpcyBhbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlXG4gICAgaWYgKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaXNDb250ZW50RWRpdGFibGUgfHxcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJylcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -98,7 +98,7 @@ export class NgpPress {
98
98
  }
99
99
  }
100
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpPress, isStandalone: true, selector: "[ngpPress]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpPressDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressStart: "ngpPressStart", pressEnd: "ngpPressEnd", pressChange: "ngpPress" }, host: { listeners: { "pointerdown": "onPointerDown()" }, properties: { "attr.data-press": "pressed()" } }, providers: [{ provide: NgpPressToken, useExisting: NgpPress }], exportAs: ["ngpPress"], ngImport: i0 }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpPress, isStandalone: true, selector: "[ngpPress]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpPressDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressStart: "ngpPressStart", pressEnd: "ngpPressEnd", pressChange: "ngpPress" }, host: { listeners: { "pointerdown": "onPointerDown()" }, properties: { "attr.data-press": "pressed() && !isDisabled()" } }, providers: [{ provide: NgpPressToken, useExisting: NgpPress }], exportAs: ["ngpPress"], ngImport: i0 }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPress, decorators: [{
104
104
  type: Directive,
@@ -108,11 +108,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
108
108
  exportAs: 'ngpPress',
109
109
  providers: [{ provide: NgpPressToken, useExisting: NgpPress }],
110
110
  host: {
111
- '[attr.data-press]': 'pressed()',
111
+ '[attr.data-press]': 'pressed() && !isDisabled()',
112
112
  },
113
113
  }]
114
114
  }], propDecorators: { onPointerDown: [{
115
115
  type: HostListener,
116
116
  args: ['pointerdown']
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9pbnRlcmFjdGlvbnMvc3JjL3ByZXNzL3ByZXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUM7OztHQUdHO0FBV0gsTUFBTSxPQUFPLFFBQVE7SUFUckI7UUFVRTs7V0FFRztRQUNjLFlBQU8sR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXZFOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBRW5EOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSxrQkFBa0I7WUFDekIsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sZUFBVSxHQUFHLE1BQU0sQ0FBTztZQUNqQyxLQUFLLEVBQUUsZUFBZTtTQUN2QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNNLGFBQVEsR0FBRyxNQUFNLENBQU87WUFDL0IsS0FBSyxFQUFFLGFBQWE7U0FDckIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxnQkFBVyxHQUFH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QUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxVQUFVLEVBQUUsQ0FBQztvQkFDOUQsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQixFQUFFLFdBQVc7cUJBQ2pDO2lCQUNGOzhCQXlFVyxhQUFhO3NCQUR0QixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RGlzYWJsZWQgfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdERpc3Bvc2FibGVzIH0gZnJvbSAnbmctcHJpbWl0aXZlcy91dGlscyc7XG5pbXBvcnQgeyBOZ3BQcmVzc1Rva2VuIH0gZnJvbSAnLi9wcmVzcy50b2tlbic7XG5cbi8qKlxuICogVGhpcyB3YXMgaW5wc2lyZWQgYnkgSGVhZGxlc3MgVUkncyBhY3RpdmUtcHJlc3MgaG9vazpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvaGVhZGxlc3N1aS9ibG9iL21haW4vcGFja2FnZXMvJTQwaGVhZGxlc3N1aS1yZWFjdC9zcmMvaG9va3MvdXNlLWFjdGl2ZS1wcmVzcy50c3hcbiAqL1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwUHJlc3NdJyxcbiAgZXhwb3J0QXM6ICduZ3BQcmVzcycsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwUHJlc3NUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncFByZXNzIH1dLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtcHJlc3NdJzogJ3ByZXNzZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncFByZXNzIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgSFRNTCBFbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkaXNwb3NhYmxlcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcG9zYWJsZXMgPSBpbmplY3REaXNwb3NhYmxlcygpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGxpc3RlbmluZyBmb3IgcHJlc3MgZXZlbnRzIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BQcmVzc0Rpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRpc2FibGVkIHN0YXRlIGZyb20gYW55IHBhcmVudC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEaXNhYmxlZCA9IGluamVjdERpc2FibGVkKHRoaXMuZGlzYWJsZWQpO1xuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gdGhlIHByZXNzIGJlZ2lucy5cbiAgICovXG4gIHJlYWRvbmx5IHByZXNzU3RhcnQgPSBvdXRwdXQ8dm9pZD4oe1xuICAgIGFsaWFzOiAnbmdwUHJlc3NTdGFydCcsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gdGhlIHByZXNzIGVuZHMuXG4gICAqL1xuICByZWFkb25seSBwcmVzc0VuZCA9IG91dHB1dDx2b2lkPih7XG4gICAgYWxpYXM6ICduZ3BQcmVzc0VuZCcsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gdGhlIHByZXNzIGNoYW5nZXMuXG4gICAqL1xuICByZWFkb25seSBwcmVzc0NoYW5nZSA9IG91dHB1dDxib29sZWFuPih7XG4gICAgYWxpYXM6ICduZ3BQcmVzcycsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlc3Mgc3RhdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJlc3NlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBwcmVzcyBzdGF0ZS5cbiAgICovXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgLy8gaWYgd2UgYXJlIG5vdCBwcmVzc2luZywgdGhlbiBkbyBub3RoaW5nXG4gICAgaWYgKCF0aGlzLnByZXNzZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNsZWFyIGFueSBleGlzdGluZyBkaXNwb3NhYmxlc1xuICAgIHRoaXMuZGlzcG9zYWJsZUxpc3RlbmVycy5mb3JFYWNoKGRpc3Bvc2UgPT4gZGlzcG9zZSgpKTtcbiAgICB0aGlzLnByZXNzZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnByZXNzRW5kLmVtaXQoKTtcbiAgICB0aGlzLnByZXNzQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSBsaXN0IG9mIGRpc3Bvc2FibGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBkaXNwb3NhYmxlTGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJkb3duJylcbiAgcHJvdGVjdGVkIG9uUG9pbnRlckRvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgYW55IGV4aXN0aW5nIGRpc3Bvc2FibGVzXG4gICAgdGhpcy5kaXNwb3NhYmxlTGlzdGVuZXJzLmZvckVhY2goZGlzcG9zZSA9PiBkaXNwb3NlKCkpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBwcmVzcyBzdGF0ZVxuICAgIHRoaXMucHJlc3NlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5wcmVzc1N0YXJ0LmVtaXQoKTtcbiAgICB0aGlzLnByZXNzQ2hhbmdlLmVtaXQodHJ1ZSk7XG5cbiAgICAvLyBzZXR1cCBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzIHRvIGNhdGNoIGV2ZW50cyBvbiBlbGVtZW50cyBvdXRzaWRlIHRoZSBkaXJlY3RpdmVcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudCA/PyBkb2N1bWVudDtcblxuICAgIC8vIGlmIHRoZSBwb2ludGVyIHVwIGV2ZW50IGhhcHBlbnMgb24gYW55IGVsZW1lbnRzLCB0aGVuIHdlIGFyZSBubyBsb25nZXIgcHJlc3Npbmcgb24gdGhpcyBlbGVtZW50XG4gICAgY29uc3QgcG9pbnRlclVwID0gdGhpcy5kaXNwb3NhYmxlcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgb3duZXJEb2N1bWVudCxcbiAgICAgICdwb2ludGVydXAnLFxuICAgICAgdGhpcy5yZXNldC5iaW5kKHRoaXMpLFxuICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIC8vIEluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgYHBvaW50ZXJsZWF2ZWAgZXZlbnQsIHdoaWNoIGlzIG5vdCBjb25zaXN0ZW50bHkgY2FsbGVkIG9uIGlPUyBTYWZhcmksXG4gICAgLy8gd2UgdXNlIHRoZSBgcG9pbnRlcm1vdmVgIGV2ZW50IHRvIGRldGVybWluZSBpZiB3ZSBhcmUgc3RpbGwgXCJwcmVzc2luZ1wiLlxuICAgIC8vIEJ5IGNoZWNraW5nIGlmIHRoZSB0YXJnZXQgaXMgc3RpbGwgd2l0aGluIHRoZSBlbGVtZW50LCB3ZSBjYW4gZGV0ZXJtaW5lIGlmIHRoZSBwcmVzcyBpcyBvbmdvaW5nLlxuICAgIGNvbnN0IHBvaW50ZXJNb3ZlID0gdGhpcy5kaXNwb3NhYmxlcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgb3duZXJEb2N1bWVudCxcbiAgICAgICdwb2ludGVybW92ZScsXG4gICAgICB0aGlzLm9uUG9pbnRlck1vdmUuYmluZCh0aGlzKSBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIC8vIGlmIHRoZSBwb2ludGVyIGlzIGNhbmNlbGxlZCwgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIHByZXNzaW5nIG9uIHRoaXMgZWxlbWVudFxuICAgIGNvbnN0IHBvaW50ZXJDYW5jZWwgPSB0aGlzLmRpc3Bvc2FibGVzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBvd25lckRvY3VtZW50LFxuICAgICAgJ3BvaW50ZXJjYW5jZWwnLFxuICAgICAgdGhpcy5yZXNldC5iaW5kKHRoaXMpLFxuICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIHRoaXMuZGlzcG9zYWJsZUxpc3RlbmVycyA9IFtwb2ludGVyVXAsIHBvaW50ZXJNb3ZlLCBwb2ludGVyQ2FuY2VsXTtcbiAgfVxuXG4gIHByaXZhdGUgb25Qb2ludGVyTW92ZShldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgIT09IGV2ZW50LnRhcmdldCAmJlxuICAgICAgIXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgfVxufVxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9pbnRlcmFjdGlvbnMvc3JjL3ByZXNzL3ByZXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUM7OztHQUdHO0FBV0gsTUFBTSxPQUFPLFFBQVE7SUFUckI7UUFVRTs7V0FFRztRQUNjLFlBQU8sR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXZFOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBRW5EOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSxrQkFBa0I7WUFDekIsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sZUFBVSxHQUFHLE1BQU0sQ0FBTztZQUNqQyxLQUFLLEVBQUUsZUFBZTtTQUN2QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNNLGFBQVEsR0FBRyxNQUFNLENBQU87WUFDL0IsS0FBSyxFQUFFLGFBQWE7U0FDckIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxnQkFBVyxHQUFH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QUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxVQUFVLEVBQUUsQ0FBQztvQkFDOUQsSUFBSSxFQUFFO3dCQUNKLG1CQUFtQixFQUFFLDRCQUE0QjtxQkFDbEQ7aUJBQ0Y7OEJBeUVXLGFBQWE7c0JBRHRCLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3REaXNhYmxlZCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RGlzcG9zYWJsZXMgfSBmcm9tICduZy1wcmltaXRpdmVzL3V0aWxzJztcbmltcG9ydCB7IE5ncFByZXNzVG9rZW4gfSBmcm9tICcuL3ByZXNzLnRva2VuJztcblxuLyoqXG4gKiBUaGlzIHdhcyBpbnBzaXJlZCBieSBIZWFkbGVzcyBVSSdzIGFjdGl2ZS1wcmVzcyBob29rOlxuICogaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy9oZWFkbGVzc3VpL2Jsb2IvbWFpbi9wYWNrYWdlcy8lNDBoZWFkbGVzc3VpLXJlYWN0L3NyYy9ob29rcy91c2UtYWN0aXZlLXByZXNzLnRzeFxuICovXG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BQcmVzc10nLFxuICBleHBvcnRBczogJ25ncFByZXNzJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BQcmVzc1Rva2VuLCB1c2VFeGlzdGluZzogTmdwUHJlc3MgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1wcmVzc10nOiAncHJlc3NlZCgpICYmICFpc0Rpc2FibGVkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BQcmVzcyB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIEhUTUwgRWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGlzcG9zYWJsZXMuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc3Bvc2FibGVzID0gaW5qZWN0RGlzcG9zYWJsZXMoKTtcblxuICAvKipcbiAgICogV2hldGhlciBsaXN0ZW5pbmcgZm9yIHByZXNzIGV2ZW50cyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwUHJlc3NEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkaXNhYmxlZCBzdGF0ZSBmcm9tIGFueSBwYXJlbnQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGlzRGlzYWJsZWQgPSBpbmplY3REaXNhYmxlZCh0aGlzLmRpc2FibGVkKTtcblxuICAvKipcbiAgICogRW1pdCB3aGVuIHRoZSBwcmVzcyBiZWdpbnMuXG4gICAqL1xuICByZWFkb25seSBwcmVzc1N0YXJ0ID0gb3V0cHV0PHZvaWQ+KHtcbiAgICBhbGlhczogJ25ncFByZXNzU3RhcnQnLFxuICB9KTtcblxuICAvKipcbiAgICogRW1pdCB3aGVuIHRoZSBwcmVzcyBlbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlc3NFbmQgPSBvdXRwdXQ8dm9pZD4oe1xuICAgIGFsaWFzOiAnbmdwUHJlc3NFbmQnLFxuICB9KTtcblxuICAvKipcbiAgICogRW1pdCB3aGVuIHRoZSBwcmVzcyBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlc3NDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oe1xuICAgIGFsaWFzOiAnbmdwUHJlc3MnLFxuICB9KTtcblxuICAvKipcbiAgICogVGhlIHByZXNzIHN0YXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXNzZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgcHJlc3Mgc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIC8vIGlmIHdlIGFyZSBub3QgcHJlc3NpbmcsIHRoZW4gZG8gbm90aGluZ1xuICAgIGlmICghdGhpcy5wcmVzc2VkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjbGVhciBhbnkgZXhpc3RpbmcgZGlzcG9zYWJsZXNcbiAgICB0aGlzLmRpc3Bvc2FibGVMaXN0ZW5lcnMuZm9yRWFjaChkaXNwb3NlID0+IGRpc3Bvc2UoKSk7XG4gICAgdGhpcy5wcmVzc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5wcmVzc0VuZC5lbWl0KCk7XG4gICAgdGhpcy5wcmVzc0NoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSB0aGUgbGlzdCBvZiBkaXNwb3NhYmxlcy5cbiAgICovXG4gIHByaXZhdGUgZGlzcG9zYWJsZUxpc3RlbmVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXG4gIHByb3RlY3RlZCBvblBvaW50ZXJEb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNsZWFyIGFueSBleGlzdGluZyBkaXNwb3NhYmxlc1xuICAgIHRoaXMuZGlzcG9zYWJsZUxpc3RlbmVycy5mb3JFYWNoKGRpc3Bvc2UgPT4gZGlzcG9zZSgpKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgcHJlc3Mgc3RhdGVcbiAgICB0aGlzLnByZXNzZWQuc2V0KHRydWUpO1xuICAgIHRoaXMucHJlc3NTdGFydC5lbWl0KCk7XG4gICAgdGhpcy5wcmVzc0NoYW5nZS5lbWl0KHRydWUpO1xuXG4gICAgLy8gc2V0dXAgZ2xvYmFsIGV2ZW50IGxpc3RlbmVycyB0byBjYXRjaCBldmVudHMgb24gZWxlbWVudHMgb3V0c2lkZSB0aGUgZGlyZWN0aXZlXG4gICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnQgPz8gZG9jdW1lbnQ7XG5cbiAgICAvLyBpZiB0aGUgcG9pbnRlciB1cCBldmVudCBoYXBwZW5zIG9uIGFueSBlbGVtZW50cywgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIHByZXNzaW5nIG9uIHRoaXMgZWxlbWVudFxuICAgIGNvbnN0IHBvaW50ZXJVcCA9IHRoaXMuZGlzcG9zYWJsZXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIG93bmVyRG9jdW1lbnQsXG4gICAgICAncG9pbnRlcnVwJyxcbiAgICAgIHRoaXMucmVzZXQuYmluZCh0aGlzKSxcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICAvLyBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGBwb2ludGVybGVhdmVgIGV2ZW50LCB3aGljaCBpcyBub3QgY29uc2lzdGVudGx5IGNhbGxlZCBvbiBpT1MgU2FmYXJpLFxuICAgIC8vIHdlIHVzZSB0aGUgYHBvaW50ZXJtb3ZlYCBldmVudCB0byBkZXRlcm1pbmUgaWYgd2UgYXJlIHN0aWxsIFwicHJlc3NpbmdcIi5cbiAgICAvLyBCeSBjaGVja2luZyBpZiB0aGUgdGFyZ2V0IGlzIHN0aWxsIHdpdGhpbiB0aGUgZWxlbWVudCwgd2UgY2FuIGRldGVybWluZSBpZiB0aGUgcHJlc3MgaXMgb25nb2luZy5cbiAgICBjb25zdCBwb2ludGVyTW92ZSA9IHRoaXMuZGlzcG9zYWJsZXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIG93bmVyRG9jdW1lbnQsXG4gICAgICAncG9pbnRlcm1vdmUnLFxuICAgICAgdGhpcy5vblBvaW50ZXJNb3ZlLmJpbmQodGhpcykgYXMgRXZlbnRMaXN0ZW5lcixcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICAvLyBpZiB0aGUgcG9pbnRlciBpcyBjYW5jZWxsZWQsIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBwcmVzc2luZyBvbiB0aGlzIGVsZW1lbnRcbiAgICBjb25zdCBwb2ludGVyQ2FuY2VsID0gdGhpcy5kaXNwb3NhYmxlcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgb3duZXJEb2N1bWVudCxcbiAgICAgICdwb2ludGVyY2FuY2VsJyxcbiAgICAgIHRoaXMucmVzZXQuYmluZCh0aGlzKSxcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICB0aGlzLmRpc3Bvc2FibGVMaXN0ZW5lcnMgPSBbcG9pbnRlclVwLCBwb2ludGVyTW92ZSwgcG9pbnRlckNhbmNlbF07XG4gIH1cblxuICBwcml2YXRlIG9uUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICE9PSBldmVudC50YXJnZXQgJiZcbiAgICAgICF0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICApIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ export const defaultTooltipConfig = {
12
12
  showDelay: 0,
13
13
  hideDelay: 0,
14
14
  flip: true,
15
- container: document.body,
15
+ container: null,
16
16
  };
17
17
  export const NgpTooltipConfigToken = new InjectionToken('NgpTooltipConfigToken');
18
18
  /**
@@ -35,4 +35,4 @@ export function provideTooltipConfig(config) {
35
35
  export function injectTooltipConfig() {
36
36
  return inject(NgpTooltipConfigToken, { optional: true }) ?? defaultTooltipConfig;
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL2NvbmZpZy90b29sdGlwLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXlDakUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsQ0FBQztJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLFFBQVEsQ0FBQyxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsdUJBQXVCLENBQUMsQ0FBQztBQUVuRzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWlDO0lBQ3BFLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLEVBQUUsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sRUFBRTtTQUNqRDtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIFBsYWNlbWVudCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ncFRvb2x0aXBDb25maWcge1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBvZmZzZXQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIG9mZnNldDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHBsYWNlbWVudCBvZiB0aGUgdG9vbHRpcCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICogQGRlZmF1bHQgJ3RvcCdcbiAgICovXG4gIHBsYWNlbWVudDogUGxhY2VtZW50O1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGRlbGF5IGJlZm9yZSB0aGUgdG9vbHRpcCBpcyBzaG93bi5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgc2hvd0RlbGF5OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGhpZGRlbi5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgaGlkZURlbGF5OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZSB3aGV0aGVyIHRoZSB0b29sdGlwIHNob3VsZCBmbGlwIHdoZW4gdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IgdGhlIHRvb2x0aXAuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGZsaXA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgY29udGFpbmVyIGluIHRvIHdoaWNoIHRoZSB0b29sdGlwIHNob3VsZCBiZSBhdHRhY2hlZC5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuYm9keVxuICAgKi9cbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUb29sdGlwQ29uZmlnOiBOZ3BUb29sdGlwQ29uZmlnID0ge1xuICBvZmZzZXQ6IDQsXG4gIHBsYWNlbWVudDogJ3RvcCcsXG4gIHNob3dEZWxheTogMCxcbiAgaGlkZURlbGF5OiAwLFxuICBmbGlwOiB0cnVlLFxuICBjb250YWluZXI6IGRvY3VtZW50LmJvZHksXG59O1xuXG5leHBvcnQgY29uc3QgTmdwVG9vbHRpcENvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncFRvb2x0aXBDb25maWc+KCdOZ3BUb29sdGlwQ29uZmlnVG9rZW4nKTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBkZWZhdWx0IFRvb2x0aXAgY29uZmlndXJhdGlvblxuICogQHBhcmFtIGNvbmZpZyBUaGUgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUb29sdGlwQ29uZmlnKGNvbmZpZzogUGFydGlhbDxOZ3BUb29sdGlwQ29uZmlnPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5ncFRvb2x0aXBDb25maWdUb2tlbixcbiAgICAgIHVzZVZhbHVlOiB7IC4uLmRlZmF1bHRUb29sdGlwQ29uZmlnLCAuLi5jb25maWcgfSxcbiAgICB9LFxuICBdO1xufVxuXG4vKipcbiAqIEluamVjdCB0aGUgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgZ2xvYmFsIFRvb2x0aXAgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VG9vbHRpcENvbmZpZygpOiBOZ3BUb29sdGlwQ29uZmlnIHtcbiAgcmV0dXJuIGluamVjdChOZ3BUb29sdGlwQ29uZmlnVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gZGVmYXVsdFRvb2x0aXBDb25maWc7XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL2NvbmZpZy90b29sdGlwLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXlDakUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsQ0FBQztJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFtQix1QkFBdUIsQ0FBQyxDQUFDO0FBRW5HOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBaUM7SUFDcEUsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixRQUFRLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxFQUFFO1NBQ2pEO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgUGxhY2VtZW50IH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdwVG9vbHRpcENvbmZpZyB7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG9mZnNldCBvZiB0aGUgdG9vbHRpcCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICogQGRlZmF1bHQgNFxuICAgKi9cbiAgb2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSB0cmlnZ2VyLlxuICAgKiBAZGVmYXVsdCAndG9wJ1xuICAgKi9cbiAgcGxhY2VtZW50OiBQbGFjZW1lbnQ7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIHNob3duLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBzaG93RGVsYXk6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBkZWxheSBiZWZvcmUgdGhlIHRvb2x0aXAgaXMgaGlkZGVuLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBoaWRlRGVsYXk6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lIHdoZXRoZXIgdGhlIHRvb2x0aXAgc2hvdWxkIGZsaXAgd2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgdG9vbHRpcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmxpcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBjb250YWluZXIgaW4gdG8gd2hpY2ggdGhlIHRvb2x0aXAgc2hvdWxkIGJlIGF0dGFjaGVkLlxuICAgKiBAZGVmYXVsdCBkb2N1bWVudC5ib2R5XG4gICAqL1xuICBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUb29sdGlwQ29uZmlnOiBOZ3BUb29sdGlwQ29uZmlnID0ge1xuICBvZmZzZXQ6IDQsXG4gIHBsYWNlbWVudDogJ3RvcCcsXG4gIHNob3dEZWxheTogMCxcbiAgaGlkZURlbGF5OiAwLFxuICBmbGlwOiB0cnVlLFxuICBjb250YWluZXI6IG51bGwsXG59O1xuXG5leHBvcnQgY29uc3QgTmdwVG9vbHRpcENvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncFRvb2x0aXBDb25maWc+KCdOZ3BUb29sdGlwQ29uZmlnVG9rZW4nKTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBkZWZhdWx0IFRvb2x0aXAgY29uZmlndXJhdGlvblxuICogQHBhcmFtIGNvbmZpZyBUaGUgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUb29sdGlwQ29uZmlnKGNvbmZpZzogUGFydGlhbDxOZ3BUb29sdGlwQ29uZmlnPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5ncFRvb2x0aXBDb25maWdUb2tlbixcbiAgICAgIHVzZVZhbHVlOiB7IC4uLmRlZmF1bHRUb29sdGlwQ29uZmlnLCAuLi5jb25maWcgfSxcbiAgICB9LFxuICBdO1xufVxuXG4vKipcbiAqIEluamVjdCB0aGUgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgZ2xvYmFsIFRvb2x0aXAgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VG9vbHRpcENvbmZpZygpOiBOZ3BUb29sdGlwQ29uZmlnIHtcbiAgcmV0dXJuIGluamVjdChOZ3BUb29sdGlwQ29uZmlnVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gZGVmYXVsdFRvb2x0aXBDb25maWc7XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
2
+ import { DOCUMENT } from '@angular/common';
2
3
  import { Directive, ElementRef, Injector, ViewContainerRef, booleanAttribute, computed, inject, input, model, numberAttribute, signal, } from '@angular/core';
3
4
  import { autoUpdate, computePosition, flip, offset, shift, } from '@floating-ui/dom';
4
5
  import { injectDisposables, onBooleanChange } from 'ng-primitives/utils';
@@ -15,6 +16,10 @@ export class NgpTooltipTrigger {
15
16
  * Access the view container ref.
16
17
  */
17
18
  this.viewContainerRef = inject(ViewContainerRef);
19
+ /**
20
+ * Access the document.
21
+ */
22
+ this.document = inject(DOCUMENT);
18
23
  /**
19
24
  * Access the injector.
20
25
  */
@@ -145,7 +150,7 @@ export class NgpTooltipTrigger {
145
150
  }
146
151
  createTooltip() {
147
152
  const portal = new TemplatePortal(this.tooltip(), this.viewContainerRef, undefined, this.injector);
148
- const domOutlet = new DomPortalOutlet(this.container(), undefined, undefined, Injector.create({
153
+ const domOutlet = new DomPortalOutlet(this.container() ?? this.document.body, undefined, undefined, Injector.create({
149
154
  parent: this.injector,
150
155
  providers: [provideTooltipTrigger(this)],
151
156
  }));
@@ -187,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
187
192
  },
188
193
  }]
189
194
  }], ctorParameters: () => [] });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC10cmlnZ2VyL3Rvb2x0aXAtdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixRQUFRLEVBR1IsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsVUFBVSxFQUNWLGVBQWUsRUFDZixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFnQnhGLE1BQU0sT0FBTyxpQkFBaUI7SUE0STVCO1FBM0lBOztXQUVHO1FBQ2MsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBRTNEOztXQUVHO1FBQ2MscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0Q7O1dBRUc7UUFDYyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdDOztXQUVHO1FBQ2MsV0FBTSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFFaEQ7O1dBRUc7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O21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLG1CQUFtQixFQUFFLENBQUM7b0JBQ2hGLElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxTQUFTO3dCQUM5QixzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxjQUFjLEVBQUUsZ0JBQWdCO3dCQUNoQyxjQUFjLEVBQUUsaUJBQWlCO3dCQUNqQyxTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixRQUFRLEVBQUUsaUJBQWlCO3FCQUM1QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEb21Qb3J0YWxPdXRsZXQsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWlkZGxld2FyZSxcbiAgUGxhY2VtZW50LFxuICBhdXRvVXBkYXRlLFxuICBjb21wdXRlUG9zaXRpb24sXG4gIGZsaXAsXG4gIG9mZnNldCxcbiAgc2hpZnQsXG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgaW5qZWN0RGlzcG9zYWJsZXMsIG9uQm9vbGVhbkNoYW5nZSB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0VG9vbHRpcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90b29sdGlwLmNvbmZpZyc7XG5pbXBvcnQgeyBOZ3BUb29sdGlwVHJpZ2dlclRva2VuLCBwcm92aWRlVG9vbHRpcFRyaWdnZXIgfSBmcm9tICcuL3Rvb2x0aXAtdHJpZ2dlci50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BUb29sdGlwVHJpZ2dlcl0nLFxuICBleHBvcnRBczogJ25ncFRvb2x0aXBUcmlnZ2VyJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BUb29sdGlwVHJpZ2dlclRva2VuLCB1c2VFeGlzdGluZzogTmdwVG9vbHRpcFRyaWdnZXIgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICcobW91c2VlbnRlciknOiAnb3Blbi5zZXQodHJ1ZSknLFxuICAgICcobW91c2VsZWF2ZSknOiAnb3Blbi5zZXQoZmFsc2UpJyxcbiAgICAnKGZvY3VzKSc6ICdvcGVuLnNldCh0cnVlKScsXG4gICAgJyhibHVyKSc6ICdvcGVuLnNldChmYWxzZSknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIHRyaWdnZXIgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSB2aWV3IGNvbnRhaW5lciByZWYuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgaW5qZWN0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBnbG9iYWwgdG9vbHRpcCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RUb29sdGlwQ29uZmlnKCk7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGlzcG9zYWJsZSB1dGlsaXRpZXNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzcG9zYWJsZXMgPSBpbmplY3REaXNwb3NhYmxlcygpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIHRvb2x0aXAgdGVtcGxhdGUgcmVmLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbHRpcCA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+Pih7XG4gICAgYWxpYXM6ICduZ3BUb29sdGlwVHJpZ2dlcicsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlbiBzdGF0ZSBvZiB0aGUgdG9vbHRpcC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9wZW4gPSBtb2RlbDxib29sZWFuPihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJPcGVuJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiB0aGUgdHJpZ2dlciBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSB0cmlnZ2VyLlxuICAgKiBAZGVmYXVsdCAndG9wJ1xuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2VtZW50ID0gaW5wdXQ8UGxhY2VtZW50Pih0aGlzLmNvbmZpZy5wbGFjZW1lbnQsIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyUGxhY2VtZW50JyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgb2Zmc2V0IG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSB0cmlnZ2VyLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBvZmZzZXQgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0Pih0aGlzLmNvbmZpZy5vZmZzZXQsIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyT2Zmc2V0JyxcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd0RlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4odGhpcy5jb25maWcuc2hvd0RlbGF5LCB7XG4gICAgYWxpYXM6ICduZ3BUb29sdGlwVHJpZ2dlclNob3dEZWxheScsXG4gICAgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGRlbGF5IGJlZm9yZSB0aGUgdG9vbHRpcCBpcyBoaWRkZW4uXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IGhpZGVEZWxheSA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KHRoaXMuY29uZmlnLmhpZGVEZWxheSwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJIaWRlRGVsYXknLFxuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHdoZXRoZXIgdGhlIHRvb2x0aXAgc2hvdWxkIGZsaXAgd2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgdG9vbHRpcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxpcCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4odGhpcy5jb25maWcuZmxpcCwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJGbGlwJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGNvbnRhaW5lciBpbiB3aGljaCB0aGUgdG9vbHRpcCBzaG91bGQgYmUgYXR0YWNoZWQuXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmJvZHlcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lciA9IGlucHV0PEhUTUxFbGVtZW50Pih0aGlzLmNvbmZpZy5jb250YWluZXIsIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyQ29udGFpbmVyJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSB0b29sdGlwIHZpZXcgcmVmLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRGVyaXZlIHRoZSB0b29sdGlwIG1pZGRsZXdhcmUgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbWlkZGxld2FyZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlW10gPSBbb2Zmc2V0KHRoaXMub2Zmc2V0KCkpLCBzaGlmdCgpXTtcblxuICAgIGlmICh0aGlzLmZsaXAoKSkge1xuICAgICAgbWlkZGxld2FyZS5wdXNoKGZsaXAoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pZGRsZXdhcmU7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTdG9yZSB0aGUgY29tcHV0ZWQgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgcG9zaXRpb24gPSBzaWduYWw8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmUgdGhlIHN0YXRlIG9mIHRoZSB0b29sdGlwLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPFRvb2x0aXBTdGF0ZT4oJ2Nsb3NlZCcpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcG9zZSBmdW5jdGlvbiB0byBzdG9wIGNvbXB1dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqL1xuICBwcml2YXRlIGRpc3Bvc2U/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGFueSB0aW1lIHRoZSBvcGVuIHN0YXRlIGNoYW5nZXMgdGhlbiBzaG93IG9yIGhpZGUgdGhlIHRvb2x0aXBcbiAgICBvbkJvb2xlYW5DaGFuZ2UodGhpcy5vcGVuLCB0aGlzLnNob3cuYmluZCh0aGlzKSwgdGhpcy5oaWRlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIC8vIGlmIHRoZSB0cmlnZ2VyIGlzIGRpc2FibGVkIG9yIHRoZSB0b29sdGlwIGlzIGFscmVhZHkgb3BlbiB0aGVuIGRvIG5vdCBzaG93IHRoZSB0b29sdGlwXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnN0YXRlKCkgPT09ICdvcGVuJyB8fCB0aGlzLnN0YXRlKCkgPT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUuc2V0KCdvcGVuaW5nJyk7XG4gICAgdGhpcy5kaXNwb3NhYmxlcy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY3JlYXRlVG9vbHRpcCgpLCB0aGlzLnNob3dEZWxheSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZSgpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgdHJpZ2dlciBpcyBkaXNhYmxlZCBvciB0aGUgdG9vbHRpcCBpcyBhbHJlYWR5IGNsb3NlZCB0aGVuIGRvIG5vdCBoaWRlIHRoZSB0b29sdGlwXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnN0YXRlKCkgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUoKSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZS5zZXQoJ2Nsb3NpbmcnKTtcbiAgICB0aGlzLmRpc3Bvc2FibGVzLnNldFRpbWVvdXQoKCkgPT4gdGhpcy5kZXN0cm95VG9vbHRpcCgpLCB0aGlzLmhpZGVEZWxheSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLnRvb2x0aXAoKSxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgKTtcblxuICAgIGNvbnN0IGRvbU91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICB0aGlzLmNvbnRhaW5lcigpLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtwcm92aWRlVG9vbHRpcFRyaWdnZXIodGhpcyldLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMudmlld1JlZiA9IGRvbU91dGxldC5hdHRhY2gocG9ydGFsKTtcbiAgICB0aGlzLnZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgY29uc3Qgb3V0bGV0RWxlbWVudCA9IHRoaXMudmlld1JlZi5yb290Tm9kZXNbMF07XG5cbiAgICB0aGlzLmRpc3Bvc2UgPSBhdXRvVXBkYXRlKHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LCBvdXRsZXRFbGVtZW50LCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGF3YWl0IGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudCwgb3V0bGV0RWxlbWVudCwge1xuICAgICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50KCksXG4gICAgICAgIG1pZGRsZXdhcmU6IHRoaXMubWlkZGxld2FyZSgpLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucG9zaXRpb24uc2V0KHsgeDogcG9zaXRpb24ueCwgeTogcG9zaXRpb24ueSB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhdGUuc2V0KCdvcGVuJyk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMudmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMudmlld1JlZiA9IG51bGw7XG4gICAgdGhpcy5kaXNwb3NlPy4oKTtcbiAgICB0aGlzLnN0YXRlLnNldCgnY2xvc2VkJyk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVG9vbHRpcFN0YXRlID0gJ2Nsb3NlZCcgfCAnb3BlbmluZycgfCAnb3BlbicgfCAnY2xvc2luZyc7XG4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC10cmlnZ2VyL3Rvb2x0aXAtdHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBRVYsUUFBUSxFQUdSLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFVBQVUsRUFDVixlQUFlLEVBQ2YsSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBZ0J4RixNQUFNLE9BQU8saUJBQWlCO0lBaUo1QjtRQWhKQTs7V0FFRztRQUNjLFlBQU8sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNjLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdEOztXQUVHO1FBQ2MsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3Qzs7V0FFRztR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Q0FBQzs4R0F0TlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsdW1EQVZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDOzsyRkFVckUsaUJBQWlCO2tCQWQ3QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLG1CQUFtQixFQUFFLENBQUM7b0JBQ2hGLElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxTQUFTO3dCQUM5QixzQkFBc0IsRUFBRSxZQUFZO3dCQUNwQyxjQUFjLEVBQUUsZ0JBQWdCO3dCQUNoQyxjQUFjLEVBQUUsaUJBQWlCO3dCQUNqQyxTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixRQUFRLEVBQUUsaUJBQWlCO3FCQUM1QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEb21Qb3J0YWxPdXRsZXQsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWlkZGxld2FyZSxcbiAgUGxhY2VtZW50LFxuICBhdXRvVXBkYXRlLFxuICBjb21wdXRlUG9zaXRpb24sXG4gIGZsaXAsXG4gIG9mZnNldCxcbiAgc2hpZnQsXG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgaW5qZWN0RGlzcG9zYWJsZXMsIG9uQm9vbGVhbkNoYW5nZSB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0VG9vbHRpcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90b29sdGlwLmNvbmZpZyc7XG5pbXBvcnQgeyBOZ3BUb29sdGlwVHJpZ2dlclRva2VuLCBwcm92aWRlVG9vbHRpcFRyaWdnZXIgfSBmcm9tICcuL3Rvb2x0aXAtdHJpZ2dlci50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BUb29sdGlwVHJpZ2dlcl0nLFxuICBleHBvcnRBczogJ25ncFRvb2x0aXBUcmlnZ2VyJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BUb29sdGlwVHJpZ2dlclRva2VuLCB1c2VFeGlzdGluZzogTmdwVG9vbHRpcFRyaWdnZXIgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICcobW91c2VlbnRlciknOiAnb3Blbi5zZXQodHJ1ZSknLFxuICAgICcobW91c2VsZWF2ZSknOiAnb3Blbi5zZXQoZmFsc2UpJyxcbiAgICAnKGZvY3VzKSc6ICdvcGVuLnNldCh0cnVlKScsXG4gICAgJyhibHVyKSc6ICdvcGVuLnNldChmYWxzZSknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIHRyaWdnZXIgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSB2aWV3IGNvbnRhaW5lciByZWYuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZG9jdW1lbnQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBpbmplY3Rvci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGdsb2JhbCB0b29sdGlwIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdFRvb2x0aXBDb25maWcoKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkaXNwb3NhYmxlIHV0aWxpdGllc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNwb3NhYmxlcyA9IGluamVjdERpc3Bvc2FibGVzKCk7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgdG9vbHRpcCB0ZW1wbGF0ZSByZWYuXG4gICAqL1xuICByZWFkb25seSB0b29sdGlwID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8dm9pZD4+KHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVuIHN0YXRlIG9mIHRoZSB0b29sdGlwLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbiA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BUb29sdGlwVHJpZ2dlck9wZW4nLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIGlmIHRoZSB0cmlnZ2VyIHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAqIEBkZWZhdWx0ICd0b3AnXG4gICAqL1xuICByZWFkb25seSBwbGFjZW1lbnQgPSBpbnB1dDxQbGFjZW1lbnQ+KHRoaXMuY29uZmlnLnBsYWNlbWVudCwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJQbGFjZW1lbnQnLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBvZmZzZXQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG9mZnNldCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KHRoaXMuY29uZmlnLm9mZnNldCwge1xuICAgIGFsaWFzOiAnbmdwVG9vbHRpcFRyaWdnZXJPZmZzZXQnLFxuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBkZWxheSBiZWZvcmUgdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBzaG93RGVsYXkgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0Pih0aGlzLmNvbmZpZy5zaG93RGVsYXksIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyU2hvd0RlbGF5JyxcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGhpZGRlbi5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgaGlkZURlbGF5ID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4odGhpcy5jb25maWcuaGlkZURlbGF5LCB7XG4gICAgYWxpYXM6ICduZ3BUb29sdGlwVHJpZ2dlckhpZGVEZWxheScsXG4gICAgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgd2hldGhlciB0aGUgdG9vbHRpcCBzaG91bGQgZmxpcCB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSB0b29sdGlwLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmbGlwID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0Pih0aGlzLmNvbmZpZy5mbGlwLCB7XG4gICAgYWxpYXM6ICduZ3BUb29sdGlwVHJpZ2dlckZsaXAnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgY29udGFpbmVyIGluIHdoaWNoIHRoZSB0b29sdGlwIHNob3VsZCBiZSBhdHRhY2hlZC5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuYm9keVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBudWxsPih0aGlzLmNvbmZpZy5jb250YWluZXIsIHtcbiAgICBhbGlhczogJ25ncFRvb2x0aXBUcmlnZ2VyQ29udGFpbmVyJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSB0b29sdGlwIHZpZXcgcmVmLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRGVyaXZlIHRoZSB0b29sdGlwIG1pZGRsZXdhcmUgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbWlkZGxld2FyZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlW10gPSBbb2Zmc2V0KHRoaXMub2Zmc2V0KCkpLCBzaGlmdCgpXTtcblxuICAgIGlmICh0aGlzLmZsaXAoKSkge1xuICAgICAgbWlkZGxld2FyZS5wdXNoKGZsaXAoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pZGRsZXdhcmU7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBTdG9yZSB0aGUgY29tcHV0ZWQgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgcG9zaXRpb24gPSBzaWduYWw8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmUgdGhlIHN0YXRlIG9mIHRoZSB0b29sdGlwLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPFRvb2x0aXBTdGF0ZT4oJ2Nsb3NlZCcpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcG9zZSBmdW5jdGlvbiB0byBzdG9wIGNvbXB1dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqL1xuICBwcml2YXRlIGRpc3Bvc2U/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGFueSB0aW1lIHRoZSBvcGVuIHN0YXRlIGNoYW5nZXMgdGhlbiBzaG93IG9yIGhpZGUgdGhlIHRvb2x0aXBcbiAgICBvbkJvb2xlYW5DaGFuZ2UodGhpcy5vcGVuLCB0aGlzLnNob3cuYmluZCh0aGlzKSwgdGhpcy5oaWRlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIC8vIGlmIHRoZSB0cmlnZ2VyIGlzIGRpc2FibGVkIG9yIHRoZSB0b29sdGlwIGlzIGFscmVhZHkgb3BlbiB0aGVuIGRvIG5vdCBzaG93IHRoZSB0b29sdGlwXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnN0YXRlKCkgPT09ICdvcGVuJyB8fCB0aGlzLnN0YXRlKCkgPT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUuc2V0KCdvcGVuaW5nJyk7XG4gICAgdGhpcy5kaXNwb3NhYmxlcy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY3JlYXRlVG9vbHRpcCgpLCB0aGlzLnNob3dEZWxheSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZSgpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgdHJpZ2dlciBpcyBkaXNhYmxlZCBvciB0aGUgdG9vbHRpcCBpcyBhbHJlYWR5IGNsb3NlZCB0aGVuIGRvIG5vdCBoaWRlIHRoZSB0b29sdGlwXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnN0YXRlKCkgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUoKSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZS5zZXQoJ2Nsb3NpbmcnKTtcbiAgICB0aGlzLmRpc3Bvc2FibGVzLnNldFRpbWVvdXQoKCkgPT4gdGhpcy5kZXN0cm95VG9vbHRpcCgpLCB0aGlzLmhpZGVEZWxheSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICB0aGlzLnRvb2x0aXAoKSxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgKTtcblxuICAgIGNvbnN0IGRvbU91dGxldCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICB0aGlzLmNvbnRhaW5lcigpID8/IHRoaXMuZG9jdW1lbnQuYm9keSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZVRvb2x0aXBUcmlnZ2VyKHRoaXMpXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLnZpZXdSZWYgPSBkb21PdXRsZXQuYXR0YWNoKHBvcnRhbCk7XG4gICAgdGhpcy52aWV3UmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGNvbnN0IG91dGxldEVsZW1lbnQgPSB0aGlzLnZpZXdSZWYucm9vdE5vZGVzWzBdO1xuXG4gICAgdGhpcy5kaXNwb3NlID0gYXV0b1VwZGF0ZSh0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudCwgb3V0bGV0RWxlbWVudCwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBhd2FpdCBjb21wdXRlUG9zaXRpb24odGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIG91dGxldEVsZW1lbnQsIHtcbiAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCgpLFxuICAgICAgICBtaWRkbGV3YXJlOiB0aGlzLm1pZGRsZXdhcmUoKSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uLnNldCh7IHg6IHBvc2l0aW9uLngsIHk6IHBvc2l0aW9uLnkgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlLnNldCgnb3BlbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95VG9vbHRpcCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xuICAgIHRoaXMuZGlzcG9zZT8uKCk7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ2Nsb3NlZCcpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBTdGF0ZSA9ICdjbG9zZWQnIHwgJ29wZW5pbmcnIHwgJ29wZW4nIHwgJ2Nsb3NpbmcnO1xuIl19
@@ -4,12 +4,10 @@ import { uniqueId, onChange } from 'ng-primitives/utils';
4
4
  import { hasModifierKey } from '@angular/cdk/keycodes';
5
5
  import { Subject, defer } from 'rxjs';
6
6
  import { FocusMonitor } from '@angular/cdk/a11y';
7
- import * as i1 from 'ng-primitives/button';
8
- import { NgpButton } from 'ng-primitives/button';
9
7
  import { Overlay, OverlayContainer, OverlayConfig } from '@angular/cdk/overlay';
10
8
  import { TemplatePortal } from '@angular/cdk/portal';
11
9
  import { startWith } from 'rxjs/operators';
12
- import * as i1$1 from 'ng-primitives/focus-trap';
10
+ import * as i1 from 'ng-primitives/focus-trap';
13
11
  import { NgpFocusTrap } from 'ng-primitives/focus-trap';
14
12
 
15
13
  const defaultDialogConfig = {
@@ -499,7 +497,7 @@ class NgpDialogTrigger {
499
497
  });
500
498
  }
501
499
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialogTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
502
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }], exportAs: ["ngpDialogTrigger"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
500
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialogTrigger, isStandalone: true, selector: "[ngpDialogTrigger]", inputs: { template: { classPropertyName: "template", publicName: "ngpDialogTrigger", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "launch()" } }, providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }], exportAs: ["ngpDialogTrigger"], ngImport: i0 }); }
503
501
  }
504
502
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialogTrigger, decorators: [{
505
503
  type: Directive,
@@ -508,7 +506,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
508
506
  selector: '[ngpDialogTrigger]',
509
507
  exportAs: 'ngpDialogTrigger',
510
508
  providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }],
511
- hostDirectives: [NgpButton],
512
509
  }]
513
510
  }], propDecorators: { launch: [{
514
511
  type: HostListener,
@@ -564,7 +561,7 @@ class NgpDialog {
564
561
  this.describedBy.update(ids => ids.filter(i => i !== id));
565
562
  }
566
563
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialog, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
567
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialog, isStandalone: true, selector: "[ngpDialog]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "ngpDialogRole", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "ngpDialogModal", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "onClick($event)" }, properties: { "id": "id()", "attr.role": "role()", "attr.aria-modal": "modal()", "attr.aria-labelledby": "labelledBy().join(\" \")", "attr.aria-describedby": "describedBy().join(\" \")" } }, providers: [{ provide: NgpDialogToken, useExisting: NgpDialog }], exportAs: ["ngpDialog"], hostDirectives: [{ directive: i1$1.NgpFocusTrap }], ngImport: i0 }); }
564
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpDialog, isStandalone: true, selector: "[ngpDialog]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "ngpDialogRole", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "ngpDialogModal", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "onClick($event)" }, properties: { "id": "id()", "attr.role": "role()", "attr.aria-modal": "modal()", "attr.aria-labelledby": "labelledBy().join(\" \")", "attr.aria-describedby": "describedBy().join(\" \")" } }, providers: [{ provide: NgpDialogToken, useExisting: NgpDialog }], exportAs: ["ngpDialog"], hostDirectives: [{ directive: i1.NgpFocusTrap }], ngImport: i0 }); }
568
565
  }
569
566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpDialog, decorators: [{
570
567
  type: Directive,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-dialog.mjs","sources":["../../../../packages/ng-primitives/dialog/src/config/dialog.config.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-description/dialog-description.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-description/dialog-description.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog-ref.ts","../../../../packages/ng-primitives/dialog/src/dialog-overlay/dialog-overlay.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-overlay/dialog-overlay.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog-title/dialog-title.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-title/dialog-title.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.service.ts","../../../../packages/ng-primitives/dialog/src/dialog-trigger/dialog-trigger.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-trigger/dialog-trigger.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.directive.ts","../../../../packages/ng-primitives/dialog/src/index.ts","../../../../packages/ng-primitives/dialog/src/ng-primitives-dialog.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken, Injector, Provider, ViewContainerRef, inject } from '@angular/core';\n\n/** Valid ARIA roles for a dialog. */\nexport type NgpDialogRole = 'dialog' | 'alertdialog';\n\nexport interface NgpDialogConfig {\n /** The view container to attach the dialog to. */\n viewContainerRef?: ViewContainerRef;\n\n /** The injector to use for the dialog. Defaults to the view container's injector.*/\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The role of the dialog. */\n role?: NgpDialogRole;\n\n /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n modal?: boolean;\n\n /** Scroll strategy to be used for the dialog. This determines how the dialog responds to scrolling underneath the panel element. */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user navigates backwards or forwards through browser\n * history.\n */\n closeOnNavigation?: boolean;\n}\n\nexport const defaultDialogConfig: NgpDialogConfig = {\n role: 'dialog',\n modal: true,\n closeOnNavigation: true,\n};\n\nexport const NgpDialogConfigToken = new InjectionToken<NgpDialogConfig>('NgpDialogConfigToken');\n\n/**\n * Provide the default Dialog configuration\n * @param config The Dialog configuration\n * @returns The provider\n */\nexport function provideDialogConfig(config: Partial<NgpDialogConfig>): Provider[] {\n return [\n {\n provide: NgpDialogConfigToken,\n useValue: { ...defaultDialogConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Dialog configuration\n * @returns The global Dialog configuration\n */\nexport function injectDialogConfig(): NgpDialogConfig {\n return inject(NgpDialogConfigToken, { optional: true }) ?? defaultDialogConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialog } from './dialog.directive';\n\nexport const NgpDialogToken = new InjectionToken<NgpDialog>('NgpDialogToken');\n\n/**\n * Inject the Dialog directive instance\n */\nexport function injectDialog(): NgpDialog {\n return inject(NgpDialogToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogDescription } from './dialog-description.directive';\n\nexport const NgpDialogDescriptionToken = new InjectionToken<NgpDialogDescription>(\n 'NgpDialogDescriptionToken',\n);\n\n/**\n * Inject the DialogDescription directive instance\n */\nexport function injectDialogDescription(): NgpDialogDescription {\n return inject(NgpDialogDescriptionToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input, OnDestroy } from '@angular/core';\nimport { onChange, uniqueId } from 'ng-primitives/utils';\nimport { injectDialog } from '../dialog/dialog.token';\nimport { NgpDialogDescriptionToken } from './dialog-description.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogDescription]',\n exportAs: 'ngpDialogDescription',\n providers: [{ provide: NgpDialogDescriptionToken, useExisting: NgpDialogDescription }],\n host: {\n '[id]': 'id()',\n },\n})\nexport class NgpDialogDescription implements OnDestroy {\n /** Access the dialog */\n private readonly dialog = injectDialog();\n\n /** The id of the descriptions. */\n readonly id = input<string>(uniqueId('ngp-dialog-description'));\n\n constructor() {\n onChange(this.id, (id, prevId) => {\n if (prevId) {\n this.dialog.removeDescribedBy(prevId);\n }\n\n if (id) {\n this.dialog.setDescribedBy(id);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dialog.removeDescribedBy(this.id());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { inject } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { NgpDialogConfig } from '../config/dialog.config';\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class NgpDialogRef {\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined;\n\n /** Emits when the dialog has been closed. */\n readonly closed = new Subject<FocusOrigin | null>();\n\n /** Emits when on keyboard events within the dialog. */\n readonly keydownEvents: Observable<KeyboardEvent>;\n\n /** Emits on pointer events that happen outside of the dialog. */\n readonly outsidePointerEvents: Observable<MouseEvent>;\n\n /** Unique ID for the dialog. */\n readonly id: string;\n\n /** Subscription to external detachments of the dialog. */\n private detachSubscription: Subscription;\n\n constructor(\n readonly overlayRef: OverlayRef,\n readonly config: NgpDialogConfig,\n ) {\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n this.id = config.id!; // By the time the dialog is created we are guaranteed to have an ID.\n\n this.keydownEvents.subscribe(event => {\n if (event.key === 'Escape' && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.close('keyboard');\n }\n });\n\n this.detachSubscription = overlayRef.detachments().subscribe(() => this.close());\n }\n\n /**\n * Close the dialog.\n * @param result Optional result to return to the dialog opener.\n * @param options Additional options to customize the closing behavior.\n */\n close(focusOrigin?: FocusOrigin): void {\n this.overlayRef.dispose();\n this.detachSubscription.unsubscribe();\n this.closed.next(focusOrigin ?? null);\n this.closed.complete();\n }\n\n /** Updates the position of the dialog based on the current position strategy. */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n\nexport function injectDialogRef(): NgpDialogRef {\n return inject(NgpDialogRef);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogOverlay } from './dialog-overlay.directive';\n\nexport const NgpDialogOverlayToken = new InjectionToken<NgpDialogOverlay>('NgpDialogOverlayToken');\n\n/**\n * Inject the DialogOverlay directive instance\n */\nexport function injectDialogOverlay(): NgpDialogOverlay {\n return inject(NgpDialogOverlayToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, HostListener } from '@angular/core';\nimport { injectDialogRef } from '../dialog/dialog-ref';\nimport { NgpDialogOverlayToken } from './dialog-overlay.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogOverlay]',\n exportAs: 'ngpDialogOverlay',\n providers: [{ provide: NgpDialogOverlayToken, useExisting: NgpDialogOverlay }],\n})\nexport class NgpDialogOverlay {\n /** Access the dialog ref. */\n private readonly dialogRef = injectDialogRef();\n\n @HostListener('click')\n protected close(): void {\n this.dialogRef.close();\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogTitle } from './dialog-title.directive';\n\nexport const NgpDialogTitleToken = new InjectionToken<NgpDialogTitle>('NgpDialogTitleToken');\n\n/**\n * Inject the DialogTitle directive instance\n */\nexport function injectDialogTitle(): NgpDialogTitle {\n return inject(NgpDialogTitleToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input, OnDestroy } from '@angular/core';\nimport { onChange, uniqueId } from 'ng-primitives/utils';\nimport { injectDialog } from '../dialog/dialog.token';\nimport { NgpDialogTitleToken } from './dialog-title.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogTitle]',\n exportAs: 'ngpDialogTitle',\n providers: [{ provide: NgpDialogTitleToken, useExisting: NgpDialogTitle }],\n host: {\n '[id]': 'id()',\n },\n})\nexport class NgpDialogTitle implements OnDestroy {\n /** Access the dialog. */\n private readonly dialog = injectDialog();\n\n /** The id of the title. */\n readonly id = input<string>(uniqueId('ngp-dialog-title'));\n\n constructor() {\n onChange(this.id, (id, prevId) => {\n if (prevId) {\n this.dialog.removeLabelledBy(prevId);\n }\n\n if (id) {\n this.dialog.setLabelledBy(id);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dialog.removeLabelledBy(this.id());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Overlay, OverlayConfig, OverlayContainer, ScrollStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n OnDestroy,\n StaticProvider,\n TemplateRef,\n inject,\n isDevMode,\n} from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable, Subject, defer } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { NgpDialogConfig, injectDialogConfig } from '../config/dialog.config';\nimport { NgpDialogRef } from './dialog-ref';\n\n/**\n * This is based on the Angular CDK Dialog service.\n * https://github.com/angular/components/blob/main/src/cdk/dialog/dialog.ts\n */\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgpDialogManager implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly defaultOptions = injectDialogConfig();\n private readonly parentDialogManager = inject(NgpDialogManager, {\n optional: true,\n skipSelf: true,\n });\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly scrollStrategy: ScrollStrategy =\n this.defaultOptions.scrollStrategy ?? this.overlay.scrollStrategies.block();\n\n private openDialogsAtThisLevel: NgpDialogRef[] = [];\n private readonly afterAllClosedAtThisLevel = new Subject<void>();\n private readonly afterOpenedAtThisLevel = new Subject<NgpDialogRef>();\n private ariaHiddenElements = new Map<Element, string | null>();\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): readonly NgpDialogRef[] {\n return this.parentDialogManager\n ? this.parentDialogManager.openDialogs\n : this.openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpened(): Subject<NgpDialogRef> {\n return this.parentDialogManager\n ? this.parentDialogManager.afterOpened\n : this.afterOpenedAtThisLevel;\n }\n\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this.getAfterAllClosed()\n : this.getAfterAllClosed().pipe(startWith(undefined)),\n );\n\n /**\n * Opens a modal dialog containing the given template.\n */\n open(templateRef: TemplateRef<NgpDialogContext>, config?: NgpDialogConfig): NgpDialogRef {\n const defaults = this.defaultOptions;\n config = { ...defaults, ...config };\n config.id = config.id ?? uniqueId('ngp-dialog');\n\n if (config.id && this.getDialogById(config.id) && isDevMode()) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayConfig = this.getOverlayConfig(config);\n const overlayRef = this.overlay.create(overlayConfig);\n const dialogRef = new NgpDialogRef(overlayRef, config);\n const injector = this.createInjector(config, dialogRef, undefined);\n const context: NgpDialogContext = {\n $implicit: dialogRef,\n close: dialogRef.close.bind(dialogRef),\n };\n\n overlayRef.attach(new TemplatePortal(templateRef, config.viewContainerRef!, context, injector));\n\n // If this is the first dialog that we're opening, hide all the non-overlay content.\n if (!this.openDialogs.length) {\n this.hideNonDialogContentFromAssistiveTechnology();\n }\n\n (this.openDialogs as NgpDialogRef[]).push(dialogRef);\n dialogRef.closed.subscribe(() => this.removeOpenDialog(dialogRef, true));\n this.afterOpened.next(dialogRef);\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n reverseForEach(this.openDialogs, dialog => dialog.close());\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): NgpDialogRef | undefined {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n\n ngOnDestroy(): void {\n // Make one pass over all the dialogs that need to be untracked, but should not be closed. We\n // want to stop tracking the open dialog even if it hasn't been closed, because the tracking\n // determines when `aria-hidden` is removed from elements outside the dialog.\n reverseForEach(this.openDialogsAtThisLevel, dialog => {\n // Check for `false` specifically since we want `undefined` to be interpreted as `true`.\n this.removeOpenDialog(dialog, false);\n });\n\n // Make a second pass and close the remaining dialogs. We do this second pass in order to\n // correctly dispatch the `afterAllClosed` event in case we have a mixed array of dialogs\n // that should be closed and dialogs that should not.\n reverseForEach(this.openDialogsAtThisLevel, dialog => dialog.close());\n\n this.afterAllClosedAtThisLevel.complete();\n this.afterOpenedAtThisLevel.complete();\n this.openDialogsAtThisLevel = [];\n }\n\n /**\n * Creates an overlay config from a dialog config.\n */\n private getOverlayConfig(config: NgpDialogConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: config.scrollStrategy || this.scrollStrategy,\n hasBackdrop: false,\n disposeOnNavigation: config.closeOnNavigation,\n });\n\n return state;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n */\n private createInjector(\n config: NgpDialogConfig,\n dialogRef: NgpDialogRef,\n fallbackInjector: Injector | undefined,\n ): Injector {\n const userInjector = config.injector || config.viewContainerRef?.injector;\n const providers: StaticProvider[] = [{ provide: NgpDialogRef, useValue: dialogRef }];\n\n return Injector.create({ parent: userInjector || fallbackInjector, providers });\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n */\n private removeOpenDialog(dialogRef: NgpDialogRef, emitEvent: boolean) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n (this.openDialogs as NgpDialogRef[]).splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this.ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this.ariaHiddenElements.clear();\n\n if (emitEvent) {\n this.getAfterAllClosed().next();\n }\n }\n }\n }\n\n /** Hides all of the content that isn't an overlay from assistive technology. */\n private hideNonDialogContentFromAssistiveTechnology() {\n const overlayContainer = this.overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n const sibling = siblings[i];\n\n if (\n sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')\n ) {\n this.ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n private getAfterAllClosed(): Subject<void> {\n const parent = this.parentDialogManager;\n return parent ? parent.getAfterAllClosed() : this.afterAllClosedAtThisLevel;\n }\n}\n\n/**\n * Executes a callback against all elements in an array while iterating in reverse.\n * Useful if the array is being modified as it is being iterated.\n */\nfunction reverseForEach<T>(items: T[] | readonly T[], callback: (current: T) => void) {\n let i = items.length;\n\n while (i--) {\n callback(items[i]);\n }\n}\n\nexport interface NgpDialogContext {\n $implicit: NgpDialogRef;\n close: () => void;\n}\n\nexport function injectDialogManager(): NgpDialogManager {\n return inject(NgpDialogManager);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogTrigger } from './dialog-trigger.directive';\n\nexport const NgpDialogTriggerToken = new InjectionToken<NgpDialogTrigger>('NgpDialogTriggerToken');\n\n/**\n * Inject the DialogTrigger directive instance\n */\nexport function injectDialogTrigger(): NgpDialogTrigger {\n return inject(NgpDialogTriggerToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgpButton } from 'ng-primitives/button';\nimport { NgpDialogRef } from '../dialog/dialog-ref';\nimport { NgpDialogContext, NgpDialogManager } from '../dialog/dialog.service';\nimport { NgpDialogTriggerToken } from './dialog-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogTrigger]',\n exportAs: 'ngpDialogTrigger',\n providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }],\n hostDirectives: [NgpButton],\n})\nexport class NgpDialogTrigger {\n /** Access the dialog manager. */\n private readonly dialogManager = inject(NgpDialogManager);\n\n /** Access the view container ref. */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /** Access the focus monitor. */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /** Access the element ref. */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** The template to launch. */\n readonly template = input.required<TemplateRef<NgpDialogContext>>({\n alias: 'ngpDialogTrigger',\n });\n\n /**\n * Store the dialog ref.\n * @internal\n */\n private dialogRef: NgpDialogRef | null = null;\n\n @HostListener('click')\n protected launch(): void {\n this.dialogRef = this.dialogManager.open(this.template(), {\n viewContainerRef: this.viewContainerRef,\n });\n\n this.dialogRef.closed.subscribe(focusOrigin => {\n this.dialogRef = null;\n // Focus the trigger element after the dialog closes.\n this.focusMonitor.focusVia(this.elementRef.nativeElement, focusOrigin);\n });\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HostListener, input, OnDestroy, signal } from '@angular/core';\nimport { NgpFocusTrap } from 'ng-primitives/focus-trap';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDialogConfig } from '../config/dialog.config';\nimport { injectDialogRef } from './dialog-ref';\nimport { NgpDialogToken } from './dialog.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialog]',\n exportAs: 'ngpDialog',\n providers: [{ provide: NgpDialogToken, useExisting: NgpDialog }],\n hostDirectives: [NgpFocusTrap],\n host: {\n tabindex: '-1',\n '[id]': 'id()',\n '[attr.role]': 'role()',\n '[attr.aria-modal]': 'modal()',\n '[attr.aria-labelledby]': 'labelledBy().join(\" \")',\n '[attr.aria-describedby]': 'describedBy().join(\" \")',\n },\n})\nexport class NgpDialog implements OnDestroy {\n private readonly config = injectDialogConfig();\n\n /** Access the dialog ref */\n private readonly dialogRef = injectDialogRef();\n\n /** The id of the dialog */\n readonly id = input<string>(uniqueId('ngp-dialog'));\n\n /** The dialog role. */\n readonly role = input(this.config.role, {\n alias: 'ngpDialogRole',\n });\n\n /** Whether the dialog is a modal. */\n readonly modal = input<boolean, BooleanInput>(this.config.modal ?? false, {\n alias: 'ngpDialogModal',\n transform: booleanAttribute,\n });\n\n /** The labelledby ids */\n protected readonly labelledBy = signal<string[]>([]);\n\n /** The describedby ids */\n protected readonly describedBy = signal<string[]>([]);\n\n ngOnDestroy(): void {\n this.close();\n }\n\n /** Close the dialog. */\n close(): void {\n this.dialogRef.close();\n }\n\n /** Stop click events from propagating to the overlay */\n @HostListener('click', ['$event'])\n protected onClick(event: Event): void {\n event.stopPropagation();\n }\n\n /** @internal register a labelledby id */\n setLabelledBy(id: string): void {\n this.labelledBy.update(ids => [...ids, id]);\n }\n\n /** @internal register a describedby id */\n setDescribedBy(id: string): void {\n this.describedBy.update(ids => [...ids, id]);\n }\n\n /** @internal remove a labelledby id */\n removeLabelledBy(id: string): void {\n this.labelledBy.update(ids => ids.filter(i => i !== id));\n }\n\n /** @internal remove a describedby id */\n removeDescribedBy(id: string): void {\n this.describedBy.update(ids => ids.filter(i => i !== id));\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpDialogConfig, provideDialogConfig } from './config/dialog.config';\nexport { NgpDialogDescription } from './dialog-description/dialog-description.directive';\nexport { NgpDialogDescriptionToken } from './dialog-description/dialog-description.token';\nexport { NgpDialogOverlay } from './dialog-overlay/dialog-overlay.directive';\nexport { NgpDialogOverlayToken } from './dialog-overlay/dialog-overlay.token';\nexport { NgpDialogTitle } from './dialog-title/dialog-title.directive';\nexport { NgpDialogTitleToken } from './dialog-title/dialog-title.token';\nexport { NgpDialogTrigger } from './dialog-trigger/dialog-trigger.directive';\nexport { NgpDialogTriggerToken } from './dialog-trigger/dialog-trigger.token';\nexport { NgpDialog } from './dialog/dialog.directive';\nexport { NgpDialogToken } from './dialog/dialog.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-dialog.mjs","sources":["../../../../packages/ng-primitives/dialog/src/config/dialog.config.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-description/dialog-description.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-description/dialog-description.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog-ref.ts","../../../../packages/ng-primitives/dialog/src/dialog-overlay/dialog-overlay.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-overlay/dialog-overlay.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog-title/dialog-title.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-title/dialog-title.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.service.ts","../../../../packages/ng-primitives/dialog/src/dialog-trigger/dialog-trigger.token.ts","../../../../packages/ng-primitives/dialog/src/dialog-trigger/dialog-trigger.directive.ts","../../../../packages/ng-primitives/dialog/src/dialog/dialog.directive.ts","../../../../packages/ng-primitives/dialog/src/index.ts","../../../../packages/ng-primitives/dialog/src/ng-primitives-dialog.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken, Injector, Provider, ViewContainerRef, inject } from '@angular/core';\n\n/** Valid ARIA roles for a dialog. */\nexport type NgpDialogRole = 'dialog' | 'alertdialog';\n\nexport interface NgpDialogConfig {\n /** The view container to attach the dialog to. */\n viewContainerRef?: ViewContainerRef;\n\n /** The injector to use for the dialog. Defaults to the view container's injector.*/\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The role of the dialog. */\n role?: NgpDialogRole;\n\n /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n modal?: boolean;\n\n /** Scroll strategy to be used for the dialog. This determines how the dialog responds to scrolling underneath the panel element. */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user navigates backwards or forwards through browser\n * history.\n */\n closeOnNavigation?: boolean;\n}\n\nexport const defaultDialogConfig: NgpDialogConfig = {\n role: 'dialog',\n modal: true,\n closeOnNavigation: true,\n};\n\nexport const NgpDialogConfigToken = new InjectionToken<NgpDialogConfig>('NgpDialogConfigToken');\n\n/**\n * Provide the default Dialog configuration\n * @param config The Dialog configuration\n * @returns The provider\n */\nexport function provideDialogConfig(config: Partial<NgpDialogConfig>): Provider[] {\n return [\n {\n provide: NgpDialogConfigToken,\n useValue: { ...defaultDialogConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Dialog configuration\n * @returns The global Dialog configuration\n */\nexport function injectDialogConfig(): NgpDialogConfig {\n return inject(NgpDialogConfigToken, { optional: true }) ?? defaultDialogConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialog } from './dialog.directive';\n\nexport const NgpDialogToken = new InjectionToken<NgpDialog>('NgpDialogToken');\n\n/**\n * Inject the Dialog directive instance\n */\nexport function injectDialog(): NgpDialog {\n return inject(NgpDialogToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogDescription } from './dialog-description.directive';\n\nexport const NgpDialogDescriptionToken = new InjectionToken<NgpDialogDescription>(\n 'NgpDialogDescriptionToken',\n);\n\n/**\n * Inject the DialogDescription directive instance\n */\nexport function injectDialogDescription(): NgpDialogDescription {\n return inject(NgpDialogDescriptionToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input, OnDestroy } from '@angular/core';\nimport { onChange, uniqueId } from 'ng-primitives/utils';\nimport { injectDialog } from '../dialog/dialog.token';\nimport { NgpDialogDescriptionToken } from './dialog-description.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogDescription]',\n exportAs: 'ngpDialogDescription',\n providers: [{ provide: NgpDialogDescriptionToken, useExisting: NgpDialogDescription }],\n host: {\n '[id]': 'id()',\n },\n})\nexport class NgpDialogDescription implements OnDestroy {\n /** Access the dialog */\n private readonly dialog = injectDialog();\n\n /** The id of the descriptions. */\n readonly id = input<string>(uniqueId('ngp-dialog-description'));\n\n constructor() {\n onChange(this.id, (id, prevId) => {\n if (prevId) {\n this.dialog.removeDescribedBy(prevId);\n }\n\n if (id) {\n this.dialog.setDescribedBy(id);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dialog.removeDescribedBy(this.id());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { inject } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { NgpDialogConfig } from '../config/dialog.config';\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class NgpDialogRef {\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined;\n\n /** Emits when the dialog has been closed. */\n readonly closed = new Subject<FocusOrigin | null>();\n\n /** Emits when on keyboard events within the dialog. */\n readonly keydownEvents: Observable<KeyboardEvent>;\n\n /** Emits on pointer events that happen outside of the dialog. */\n readonly outsidePointerEvents: Observable<MouseEvent>;\n\n /** Unique ID for the dialog. */\n readonly id: string;\n\n /** Subscription to external detachments of the dialog. */\n private detachSubscription: Subscription;\n\n constructor(\n readonly overlayRef: OverlayRef,\n readonly config: NgpDialogConfig,\n ) {\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n this.id = config.id!; // By the time the dialog is created we are guaranteed to have an ID.\n\n this.keydownEvents.subscribe(event => {\n if (event.key === 'Escape' && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.close('keyboard');\n }\n });\n\n this.detachSubscription = overlayRef.detachments().subscribe(() => this.close());\n }\n\n /**\n * Close the dialog.\n * @param result Optional result to return to the dialog opener.\n * @param options Additional options to customize the closing behavior.\n */\n close(focusOrigin?: FocusOrigin): void {\n this.overlayRef.dispose();\n this.detachSubscription.unsubscribe();\n this.closed.next(focusOrigin ?? null);\n this.closed.complete();\n }\n\n /** Updates the position of the dialog based on the current position strategy. */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n\nexport function injectDialogRef(): NgpDialogRef {\n return inject(NgpDialogRef);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogOverlay } from './dialog-overlay.directive';\n\nexport const NgpDialogOverlayToken = new InjectionToken<NgpDialogOverlay>('NgpDialogOverlayToken');\n\n/**\n * Inject the DialogOverlay directive instance\n */\nexport function injectDialogOverlay(): NgpDialogOverlay {\n return inject(NgpDialogOverlayToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, HostListener } from '@angular/core';\nimport { injectDialogRef } from '../dialog/dialog-ref';\nimport { NgpDialogOverlayToken } from './dialog-overlay.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogOverlay]',\n exportAs: 'ngpDialogOverlay',\n providers: [{ provide: NgpDialogOverlayToken, useExisting: NgpDialogOverlay }],\n})\nexport class NgpDialogOverlay {\n /** Access the dialog ref. */\n private readonly dialogRef = injectDialogRef();\n\n @HostListener('click')\n protected close(): void {\n this.dialogRef.close();\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogTitle } from './dialog-title.directive';\n\nexport const NgpDialogTitleToken = new InjectionToken<NgpDialogTitle>('NgpDialogTitleToken');\n\n/**\n * Inject the DialogTitle directive instance\n */\nexport function injectDialogTitle(): NgpDialogTitle {\n return inject(NgpDialogTitleToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input, OnDestroy } from '@angular/core';\nimport { onChange, uniqueId } from 'ng-primitives/utils';\nimport { injectDialog } from '../dialog/dialog.token';\nimport { NgpDialogTitleToken } from './dialog-title.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogTitle]',\n exportAs: 'ngpDialogTitle',\n providers: [{ provide: NgpDialogTitleToken, useExisting: NgpDialogTitle }],\n host: {\n '[id]': 'id()',\n },\n})\nexport class NgpDialogTitle implements OnDestroy {\n /** Access the dialog. */\n private readonly dialog = injectDialog();\n\n /** The id of the title. */\n readonly id = input<string>(uniqueId('ngp-dialog-title'));\n\n constructor() {\n onChange(this.id, (id, prevId) => {\n if (prevId) {\n this.dialog.removeLabelledBy(prevId);\n }\n\n if (id) {\n this.dialog.setLabelledBy(id);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dialog.removeLabelledBy(this.id());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Overlay, OverlayConfig, OverlayContainer, ScrollStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n OnDestroy,\n StaticProvider,\n TemplateRef,\n inject,\n isDevMode,\n} from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable, Subject, defer } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { NgpDialogConfig, injectDialogConfig } from '../config/dialog.config';\nimport { NgpDialogRef } from './dialog-ref';\n\n/**\n * This is based on the Angular CDK Dialog service.\n * https://github.com/angular/components/blob/main/src/cdk/dialog/dialog.ts\n */\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgpDialogManager implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly defaultOptions = injectDialogConfig();\n private readonly parentDialogManager = inject(NgpDialogManager, {\n optional: true,\n skipSelf: true,\n });\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly scrollStrategy: ScrollStrategy =\n this.defaultOptions.scrollStrategy ?? this.overlay.scrollStrategies.block();\n\n private openDialogsAtThisLevel: NgpDialogRef[] = [];\n private readonly afterAllClosedAtThisLevel = new Subject<void>();\n private readonly afterOpenedAtThisLevel = new Subject<NgpDialogRef>();\n private ariaHiddenElements = new Map<Element, string | null>();\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): readonly NgpDialogRef[] {\n return this.parentDialogManager\n ? this.parentDialogManager.openDialogs\n : this.openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpened(): Subject<NgpDialogRef> {\n return this.parentDialogManager\n ? this.parentDialogManager.afterOpened\n : this.afterOpenedAtThisLevel;\n }\n\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this.getAfterAllClosed()\n : this.getAfterAllClosed().pipe(startWith(undefined)),\n );\n\n /**\n * Opens a modal dialog containing the given template.\n */\n open(templateRef: TemplateRef<NgpDialogContext>, config?: NgpDialogConfig): NgpDialogRef {\n const defaults = this.defaultOptions;\n config = { ...defaults, ...config };\n config.id = config.id ?? uniqueId('ngp-dialog');\n\n if (config.id && this.getDialogById(config.id) && isDevMode()) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n\n const overlayConfig = this.getOverlayConfig(config);\n const overlayRef = this.overlay.create(overlayConfig);\n const dialogRef = new NgpDialogRef(overlayRef, config);\n const injector = this.createInjector(config, dialogRef, undefined);\n const context: NgpDialogContext = {\n $implicit: dialogRef,\n close: dialogRef.close.bind(dialogRef),\n };\n\n overlayRef.attach(new TemplatePortal(templateRef, config.viewContainerRef!, context, injector));\n\n // If this is the first dialog that we're opening, hide all the non-overlay content.\n if (!this.openDialogs.length) {\n this.hideNonDialogContentFromAssistiveTechnology();\n }\n\n (this.openDialogs as NgpDialogRef[]).push(dialogRef);\n dialogRef.closed.subscribe(() => this.removeOpenDialog(dialogRef, true));\n this.afterOpened.next(dialogRef);\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n reverseForEach(this.openDialogs, dialog => dialog.close());\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): NgpDialogRef | undefined {\n return this.openDialogs.find(dialog => dialog.id === id);\n }\n\n ngOnDestroy(): void {\n // Make one pass over all the dialogs that need to be untracked, but should not be closed. We\n // want to stop tracking the open dialog even if it hasn't been closed, because the tracking\n // determines when `aria-hidden` is removed from elements outside the dialog.\n reverseForEach(this.openDialogsAtThisLevel, dialog => {\n // Check for `false` specifically since we want `undefined` to be interpreted as `true`.\n this.removeOpenDialog(dialog, false);\n });\n\n // Make a second pass and close the remaining dialogs. We do this second pass in order to\n // correctly dispatch the `afterAllClosed` event in case we have a mixed array of dialogs\n // that should be closed and dialogs that should not.\n reverseForEach(this.openDialogsAtThisLevel, dialog => dialog.close());\n\n this.afterAllClosedAtThisLevel.complete();\n this.afterOpenedAtThisLevel.complete();\n this.openDialogsAtThisLevel = [];\n }\n\n /**\n * Creates an overlay config from a dialog config.\n */\n private getOverlayConfig(config: NgpDialogConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: config.scrollStrategy || this.scrollStrategy,\n hasBackdrop: false,\n disposeOnNavigation: config.closeOnNavigation,\n });\n\n return state;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n */\n private createInjector(\n config: NgpDialogConfig,\n dialogRef: NgpDialogRef,\n fallbackInjector: Injector | undefined,\n ): Injector {\n const userInjector = config.injector || config.viewContainerRef?.injector;\n const providers: StaticProvider[] = [{ provide: NgpDialogRef, useValue: dialogRef }];\n\n return Injector.create({ parent: userInjector || fallbackInjector, providers });\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n */\n private removeOpenDialog(dialogRef: NgpDialogRef, emitEvent: boolean) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n (this.openDialogs as NgpDialogRef[]).splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this.ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this.ariaHiddenElements.clear();\n\n if (emitEvent) {\n this.getAfterAllClosed().next();\n }\n }\n }\n }\n\n /** Hides all of the content that isn't an overlay from assistive technology. */\n private hideNonDialogContentFromAssistiveTechnology() {\n const overlayContainer = this.overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n const sibling = siblings[i];\n\n if (\n sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')\n ) {\n this.ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n private getAfterAllClosed(): Subject<void> {\n const parent = this.parentDialogManager;\n return parent ? parent.getAfterAllClosed() : this.afterAllClosedAtThisLevel;\n }\n}\n\n/**\n * Executes a callback against all elements in an array while iterating in reverse.\n * Useful if the array is being modified as it is being iterated.\n */\nfunction reverseForEach<T>(items: T[] | readonly T[], callback: (current: T) => void) {\n let i = items.length;\n\n while (i--) {\n callback(items[i]);\n }\n}\n\nexport interface NgpDialogContext {\n $implicit: NgpDialogRef;\n close: () => void;\n}\n\nexport function injectDialogManager(): NgpDialogManager {\n return inject(NgpDialogManager);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpDialogTrigger } from './dialog-trigger.directive';\n\nexport const NgpDialogTriggerToken = new InjectionToken<NgpDialogTrigger>('NgpDialogTriggerToken');\n\n/**\n * Inject the DialogTrigger directive instance\n */\nexport function injectDialogTrigger(): NgpDialogTrigger {\n return inject(NgpDialogTriggerToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgpDialogRef } from '../dialog/dialog-ref';\nimport { NgpDialogContext, NgpDialogManager } from '../dialog/dialog.service';\nimport { NgpDialogTriggerToken } from './dialog-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialogTrigger]',\n exportAs: 'ngpDialogTrigger',\n providers: [{ provide: NgpDialogTriggerToken, useExisting: NgpDialogTrigger }],\n})\nexport class NgpDialogTrigger {\n /** Access the dialog manager. */\n private readonly dialogManager = inject(NgpDialogManager);\n\n /** Access the view container ref. */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /** Access the focus monitor. */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /** Access the element ref. */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** The template to launch. */\n readonly template = input.required<TemplateRef<NgpDialogContext>>({\n alias: 'ngpDialogTrigger',\n });\n\n /**\n * Store the dialog ref.\n * @internal\n */\n private dialogRef: NgpDialogRef | null = null;\n\n @HostListener('click')\n protected launch(): void {\n this.dialogRef = this.dialogManager.open(this.template(), {\n viewContainerRef: this.viewContainerRef,\n });\n\n this.dialogRef.closed.subscribe(focusOrigin => {\n this.dialogRef = null;\n // Focus the trigger element after the dialog closes.\n this.focusMonitor.focusVia(this.elementRef.nativeElement, focusOrigin);\n });\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HostListener, input, OnDestroy, signal } from '@angular/core';\nimport { NgpFocusTrap } from 'ng-primitives/focus-trap';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectDialogConfig } from '../config/dialog.config';\nimport { injectDialogRef } from './dialog-ref';\nimport { NgpDialogToken } from './dialog.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpDialog]',\n exportAs: 'ngpDialog',\n providers: [{ provide: NgpDialogToken, useExisting: NgpDialog }],\n hostDirectives: [NgpFocusTrap],\n host: {\n tabindex: '-1',\n '[id]': 'id()',\n '[attr.role]': 'role()',\n '[attr.aria-modal]': 'modal()',\n '[attr.aria-labelledby]': 'labelledBy().join(\" \")',\n '[attr.aria-describedby]': 'describedBy().join(\" \")',\n },\n})\nexport class NgpDialog implements OnDestroy {\n private readonly config = injectDialogConfig();\n\n /** Access the dialog ref */\n private readonly dialogRef = injectDialogRef();\n\n /** The id of the dialog */\n readonly id = input<string>(uniqueId('ngp-dialog'));\n\n /** The dialog role. */\n readonly role = input(this.config.role, {\n alias: 'ngpDialogRole',\n });\n\n /** Whether the dialog is a modal. */\n readonly modal = input<boolean, BooleanInput>(this.config.modal ?? false, {\n alias: 'ngpDialogModal',\n transform: booleanAttribute,\n });\n\n /** The labelledby ids */\n protected readonly labelledBy = signal<string[]>([]);\n\n /** The describedby ids */\n protected readonly describedBy = signal<string[]>([]);\n\n ngOnDestroy(): void {\n this.close();\n }\n\n /** Close the dialog. */\n close(): void {\n this.dialogRef.close();\n }\n\n /** Stop click events from propagating to the overlay */\n @HostListener('click', ['$event'])\n protected onClick(event: Event): void {\n event.stopPropagation();\n }\n\n /** @internal register a labelledby id */\n setLabelledBy(id: string): void {\n this.labelledBy.update(ids => [...ids, id]);\n }\n\n /** @internal register a describedby id */\n setDescribedBy(id: string): void {\n this.describedBy.update(ids => [...ids, id]);\n }\n\n /** @internal remove a labelledby id */\n removeLabelledBy(id: string): void {\n this.labelledBy.update(ids => ids.filter(i => i !== id));\n }\n\n /** @internal remove a describedby id */\n removeDescribedBy(id: string): void {\n this.describedBy.update(ids => ids.filter(i => i !== id));\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpDialogConfig, provideDialogConfig } from './config/dialog.config';\nexport { NgpDialogDescription } from './dialog-description/dialog-description.directive';\nexport { NgpDialogDescriptionToken } from './dialog-description/dialog-description.token';\nexport { NgpDialogOverlay } from './dialog-overlay/dialog-overlay.directive';\nexport { NgpDialogOverlayToken } from './dialog-overlay/dialog-overlay.token';\nexport { NgpDialogTitle } from './dialog-title/dialog-title.directive';\nexport { NgpDialogTitleToken } from './dialog-title/dialog-title.token';\nexport { NgpDialogTrigger } from './dialog-trigger/dialog-trigger.directive';\nexport { NgpDialogTriggerToken } from './dialog-trigger/dialog-trigger.token';\nexport { NgpDialog } from './dialog/dialog.directive';\nexport { NgpDialogToken } from './dialog/dialog.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAuCO,MAAM,mBAAmB,GAAoB;AAClD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEK,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAkB,sBAAsB,CAAC,CAAC;AAEhG;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,MAAgC,EAAA;IAClE,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE;AAChD,SAAA;KACF,CAAC;AACJ,CAAC;AAED;;;AAGG;SACa,kBAAkB,GAAA;AAChC,IAAA,OAAO,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,mBAAmB,CAAC;AACjF;;ACnEA;;;;;;AAMG;MAIU,cAAc,GAAG,IAAI,cAAc,CAAY,gBAAgB,EAAE;AAE9E;;AAEG;SACa,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;AAChC;;ACjBA;;;;;;AAMG;MAIU,yBAAyB,GAAG,IAAI,cAAc,CACzD,2BAA2B,EAC3B;AAEF;;AAEG;SACa,uBAAuB,GAAA;AACrC,IAAA,OAAO,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC3C;;ACnBA;;;;;;AAMG;MAeU,oBAAoB,CAAA;AAO/B,IAAA,WAAA,GAAA;;QALiB,IAAM,CAAA,MAAA,GAAG,YAAY,EAAE,CAAC;;QAGhC,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAG9D,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,KAAI;YAC/B,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACvC;YAED,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;aAChC;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KAC1C;8GArBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EALpB,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAK3E,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAsB,oBAAA,EAAE,CAAC;AACtF,oBAAA,IAAI,EAAE;AACJ,wBAAA,MAAM,EAAE,MAAM;AACf,qBAAA;AACF,iBAAA,CAAA;;;ACND;;AAEG;MACU,YAAY,CAAA;IAmBvB,WACW,CAAA,UAAsB,EACtB,MAAuB,EAAA;QADvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;;AAhBzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAsB,CAAC;AAkBlD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,EAAE,CAAC;QAC9D,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAG,CAAC;AAErB,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,IAAG;AACnC,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC1E,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAClF;AAED;;;;AAIG;AACH,IAAA,KAAK,CAAC,WAAyB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxB;;IAGD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC;KACb;AACF,CAAA;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9B;;AC3EA;;;;;;AAMG;MAIU,qBAAqB,GAAG,IAAI,cAAc,CAAmB,uBAAuB,EAAE;AAEnG;;AAEG;SACa,mBAAmB,GAAA;AACjC,IAAA,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACvC;;ACjBA;;;;;;AAMG;MAWU,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;;QAQmB,IAAS,CAAA,SAAA,GAAG,eAAe,EAAE,CAAC;AAMhD,KAAA;IAHW,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;8GAPU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEnE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAkB,gBAAA,EAAE,CAAC;AAC/E,iBAAA,CAAA;8BAMW,KAAK,EAAA,CAAA;sBADd,YAAY;uBAAC,OAAO,CAAA;;;ACrBvB;;;;;;AAMG;MAIU,mBAAmB,GAAG,IAAI,cAAc,CAAiB,qBAAqB,EAAE;AAE7F;;AAEG;SACa,iBAAiB,GAAA;AAC/B,IAAA,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACrC;;ACjBA;;;;;;AAMG;MAeU,cAAc,CAAA;AAOzB,IAAA,WAAA,GAAA;;QALiB,IAAM,CAAA,MAAA,GAAG,YAAY,EAAE,CAAC;;QAGhC,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAGxD,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,KAAI;YAC/B,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACtC;YAED,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aAC/B;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;QACT,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACzC;8GArBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EALd,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAK/D,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAgB,cAAA,EAAE,CAAC;AAC1E,oBAAA,IAAI,EAAE;AACJ,wBAAA,MAAM,EAAE,MAAM;AACf,qBAAA;AACF,iBAAA,CAAA;;;ACpBD;;;;;;AAMG;AAkBH;;;AAGG;MAKU,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAG,kBAAkB,EAAE,CAAC;AACtC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,EAAE;AAC9D,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;AACc,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,cAAc,GAC7B,IAAI,CAAC,cAAc,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAEtE,IAAsB,CAAA,sBAAA,GAAmB,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,OAAO,EAAQ,CAAC;AAChD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAgB,CAAC;AAC9D,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAgB/D;;;AAGG;QACM,IAAc,CAAA,cAAA,GAAqB,KAAK,CAAC,MAChD,IAAI,CAAC,WAAW,CAAC,MAAM;AACrB,cAAE,IAAI,CAAC,iBAAiB,EAAE;AAC1B,cAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACxD,CAAC;AA6JH,KAAA;;AAlLC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,mBAAmB;AAC7B,cAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW;AACtC,cAAE,IAAI,CAAC,sBAAsB,CAAC;KACjC;;AAGD,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,mBAAmB;AAC7B,cAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW;AACtC,cAAE,IAAI,CAAC,sBAAsB,CAAC;KACjC;AAYD;;AAEG;IACH,IAAI,CAAC,WAA0C,EAAE,MAAwB,EAAA;AACvE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEhD,QAAA,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,EAAE;YAC7D,MAAM,KAAK,CAAC,CAAmB,gBAAA,EAAA,MAAM,CAAC,EAAE,CAAA,+CAAA,CAAiD,CAAC,CAAC;SAC5F;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACnE,QAAA,MAAM,OAAO,GAAqB;AAChC,YAAA,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACvC,CAAC;AAEF,QAAA,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;;AAGhG,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,2CAA2C,EAAE,CAAC;SACpD;AAEA,QAAA,IAAI,CAAC,WAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrD,QAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEjC,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC5D;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1D;IAED,WAAW,GAAA;;;;AAIT,QAAA,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,IAAG;;AAEnD,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;;;;AAKH,QAAA,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;KAClC;AAED;;AAEG;AACK,IAAA,gBAAgB,CAAC,MAAuB,EAAA;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;AAC9B,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;AAC1F,YAAA,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc;AAC5D,YAAA,WAAW,EAAE,KAAK;YAClB,mBAAmB,EAAE,MAAM,CAAC,iBAAiB;AAC9C,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;;AAGG;AACK,IAAA,cAAc,CACpB,MAAuB,EACvB,SAAuB,EACvB,gBAAsC,EAAA;QAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAC1E,QAAA,MAAM,SAAS,GAAqB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAErF,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,IAAI,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;KACjF;AAED;;AAEG;IACK,gBAAgB,CAAC,SAAuB,EAAE,SAAkB,EAAA;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAElD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACb,IAAI,CAAC,WAA8B,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;;AAItD,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,OAAO,KAAI;oBACzD,IAAI,aAAa,EAAE;AACjB,wBAAA,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;qBACpD;yBAAM;AACL,wBAAA,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;qBACxC;AACH,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAEhC,IAAI,SAAS,EAAE;AACb,oBAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC;iBACjC;aACF;SACF;KACF;;IAGO,2CAA2C,GAAA;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;;AAGrE,QAAA,IAAI,gBAAgB,CAAC,aAAa,EAAE;AAClC,YAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC;AAEzD,YAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAE5B,IACE,OAAO,KAAK,gBAAgB;oBAC5B,OAAO,CAAC,QAAQ,KAAK,QAAQ;oBAC7B,OAAO,CAAC,QAAQ,KAAK,OAAO;AAC5B,oBAAA,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAClC;AACA,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1E,oBAAA,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;iBAC7C;aACF;SACF;KACF;IAEO,iBAAiB,GAAA;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACxC,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC;KAC7E;8GAlMU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;AAsMD;;;AAGG;AACH,SAAS,cAAc,CAAI,KAAyB,EAAE,QAA8B,EAAA;AAClF,IAAA,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,EAAE;AACV,QAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;AACH,CAAC;SAOe,mBAAmB,GAAA;AACjC,IAAA,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC;;ACxPA;;;;;;AAMG;MAIU,qBAAqB,GAAG,IAAI,cAAc,CAAmB,uBAAuB,EAAE;AAEnG;;AAEG;SACa,mBAAmB,GAAA;AACjC,IAAA,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACvC;;ACjBA;;;;;;AAMG;MAqBU,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;;AAQmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;;AAGzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;;AAG5C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAGpC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;;AAGjE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAgC;AAChE,YAAA,KAAK,EAAE,kBAAkB;AAC1B,SAAA,CAAC,CAAC;AAEH;;;AAGG;QACK,IAAS,CAAA,SAAA,GAAwB,IAAI,CAAC;AAc/C,KAAA;IAXW,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACxC,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,IAAG;AAC5C,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;AAEtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACzE,SAAC,CAAC,CAAC;KACJ;8GAnCU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEnE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAkB,gBAAA,EAAE,CAAC;AAC/E,iBAAA,CAAA;8BA0BW,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,CAAA;;;MCrBV,SAAS,CAAA;AAftB,IAAA,WAAA,GAAA;QAgBmB,IAAM,CAAA,MAAA,GAAG,kBAAkB,EAAE,CAAC;;QAG9B,IAAS,CAAA,SAAA,GAAG,eAAe,EAAE,CAAC;;QAGtC,IAAE,CAAA,EAAA,GAAG,KAAK,CAAS,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;;QAG3C,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACtC,YAAA,KAAK,EAAE,eAAe;AACvB,SAAA,CAAC,CAAC;;QAGM,IAAK,CAAA,KAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE;AACxE,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC,CAAC;;AAGgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;;AAGlC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;AAoCvD,KAAA;IAlCC,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;;AAIS,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;;AAGD,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;KAC7C;;AAGD,IAAA,cAAc,CAAC,EAAU,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;KAC9C;;AAGD,IAAA,gBAAgB,CAAC,EAAU,EAAA;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC1D;;AAGD,IAAA,iBAAiB,CAAC,EAAU,EAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC3D;8GA3DU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,SAAA,EAXT,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAWrD,SAAS,EAAA,UAAA,EAAA,CAAA;kBAfrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAW,SAAA,EAAE,CAAC;oBAChE,cAAc,EAAE,CAAC,YAAY,CAAC;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,wBAAwB,EAAE,wBAAwB;AAClD,wBAAA,yBAAyB,EAAE,yBAAyB;AACrD,qBAAA;AACF,iBAAA,CAAA;8BAsCW,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AClEnC;;;;;;AAMG;;ACNH;;AAEG;;;;"}
@@ -411,7 +411,7 @@ class NgpFocusVisible {
411
411
  return false;
412
412
  }
413
413
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
414
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisible" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
414
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisible" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused() && !isDisabled()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
415
415
  }
416
416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, decorators: [{
417
417
  type: Directive,
@@ -421,7 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
421
421
  exportAs: 'ngpFocusVisible',
422
422
  providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }],
423
423
  host: {
424
- '[attr.data-focus-visible]': 'isFocused()',
424
+ '[attr.data-focus-visible]': 'isFocused() && !isDisabled()',
425
425
  },
426
426
  }]
427
427
  }], ctorParameters: () => [], propDecorators: { onBlur: [{
@@ -539,7 +539,7 @@ class NgpPress {
539
539
  }
540
540
  }
541
541
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
542
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpPress, isStandalone: true, selector: "[ngpPress]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpPressDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressStart: "ngpPressStart", pressEnd: "ngpPressEnd", pressChange: "ngpPress" }, host: { listeners: { "pointerdown": "onPointerDown()" }, properties: { "attr.data-press": "pressed()" } }, providers: [{ provide: NgpPressToken, useExisting: NgpPress }], exportAs: ["ngpPress"], ngImport: i0 }); }
542
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpPress, isStandalone: true, selector: "[ngpPress]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpPressDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressStart: "ngpPressStart", pressEnd: "ngpPressEnd", pressChange: "ngpPress" }, host: { listeners: { "pointerdown": "onPointerDown()" }, properties: { "attr.data-press": "pressed() && !isDisabled()" } }, providers: [{ provide: NgpPressToken, useExisting: NgpPress }], exportAs: ["ngpPress"], ngImport: i0 }); }
543
543
  }
544
544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPress, decorators: [{
545
545
  type: Directive,
@@ -549,7 +549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
549
549
  exportAs: 'ngpPress',
550
550
  providers: [{ provide: NgpPressToken, useExisting: NgpPress }],
551
551
  host: {
552
- '[attr.data-press]': 'pressed()',
552
+ '[attr.data-press]': 'pressed() && !isDisabled()',
553
553
  },
554
554
  }]
555
555
  }], propDecorators: { onPointerDown: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-interactions.mjs","sources":["../../../../packages/ng-primitives/interactions/src/hover/hover.token.ts","../../../../packages/ng-primitives/interactions/src/hover/hover.directive.ts","../../../../packages/ng-primitives/interactions/src/focus/focus.token.ts","../../../../packages/ng-primitives/interactions/src/focus/focus.directive.ts","../../../../packages/ng-primitives/interactions/src/focus-visible/focus-visible.token.ts","../../../../packages/ng-primitives/interactions/src/focus-visible/focus-visible.directive.ts","../../../../packages/ng-primitives/interactions/src/press/press.token.ts","../../../../packages/ng-primitives/interactions/src/press/press.directive.ts","../../../../packages/ng-primitives/interactions/src/move/move.token.ts","../../../../packages/ng-primitives/interactions/src/move/move.directive.ts","../../../../packages/ng-primitives/interactions/src/index.ts","../../../../packages/ng-primitives/interactions/src/ng-primitives-interactions.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpHover } from './hover.directive';\n\nexport const NgpHoverToken = new InjectionToken<NgpHover>('NgpHoverToken');\n\n/**\n * Inject the Hover directive instance\n * @returns Hover directive instance\n */\nexport function injectHover(): NgpHover {\n return inject(NgpHoverToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n HostListener,\n Injectable,\n PLATFORM_ID,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { onChange } from 'ng-primitives/utils';\nimport { NgpHoverToken } from './hover.token';\n\n/**\n * We use a service here as this value is a singleton\n * and allows us to register the dom events once.\n */\n@Injectable({\n providedIn: 'root',\n})\nclass GlobalPointerEvents {\n /**\n * Whether global mouse events should be ignored.\n */\n ignoreEmulatedMouseEvents: boolean = false;\n\n /**\n * Access the document.\n */\n private readonly document = inject(DOCUMENT);\n\n /**\n * Determine the platform id.\n */\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n // we only want to setup events on the client\n if (isPlatformBrowser(this.platformId)) {\n this.setupGlobalTouchEvents();\n }\n }\n\n private setupGlobalTouchEvents(): void {\n this.document.addEventListener('pointerup', this.handleGlobalPointerEvent.bind(this));\n this.document.addEventListener('touchend', this.setGlobalIgnoreEmulatedMouseEvents.bind(this));\n }\n\n private setGlobalIgnoreEmulatedMouseEvents(): void {\n this.ignoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => (this.ignoreEmulatedMouseEvents = false), 50);\n }\n\n private handleGlobalPointerEvent(event: PointerEvent): void {\n if (event.pointerType === 'touch') {\n this.setGlobalIgnoreEmulatedMouseEvents();\n }\n }\n}\n\n/**\n * A directive for normalizing hover events across the different browsers and devices.\n *\n * This is an Angular port of the useHover hook from\n * react-aria: https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useHover.ts\n */\n@Directive({\n standalone: true,\n selector: '[ngpHover]',\n exportAs: 'ngpHover',\n providers: [{ provide: NgpHoverToken, useExisting: NgpHover }],\n host: {\n '[attr.data-hover]': 'hovered()',\n },\n})\nexport class NgpHover {\n /**\n * Access the global pointer events handler.\n */\n private readonly globalPointerEvents = inject(GlobalPointerEvents);\n\n /**\n * Whether hoving should be disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpHoverDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Store the current hover state.\n */\n protected hovered = signal<boolean>(false);\n\n /**\n * Whether this element should ignore emulated mouse events.\n */\n private ignoreEmulatedMouseEvents: boolean = false;\n\n /**\n * Emit an event when hovering starts.\n */\n readonly hoverStart = output<void>({ alias: 'ngpHoverStart' });\n\n /**\n * Emit an event when hovering ends.\n */\n readonly hoverEnd = output<void>({ alias: 'ngpHoverEnd' });\n\n /**\n * Emit an event when the hover state changes.\n */\n readonly hoverChange = output<boolean>({ alias: 'ngpHover' });\n\n constructor() {\n onChange(this.disabled, this.reset.bind(this));\n onChange(this.isDisabled, this.reset.bind(this));\n }\n\n private reset(shouldReset?: boolean | null): void {\n if (shouldReset) {\n this.onHoverEnd('mouse');\n }\n }\n\n /**\n * Trigger the hover start events.\n * @param event\n * @param pointerType\n */\n private onHoverStart(event: Event, pointerType: string): void {\n if (\n this.isDisabled() ||\n pointerType === 'touch' ||\n this.hovered() ||\n !(event.currentTarget as Element)?.contains(event.target as Element)\n ) {\n return;\n }\n\n this.hovered.set(true);\n this.hoverStart.emit();\n this.hoverChange.emit(true);\n }\n\n /**\n * Trigger the hover end events.\n * @param pointerType\n */\n private onHoverEnd(pointerType: string): void {\n if (pointerType === 'touch' || !this.hovered()) {\n return;\n }\n\n this.hovered.set(false);\n this.hoverEnd.emit();\n this.hoverChange.emit(false);\n }\n\n @HostListener('pointerenter', ['$event'])\n protected onPointerEnter(event: PointerEvent): void {\n if (this.globalPointerEvents.ignoreEmulatedMouseEvents && event.pointerType === 'mouse') {\n return;\n }\n\n this.onHoverStart(event, event.pointerType);\n }\n\n @HostListener('pointerleave', ['$event'])\n protected onPointerLeave(event: PointerEvent): void {\n if (!this.isDisabled() && (event.currentTarget as Element)?.contains(event.target as Element)) {\n this.onHoverEnd(event.pointerType);\n }\n }\n\n @HostListener('touchstart')\n protected onTouchStart(): void {\n this.ignoreEmulatedMouseEvents = true;\n }\n\n @HostListener('mouseenter', ['$event'])\n protected onMouseEnter(event: MouseEvent): void {\n if (!this.ignoreEmulatedMouseEvents && !this.globalPointerEvents.ignoreEmulatedMouseEvents) {\n this.onHoverStart(event, 'mouse');\n }\n\n this.ignoreEmulatedMouseEvents = false;\n }\n\n @HostListener('mouseleave', ['$event'])\n protected onMouseLeave(event: MouseEvent): void {\n if (!this.isDisabled() && (event.currentTarget as Element)?.contains(event.target as Element)) {\n this.onHoverEnd('mouse');\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpFocus } from './focus.directive';\n\nexport const NgpFocusToken = new InjectionToken<NgpFocus>('NgpFocusToken');\n\n/**\n * Inject the Focus directive instance\n */\nexport function injectFocus(): NgpFocus {\n return inject(NgpFocusToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, HostListener, booleanAttribute, input, output, signal } from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { NgpFocusToken } from './focus.token';\n\n/**\n * This was inspired by the React Aria useFocus hook.\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useFocus.ts#L20\n */\n@Directive({\n standalone: true,\n selector: '[ngpFocus]',\n exportAs: 'ngpFocus',\n providers: [{ provide: NgpFocusToken, useExisting: NgpFocus }],\n host: {\n '[attr.data-focus]': 'isFocused()',\n },\n})\nexport class NgpFocus {\n /**\n * Whether the element is currently focused.\n */\n protected isFocused = signal<boolean>(false);\n\n /**\n * Whether listening for focus events is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpFocusDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the focus state changes.\n */\n readonly focus = output<boolean>({ alias: 'ngpFocus' });\n\n /**\n * Listen for focus events.\n * @param event\n */\n @HostListener('focus', ['$event'])\n protected onFocus(event: FocusEvent) {\n if (this.isDisabled()) {\n return;\n }\n\n const ownerDocument = (event.target as HTMLElement)?.ownerDocument ?? document;\n\n // ensure this element is still focused\n if (ownerDocument.activeElement === event.target && event.currentTarget === event.target) {\n this.focus.emit(true);\n this.isFocused.set(true);\n }\n }\n\n /**\n * Listen for blur events.\n * @param event\n */\n @HostListener('blur', ['$event'])\n protected onBlur(event: FocusEvent) {\n if (this.isDisabled()) {\n return;\n }\n\n if (event.currentTarget === event.target) {\n this.focus.emit(false);\n this.isFocused.set(false);\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpFocusVisible } from './focus-visible.directive';\n\nexport const NgpFocusVisibleToken = new InjectionToken<NgpFocusVisible>('NgpFocusVisibleToken');\n\n/**\n * Inject the FocusVisible directive instance\n */\nexport function injectFocusVisible(): NgpFocusVisible {\n return inject(NgpFocusVisibleToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { NgpFocusVisibleToken } from './focus-visible.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpFocusVisible]',\n exportAs: 'ngpFocusVisible',\n providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }],\n host: {\n '[attr.data-focus-visible]': 'isFocused()',\n },\n})\nexport class NgpFocusVisible {\n /**\n * Access the element that the directive is applied to.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Whether focus events are listened to.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpFocusVisibleDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the element is visually focused.\n */\n readonly focusChange = output<boolean>({\n alias: 'ngpFocusVisible',\n });\n\n /**\n * Whether the element is currently focused.\n */\n protected readonly isFocused = signal<boolean>(false);\n\n constructor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement)\n .pipe(takeUntilDestroyed())\n .subscribe(origin => this.onFocus(origin));\n }\n\n private onFocus(origin: FocusOrigin): void {\n if (this.isDisabled() || this.isFocused()) {\n return;\n }\n\n // for some elements the focus visible state should always appear on focus\n if (this.alwaysShowFocus()) {\n this.isFocused.set(true);\n this.focusChange.emit(true);\n return;\n }\n\n // if the focus origin is keyboard, then the focus is visible\n if (origin === 'keyboard') {\n this.isFocused.set(true);\n this.focusChange.emit(true);\n return;\n }\n }\n\n /**\n * Listen for blur events.\n */\n @HostListener('blur')\n protected onBlur(): void {\n if (this.isDisabled() || !this.isFocused()) {\n return;\n }\n\n this.isFocused.set(false);\n this.focusChange.emit(false);\n }\n\n private alwaysShowFocus(): boolean {\n const nonTextInputTypes = [\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset',\n ];\n\n // if this is an input element and it is a text input\n if (\n this.elementRef.nativeElement instanceof HTMLInputElement &&\n !nonTextInputTypes.includes(this.elementRef.nativeElement.type)\n ) {\n return true;\n }\n\n // if this is a textarea\n if (this.elementRef.nativeElement instanceof HTMLTextAreaElement) {\n return true;\n }\n\n // if this is an element with contenteditable\n if (\n this.elementRef.nativeElement.isContentEditable ||\n this.elementRef.nativeElement.hasAttribute('contenteditable')\n ) {\n return true;\n }\n\n return false;\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpPress } from './press.directive';\n\nexport const NgpPressToken = new InjectionToken<NgpPress>('NgpPressToken');\n\n/**\n * Inject the Press directive instance\n */\nexport function injectPress(): NgpPress {\n return inject(NgpPressToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpPressToken } from './press.token';\n\n/**\n * This was inpsired by Headless UI's active-press hook:\n * https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/hooks/use-active-press.tsx\n */\n\n@Directive({\n standalone: true,\n selector: '[ngpPress]',\n exportAs: 'ngpPress',\n providers: [{ provide: NgpPressToken, useExisting: NgpPress }],\n host: {\n '[attr.data-press]': 'pressed()',\n },\n})\nexport class NgpPress {\n /**\n * Access the HTML Element.\n */\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the disposables.\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Whether listening for press events is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpPressDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the press begins.\n */\n readonly pressStart = output<void>({\n alias: 'ngpPressStart',\n });\n\n /**\n * Emit when the press ends.\n */\n readonly pressEnd = output<void>({\n alias: 'ngpPressEnd',\n });\n\n /**\n * Emit when the press changes.\n */\n readonly pressChange = output<boolean>({\n alias: 'ngpPress',\n });\n\n /**\n * The press state.\n */\n protected readonly pressed = signal(false);\n\n /**\n * Reset the press state.\n */\n private reset(): void {\n // if we are not pressing, then do nothing\n if (!this.pressed()) {\n return;\n }\n\n // clear any existing disposables\n this.disposableListeners.forEach(dispose => dispose());\n this.pressed.set(false);\n this.pressEnd.emit();\n this.pressChange.emit(false);\n }\n\n /**\n * Store the list of disposables.\n */\n private disposableListeners: (() => void)[] = [];\n\n @HostListener('pointerdown')\n protected onPointerDown(): void {\n if (this.isDisabled()) {\n return;\n }\n\n // clear any existing disposables\n this.disposableListeners.forEach(dispose => dispose());\n\n // update the press state\n this.pressed.set(true);\n this.pressStart.emit();\n this.pressChange.emit(true);\n\n // setup global event listeners to catch events on elements outside the directive\n const ownerDocument = this.element.nativeElement.ownerDocument ?? document;\n\n // if the pointer up event happens on any elements, then we are no longer pressing on this element\n const pointerUp = this.disposables.addEventListener(\n ownerDocument,\n 'pointerup',\n this.reset.bind(this),\n false,\n );\n\n // Instead of relying on the `pointerleave` event, which is not consistently called on iOS Safari,\n // we use the `pointermove` event to determine if we are still \"pressing\".\n // By checking if the target is still within the element, we can determine if the press is ongoing.\n const pointerMove = this.disposables.addEventListener(\n ownerDocument,\n 'pointermove',\n this.onPointerMove.bind(this) as EventListener,\n false,\n );\n\n // if the pointer is cancelled, then we are no longer pressing on this element\n const pointerCancel = this.disposables.addEventListener(\n ownerDocument,\n 'pointercancel',\n this.reset.bind(this),\n false,\n );\n\n this.disposableListeners = [pointerUp, pointerMove, pointerCancel];\n }\n\n private onPointerMove(event: PointerEvent): void {\n if (\n this.element.nativeElement !== event.target &&\n !this.element.nativeElement.contains(event.target as Node)\n ) {\n this.reset();\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpMove } from './move.directive';\n\nexport const NgpMoveToken = new InjectionToken<NgpMove>('NgpMoveToken');\n\n/**\n * Inject the Move directive instance\n */\nexport function injectMove(): NgpMove {\n return inject(NgpMoveToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HostListener, input, output, signal } from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpMoveToken } from './move.token';\n\n/**\n * Inspired by react-aria useMove hook:\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useMove.ts\n */\n\n@Directive({\n standalone: true,\n selector: '[ngpMove]',\n exportAs: 'ngpMove',\n providers: [{ provide: NgpMoveToken, useExisting: NgpMove }],\n host: {\n '[attr.data-move]': 'isMoving()',\n },\n})\nexport class NgpMove {\n /**\n * Access the disposable helper.\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Whether movement is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpMoveDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the move event begins.\n */\n readonly start = output<NgpMoveStartEvent>({\n alias: 'ngpMoveStart',\n });\n\n /**\n * Emit when the element is moved.\n */\n readonly move = output<NgpMoveEvent>({\n alias: 'ngpMove',\n });\n\n /**\n * Emit when the move event ends.\n */\n readonly end = output<NgpMoveEndEvent>({\n alias: 'ngpMoveEnd',\n });\n\n /**\n * Whether the element is currently being moved.\n */\n private isMoving = signal<boolean>(false);\n\n /**\n * Store the last x position of the element.\n */\n private x: number | null = null;\n\n /**\n * Store the last y position of the element.\n */\n private y: number | null = null;\n\n /**\n * Store the id of the last pointer.\n */\n private pointerId: number | null = null;\n\n /**\n * Store the disposable event listeners.\n */\n private disposableListeners: (() => void)[] = [];\n\n /**\n * Handle a move start.\n */\n private onMoveStart(event: PointerEvent | KeyboardEvent, pointerType: PointerType): void {\n this.start.emit({\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n this.isMoving.set(true);\n }\n\n /**\n * Handle a move event.\n */\n private onMove(\n event: PointerEvent | KeyboardEvent,\n pointerType: PointerType,\n deltaX: number,\n deltaY: number,\n ): void {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n this.move.emit({\n deltaX,\n deltaY,\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n }\n\n /**\n * Handle a move end.\n */\n private onMoveEnd(event: PointerEvent | KeyboardEvent, pointerType: PointerType): void {\n this.end.emit({\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n this.isMoving.set(false);\n }\n\n /**\n * Handle the pointer down event.\n */\n @HostListener('pointerdown', ['$event'])\n protected onPointerDown(event: PointerEvent): void {\n // ignore right-click or additional pointers\n if (event.button !== 0 || this.pointerId !== null || this.isDisabled()) {\n return;\n }\n\n // prevent the default behavior\n event.preventDefault();\n event.stopPropagation();\n\n this.onMoveStart(event, event.pointerType as PointerType);\n\n // store the pointer id and initial position\n this.pointerId = event.pointerId;\n this.x = event.pageX;\n this.y = event.pageY;\n\n // add global event listeners\n const pointerMove = this.disposables.addEventListener(\n window,\n 'pointermove',\n this.onPointerMove.bind(this) as EventListener,\n false,\n );\n\n const pointerUp = this.disposables.addEventListener(\n window,\n 'pointerup',\n this.onPointerUp.bind(this) as EventListener,\n false,\n );\n\n const pointerCancel = this.disposables.addEventListener(\n window,\n 'pointercancel',\n this.onPointerUp.bind(this) as EventListener,\n false,\n );\n\n // store the disposable event listeners\n this.disposableListeners = [pointerMove, pointerUp, pointerCancel];\n }\n\n /**\n * Handle the pointer up event.\n */\n protected onPointerUp(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId) {\n return;\n }\n\n const pointerType = (event.pointerType ?? 'mouse') as PointerType;\n this.onMoveEnd(event, pointerType);\n this.pointerId = null;\n this.disposableListeners.forEach(dispose => dispose());\n }\n\n /**\n * Handle the pointer move event.\n */\n protected onPointerMove(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId) {\n return;\n }\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n this.onMove(\n event,\n event.pointerType as PointerType,\n event.pageX - (this.x ?? 0),\n event.pageY - (this.y ?? 0),\n );\n this.x = event.pageX;\n this.y = event.pageY;\n }\n\n private triggerKeyboardMove(event: KeyboardEvent, deltaX: number, deltaY: number): void {\n if (this.isDisabled()) {\n return;\n }\n\n this.onMoveStart(event, 'keyboard');\n this.onMove(event, 'keyboard', deltaX, deltaY);\n this.onMoveEnd(event, 'keyboard');\n }\n\n @HostListener('keydown.ArrowUp', ['$event'])\n protected onArrowUp(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 0, -1);\n }\n\n @HostListener('keydown.ArrowDown', ['$event'])\n protected onArrowDown(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 0, 1);\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n protected onArrowLeft(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, -1, 0);\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n protected onArrowRight(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 1, 0);\n }\n}\n\ninterface NgpMoveBaseEvent {\n /**\n * Whether the event was triggered by a mouse or keyboard event.\n */\n pointerType: PointerType;\n /**\n * Whether the shift key was pressed during the event.\n */\n shiftKey: boolean;\n /**\n * Whether the control key was pressed during the event.\n */\n ctrlKey: boolean;\n /**\n * Whether the meta key was pressed during the event.\n */\n metaKey: boolean;\n /**\n * Whether the alt key was pressed during the event.\n */\n altKey: boolean;\n}\n\nexport type NgpMoveStartEvent = NgpMoveBaseEvent;\nexport type NgpMoveEndEvent = NgpMoveBaseEvent;\n\nexport interface NgpMoveEvent extends NgpMoveBaseEvent {\n /**\n * The amount of pixels moved in the x-axis.\n */\n deltaX: number;\n /**\n * The amount of pixels moved in the y-axis.\n */\n deltaY: number;\n}\n\nexport type PointerType = 'mouse' | 'pen' | 'touch' | 'keyboard' | 'virtual';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpHover } from './hover/hover.directive';\nexport { NgpHoverToken, injectHover } from './hover/hover.token';\nexport { NgpFocus } from './focus/focus.directive';\nexport { NgpFocusToken } from './focus/focus.token';\nexport { NgpFocusVisible } from './focus-visible/focus-visible.directive';\nexport { NgpFocusVisibleToken } from './focus-visible/focus-visible.token';\nexport { NgpPress } from './press/press.directive';\nexport { NgpPressToken } from './press/press.token';\nexport { NgpMove } from './move/move.directive';\nexport { NgpMoveToken } from './move/move.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-interactions.mjs","sources":["../../../../packages/ng-primitives/interactions/src/hover/hover.token.ts","../../../../packages/ng-primitives/interactions/src/hover/hover.directive.ts","../../../../packages/ng-primitives/interactions/src/focus/focus.token.ts","../../../../packages/ng-primitives/interactions/src/focus/focus.directive.ts","../../../../packages/ng-primitives/interactions/src/focus-visible/focus-visible.token.ts","../../../../packages/ng-primitives/interactions/src/focus-visible/focus-visible.directive.ts","../../../../packages/ng-primitives/interactions/src/press/press.token.ts","../../../../packages/ng-primitives/interactions/src/press/press.directive.ts","../../../../packages/ng-primitives/interactions/src/move/move.token.ts","../../../../packages/ng-primitives/interactions/src/move/move.directive.ts","../../../../packages/ng-primitives/interactions/src/index.ts","../../../../packages/ng-primitives/interactions/src/ng-primitives-interactions.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpHover } from './hover.directive';\n\nexport const NgpHoverToken = new InjectionToken<NgpHover>('NgpHoverToken');\n\n/**\n * Inject the Hover directive instance\n * @returns Hover directive instance\n */\nexport function injectHover(): NgpHover {\n return inject(NgpHoverToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n HostListener,\n Injectable,\n PLATFORM_ID,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { onChange } from 'ng-primitives/utils';\nimport { NgpHoverToken } from './hover.token';\n\n/**\n * We use a service here as this value is a singleton\n * and allows us to register the dom events once.\n */\n@Injectable({\n providedIn: 'root',\n})\nclass GlobalPointerEvents {\n /**\n * Whether global mouse events should be ignored.\n */\n ignoreEmulatedMouseEvents: boolean = false;\n\n /**\n * Access the document.\n */\n private readonly document = inject(DOCUMENT);\n\n /**\n * Determine the platform id.\n */\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n // we only want to setup events on the client\n if (isPlatformBrowser(this.platformId)) {\n this.setupGlobalTouchEvents();\n }\n }\n\n private setupGlobalTouchEvents(): void {\n this.document.addEventListener('pointerup', this.handleGlobalPointerEvent.bind(this));\n this.document.addEventListener('touchend', this.setGlobalIgnoreEmulatedMouseEvents.bind(this));\n }\n\n private setGlobalIgnoreEmulatedMouseEvents(): void {\n this.ignoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => (this.ignoreEmulatedMouseEvents = false), 50);\n }\n\n private handleGlobalPointerEvent(event: PointerEvent): void {\n if (event.pointerType === 'touch') {\n this.setGlobalIgnoreEmulatedMouseEvents();\n }\n }\n}\n\n/**\n * A directive for normalizing hover events across the different browsers and devices.\n *\n * This is an Angular port of the useHover hook from\n * react-aria: https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useHover.ts\n */\n@Directive({\n standalone: true,\n selector: '[ngpHover]',\n exportAs: 'ngpHover',\n providers: [{ provide: NgpHoverToken, useExisting: NgpHover }],\n host: {\n '[attr.data-hover]': 'hovered()',\n },\n})\nexport class NgpHover {\n /**\n * Access the global pointer events handler.\n */\n private readonly globalPointerEvents = inject(GlobalPointerEvents);\n\n /**\n * Whether hoving should be disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpHoverDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Store the current hover state.\n */\n protected hovered = signal<boolean>(false);\n\n /**\n * Whether this element should ignore emulated mouse events.\n */\n private ignoreEmulatedMouseEvents: boolean = false;\n\n /**\n * Emit an event when hovering starts.\n */\n readonly hoverStart = output<void>({ alias: 'ngpHoverStart' });\n\n /**\n * Emit an event when hovering ends.\n */\n readonly hoverEnd = output<void>({ alias: 'ngpHoverEnd' });\n\n /**\n * Emit an event when the hover state changes.\n */\n readonly hoverChange = output<boolean>({ alias: 'ngpHover' });\n\n constructor() {\n onChange(this.disabled, this.reset.bind(this));\n onChange(this.isDisabled, this.reset.bind(this));\n }\n\n private reset(shouldReset?: boolean | null): void {\n if (shouldReset) {\n this.onHoverEnd('mouse');\n }\n }\n\n /**\n * Trigger the hover start events.\n * @param event\n * @param pointerType\n */\n private onHoverStart(event: Event, pointerType: string): void {\n if (\n this.isDisabled() ||\n pointerType === 'touch' ||\n this.hovered() ||\n !(event.currentTarget as Element)?.contains(event.target as Element)\n ) {\n return;\n }\n\n this.hovered.set(true);\n this.hoverStart.emit();\n this.hoverChange.emit(true);\n }\n\n /**\n * Trigger the hover end events.\n * @param pointerType\n */\n private onHoverEnd(pointerType: string): void {\n if (pointerType === 'touch' || !this.hovered()) {\n return;\n }\n\n this.hovered.set(false);\n this.hoverEnd.emit();\n this.hoverChange.emit(false);\n }\n\n @HostListener('pointerenter', ['$event'])\n protected onPointerEnter(event: PointerEvent): void {\n if (this.globalPointerEvents.ignoreEmulatedMouseEvents && event.pointerType === 'mouse') {\n return;\n }\n\n this.onHoverStart(event, event.pointerType);\n }\n\n @HostListener('pointerleave', ['$event'])\n protected onPointerLeave(event: PointerEvent): void {\n if (!this.isDisabled() && (event.currentTarget as Element)?.contains(event.target as Element)) {\n this.onHoverEnd(event.pointerType);\n }\n }\n\n @HostListener('touchstart')\n protected onTouchStart(): void {\n this.ignoreEmulatedMouseEvents = true;\n }\n\n @HostListener('mouseenter', ['$event'])\n protected onMouseEnter(event: MouseEvent): void {\n if (!this.ignoreEmulatedMouseEvents && !this.globalPointerEvents.ignoreEmulatedMouseEvents) {\n this.onHoverStart(event, 'mouse');\n }\n\n this.ignoreEmulatedMouseEvents = false;\n }\n\n @HostListener('mouseleave', ['$event'])\n protected onMouseLeave(event: MouseEvent): void {\n if (!this.isDisabled() && (event.currentTarget as Element)?.contains(event.target as Element)) {\n this.onHoverEnd('mouse');\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpFocus } from './focus.directive';\n\nexport const NgpFocusToken = new InjectionToken<NgpFocus>('NgpFocusToken');\n\n/**\n * Inject the Focus directive instance\n */\nexport function injectFocus(): NgpFocus {\n return inject(NgpFocusToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, HostListener, booleanAttribute, input, output, signal } from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { NgpFocusToken } from './focus.token';\n\n/**\n * This was inspired by the React Aria useFocus hook.\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useFocus.ts#L20\n */\n@Directive({\n standalone: true,\n selector: '[ngpFocus]',\n exportAs: 'ngpFocus',\n providers: [{ provide: NgpFocusToken, useExisting: NgpFocus }],\n host: {\n '[attr.data-focus]': 'isFocused()',\n },\n})\nexport class NgpFocus {\n /**\n * Whether the element is currently focused.\n */\n protected isFocused = signal<boolean>(false);\n\n /**\n * Whether listening for focus events is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpFocusDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the focus state changes.\n */\n readonly focus = output<boolean>({ alias: 'ngpFocus' });\n\n /**\n * Listen for focus events.\n * @param event\n */\n @HostListener('focus', ['$event'])\n protected onFocus(event: FocusEvent) {\n if (this.isDisabled()) {\n return;\n }\n\n const ownerDocument = (event.target as HTMLElement)?.ownerDocument ?? document;\n\n // ensure this element is still focused\n if (ownerDocument.activeElement === event.target && event.currentTarget === event.target) {\n this.focus.emit(true);\n this.isFocused.set(true);\n }\n }\n\n /**\n * Listen for blur events.\n * @param event\n */\n @HostListener('blur', ['$event'])\n protected onBlur(event: FocusEvent) {\n if (this.isDisabled()) {\n return;\n }\n\n if (event.currentTarget === event.target) {\n this.focus.emit(false);\n this.isFocused.set(false);\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpFocusVisible } from './focus-visible.directive';\n\nexport const NgpFocusVisibleToken = new InjectionToken<NgpFocusVisible>('NgpFocusVisibleToken');\n\n/**\n * Inject the FocusVisible directive instance\n */\nexport function injectFocusVisible(): NgpFocusVisible {\n return inject(NgpFocusVisibleToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { NgpFocusVisibleToken } from './focus-visible.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpFocusVisible]',\n exportAs: 'ngpFocusVisible',\n providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }],\n host: {\n '[attr.data-focus-visible]': 'isFocused() && !isDisabled()',\n },\n})\nexport class NgpFocusVisible {\n /**\n * Access the element that the directive is applied to.\n */\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the focus monitor.\n */\n private readonly focusMonitor = inject(FocusMonitor);\n\n /**\n * Whether focus events are listened to.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpFocusVisibleDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the element is visually focused.\n */\n readonly focusChange = output<boolean>({\n alias: 'ngpFocusVisible',\n });\n\n /**\n * Whether the element is currently focused.\n */\n protected readonly isFocused = signal<boolean>(false);\n\n constructor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement)\n .pipe(takeUntilDestroyed())\n .subscribe(origin => this.onFocus(origin));\n }\n\n private onFocus(origin: FocusOrigin): void {\n if (this.isDisabled() || this.isFocused()) {\n return;\n }\n\n // for some elements the focus visible state should always appear on focus\n if (this.alwaysShowFocus()) {\n this.isFocused.set(true);\n this.focusChange.emit(true);\n return;\n }\n\n // if the focus origin is keyboard, then the focus is visible\n if (origin === 'keyboard') {\n this.isFocused.set(true);\n this.focusChange.emit(true);\n return;\n }\n }\n\n /**\n * Listen for blur events.\n */\n @HostListener('blur')\n protected onBlur(): void {\n if (this.isDisabled() || !this.isFocused()) {\n return;\n }\n\n this.isFocused.set(false);\n this.focusChange.emit(false);\n }\n\n private alwaysShowFocus(): boolean {\n const nonTextInputTypes = [\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset',\n ];\n\n // if this is an input element and it is a text input\n if (\n this.elementRef.nativeElement instanceof HTMLInputElement &&\n !nonTextInputTypes.includes(this.elementRef.nativeElement.type)\n ) {\n return true;\n }\n\n // if this is a textarea\n if (this.elementRef.nativeElement instanceof HTMLTextAreaElement) {\n return true;\n }\n\n // if this is an element with contenteditable\n if (\n this.elementRef.nativeElement.isContentEditable ||\n this.elementRef.nativeElement.hasAttribute('contenteditable')\n ) {\n return true;\n }\n\n return false;\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpPress } from './press.directive';\n\nexport const NgpPressToken = new InjectionToken<NgpPress>('NgpPressToken');\n\n/**\n * Inject the Press directive instance\n */\nexport function injectPress(): NgpPress {\n return inject(NgpPressToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpPressToken } from './press.token';\n\n/**\n * This was inpsired by Headless UI's active-press hook:\n * https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/hooks/use-active-press.tsx\n */\n\n@Directive({\n standalone: true,\n selector: '[ngpPress]',\n exportAs: 'ngpPress',\n providers: [{ provide: NgpPressToken, useExisting: NgpPress }],\n host: {\n '[attr.data-press]': 'pressed() && !isDisabled()',\n },\n})\nexport class NgpPress {\n /**\n * Access the HTML Element.\n */\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Access the disposables.\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Whether listening for press events is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpPressDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the press begins.\n */\n readonly pressStart = output<void>({\n alias: 'ngpPressStart',\n });\n\n /**\n * Emit when the press ends.\n */\n readonly pressEnd = output<void>({\n alias: 'ngpPressEnd',\n });\n\n /**\n * Emit when the press changes.\n */\n readonly pressChange = output<boolean>({\n alias: 'ngpPress',\n });\n\n /**\n * The press state.\n */\n protected readonly pressed = signal(false);\n\n /**\n * Reset the press state.\n */\n private reset(): void {\n // if we are not pressing, then do nothing\n if (!this.pressed()) {\n return;\n }\n\n // clear any existing disposables\n this.disposableListeners.forEach(dispose => dispose());\n this.pressed.set(false);\n this.pressEnd.emit();\n this.pressChange.emit(false);\n }\n\n /**\n * Store the list of disposables.\n */\n private disposableListeners: (() => void)[] = [];\n\n @HostListener('pointerdown')\n protected onPointerDown(): void {\n if (this.isDisabled()) {\n return;\n }\n\n // clear any existing disposables\n this.disposableListeners.forEach(dispose => dispose());\n\n // update the press state\n this.pressed.set(true);\n this.pressStart.emit();\n this.pressChange.emit(true);\n\n // setup global event listeners to catch events on elements outside the directive\n const ownerDocument = this.element.nativeElement.ownerDocument ?? document;\n\n // if the pointer up event happens on any elements, then we are no longer pressing on this element\n const pointerUp = this.disposables.addEventListener(\n ownerDocument,\n 'pointerup',\n this.reset.bind(this),\n false,\n );\n\n // Instead of relying on the `pointerleave` event, which is not consistently called on iOS Safari,\n // we use the `pointermove` event to determine if we are still \"pressing\".\n // By checking if the target is still within the element, we can determine if the press is ongoing.\n const pointerMove = this.disposables.addEventListener(\n ownerDocument,\n 'pointermove',\n this.onPointerMove.bind(this) as EventListener,\n false,\n );\n\n // if the pointer is cancelled, then we are no longer pressing on this element\n const pointerCancel = this.disposables.addEventListener(\n ownerDocument,\n 'pointercancel',\n this.reset.bind(this),\n false,\n );\n\n this.disposableListeners = [pointerUp, pointerMove, pointerCancel];\n }\n\n private onPointerMove(event: PointerEvent): void {\n if (\n this.element.nativeElement !== event.target &&\n !this.element.nativeElement.contains(event.target as Node)\n ) {\n this.reset();\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpMove } from './move.directive';\n\nexport const NgpMoveToken = new InjectionToken<NgpMove>('NgpMoveToken');\n\n/**\n * Inject the Move directive instance\n */\nexport function injectMove(): NgpMove {\n return inject(NgpMoveToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, HostListener, input, output, signal } from '@angular/core';\nimport { injectDisabled } from 'ng-primitives/internal';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpMoveToken } from './move.token';\n\n/**\n * Inspired by react-aria useMove hook:\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useMove.ts\n */\n\n@Directive({\n standalone: true,\n selector: '[ngpMove]',\n exportAs: 'ngpMove',\n providers: [{ provide: NgpMoveToken, useExisting: NgpMove }],\n host: {\n '[attr.data-move]': 'isMoving()',\n },\n})\nexport class NgpMove {\n /**\n * Access the disposable helper.\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Whether movement is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpMoveDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the disabled state from any parent.\n */\n private readonly isDisabled = injectDisabled(this.disabled);\n\n /**\n * Emit when the move event begins.\n */\n readonly start = output<NgpMoveStartEvent>({\n alias: 'ngpMoveStart',\n });\n\n /**\n * Emit when the element is moved.\n */\n readonly move = output<NgpMoveEvent>({\n alias: 'ngpMove',\n });\n\n /**\n * Emit when the move event ends.\n */\n readonly end = output<NgpMoveEndEvent>({\n alias: 'ngpMoveEnd',\n });\n\n /**\n * Whether the element is currently being moved.\n */\n private isMoving = signal<boolean>(false);\n\n /**\n * Store the last x position of the element.\n */\n private x: number | null = null;\n\n /**\n * Store the last y position of the element.\n */\n private y: number | null = null;\n\n /**\n * Store the id of the last pointer.\n */\n private pointerId: number | null = null;\n\n /**\n * Store the disposable event listeners.\n */\n private disposableListeners: (() => void)[] = [];\n\n /**\n * Handle a move start.\n */\n private onMoveStart(event: PointerEvent | KeyboardEvent, pointerType: PointerType): void {\n this.start.emit({\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n this.isMoving.set(true);\n }\n\n /**\n * Handle a move event.\n */\n private onMove(\n event: PointerEvent | KeyboardEvent,\n pointerType: PointerType,\n deltaX: number,\n deltaY: number,\n ): void {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n this.move.emit({\n deltaX,\n deltaY,\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n }\n\n /**\n * Handle a move end.\n */\n private onMoveEnd(event: PointerEvent | KeyboardEvent, pointerType: PointerType): void {\n this.end.emit({\n pointerType,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n altKey: event.altKey,\n });\n this.isMoving.set(false);\n }\n\n /**\n * Handle the pointer down event.\n */\n @HostListener('pointerdown', ['$event'])\n protected onPointerDown(event: PointerEvent): void {\n // ignore right-click or additional pointers\n if (event.button !== 0 || this.pointerId !== null || this.isDisabled()) {\n return;\n }\n\n // prevent the default behavior\n event.preventDefault();\n event.stopPropagation();\n\n this.onMoveStart(event, event.pointerType as PointerType);\n\n // store the pointer id and initial position\n this.pointerId = event.pointerId;\n this.x = event.pageX;\n this.y = event.pageY;\n\n // add global event listeners\n const pointerMove = this.disposables.addEventListener(\n window,\n 'pointermove',\n this.onPointerMove.bind(this) as EventListener,\n false,\n );\n\n const pointerUp = this.disposables.addEventListener(\n window,\n 'pointerup',\n this.onPointerUp.bind(this) as EventListener,\n false,\n );\n\n const pointerCancel = this.disposables.addEventListener(\n window,\n 'pointercancel',\n this.onPointerUp.bind(this) as EventListener,\n false,\n );\n\n // store the disposable event listeners\n this.disposableListeners = [pointerMove, pointerUp, pointerCancel];\n }\n\n /**\n * Handle the pointer up event.\n */\n protected onPointerUp(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId) {\n return;\n }\n\n const pointerType = (event.pointerType ?? 'mouse') as PointerType;\n this.onMoveEnd(event, pointerType);\n this.pointerId = null;\n this.disposableListeners.forEach(dispose => dispose());\n }\n\n /**\n * Handle the pointer move event.\n */\n protected onPointerMove(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId) {\n return;\n }\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n this.onMove(\n event,\n event.pointerType as PointerType,\n event.pageX - (this.x ?? 0),\n event.pageY - (this.y ?? 0),\n );\n this.x = event.pageX;\n this.y = event.pageY;\n }\n\n private triggerKeyboardMove(event: KeyboardEvent, deltaX: number, deltaY: number): void {\n if (this.isDisabled()) {\n return;\n }\n\n this.onMoveStart(event, 'keyboard');\n this.onMove(event, 'keyboard', deltaX, deltaY);\n this.onMoveEnd(event, 'keyboard');\n }\n\n @HostListener('keydown.ArrowUp', ['$event'])\n protected onArrowUp(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 0, -1);\n }\n\n @HostListener('keydown.ArrowDown', ['$event'])\n protected onArrowDown(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 0, 1);\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n protected onArrowLeft(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, -1, 0);\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n protected onArrowRight(event: KeyboardEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.triggerKeyboardMove(event, 1, 0);\n }\n}\n\ninterface NgpMoveBaseEvent {\n /**\n * Whether the event was triggered by a mouse or keyboard event.\n */\n pointerType: PointerType;\n /**\n * Whether the shift key was pressed during the event.\n */\n shiftKey: boolean;\n /**\n * Whether the control key was pressed during the event.\n */\n ctrlKey: boolean;\n /**\n * Whether the meta key was pressed during the event.\n */\n metaKey: boolean;\n /**\n * Whether the alt key was pressed during the event.\n */\n altKey: boolean;\n}\n\nexport type NgpMoveStartEvent = NgpMoveBaseEvent;\nexport type NgpMoveEndEvent = NgpMoveBaseEvent;\n\nexport interface NgpMoveEvent extends NgpMoveBaseEvent {\n /**\n * The amount of pixels moved in the x-axis.\n */\n deltaX: number;\n /**\n * The amount of pixels moved in the y-axis.\n */\n deltaY: number;\n}\n\nexport type PointerType = 'mouse' | 'pen' | 'touch' | 'keyboard' | 'virtual';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpHover } from './hover/hover.directive';\nexport { NgpHoverToken, injectHover } from './hover/hover.token';\nexport { NgpFocus } from './focus/focus.directive';\nexport { NgpFocusToken } from './focus/focus.token';\nexport { NgpFocusVisible } from './focus-visible/focus-visible.directive';\nexport { NgpFocusVisibleToken } from './focus-visible/focus-visible.token';\nexport { NgpPress } from './press/press.directive';\nexport { NgpPressToken } from './press/press.token';\nexport { NgpMove } from './move/move.directive';\nexport { NgpMoveToken } from './move/move.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, ElementRef, ViewContainerRef, Injector, input, model, booleanAttribute, numberAttribute, computed, signal, Directive, isDevMode } from '@angular/core';
3
3
  import { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';
4
+ import { DOCUMENT } from '@angular/common';
4
5
  import { offset, shift, flip, autoUpdate, computePosition } from '@floating-ui/dom';
5
6
  import { injectDisposables, onBooleanChange } from 'ng-primitives/utils';
6
7
 
@@ -17,7 +18,7 @@ const defaultTooltipConfig = {
17
18
  showDelay: 0,
18
19
  hideDelay: 0,
19
20
  flip: true,
20
- container: document.body,
21
+ container: null,
21
22
  };
22
23
  const NgpTooltipConfigToken = new InjectionToken('NgpTooltipConfigToken');
23
24
  /**
@@ -73,6 +74,10 @@ class NgpTooltipTrigger {
73
74
  * Access the view container ref.
74
75
  */
75
76
  this.viewContainerRef = inject(ViewContainerRef);
77
+ /**
78
+ * Access the document.
79
+ */
80
+ this.document = inject(DOCUMENT);
76
81
  /**
77
82
  * Access the injector.
78
83
  */
@@ -203,7 +208,7 @@ class NgpTooltipTrigger {
203
208
  }
204
209
  createTooltip() {
205
210
  const portal = new TemplatePortal(this.tooltip(), this.viewContainerRef, undefined, this.injector);
206
- const domOutlet = new DomPortalOutlet(this.container(), undefined, undefined, Injector.create({
211
+ const domOutlet = new DomPortalOutlet(this.container() ?? this.document.body, undefined, undefined, Injector.create({
207
212
  parent: this.injector,
208
213
  providers: [provideTooltipTrigger(this)],
209
214
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-tooltip.mjs","sources":["../../../../packages/ng-primitives/tooltip/src/config/tooltip.config.ts","../../../../packages/ng-primitives/tooltip/src/tooltip-trigger/tooltip-trigger.token.ts","../../../../packages/ng-primitives/tooltip/src/tooltip-trigger/tooltip-trigger.directive.ts","../../../../packages/ng-primitives/tooltip/src/tooltip/tooltip.token.ts","../../../../packages/ng-primitives/tooltip/src/tooltip/tooltip.directive.ts","../../../../packages/ng-primitives/tooltip/src/index.ts","../../../../packages/ng-primitives/tooltip/src/ng-primitives-tooltip.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\nimport { type Placement } from '@floating-ui/dom';\n\nexport interface NgpTooltipConfig {\n /**\n * Define the offset of the tooltip relative to the trigger.\n * @default 4\n */\n offset: number;\n\n /**\n * Define the placement of the tooltip relative to the trigger.\n * @default 'top'\n */\n placement: Placement;\n\n /**\n * Define the delay before the tooltip is shown.\n * @default 0\n */\n showDelay: number;\n\n /**\n * Define the delay before the tooltip is hidden.\n * @default 0\n */\n hideDelay: number;\n\n /**\n * Define whether the tooltip should flip when there is not enough space for the tooltip.\n * @default true\n */\n flip: boolean;\n\n /**\n * Define the container in to which the tooltip should be attached.\n * @default document.body\n */\n container: HTMLElement;\n}\n\nexport const defaultTooltipConfig: NgpTooltipConfig = {\n offset: 4,\n placement: 'top',\n showDelay: 0,\n hideDelay: 0,\n flip: true,\n container: document.body,\n};\n\nexport const NgpTooltipConfigToken = new InjectionToken<NgpTooltipConfig>('NgpTooltipConfigToken');\n\n/**\n * Provide the default Tooltip configuration\n * @param config The Tooltip configuration\n * @returns The provider\n */\nexport function provideTooltipConfig(config: Partial<NgpTooltipConfig>): Provider[] {\n return [\n {\n provide: NgpTooltipConfigToken,\n useValue: { ...defaultTooltipConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Tooltip configuration\n * @returns The global Tooltip configuration\n */\nexport function injectTooltipConfig(): NgpTooltipConfig {\n return inject(NgpTooltipConfigToken, { optional: true }) ?? defaultTooltipConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpTooltipTrigger } from './tooltip-trigger.directive';\n\nexport const NgpTooltipTriggerToken = new InjectionToken<NgpTooltipTrigger>(\n 'NgpTooltipTriggerToken',\n);\n\n/**\n * Inject the TooltipTrigger directive instance\n */\nexport function injectTooltipTrigger(): NgpTooltipTrigger {\n return inject(NgpTooltipTriggerToken);\n}\n\n/**\n * Provides the TooltipTrigger directive instance\n * @param trigger\n */\nexport function provideTooltipTrigger(trigger: NgpTooltipTrigger) {\n return { provide: NgpTooltipTriggerToken, useValue: trigger };\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport {\n Middleware,\n Placement,\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\nimport { injectDisposables, onBooleanChange } from 'ng-primitives/utils';\nimport { injectTooltipConfig } from '../config/tooltip.config';\nimport { NgpTooltipTriggerToken, provideTooltipTrigger } from './tooltip-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpTooltipTrigger]',\n exportAs: 'ngpTooltipTrigger',\n providers: [{ provide: NgpTooltipTriggerToken, useExisting: NgpTooltipTrigger }],\n host: {\n '[attr.data-state]': 'state()',\n '[attr.data-disabled]': 'disabled()',\n '(mouseenter)': 'open.set(true)',\n '(mouseleave)': 'open.set(false)',\n '(focus)': 'open.set(true)',\n '(blur)': 'open.set(false)',\n },\n})\nexport class NgpTooltipTrigger implements OnDestroy {\n /**\n * Access the trigger element\n */\n private readonly trigger = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * Access the global tooltip configuration.\n */\n private readonly config = injectTooltipConfig();\n\n /**\n * Access the disposable utilities\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Access the tooltip template ref.\n */\n readonly tooltip = input.required<TemplateRef<void>>({\n alias: 'ngpTooltipTrigger',\n });\n\n /**\n * The open state of the tooltip.\n * @default false\n */\n readonly open = model<boolean>(false, {\n alias: 'ngpTooltipTriggerOpen',\n });\n\n /**\n * Define if the trigger should be disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpTooltipTriggerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Define the placement of the tooltip relative to the trigger.\n * @default 'top'\n */\n readonly placement = input<Placement>(this.config.placement, {\n alias: 'ngpTooltipTriggerPlacement',\n });\n\n /**\n * Define the offset of the tooltip relative to the trigger.\n * @default 0\n */\n readonly offset = input<number, NumberInput>(this.config.offset, {\n alias: 'ngpTooltipTriggerOffset',\n transform: numberAttribute,\n });\n\n /**\n * Define the delay before the tooltip is displayed.\n * @default 0\n */\n readonly showDelay = input<number, NumberInput>(this.config.showDelay, {\n alias: 'ngpTooltipTriggerShowDelay',\n transform: numberAttribute,\n });\n\n /**\n * Define the delay before the tooltip is hidden.\n * @default 0\n */\n readonly hideDelay = input<number, NumberInput>(this.config.hideDelay, {\n alias: 'ngpTooltipTriggerHideDelay',\n transform: numberAttribute,\n });\n\n /**\n * Define whether the tooltip should flip when there is not enough space for the tooltip.\n * @default true\n */\n readonly flip = input<boolean, BooleanInput>(this.config.flip, {\n alias: 'ngpTooltipTriggerFlip',\n transform: booleanAttribute,\n });\n\n /**\n * Define the container in which the tooltip should be attached.\n * @default document.body\n */\n readonly container = input<HTMLElement>(this.config.container, {\n alias: 'ngpTooltipTriggerContainer',\n });\n\n /**\n * Store the tooltip view ref.\n */\n private viewRef: EmbeddedViewRef<void> | null = null;\n\n /**\n * Derive the tooltip middleware from the provided configuration.\n */\n private readonly middleware = computed(() => {\n const middleware: Middleware[] = [offset(this.offset()), shift()];\n\n if (this.flip()) {\n middleware.push(flip());\n }\n\n return middleware;\n });\n\n /**\n * Store the computed position of the tooltip.\n * @internal\n */\n readonly position = signal<{ x: number; y: number }>({\n x: 0,\n y: 0,\n });\n\n /**\n * Store the state of the tooltip.\n * @internal\n */\n readonly state = signal<TooltipState>('closed');\n\n /**\n * The dispose function to stop computing the position of the tooltip.\n */\n private dispose?: () => void;\n\n constructor() {\n // any time the open state changes then show or hide the tooltip\n onBooleanChange(this.open, this.show.bind(this), this.hide.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroyTooltip();\n }\n\n private show(): void {\n // if the trigger is disabled or the tooltip is already open then do not show the tooltip\n if (this.disabled() || this.state() === 'open' || this.state() === 'opening') {\n return;\n }\n\n this.state.set('opening');\n this.disposables.setTimeout(() => this.createTooltip(), this.showDelay());\n }\n\n private hide(): void {\n // if the trigger is disabled or the tooltip is already closed then do not hide the tooltip\n if (this.disabled() || this.state() === 'closed' || this.state() === 'closing') {\n return;\n }\n\n this.state.set('closing');\n this.disposables.setTimeout(() => this.destroyTooltip(), this.hideDelay());\n }\n\n private createTooltip(): void {\n const portal = new TemplatePortal(\n this.tooltip(),\n this.viewContainerRef,\n undefined,\n this.injector,\n );\n\n const domOutlet = new DomPortalOutlet(\n this.container(),\n undefined,\n undefined,\n Injector.create({\n parent: this.injector,\n providers: [provideTooltipTrigger(this)],\n }),\n );\n\n this.viewRef = domOutlet.attach(portal);\n this.viewRef.detectChanges();\n\n const outletElement = this.viewRef.rootNodes[0];\n\n this.dispose = autoUpdate(this.trigger.nativeElement, outletElement, async () => {\n const position = await computePosition(this.trigger.nativeElement, outletElement, {\n placement: this.placement(),\n middleware: this.middleware(),\n });\n\n this.position.set({ x: position.x, y: position.y });\n });\n\n this.state.set('open');\n }\n\n private destroyTooltip(): void {\n this.viewRef?.destroy();\n this.viewRef = null;\n this.dispose?.();\n this.state.set('closed');\n }\n}\n\nexport type TooltipState = 'closed' | 'opening' | 'open' | 'closing';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpTooltip } from './tooltip.directive';\n\nexport const NgpTooltipToken = new InjectionToken<NgpTooltip>('NgpTooltipToken');\n\n/**\n * Inject the Tooltip directive instance\n */\nexport function injectTooltip(): NgpTooltip {\n return inject(NgpTooltipToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, ElementRef, OnInit, computed, inject, isDevMode } from '@angular/core';\nimport { injectTooltipTrigger } from '../tooltip-trigger/tooltip-trigger.token';\nimport { NgpTooltipToken } from './tooltip.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpTooltip]',\n exportAs: 'ngpTooltip',\n providers: [{ provide: NgpTooltipToken, useExisting: NgpTooltip }],\n host: {\n role: 'tooltip',\n '[style.left.px]': 'x()',\n '[style.top.px]': 'y()',\n },\n})\nexport class NgpTooltip implements OnInit {\n /**\n * Access the tooltip element.\n */\n private readonly tooltip = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the trigger instance.\n */\n private readonly trigger = injectTooltipTrigger();\n\n /**\n * Compute the x position of the tooltip.\n */\n protected readonly x = computed(() => this.trigger.position().x);\n\n /**\n * Compute the y position of the tooltip.\n */\n protected readonly y = computed(() => this.trigger.position().y);\n\n ngOnInit(): void {\n // if the element does not have a fixed position then throw a warning in dev mode\n if (isDevMode()) {\n const { position } = getComputedStyle(this.tooltip.nativeElement);\n\n if (position !== 'absolute') {\n console.warn(\n `The tooltip element must have an absolute position. The current position is ${position}.`,\n );\n }\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpTooltipConfig, provideTooltipConfig } from './config/tooltip.config';\nexport { NgpTooltipTrigger } from './tooltip-trigger/tooltip-trigger.directive';\nexport { NgpTooltipTriggerToken } from './tooltip-trigger/tooltip-trigger.token';\nexport { NgpTooltip } from './tooltip/tooltip.directive';\nexport { NgpTooltipToken } from './tooltip/tooltip.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-primitives-tooltip.mjs","sources":["../../../../packages/ng-primitives/tooltip/src/config/tooltip.config.ts","../../../../packages/ng-primitives/tooltip/src/tooltip-trigger/tooltip-trigger.token.ts","../../../../packages/ng-primitives/tooltip/src/tooltip-trigger/tooltip-trigger.directive.ts","../../../../packages/ng-primitives/tooltip/src/tooltip/tooltip.token.ts","../../../../packages/ng-primitives/tooltip/src/tooltip/tooltip.directive.ts","../../../../packages/ng-primitives/tooltip/src/index.ts","../../../../packages/ng-primitives/tooltip/src/ng-primitives-tooltip.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\nimport { type Placement } from '@floating-ui/dom';\n\nexport interface NgpTooltipConfig {\n /**\n * Define the offset of the tooltip relative to the trigger.\n * @default 4\n */\n offset: number;\n\n /**\n * Define the placement of the tooltip relative to the trigger.\n * @default 'top'\n */\n placement: Placement;\n\n /**\n * Define the delay before the tooltip is shown.\n * @default 0\n */\n showDelay: number;\n\n /**\n * Define the delay before the tooltip is hidden.\n * @default 0\n */\n hideDelay: number;\n\n /**\n * Define whether the tooltip should flip when there is not enough space for the tooltip.\n * @default true\n */\n flip: boolean;\n\n /**\n * Define the container in to which the tooltip should be attached.\n * @default document.body\n */\n container: HTMLElement | null;\n}\n\nexport const defaultTooltipConfig: NgpTooltipConfig = {\n offset: 4,\n placement: 'top',\n showDelay: 0,\n hideDelay: 0,\n flip: true,\n container: null,\n};\n\nexport const NgpTooltipConfigToken = new InjectionToken<NgpTooltipConfig>('NgpTooltipConfigToken');\n\n/**\n * Provide the default Tooltip configuration\n * @param config The Tooltip configuration\n * @returns The provider\n */\nexport function provideTooltipConfig(config: Partial<NgpTooltipConfig>): Provider[] {\n return [\n {\n provide: NgpTooltipConfigToken,\n useValue: { ...defaultTooltipConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Tooltip configuration\n * @returns The global Tooltip configuration\n */\nexport function injectTooltipConfig(): NgpTooltipConfig {\n return inject(NgpTooltipConfigToken, { optional: true }) ?? defaultTooltipConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpTooltipTrigger } from './tooltip-trigger.directive';\n\nexport const NgpTooltipTriggerToken = new InjectionToken<NgpTooltipTrigger>(\n 'NgpTooltipTriggerToken',\n);\n\n/**\n * Inject the TooltipTrigger directive instance\n */\nexport function injectTooltipTrigger(): NgpTooltipTrigger {\n return inject(NgpTooltipTriggerToken);\n}\n\n/**\n * Provides the TooltipTrigger directive instance\n * @param trigger\n */\nexport function provideTooltipTrigger(trigger: NgpTooltipTrigger) {\n return { provide: NgpTooltipTriggerToken, useValue: trigger };\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport {\n Middleware,\n Placement,\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\nimport { injectDisposables, onBooleanChange } from 'ng-primitives/utils';\nimport { injectTooltipConfig } from '../config/tooltip.config';\nimport { NgpTooltipTriggerToken, provideTooltipTrigger } from './tooltip-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpTooltipTrigger]',\n exportAs: 'ngpTooltipTrigger',\n providers: [{ provide: NgpTooltipTriggerToken, useExisting: NgpTooltipTrigger }],\n host: {\n '[attr.data-state]': 'state()',\n '[attr.data-disabled]': 'disabled()',\n '(mouseenter)': 'open.set(true)',\n '(mouseleave)': 'open.set(false)',\n '(focus)': 'open.set(true)',\n '(blur)': 'open.set(false)',\n },\n})\nexport class NgpTooltipTrigger implements OnDestroy {\n /**\n * Access the trigger element\n */\n private readonly trigger = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the view container ref.\n */\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Access the document.\n */\n private readonly document = inject(DOCUMENT);\n\n /**\n * Access the injector.\n */\n private readonly injector = inject(Injector);\n\n /**\n * Access the global tooltip configuration.\n */\n private readonly config = injectTooltipConfig();\n\n /**\n * Access the disposable utilities\n */\n private readonly disposables = injectDisposables();\n\n /**\n * Access the tooltip template ref.\n */\n readonly tooltip = input.required<TemplateRef<void>>({\n alias: 'ngpTooltipTrigger',\n });\n\n /**\n * The open state of the tooltip.\n * @default false\n */\n readonly open = model<boolean>(false, {\n alias: 'ngpTooltipTriggerOpen',\n });\n\n /**\n * Define if the trigger should be disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpTooltipTriggerDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Define the placement of the tooltip relative to the trigger.\n * @default 'top'\n */\n readonly placement = input<Placement>(this.config.placement, {\n alias: 'ngpTooltipTriggerPlacement',\n });\n\n /**\n * Define the offset of the tooltip relative to the trigger.\n * @default 0\n */\n readonly offset = input<number, NumberInput>(this.config.offset, {\n alias: 'ngpTooltipTriggerOffset',\n transform: numberAttribute,\n });\n\n /**\n * Define the delay before the tooltip is displayed.\n * @default 0\n */\n readonly showDelay = input<number, NumberInput>(this.config.showDelay, {\n alias: 'ngpTooltipTriggerShowDelay',\n transform: numberAttribute,\n });\n\n /**\n * Define the delay before the tooltip is hidden.\n * @default 0\n */\n readonly hideDelay = input<number, NumberInput>(this.config.hideDelay, {\n alias: 'ngpTooltipTriggerHideDelay',\n transform: numberAttribute,\n });\n\n /**\n * Define whether the tooltip should flip when there is not enough space for the tooltip.\n * @default true\n */\n readonly flip = input<boolean, BooleanInput>(this.config.flip, {\n alias: 'ngpTooltipTriggerFlip',\n transform: booleanAttribute,\n });\n\n /**\n * Define the container in which the tooltip should be attached.\n * @default document.body\n */\n readonly container = input<HTMLElement | null>(this.config.container, {\n alias: 'ngpTooltipTriggerContainer',\n });\n\n /**\n * Store the tooltip view ref.\n */\n private viewRef: EmbeddedViewRef<void> | null = null;\n\n /**\n * Derive the tooltip middleware from the provided configuration.\n */\n private readonly middleware = computed(() => {\n const middleware: Middleware[] = [offset(this.offset()), shift()];\n\n if (this.flip()) {\n middleware.push(flip());\n }\n\n return middleware;\n });\n\n /**\n * Store the computed position of the tooltip.\n * @internal\n */\n readonly position = signal<{ x: number; y: number }>({\n x: 0,\n y: 0,\n });\n\n /**\n * Store the state of the tooltip.\n * @internal\n */\n readonly state = signal<TooltipState>('closed');\n\n /**\n * The dispose function to stop computing the position of the tooltip.\n */\n private dispose?: () => void;\n\n constructor() {\n // any time the open state changes then show or hide the tooltip\n onBooleanChange(this.open, this.show.bind(this), this.hide.bind(this));\n }\n\n ngOnDestroy(): void {\n this.destroyTooltip();\n }\n\n private show(): void {\n // if the trigger is disabled or the tooltip is already open then do not show the tooltip\n if (this.disabled() || this.state() === 'open' || this.state() === 'opening') {\n return;\n }\n\n this.state.set('opening');\n this.disposables.setTimeout(() => this.createTooltip(), this.showDelay());\n }\n\n private hide(): void {\n // if the trigger is disabled or the tooltip is already closed then do not hide the tooltip\n if (this.disabled() || this.state() === 'closed' || this.state() === 'closing') {\n return;\n }\n\n this.state.set('closing');\n this.disposables.setTimeout(() => this.destroyTooltip(), this.hideDelay());\n }\n\n private createTooltip(): void {\n const portal = new TemplatePortal(\n this.tooltip(),\n this.viewContainerRef,\n undefined,\n this.injector,\n );\n\n const domOutlet = new DomPortalOutlet(\n this.container() ?? this.document.body,\n undefined,\n undefined,\n Injector.create({\n parent: this.injector,\n providers: [provideTooltipTrigger(this)],\n }),\n );\n\n this.viewRef = domOutlet.attach(portal);\n this.viewRef.detectChanges();\n\n const outletElement = this.viewRef.rootNodes[0];\n\n this.dispose = autoUpdate(this.trigger.nativeElement, outletElement, async () => {\n const position = await computePosition(this.trigger.nativeElement, outletElement, {\n placement: this.placement(),\n middleware: this.middleware(),\n });\n\n this.position.set({ x: position.x, y: position.y });\n });\n\n this.state.set('open');\n }\n\n private destroyTooltip(): void {\n this.viewRef?.destroy();\n this.viewRef = null;\n this.dispose?.();\n this.state.set('closed');\n }\n}\n\nexport type TooltipState = 'closed' | 'opening' | 'open' | 'closing';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpTooltip } from './tooltip.directive';\n\nexport const NgpTooltipToken = new InjectionToken<NgpTooltip>('NgpTooltipToken');\n\n/**\n * Inject the Tooltip directive instance\n */\nexport function injectTooltip(): NgpTooltip {\n return inject(NgpTooltipToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, ElementRef, OnInit, computed, inject, isDevMode } from '@angular/core';\nimport { injectTooltipTrigger } from '../tooltip-trigger/tooltip-trigger.token';\nimport { NgpTooltipToken } from './tooltip.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpTooltip]',\n exportAs: 'ngpTooltip',\n providers: [{ provide: NgpTooltipToken, useExisting: NgpTooltip }],\n host: {\n role: 'tooltip',\n '[style.left.px]': 'x()',\n '[style.top.px]': 'y()',\n },\n})\nexport class NgpTooltip implements OnInit {\n /**\n * Access the tooltip element.\n */\n private readonly tooltip = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the trigger instance.\n */\n private readonly trigger = injectTooltipTrigger();\n\n /**\n * Compute the x position of the tooltip.\n */\n protected readonly x = computed(() => this.trigger.position().x);\n\n /**\n * Compute the y position of the tooltip.\n */\n protected readonly y = computed(() => this.trigger.position().y);\n\n ngOnInit(): void {\n // if the element does not have a fixed position then throw a warning in dev mode\n if (isDevMode()) {\n const { position } = getComputedStyle(this.tooltip.nativeElement);\n\n if (position !== 'absolute') {\n console.warn(\n `The tooltip element must have an absolute position. The current position is ${position}.`,\n );\n }\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the Apache 2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpTooltipConfig, provideTooltipConfig } from './config/tooltip.config';\nexport { NgpTooltipTrigger } from './tooltip-trigger/tooltip-trigger.directive';\nexport { NgpTooltipTriggerToken } from './tooltip-trigger/tooltip-trigger.token';\nexport { NgpTooltip } from './tooltip/tooltip.directive';\nexport { NgpTooltipToken } from './tooltip/tooltip.token';\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,7 +1,7 @@
1
1
  {
2
2
  "name": "ng-primitives",
3
3
  "license": "Apache-2.0",
4
- "version": "0.7.4",
4
+ "version": "0.7.6",
5
5
  "peerDependencies": {
6
6
  "@angular/core": ">=18.0.0",
7
7
  "@angular/cdk": ">=18.0.0",
@@ -55,18 +55,18 @@
55
55
  "esm": "./esm2022/autofill/ng-primitives-autofill.mjs",
56
56
  "default": "./fesm2022/ng-primitives-autofill.mjs"
57
57
  },
58
- "./button": {
59
- "types": "./button/index.d.ts",
60
- "esm2022": "./esm2022/button/ng-primitives-button.mjs",
61
- "esm": "./esm2022/button/ng-primitives-button.mjs",
62
- "default": "./fesm2022/ng-primitives-button.mjs"
63
- },
64
58
  "./avatar": {
65
59
  "types": "./avatar/index.d.ts",
66
60
  "esm2022": "./esm2022/avatar/ng-primitives-avatar.mjs",
67
61
  "esm": "./esm2022/avatar/ng-primitives-avatar.mjs",
68
62
  "default": "./fesm2022/ng-primitives-avatar.mjs"
69
63
  },
64
+ "./button": {
65
+ "types": "./button/index.d.ts",
66
+ "esm2022": "./esm2022/button/ng-primitives-button.mjs",
67
+ "esm": "./esm2022/button/ng-primitives-button.mjs",
68
+ "default": "./fesm2022/ng-primitives-button.mjs"
69
+ },
70
70
  "./checkbox": {
71
71
  "types": "./checkbox/index.d.ts",
72
72
  "esm2022": "./esm2022/checkbox/ng-primitives-checkbox.mjs",
@@ -37,7 +37,7 @@ export interface NgpTooltipConfig {
37
37
  * Define the container in to which the tooltip should be attached.
38
38
  * @default document.body
39
39
  */
40
- container: HTMLElement;
40
+ container: HTMLElement | null;
41
41
  }
42
42
  export declare const defaultTooltipConfig: NgpTooltipConfig;
43
43
  export declare const NgpTooltipConfigToken: InjectionToken<NgpTooltipConfig>;
@@ -18,6 +18,10 @@ export declare class NgpTooltipTrigger implements OnDestroy {
18
18
  * Access the view container ref.
19
19
  */
20
20
  private readonly viewContainerRef;
21
+ /**
22
+ * Access the document.
23
+ */
24
+ private readonly document;
21
25
  /**
22
26
  * Access the injector.
23
27
  */
@@ -73,7 +77,7 @@ export declare class NgpTooltipTrigger implements OnDestroy {
73
77
  * Define the container in which the tooltip should be attached.
74
78
  * @default document.body
75
79
  */
76
- readonly container: import("@angular/core").InputSignal<HTMLElement>;
80
+ readonly container: import("@angular/core").InputSignal<HTMLElement | null>;
77
81
  /**
78
82
  * Store the tooltip view ref.
79
83
  */