{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/wizard/src/wizard.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.component.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.html","../../../../../projects/components/widgets/containers/wizard/src/wizard-action/wizard-action.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-action/wizard-action.directive.ts","../../../../../projects/components/widgets/containers/wizard/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-wizard',\n        new Map(\n            [\n                ['actionsalignment', {value: 'right', ...PROP_STRING}],\n                ['cancelable', {value: true, ...PROP_BOOLEAN}],\n                ['cancelbtnlabel', {value: 'Cancel', ...PROP_STRING}],\n                ['class', {value: 'classic', ...PROP_STRING}],\n                ['dataset', PROP_ANY],\n                ['defaultstep', {value: 'none', ...PROP_STRING}],\n                ['defaultstepindex', {value: 0, ...PROP_NUMBER}],\n                ['donebtnlabel', {value: 'Done', ...PROP_STRING}],\n                ['enablenext', {value: false, ...PROP_BOOLEAN}],\n                ['name', PROP_STRING],\n                ['nextbtnlabel', {value: 'Next', ...PROP_STRING}],\n                ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n                ['previousbtnlabel', {value: 'Previous', ...PROP_STRING}],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['stepstyle', {value: 'auto', ...PROP_STRING}],\n                ['type', PROP_STRING]\n            ]\n        )\n    );\n};\n","import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-wizardstep',\n        new Map(\n            [\n                ['class', PROP_STRING],\n                ['content', PROP_STRING],\n                ['doneiconclass', {value: 'wi wi-done', ...PROP_STRING}],\n                ['dynamicStepIndex', PROP_NUMBER], // internal property\n                ['enableskip', {value: false, ...PROP_BOOLEAN}],\n                ['iconclass', {value: 'wi wi-person', ...PROP_STRING}],\n                ['isdynamic', PROP_STRING], // internal property\n                ['name', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['subtitle', PROP_STRING],\n                ['title', {value: 'Step Title', ...PROP_STRING}]\n            ]\n        )\n    );\n};\n","import {\n    AfterViewInit,\n    Component,\n    ContentChildren,\n    HostBinding,\n    Inject,\n    Injector,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Self\n} from \"@angular/core\";\nimport {\n    getCurrentWidgets,\n    IWidgetConfig,\n    provideAsWidgetRef,\n    RedrawableDirective,\n    StylableComponent\n} from \"@wm/components/base\";\nimport {NgForm} from \"@angular/forms\";\nimport {registerProps} from \"./wizard-step.props\";\nimport {noop} from \"@wm/core\";\nimport {WizardComponent} from \"../wizard.component\";\n\nconst DEFAULT_CLS = 'app-wizard-step-content';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-wizardstep',\n    hostClass: DEFAULT_CLS,\n};\n\nconst enum STEP_STATUS {\n    CURRENT = 1,\n    DISABLED,\n    COMPLETED\n}\n\n@Component({\n    standalone: true,\n    selector: 'form[wmWizardStep]',\n    template: `<ng-content partial-container-target></ng-content>`,\n    providers: [\n        provideAsWidgetRef(WizardStepComponent),\n        NgForm\n    ],\n    exportAs: 'wmWizardStep'\n})\nexport class WizardStepComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n    static initializeProps = registerProps();\n\n    public show: boolean;\n    public name: string;\n    public enableskip: any;\n    public disablenext: boolean;\n    public disabledone: boolean;\n    public disableprevious: boolean;\n    public isInitialized: boolean;\n    private isdynamic: boolean;\n    public $lazyLoad = noop;\n    isDone: boolean = false;\n    nextCBInProgress: boolean = false;\n    prevCBInProgress: boolean = false;\n\n    private status: STEP_STATUS = STEP_STATUS.DISABLED;\n    private wizardComponent: WizardComponent;\n    private _currentWizardWidgets ={}\n\n    // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n    @ContentChildren(RedrawableDirective, {descendants: true}) reDrawableComponents;\n\n    @HostBinding('class.current')\n    get isCurrent() {\n        return this.active;\n    }\n\n    /**\n     * along with the wizard form , also validate the forms\n     * if there are any inside the wizard\n     * @returns {boolean}\n     */\n    public get isValid() {\n        return (this.ngForm.valid || this.ngForm.disabled) && this.areEmbeddedFormsValid();\n    }\n\n    /**\n     * get all the forms inside the wizard if any and validate\n     * @returns {boolean}\n     */\n    private areEmbeddedFormsValid() {\n        for (const form of this.getAllEmbeddedForms()) {\n            if (form.widget && form.widget.ngform && !form.widget.ngform.valid) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    private getAllEmbeddedForms() {\n        return this.$element.find('form');\n    }\n\n    public get enableNext() {\n        return !this.disablenext;\n    }\n\n    public get enableDone() {\n        return !this.disabledone;\n    }\n\n    public get enablePrev() {\n        return !this.disableprevious;\n    }\n\n    public set active(nv: boolean) {\n        const isActive = this.active;\n        this.status = STEP_STATUS.CURRENT;\n        if (nv && !isActive) {\n            this.redrawChildren();\n        }\n    }\n\n    public get active(): boolean {\n        return this.status === STEP_STATUS.CURRENT;\n    }\n\n    public set done(nv: boolean) {\n        if (nv) {\n            this.status = STEP_STATUS.COMPLETED;\n        }\n    }\n\n    public get done(): boolean {\n        return this.status === STEP_STATUS.COMPLETED;\n    }\n\n    public set disabled(nv: boolean) {\n        if (nv) {\n            this.status = STEP_STATUS.DISABLED;\n        }\n    }\n\n    public get disabled(): boolean {\n        return this.status === STEP_STATUS.DISABLED;\n    }\n\n    constructor(inj: Injector, @Self() private ngForm: NgForm, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        // If we inject directly as a param in the constructor, getting circular dependency error in unit testcases\n        this.wizardComponent = this.inj.get(WizardComponent);\n    }\n\n    public invokeNextCB(index: number): boolean | Promise<boolean> {\n        return this.invokeEventCallback('next', {currentStep: this, stepIndex: index});\n    }\n\n    public invokePrevCB(index: number): boolean | Promise<boolean> {\n        return this.invokeEventCallback('prev', {currentStep: this, stepIndex: index});\n    }\n\n    public invokeSkipCB(index: number): boolean | Promise<boolean> {\n        return this.invokeEventCallback('skip', {currentStep: this, stepIndex: index});\n    }\n\n    // redraw all the projected components which are projected.\n    private redrawChildren() {\n        setTimeout(() => {\n            if (this.reDrawableComponents) {\n                this.reDrawableComponents.forEach(c => c.redraw());\n            }\n            if ((this as any).wizardComponent) {\n                const stepIndex = (this as any).wizardComponent.getCurrentStepIndex();\n                this.invokeEventCallback('load', { stepIndex });\n            }\n        }, 100);\n    }\n\n    public remove() {\n        if (this.active) {\n            this === this.wizardComponent.steps.last ? this.wizardComponent.prev() : this.wizardComponent.next();\n        }\n        const availablePanes = this.wizardComponent.steps.toArray();\n        availablePanes.splice((this as any).wizardComponent.getStepIndexByRef(this), 1);\n        this.wizardComponent.steps.reset([...availablePanes]);\n        this.nativeElement.remove();\n    }\n\n    get currentWizardWidgets() {\n        return getCurrentWidgets(this.nativeElement, this._currentWizardWidgets);\n    }\n\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        if (key === 'content') {\n            setTimeout(() => this.$lazyLoad(), 100);\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        if (this.isdynamic) {\n            this.wizardComponent.registerDynamicStep(this);\n        }\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear redrawable components references\n        if (this.reDrawableComponents) {\n            this.reDrawableComponents.reset([]);\n        }\n\n        // MEMORY LEAK FIX: Clear wizard component reference\n        this.wizardComponent = null;\n\n        // Call parent ngOnDestroy (StylableComponent → BaseComponent)\n        // This will clear the context and unregister the widget\n        super.ngOnDestroy();\n    }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n    APPLY_STYLES_TYPE,\n    Context,\n    createArrayFrom,\n    IWidgetConfig,\n    provideAsWidgetRef,\n    StylableComponent,\n    styler,\n    TextContentDirective\n} from \"@wm/components/base\";\nimport {\n    AfterContentInit,\n    AfterViewChecked,\n    AfterViewInit,\n    Component,\n    ContentChild,\n    ContentChildren,\n    Inject,\n    Injector,\n    OnDestroy,\n    OnInit,\n    Optional,\n    QueryList,\n    Self,\n    TemplateRef\n} from '@angular/core';\n\nimport {DynamicComponentRefProvider, isDefined, noop} from '@wm/core';\n\nimport {registerProps} from './wizard.props';\n\nimport {WizardStepComponent} from \"./wizard-step/wizard-step.component\";\nimport {find, findIndex, forEach, get, indexOf, isArray, isNumber, isString} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-wizard panel clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-wizard',\n    hostClass: DEFAULT_CLS\n};\n\n@Component({\n  standalone: true,\n  imports: [CommonModule, TextContentDirective],\n    selector: 'div[wmWizard]',\n    templateUrl: './wizard.component.html',\n    providers: [\n        provideAsWidgetRef(WizardComponent),\n        {provide: Context, useFactory: () => { return {} }, multi: true}\n    ],\n    exportAs: 'wmWizard'\n})\nexport class WizardComponent extends StylableComponent implements OnInit, AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy {\n    static initializeProps = registerProps();\n\n    @ContentChildren(WizardStepComponent) steps: QueryList<WizardStepComponent>;\n    @ContentChild('wizardAction', { read: TemplateRef, descendants: false }) wizardAction: TemplateRef<any>;\n\n    public message: {caption: string, type: string};\n    public currentStep: WizardStepComponent;\n\n    public stepClass: string;\n    public class;\n    public name;\n    private readonly promiseResolverFn: Function;\n    public actionsalignment: any;\n    public cancelable: any;\n    public enablenext: any;\n    public wizContext: any;\n    public cancelbtnlabel: any;\n    public donebtnlabel: any;\n    public previousbtnlabel: any;\n    public nextbtnlabel: any;\n    public defaultstep;\n    public fieldDefs;\n    public type;\n    public nodatamessage;\n    private dynamicComponentProvider;\n    private _dynamicContext;\n    private dynamicStepIndex;\n    public dynamicWizard;\n    public defaultstepindex;\n    private _isFirstLoad: boolean = true;\n    public autoActivation:boolean;\n    private stepsSubscription: any; // MEMORY LEAK FIX: Store subscription for cleanup\n\n    get hasPrevStep(): boolean {\n        return !this._isFirstStep(this.currentStep);\n    }\n\n    get hasNextStep(): boolean {\n        return !this._isLastStep(this.currentStep);\n    }\n\n    get showDoneBtn(): boolean {\n        if (!this.currentStep) {\n            return;\n        }\n        return !this.hasNextStep && this.currentStep.enableDone;\n    }\n\n    get enablePrev(): boolean {\n        if (!this.currentStep) {\n            return;\n        }\n        return this.currentStep.enablePrev;\n    }\n\n    get enableNext(): boolean {\n        if (!this.currentStep) {\n            return;\n        }\n        return this.enablenext ? true : (this.currentStep.enableNext && this.currentStep.isValid);\n    }\n\n    get enableDone(): boolean {\n        if (!this.currentStep) {\n            return;\n        }\n        return this.currentStep.enableDone && this.currentStep.isValid;\n    }\n\n    /**\n     * returns current step index of the Wizard's current step\n     */\n    get currentStepIndex() {\n        return this.getStepIndexByRef(this.currentStep);\n    }\n\n    /**\n     * returns weather the current step is first step or not\n     */\n    get isFirstStep(): boolean {\n        return this._isFirstStep(this.currentStep);\n    }\n\n    /**\n     * returns weather the current step is last step or not\n     */\n    get isLastStep(): boolean {\n        return this._isLastStep(this.currentStep);\n    }\n\n    constructor(inj: Injector, dynamicComponentProvider: DynamicComponentRefProvider, @Self() @Inject(Context) contexts: Array<any>, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        let resolveFn: Function = noop;\n\n        super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n        styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n        this.promiseResolverFn = resolveFn;\n\n        // initialize the message object with default values\n        this.message = {\n            caption: '',\n            type: ''\n        };\n        this.wizContext = contexts[0];\n        this.dynamicComponentProvider = dynamicComponentProvider;\n        this.dynamicWizard = [];\n        this.dynamicStepIndex = 0;\n    }\n\n    /**\n     * This method is used to register the dynamic steps.\n     * After all steps are initialzed, update the querylist manually based on index.\n     * @param stepRef - refrence of the wizardstep\n     */\n    public registerDynamicStep(stepRef) {\n        this.dynamicWizard.push(stepRef);\n        const isLastStep =  this.dynamicWizard.length === this.dynamicStepIndex;\n        if (isLastStep) {\n            for (let i = 0; i < this.dynamicWizard.length; i++) {\n                const newStepRef  = find(this.dynamicWizard, step => step.dynamicStepIndex === i);\n                const isStepAlreadyExist = find(this.steps.toArray(), newStepRef);\n                if (!isStepAlreadyExist) {\n                    this.steps.reset([...this.steps.toArray(), newStepRef]);\n                    if (newStepRef.active) {\n                        setTimeout(() => {\n                            newStepRef.select();\n                        }, 20);\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * This method is to add the wizard step dynamically\n     * @param wizardSteps - list of wizardsteps\n     */\n    public addStep(wizardSteps) {\n        if (!isArray(wizardSteps)) {\n            wizardSteps = [wizardSteps];\n        }\n        const stepNamesList = [];\n        forEach(wizardSteps, (step, index) => {\n            const isStepAlreadyCreated = find(this.steps.toArray(), {name: step.name});\n            const isStepNameExist = indexOf(stepNamesList, step.name);\n            // If user tries to add wizardstep with the same name which is already exists then do not create the step\n            if (isStepAlreadyCreated || isStepNameExist > 0) {\n                console.warn(`The wizard step with name ${step.name} already exists`);\n                return;\n            }\n\n            let paramMarkup = '';\n            let propsTmpl = '';\n            this.dynamicStepIndex++;\n            const name = step.name ? step.name : `wizardstep${this.steps.toArray().length + (index + 1)}`;\n            stepNamesList.push(name);\n            const partialParams = get(step, 'params');\n\n            forEach(step, (value, key) => {\n                if (key !== 'params') {\n                    propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n                }\n            });\n\n            forEach(partialParams, (value, key) => {\n                paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n            });\n            const markup = `<wm-wizardstep dynamicStepIndex=\"${this.dynamicStepIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n                            ${paramMarkup}\n                        </wm-wizardstep>`;\n\n            if (!this._dynamicContext) {\n                this._dynamicContext = Object.create(this.viewParent);\n                this._dynamicContext[this.getAttr('wmWizard')] = this;\n            }\n\n            this.dynamicComponentProvider.addComponent(this.getNativeElement().querySelector('.app-wizard-body'), markup, this._dynamicContext, {inj: this.inj});\n\n        });\n        return stepNamesList;\n    }\n\n    /**\n     * This method is to remove the wizard step\n     * @param step - index or name of the step\n     */\n    public removeStep(step: number | string) {\n        const stepRef = isString(step) ? this.getStepRefByName(step) : isNumber(step)\n            ? this.getStepRefByIndex(step) : null;\n        stepRef ? stepRef.remove() : console.warn(`Could not find step with name or index '${step}' to remove`);\n    }\n\n    /**\n     * returns next valid step. the index passed is also checked if its valid step\n     * @param index\n     * @returns {WizardStepComponent}\n     */\n    private getNextValidStepFormIndex(index: number): WizardStepComponent {\n        for (let i = index; i < this.steps.length; i++) {\n            const step = this.getStepRefByIndex(i);\n            if (step.show) {\n                return step;\n            }\n        }\n    }\n\n    /**\n     * returns previous valid step. the index passed is also checked if its valid step\n     * @param index\n     * @returns {WizardStepComponent}\n     */\n    private getPreviousValidStepFormIndex(index: number): WizardStepComponent {\n        for (let i = index; i >= 0; i--) {\n            const step = this.getStepRefByIndex(i);\n            if (step.show) {\n                return step;\n            }\n        }\n    }\n\n    /**\n     * returns current step index value.\n     * @returns {number}\n     */\n    private getCurrentStepIndex(): number {\n        return this.getStepIndexByRef(this.currentStep);\n    }\n\n    /**\n     * returns stepRef when index is passed.\n     * @param {number} index\n     * @returns {WizardStepComponent}\n     */\n    private getStepRefByIndex(index: number): WizardStepComponent {\n        return this.steps.toArray()[index];\n    }\n\n    /**\n     * returns the index value of the step.\n     * @param {WizardStepComponent} wizardStep\n     * @returns {number}\n     */\n    private getStepIndexByRef(wizardStep: WizardStepComponent): number {\n        return this.steps.toArray().indexOf(wizardStep);\n    }\n\n    /**\n     * gets stepRef by searching on the name property.\n     * @param {string} name\n     * @returns {WizardStepComponent}\n     */\n    private getStepRefByName(name: string): WizardStepComponent {\n        return this.steps.find(step => step.name === name);\n    }\n\n    /**\n     * sets default step as current step if configured\n     * or finds first valid step and set it as current step.\n     * @param {WizardStepComponent} step\n     */\n    private setDefaultStep(step: WizardStepComponent) {\n        // If the default step has show true then only update the currentStep\n        if (step && step.show) {\n            this.currentStep = step;\n            step.active = true;\n            step.isInitialized = true;\n            // Mark all previous step status COMPLETED\n            let index = this.getStepIndexByRef(step) - 1;\n            while (index >= 0) {\n                const prevStep = this.getStepRefByIndex(index);\n                prevStep.done = true;\n                prevStep.isInitialized = true;\n                index--;\n            }\n        } else {\n            // set next valid step as current step\n            step = this.getNextValidStepFormIndex(0);\n            if (step) {\n                this.setDefaultStep(step);\n            }\n        }\n        this.addMoreText();\n    }\n\n    /**\n     * Selects the associated step when the wizard header is clicked.\n     * @param $event\n     * @param {WizardStepComponent} currentStep\n     */\n    private onWizardHeaderClick($event: Event, currentStep: WizardStepComponent) {\n        // select the step if it's status is done\n        if (currentStep.done) {\n            // set all the next steps status as disabled and previous steps as done\n            this.steps.forEach((step, index) => {\n                if (index < this.getStepIndexByRef(currentStep)) {\n                   step.done = true;\n                   step.isDone = true;\n                } else {\n                    step.disabled = true;\n                    step.isDone = false;\n                }\n            });\n            // set the selected step as current step and make it active\n            this.currentStep = currentStep;\n            this.currentStep.active = true;\n            this.addMoreText();\n        }\n    }\n\n    private isPromise = (obj) => obj instanceof Promise || (obj !== null && typeof obj === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function');\n\n    // Method to navigate to next step\n\n    private handleNext(value: boolean | Promise<boolean>, currentStep, currentStepIndex) {\n        if (this.isPromise(value)) {\n            (value as Promise<boolean>).then(response => {\n                this.currentStep.nextCBInProgress = false;\n                if (response === false) {\n                    return;\n                }\n                this.extendNextFn(currentStep, currentStepIndex);\n            }, err => {\n                this.currentStep.nextCBInProgress = false;\n            })\n        } else {\n            this.currentStep.nextCBInProgress = false;\n            if (value === false) {\n                return;\n            }\n            this.extendNextFn(currentStep, currentStepIndex);\n        }\n    }\n\n    public next(eventName: string = 'next') {\n        if (this.currentStep.nextCBInProgress) {\n            return;\n        }\n\n        const currentStep = this.currentStep;\n        const currentStepIndex = this.getCurrentStepIndex();\n\n        // abort if onSkip method returns false\n        if (eventName === 'skip') {\n            this.currentStep.nextCBInProgress = true;\n            const response =  currentStep.invokeSkipCB(currentStepIndex);\n            this.handleNext(response, currentStep, currentStepIndex);\n        } else if (this.currentStep.isValid && eventName === 'next') {\n            this.currentStep.nextCBInProgress = true;\n            const response  =  currentStep.invokeNextCB(currentStepIndex);\n            this.handleNext(response, currentStep, currentStepIndex);\n        } else if (this.enablenext && !this.currentStep.isValid){\n            Array.from((<any>this).currentStep.getAllEmbeddedForms())?.forEach((form:any) => {\n                form.widget.highlightInvalidFields();\n            });\n            const invalidFormInputElement = this.currentStep.nativeElement?.querySelector(\"input.ng-invalid\") as HTMLInputElement;\n            invalidFormInputElement?.focus();\n\n        }\n    }\n\n    private extendNextFn(currentStep, currentStepIndex) {\n        const nextStep: WizardStepComponent = this.getNextValidStepFormIndex(currentStepIndex + 1);\n        // If there are any steps which has show then only change state of current step else remain same\n        if (nextStep) {\n            nextStep.isInitialized = true;\n            currentStep.isDone = true;\n            currentStep.done = true;\n            nextStep.active = true;\n            this.currentStep = nextStep;\n            // Remove 'current' class from all wizard steps in header\n            const allStepItems = this.nativeElement.querySelectorAll('li[data-stepid]');\n            allStepItems.forEach((el: Element) => {\n                el.classList.remove('current');\n                const anchor = el.querySelector('a');\n                if (anchor) {\n                    anchor.setAttribute('tabindex', '-1');\n                }\n            });\n            // Add 'current' to next step header item\n            const newStepLi = this.nativeElement.querySelector(`li[data-stepid=\"${nextStep.widgetId}\"]`);\n            const newStepAnchor = newStepLi?.querySelector('a') as HTMLElement;\n            if (newStepLi && newStepAnchor) {\n                newStepLi.classList.add('current');\n                newStepAnchor.setAttribute('tabindex', '0');\n                newStepAnchor.focus();\n            }\n            this.updateStepFocus();\n        }\n        this.addMoreText();\n    }\n    // Method to navigate to previous step\n    public prev() {\n        if (this.currentStep.prevCBInProgress) {\n            return;\n        }\n\n        const currentStep = this.currentStep;\n        const currentStepIndex = this.getCurrentStepIndex();\n\n        this.currentStep.prevCBInProgress = true;\n        // abort if onPrev method returns false.\n        const response = currentStep.invokePrevCB(currentStepIndex);\n        if (this.isPromise(response)) {\n            (response as Promise<boolean>).then( response => {\n                this.currentStep.prevCBInProgress = false;\n                if (response === false) {\n                    return;\n                }\n                this.extendPrevFn(currentStep, currentStepIndex);\n            }, err => {\n                this.currentStep.prevCBInProgress = false;\n            });\n        } else {\n            this.currentStep.prevCBInProgress = false;\n            if (response === false) {\n                return;\n            }\n            this.extendPrevFn(currentStep, currentStepIndex);\n        }\n    }\n\n    private extendPrevFn(currentStep, currentStepIndex){\n        const prevStep: WizardStepComponent = this.getPreviousValidStepFormIndex(currentStepIndex - 1);\n\n        // If there are any steps which has show then only change state of current step else remain same\n        if (prevStep) {\n            currentStep.isDone = false;\n            currentStep.disabled = true;\n            prevStep.active = true;\n            this.currentStep = prevStep;\n            //  Remove 'current' class from all steps\n            const allStepItems = this.nativeElement.querySelectorAll('li[data-stepid]');\n            allStepItems.forEach((el: Element) => {\n                el.classList.remove('current');\n                const anchor = el.querySelector('a');\n                if (anchor) {\n                    anchor.setAttribute('tabindex', '-1');\n                }\n            });\n            // Apply 'current' to prev step\n            const prevStepLi = this.nativeElement.querySelector(`li[data-stepid=\"${prevStep.widgetId}\"]`);\n            const prevStepAnchor = prevStepLi?.querySelector('a') as HTMLElement;\n            if (prevStepLi && prevStepAnchor) {\n                prevStepLi.classList.add('current');\n                prevStepAnchor.setAttribute('tabindex', '0');\n                prevStepAnchor.focus();\n            }\n            this.updateStepFocus();\n        }\n        this.addMoreText();\n    }\n\n    public skip() {\n        this.next('skip');\n    }\n\n    /**\n     * Navigates to the given step based on step name or step index\n     * This will work only if the step is already in done state\n     * @param step\n     */\n    public gotoStep(step: string | number) {\n        let gotoStepIndex: number;\n        if (isString(step)) {\n            gotoStepIndex = this.steps.toArray().map(step => step.name).indexOf(step);\n            if (gotoStepIndex === -1) {\n                console.error(`Could not find step '${step}'`);\n                return;\n            }\n        } else if (isNumber(step) && step >= 0) {\n            gotoStepIndex = step;\n        } else {\n            console.error(\"Invalid step name or index provided\");\n            return;\n        }\n\n        const gotoStep: WizardStepComponent = this.getStepRefByIndex(gotoStepIndex);\n\n        if (gotoStep?.show) {\n            this.onWizardHeaderClick(event, gotoStep);\n        } else {\n            console.error(\"The gotoStep function cannot navigate to hidden steps\");\n        }\n    }\n\n    // Method to invoke on-Done event on wizard\n    public done() {\n        this.currentStep.isDone = true;\n        this.invokeEventCallback('done', {steps: this.steps.toArray()});\n    }\n    // Method to invoke on-Cancel event on wizard\n    public cancel () {\n        this.invokeEventCallback('cancel', {steps: this.steps.toArray()});\n    }\n    public addMoreText(){\n        setTimeout(() => {\n\n\n        var newWindowWidth = $(window).width();\n        if(newWindowWidth < 768){\n        $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"auto\",\"display\":\"block\"});\n        var subtitleTextLength = $(\".app-wizard-step.current .subtitle-wrapper .step-title\").height();\n        $(\".read_more\").css(\"display\",\"none\");\n        $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n\n        if(subtitleTextLength>44){\n            $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"44px\",\"display\":\"-webkit-box\"});\n            $(\".current .read_more\").css(\"display\",\"block\");\n            $(\".active .read_more\").css(\"display\",\"none\");\n            $(\".disable .read_more\").css(\"display\",\"none\");\n            $(\".app-wizard-step>a\").css(\"height\",\"100px\")\n            }\n        }\n    });\n\n    }\n    public readMoreSubtitle(){\n        $(\".current .subtitle-wrapper\").addClass(\"readmore_subtitle\");\n        $(\".current .read_more\").css(\"display\",\"none\");\n        $(document).on(\"mouseup\",function(e:any)\n        {\n            var container = $(\".subtitle-wrapper\");\n            // if the target of the click isn't the container nor a descendant of the container\n            if (!container.is(e.target) && container.has(e.target).length === 0)\n            {\n                $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n                $(\".current .read_more\").css(\"display\",\"block\");\n                $(document).off(\"mouseup\");\n            }\n        });\n    }\n\n    private _isFirstStep(stepRef: WizardStepComponent) {\n        return this.steps.first === stepRef;\n    }\n\n    private _isLastStep(stepRef: WizardStepComponent) {\n        return this.steps.last === stepRef;\n    }\n\n    private onDataChange(newVal) {\n        this.fieldDefs = createArrayFrom(newVal);\n    }\n\n    private updateStepFocus() {\n        setTimeout(() => {\n            const currentStepElement = this.nativeElement.querySelector(\".app-wizard-heading li.current a\") as HTMLElement;\n            currentStepElement?.focus();\n        });\n    }\n\n    // Define the property change handler. This Method will be triggered when there is a change in the widget property\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        // Monitoring changes for properties and accordingly handling respective changes\n\n        if (key === 'stepstyle') {\n            this.stepClass =  nv === 'justified' ? 'nav-justified' : '';\n        } else if (key === 'dataset') {\n            this.onDataChange(nv);\n        } else if (key === 'defaultstep') {\n            this.setDefaultStep(this.getStepRefByName(nv));\n        } else if (key === 'actionsalignment') {\n            this.nativeElement.querySelector('div.app-wizard-actions')?.classList.replace(ov, nv);\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    ngAfterContentInit() {\n        super.ngAfterContentInit();\n        this.promiseResolverFn();\n        this.wizContext.hasNextStep = () => this.hasNextStep;\n        this.wizContext.hasPreviousStep = () => this.hasPrevStep;\n        this.wizContext.hasNoNextStep = () => this.showDoneBtn;\n        this.wizContext.cancelable = () => this.cancelable;\n        this.wizContext.skippable = () => this.currentStep?.enableskip;\n        this.wizContext.next = () => this.next();\n        this.wizContext.previous = () => this.prev();\n        this.wizContext.done = () => this.done();\n        this.wizContext.cancel = () => this.cancel();\n        this.wizContext.skip = () => this.skip();\n        this.wizContext.nextbtnlabel = () => this.nextbtnlabel;\n        this.wizContext.previousbtnlabel = () => this.previousbtnlabel;\n        this.wizContext.donebtnlabel = () => this.donebtnlabel;\n        this.wizContext.cancelbtnlabel = () => this.cancelbtnlabel;\n        this.wizContext.actionsalignment = () => this.actionsalignment;\n        this.wizContext.disableNext = () => !this.enableNext;\n        this.wizContext.disablePrevious = () => !this.enablePrev;\n        this.wizContext.disableDone = () => !this.enableDone;\n\n        // MEMORY LEAK FIX: Store subscription for cleanup\n        this.stepsSubscription = this.steps.changes.subscribe( () => {\n            if (this.steps.length > 1 && this.type === 'dynamic' && this._isFirstLoad) {\n                this.setDefaultStep(this.getStepRefByIndex(this.defaultstepindex));\n                this._isFirstLoad = false;\n            }\n        });\n    }\n    private isSelectableStep(stepRef: WizardStepComponent): boolean {\n            return stepRef.show && !stepRef.disabled;\n    }\n    private getSelectableStepBeforeIndex(index: number): WizardStepComponent {\n            for (let i = index - 1; i >= 0; i--) {\n                const step = this.getStepRefByIndex(i);\n                if (this.isSelectableStep(step)) {\n                    return step;\n                }\n            }\n            if (index === 0) {\n                const step = this.getStepRefByIndex(this.steps.length - 1);\n                if (this.isSelectableStep(step)) {\n                    return step;\n                }\n            }\n        }\n    private getSelectableStepAfterIndex(index: number): WizardStepComponent {\n                for (let i = index + 1; i < this.steps.length; i++) {\n                    const step = this.getStepRefByIndex(i);\n                    if (this.isSelectableStep(step)) {\n                        return step;\n                    }\n                }\n                if (index === this.steps.length - 1) {\n                    const step = this.getStepRefByIndex(0);\n                     if (this.isSelectableStep(step)) {\n                        return step;\n                     }\n                }\n    }\n\n    public getWidgets(widgteName: string, index?: number) {\n        let $target;\n        const retVal = [];\n\n        if (!widgteName) {\n            return;\n        }\n\n        if (!isDefined(index)) {\n            forEach(this.steps.toArray(), (el) => {\n                $target = get(el.currentWizardWidgets, widgteName);\n                if ($target) {\n                    retVal.push($target);\n                }\n            });\n\n            return retVal;\n        }\n        index = +index || 0;\n\n        $target = get(this.steps.toArray(), index);\n\n        if ($target) {\n            return [get($target.currentWizardWidgets, widgteName)];\n        }\n    }\n\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        styler(\n            this.nativeElement.querySelector('.panel-body') as HTMLElement,\n            this,\n            APPLY_STYLES_TYPE.INNER_SHELL\n        );\n        setTimeout(() => { if($(window).width()<768) {\n            $(\".app-wizard\").removeClass(\"vertical\");\n        }\n        });\n    }\n    ngAfterViewChecked() {\n        this.nativeElement.querySelectorAll('div.app-wizard-actions').forEach(el => el?.classList.add(this.actionsalignment));\n        this.nativeElement.querySelectorAll('div.app-wizard-actions-right').forEach(el => el?.classList.remove('app-container'));\n    }\n    public getActiveStepIndex(): number {\n        return findIndex(this.steps.toArray(), {isCurrent: true});\n    }\n    onkeydown(event) {\n        let newStep;\n        switch (event.key) {\n            case 'ArrowLeft':\n            case 'ArrowUp':\n                event.preventDefault();\n                newStep = this.autoActivation ? null : this.getSelectableStepBeforeIndex(this.getSelectedStepIndex());\n                break;\n\n            case 'ArrowRight':\n            case 'ArrowDown':\n                event.preventDefault();\n                newStep = this.autoActivation ? null : this.getSelectableStepAfterIndex(this.getSelectedStepIndex());\n                break;\n            case 'Enter':\n            case ' ':\n            case 'Spacebar':\n                event.preventDefault();\n                setTimeout(() => {\n                    const activeElement  = this.nativeElement.querySelector('li.current');\n                    const stepLi = activeElement.closest('li[data-stepid]');\n                    const isInWizardHeader = activeElement.closest('.app-wizard-heading');\n\n                    if (stepLi && isInWizardHeader) {\n                    const stepId = stepLi.getAttribute('data-stepid');\n                    const stepIndex = this.steps.toArray().findIndex(step => step.widgetId === stepId);\n                    const currentStep = this.steps.toArray()[stepIndex];\n\n                        if (currentStep && currentStep !== this.currentStep) {\n                            this.onWizardHeaderClick(event, currentStep);\n\n                            // Update tabindex for accessibility\n                            const allStepItems = this.nativeElement.querySelectorAll('li[data-stepid]');\n                            allStepItems.forEach((el: Element) => {\n                            (el as HTMLElement).setAttribute('tabindex', '-1');\n                            });\n\n                            const stepAnchor = stepLi.querySelector('a');\n                            if (stepAnchor) {\n                            stepAnchor.setAttribute('tabindex', '0');\n                            stepAnchor.focus();\n                            }\n                        }\n                    }\n                }, 0);\n                break;\n            default:\n                return;\n        }\n       if (newStep) {\n            this.nativeElement.querySelector('li.current')?.classList.remove('current');\n             this.nativeElement.querySelector(`li[data-stepid=\"${newStep.widgetId}\"]`)?.classList.add('current');\n             const stepLi = this.nativeElement.querySelector(\".app-wizard-heading li.current a\") as HTMLElement;\n             const allStepItems = this.nativeElement.querySelectorAll('li[data-stepid] a');\n             allStepItems.forEach((el: Element) => {\n                (el as HTMLElement).setAttribute('tabindex', '-1');\n             });\n            (stepLi).setAttribute('tabindex', '0');\n            stepLi?.focus();\n        }\n    }\n    getSelectedStepIndex() {\n        const index = this.steps.toArray().findIndex(step =>\n            this.nativeElement.querySelector(`li[data-stepid=\"${step.widgetId}\"]`)?.classList.contains(\"current\"));\n        return index >= 0 ? index : this.getActiveStepIndex();\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from steps changes\n        if (this.stepsSubscription) {\n            this.stepsSubscription.unsubscribe();\n            this.stepsSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Remove jQuery event handlers\n        $(document).off(\"mouseup\");\n\n        // MEMORY LEAK FIX: Clear wizard context to release references to step data\n        if (this.wizContext) {\n            Object.keys(this.wizContext).forEach(key => {\n                delete this.wizContext[key];\n            });\n            this.wizContext = null;\n        }\n\n        // MEMORY LEAK FIX: Clear dynamic context\n        if (this._dynamicContext) {\n            Object.keys(this._dynamicContext).forEach(key => {\n                delete this._dynamicContext[key];\n            });\n            this._dynamicContext = null;\n        }\n\n        // MEMORY LEAK FIX: Clear dynamic wizard array\n        if (this.dynamicWizard) {\n            this.dynamicWizard = [];\n        }\n\n        // MEMORY LEAK FIX: Clear current step reference\n        this.currentStep = null;\n\n        super.ngOnDestroy();\n    }\n}\n","<div class=\"app-wizard-heading\">\n  <ul class=\"app-wizard-steps nav nav-pills {{stepClass}}\">\n    @for (step of steps; track step; let i = $index) {\n      <li class=\"app-wizard-step\" [hidden]=\"!step.show\"\n        [ngClass]=\"{active: step.done, current: step.active, disabled: step.disabled}\"\n        (click)=\"onWizardHeaderClick($event, step)\" [attr.data-stepid]=\"step.widgetId\">\n        <a href=\"javascript:void(0)\" [attr.aria-current]=\"step.active ? 'step' : null\"\n          [attr.aria-disabled]=\"step.disabled\" [attr.aria-label]='step.subtitle ? \"step \" + (i + 1) + \" \" +  step.title + \" \" + step.subtitle : \"step \" + (i + 1) + \" \" +  step.title' [attr.title]= \"step.title\"\n          [ngClass]=\"{'title-center-align':class && class.includes('classic') && !step.subtitle}\" [tabindex]=\"step.active ? '0' : '-1'\" (keydown)=\"onkeydown($event)\">\n          @if (class && class.includes('classic')) {\n            <span class=\"arrow\"></span>\n          }\n          <span class=\"wizard-step-number\">\n            @if (class && class.includes('number') && !step.isDone) {\n              <span class=\"count\">{{i+1}}</span>\n            }\n            @if (class && (class.includes('dottedstepper') || class.includes('text-inline') && !class.includes('iconstepper')) && !step.isDone) {\n              <i class=\"dottedstepper\"></i>\n            }\n            @if (class && (class.includes('dottedstepper') || class.includes('number')) && step.isDone) {\n              <i class=\"app-icon wi wi-done\"></i>\n            }\n            @if ((class && class.includes('iconstepper')) && ((step.iconclass && !step.isDone) || (step.iconclass && step.isDone && step.doneiconclass ===''))) {\n              <i class=\"app-icon {{step.iconclass}}\"></i>\n            }\n            @if (step.doneiconclass && step.isDone && (class && class.includes('iconstepper'))) {\n              <i class=\"app-icon {{step.doneiconclass}}\"></i>\n            }\n          </span>\n          <span class=\"title-wrapper\">\n            @if (class && class.includes('text-inline')) {\n              <span>{{'0' + (i+1)}}</span>\n            }\n            <span class=\"step-title\" [textContent]=\"step.title\"></span>\n          </span>\n          @if (step.subtitle) {\n            <span class=\"subtitle-wrapper\" [attr.title]=\"step.subtitle\">\n              <span class=\"step-title\" [textContent]=\"step.subtitle\"></span>\n              <a class=\"read_more\" (click)=\"readMoreSubtitle()\" style=\"display:none\">more</a>\n            </span>\n          }\n        </a>\n      </li>\n    }\n  </ul>\n</div>\n@if (type !== 'dynamic') {\n<div class=\"app-wizard-body panel-body\">\n  @if (message.caption) {\n    <p wmMessage caption.bind=\"message.caption\" type.bind=\"message.type\"></p>\n  }\n  <ng-content ngProjectAs=\"form[wmWizardStep]\"></ng-content>\n</div>\n}\n@if (type === 'dynamic') {\n<div class=\"app-wizard-body panel-body\">\n    @if(!fieldDefs?.length) {\n    <div>{{nodatamessage}}</div>\n    }\n    <ng-content select=\"div[wmRepeatTemplate]\"></ng-content>\n</div>\n}\n@if(fieldDefs && fieldDefs.length || type !== 'dynamic') {\n    <ng-container *ngTemplateOutlet=\"wizardAction\"></ng-container>\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-wizardaction',\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';\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport {registerProps} from \"./wizard-action.props\";\n\nconst WIDGET_INFO: IWidgetConfig = {\n    widgetType: 'wm-wizardaction',\n    hostClass: 'app-wizard-actions panel-footer '\n};\n\n@Directive({\n  standalone: true,\n    selector: 'div[wmWizardAction]',\n    providers: [\n        provideAsWidgetRef(WizardActionDirective)\n    ],\n    exportAs: 'wmWizardAction',\n})\nexport class WizardActionDirective 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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","i1"],"mappings":"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"}