{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.props.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.html","../../../../../projects/components/widgets/dialogs/partial-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-partialdialog',\n        new Map(\n            [\n                ['animation', PROP_STRING],\n                ['class', PROP_STRING],\n                ['closable', {value: true, PROP_BOOLEAN}],\n                ['content', PROP_STRING],\n                ['iconclass', {value: 'wi wi-file', PROP_STRING}],\n                ['iconheight', PROP_STRING],\n                ['iconmargin', PROP_STRING],\n                ['iconurl', PROP_STRING],\n                ['iconwidth', PROP_STRING],\n                ['modal', {value: false, ...PROP_BOOLEAN}],\n                ['name', PROP_STRING],\n                ['oktext', {value: 'OK', ...PROP_STRING}],\n                ['showactions', {value: true, ...PROP_BOOLEAN}],\n                ['tabindex', {value: 0, ...PROP_NUMBER}],\n                ['headinglevel', {value: 'h4', ...PROP_STRING}],\n                ['title', {value: 'Page Content', ...PROP_STRING}]\n            ]\n        )\n    );\n};\n","import {\n    Attribute,\n    Component,\n    ContentChild,\n    Inject,\n    Injector,\n    OnInit,\n    OnDestroy,\n    Optional,\n    TemplateRef,\n    ViewChild\n} from '@angular/core';\n\nimport { App, toBoolean } from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './partial-dialog.props';\nimport { ButtonComponent } from '@wm/components/input/button';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-page-dialog';\nconst WIDGET_INFO = { widgetType: 'wm-partialdialog' };\n\n@Component({\n    standalone: true,\n    imports: [DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent, NgTemplateOutlet],\n    selector: 'div[wmPartialDialog]',\n    templateUrl: './partial-dialog.component.html',\n    providers: [\n        provideAsWidgetRef(PartialDialogComponent),\n        provideAsDialogRef(PartialDialogComponent)\n    ]\n})\nexport class PartialDialogComponent extends BaseDialog implements OnInit, OnDestroy {\n    static initializeProps = registerProps();\n    @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n    @ContentChild(TemplateRef) dialogContent: TemplateRef<any>;\n    @ContentChild('partial') partialRef;\n\n    protected app;\n    protected Widgets;\n    protected Variables;\n    protected Actions;\n    private partialLoadedSubscription: any;\n\n    constructor(\n        inj: Injector,\n        app: App,\n        @Attribute('class') dialogClass: string,\n        @Attribute('modal') modal: string | boolean,\n        @Attribute('closable') closable: string | boolean,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        if (modal === null || modal === undefined) {\n            modal = false;\n        }\n\n        if (closable === null || closable === undefined) {\n            closable = true;\n        }\n\n        // setting the backdrop to 'static' will not close the dialog on backdrop click\n        const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n        super(\n            inj,\n            WIDGET_INFO,\n            {\n                class: `${DIALOG_CLS} ${dialogClass || ''}`,\n                backdrop,\n                keyboard: !toBoolean(modal)\n            },\n            explicitContext\n        );\n        this.app = app;\n    }\n\n    protected getTemplateRef(): TemplateRef<any> {\n        return this.dialogTemplate;\n    }\n\n    /**\n     * Click event handler for the ok button\n     * invokes on-ok event callback\n     * @param {Event} $event\n     */\n    onOk($event: Event) {\n        this.invokeEventCallback('ok', { $event });\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        this.register(this.viewParent);\n    }\n\n    private setPartialLoadListener() {\n        // Clean up existing subscription if any\n        if (this.partialLoadedSubscription) {\n            this.partialLoadedSubscription();\n            this.partialLoadedSubscription = null;\n        }\n\n        this.partialLoadedSubscription = this.app.subscribe('partialLoaded', () => {\n            const parEle = this.partialRef?.nativeElement;\n            let partialScope;\n            if (parEle) {\n                partialScope = parEle.widget;\n                this.Widgets = partialScope.Widgets;\n                this.Variables = partialScope.Variables;\n                this.Actions = partialScope.Actions;\n            }\n\n            // Clean up subscription after use\n            if (this.partialLoadedSubscription) {\n                this.partialLoadedSubscription();\n                this.partialLoadedSubscription = null;\n            }\n        });\n    }\n\n    public open(initState?: any) {\n        super.open(initState);\n        // WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog\n        this.setPartialLoadListener();\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from partialLoaded event\n        if (this.partialLoadedSubscription) {\n            this.partialLoadedSubscription();\n            this.partialLoadedSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Clear ContentChild references\n        this.partialRef = null;\n        this.dialogContent = null;\n\n        super.ngOnDestroy();\n    }\n}\n","<ng-template #dialogTemplate>\n  <div wmDialogHeader [closable]=\"closable\"\n    [iconclass]=\"iconclass\"\n    [iconurl]=\"iconurl\"\n    [iconwidth]=\"iconwidth\"\n    [iconheight]=\"iconheight\"\n    [iconmargin]=\"iconmargin\"\n    [heading]=\"title\"\n    [headinglevel]=\"headinglevel\"\n    [title]=\"title\"\n    [titleid]=\"titleId\"\n  ></div>\n  <div wmDialogBody>\n    <ng-container *ngTemplateOutlet=\"dialogContent\"></ng-container>\n  </div>\n  @if (showactions) {\n    <div wmDialogFooter>\n      <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n      wmButton></button>\n    </div>\n  }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}