{"version":3,"file":"primeng-drawer.mjs","sources":["../../src/drawer/style/drawerstyle.ts","../../src/drawer/drawer.ts","../../src/drawer/primeng-drawer.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style as drawer_style } from '@primeuix/styles/drawer';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n    ${drawer_style}\n\n    /** For PrimeNG **/\n    .p-drawer {\n        position: fixed;\n        display: flex;\n        flex-direction: column;\n    }\n\n    .p-drawer-left {\n        top: 0;\n        left: 0;\n        width: 20rem;\n        height: 100%;\n    }\n\n    .p-drawer-right {\n        top: 0;\n        right: 0;\n        width: 20rem;\n        height: 100%;\n    }\n\n    .p-drawer-top {\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 10rem;\n    }\n\n    .p-drawer-bottom {\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 10rem;\n    }\n\n    .p-drawer-full {\n        width: 100%;\n        height: 100%;\n        top: 0;\n        left: 0;\n        -webkit-transition: none;\n        transition: none;\n    }\n\n    .p-overlay-mask-enter {\n        animation: p-overlay-mask-enter-animation 150ms forwards;\n    }\n\n    .p-overlay-mask-leave {\n        animation: p-overlay-mask-leave-animation 150ms forwards;\n    }\n\n    @keyframes p-overlay-mask-enter-animation {\n        from {\n            background-color: transparent;\n        }\n        to {\n            background-color: rgba(0, 0, 0, 0.4);\n        }\n    }\n    @keyframes p-overlay-mask-leave-animation {\n        from {\n            background-color: rgba(0, 0, 0, 0.4);\n        }\n        to {\n            background-color: transparent;\n        }\n    }\n`;\n\nconst classes = {\n    mask: ({ instance }) => ['p-drawer-mask', { 'p-overlay-mask p-overlay-mask-enter': instance.modal }, { 'p-drawer-full': instance.fullScreen }],\n    root: ({ instance }) => [\n        'p-drawer p-component',\n        {\n            'p-drawer-full': instance.fullScreen,\n            'p-drawer-open': instance.visible\n        },\n        `p-drawer-${instance.position}`\n    ],\n    header: 'p-drawer-header',\n    title: 'p-drawer-title',\n    pcCloseButton: 'p-drawer-close-button',\n    content: 'p-drawer-content',\n    footer: 'p-drawer-footer'\n};\n\n@Injectable()\nexport class DrawerStyle extends BaseStyle {\n    name = 'drawer';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Drawer is a panel component displayed as an overlay at the edges of the screen.\n *\n * [Live Demo](https://www.primeng.org/drawer)\n *\n * @module drawerstyle\n *\n */\nexport enum DrawerClasses {\n    /**\n     * Class name of the mask element\n     */\n    mask = 'p-drawer-mask',\n    /**\n     * Class name of the root element\n     */\n    root = 'p-drawer',\n    /**\n     * Class name of the header element\n     */\n    header = 'p-drawer-header',\n    /**\n     * Class name of the title element\n     */\n    title = 'p-drawer-title',\n    /**\n     * Class name of the close button element\n     */\n    pcCloseButton = 'p-drawer-close-button',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-drawer-content'\n}\n\nexport interface DrawerStyle extends BaseStyle {}\n","import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    inject,\n    InjectionToken,\n    Input,\n    NgModule,\n    numberAttribute,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { addClass, appendChild, removeClass, setAttribute } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Button, ButtonProps } from 'primeng/button';\nimport { blockBodyScroll, unblockBodyScroll } from 'primeng/dom';\nimport { TimesIcon } from 'primeng/icons';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { DrawerPassThrough } from 'primeng/types/drawer';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { DrawerStyle } from './style/drawerstyle';\nimport { FocusTrapModule } from 'primeng/focustrap';\n\nconst DRAWER_INSTANCE = new InjectionToken<Drawer>('DRAWER_INSTANCE');\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n\nconst defaultTransformOptions = 'translate3d(-100%, 0px, 0px)';\n/**\n * Sidebar is a panel component displayed as an overlay at the edges of the screen.\n * @group Components\n */\n@Component({\n    selector: 'p-drawer',\n    standalone: true,\n    imports: [CommonModule, Button, TimesIcon, SharedModule, Bind, FocusTrapModule],\n    providers: [DrawerStyle, { provide: DRAWER_INSTANCE, useExisting: Drawer }, { provide: PARENT_INSTANCE, useExisting: Drawer }],\n    hostDirectives: [Bind],\n    template: `\n        <div\n            #container\n            [pBind]=\"ptm('root')\"\n            [class]=\"cn(cx('root'), styleClass)\"\n            *ngIf=\"visible\"\n            [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n            (@panelState.start)=\"onAnimationStart($event)\"\n            (@panelState.done)=\"onAnimationEnd($event)\"\n            [style]=\"style\"\n            role=\"complementary\"\n            (keydown)=\"onKeyDown($event)\"\n            pFocusTrap\n        >\n            @if (headlessTemplate || _headlessTemplate) {\n                <ng-container *ngTemplateOutlet=\"headlessTemplate || _headlessTemplate\"></ng-container>\n            } @else {\n                <div [pBind]=\"ptm('header')\" [ngClass]=\"cx('header')\" [attr.data-pc-section]=\"'header'\">\n                    <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n                    <div *ngIf=\"header\" [pBind]=\"ptm('title')\" [class]=\"cx('title')\">{{ header }}</div>\n                    <p-button\n                        *ngIf=\"showCloseIcon && closable\"\n                        [pt]=\"ptm('pcCloseButton')\"\n                        [ngClass]=\"cx('pcCloseButton')\"\n                        (onClick)=\"close($event)\"\n                        (keydown.enter)=\"close($event)\"\n                        [buttonProps]=\"closeButtonProps\"\n                        [ariaLabel]=\"ariaCloseLabel\"\n                        [attr.data-pc-group-section]=\"'iconcontainer'\"\n                    >\n                        <ng-template #icon>\n                            <svg data-p-icon=\"times\" *ngIf=\"!closeIconTemplate && !_closeIconTemplate\" [attr.data-pc-section]=\"'closeicon'\" />\n                            <ng-template *ngTemplateOutlet=\"closeIconTemplate || _closeIconTemplate\"></ng-template>\n                        </ng-template>\n                    </p-button>\n                </div>\n\n                <div [pBind]=\"ptm('content')\" [ngClass]=\"cx('content')\" [attr.data-pc-section]=\"'content'\">\n                    <ng-content></ng-content>\n                    <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n                </div>\n\n                <ng-container *ngIf=\"footerTemplate || _footerTemplate\">\n                    <div [pBind]=\"ptm('footer')\" [ngClass]=\"cx('footer')\" [attr.data-pc-section]=\"'footer'\">\n                        <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n                    </div>\n                </ng-container>\n            }\n        </div>\n    `,\n    animations: [trigger('panelState', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None\n})\nexport class Drawer extends BaseComponent<DrawerPassThrough> {\n    $pcDrawer: Drawer | undefined = inject(DRAWER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n    }\n\n    /**\n     *  Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @group Props\n     */\n    @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any = 'body';\n    /**\n     * Whether to block scrolling of the document when drawer is active.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) blockScroll: boolean = false;\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Aria label of the close icon.\n     * @group Props\n     */\n    @Input() ariaCloseLabel: string | undefined;\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n    /**\n     * Whether an overlay mask is displayed behind the drawer.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) modal: boolean = true;\n    /**\n     * Used to pass all properties of the ButtonProps to the Button component.\n     * @group Props\n     */\n    @Input() closeButtonProps: ButtonProps = { severity: 'secondary', text: true, rounded: true };\n    /**\n     * Whether to dismiss drawer on click of the mask.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) dismissible: boolean = true;\n    /**\n     * Whether to display the close icon.\n     * @group Props\n     * @deprecated use 'closable' instead.\n     */\n    @Input({ transform: booleanAttribute }) showCloseIcon: boolean = true;\n    /**\n     * Specifies if pressing escape key should hide the drawer.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closeOnEscape: boolean = true;\n    /**\n     * Transition options of the animation.\n     * @group Props\n     */\n    @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * Specifies the visibility of the dialog.\n     * @group Props\n     */\n    @Input() get visible(): boolean {\n        return this._visible ?? false;\n    }\n    set visible(val: boolean) {\n        this._visible = val;\n    }\n    /**\n     * Specifies the position of the drawer, valid values are \"left\", \"right\", \"bottom\" and \"top\".\n     * @group Props\n     */\n    @Input() get position(): string {\n        return this._position;\n    }\n    set position(value: string) {\n        this._position = value;\n        if (value === 'full') {\n            this.transformOptions = 'none';\n            return;\n        }\n        switch (value) {\n            case 'left':\n                this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n                break;\n            case 'right':\n                this.transformOptions = 'translate3d(100%, 0px, 0px)';\n                break;\n            case 'bottom':\n                this.transformOptions = 'translate3d(0px, 100%, 0px)';\n                break;\n            case 'top':\n                this.transformOptions = 'translate3d(0px, -100%, 0px)';\n                break;\n        }\n    }\n    /**\n     * Adds a close icon to the header to hide the dialog.\n     * @group Props\n     */\n    @Input() get fullScreen(): boolean {\n        return this._fullScreen;\n    }\n    set fullScreen(value: boolean) {\n        this._fullScreen = value;\n        if (value === true) {\n            this.transformOptions = 'none';\n        } else {\n            this.transformOptions = defaultTransformOptions;\n        }\n    }\n    /**\n     * Title content of the dialog.\n     * @group Props\n     */\n    @Input() header: string | undefined;\n    /**\n     * Style of the mask.\n     * @group Props\n     */\n    @Input() maskStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Whether to display close button.\n     * @group Props\n     * @defaultValue true\n     */\n    @Input({ transform: booleanAttribute }) closable: boolean = true;\n    /**\n     * Callback to invoke when dialog is shown.\n     * @group Emits\n     */\n    @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Callback to invoke when dialog is hidden.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Callback to invoke when dialog visibility is changed.\n     * @param {boolean} value - Visible value.\n     * @group Emits\n     */\n    @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n    @ViewChild('container') containerViewChild: ElementRef | undefined;\n\n    @ViewChild('closeButton') closeButtonViewChild: ElementRef | undefined;\n\n    initialized: boolean | undefined;\n\n    _visible: boolean | undefined;\n\n    _position: string = 'left';\n\n    _fullScreen: boolean = false;\n\n    container: Nullable<HTMLDivElement>;\n\n    transformOptions: any = defaultTransformOptions;\n\n    mask: Nullable<HTMLDivElement>;\n\n    maskClickListener: VoidListener;\n\n    documentEscapeListener: VoidListener;\n\n    animationEndListener: VoidListener;\n\n    _componentStyle = inject(DrawerStyle);\n\n    onAfterViewInit() {\n        this.initialized = true;\n    }\n    /**\n     * Content template for the content of the drawer.\n     * @group Templates\n     */\n    @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n    /**\n     * Header template for the header of the drawer.\n     * @group Templates\n     */\n    @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n    /**\n     * Content template for the footer of the drawer.\n     * @group Templates\n     */\n    @ContentChild('content', { descendants: false }) contentTemplate: TemplateRef<any> | undefined;\n    /**\n     * Close icon template for the close icon of the drawer.\n     * @group Templates\n     */\n    @ContentChild('closeicon', { descendants: false }) closeIconTemplate: TemplateRef<any> | undefined;\n    /**\n     * Headless template for the headless drawer.\n     * @group Templates\n     */\n    @ContentChild('headless', { descendants: false }) headlessTemplate: TemplateRef<any> | undefined;\n\n    _headerTemplate: TemplateRef<any> | undefined;\n\n    _footerTemplate: TemplateRef<any> | undefined;\n\n    _contentTemplate: TemplateRef<any> | undefined;\n\n    _closeIconTemplate: TemplateRef<any> | undefined;\n\n    _headlessTemplate: TemplateRef<any> | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    onAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'content':\n                    this._contentTemplate = item.template;\n                    break;\n                case 'header':\n                    this._headerTemplate = item.template;\n                    break;\n                case 'footer':\n                    this._footerTemplate = item.template;\n                    break;\n                case 'closeicon':\n                    this._closeIconTemplate = item.template;\n                    break;\n                case 'headless':\n                    this._headlessTemplate = item.template;\n                    break;\n\n                default:\n                    this._contentTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        if (event.code === 'Escape') {\n            this.hide(false);\n        }\n    }\n\n    show() {\n        this.container?.setAttribute(this.$attrSelector, '');\n\n        if (this.autoZIndex) {\n            ZIndexUtils.set('modal', this.container, this.baseZIndex || this.config.zIndex.modal);\n        }\n\n        if (this.modal) {\n            this.enableModality();\n        }\n\n        this.onShow.emit({});\n        this.visibleChange.emit(true);\n    }\n\n    hide(emit: boolean = true) {\n        if (emit) {\n            this.onHide.emit({});\n        }\n\n        if (this.modal) {\n            this.disableModality();\n        }\n    }\n\n    close(event: Event) {\n        this.hide();\n        this.visibleChange.emit(false);\n        event.preventDefault();\n    }\n\n    enableModality() {\n        const activeDrawers = this.document.querySelectorAll('.p-drawer-open');\n        const activeDrawersLength = activeDrawers.length;\n        const zIndex = activeDrawersLength == 1 ? String(parseInt((this.container as HTMLDivElement).style.zIndex) - 1) : String(parseInt((activeDrawers[activeDrawersLength - 1] as HTMLElement).style.zIndex) - 1);\n\n        if (!this.mask) {\n            this.mask = this.renderer.createElement('div');\n\n            if (this.mask) {\n                setAttribute(this.mask, 'style', this.getMaskStyle());\n                setAttribute(this.mask, 'style', `z-index: ${zIndex}`);\n                addClass(this.mask, this.cx('mask'));\n            }\n\n            if (this.dismissible) {\n                this.maskClickListener = this.renderer.listen(this.mask, 'click', (event: any) => {\n                    if (this.dismissible) {\n                        this.close(event);\n                    }\n                });\n            }\n\n            this.renderer.appendChild(this.document.body, this.mask);\n            if (this.blockScroll) {\n                blockBodyScroll();\n            }\n        }\n    }\n\n    getMaskStyle() {\n        return this.maskStyle\n            ? Object.entries(this.maskStyle)\n                  .map(([key, value]) => `${key}: ${value}`)\n                  .join('; ')\n            : '';\n    }\n\n    disableModality() {\n        if (this.mask) {\n            removeClass(this.mask, 'p-overlay-mask-enter');\n            addClass(this.mask, 'p-overlay-mask-leave');\n            this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyModal.bind(this));\n        }\n    }\n\n    destroyModal() {\n        this.unbindMaskClickListener();\n\n        if (this.mask) {\n            this.renderer.removeChild(this.document.body, this.mask);\n        }\n\n        if (this.blockScroll) {\n            unblockBodyScroll();\n        }\n\n        this.unbindAnimationEndListener();\n        this.mask = null;\n    }\n\n    onAnimationStart(event: any) {\n        switch (event.toState) {\n            case 'visible':\n                this.container = event.element;\n                this.appendContainer();\n                this.show();\n\n                if (this.closeOnEscape) {\n                    this.bindDocumentEscapeListener();\n                }\n                break;\n        }\n    }\n\n    onAnimationEnd(event: any) {\n        switch (event.toState) {\n            case 'void':\n                this.hide(false);\n                ZIndexUtils.clear(this.container);\n                this.unbindGlobalListeners();\n                break;\n        }\n    }\n\n    appendContainer() {\n        if (this.appendTo) {\n            if (this.appendTo === 'body' && this.container) {\n                this.renderer.appendChild(this.document.body, this.container);\n            } else if (this.container) {\n                appendChild(this.appendTo, this.container);\n            }\n        }\n    }\n\n    bindDocumentEscapeListener() {\n        const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : this.document;\n\n        this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n            if (event.which == 27) {\n                if (parseInt((this.container as HTMLDivElement).style.zIndex) === ZIndexUtils.get(this.container)) {\n                    this.close(event);\n                }\n            }\n        });\n    }\n\n    unbindDocumentEscapeListener() {\n        if (this.documentEscapeListener) {\n            this.documentEscapeListener();\n            this.documentEscapeListener = null;\n        }\n    }\n\n    unbindMaskClickListener() {\n        if (this.maskClickListener) {\n            this.maskClickListener();\n            this.maskClickListener = null;\n        }\n    }\n\n    unbindGlobalListeners() {\n        this.unbindMaskClickListener();\n        this.unbindDocumentEscapeListener();\n    }\n\n    unbindAnimationEndListener() {\n        if (this.animationEndListener && this.mask) {\n            this.animationEndListener();\n            this.animationEndListener = null;\n        }\n    }\n\n    onDestroy() {\n        this.initialized = false;\n\n        if (this.visible && this.modal) {\n            this.destroyModal();\n        }\n\n        if (this.appendTo && this.container) {\n            this.renderer.appendChild(this.el.nativeElement, this.container);\n        }\n\n        if (this.container && this.autoZIndex) {\n            ZIndexUtils.clear(this.container);\n        }\n\n        this.container = null;\n        this.unbindGlobalListeners();\n        this.unbindAnimationEndListener();\n    }\n}\n\n@NgModule({\n    imports: [Drawer, SharedModule],\n    exports: [Drawer, SharedModule]\n})\nexport class DrawerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["drawer_style","style"],"mappings":"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"}