UNPKG

primeng-shadowdom-directives

Version:
44 lines 6.52 kB
import { Directive, Host, Optional, Self } from "@angular/core"; import { DomHandler } from "primeng/dom"; import * as i0 from "@angular/core"; import * as i1 from "primeng/overlaypanel"; export class psdOverlayPanelDirective { constructor(hostEl, zone) { this.hostEl = hostEl; this.zone = zone; hostEl.bindDocumentClickListener = () => { if (!hostEl.documentClickListener && hostEl.dismissable) { this.zone.runOutsideAngular(() => { let documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click'; const documentTarget = hostEl.el ? hostEl.el.nativeElement.ownerDocument : 'document'; hostEl.documentClickListener = hostEl.renderer.listen(documentTarget, documentEvent, (event) => { const path = event.path || (event.composedPath && event.composedPath()); const target = event.target.shadowRoot ? path[0] : event.target; if (!hostEl.container?.contains(target) && hostEl.target !== target && !hostEl.target.contains(target) && !hostEl.selfClick) { this.zone.run(() => { hostEl.hide(); }); } hostEl.selfClick = false; hostEl.cd.markForCheck(); }); }); } }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdOverlayPanelDirective, deps: [{ token: i1.OverlayPanel, host: true, optional: true, self: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: psdOverlayPanelDirective, selector: "[psdOverlayPanel]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdOverlayPanelDirective, decorators: [{ type: Directive, args: [{ selector: '[psdOverlayPanel]', }] }], ctorParameters: () => [{ type: i1.OverlayPanel, decorators: [{ type: Host }, { type: Self }, { type: Optional }] }, { type: i0.NgZone }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpbWVuZy1zaGFkb3dkb20tZGlyZWN0aXZlcy9zcmMvZGlyZWN0aXZlcy9vdmVybGF5cGFuZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFLekMsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUMrQyxNQUFvQixFQUN6RCxJQUFZO1FBRHlCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDekQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUVwQixNQUFNLENBQUMseUJBQXlCLEdBQUcsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtvQkFDL0IsSUFBSSxhQUFhLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDaEUsTUFBTSxjQUFjLEdBQVEsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7b0JBRTNGLE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQzdGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO3dCQUN4RSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBO3dCQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDNUgsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dDQUNqQixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ2hCLENBQUMsQ0FBQyxDQUFDO3dCQUNMLENBQUM7d0JBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ3pCLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzNCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQTtJQUNILENBQUM7K0dBMUJVLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzswQkFHSSxJQUFJOzswQkFBSSxJQUFJOzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBOZ1pvbmUsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gXCJwcmltZW5nL292ZXJsYXlwYW5lbFwiO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gXCJwcmltZW5nL2RvbVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcHNkT3ZlcmxheVBhbmVsXScsXG59KVxuZXhwb3J0IGNsYXNzIHBzZE92ZXJsYXlQYW5lbERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBIb3N0KCkgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbDogT3ZlcmxheVBhbmVsLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lXG4gICkge1xuICAgIGhvc3RFbC5iaW5kRG9jdW1lbnRDbGlja0xpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgaWYgKCFob3N0RWwuZG9jdW1lbnRDbGlja0xpc3RlbmVyICYmIGhvc3RFbC5kaXNtaXNzYWJsZSkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgIGxldCBkb2N1bWVudEV2ZW50ID0gRG9tSGFuZGxlci5pc0lPUygpID8gJ3RvdWNoc3RhcnQnIDogJ2NsaWNrJztcbiAgICAgICAgICBjb25zdCBkb2N1bWVudFRhcmdldDogYW55ID0gaG9zdEVsLmVsID8gaG9zdEVsLmVsLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudCA6ICdkb2N1bWVudCc7XG5cbiAgICAgICAgICBob3N0RWwuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gaG9zdEVsLnJlbmRlcmVyLmxpc3Rlbihkb2N1bWVudFRhcmdldCwgZG9jdW1lbnRFdmVudCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gZXZlbnQucGF0aCB8fCAoZXZlbnQuY29tcG9zZWRQYXRoICYmIGV2ZW50LmNvbXBvc2VkUGF0aCgpKTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldC5zaGFkb3dSb290ID8gcGF0aFswXSA6IGV2ZW50LnRhcmdldFxuICAgICAgICAgICAgaWYgKCFob3N0RWwuY29udGFpbmVyPy5jb250YWlucyh0YXJnZXQpICYmIGhvc3RFbC50YXJnZXQgIT09IHRhcmdldCAmJiAhaG9zdEVsLnRhcmdldC5jb250YWlucyh0YXJnZXQpICYmICFob3N0RWwuc2VsZkNsaWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGhvc3RFbC5oaWRlKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBob3N0RWwuc2VsZkNsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICBob3N0RWwuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdfQ==