{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, getSheetPositionClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n  standalone: true,\n    selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective implements OnDestroy {\n    @HostBinding('style.height') height;\n    private bsModalShownSubscription: Subscription;\n\n    constructor(\n        elRef: ElementRef,\n        @Inject(DialogRef) private dialogRef,\n        bsModal: BsModalService,\n         private renderer: Renderer2\n    ) {\n        addClass(elRef.nativeElement, DEFAULT_CLS);\n\n        this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {\n            const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n            const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];\n            let dialogRootContainer = $('body.wm-app')[0];\n            // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n            if(!dialogRootContainer) {\n                const dialogBackrop = $('body > .modal-backdrop')[0];\n                const parentContainer = $('body > modal-container')[0];\n                dialogRootContainer = $('.wm-app')[0];\n                if(dialogRootContainer  && parentContainer ){\n                    if(dialogBackrop){\n                        this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n                    }\n                    this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n               }\n            }\n            const isSheet = this.dialogRef.sheet;\n            const sheetPosition = this.dialogRef.sheetPosition;\n            if(isSheet) {\n                $(dialogRoot).addClass('modal-sheet');\n                $(dialogRoot).addClass(getSheetPositionClass(sheetPosition));\n            }\n            const animation = this.dialogRef.animation;\n            if(animation) {\n                $(dialogContent).addClass('animated');\n                $(dialogContent).addClass(animation);\n            }\n            const width = this.dialogRef.width;\n            const height = this.dialogRef.height;\n            if(height){\n               setTimeout(e=>{\n                    setCSS($(elRef.nativeElement)[0], 'height', height);\n                });\n            }\n            if (dialogRoot) {\n                if (width) {\n                    setCSS(dialogRoot, 'width', width);\n                }\n                setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n                setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n            }\n            // Clean up subscription after first use\n            if (this.bsModalShownSubscription) {\n                this.bsModalShownSubscription.unsubscribe();\n                this.bsModalShownSubscription = null;\n            }\n        });\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed\n        if (this.bsModalShownSubscription) {\n            this.bsModalShownSubscription.unsubscribe();\n            this.bsModalShownSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Clear dialogRef reference\n        this.dialogRef = null;\n    }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-dialogfooter',\n        new Map([\n            ['class', PROP_STRING],\n            ['name', PROP_STRING],\n            ['show', {value: true, ...PROP_BOOLEAN}]\n        ])\n    );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n    widgetType: 'wm-dialogfooter',\n    hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n  standalone: true,\n    selector: 'div[wmDialogFooter]',\n    providers: [\n        provideAsWidgetRef(DialogFooterDirective)\n    ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n    static initializeProps = registerProps();\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_INFO, explicitContext);\n    }\n}\n","import {Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {BsModalRef, BsModalService, ModalOptions} from 'ngx-bootstrap/modal';\n\nimport {Subscription} from 'rxjs';\n\nimport {AbstractDialogService, findRootContainer, generateGUId, isMobile} from '@wm/core';\n\nimport {BaseComponent, IDialog, IWidgetConfig, WidgetConfig} from '@wm/components/base';\n\nconst eventsRegistered = false;\n\nconst invokeOpenedCallback = (ref) => {\n    if (ref) {\n        setTimeout(() => {\n            const root = findRootContainer(ref.$element);\n            // if page styles have to be applied to dialog then dialog has to be child of page element.\n            if (root) {\n                $('body > modal-container > div').wrap('<' + root + '/>');\n            }\n            ref.invokeEventCallback('opened', { $event: { type: 'opened' } });\n            // Focusing the first focusable element when the dialog is opened\n            const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n            const keyboardFocusableElements = [container.querySelectorAll(\n                'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n            )].filter(el => {\n                return (\n                    !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n            })[0];\n            $(keyboardFocusableElements[0]).focus();\n\n            const openedDialogs = ref.dialogService.getOpenedDialogs();\n            if (openedDialogs.length > 1) {\n                let zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n                $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n                $('bs-modal-backdrop').css('z-index', zIndex + 1);\n            }\n        });\n    }\n};\n\nconst invokeClosedCallback = (ref) => {\n    if (ref) {\n        ref.invokeEventCallback('close');\n        ref.dialogRef = undefined;\n        const openedDialogs = ref.dialogService.getOpenedDialogs();\n        if (openedDialogs.length >= 1) {\n            let zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n            $('bs-modal-backdrop').css('z-index', zIndex - 1);\n        }\n    }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n    public name: string;\n\n    private readonly dialogService: AbstractDialogService;\n    private readonly bsModal: BsModalService;\n\n    private dialogRef: BsModalRef;\n    private dialogId: number;\n    public titleId: string = 'wmdialog-' + generateGUId();\n    public sheet: string | boolean;\n    public sheetPosition: string;\n    private dialogOriginFocusStack: HTMLElement[] = [];\n\n    protected constructor(\n        inj: Injector,\n        @Inject(WidgetConfig) config: IWidgetConfig,\n        protected modalOptions: ModalOptions,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        super(inj, config, explicitContext);\n        this.dialogService = inj.get(AbstractDialogService);\n        this.bsModal = inj.get(BsModalService);\n        const router = inj.get(Router);\n\n        const subscriptions: Subscription[] = [\n            this.bsModal.onShown.subscribe(({ id }) => {\n                const ref = this.dialogService.getLastOpenedDialog();\n                if (ref === this && !this.dialogId) {\n                    // Always get the reference of last pushed dialog in the array for calling onOpen callback\n                    invokeOpenedCallback(ref);\n                    this.dialogId = id;\n                }\n            }),\n            this.bsModal.onShow.subscribe(() => {}),\n            this.bsModal.onHidden.subscribe((closeReason) => {\n                let ref = this.dialogService.getDialogRefFromClosedDialogs();\n                if (this.dialogId && closeReason?.id === this.dialogId) {\n                    ref = this;\n                } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n                    ref = this.dialogService.getLastOpenedDialog();\n                }\n                if (ref === this) {\n                    this.dialogId = null;\n                    // remove the dialog reference from opened dialogs and closed dialogs\n                    this.dialogService.removeFromOpenedDialogs(ref);\n                    this.dialogService.removeFromClosedDialogs(ref);\n                    invokeClosedCallback(ref);\n                    if (ref.closeCallBackFn) {\n                        ref.closeCallBackFn();\n                    }\n                }\n            }),\n            this.bsModal.onHide.subscribe(() => {}),\n            router.events.subscribe(e => {\n                if (e instanceof NavigationEnd) {\n                    this.close();\n                }\n            })\n        ];\n        this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n            this.dialogService.removeFromOpenedDialogs(this);\n            this.dialogService.removeFromClosedDialogs(this);\n            subscriptions.forEach(s => s.unsubscribe());\n        });\n    }\n\n    /**\n     * Opens the dialog\n     * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n     */\n    public open(initState?: any) {\n\n        // remove the popovers in the page to avoid the overlap with dialog\n        // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n        // do not open the dialog again if it is already opened\n        const duplicateDialogCheck = (openedDialog) => {\n            return openedDialog === this;\n        };\n\n        if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n            return;\n        }\n\n        this.dialogService.addToOpenedDialogs(this);\n        // extend the context with the initState\n        Object.assign(this.context, initState);\n        this.modalOptions.ariaLabelledBy = this.titleId;\n        this.dialogOriginFocusStack.push(document.activeElement as HTMLElement);\n        this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n        // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n        if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile())) {\n            const parentSelector = $('body > app-root')[0];\n            parentSelector.setAttribute('aria-hidden', 'true');\n        }\n        $('.cdk-focus-trap-anchor').removeAttr('aria-hidden');\n    }\n\n    /**\n     * closes the dialog\n     * invokes the on-close event callback\n     */\n    public close() {\n        // remove the popovers in the page to avoid the overlap with dialog\n        // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n        if (this.dialogRef) {\n            const lastDialogOrigin = this.dialogOriginFocusStack.pop();\n            this.dialogService.addToClosedDialogs(this);\n            this.dialogRef.hide();\n            // Return focus to the originating element upon dialog closure\n            lastDialogOrigin?.focus();\n        }\n    }\n\n    /**\n     * Register the dialog with the dialog service for programmatic access\n     */\n    protected register(scope) {\n        // add scope along with name in the dialogRefsCollection Map while registering dialog\n        // So that 2 dialogs having same name on different pages won't be overridden.\n        this.dialogService.register(this.name, this, scope);\n    }\n\n    /**\n     * De Register the dialog with the dialog service after dialog destruction\n     */\n    protected deRegister(scope) {\n        this.dialogService.deRegister(this.name, scope);\n    }\n\n    /**\n     * subclasses of BaseDialog must implement this method to return the proper template element ref\n     * bsModal will use this refence to open the dialog\n     * @returns {TemplateRef<any>}\n     */\n    protected abstract getTemplateRef(): TemplateRef<any>;\n\n    protected onPropertyChange(key: string, nv: any, ov?: any) {\n        // ignore the class attribute.\n        // Prevent the framework from setting the class on the host element.\n        if (key === 'class' || key === 'name' || key === 'tabindex') {\n            return;\n        } else if (key === 'animation') {\n            this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n            if (nv) {\n                this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n            }\n        }\n        super.onPropertyChange(key, nv, ov);\n    }\n\n    public ngOnDestroy() {\n        this.close();\n        this.deRegister(this.viewParent);\n        super.ngOnDestroy();\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { ImagePipe, TextContentDirective } from \"@wm/components/base\";\nimport {Component, ElementRef, Inject, Input} from '@angular/core';\n\nimport {addClass, App, toBoolean} from '@wm/core';\n\nimport {DialogRef} from '@wm/components/base';\nimport {BaseDialog} from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n    standalone: true,\n    imports: [CommonModule, TextContentDirective, ImagePipe],\n    selector: 'div[wmDialogHeader]',\n    templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n    @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n    @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n    @Input() public iconmargin: string;\n    @Input() public iconclass: string;\n    @Input() public iconurl: string;\n    @Input() public closable = true;\n    @Input() public heading: string;\n    @Input() public headinglevel?: string = 'h4';\n    @Input() public subheading: string;\n    @Input() public titleid:string;\n    @Input() public title: string;\n    isPrism: boolean;\n\n    public get isClosable() {\n        return toBoolean(this.closable);\n    }\n\n    constructor(elRef: ElementRef, @Inject(DialogRef) public dialogRef: BaseDialog, public app: App ) {\n        addClass(elRef.nativeElement, DEFAULT_CLS);\n        this.isPrism = this.app.isPrism;\n    }\n\n    public closeDialog() {\n        this.dialogRef.close();\n    }\n}\n","@if (isClosable) {\n  <button (click)=\"closeDialog();\"\n    [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n    <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n  </button>\n}\n\n@switch (headinglevel) {\n  @case ('h1') {\n    <h1 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h1>\n  }\n  @case ('h2') {\n    <h2 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h2>\n  }\n  @case ('h3') {\n    <h3 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h3>\n  }\n  @case ('h4') {\n    <h4 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h4>\n  }\n  @case ('h5') {\n    <h5 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h5>\n  }\n  @case ('h6') {\n    <h6 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h6>\n  }\n  @default {\n    <h4 class=\"app-dialog-title modal-title\">\n      <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n    </h4>\n  }\n}\n\n<ng-template #headerTemplate>\n  @if (iconclass && !iconurl) {\n    <i [ngClass]=\"iconclass\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"></i>\n  }\n  @if (iconurl) {\n    <img data-identifier=\"img\" [src]=\"iconurl | image\" [ngStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin}\"/>\n  }\n  <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n  @if (subheading) {\n    <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n  }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS","i1"],"mappings":"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"}