UNPKG

primeng-shadowdom-directives

Version:
58 lines 7.96 kB
import { isPlatformBrowser } from '@angular/common'; import { Directive, Host, Inject, Optional, PLATFORM_ID, Self, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "primeng/splitbutton"; export class psdSplitButtonDirective { constructor(hostEl, platformId) { this.hostEl = hostEl; this.platformId = platformId; hostEl.onDropdownButtonClick = (event) => { hostEl.onDropdownClick.emit(event); hostEl.menu?.toggle({ currentTarget: hostEl.containerViewChild?.nativeElement, relativeAlign: hostEl.appendTo == null, }); hostEl.isExpanded.set(hostEl.menu?.visible); }; } ngAfterViewInit() { const menu = this.hostEl.menu; menu.bindOutsideClickListener = () => { if (isPlatformBrowser(this.platformId)) { if (!menu.outsideClickListener) { menu.outsideClickListener = menu.renderer.listen(document, 'click', (event) => { const path = event.path || (event.composedPath && event.composedPath()); const target = event.target.shadowRoot ? path[0] : event.target; const isOutsideContainer = menu.containerViewChild && !menu.containerViewChild.nativeElement.contains(target); const isOutsideTarget = menu.popup ? !(menu.target && (menu.target === target || menu.target.contains(target))) : true; if (isOutsideContainer && isOutsideTarget) { menu.hide(); } }); } } }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdSplitButtonDirective, deps: [{ token: i1.SplitButton, host: true, optional: true, self: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: psdSplitButtonDirective, selector: "[psdSplitButton]", ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: psdSplitButtonDirective, decorators: [{ type: Directive, args: [{ selector: '[psdSplitButton]', }] }], ctorParameters: () => [{ type: i1.SplitButton, decorators: [{ type: Host }, { type: Self }, { type: Optional }] }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRidXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmltZW5nLXNoYWRvd2RvbS1kaXJlY3RpdmVzL3NyYy9kaXJlY3RpdmVzL3NwbGl0YnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQzs7O0FBTXZCLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDK0MsTUFBbUIsRUFDbkMsVUFBZTtRQURDLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUU1QyxNQUFNLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDcEQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7Z0JBQ2xCLGFBQWEsRUFBRSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsYUFBYTtnQkFDdkQsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSTthQUN2QyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsRUFBRTtZQUNuQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDOUMsUUFBUSxFQUNSLE9BQU8sRUFDUCxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNSLE1BQU0sSUFBSSxHQUNSLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO3dCQUM3RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUVoRSxNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsa0JBQWtCOzRCQUN2QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSzs0QkFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FDQyxJQUFJLENBQUMsTUFBTTtnQ0FDWCxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3pEOzRCQUNILENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ1QsSUFBSSxrQkFBa0IsSUFBSSxlQUFlLEVBQUUsQ0FBQzs0QkFDMUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNkLENBQUM7b0JBQ0gsQ0FBQyxDQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDOytHQTdDVSx1QkFBdUIscUZBR3hCLFdBQVc7bUdBSFYsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzswQkFHSSxJQUFJOzswQkFBSSxJQUFJOzswQkFBSSxRQUFROzswQkFDeEIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0LFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBQTEFURk9STV9JRCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGxpdEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcHNkU3BsaXRCdXR0b25dJyxcbn0pXG5leHBvcnQgY2xhc3MgcHNkU3BsaXRCdXR0b25EaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASG9zdCgpIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBob3N0RWw6IFNwbGl0QnV0dG9uLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55XG4gICkge1xuICAgIGhvc3RFbC5vbkRyb3Bkb3duQnV0dG9uQ2xpY2sgPSAoZXZlbnQ/OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBob3N0RWwub25Ecm9wZG93bkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgaG9zdEVsLm1lbnU/LnRvZ2dsZSh7XG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGhvc3RFbC5jb250YWluZXJWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHJlbGF0aXZlQWxpZ246IGhvc3RFbC5hcHBlbmRUbyA9PSBudWxsLFxuICAgICAgfSk7XG4gICAgICBob3N0RWwuaXNFeHBhbmRlZC5zZXQoaG9zdEVsLm1lbnU/LnZpc2libGUhKTtcbiAgICB9O1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLmhvc3RFbC5tZW51ITtcbiAgICBtZW51LmJpbmRPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgIGlmICghbWVudS5vdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgIG1lbnUub3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBtZW51LnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXRoID1cbiAgICAgICAgICAgICAgICBldmVudC5wYXRoIHx8IChldmVudC5jb21wb3NlZFBhdGggJiYgZXZlbnQuY29tcG9zZWRQYXRoKCkpO1xuICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQuc2hhZG93Um9vdCA/IHBhdGhbMF0gOiBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ29udGFpbmVyID1cbiAgICAgICAgICAgICAgICBtZW51LmNvbnRhaW5lclZpZXdDaGlsZCAmJlxuICAgICAgICAgICAgICAgICFtZW51LmNvbnRhaW5lclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzT3V0c2lkZVRhcmdldCA9IG1lbnUucG9wdXBcbiAgICAgICAgICAgICAgICA/ICEoXG4gICAgICAgICAgICAgICAgICAgIG1lbnUudGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIChtZW51LnRhcmdldCA9PT0gdGFyZ2V0IHx8IG1lbnUudGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICAgICAgICBpZiAoaXNPdXRzaWRlQ29udGFpbmVyICYmIGlzT3V0c2lkZVRhcmdldCkge1xuICAgICAgICAgICAgICAgIG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==