{"version":3,"file":"index.mjs","sources":["../../../../projects/runtime-base/src/types/types.ts","../../../../projects/runtime-base/src/services/app.manager.service.ts","../../../../projects/runtime-base/src/util/utils.ts","../../../../projects/runtime-base/src/services/prefab-manager.service.ts","../../../../projects/runtime-base/src/util/fragment-monitor.ts","../../../../projects/runtime-base/src/components/base-partial.component.ts","../../../../projects/runtime-base/src/util/wm-route-reuse-strategy.ts","../../../../projects/runtime-base/src/components/base-page.component.ts","../../../../projects/runtime-base/src/components/base-custom-widget.component.ts","../../../../projects/runtime-base/src/components/base-prefab.component.ts","../../../../projects/runtime-base/src/components/base-layout.component.ts","../../../../projects/runtime-base/src/overrides/wm_dom_renderer.ts","../../../../projects/runtime-base/src/overrides/wm_shared_styles_host.ts","../../../../projects/runtime-base/src/components/base-spa-page.component.ts","../../../../projects/runtime-base/src/directives/accessroles.directive.ts","../../../../projects/runtime-base/src/components/app-spinner.component.ts","../../../../projects/runtime-base/src/components/custom-toaster.component.ts","../../../../projects/runtime-base/src/components/empty-component/empty-page.component.ts","../../../../projects/runtime-base/src/services/pipe-provider.service.ts","../../../../projects/runtime-base/src/services/pipe.service.ts","../../../../projects/runtime-base/src/services/app.service.ts","../../../../projects/runtime-base/src/services/toaster.service.ts","../../../../projects/runtime-base/src/services/i18n.service.ts","../../../../projects/runtime-base/src/services/spinner.service.ts","../../../../projects/runtime-base/src/services/navigation.service.ts","../../../../projects/runtime-base/src/services/app-defaults.service.ts","../../../../projects/runtime-base/src/guards/auth.guard.ts","../../../../projects/runtime-base/src/guards/role.guard.ts","../../../../projects/runtime-base/src/guards/page-not-found.guard.ts","../../../../projects/runtime-base/src/resolves/app-js.resolve.ts","../../../../projects/runtime-base/src/resolves/app-extension.resolve.ts","../../../../projects/runtime-base/src/resolves/i18n.resolve.ts","../../../../projects/runtime-base/src/components/app-component/app.component.ts","../../../../projects/runtime-base/src/components/app-component/app.component.html","../../../../projects/runtime-base/src/services/http-interceptor.services.ts","../../../../projects/runtime-base/src/directives/prefab.directive.ts","../../../../projects/runtime-base/src/components/prefab-preview.component.ts","../../../../projects/runtime-base/src/services/dynamic-component-ref-provider.service.ts","../../../../projects/runtime-base/src/guards/can-deactivate-page.guard.ts","../../../../projects/runtime-base/src/runtime-base.module.ts","../../../../projects/runtime-base/src/resolves/app-before-load.resolve.ts","../../../../projects/runtime-base/src/resolves/app-variables.resolve.ts","../../../../projects/runtime-base/src/resolves/metadata.resolve.ts","../../../../projects/runtime-base/src/resolves/security-config.resolve.ts","../../../../projects/runtime-base/src/index.ts"],"sourcesContent":["export enum ComponentType {\n    PAGE,\n    PREFAB,\n    PARTIAL,\n    WIDGET\n}\n\nexport abstract class ComponentRefProvider {\n    abstract getComponentFactoryRef(componentName: string, componentType: ComponentType): Promise<any>;\n    clearComponentFactoryRefCache(): void {};\n}\n\nexport abstract class PrefabConfigProvider {\n    abstract getConfig(prefabName: string): Promise<any>;\n}\n\nexport abstract class CustomwidgetConfigProvider {\n    abstract getConfig(widgetname: string): Promise<any>;\n}\n\nexport abstract class AppJSProvider {\n    abstract getAppScriptFn(): Promise<Function>;\n}\n\nexport abstract class AppVariablesProvider {\n    abstract getAppVariables(): Promise<any>;\n}\nexport abstract class AppExtensionProvider {\n    abstract  loadFormatterConfigScript(callback:Function): void;\n}\n\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {DatePipe} from '@angular/common';\n\nimport {\n    $appDigest,\n    AbstractDialogService,\n    AbstractHttpService,\n    AbstractI18nService,\n    AbstractSpinnerService,\n    App,\n    fetchContent,\n    getWmProjectProperties,\n    isDefined,\n    triggerFn\n} from '@wm/core';\nimport {SecurityService} from '@wm/security';\nimport {$rootScope, MetadataService, VariablesService} from '@wm/variables';\nimport {extend, forEach, get, isEmpty, isObject, isUndefined, merge, trim} from \"lodash-es\";\nimport {getModesFromLocalStorage} from '../public_api';\n\nenum POST_MESSAGES {\n    HIDE_TEMPLATES_SHOW_CASE = 'hide-templates-show-case',\n    SHOW_TEMPLATES_SHOW_CASE = 'show-templates-show-case',\n    UPDATE_LOCATION          = 'update-location-path',\n    SELECT_TEMPLATE          = 'select-template',\n    TEMPLATEBUNDLE_CONFIG    = 'template-bundle-config',\n    ON_LOAD                  = 'on-load'\n}\n\n\n@Injectable()\nexport class AppManagerService implements OnDestroy {\n    static readonly SERVICE_NAME = 'AppManagerService';\n\n    private appVariablesLoaded = false;\n    private appVariablesFired = false;\n    private _noRedirect = false;\n    private templates: Array<any>;\n    private lastLoggedUserId;\n    private appSubscriptions: Array<() => void> = []; // MEMORY LEAK FIX: Track subscriptions\n    private windowMessageListener: (event: MessageEvent) => void; // MEMORY LEAK FIX: Store listener reference\n    private sessionTimeoutUnsubscribe: () => void; // MEMORY LEAK FIX: Store unsubscribe function\n\n    constructor(\n        private $http: AbstractHttpService,\n        private $security: SecurityService,\n        private $dialog: AbstractDialogService,\n        private $router: Router,\n        private $app: App,\n        private $variables: VariablesService,\n        private $metadata: MetadataService,\n        private $spinner: AbstractSpinnerService,\n        private $i18n: AbstractI18nService,\n        private $datePipe: DatePipe,\n    ) {\n        // register method to invoke on session timeout\n        // MEMORY LEAK FIX: Store unsubscribe function for cleanup\n        this.sessionTimeoutUnsubscribe = this.$http.registerOnSessionTimeout(this.handle401.bind(this));\n\n        this.$variables.registerDependency('appManager', this);\n\n        // MEMORY LEAK FIX: Store subscription unsubscribe functions\n        this.appSubscriptions.push(this.$app.subscribe('toggle-variable-state', (data) => {\n            const variable = data.variable,\n                active = data.active;\n            if (!isEmpty(trim(variable.spinnerContext))) {\n                if (active) {\n                    let spinnerExists;\n                    // WMS-21117 : Do not trigger spinner, if the current variable is same as spinner which is in context\n                    if (variable._spinnerId && variable._spinnerId.length) {\n                        forEach(variable._spinnerId, (item) => {\n                            if (item.slice(0, item.lastIndexOf('_')) === variable._id && (this.$spinner as any).messagesByContext && (this.$spinner as any).messagesByContext[variable.spinnerContext] &&\n                                (variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][\"finalMessage\"] || variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][item])) {\n                                spinnerExists = true;\n                                return;\n                            }\n                        });\n                    }\n                    if (!spinnerExists) {\n                        variable._spinnerId = variable._spinnerId || [];\n                        const spinnerId = this.$spinner.show(variable.spinnerMessage,\n                            variable._id + '_' + Date.now(),\n                            variable.spinnerclass,\n                            variable.spinnerContext);\n                        variable._spinnerId.push(spinnerId);\n                    }\n                } else {\n                    this.$spinner.hide(variable._spinnerId.shift());\n                }\n            }\n        }));\n        this.appSubscriptions.push(this.$app.subscribe('userLoggedIn', () => {\n            this.setLandingPage();\n            if (this.lastLoggedUserId) {\n                this.$security.getConfig(config => {\n                    if(config && config.userInfo.userId !== this.lastLoggedUserId) {\n                        this.$app.clearPageCache();\n                    }\n                }, null);\n            }\n        }));\n        this.appSubscriptions.push(this.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {\n            this.$app.clearPageCache();\n        })));\n        this.appSubscriptions.push(this.$app.subscribe('http401', (d = {}) => this.handle401(d.page, d.options)));\n    }\n\n    /**\n     * On session timeout, if the session timeout config is set to a dialog, then open login dialog\n     */\n    private showLoginDialog() {\n        this.$spinner.hide('globalSpinner');\n        // Removing the close all dialogs call, so the existing dialogs remain open and\n        // the login dialog comes on top of it.\n        this.$dialog.open('CommonLoginDialog');\n        // Since the login dialog is closed and opened its updated property isn't read by angular.\n        // Hence we trigger the digest cycle\n        $appDigest();\n    }\n\n    loadAppJS() {\n\n    }\n\n    loadCommonPage() {\n\n    }\n\n    loadSecurityConfig(forceFlag?: boolean) {\n        return this.$security.load(forceFlag).then((r) => {\n            if (!this.$app.landingPageName) {\n                this.setLandingPage();\n            }\n            return r;\n        });\n    }\n\n    loadMetadata() {\n        return this.$metadata.load();\n    }\n\n    loadAppVariables(variables?: any) {\n        if (this.appVariablesLoaded) {\n            return Promise.resolve();\n        }\n\n        const init = response => {\n            const data = this.$variables.register('app', response, this.$app);\n            // not assigning directly to this.$app to keep the reference in tact\n            extend(this.$app.Variables, data.Variables);\n            extend(this.$app.Actions, data.Actions);\n            this.updateLoggedInUserVariable();\n            this.updateSupportedLocaleVariable();\n            this.appVariablesLoaded = true;\n            this.appVariablesFired = false;\n        };\n\n        if (isDefined(variables)) {\n            init(variables);\n            return Promise.resolve();\n        }\n\n        return this.$http.get('./app.variables.json').then(response => init(response));\n    }\n\n    /**\n     * getter and setter for the property appVariablesFired\n     * this flag determines if the app variables(with startUpdate:true) have been fired\n     * they should get fired only once through app lifecycle\n     * @param {boolean} isFired\n     * @returns {boolean}\n     */\n    isAppVariablesFired(isFired?: boolean) {\n        if (isDefined(isFired)) {\n            this.appVariablesFired = isFired;\n        }\n        return this.appVariablesFired;\n    }\n\n    private clearLoggedInUserVariable(variable) {\n        variable.isAuthenticated = false;\n        variable.roles           = [];\n        variable.name            = undefined;\n        variable.id              = undefined;\n        variable.tenantId        = undefined;\n    }\n\n    private updateLoggedInUserVariable() {\n        const loggedInUser = get(this.$app, 'Variables.loggedInUser.dataSet');\n\n        // sanity check\n        if (!loggedInUser) {\n            return;\n        }\n        return this.$security.load().then(() => {\n            const securityConfig = this.$security.get();\n            if (securityConfig && securityConfig.securityEnabled && securityConfig.authenticated) {\n                loggedInUser.isAuthenticated = securityConfig.authenticated;\n                loggedInUser.roles           = securityConfig.userInfo.userRoles;\n                loggedInUser.name            = securityConfig.userInfo.userName;\n                loggedInUser.id              = securityConfig.userInfo.userId;\n                loggedInUser.tenantId        = securityConfig.userInfo.tenantId;\n                loggedInUser.userAttributes  = securityConfig.userInfo.userAttributes; // assign the extra userAttributes for custom usage.\n            } else {\n                this.clearLoggedInUserVariable(loggedInUser);\n                loggedInUser.isSecurityEnabled = securityConfig && securityConfig.securityEnabled;\n                throw null;\n            }\n            return securityConfig;\n        }).catch(err => {\n            loggedInUser.isAuthenticated = false;\n            loggedInUser.roles           = [];\n            loggedInUser.name            = undefined;\n            loggedInUser.id              = undefined;\n            loggedInUser.tenantId        = undefined;\n            loggedInUser.userAttributes  = {};\n        });\n    }\n\n    /**\n     * Overriding the app variable supported locale with the wmProperties i18n DataValues\n     *\n     * TODO[Vibhu]:\n     * Can write a simple migration to sync the supportedLocale variable with '_WM_APP_PROPERTIES.supportedLanguages'\n     * Hence, this may not be required\n     *\n     */\n    updateSupportedLocaleVariable() {\n        const supportedLocaleVar = get(this.$app, 'Variables.supportedLocale');\n    }\n\n    handleSSOLogin(config, options) {\n        const SSO_URL = 'services/security/ssologin',\n            PREVIEW_WINDOW_NAME = 'WM_PREVIEW_WINDOW';\n        let page = '',\n            queryParams;\n\n        // do not provide redirectTo page if fetching HOME page resulted 401\n        // on app load, by default Home page is loaded\n\n            /*\n             * For preview, this.$security.getRedirectedRouteQueryParams() gets the queryparams form the activated route(pagewrappercomponent)\n             * For deployed app, canactivate guard resolved to false and gets the queryparams from the canactivate gurard(no active route component)\n             */\n            queryParams = (options && options.queryParams) || this.$security.getRedirectedRouteQueryParams();\n            queryParams = this.$security.getQueryString(queryParams);\n            queryParams = queryParams ? '?' + queryParams : '';\n\n            const redirectPage = this.$security.getCurrentRoutePage();\n            const homePage = getWmProjectProperties().homePage;\n            if (redirectPage && (redirectPage !== homePage || !!queryParams)) {\n                page = '?redirectPage=' + encodeURIComponent(redirectPage);\n            }\n\n            // showing a redirecting message\n            document.body.textContent = get(this.getAppLocale(), ['MESSAGE_LOGIN_REDIRECTION']) || 'Redirecting to sso login...';\n            // appending redirect to page and page params\n            const ssoUrl = this.getDeployedURL() + SSO_URL + page + queryParams;\n            /*\n             * remove iFrame when redirected to IdP login page.\n             * this is being done as IDPs do not allow to get themselves loaded into iFrames.\n             * remove-toolbar has been assigned with a window name WM_PREVIEW_WINDOW, check if the iframe is our toolbar related and\n             * safely change the location of the parent toolbar with current url.\n             */\n            if (window.self !== window.top) {\n                try {\n                    if (window.parent && window.location.origin === window.parent.origin){\n                        if(window.parent.name === PREVIEW_WINDOW_NAME) {\n                            window.parent.location.href = window.self.location.href;\n                            window.parent.name = \"\"\n                        }\n                    } else {\n                        window.location.href = ssoUrl\n                    }\n                } catch (error) {\n                    window.location.href = ssoUrl;\n                }\n            } else {\n                window.location.href = ssoUrl;\n            }\n    }\n\n    /**\n     * Handles the app when a XHR request returns 401 response\n     * If no user was logged in before 401 occurred, First time Login is simulated\n     * Else, a session timeout has occurred and the same is simulated\n     * @param page  if provided, represents the page name for which XHR request returned 401, on re-login\n     *              if not provided, a service request returned 401\n     * @param onSuccess success handler\n     * @param onError error handler\n     */\n    handle401(page?, options?) {\n        let sessionTimeoutConfig,\n            sessionTimeoutMethod,\n            loginConfig,\n            loginMethod;\n        const LOGIN_METHOD = {\n                'DIALOG' : 'DIALOG',\n                'PAGE'   : 'PAGE',\n                'SSO'    : 'SSO'\n            };\n\n        const config = this.$security.get();\n        let queryParamsObj = {};\n        loginConfig = config.loginConfig;\n        this.lastLoggedUserId = config.userInfo && config.userInfo.userId;\n        // if user found, 401 was thrown after session time\n        if (config.userInfo && config.userInfo.userName) {\n            config.authenticated = false;\n            sessionTimeoutConfig = loginConfig.sessionTimeout || {'type': LOGIN_METHOD.DIALOG};\n            sessionTimeoutMethod = sessionTimeoutConfig.type.toUpperCase();\n            switch (sessionTimeoutMethod) {\n                case LOGIN_METHOD.DIALOG:\n                    this.showLoginDialog();\n                    break;\n                case LOGIN_METHOD.PAGE:\n                    if (!page) {\n                        page = this.$security.getCurrentRoutePage();\n                    }\n                    queryParamsObj['redirectTo'] = page;\n                    // Adding query params(page params of page being redirected to) to the URL.\n                    queryParamsObj = merge(queryParamsObj, this.$security.getRedirectedRouteQueryParams());\n                    // the redirect page should not be same as session timeout login page\n                    if ( page !== sessionTimeoutConfig.pageName) {\n                        this.$router.navigate([sessionTimeoutConfig.pageName], {queryParams: queryParamsObj});\n                    }\n                    break;\n                case LOGIN_METHOD.SSO:\n                    this.handleSSOLogin(config, options);\n                    break;\n            }\n            this.setLandingPage();\n        } else {\n            // if no user found, 401 was thrown for first time login\n            loginMethod = loginConfig.type.toUpperCase();\n            switch (loginMethod) {\n                case LOGIN_METHOD.DIALOG:\n                    // Through loginDialog, user will remain in the current state and failed calls will be executed post login through LoginActionService.\n                    // NOTE: user will be redirected to respective landing page only if dialog is opened manually(not through a failed 401 call).\n                    this.noRedirect(true);\n                    this.showLoginDialog();\n                    break;\n                case LOGIN_METHOD.PAGE:\n                    // do not provide redirectTo page if fetching HOME page resulted 401\n                    // on app load, by default Home page is loaded\n                    page = this.$security.getRedirectPage(config, page);\n                    queryParamsObj['redirectTo'] = page;\n                    const extraQueryParams = (options && options.queryParams) || this.$security.getRedirectedRouteQueryParams();\n                    queryParamsObj = merge(queryParamsObj, extraQueryParams);\n                    this.$router.navigate([loginConfig.pageName], {queryParams: queryParamsObj});\n                    this.$app.landingPageName = loginConfig.pageName;\n                    break;\n                case LOGIN_METHOD.SSO:\n                    this.handleSSOLogin(config, options);\n                    break;\n            }\n        }\n    }\n\n    /**\n     * Updates data dependent on logged in user\n     * Reloads security config, metadata\n     * Updates the loggedInUserVariable\n     * @returns {Promise<void>}\n     */\n    reloadAppData() {\n        return this.loadSecurityConfig(true).then(() => {\n            return this.loadMetadata().then(() => {\n                return this.updateLoggedInUserVariable().then((config) => {\n                    return Promise.resolve(this.beforeAppReady())\n                        .then(() => Promise.resolve(config));\n                })\n            });\n        });\n    }\n\n    noRedirect(value?: boolean) {\n        if (isUndefined(value)) {\n            return this._noRedirect;\n        }\n\n        this._noRedirect = value;\n        return this._noRedirect;\n    }\n\n    /**\n     * invokes session failure requests\n     */\n    executeSessionFailureRequests() {\n        this.$http.executeSessionFailureRequests();\n    }\n\n    pushToSessionFailureRequests(callback) {\n        this.$http.pushToSessionFailureQueue(callback);\n    }\n\n    public getDeployedURL() {\n        return this.$app.deployedUrl ? this.$app.deployedUrl : $rootScope.project.deployedUrl;\n    }\n\n    /**\n     * Fetches the customurlscheme for a mobile app\n     * which is used for redirection back to the app from browser in implicit oAuth flow\n     * @returns {string}\n     */\n    public getCustomUrlScheme() {\n        return this.$app.customUrlScheme;\n    }\n\n    notify(eventName, data) {\n        this.$app.notify(eventName, data);\n    }\n\n    subscribe(eventName, data) {\n        return this.$app.subscribe(eventName, data);\n    }\n\n    getActivePage() {\n        return this.$app.activePage;\n    }\n\n    getAppLocale() {\n        return this.$app.appLocale;\n    }\n\n    getSelectedLocale() {\n        return this.$i18n.getSelectedLocale();\n    }\n\n    notifyApp(template, type, title?) {\n        this.$app.notifyApp(template, type, title);\n    }\n\n    /**\n     * Notifies access denied for a page (e.g. RoleGuard) and invokes App.onServiceError\n     * with a 403-shaped response.\n     */\n    notifyAccessDenied(pageName?: string, message?: string) {\n        const errorMessage = message\n            || get(this.getAppLocale(), 'LABEL_ACCESS_DENIED')\n            || this.$app.appLocale?.LABEL_ACCESS_DENIED\n            || 'Access Denied';\n        const pagePath = pageName || this.$security.getCurrentRoutePage();\n        const errorResponse = {\n            message: errorMessage,\n            status: 403,\n            statusText: 'Forbidden',\n            ok: false,\n            url: pagePath ? `./pages/${pagePath}/page.min.json` : '',\n            body: null,\n            error: errorMessage\n        };\n        this.appOnServiceError(errorMessage, errorResponse);\n        this.notifyApp(errorMessage, 'error');\n    }\n\n    /**\n     * Triggers the onBeforeService method defined in app.js of the app\n     * @param requestParams\n     */\n    appOnBeforeServiceCall(requestParams: any) {\n        return triggerFn(this.$app.onBeforeServiceCall, requestParams);\n    }\n\n    /**\n     * Triggers the onServiceSuccess method defined in app.js of the app\n     * @param data\n     * @param xhrObj\n     */\n    appOnServiceSuccess(data: any, xhrObj: any) {\n        return triggerFn(this.$app.onServiceSuccess, data, xhrObj);\n    }\n\n    /**\n     * Triggers the onServiceError method defined in app.js of the app\n     * @param data\n     * @param xhrOb\n     */\n    appOnServiceError(data: any, xhrOb?: any) {\n        return triggerFn(this.$app.onServiceError, data, xhrOb);\n    }\n\n    /**\n     * Triggers the appVariablesReady method defined in app.js of the app\n     */\n    appVariablesReady() {\n        triggerFn(this.$app.onAppVariablesReady);\n    }\n\n    /**\n     * Triggers the onBeforeAppReady method defined in app.js of the app\n     */\n    beforeAppReady() {\n        return triggerFn(this.$app.onBeforeAppReady);\n    }\n\n    /**\n     * Returns the pipe based on the input\n     */\n    getPipe(pipe) {\n        if (pipe === 'date') {\n            return this.$datePipe;\n        }\n    }\n\n    private setLandingPage() {\n        return this.$security.getPageByLoggedInUser().then(p => this.$app.landingPageName = <string> p);\n    }\n\n    /**\n     * return true if prefab type app\n     * @returns {boolean}\n     */\n    isPrefabType() {\n        return this.$app.isPrefabType;\n    }\n\n    /**\n     * return true if template bundle type app\n     * @returns {boolean}\n     */\n    isTemplateBundleType() {\n        return this.$app.isTemplateBundleType;\n    }\n\n    postMessage(content) {\n        window.top.postMessage(content, '*');\n    }\n\n    showTemplate(idx) {\n        const template = this.templates[idx];\n        // scope.activeTemplateIndex = idx;\n        this.$router.navigate([template.id]);\n    }\n    postTemplateBundleInfo() {\n\n        window.onmessage = (evt) => {\n            const msgData = evt.data;\n\n            if (!isObject(msgData)) {\n                return;\n            }\n\n            // @ts-ignore\n            const key = msgData.key;\n\n            switch (key) {\n                case POST_MESSAGES.HIDE_TEMPLATES_SHOW_CASE:\n                    // scope.hideShowCase = true;\n                    break;\n                case POST_MESSAGES.SELECT_TEMPLATE:\n                    // @ts-ignore\n                    this.showTemplate(msgData.templateIndex);\n                    break;\n            }\n        };\n\n        setTimeout(() => {\n            this.postMessage({key: POST_MESSAGES.ON_LOAD});\n        });\n\n        return fetchContent('json', './config.json', true, response => {\n            this.templates = [];\n            if (!response.error) {\n                this.templates = response.templates;\n                this.postMessage({'key': POST_MESSAGES.TEMPLATEBUNDLE_CONFIG, 'config': response});\n            }\n        });\n    }\n\n    postAppTypeInfo() {\n        if (this.isTemplateBundleType()) {\n            return this.postTemplateBundleInfo();\n        }\n    }\n\n    initAppModes(): void {\n        // get modes from local storage\n        let storedModes = getModesFromLocalStorage();\n\n        // Apply restored modes\n        this.$app.setMode(storedModes);\n\n        // Listener for postMessage-based mode changes\n        // MEMORY LEAK FIX: Store bound function reference for cleanup\n        this.windowMessageListener = (event) => {\n            const { key, modes, shouldPersist } = event.data || {};\n            if (key === 'switch-mode' && modes) {\n                this.$app.setMode(modes, !shouldPersist);\n            }\n        };\n        window.addEventListener('message', this.windowMessageListener);\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from all app subscriptions\n        this.appSubscriptions.forEach(unsubscribe => {\n            if (unsubscribe) {\n                unsubscribe();\n            }\n        });\n        this.appSubscriptions = [];\n\n        // MEMORY LEAK FIX: Unsubscribe from session timeout\n        if (this.sessionTimeoutUnsubscribe) {\n            this.sessionTimeoutUnsubscribe();\n            this.sessionTimeoutUnsubscribe = null;\n        }\n\n        // MEMORY LEAK FIX: Remove window message listener\n        if (this.windowMessageListener) {\n            window.removeEventListener('message', this.windowMessageListener);\n            this.windowMessageListener = null;\n        }\n\n        // MEMORY LEAK FIX: Clear references\n        this.templates = null;\n        this.lastLoggedUserId = null;\n    }\n}\n","import { _WM_APP_PROJECT } from \"@wm/core\";\nimport { MODE_CONSTANTS } from '@wm/variables';\n\nexport const isPrefabInPreview = (prefabName: string) => prefabName === '__self__';\n\nexport const getPrefabBaseUrl = (prefabName: string) => {\n    const basePath = _WM_APP_PROJECT.isPreview ? 'app/prefabs' : _WM_APP_PROJECT.cdnUrl + 'resources';\n    return isPrefabInPreview(prefabName) ? '.' : basePath + `/${prefabName}`\n};\n\nexport const getPrefabConfigUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/config.json`;\n\nexport const getPrefabMinJsonUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/pages/Main/page.min.json`;\n\nexport const getPrefabPartialJsonUrl = (prefabName: string, partialName: string) => `${getPrefabBaseUrl(prefabName)}/pages/${partialName}/page.min.json`;\n\nexport const getModesFromLocalStorage = () => {\n    // get modes\n    let storedValue: any = localStorage.getItem(`wm-app-modes`) || '{}';\n\n    // parse the modes \n    try {\n        storedValue = JSON.parse(storedValue);\n    } catch (error) {\n        console.error(\"Error parsing modes\", error.message);\n        storedValue = {}\n    }\n    \n    // return parsed modes\n    return storedValue;\n};","import { Injectable } from '@angular/core';\n\nimport { loadScripts, loadStyleSheets, stringStartsWith } from '@wm/core';\nimport { MetadataService } from '@wm/variables';\n\nimport { PrefabConfigProvider } from '../types/types';\nimport { getPrefabBaseUrl, isPrefabInPreview } from '../util/utils';\nimport {endsWith} from \"lodash-es\";\n\nconst prefabsWithError = new Set<string>();\nconst inProgress = new Map<string, Promise<any>>();\nconst resolvedPrefabs = new Set<string>();\n\nconst getPrefabResourceUrl = (resourcePath, resourceBasePath) => {\n    let _url = resourcePath;\n    if (!stringStartsWith(resourcePath, 'http://|https://|//')) {\n        _url = (resourceBasePath + _url);\n    }\n    return _url;\n};\n\n@Injectable()\nexport class PrefabManagerService {\n\n    constructor(\n        private $metadata: MetadataService,\n        private prefabConfigProvider: PrefabConfigProvider\n    ) {}\n\n    public getConfig(prefabName): Promise<any> {\n        return this.prefabConfigProvider.getConfig(prefabName);\n    }\n\n    public loadServiceDefs(prefabName): Promise<any> {\n        return isPrefabInPreview(prefabName) ? Promise.resolve() : this.$metadata.load(prefabName);\n    }\n\n    protected loadStyles(prefabName, {resources: {styles}} = {resources: {styles: []}}): Promise<void> {\n        const baseUrl = getPrefabBaseUrl(prefabName);\n        const _styles = styles.map(url => {\n            if (!endsWith(url, '/pages/Main/Main.css')) {\n                return getPrefabResourceUrl(url, baseUrl);\n            }\n            return undefined;\n        }).filter(url => !!url);\n\n        loadStyleSheets(_styles);\n\n        return Promise.resolve();\n    }\n\n    // TODO [Vinay] - implement onPrefabResourceLoad\n    protected loadScripts(prefabName, {resources: {scripts}} = {resources: {scripts: []}}): Promise<any> {\n        const baseUrl = getPrefabBaseUrl(prefabName);\n        scripts = scripts.filter(script => !script.startsWith('npm://'));\n        const _scripts = scripts.map(url => getPrefabResourceUrl(url, baseUrl));\n\n        return loadScripts(_scripts, true);\n    }\n\n    private setInProgress(prefabName: string) {\n        let _res;\n        let _rej;\n        const _promise: any = new Promise((res, rej) => {\n            _res = res;\n            _rej = rej;\n        });\n\n        _promise.resolve = _res;\n        _promise.reject = _rej;\n\n        inProgress.set(prefabName, _promise);\n    }\n\n    private resolveInProgress(prefabName: string) {\n        if (inProgress.get(prefabName)) {\n            (inProgress.get(prefabName) as any).resolve();\n            inProgress.delete(prefabName);\n        }\n    }\n\n    public loadDependencies(prefabName): Promise<void> {\n\n        if (resolvedPrefabs.has(prefabName)) {\n            return Promise.resolve();\n        }\n\n        if (prefabsWithError.has(prefabName)) {\n            return Promise.reject('');\n        }\n\n        if (inProgress.get(prefabName)) {\n            return inProgress.get(prefabName);\n        }\n\n        this.setInProgress(prefabName);\n\n        return this.getConfig(prefabName)\n            .then(config => {\n                return Promise.all([\n                    this.loadStyles(prefabName, config),\n                    this.loadScripts(prefabName, config),\n                    this.loadServiceDefs(prefabName)\n                ]).then(() => {\n                    this.resolveInProgress(prefabName);\n                    resolvedPrefabs.add(prefabName);\n                });\n            });\n    }\n}\n","import { noop } from '@wm/core';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { Directive } from \"@angular/core\";\n\n@Directive()\nexport abstract class FragmentMonitor {\n    fragments = 0;\n    viewInit$: Subject<any>;\n    isViewInitialized: boolean;\n    isPageComponent: boolean = true;\n\n    fragmentsLoaded$ = new Subject();\n    private viewInitSubscription: Subscription; // MEMORY LEAK FIX: Store subscription reference\n\n    constructor() {}\n\n    init() {\n        // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);\n\n        // MEMORY LEAK FIX: Store subscription reference for cleanup\n        this.viewInitSubscription = this.viewInit$.subscribe(noop, noop, () => {\n            this.isViewInitialized = true;\n            this.isReady();\n        });\n    }\n\n    /**\n     * MEMORY LEAK FIX: Clean up FragmentMonitor resources\n     * Should be called from implementing class's ngOnDestroy\n     */\n    protected cleanupFragmentMonitor() {\n        // MEMORY LEAK FIX: Unsubscribe from viewInit$ subscription\n        if (this.viewInitSubscription) {\n            this.viewInitSubscription.unsubscribe();\n            this.viewInitSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Complete Subjects to release subscriptions (if not already completed)\n        if (this.viewInit$ && !this.viewInit$.closed) {\n            this.viewInit$.complete();\n        }\n        this.viewInit$ = null;\n\n        if (this.fragmentsLoaded$ && !this.fragmentsLoaded$.closed) {\n            this.fragmentsLoaded$.complete();\n        }\n        this.fragmentsLoaded$ = null;\n    }\n\n    registerFragment() {\n        this.fragments++;\n    }\n\n    resolveFragment() {\n        this.fragments--;\n        this.isReady();\n    }\n\n    isReady() {\n        if (this.isViewInitialized && !this.fragments) {\n            this.registerFragment = noop;\n            this.resolveFragment = noop;\n            this.fragmentsLoaded$.complete();\n        }\n    }\n}\n","import {\n    AfterViewInit,\n    Injector,\n    OnDestroy,\n    ViewChild,\n    Directive,\n    inject\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\nimport {\n    $invokeWatchers,\n    AbstractI18nService,\n    AbstractNavigationService,\n    App,\n    noop,\n    Viewport,\n    ScriptLoaderService,\n    UtilsService,\n    registerFnByExpr\n} from '@wm/core';\nimport { PartialDirective, WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport {PrefabDirective} from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {each} from \"lodash-es\";\n\nexport const commonPartialWidgets = {};\n\n@Directive()\nexport abstract class BasePartialComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n    Widgets: any;\n    Variables: any;\n    Actions: any;\n    App: App;\n    injector: Injector;\n    partialName: string;\n    activePageName: string;\n    route: ActivatedRoute;\n    appManager: AppManagerService;\n    navigationService: AbstractNavigationService;\n    router: Router;\n    pageParams: any;\n    containerWidget: any;\n    i18nService: AbstractI18nService;\n    appLocale: any;\n    @ViewChild(PartialDirective) partialDirective;\n    pageDirective: PageDirective | SpaPageDirective;\n    Prefab: PrefabDirective;\n    scriptLoaderService: ScriptLoaderService;\n    Viewport: Viewport;\n    compileContent = false;\n    spa: boolean;\n\n    destroy$ = new Subject();\n    viewInit$ = new Subject();\n    private viewParent: any;\n\n    abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n\n    abstract getVariables();\n    abstract getExpressions();\n\n    getContainerWidgetInjector() {\n        return this.containerWidget.inj || this.containerWidget.injector;\n    }\n\n    init() {\n\n        this.App = this.injector ? this.injector.get(App) : inject(App);\n        //making the code compatible in both the JIT and AOT modes\n        this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n        this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n        this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n        this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n        // this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);\n        // Replacing this.getContainerWidgetInjector().view.component as viewParent\n        // this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];\n        this.viewParent = this.containerWidget.viewParent;\n\n        if (this.viewParent.registerFragment) {\n            this.viewParent.registerFragment();\n        }\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n        this.initUserScript();\n\n        this.registerWidgets();\n        this.initVariables();\n\n        this.activePageName = this.App.activePageName; // Todo: remove this\n        this.registerPageParams();\n\n        this.defineI18nProps();\n\n        this.viewInit$.subscribe(noop, noop, () => {\n            this.pageParams = this.containerWidget.partialParams;\n        });\n\n        if(this.spa) {\n            this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n        } else {\n            this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n        }\n        if (this.pageDirective) {\n            this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n            this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n        }\n\n        super.init();\n    }\n\n    registerWidgets() {\n        if (this.partialName === 'Common') {\n            this.Widgets = commonPartialWidgets;\n        } else {\n            this.Widgets = Object.create(commonPartialWidgets);\n        }\n\n        this.containerWidget.Widgets = this.Widgets;\n    }\n\n    registerDestroyListener(fn: Function) {\n        this.destroy$.subscribe(noop, noop, () => fn());\n    }\n\n    initUserScript() {\n        try {\n            // partials inside prefab should have access to Prefab properties and events\n            if (this.viewParent.prefabName) {\n                // for partial within partial within prefabs, just assign the parent partial's prefab object\n                if (this.viewParent.Prefab) {\n                    this.Prefab = this.viewParent.Prefab;\n                } else {\n                    this.Prefab = this.viewParent;\n                }\n            }\n            this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n        } catch (e) {\n            console.error(`Error in evaluating partial (${this.partialName}) script\\n`, e);\n        }\n    }\n\n    initVariables() {\n        const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n        // get variables and actions instances for the page\n        const variableCollection = variablesService.register(this.partialName, this.getVariables(), this);\n\n        // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n        this.Variables = Object.create(this.App.Variables);\n        this.Actions = Object.create(this.App.Actions);\n\n        this.containerWidget.Variables = this.Variables;\n        this.containerWidget.Actions = this.Actions;\n\n        // assign all the page variables to the pageInstance\n        Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n        Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n        this.viewInit$.subscribe(noop, noop, () => {\n            // TEMP: triggering watchers so variables watching over params are updated\n            $invokeWatchers(true, true);\n            variableCollection.callback(variableCollection.Variables).catch(noop);\n            variableCollection.callback(variableCollection.Actions);\n        });\n    }\n\n    /**\n     * function to register bind expressions generated in this partial instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        const expressions = this.getExpressions();\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    registerPageParams() {\n        this.pageParams = this.containerWidget.partialParams;\n    }\n\n    defineI18nProps() {\n        this.appLocale = this.i18nService.getAppLocale();\n    }\n\n    invokeOnReady() {\n        let params;\n        if (this.containerWidget.userComponentParams) {\n            params = this.containerWidget.userComponentParams;\n        }\n        this.onReady(params);\n        if (this.viewParent.resolveFragment) {\n            this.viewParent.resolveFragment();\n        }\n    }\n\n    private loadScripts() {\n        return new Promise<void>((resolve) => {\n            const scriptsRequired = this.partialDirective?.$element.attr('scripts-to-load');\n            if (scriptsRequired) {\n                this.scriptLoaderService\n                    .load(...scriptsRequired.split(','))\n                    .then(resolve);\n            } else {\n                resolve();\n            }\n        });\n    }\n\n    mute() {\n        const m = o => { o && o.mute && o.mute(); };\n        each(this.Widgets, m);\n        each(this.Variables, m);\n        each(this.Actions, m);\n    }\n\n    unmute() {\n        const um = o => { o && o.unmute && o.unmute(); };\n        each(this.Widgets, um);\n        each(this.Variables, um);\n        each(this.Actions, um);\n    }\n\n    // ngOnInit() {\n    //     this.init();\n    // }\n\n    ngAfterViewInit(): void {\n        this.loadScripts().then(() => {\n            this.compileContent = true;\n            setTimeout(() => {\n                this.viewInit$.complete();\n\n                this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n\n            }, 100);\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.complete();\n    }\n\n    ngOnAttach(refreshData) {\n        this.unmute();\n        if (refreshData) {\n            const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n            each(this.Variables, refresh);\n            each(this.Actions, refresh);\n        }\n        each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n    }\n\n    ngOnDetach() {\n        this.mute();\n        each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n    }\n\n    onReady(params?) {\n    }\n}\n","import {Inject} from '@angular/core';\n/*\nCustom Route Reuse Strategies:\n* WmDefaultRouteReuseStrategy: Base Function & Utils\n* WmRouteReseStrategy : For Preview & WaveMaker Deployments\n* WmNgRouteReuseStrategy : For Angular Deployments\n\nWhen a user invokes navigation action from 'Page1' to 'Page2'\nReuse Route : True,\n                    if the Page1 & Page2 are same with Same Query Params\nReuse Route : False,\n                    if the Page1 & Page 2 are different,\n                    if the Page1 & Page 2 are same, but the query params are different\n*/\nimport {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy,} from '@angular/router';\n\nimport {LRUCache} from '@wm/core';\nimport {isNil} from \"lodash-es\";\n\nexport const CACHE_PAGE = '_cache_page';\nexport const MAX_CACHE_SIZE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_SIZE';\nexport const MAX_CACHE_AGE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_AGE';\n\n/* Base Strategy with Default implementations */\nexport class WmDefaultRouteReuseStrategy {\n    private cache: LRUCache<DetachedRouteHandle>;\n    private currentRouteKey: string;\n    private paramsToIgnore = [\n        'wm_state', // state persistence,\n        CACHE_PAGE // to use page cache\n    ];\n\n    constructor(@Inject(MAX_CACHE_SIZE) maxCacheSize?: number,\n                @Inject(MAX_CACHE_AGE) maxCacheAge?: number) {\n        this.cache = new LRUCache<DetachedRouteHandle>(maxCacheSize, maxCacheAge, (key, handle) => {\n            if (this.currentRouteKey === key) {\n                this.cache.set(key, handle);\n            } else {\n                (handle as any).componentRef.destroy();\n            }\n        });\n    }\n\n    private getKey(route: ActivatedRouteSnapshot) {\n        const queryParams = Object.keys(route.queryParams)\n            .filter(k => !this.paramsToIgnore.includes(k))\n            .map(k => k + '=' + route.queryParams[k])\n            .sort().join('&');\n        let pageName = route.params.pageName;\n        if (route.data.pageName && route.routeConfig.path === route.data.pageName) {\n            pageName = route.data.pageName;\n        }\n        return pageName && (pageName + (queryParams ? `?${queryParams}`: ''));\n    }\n\n    protected getSize = (obj: object | null): number =>\n        obj ? Object.keys(obj).length : 0;\n\n    protected isSameQueryParams(future, current): boolean {\n        try {\n            const fqParams = future.queryParams;\n            const cqParams = current.queryParams;\n            const fqParamsCount = fqParams ? this.getSize(fqParams) : 0;\n            const cqParamsCount = cqParams ? this.getSize(cqParams) : 0;\n\n            if (fqParamsCount === 0 && cqParamsCount === 0) {\n                return true;\n            }\n            if (fqParamsCount !== cqParamsCount) {\n                return false;\n            }\n            return JSON.stringify(fqParams) === JSON.stringify(cqParams);\n        } catch (e) {\n            return false;\n        }\n    }\n\n    private isCacheEnabled(route: ActivatedRouteSnapshot, defaultValue: boolean) {\n        const canReuse = route.queryParams[CACHE_PAGE];\n        if (!isNil(canReuse)) {\n            return (canReuse === 'true' || canReuse === true);\n        }\n        return defaultValue;\n    }\n\n    // DefaultRouteReuseStrategy : Begin\n    shouldDetach(route: ActivatedRouteSnapshot): boolean {\n        const key = this.getKey(route);\n        if (this.isCacheEnabled(route, !!route.data[CACHE_PAGE])) {\n            return true;\n        }\n        this.cache.delete(key);\n        return false;\n    }\n\n    shouldAttach(route: ActivatedRouteSnapshot): boolean {\n        const key = this.getKey(route);\n        this.currentRouteKey = key;\n        const cachedHandle = this.cache.get(key) as DetachedRouteHandle;\n        if (cachedHandle && this.isCacheEnabled(route, !!(cachedHandle[CACHE_PAGE]))) {\n            return true;\n        }\n        this.cache.delete(key);\n        return false;\n    }\n\n    store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\n        if (handle) {\n            const key = this.getKey(route);\n            handle[CACHE_PAGE] = !!route.data[CACHE_PAGE];\n            this.cache.set(key, handle);\n        }\n    }\n\n    retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n        const key = this.getKey(route);\n        return this.cache.get(key);\n    }\n\n    reset(pageName?: string) {\n        if (pageName) {\n            this.cache.delete(pageName);\n            const pageWithParams = pageName += '?';\n            const entriesToDelete = [];\n            for(let k of this.cache.keys()) {\n                if (k.startsWith(pageWithParams)) {\n                    entriesToDelete.push(k);\n                }\n            }\n            entriesToDelete.forEach(k => this.cache.delete(k));\n        } else {\n            return this.cache.clear();\n        }\n    }\n}\n/* Custom Strategy specifically for preview & WaveMaker Deployments */\nexport class WmRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n    implements RouteReuseStrategy {\n    constructor() {\n        super();\n    }\n    private isSameRoute(future, current): boolean {\n        // Incase of prefab project we have only one route So reloading the route everytime\n        if (future.routeConfig && future.routeConfig.path === 'prefab-preview') {\n            return false;\n        }\n        /*\n        In WM Deployment, Navigation is handled by PageWrapperComponent\n                          & Route Info is passed as a parameter\n        */\n        const fParams = future.params;\n        const cParams = current.params;\n        const fParamsCount = this.getSize(fParams);\n        const cParamsCount = this.getSize(cParams);\n        if (fParamsCount === 0 && cParamsCount === 0) {\n            return true;\n        }\n        if (fParamsCount !== cParamsCount) {\n            return false;\n        }\n        if (fParams['pageName'] === cParams['pageName']) {\n            return this.isSameQueryParams(future, current);\n        }\n        return false;\n    }\n    shouldReuseRoute(\n        future: ActivatedRouteSnapshot,\n        current: ActivatedRouteSnapshot\n    ): boolean {\n        return this.isSameRoute(future, current);\n    }\n}\n/* Custom Strategy specifically for Angular Deployments */\nexport class WmNgRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n    implements RouteReuseStrategy {\n    constructor() {\n        super();\n    }\n    private isSameRoute(future, current): boolean {\n        /*\n        In Angular Deployment, Navigation is handled by Angular\n                               & Route Info is passed by routeConfig\n        */\n        if (!future.routeConfig && !current.routeConfig) {\n            return true;\n        }\n        if (future.routeConfig !== current.routeConfig) {\n            return false;\n        }\n        if (future.routeConfig === current.routeConfig) {\n            //No need to compare query params for layout routeConfig\n            if(future.data.layoutName && current.data.layoutName)  {\n                return  true;\n            }\n            return this.isSameQueryParams(future, current);\n        }\n        return true;\n    }\n    shouldReuseRoute(\n        future: ActivatedRouteSnapshot,\n        current: ActivatedRouteSnapshot\n    ): boolean {\n        return this.isSameRoute(future, current);\n    }\n}\n","import {\n    AfterContentInit,\n    AfterViewInit,\n    Directive,\n    HostListener,\n    inject,\n    Injector,\n    OnDestroy,\n    ViewChild\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\n\nimport {\n    AbstractI18nService,\n    AbstractNavigationService,\n    App,\n    getWmProjectProperties,\n    isAndroid,\n    isIos,\n    muteWatchers,\n    noop,\n    registerFnByExpr,\n    ScriptLoaderService,\n    unMuteWatchers,\n    UtilsService,\n    Viewport\n} from '@wm/core';\nimport {PageDirective} from '@wm/components/page';\n\nimport {Subject} from 'rxjs';\nimport {commonPartialWidgets} from './base-partial.component';\n\n\nimport {VariablesService} from '@wm/variables';\nimport {AppManagerService} from '../services/app.manager.service';\nimport {FragmentMonitor} from '../util/fragment-monitor';\nimport {CACHE_PAGE} from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\ndeclare const html2canvas;\n\n@Directive()\nexport abstract class BasePageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n    static lastPageSnapShot = null;\n    Widgets: any;\n    Variables: any;\n    Actions: any;\n    App: App;\n    injector: Injector;\n    pageName: string;\n    activePageName: string;\n    route: ActivatedRoute;\n    appManager: AppManagerService;\n    navigationService: AbstractNavigationService;\n    router: Router;\n    pageParams: any;\n    showPageContent: boolean;\n    i18nService: AbstractI18nService;\n    appLocale: any;\n    startupVariablesLoaded = false;\n    pageTransitionCompleted = false;\n    @ViewChild(PageDirective) pageDirective;\n    $page;\n    scriptLoaderService: ScriptLoaderService;\n    Viewport: Viewport;\n\n    destroy$ = new Subject();\n    viewInit$ = new Subject();\n    formatsByLocale = {'timezone': ''};\n\n\n    abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n    abstract getVariables();\n    abstract getExpressions();\n\n    init() {\n\n        muteWatchers();\n\n        this.App = this.injector ? this.injector.get(App) : inject(App);\n        this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n        this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n        this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n        this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n        this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n        this.router = this.injector ? this.injector.get(Router) : inject(Router);\n        this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n        this.initUserScript();\n\n        this.registerWidgets();\n        this.initVariables();\n\n        this.App.lastActivePageName = this.App.activePageName;\n        this.App.activePageName = this.pageName;\n        this.App.activePage = this;\n        this.activePageName = this.pageName; // Todo: remove this\n\n        this.registerPageParams();\n        this.defineI18nProps();\n        super.init();\n    }\n\n    registerWidgets() {\n        // common partial widgets should be accessible from page\n        this.Widgets = Object.create(commonPartialWidgets);\n\n        // expose current page widgets on app\n        (this.App as any).Widgets = Object.create(this.Widgets);\n    }\n\n    initUserScript() {\n        try {\n            this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n        } catch (e) {\n            console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n        }\n    }\n\n    registerPageParams() {\n        const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n        this.registerDestroyListener(() => subscription.unsubscribe());\n    }\n\n    registerDestroyListener(fn: Function) {\n        this.destroy$.subscribe(noop, noop, () => fn());\n    }\n\n    defineI18nProps() {\n        this.appLocale = this.i18nService.getAppLocale();\n    }\n\n    initVariables() {\n        const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n        // get variables and actions instances for the page\n        const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n        // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n        this.Variables = Object.create(this.App.Variables);\n        this.Actions = Object.create(this.App.Actions);\n\n        // assign all the page variables to the pageInstance\n        Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n        Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n        const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n            if (!this.appManager.isAppVariablesFired()) {\n                variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n                    this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n                });\n                variableCollection.callback(this.App.Actions);\n                this.appManager.appVariablesReady();\n                this.appManager.isAppVariablesFired(true);\n            }\n\n            variableCollection.callback(variableCollection.Variables)\n                .catch(noop)\n                .then(() => {\n                    this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n                    this.startupVariablesLoaded = true;\n                    // hide the loader only after the some setTimeout for smooth page load.\n                    setTimeout(() => {\n                        this.showPageContent = true;\n                    }, 100);\n                });\n            variableCollection.callback(variableCollection.Actions);\n\n            subscription.unsubscribe();\n        });\n    }\n\n    setTimezone(locale) {\n        this.i18nService.setTimezone(locale, this);\n    }\n\n    /**\n     * function to register bind expressions generated in this page instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        const expressions = this.getExpressions();\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    runPageTransition(transition?: string): Promise<void> {\n        transition = transition || this.navigationService.getPageTransition();\n        const lastPage = BasePageComponent.lastPageSnapShot\n        return new Promise<void>(resolve => {\n            if (transition\n                && !transition.startsWith('none')\n                && lastPage) {\n                const $target = lastPage.parent();\n                const onTransitionEnd = (e) => {\n                    if (resolve && !(e && e.pseudoElement)) {\n                        $target.off('animationend', onTransitionEnd);\n                        $target.removeClass(transition);\n                        $target.children().first().remove();\n                        resolve();\n                        resolve = null;\n                    }\n                };\n                transition = 'page-transition page-transition-' + transition;\n                lastPage.addClass('page-exit');\n                this.$page.addClass('page-entry');\n                $target.addClass(transition);\n                $target.on('animationend', onTransitionEnd);\n                // Wait for a maximum of 1 second for transition to end.\n                setTimeout(onTransitionEnd, 1000);\n            } else {\n                resolve();\n            }\n        }).then(() => {\n            this.$page && this.$page.removeClass('page-entry');\n            if (lastPage) {\n                lastPage.remove();\n                BasePageComponent.lastPageSnapShot = null;\n            }\n            this.pageTransitionCompleted = true;\n        });\n    }\n\n    invokeOnReady() {\n        this.onReady();\n        this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n        (this.App.onPageReady || noop)(this.pageName, this);\n\n        const homePage = getWmProjectProperties()?.homePage;\n        if (window.top.name !== window.name && homePage === this.pageName) {\n            window.top.postMessage({key: 'onHomepageLoad'}, \"*\");\n        }\n    }\n\n    private loadScripts() {\n        return new Promise<void>((resolve) => {\n            const scriptsRequired = this.pageDirective && this.pageDirective.$element.attr('scripts-to-load');\n            if (scriptsRequired) {\n                this.scriptLoaderService\n                    .load(...scriptsRequired.split(','))\n                    .then(resolve);\n            } else {\n                resolve();\n            }\n        });\n    }\n\n    private restoreLastPageSnapshot() {}\n\n    private savePageSnapShot() {\n        if (BasePageComponent.lastPageSnapShot) {\n            BasePageComponent.lastPageSnapShot.remove();\n        }\n    }\n\n    private saveScrollPosition() {\n        const fn = ($el, key, recursive = true, $target = $el)  => {\n            if (recursive) {\n                $el.children().each((i, v) => fn($(v), key));\n            }\n            const scrollData = {\n                x: $target.scrollLeft(),\n                y: $target.scrollTop()\n            };\n            if(scrollData.x > 0 || scrollData.y > 0) {\n                $el.attr(key, scrollData.x + ',' + scrollData.y);\n            }\n        };\n        fn(this.$page, 'data-scroll-position');\n        this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n    }\n\n    private restoreScrollPosition() {\n        const fn = ($el, key, recursive  = true, $target = $el) => {\n            const scrollData = ($el.attr(key) || '').split(',');\n            if(scrollData.length > 1) {\n                $target.scrollLeft(scrollData[0]);\n                $target.scrollTop(scrollData[1]);\n            }\n            $el.removeAttr(key);\n            if (recursive) {\n                $el.children().each((i, v) => fn($(v), key));\n            }\n        };\n        fn(this.$page, 'data-scroll-position');\n        fn(this.$page, 'data-window-scroll-position', false, $(window));\n    }\n\n    /**\n     * canDeactivate is called before a route change.\n     * This will internally call onBeforePageLeave method present\n     * at page level and app level in the application and decide\n     * whether to change route or not based on return value.\n     */\n    @HostListener('window:beforeunload')\n    canDeactivate(nextState?: string){\n        let retVal;\n        // Calling onBeforePageLeave method present at page level\n        retVal = this.onBeforePageLeave();\n        // Calling onBeforePageLeave method present at app level only if page level method return true\n        // or if there is no page level method\n        if (retVal !== false ) {\n            retVal =  (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage, nextState);\n        }\n        return retVal === undefined ? true : retVal;\n    }\n\n    ngAfterViewInit(): void {\n        this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n        if (this.pageDirective) {\n            this.$page = this.pageDirective.$element.parent();\n            if (isIos()) {\n                this.$page.addClass('ios-page');\n            }\n            if (isAndroid()) {\n                this.$page.addClass('android-page');\n            }\n        }\n        this.restoreLastPageSnapshot();\n        this.loadScripts().then(() => {\n            this.runPageTransition()\n                .then(() => {\n                    (this as any).compilePageContent = true;\n                    setTimeout(() => {\n                        this.onPageContentReady = () => {\n                            this.fragmentsLoaded$.subscribe(noop, noop, () => {\n                                this.invokeOnReady();\n                            });\n                            unMuteWatchers();\n                            this.viewInit$.complete();\n                            this.onPageContentReady = noop;\n                        };\n                    }, 0);\n                });\n        });\n    }\n\n    ngOnDestroy(): void {\n        // MEMORY LEAK FIX: Unwatch all Page-scoped watchers for THIS specific page when page is destroyed\n        //this.captureApplicationThumbnail();\n        this.savePageSnapShot();\n        this.destroy$.complete();\n    }\n\n    captureApplicationThumbnail() {\n        const root = this;\n        let captureApplicationThumbnail = localStorage.getItem(\"captureApplicationThumbnail\") === \"true\" ? true : false;\n        if (captureApplicationThumbnail && this.App.landingPageName === this.pageName && !(<any>this).App.isApplicationThumbnailCaptured) {\n            html2canvas(document.body)\n                .then(canvas => {\n                    try {\n                        (<any>root).App.isApplicationThumbnailCaptured = true;\n                        const screenshotUrl = canvas.toDataURL(\"image/png\");\n                        console.log(screenshotUrl);\n\n                        const a = document.createElement(\"a\");\n                        a.href = screenshotUrl;\n                        a.download = \"screenshot.jpg\";\n                        a.click();\n                    } catch (error) {\n                        console.error('Error in html2canvas then block:', error);\n                    }\n                })\n                .catch(error => {\n                    console.error('Error in html2canvas promise:', error);\n                });\n\n        }\n    }\n\n    onReady() {}\n\n    onBeforePageReady() {}\n\n    onBeforePageLeave() {}\n\n    onPageContentReady() {}\n\n    canReuse() {\n        return !!(this.pageDirective && this.pageDirective.cache);\n    }\n\n    mute() {\n        const m = o => { o && o.mute && o.mute(); };\n        each(this.Widgets, m);\n        each(this.Variables, m);\n        each(this.Actions, m);\n    }\n\n    unmute(c = this) {\n        const um = o => { o && o.unmute && o.unmute(); };\n        each(this.Widgets, um);\n        each(this.Variables, um);\n        each(this.Actions, um);\n    }\n\n    ngOnAttach() {\n        this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n        this.registerPageParams();\n        this.App.lastActivePageName = this.App.activePageName;\n        this.App.activePageName = this.pageName;\n        this.App.activePage = this;\n        this.activePageName = this.pageName;\n        this.restoreLastPageSnapshot();\n        this.unmute();\n        // expose current page widgets on app\n        (this.App as any).Widgets = Object.create(this.Widgets);\n        if(this.pageDirective && this.pageDirective.refreshdataonattach) {\n            const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n            each(this.Variables, refresh);\n            each(this.Actions, refresh);\n        }\n        this.runPageTransition().then(() => {\n            setTimeout(() => this.restoreScrollPosition(), 100);\n            each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n            this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n        });\n    }\n\n    ngOnDetach() {\n        this.saveScrollPosition();\n        this.savePageSnapShot();\n        this.mute();\n        each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n        this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n    }\n\n    ngAfterContentInit() {\n        this.onBeforePageReady();\n    }\n\n    static clear() {\n        if(BasePageComponent.lastPageSnapShot) {\n            BasePageComponent.lastPageSnapShot.remove();\n            BasePageComponent.lastPageSnapShot = null;\n        }\n    }\n}\n","import {\n    AfterViewInit,\n    Injector,\n    OnDestroy,\n    ViewChild,\n    Directive,\n    inject\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport {Subject} from 'rxjs';\n\nimport {\n    $invokeWatchers,\n    AbstractI18nService,\n    AbstractNavigationService,\n    App,\n    noop,\n    Viewport,\n    ScriptLoaderService,\n    UtilsService,\n    registerFnByExpr,\n    $watch,\n    isIE, isDefined\n} from '@wm/core';\nimport {getWidgetPropsByType, WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport {PrefabDirective} from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\nimport { CustomwidgetConfigProvider } from '../types/types';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {commonPartialWidgets} from \"./base-partial.component\";\nimport {capitalize, forEach} from \"lodash-es\";\nimport {CheckboxsetComponent} from \"@wm/components/input/checkboxset\";\nimport {RadiosetComponent} from \"@wm/components/input/radioset\";\n\ndeclare const _;\n\n// export const commonPartialWidgets = {};\n\n@Directive()\nexport abstract class BaseCustomWidgetComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n    Widgets: any;\n    BaseWidget: any = {};\n    Variables: any;\n    Actions: any;\n    App: App;\n    injector: Injector;\n    customWidgetName: string;\n    activePageName: string;\n    route: ActivatedRoute;\n    appManager: AppManagerService;\n    navigationService: AbstractNavigationService;\n    router: Router;\n    props: any;\n    containerWidget: any;\n    i18nService: AbstractI18nService;\n    appLocale: any;\n    // @ViewChild(PartialDirective) partialDirective;\n    pageDirective: PageDirective | SpaPageDirective;\n    Prefab: PrefabDirective;\n    scriptLoaderService: ScriptLoaderService;\n    customwidgetConfigProvider: CustomwidgetConfigProvider;\n    Viewport: Viewport;\n    compileContent = false;\n    spa: boolean;\n    events: any;\n\n    destroy$ = new Subject();\n    viewInit$ = new Subject();\n    private viewParent: any;\n\n    abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n\n    abstract getVariables();\n\n    getContainerWidgetInjector() {\n        return this.containerWidget.inj || this.containerWidget.injector;\n    }\n\n    init() {\n        let resolveFn: Function;\n        const promise = new Promise((res)=> resolveFn = res)\n        this.App = this.injector ? this.injector.get(App) : inject(App);\n        //making the code compatible in both the JIT and AOT modes\n        this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n        this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n        this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n        this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n        this.customwidgetConfigProvider = this.injector ? this.injector.get(CustomwidgetConfigProvider) : inject(CustomwidgetConfigProvider);\n        // this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);\n        // Replacing this.getContainerWidgetInjector().view.component as viewParent\n        // this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];\n        this.viewParent = this.containerWidget.viewParent;\n\n        if (this.viewParent.registerFragment) {\n            this.viewParent.registerFragment();\n        }\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n        this.initUserScript();\n        this.registerPropsInContainerWidget(resolveFn);\n        // Using promise to make sure the props are registered in the container widget before registering events, Otherwise no events will be registered\n        promise.then(() => this.registerEvents());\n\n        this.registerWidgets();\n        this.initVariables();\n\n        this.activePageName = this.App.activePageName; // Todo: remove this\n        this.registerProps();\n        this.defineI18nProps();\n\n        this.viewInit$.subscribe(noop, noop, () => {\n            this.props = this.containerWidget.props;\n        });\n\n        if(this.spa) {\n            this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n        } else {\n            this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n        }\n        if (this.pageDirective) {\n            this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n            this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n        }\n        this.containerWidget.onErroSubject.asObservable().subscribe(() => {\n            if(this['onValidStatusChange'])\n                return this['onValidStatusChange']();\n        });\n        super.init();\n    }\n\n    registerWidgets() {\n        // common partial widgets should be accessible from page\n        this.Widgets = Object.create(commonPartialWidgets);\n\n        // expose current page widgets on app\n        (this.App as any).Widgets = Object.create(this.Widgets);\n    }\n\n    initializeComponentData(children) {\n        Array.from(children).forEach((child: any) => {\n            if(!child.hasAttribute('wmcustomwidget'))\n                this.initializeComponentData(child.children);\n            else {\n                const asAttr = child.getAttribute('as') || '';\n                if (!asAttr) {\n                    return;\n                }\n                let baseWidget, splitArr = asAttr.split('-'), modifiedArr = [];\n                modifiedArr = splitArr.map((item: any) => {\n                    item = item !== 'wm' ? capitalize(item) : item;\n                    return item;\n                });\n                baseWidget = modifiedArr.join('');\n                switch (baseWidget) {\n                    case 'wmCheckboxset':\n                        this[baseWidget] = new CheckboxsetComponent(this.injector, undefined);\n                        this[baseWidget][\"_select\"] = (item: any, $event: any) => {\n                            const keys = [];\n                            forEach(this[baseWidget].datasetItems, (datasetItem: any) => {\n                                if(datasetItem.key === item.key)\n                                    datasetItem.selected = !datasetItem.selected;\n\n                                if(datasetItem.selected)\n                                    keys.push(datasetItem.key);\n                            });\n                            this[baseWidget].triggerInvokeOnChange(keys, $event);\n                        }\n                        break;\n                    case 'wmRadioset':\n                        this[baseWidget] = new RadiosetComponent(this.injector, undefined);\n                        this[baseWidget][\"_select\"] = (item: any, $event: any) => {\n                            this[baseWidget].triggerInvokeOnChange(item.key, $event);\n                        }\n                        break;\n                }\n\n                for (let [key, value] of this.containerWidget.$attrs) {\n                    if(key.startsWith('base-')) {\n                        let modifiedKey = key.replace('base-', '');\n                        this[baseWidget][modifiedKey] = value;\n\n                        if(modifiedKey === 'datavalue' && this.containerWidget.formControl)\n                            this.containerWidget.updateDataValue(value);\n                    }\n                }\n                this[baseWidget].initDatasetItems();\n                this.containerWidget[baseWidget] = this[baseWidget];\n            }\n        });\n    }\n\n    registerBaseWidget() {\n        this.initializeComponentData(this.containerWidget.nativeElement.children);\n    }\n\n    invokeEvent = (eventName: string) => {\n        this.events[eventName]();\n    }\n\n    registerEvents() {\n        this.events = {};\n        this.containerWidget.eventHandlers.forEach((callback: any, key: string) => {\n            this.events[key] = (...args) => {\n                this.containerWidget.invokeEventCallback(key, {$event: args[0], $data: args[1]});\n            };\n        });\n    }\n\n    registerDestroyListener(fn: Function) {\n        this.destroy$.subscribe(noop, noop, () => fn());\n    }\n\n    registerChangeListeners() {\n        this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);\n        this.containerWidget.registerStyleChangeListener(this.onPropertyChange);\n    }\n\n    get datavalue() {\n        if(this['getDatavalue'])\n            return this['getDatavalue']();\n    }\n\n    set datavalue(value) {\n        this.datavalue = value;\n    }\n\n    initUserScript() {\n        try {\n            // partials inside prefab should have access to Prefab properties and events\n            if (this.viewParent.prefabName) {\n                // for partial within partial within prefabs, just assign the parent partial's prefab object\n                if (this.viewParent.Prefab) {\n                    this.Prefab = this.viewParent.Prefab;\n                } else {\n                    this.Prefab = this.viewParent;\n                }\n            }\n            this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n        } catch (e) {\n            console.error(`Error in evaluating partial (${this.customWidgetName}) script\\n`, e);\n        }\n    }\n\n    initVariables() {\n        const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n        // get variables and actions instances for the page\n        const variableCollection = variablesService.register(this.customWidgetName, this.getVariables(), this);\n\n        // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n        this.Variables = Object.create(this.App.Variables);\n        this.Actions = Object.create(this.App.Actions);\n\n        this.containerWidget.Variables = this.Variables;\n        this.containerWidget.Actions = this.Actions;\n\n        // assign all the page variables to the pageInstance\n        Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n        Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n        this.viewInit$.subscribe(noop, noop, () => {\n            // TEMP: triggering watchers so variables watching over params are updated\n            $invokeWatchers(true, true);\n            variableCollection.callback(variableCollection.Variables).catch(noop);\n            variableCollection.callback(variableCollection.Actions);\n        });\n    }\n\n    /**\n     * function to register bind expressions generated in this partial instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        // const expressions = this.getExpressions();\n        // _.each(expressions, (fn, expr)=>{\n        //     registerFnByExpr(expr, fn[0], fn[1]);\n        // });\n    }\n\n    registerProps() {\n        this.props = this.containerWidget.props;\n    }\n\n    defineI18nProps() {\n        this.appLocale = this.i18nService.getAppLocale();\n    }\n\n    invokeOnReady() {\n        let params;\n        if (this.containerWidget.userComponentParams) {\n            params = this.containerWidget.userComponentParams;\n        }\n        this.onReady(params);\n        if (this.viewParent.resolveFragment) {\n            this.viewParent.resolveFragment();\n        }\n    }\n\n    private loadScripts() {\n        // return new Promise<void>((resolve) => {\n        //     const scriptsRequired = this.partialDirective.$element.attr('scripts-to-load');\n        //     if (scriptsRequired) {\n        //         this.scriptLoaderService\n        //             .load(...scriptsRequired.split(','))\n        //             .then(resolve);\n        //     } else {\n        //         resolve();\n        //     }\n        // });\n    }\n    registerPropsInContainerWidget(resolveFn: Function) {\n        this.customwidgetConfigProvider.getConfig(this.customWidgetName).then((config) => {\n            if (config) {\n                Object.entries((config.properties || {})).forEach(([key, prop]: [string, any]) => {\n                    let expr;\n                    const value = _.trim(prop.value);\n\n                    if (_.startsWith(value, 'bind:')) {\n                        expr = value.replace('bind:', '');\n                    }\n\n                    Object.defineProperty(this, key, {\n                        get: () => this.containerWidget[key],\n                        set: nv => this.containerWidget.widget[key] = nv\n                    });\n\n                    if (expr) {\n                        //[Todo-CSP]: expr will be generated with prefab.comp.expr.ts\n                        this.registerDestroyListener(\n                            $watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv)\n                        );\n                    }\n                })\n            }\n            this.containerWidget.setProps(config, resolveFn);\n            // Reassigning the proxy handler for prefab inbound properties as we\n            // will get them only after the prefab config call.\n            if (isIE()) {\n                this.containerWidget.widget = this.containerWidget.createProxy();\n            }\n        })\n    }\n\n    mute() {\n        const m = o => { o && o.mute && o.mute(); };\n        _.each(this.Widgets, m);\n        _.each(this.Variables, m);\n        _.each(this.Actions, m);\n    }\n\n    unmute() {\n        const um = o => { o && o.unmute && o.unmute(); };\n        _.each(this.Widgets, um);\n        _.each(this.Variables, um);\n        _.each(this.Actions, um);\n    }\n\n    // ngOnInit() {\n    //     this.init();\n    // }\n\n    ngAfterViewInit(): void {\n        this.registerChangeListeners();\n        this.registerBaseWidget();\n            setTimeout(() => {\n                this.viewInit$.complete();\n                this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n            }, 100);\n    }\n\n    ngOnDestroy(): void {\n        // MEMORY LEAK FIX: Complete Subjects to release subscriptions\n        if (this.destroy$) {\n            this.destroy$.complete();\n            this.destroy$ = null;\n        }\n        if (this.viewInit$) {\n            this.viewInit$.complete();\n            this.viewInit$ = null;\n        }\n\n        // MEMORY LEAK FIX: Clear references to prevent memory leaks\n        this.Widgets = null;\n        this.BaseWidget = null;\n        this.Variables = null;\n        this.Actions = null;\n        this.App = null;\n        this.containerWidget = null;\n        this.i18nService = null;\n        this.appLocale = null;\n        this.pageDirective = null;\n        this.Prefab = null;\n        this.scriptLoaderService = null;\n        this.customwidgetConfigProvider = null;\n        this.Viewport = null;\n        this.route = null;\n        this.appManager = null;\n        this.navigationService = null;\n        this.router = null;\n        this.props = null;\n        this.events = null;\n        this.viewParent = null;\n\n        // MEMORY LEAK FIX: Cleanup FragmentMonitor resources\n        this.cleanupFragmentMonitor();\n    }\n\n    ngOnAttach(refreshData) {\n        this.unmute();\n        if (refreshData) {\n            const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n            _.each(this.Variables, refresh);\n            _.each(this.Actions, refresh);\n        }\n        _.each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n    }\n\n    ngOnDetach() {\n        this.mute();\n        _.each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n    }\n\n    // user overrides this\n    onPropertyChange() { }\n\n    onReady(params?) {\n    }\n}\n","import { Injector, inject, OnDestroy, ViewChild, Directive, AfterViewChecked } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n    $watch,\n    AbstractI18nService,\n    App,\n    isIE,\n    noop,\n    ScriptLoaderService,\n    UtilsService,\n    $invokeWatchers,\n    Viewport,\n    registerFnByExpr\n} from '@wm/core';\nimport { WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport { PrefabContainerDirective } from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport {each, startsWith, trim} from \"lodash-es\";\n\n@Directive()\nexport abstract class BasePrefabComponent extends FragmentMonitor implements AfterViewChecked, OnDestroy {\n    Widgets: any;\n    Variables: any;\n    Actions: any;\n    App: App;\n    injector: Injector;\n    containerWidget: any;\n    prefabMngr: PrefabManagerService;\n    displayName: string;\n    prefabName: string;\n    i18nService: AbstractI18nService;\n    appLocale: any;\n    @ViewChild(PrefabContainerDirective, { static: false }) prefabContainerDirective?: PrefabContainerDirective;\n    scriptLoaderService: ScriptLoaderService;\n    compileContent = false;\n    pageDirective: PageDirective | SpaPageDirective;\n    Viewport: Viewport;\n    spa: boolean;\n    private scriptsLoaded = false;\n\n    destroy$ = new Subject();\n    viewInit$ = new Subject();\n\n    private viewParent: any;\n\n    abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n    abstract getVariables();\n    abstract getExpressions();\n\n    getContainerWidgetInjector() {\n        return this.containerWidget.inj || this.containerWidget.injector;\n    }\n\n    init() {\n        this.App = this.injector.get(App);\n        //making the code compatible in both the JIT and AOT modes\n        this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n\n        this.prefabMngr = this.injector ? this.injector.get(PrefabManagerService) : inject(PrefabManagerService);\n        this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n        this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n        this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n        this.viewParent = this.containerWidget.viewParent;\n\n        if (this.viewParent.registerFragment) {\n            this.viewParent.registerFragment();\n        }\n\n        if (this.spa) {\n            this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n        } else {\n            this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n        }\n        if (this.pageDirective) {\n            this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n            this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n        }\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n        this.initUserScript();\n\n        this.registerWidgets();\n        this.initVariables();\n        this.registerProps();\n        this.defineI18nProps();\n        super.init();\n    }\n\n    registerWidgets() {\n        this.Widgets = {};\n        this.Widgets = {};this.containerWidget.Widgets = this.Widgets;\n    }\n\n    initUserScript() {\n        try {\n            this.evalUserScript(this, this.App, this.injector.get(UtilsService));\n        } catch (e) {\n            console.error(`Error in evaluating prefab (${this.prefabName}) script\\n`, e);\n        }\n    }\n\n    registerChangeListeners() {\n        this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);\n        this.containerWidget.registerStyleChangeListener(this.onPropertyChange);\n    }\n\n    registerDestroyListener(fn: Function) {\n        this.destroy$.subscribe(noop, noop, () => fn());\n    }\n\n    defineI18nProps() {\n        this.appLocale = this.i18nService.getPrefabLocaleBundle(this.prefabName);\n    }\n\n    registerProps() {\n        this.prefabMngr.getConfig(this.prefabName)\n            .then(config => {\n\n                if (config) {\n                    this.displayName = config.displayName;\n                    Object.entries((config.properties || {}))\n                        .forEach(([key, prop]: [string, any]) => {\n                            let expr;\n                            const value = trim(prop.value);\n\n                            if (startsWith(value, 'bind:')) {\n                                expr = value.replace('bind:', '');\n                            }\n\n                            Object.defineProperty(this, key, {\n                                get: () => this.containerWidget[key],\n                                set: nv => this.containerWidget.widget[key] = nv\n                            });\n\n                            if (expr) {\n                                //[Todo-CSP]: expr will be generated with prefab.comp.expr.ts\n                                this.registerDestroyListener(\n                                    $watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv)\n                                );\n                            }\n                        });\n\n                    Object.entries((config.events || {}))\n                        .forEach(([key, prop]: [string, any]) => {\n                            this[key] = (...args) => {\n                                const eventName = key.substr(2).toLowerCase();\n                                this.containerWidget.invokeEventCallback(eventName, {$event: args[0], $data: args[1]});\n                            };\n                        });\n\n                    Object.entries((config.methods || {}))\n                        .forEach(([key, prop]: [string, any]) => {\n                            this.containerWidget[key] = (...args) => {\n                                try {\n                                    if (this[key]) {\n                                        return this[key].apply(this, args);\n                                    }\n                                } catch (e) {\n                                    console.warn(`error in executing prefab-${this.prefabName} method-${key}`);\n                                }\n                            };\n                        });\n                }\n                this.containerWidget.setProps(config);\n                // Reassigning the proxy handler for prefab inbound properties as we\n                // will get them only after the prefab config call.\n                if (isIE()) {\n                    this.containerWidget.widget = this.containerWidget.createProxy();\n                }\n            });\n    }\n\n    initVariables() {\n        const variablesService = this.injector.get(VariablesService);\n\n        // get variables and actions instances for the page\n        const variableCollection = variablesService.register(this.prefabName, this.getVariables(), this);\n\n        // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n        this.Variables = {};\n        this.Actions = {};\n        this.containerWidget.Variables = this.Variables;\n        this.containerWidget.Actions = this.Actions;\n\n        // assign all the page variables to the pageInstance\n        Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n        Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n        this.viewInit$.subscribe(noop, noop, () => {\n            variableCollection.callback(variableCollection.Variables).catch(noop);\n            variableCollection.callback(variableCollection.Actions);\n        });\n    }\n\n    /**\n     * function to register bind expressions generated in this page instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        const expressions = this.getExpressions();\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    invokeOnReady() {\n        // triggering watchers so variables and propertiers watching over an expression are updated\n        $invokeWatchers(true, true);\n        this.onReady();\n        if (this.viewParent.resolveFragment) {\n            this.viewParent.resolveFragment();\n        }\n        this.containerWidget.invokeEventCallback('load');\n    }\n\n    private loadScripts() {\n        return new Promise<void>((resolve) => {\n            if (!this.prefabContainerDirective) {\n                resolve();\n                return;\n            }\n\n            const scriptsRequired = this.prefabContainerDirective.$element.attr('scripts-to-load');\n            if (scriptsRequired) {\n                this.scriptLoaderService\n                    .load(...scriptsRequired.split(','))\n                    .then(resolve);\n            } else {\n                resolve();\n            }\n        });\n    }\n\n    mute() {\n        const m = o => { o && o.mute && o.mute(); };\n        each(this.Widgets, m);\n        each(this.Variables, m);\n        each(this.Actions, m);\n    }\n\n    unmute() {\n        const um = o => { o && o.unmute && o.unmute(); };\n        each(this.Widgets, um);\n        each(this.Variables, um);\n        each(this.Actions, um);\n    }\n\n    ngOnAttach(refreshData) {\n        this.unmute();\n        if(refreshData) {\n            const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n            each(this.Variables, refresh);\n            each(this.Actions, refresh);\n        }\n        each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n    }\n\n    ngOnDetach() {\n        this.mute();\n        each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n    }\n\n    ngAfterViewChecked(): void {\n        if (!this.scriptsLoaded && this.prefabContainerDirective) {\n            this.scriptsLoaded = true;\n            this.loadScripts().then(() => {\n                this.compileContent = true;\n                this.registerChangeListeners();\n                setTimeout(() => {\n                    // trigger viewInit$.complete after a timeout so that the widget listeners are ready before Variable xhr call.\n                    this.viewInit$.complete();\n                    this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n                }, 100);\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.complete();\n    }\n\n    // user overrides this\n    onPropertyChange() {}\n\n    onReady() {}\n\n}\n","import {AfterViewInit, Directive, Injector, OnDestroy, ViewChild} from '@angular/core';\nimport {ActivatedRoute, RouterOutlet} from '@angular/router';\n\nimport {PageDirective} from \"@wm/components/page\";\nimport {App, registerFnByExpr} from \"@wm/core\";\nimport {each, extend} from \"lodash-es\";\n\n@Directive()\nexport abstract class BaseLayoutComponent implements AfterViewInit, OnDestroy {\n    injector: Injector;\n    App: App;\n    layoutName: string;\n    layoutPages: string[];\n\n    @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\n    @ViewChild(PageDirective) pageDirective: PageDirective;\n\n    abstract getExpressions();\n\n    /**\n     * function to register bind expressions generated in this page instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        const expressions = this.getExpressions();\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    private overrideRouterOutlet() {\n        //override the attach/detach methods\n        const oAttach = this.routerOutlet.attach;\n        const oDetach = this.routerOutlet.detach;\n        this.routerOutlet.attach = (componentRef: any, activatedRoute:  ActivatedRoute) => {\n            oAttach.call(this.routerOutlet, componentRef, activatedRoute);\n            componentRef.instance.ngOnAttach();\n        };\n        this.routerOutlet.detach = () => {\n            const componentRef = oDetach.call(this.routerOutlet);\n            return componentRef;\n        };\n    }\n\n    ngAfterViewInit() {\n        setTimeout(() => {\n            this.overrideRouterOutlet();\n        }, 10);\n    }\n\n    init() {\n        this.App = this.injector.get(App);\n        this.App.activeLayoutName = this.layoutName;\n        this.App.layoutPages = this.layoutPages;\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n    }\n\n    //TODO: To work cache properly need to implement the below methods and WmRouteReuseStrategy\n    ngOnDestroy(): void {\n        // MEMORY LEAK FIX: Clear references to prevent memory leaks\n        this.App = null;\n        this.routerOutlet = null;\n        this.pageDirective = null;\n        this.layoutPages = null;\n        this.layoutName = null;\n    }\n\n    canReuse() {\n    }\n\n    ngOnAttach() {\n    }\n\n    ngOnDetach() {\n    }\n\n    // This will be called when child route (Page component in the layout) is activated\n    onActivate(pageComponent: any) {\n        //Add page component scope to layout component so that bindings and watchers in the layout will use the page scope\n        extend(this, pageComponent);\n    }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n    APP_ID,\n    inject,\n    Inject,\n    Injectable,\n    Renderer2,\n    RendererFactory2,\n    RendererStyleFlags2,\n    RendererType2,\n    ViewEncapsulation\n} from '@angular/core';\n\nimport {EventManager, ɵSharedStylesHost} from '@angular/platform-browser';\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n  'svg': 'http://www.w3.org/2000/svg',\n  'xhtml': 'http://www.w3.org/1999/xhtml',\n  'xlink': 'http://www.w3.org/1999/xlink',\n  'xml': 'http://www.w3.org/XML/1998/namespace',\n  'xmlns': 'http://www.w3.org/2000/xmlns/',\n  'math': 'http://www.w3.org/1998/MathML/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = false;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n  return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n  return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n  // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n  // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // the listener (see below).\n  return (event: any) => {\n    // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n    // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class WMDomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n      @Inject(APP_ID) private appId: string, @Inject(DOCUMENT) private readonly doc: Document,) {\n    this.defaultRenderer = new WMDefaultDomRenderer2(eventManager, doc);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId, this.doc);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if (NG_DEV_MODE &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type, this.doc);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass WMDefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n  constructor(private eventManager: EventManager, @Inject(DOCUMENT) protected readonly doc: Document,) {}\n\n  destroy(): void {}\n\n  destroyNode = null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // TODO: `|| namespace` was added in\n      // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n      // support how Ivy passed around the namespace URI rather than short name at the time. It did\n      // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n      // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n      // namespaces should be and make it consistent.\n      // Related issues:\n      // https://github.com/angular/angular/issues/44028\n      // https://github.com/angular/angular/issues/44883\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    const targetParent = isTemplateNode(parent) ? parent.content : parent;\n    targetParent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      const targetParent = isTemplateNode(parent) ? parent.content : parent;\n      targetParent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(_parent: any, oldChild: any): void {\n    oldChild.remove();\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n    }\n    if (!preserveContent) {\n      el.textContent = '';\n    }\n    return el;\n  }\n\n  parentNode(node: any): any {\n    return node.parentNode;\n  }\n\n  nextSibling(node: any): any {\n    return node.nextSibling;\n  }\n\n  resetStyles(element: any): void {\n    const styleList = [].slice.call(element);\n    styleList.forEach(function (propertyName) {\n      element.style.removeProperty(propertyName);\n    });\n  }\n\n  applyStyles(element, styleString): void {\n    if (styleString) {\n      const styles = styleString.split(';');\n      styles.forEach(function (styleBit) {\n        const parts = styleBit.split(':');\n        let property, value;\n        if (parts.length === 2) {\n          property = parts[0].trim();\n          value = parts[1].trim();\n\n          element.style[property] = value;\n        }\n      });\n      return styleString;\n    }\n  }\n\n  setAttribute(el: any, name: string, value: string, namespace?: string): void {\n    if (namespace) {\n      name = namespace + ':' + name;\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.setAttributeNS(namespaceUri, name, value);\n      } else {\n        el.setAttribute(name, value);\n      }\n    } else {\n      if (name === 'style') {\n        this.resetStyles(el);\n        this.applyStyles(el, value);\n      } else {\n        el.setAttribute(name, value);\n      }\n    }\n  }\n\n  removeAttribute(el: any, name: string, namespace?: string): void {\n    if (namespace) {\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        el.removeAttribute(`${namespace}:${name}`);\n      }\n    } else {\n      el.removeAttribute(name);\n    }\n  }\n\n  addClass(el: any, name: string): void {\n    el.classList.add(name);\n  }\n\n  removeClass(el: any, name: string): void {\n    el.classList.remove(name);\n  }\n\n  setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n    if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n      el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n    } else {\n      el.style[style] = value;\n    }\n  }\n\n  removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n    if (flags & RendererStyleFlags2.DashCase) {\n      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n      (typeof NG_DEV_MODE === 'undefined' || NG_DEV_MODE) && checkNoSyntheticProp(event, 'listener');\n      if (typeof target === 'string') {\n          target = getDOM().getGlobalEventTarget(this.doc, target);\n          if (!target) {\n              throw new Error(`Unsupported event target ${target} for event ${event}`);\n          }\n      }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n  return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends WMDefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: ɵSharedStylesHost,\n      private component: RendererType2, appId: string, @Inject(DOCUMENT) protected readonly doc: Document) {\n    super(eventManager, doc);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.setAttribute(element, this.hostAttr, '');\n  }\n\n  createElement(parent: any, name: string): Element {\n    const el = super.createElement(parent, name);\n    super.setAttribute(el, this.contentAttr, '');\n    return el;\n  }\n}\n\nclass ShadowDomRenderer extends WMDefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n      private hostEl: any, component: RendererType2, @Inject(DOCUMENT) protected readonly doc: Document,) {\n    super(eventManager, doc);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  removeChild(_parent: any, oldChild: any): void {\n    return super.removeChild(null, oldChild);\n  }\n  parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n@Injectable()\nexport class WMDomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    const nonce = document.querySelector('meta[name=\"CSP-NONCE\"]')?.getAttribute('content') || 'wm-csp-nonce';\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleEl.setAttribute('nonce', nonce); //WM: add nonce\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\n}\n","import { AfterViewInit, HostListener, Injector, OnDestroy, ViewChild, Directive, AfterContentInit, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { isAndroid, isIos, Viewport, ScriptLoaderService, registerFnByExpr } from '@wm/core';\nimport { LayoutDirective, SpaPageDirective } from '@wm/components/page';\n\nimport {Subject} from 'rxjs';\n\nimport {\n    AbstractI18nService,\n    AbstractNavigationService,\n    App,\n    muteWatchers,\n    noop,\n    unMuteWatchers,\n    UtilsService\n} from '@wm/core';\nimport { commonPartialWidgets } from './base-partial.component';\n\n\nimport { VariablesService } from '@wm/variables';\nimport { AppManagerService } from '../services/app.manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { CACHE_PAGE } from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\n\n@Directive()\nexport abstract class BaseSpaPageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n    static lastPageSnapShot = null;\n    Widgets: any;\n    Variables: any;\n    Actions: any;\n    App: App;\n    injector: Injector;\n    pageName: string;\n    activePageName: string;\n    route: ActivatedRoute;\n    appManager: AppManagerService;\n    navigationService: AbstractNavigationService;\n    router: Router;\n    pageParams: any;\n    showPageContent: boolean;\n    i18nService: AbstractI18nService;\n    appLocale: any;\n    startupVariablesLoaded = false;\n    pageTransitionCompleted = false;\n    layoutDirective: LayoutDirective;\n    @ViewChild(SpaPageDirective) spaPageDirective;\n    $page;\n    scriptLoaderService: ScriptLoaderService;\n    Viewport: Viewport;\n\n    destroy$ = new Subject();\n    viewInit$ = new Subject();\n    formatsByLocale = {'timezone': ''};\n\n    abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n    abstract getVariables();\n    abstract getExpressions();\n\n    init() {\n\n        muteWatchers();\n\n        this.App = this.injector ? this.injector.get(App) : inject(App);\n        this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n        this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n        this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n        this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n        this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n        this.router = this.injector ? this.injector.get(Router) : inject(Router);\n        this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n        this.layoutDirective = this.injector ? this.injector.get(LayoutDirective) : inject(LayoutDirective);\n\n        // register functions for binding evaluation\n        this.registerExpressions();\n        this.initUserScript();\n\n        this.registerWidgets();\n        this.initVariables();\n\n        this.App.lastActivePageName = this.App.activePageName;\n        this.App.activePageName = this.pageName;\n        this.App.activePage = this;\n        this.activePageName = this.pageName; // Todo: remove this\n\n        this.registerPageParams();\n        this.defineI18nProps();\n        super.init();\n    }\n\n    registerWidgets() {\n        // common partial widgets should be accessible from page\n        this.Widgets = Object.create(commonPartialWidgets);\n\n        // expose current page widgets on app\n        (this.App as any).Widgets = Object.create(this.Widgets);\n    }\n\n    initUserScript() {\n        try {\n            this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n        } catch (e) {\n            console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n        }\n    }\n\n    registerPageParams() {\n        const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n        this.registerDestroyListener(() => subscription.unsubscribe());\n    }\n\n    registerDestroyListener(fn: Function) {\n        this.destroy$.subscribe(noop, noop, () => fn());\n    }\n\n    defineI18nProps() {\n        this.appLocale = this.i18nService.getAppLocale();\n    }\n\n    initVariables() {\n        const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n        // get variables and actions instances for the page\n        const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n        // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n        this.Variables = Object.create(this.App.Variables);\n        this.Actions = Object.create(this.App.Actions);\n\n        // assign all the page variables to the pageInstance\n        Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n        Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n        const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n            if (!this.appManager.isAppVariablesFired()) {\n                variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n                    this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n                });\n                variableCollection.callback(this.App.Actions);\n                this.appManager.appVariablesReady();\n                this.appManager.isAppVariablesFired(true);\n            }\n\n            variableCollection.callback(variableCollection.Variables)\n                .catch(noop)\n                .then(() => {\n                    this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n                    this.startupVariablesLoaded = true;\n                    // hide the loader only after the some setTimeout for smooth page load.\n                    setTimeout(() => {\n                        this.showPageContent = true;\n                    }, 100);\n                });\n            variableCollection.callback(variableCollection.Actions);\n\n            subscription.unsubscribe();\n        });\n    }\n\n    setTimezone(locale) {\n        this.i18nService.setTimezone(locale, this);\n    }\n\n    /**\n     * function to register bind expressions generated in this page instance\n     * getExpressions function is defined in the generated page.comp.ts file\n     * @param expressions, map of bind expression vs generated function\n     */\n    registerExpressions() {\n        const expressions = this.getExpressions();\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    runPageTransition(transition?: string): Promise<void> {\n        transition = transition || this.navigationService.getPageTransition();\n        const lastPage = BaseSpaPageComponent.lastPageSnapShot\n        return new Promise<void>(resolve => {\n            if (transition\n                && !transition.startsWith('none')\n                && lastPage) {\n                const $target = lastPage.parent();\n                const onTransitionEnd = (e) => {\n                    if (resolve && !(e && e.pseudoElement)) {\n                        $target.off('animationend', onTransitionEnd);\n                        $target.removeClass(transition);\n                        $target.children().first().remove();\n                        resolve();\n                        resolve = null;\n                    }\n                };\n                transition = 'page-transition page-transition-' + transition;\n                lastPage.addClass('page-exit');\n                this.$page.addClass('page-entry');\n                $target.addClass(transition);\n                $target.on('animationend', onTransitionEnd);\n                // Wait for a maximum of 1 second for transition to end.\n                setTimeout(onTransitionEnd, 1000);\n            } else {\n                resolve();\n            }\n        }).then(() => {\n            this.$page && this.$page.removeClass('page-entry');\n            if (lastPage) {\n                lastPage.remove();\n                BaseSpaPageComponent.lastPageSnapShot = null;\n            }\n            this.pageTransitionCompleted = true;\n        });\n    }\n\n    invokeOnReady() {\n        this.onReady();\n        this.appManager.notify('highlightActiveLink', {'pageName' : this.pageName});\n        this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n        (this.App.onPageReady || noop)(this.pageName, this);\n    }\n\n    private loadScripts() {\n        return new Promise<void>((resolve) => {\n            const scriptsRequired = this.spaPageDirective && this.spaPageDirective.$element.attr('scripts-to-load');\n\n            if (scriptsRequired) {\n                this.scriptLoaderService\n                    .load(...scriptsRequired.split(','))\n                    .then(resolve);\n            } else {\n                resolve();\n            }\n        });\n    }\n\n    private restoreLastPageSnapshot() {}\n\n    private savePageSnapShot() {\n        if (BaseSpaPageComponent.lastPageSnapShot) {\n            BaseSpaPageComponent.lastPageSnapShot.remove();\n        }\n    }\n\n    private saveScrollPosition() {\n        const fn = ($el, key, recursive = true, $target = $el)  => {\n            if (recursive) {\n                $el.children().each((i, v) => fn($(v), key));\n            }\n            const scrollData = {\n                x: $target.scrollLeft(),\n                y: $target.scrollTop()\n            };\n            if(scrollData.x > 0 || scrollData.y > 0) {\n                $el.attr(key, scrollData.x + ',' + scrollData.y);\n            }\n        };\n        fn(this.$page, 'data-scroll-position');\n        this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n    }\n\n    private restoreScrollPosition() {\n        const fn = ($el, key, recursive  = true, $target = $el) => {\n            const scrollData = ($el.attr(key) || '').split(',');\n            if(scrollData.length > 1) {\n                $target.scrollLeft(scrollData[0]);\n                $target.scrollTop(scrollData[1]);\n            }\n            $el.removeAttr(key);\n            if (recursive) {\n                $el.children().each((i, v) => fn($(v), key));\n            }\n        };\n        fn(this.$page, 'data-scroll-position');\n        fn(this.$page, 'data-window-scroll-position', false, $(window));\n    }\n\n    /**\n     * canDeactivate is called before a route change.\n     * This will internally call onBeforePageLeave method present\n     * at page level and app level in the application and decide\n     * whether to change route or not based on return value.\n     */\n    @HostListener('window:beforeunload')\n    canDeactivate(nextState?: string){\n        let retVal;\n        // Calling onBeforePageLeave method present at page level\n        retVal = this.onBeforePageLeave();\n        // Calling onBeforePageLeave method present at app level only if page level method return true\n        // or if there is no page level method\n        if (retVal !== false ) {\n            retVal =  (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage, nextState);\n        }\n        return retVal === undefined ? true : retVal;\n    }\n\n    ngAfterViewInit(): void {\n        this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n        if (this.layoutDirective) {\n            this.$page = this.layoutDirective.$element.parent();\n            if (isIos()) {\n                this.$page.addClass('ios-page');\n            }\n            if (isAndroid()) {\n                this.$page.addClass('android-page');\n            }\n        }\n        this.restoreLastPageSnapshot();\n        this.loadScripts().then(() => {\n            this.runPageTransition()\n                .then(() => {\n                    (this as any).compilePageContent = true;\n                    setTimeout(() => {\n                        this.onPageContentReady = () => {\n                            this.fragmentsLoaded$.subscribe(noop, noop, () => {\n                                this.invokeOnReady();\n                            });\n                            unMuteWatchers();\n                            this.viewInit$.complete();\n                            this.onPageContentReady = noop;\n                        };\n                    }, 0);\n                });\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.savePageSnapShot();\n        this.destroy$.complete();\n    }\n\n    onReady() {}\n\n    onBeforePageReady() {}\n\n    onBeforePageLeave() {}\n\n    onPageContentReady() {}\n\n    canReuse() {\n        return !!(this.spaPageDirective && this.spaPageDirective.cache);\n    }\n\n    mute() {\n        const m = o => { o && o.mute && o.mute(); };\n        each(this.Widgets, m);\n        each(this.Variables, m);\n        each(this.Actions, m);\n    }\n\n    unmute(c = this) {\n        const um = o => { o && o.unmute && o.unmute(); };\n        each(this.Widgets, um);\n        each(this.Variables, um);\n        each(this.Actions, um);\n    }\n\n    ngOnAttach() {\n        this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n        this.registerPageParams();\n        this.App.lastActivePageName = this.App.activePageName;\n        this.App.activePageName = this.pageName;\n        this.App.activePage = this;\n        this.activePageName = this.pageName;\n        this.restoreLastPageSnapshot();\n        this.unmute();\n        // expose current page widgets on app\n        (this.App as any).Widgets = Object.create(this.Widgets);\n        if(this.spaPageDirective && this.spaPageDirective.refreshdataonattach) {\n            const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n            each(this.Variables, refresh);\n            each(this.Actions, refresh);\n        }\n        this.runPageTransition().then(() => {\n            setTimeout(() => this.restoreScrollPosition(), 100);\n            each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n            this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n        });\n        this.appManager.notify('highlightActiveLink', {'pageName': this.pageName});\n    }\n\n    ngOnDetach() {\n        this.saveScrollPosition();\n        this.savePageSnapShot();\n        this.mute();\n        each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n        this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n    }\n\n    ngAfterContentInit() {\n        this.onBeforePageReady();\n    }\n\n    static clear() {\n        if(BaseSpaPageComponent.lastPageSnapShot) {\n            BaseSpaPageComponent.lastPageSnapShot.remove();\n            BaseSpaPageComponent.lastPageSnapShot = null;\n        }\n    }\n}\n","import {Directive, Inject, Injector, Input, OnDestroy, Optional, TemplateRef, ViewContainerRef} from '@angular/core';\n\nimport {SecurityService} from '@wm/security';\nimport {extend, get, includes, split, trim} from \"lodash-es\";\n\nenum USER_ROLE {\n    EVERYONE = 'Everyone',\n    ANONYMOUS = 'Anonymous',\n    AUTHENTICATED = 'Authenticated'\n}\n\n@Directive({\n  standalone: true,\n    selector: '[accessroles]'\n})\nexport class AccessrolesDirective implements OnDestroy {\n\n    private processed = false;\n    private readonly isUserAuthenticated;\n    private readonly userRoles;\n    private context: any = {}; // Changed from readonly to allow cleanup\n    private securityEnabled: boolean;\n\n    constructor(\n        private templateRef: TemplateRef<any>,\n        private viewContainerRef: ViewContainerRef,\n        private securityService: SecurityService,\n        private inj: Injector,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        const securityConfig = this.securityService.get();\n        this.securityEnabled = get(securityConfig, 'securityEnabled');\n        this.isUserAuthenticated = get(securityConfig, 'authenticated');\n        this.userRoles = get(securityConfig, 'userInfo.userRoles');\n        extend(this.context, (inj as any)._lView[8], explicitContext);\n    }\n\n    /**\n     * Returns array of roles from comma separated string of roles\n     * Handles encoded commas\n     * @param val\n     * @returns {any}\n     */\n    private getWidgetRolesArrayFromStr(val) {\n        const UNICODE_COMMA_REGEX = /&#44;/g;\n\n        val = val || '';\n        if (val === '') {\n            return [];\n        }\n        // replace the unicode equivalent of comma with comma\n        return split(val, ',').map(function (v) {\n            return trim(v).replace(UNICODE_COMMA_REGEX, ',');\n        });\n    }\n\n    /**\n     * Returns true if roles in first arrays is\n     * @param widgetRoles\n     * @param userRoles\n     * @returns {any}\n     */\n    private matchRoles(widgetRoles, userRoles) {\n        return widgetRoles.some(function (item) {\n            return includes(userRoles, item);\n        });\n    }\n\n    /**\n     * Decides whether the current logged in user has access to widget or not\n     * @param widgetRoles\n     * @param userRoles\n     * @returns {any}\n     */\n    private hasAccessToWidget(widgetRoles, userRoles) {\n        // access the widget when 'Everyone' is chosen\n        if (includes(widgetRoles, USER_ROLE.EVERYONE)) {\n            return true;\n        }\n\n        // access the widget when 'Anonymous' is chosen and user is not authenticated\n        if (includes(widgetRoles, USER_ROLE.ANONYMOUS) && !this.isUserAuthenticated) {\n            return true;\n        }\n\n        // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n        if (includes(widgetRoles, USER_ROLE.AUTHENTICATED) && this.isUserAuthenticated) {\n            return true;\n        }\n\n        // access the widget when widget role and logged in user role matches\n        return this.isUserAuthenticated && this.matchRoles(widgetRoles, userRoles);\n    }\n\n    @Input() set accessroles(roles) {\n        // flag to compute the directive only once\n        if (this.processed) {\n            return;\n        }\n\n        this.processed = true;\n        const widgetRoles = this.getWidgetRolesArrayFromStr(roles);\n        const isAccessible = !this.securityEnabled || this.hasAccessToWidget(widgetRoles, this.userRoles);\n        if (isAccessible) {\n            // [WMS-19294] pass on the previous context as second param.\n            this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);\n        } else {\n            this.viewContainerRef.clear();\n        }\n    }\n    \n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear context to release references to parent scope data\n        if (this.context) {\n            Object.keys(this.context).forEach(key => {\n                delete this.context[key];\n            });\n            this.context = null;\n        }\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TextContentDirective } from '@wm/components/base';\n\n@Component({\n  standalone: true,\n  imports: [CommonModule, TextContentDirective],\n    selector: 'app-spinner',\n    template: `\n        @if (show) {\n          <div class=\"app-spinner\" [ngClass]=\"classname\">\n            <div class=\"spinner-message\">\n              <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n              <div class=\"spinner-messages\">\n                @for (value of spinnermessages; track value) {\n                  <p [textContent]=\"value\"></p>\n                }\n              </div>\n            </div>\n          </div>\n        }\n        `\n})\nexport class AppSpinnerComponent {\n    @Input() show: boolean;\n    @Input() spinnermessages: Array<string>;\n    @Input() classname: string;\n    @Input() arialabel: string;\n    constructor() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ViewChild, ViewContainerRef, TemplateRef, OnDestroy } from '@angular/core';\n\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\n\nimport { $watch, $appDigest } from '@wm/core';\nimport {forEach, isString} from \"lodash-es\";\nimport { ContainerDirective, PartialContainerDirective, PartialParamDirective, PartialParamHandlerDirective } from '@wm/components/base';\n\ndeclare const $;\n\n@Component({\n    standalone: true,\n    imports: [CommonModule, ContainerDirective, PartialParamHandlerDirective, PartialContainerDirective, PartialParamDirective],\n    selector: '[custom-toaster-component]',\n    template: `\n        <div class=\"parent-custom-toast\"></div>\n        <ng-container #customToast></ng-container>\n        <ng-template #customToastTmpl>\n          <div wmContainer partialContainer content.bind=\"pagename\">\n            @for (param of params | keyvalue; track param) {\n              <div wmParam hidden\n              [name]=\"param.key\" [value]=\"param.value\"></div>\n            }\n          </div>\n        </ng-template>`,\n    preserveWhitespaces: false\n})\nexport class CustomToasterComponent extends Toast implements AfterViewInit, OnDestroy {\n\n    @ViewChild('customToast', { static: true, read: ViewContainerRef }) customToastRef: ViewContainerRef;\n    @ViewChild('customToastTmpl') customToastTmpl: TemplateRef<any>;\n    pagename: any;\n    watchers: any = [];\n    params: any = {};\n\n    // constructor is only necessary when not using AoT\n    constructor(\n        protected toastrService: ToastrService,\n        public toastPackage: ToastPackage\n    ) {\n        super(toastrService, toastPackage);\n        this.pagename = this.message || '';\n        this.generateParams();\n    }\n\n    // Generate the params for partial page. If bound, watch the expression and set the value\n    generateParams() {\n        forEach((<any>this.options).partialParams, (param) => {\n            if (isString(param.value) && param.value.indexOf('bind:') === 0) {\n                //[Todo-CSP]: bind expr fn should be generated in the toaster action for this\n                this.watchers.push($watch(\n                    param.value.substr(5),\n                    (<any>this.options).context,\n                    {},\n                    nv => {\n                        this.params[param.name] = nv;\n                        $appDigest();\n                    }\n                ));\n            } else {\n                this.params[param.name] = param.value;\n            }\n        });\n    }\n\n    async generateDynamicComponent() {\n        const $targetLayout = $('.parent-custom-toast');\n\n        this.customToastRef.clear();\n\n        $targetLayout[0].appendChild(this.customToastRef.createEmbeddedView(this.customToastTmpl).rootNodes[0]);\n    }\n\n    ngAfterViewInit() {\n        this.generateDynamicComponent();\n    }\n\n    ngOnDestroy() {\n        forEach(this.watchers, watcher => watcher());\n        super.ngOnDestroy();\n    }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { App, getWmProjectProperties } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../../services/app.manager.service';\n\n@Component({\n    standalone: true,\n    selector: 'app-empty-page',\n    template: '<div></div>'\n})\nexport class EmptyPageComponent implements OnInit {\n\n    constructor(\n        private route: ActivatedRoute,\n        private securityService: SecurityService,\n        private router: Router,\n        private app: App,\n        private appManger: AppManagerService\n    ) { }\n\n    private parseSearchParams(search: string): Record<string, string> {\n        const params: Record<string, string> = {};\n        const sp = new URLSearchParams(search);\n        sp.forEach((v, k) => params[k] = v);\n        return params;\n    }\n\n    ngOnInit() {\n        if (this.app.isPrefabType) {\n            // there is only one route\n            this.router.navigate(['prefab-preview']);\n        } else if (this.app.isApplicationType) {\n            this.securityService.getPageByLoggedInUser().then(page => {\n\n                // Fix redirect from IDP: move query params from before the hash to after it.\n                // Angular with HashLocationStrategy ignores pre-hash query params, so using router.navigate()\n                // would produce URLs like .../?param=123#/Main, dropping the params from the router.\n                // we manually rebuild the correct and use history.replaceState to rewrite the URL as .../#/Main?param=123,\n                // ensuring query params are preserved and Angular routing works correctly.\n                const { search, hash, origin, pathname } = window.location;\n                const params = this.parseSearchParams(search);\n\n                // Detect if params are before hash (i.e. in search) and not already after the hash\n                const hasParamsBeforeHash = !!search;\n                const hasParamsAfterHash = hash.includes('?');\n\n                if (hasParamsBeforeHash && !hasParamsAfterHash) {\n                    const newUrl = `${origin}${pathname}#/${page}${search}`;\n\n                    // rewrite URL without reload\n                    history.replaceState(null, '', newUrl);\n                }\n\n                this.router.navigate([page], { queryParams: params, replaceUrl: true });\n            });\n        } else {\n            this.router.navigate([getWmProjectProperties().homePage]);\n            this.appManger.postAppTypeInfo();\n        }\n    }\n}\n","import {ChangeDetectorRef, Compiler, Injectable, Injector, KeyValueDiffers, Pipe} from '@angular/core';\nimport {\n    AsyncPipe,\n    CurrencyPipe,\n    DatePipe,\n    DecimalPipe,\n    I18nPluralPipe,\n    I18nSelectPipe,\n    JsonPipe,\n    KeyValuePipe,\n    LowerCasePipe,\n    NgLocalization,\n    PercentPipe,\n    SlicePipe,\n    TitleCasePipe,\n    UpperCasePipe\n} from '@angular/common'\nimport {\n    CustomPipe,\n    FileExtensionFromMimePipe,\n    FileIconClassPipe,\n    FileSizePipe,\n    FilterPipe,\n    NumberToStringPipe,\n    PrefixPipe,\n    SanitizePipe,\n    StateClassPipe,\n    StringToNumberPipe,\n    SuffixPipe,\n    TemplateReplacePipe,\n    TimeFromNowPipe,\n    ToCurrencyPipe,\n    ToDatePipe,\n    ToNumberPipe,\n    TrustAsPipe\n} from '@wm/components/base';\nimport {AbstractI18nService, App, CustomPipeManager, getSessionStorageItem} from '@wm/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PipeProvider {\n    _pipeMeta;\n    _locale = getSessionStorageItem('selectedLocale') || 'en';\n    formatsByLocale;\n    preparePipeMeta = (\n        reference: Pipe,\n        name: string,\n        pure: boolean,\n        diDeps = []\n    ) => ({\n        type: { reference, diDeps },\n        name,\n        pure\n    });\n    _pipeData = [];\n\n    setPipeData() {\n        this._pipeData = [\n            // TODO | NEED TO BE TESTED\n            this.preparePipeMeta(AsyncPipe, 'async', false, [ChangeDetectorRef]),\n            this.preparePipeMeta(SlicePipe, 'slice', false),\n            this.preparePipeMeta(PercentPipe, 'percent', true, [this._locale]),\n            this.preparePipeMeta(I18nPluralPipe, 'i18nPlural', true, [\n                NgLocalization\n            ]),\n            this.preparePipeMeta(I18nSelectPipe, 'i18nSelect', true),\n            this.preparePipeMeta(KeyValuePipe, 'keyvalue', false, [\n                KeyValueDiffers\n            ]),\n            this.preparePipeMeta(FileIconClassPipe, 'fileIconClass', true),\n            this.preparePipeMeta(\n                FileExtensionFromMimePipe,\n                'fileExtensionFromMime',\n                true\n            ),\n            this.preparePipeMeta(StateClassPipe, 'stateClass', true),\n            this.preparePipeMeta(FileSizePipe, 'filesize', true),\n            // TESTED\n            this.preparePipeMeta(FilterPipe, 'filter', true),\n            this.preparePipeMeta(UpperCasePipe, 'uppercase', true),\n            this.preparePipeMeta(LowerCasePipe, 'lowercase', true),\n            this.preparePipeMeta(JsonPipe, 'json', false),\n            this.preparePipeMeta(DecimalPipe, 'number', true, [this._locale]),\n            this.preparePipeMeta(TitleCasePipe, 'titlecase', true),\n            this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),\n            this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),\n            this.preparePipeMeta(ToDatePipe, 'toDate', true, [\n                new DatePipe(this._locale),\n                undefined,\n                this.injector.get(App),\n                this.injector.get(CustomPipeManager)\n            ]),\n            this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [\n                new DecimalPipe(this._locale),\n                this.i18service\n            ]),\n            this.preparePipeMeta(ToCurrencyPipe, 'toCurrency', true, [\n                new DecimalPipe(this._locale),\n                this.i18service\n            ]),\n            this.preparePipeMeta(PrefixPipe, 'prefix', true),\n            this.preparePipeMeta(SuffixPipe, 'suffix', true),\n            this.preparePipeMeta(TimeFromNowPipe, 'timeFromNow', true),\n            this.preparePipeMeta(NumberToStringPipe, 'numberToString', true, [\n                new DecimalPipe(this._locale)\n            ]),\n            this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),\n            this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),\n            this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),\n            this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),\n            this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),\n        ];\n    }\n\n\n    unknownPipe(name) {\n        throw Error(`The pipe '${name}' could not be found`);\n    }\n\n    constructor(private compiler: Compiler, private injector: Injector, private domSanitizer:DomSanitizer, private i18service: AbstractI18nService) {\n        this._pipeMeta = new Map();\n        this.setPipeData();\n        this._pipeData.forEach(v => {\n            this._pipeMeta.set(v.name, v);\n        });\n        this.formatsByLocale = this.i18service? this.i18service.getwidgetLocale() : {};\n    }\n\n    meta(name) {\n        const meta = this._pipeMeta.get(name);\n        if (!meta) {\n            this.unknownPipe(name);\n        }\n        return meta;\n    }\n\n    getPipeNameVsIsPureMap() {\n        const _map = new Map();\n        this._pipeMeta.forEach((v, k) => {\n            _map.set(k, v.pure);\n        });\n        return _map;\n    }\n\n    resolveDep(dep) {\n        return this.injector.get(dep.token.identifier.reference);\n    }\n\n    getInstance(name) {\n        const {\n            type: { reference: ref, diDeps: deps }\n        } = this.meta(name);\n        if (!ref) {\n            this.unknownPipe(name);\n        }\n\n        if (!deps.length) {\n            return new ref();\n        } else {\n            const args = [];\n            for (const dep of deps) {\n                args.push(dep);\n            }\n            return new ref(...args);\n        }\n    }\n}","import { Injectable } from \"@angular/core\";\nimport { PipeProvider } from \"./pipe-provider.service\";\nimport { App, setPipeProvider } from \"@wm/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class PipeService {\n    constructor(private pipeProvider: PipeProvider,\n                private $app: App) {\n                    // setting pipe provider, to be used for variables watcher in expression parser\n        setPipeProvider(pipeProvider);\n        if(this.$app.isApplicationType) {\n            this.supportedPipes.push('custom');\n        }\n    }\n\n    private supportedPipes = [ \"toDate\", \"toCurrency\", \"prefix\", \"suffix\", \"numberToString\", \"stringToNumber\", \"timeFromNow\", \"trustAs\", \"sanitize\"];\n\n    public getPipe(name: string) {\n        if(this.supportedPipes.includes(name)) {\n            return this.pipeProvider.getInstance(name);\n        } else {\n            throw Error(`The pipe '${name}' could not be found`);\n        }\n    }\n}\n","import { Injectable, Injector, OnDestroy } from '@angular/core';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport {\n    AbstractDialogService,\n    AbstractHttpService,\n    AbstractI18nService,\n    AbstractSpinnerService,\n    AbstractToasterService,\n    EventNotifier,\n    FieldTypeService,\n    FieldWidgetService,\n    getWmProjectProperties,\n    isDefined,\n    ConstantService,\n    UtilsService,\n    DynamicComponentRefProvider,\n    StatePersistence,\n    Viewport,\n    registerFnByExpr\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { WmDefaultRouteReuseStrategy } from '../util/wm-route-reuse-strategy';\nimport { PipeService } from \"./pipe.service\";\nimport { each, get, isEmpty, isObject, isString } from \"lodash-es\";\nimport * as momentLib from 'moment-timezone/moment-timezone';\nimport { MODE_CONSTANTS } from '@wm/variables';\nconst moment = momentLib.default || window['moment'];\n\nconst injectorMap = {\n    DialogService: AbstractDialogService,\n    i18nService: AbstractI18nService,\n    PipeService: PipeService,\n    statePersistence: StatePersistence,\n    SpinnerService: AbstractSpinnerService,\n    StatePersistenceService: StatePersistence,\n    Viewport: Viewport,\n    ToasterService: AbstractToasterService,\n    Utils: UtilsService,\n    CONSTANTS: ConstantService,\n    FIELD_TYPE: FieldTypeService,\n    FIELD_WIDGET: FieldWidgetService,\n    DynamicComponentService: DynamicComponentRefProvider\n};\n\nconst enum PROJECT_TYPE {\n    APPLICATION = 'APPLICATION',\n    PREFAB = 'PREFAB',\n    TEMPLATE_BUNDLE = 'TEMPLATEBUNDLE'\n}\n\nconst noop = (...args) => { };\n\n// Wraps httpService to behave as angular 1.x $http service.\nconst getHttpDependency = function () {\n    const httpService = this.httpService;\n    const fn = function (key, options?) {\n        const args = Array.from(arguments).slice(1);\n        return Promise.resolve(httpService[key].apply(httpService, args));\n    };\n    const $http = function () {\n        return fn.apply(undefined, ['send', ...Array.from(arguments)]);\n    };\n    ['get', 'post', 'head', 'put', 'delete', 'jsonp', 'patch'].forEach(key => $http[key] = fn.bind(undefined, key));\n    return $http;\n};\n\n@Injectable()\nexport class AppRef implements OnDestroy {\n    Variables: any = {};\n    Actions: any = {};\n    onAppVariablesReady = noop;\n    onBeforeAppReady = noop;\n    onSessionTimeout = noop;\n    onPageReady = noop;\n    onBeforePageLeave = noop;\n    onBeforeServiceCall = noop;\n    onServiceSuccess = noop;\n    onServiceError = noop;\n    dynamicComponentContainerRef = {};\n\n    projectName: string;\n    isPrefabType: boolean;\n    isApplicationType: boolean;\n    isTabletApplicationType: boolean;\n    isTemplateBundleType: boolean;\n    isPrism: boolean;\n\n    targetPlatform: string;\n\n    appLocale: any;\n    modes: any;\n\n    changeLocale = this.i18nService.setSelectedLocale.bind(this.i18nService);\n    getSelectedLocale = this.i18nService.getSelectedLocale.bind(this.i18nService);\n    setTimezone = this.i18nService.setTimezone.bind(this.i18nService);\n    setwidgetLocale = this.i18nService.setwidgetLocale.bind(this.i18nService);\n\n    private _eventNotifier = new EventNotifier();\n    private sessionTimeoutUnsubscribe: () => void; // MEMORY LEAK FIX: Store unsubscribe function\n\n    landingPageName = getWmProjectProperties().homePage;\n\n    reload() {\n        window.location.reload();\n    }\n\n    constructor(\n        private inj: Injector,\n        private i18nService: AbstractI18nService,\n        private statePersistence: StatePersistence,\n        private httpService: AbstractHttpService,\n        private securityService: SecurityService,\n        private routeReuseStrategy: RouteReuseStrategy\n    ) {\n\n        const wmProjectProperties = getWmProjectProperties();\n\n        this.projectName = wmProjectProperties.name;\n        this.isPrefabType = wmProjectProperties.type === PROJECT_TYPE.PREFAB;\n        this.isApplicationType = wmProjectProperties.type === PROJECT_TYPE.APPLICATION;\n        this.isTemplateBundleType = wmProjectProperties.type === PROJECT_TYPE.TEMPLATE_BUNDLE;\n        this.targetPlatform = wmProjectProperties.platformType;\n        this.isPrism = wmProjectProperties.template === \"PRISM\";\n\n\n        // MEMORY LEAK FIX: Store unsubscribe function for cleanup\n        this.sessionTimeoutUnsubscribe = this.httpService.registerOnSessionTimeout(this.on401.bind(this));\n\n        this.appLocale = this.i18nService.getAppLocale();\n        this.httpService.setLocale(this.appLocale);\n    }\n\n    public clearPageCache(pageName?: string) {\n        if (this.routeReuseStrategy instanceof WmDefaultRouteReuseStrategy) {\n            (this.routeReuseStrategy as WmDefaultRouteReuseStrategy).reset(pageName);\n        }\n    }\n\n    public notify(eventName: string, ...data: Array<any>) {\n        this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n    }\n\n    public importModule(moduleName: string) {\n        if (moduleName === 'moment') {\n            return moment;\n        }\n        else if (moduleName === 'moment-tz-data') {\n            return this.i18nService.setTimezoneEarly();\n        }\n    }\n\n    public getDependency(injToken) {\n        if (isString(injToken)) {\n            if (injToken === 'HttpService') {\n                return getHttpDependency.call(this);\n            }\n            let providerInstance = injectorMap[injToken] && this.inj.get(injectorMap[injToken]);\n            if (!providerInstance && this.inj['records']?.values) {\n                const values = this.inj['records'].values();\n                let next = values?.next();\n                while (next && !next.done) {\n                    if (next?.value?.value?.constructor?.SERVICE_NAME === injToken) {\n                        return next.value.value;\n                    }\n                    next = values.next();\n                }\n            }\n            return providerInstance;\n        }\n        return this.inj.get(injToken);\n    }\n\n    /**\n     * triggers the onSessionTimeout callback in app.js\n     */\n    on401() {\n        const userInfo = get(this.securityService.get(), 'userInfo');\n        // if a previous user exists, a session time out triggered\n        if (!isEmpty(userInfo)) {\n            this.onSessionTimeout();\n        }\n    }\n\n    public subscribe(eventName, callback: (data: any) => void): () => void {\n        return this._eventNotifier.subscribe(eventName, callback);\n    }\n\n    public notifyApp(template, type, title) {\n        const notificationAction = get(this, 'Actions.appNotification');\n        const EXCLUDE_NOTIFICATION_MESSAGES = ['PROCESS_REJECTED_IN_QUEUE'];\n        const skipDefaultNotification = EXCLUDE_NOTIFICATION_MESSAGES.indexOf(template) !== -1;\n        if (notificationAction) {\n            // do not notify the error to the app, just throw it in console\n            if (skipDefaultNotification) {\n                console.warn('App Error', template);\n                return;\n            }\n            type = type || 'success';\n            template = notificationAction.getMessage() || template;\n            notificationAction.invoke({\n                message: template,\n                title: isDefined(title) ? title : type.toUpperCase(),\n                class: type,\n                // If the type is error do not close the toastr\n                duration: type.toUpperCase() === 'ERROR' ? 0 : undefined\n            });\n        } else {\n            console.warn('The default Action \"appNotification\" doesn\\'t exist in the app. App notified following error:\\n', template);\n        }\n    }\n\n    /**\n     * function to register bind expressions from app variables\n     * it will be called from app.js in generated angular app\n     * @param expressions, map of bind expression vs generated function\n     */\n    public registerExpressions(expressions) {\n        each(expressions, (fn, expr) => {\n            registerFnByExpr(expr, fn[0], fn[1]);\n        });\n    }\n\n    /**\n     * Utility method to check if an object has a property\n     * This is commonly used in expressions to check object properties\n     * @param obj The object to check\n     * @param prop The property name to check\n     * @returns true if the object has the property, false otherwise\n     */\n    hasOwnObjectProperty(obj: any, prop: string): boolean {\n        if (!obj || typeof obj !== 'object') {\n            return false;\n        }\n        return Object.prototype.hasOwnProperty.call(obj, prop);\n    }\n\n    setMode(modes: Record<string, string>, shouldPersist = false) {\n        const htmlEl = document.getElementsByTagName('html')[0];\n        //html element sanity check\n        if (!htmlEl) return;\n\n        //modes object sanity check\n        if (!isObject(modes)) {\n            modes = {}\n        }\n\n        //modes array sanity check\n        const modesArr = Object.entries(modes);\n        if (!modesArr.length) return;\n\n        //loop over modes and set each mode on the html element\n        modesArr.forEach(([modeKey, modeValue]) => {\n            const isDefault = modeValue === MODE_CONSTANTS.LIGHT || modeValue === MODE_CONSTANTS.DEFAULT;\n\n            if (isDefault) {\n                htmlEl.removeAttribute(modeKey);\n            } else {\n                htmlEl.setAttribute(modeKey, modeValue);\n            }\n        });\n\n        //if shoudlPersist is true, set the modes object in the localStorage\n        if (shouldPersist) localStorage.setItem('wm-app-modes', JSON.stringify(modes));\n    };\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Destroy EventNotifier to release subscribers\n        if (this._eventNotifier) {\n            this._eventNotifier.destroy();\n            this._eventNotifier = null;\n        }\n\n        // MEMORY LEAK FIX: Unsubscribe from session timeout\n        if (this.sessionTimeoutUnsubscribe) {\n            this.sessionTimeoutUnsubscribe();\n            this.sessionTimeoutUnsubscribe = null;\n        }\n\n        // MEMORY LEAK FIX: Clear references\n        this.Variables = null;\n        this.Actions = null;\n        this.appLocale = null;\n        this.modes = null;\n        this.dynamicComponentContainerRef = null;\n    }\n}","import { Injectable } from '@angular/core';\n\nimport { ToastrService } from 'ngx-toastr';\n\nimport { AbstractToasterService, isDefined } from '@wm/core';\n\nimport { CustomToasterComponent } from '../components/custom-toaster.component';\nimport {isNumber, isObject, merge} from \"lodash-es\";\n\n@Injectable()\nexport class ToasterServiceImpl extends AbstractToasterService {\n\n    constructor(private toaster: ToastrService) {\n        super();\n    }\n\n    private _showToaster (type: string, title: string, desc: string, options?: any) {\n        // backward compatibility (in 9.x, 4th param is timeout value).\n        if (isNumber(options)) {\n            options = {timeOut: options};\n        }\n\n        options = options || {};\n        options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n        options.enableHtml = isDefined(options.enableHtml);\n        options.positionClass = options.positionClass || 'toast-bottom-right';\n        options.toastClass = 'toast';\n        // pop the toaster only if either title or description are defined\n        if (title || desc) {\n            // if the desc is an object, stringify it.\n            if (!options.bodyOutputType && isObject(desc)) {\n                desc = JSON.stringify(desc);\n            }\n            const fn = this.toaster[type];\n            if (fn) {\n                return fn.call(this.toaster, desc, title, options);\n            }\n        }\n    }\n\n    public success (title, desc) {\n        return this._showToaster('success', title, desc, {timeOut: 5000});\n    }\n\n    public error (title, desc) {\n        return this._showToaster('error', title, desc, {timeOut: 0});\n    }\n\n    public info (title, desc) {\n        return this._showToaster('info', title, desc, {timeOut: 0});\n    }\n\n    public warn (title, desc) {\n        return this._showToaster('warning', title, desc, {timeOut: 0});\n    }\n\n    public show (type, title, desc, options) {\n        return this._showToaster(type, title, desc, options);\n    }\n\n    public hide (toasterObj) {\n        // in studio just ignore the toasterObj and hide all the toasters\n        if (!toasterObj) {\n            this.toaster.clear();\n            return;\n        }\n        this.toaster.clear(toasterObj.toastId);\n    }\n\n    public showCustom(page, options) {\n        if (!page) {\n            return;\n        }\n        options = options || {};\n        options.toastComponent = CustomToasterComponent;\n        options.toastClass = 'custom-toaster';\n        options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n        options.enableHtml = isDefined(options.enableHtml);\n        options.positionClass = options.positionClass || 'toast-bottom-right';\n        options.toastClass = 'toast';\n        return this.toaster.show(page, '', options);\n    }\n\n    /**\n     * Updates the Global Toaster options based on the passed object. Useful in cases where\n     * a user wants to display multiple toasts at the same time, newest on bottom etc\n     * @param {options} Object\n     */\n    public setToasterConfig(options) {\n        if (isObject(options)) {\n            merge(this.toaster.toastrConfig, options);\n        } else {\n            console.warn('Please pass a valid options object, For Example : {maxOpened: 1, autoDismiss: true}');\n        }\n    }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { defineLocale } from 'ngx-bootstrap/chronos';\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\n\nimport {\n    _WM_APP_PROJECT,\n    AbstractI18nService,\n    AppDefaults,\n    getSessionStorageItem,\n    getWmProjectProperties,\n    isMobile,\n    loadScripts,\n    replace,\n    setCSS,\n    setSessionStorageItem,\n    App\n} from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {find, forEach, get, includes, intersection, isObject, map, toLower} from \"lodash-es\";\n\nimport * as momentLib from 'moment-timezone/moment-timezone';\nconst moment = momentLib.default || window['moment'];\ndeclare const _WM_APP_PROPERTIES;\n\nconst APP_LOCALE_ROOT_PATH = 'resources/i18n';\nconst RTL_LANGUAGE_CODES = ['ar', 'ar-001', 'ar-ae', 'ar-bh', 'ar-dz', 'ar-eg', 'ar-iq', 'ar-jo', 'ar-kw', 'ar-lb', 'ar-ly',\n    'ar-ma', 'ar-om', 'ar-qa', 'ar-sa', 'ar-sd', 'ar-sy', 'ar-tn', 'ar-ye', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk',\n    'he', 'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];\n\n@Injectable()\nexport class I18nServiceImpl extends AbstractI18nService {\n\n    private selectedLocale: string;\n    private defaultSupportedLocale = 'en';\n    private readonly appLocale: any;\n    private readonly prefabLocale: Map<String, any>;\n    private messages: any;\n    private _isAngularLocaleLoaded = false;\n    private formatsByLocale = {'timezone': '', 'number': ''};\n    private get app() { return this.inj.get(App) };\n\n    private bundleLoaded:{[key:string] : any} = {};\n\n    constructor(\n        private $http: HttpClient,\n        private bsLocaleService: BsLocaleService,\n        private appDefaults: AppDefaults,\n        private inj: Injector\n    ) {\n        super();\n        this.appLocale = {};\n        this.prefabLocale = new Map();\n    }\n\n    private updateLocaleDirection() {\n        let direction: 'ltr' | 'rtl' = 'ltr';\n        if (RTL_LANGUAGE_CODES.includes(this.selectedLocale)) {\n            direction = 'rtl';\n        }\n\n        setCSS(document.body, 'direction', direction);\n    }\n\n    private init() {\n        this.messages = {};\n\n        Object.setPrototypeOf(this.appLocale, this.messages);\n    }\n\n    public getSelectedLocale(): string {\n        return this.selectedLocale;\n    }\n\n    public getDefaultSupportedLocale(): string {\n        return this.defaultSupportedLocale;\n    }\n\n    public getAppLocale(): any {\n        return this.appLocale;\n    }\n\n    public getPrefabLocaleBundle(prefabName: string): any {\n        if (!this.prefabLocale.has(prefabName)) {\n            this.prefabLocale.set(prefabName, Object.create(this.appLocale));\n        }\n        return this.prefabLocale.get(prefabName);\n    }\n\n    private extendPrefabMessages(messages: any): void {\n        if (!messages.prefabMessages) {\n            return;\n        }\n\n        Object.keys(messages.prefabMessages).forEach((prefabName: string) => {\n            let bundle = this.prefabLocale.get(prefabName);\n            if (!bundle) {\n                bundle = Object.create(this.appLocale);\n                this.prefabLocale.set(prefabName, bundle);\n            }\n            Object.assign(bundle, messages.prefabMessages[prefabName]);\n        });\n    }\n\n    private extendMessages(messages: any): void {\n        Object.assign(this.messages, messages);\n    }\n\n    private loadResource(path): Promise<any> {\n        return this.$http.get(path)\n            .toPromise()\n            .catch(() => {\n                console.warn(`error loading locale resource from ${path}`);\n                Promise.resolve({});\n            });\n    }\n\n    protected loadAppLocaleBundle() {\n        const basePath = _WM_APP_PROJECT.isPreview || _WM_APP_PROPERTIES?.languageBundleSources === 'DYNAMIC' ? '' :  _WM_APP_PROJECT.cdnUrl\n        this.loadResource( basePath + `${APP_LOCALE_ROOT_PATH}/${this.selectedLocale}.json`)\n            .then(bundle => {\n                this.extendMessages(bundle.messages);\n                this.extendPrefabMessages(bundle);\n                this.appDefaults.setFormats(bundle.formats);\n                this.bundleLoaded.app = true;\n                this.notifyLocaleChanged();\n            });\n    }\n\n    protected loadMomentLocaleBundle(momentLocale) {\n        if (this.selectedLocale === this.defaultSupportedLocale) {\n            moment.locale(this.defaultSupportedLocale);\n            return;\n        }\n        if (_WM_APP_PROJECT.isPreview) {\n            const path = `${_WM_APP_PROJECT.cdnUrl}locales/moment/${momentLocale}.js`;\n            loadScripts([path], true).then(()=>{\n                this.loadScriptForMoment(momentLocale);\n            })\n        }\n        else{\n            this.loadScriptForMoment(momentLocale);\n        }\n    }\n\n    protected loadScriptForMoment(momentLocale){\n            moment.locale(this.selectedLocale);\n            // For ngx bootstrap locale, get the config from script and apply locale\n            // moment.localeData(momentLocale) will return moment locale instance. _config inside will have actual config\n            let _config: any = moment.localeData(momentLocale);\n            _config = _config && _config._config;\n            defineLocale(this.selectedLocale, _config);\n            this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n            this.bundleLoaded.moment = true;\n            this.notifyLocaleChanged();\n    }\n\n    protected loadAngularLocaleBundle(angLocale) {\n        return new Promise<void>(resolve => {\n            const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n            if (this.selectedLocale === this.defaultSupportedLocale) {\n                resolve();\n                return;\n            }\n            const path = _cdnUrl + `locales/angular/global/${angLocale}.js`;\n\n            loadScripts([path], true).then(()=>{\n                this._isAngularLocaleLoaded = true;\n                resolve();\n            }, resolve);\n        });\n    }\n\n    protected loadMomentTimeZoneBundle(): Promise<any> {\n            const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n            window['moment'] = moment; //moment-timezone-with-data.js need moment as require('moment') to be available in window\n            const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;\n            return loadScripts([path], true)\n    }\n\n    protected loadLocaleBundles(libLocale) {\n        if (libLocale.moment) {\n            this.loadMomentLocaleBundle(libLocale.moment);\n        } else if (this.selectedLocale === this.defaultSupportedLocale) {\n            this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n            this.bundleLoaded.moment = true;\n        }\n        if (libLocale.fullCalendar && window['FullCalendar']) {\n                this.bundleLoaded.fullCalendar = true;\n                this.notifyLocaleChanged();\n        } else {\n            this.bundleLoaded.fullCalendar = true;\n        }\n        if (libLocale.angular) {\n            this.loadAppLocaleBundle();\n        }\n        return this.loadAngularLocaleBundle(libLocale.angular);\n    }\n\n    public setTimezone(locale, compInstance?) {\n        new Promise<void>(resolve => {\n        this.loadMomentTimeZoneBundle().then(()=>{\n            /**\n             * If locale is provided in the form of offset and not timezone name, deduce the name.\n             * If locale is provided as GMT+9, name will be deduced as Asia/Tokyo\n             */\n\n            let localeObj = locale;\n            locale = localeObj['timezone'];\n            const localeIndex = locale.indexOf('+');\n            if (localeIndex > -1) {\n                if (localeIndex > 0) {\n                    locale = locale.substr(localeIndex);\n                }\n                localeObj['timezone'] = find((moment as any).tz.names(), (timezoneName) => {\n                    return locale === (moment as any).tz(timezoneName).format('Z');\n                });\n            }\n            (moment as any).tz.setDefault(locale);\n            const localeData =  compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;\n            Object.assign(localeData, localeObj);\n            resolve();\n        },resolve);\n        });\n    }\n    \n    public setTimezoneEarly(): Promise<any> {\n       return this.loadMomentTimeZoneBundle()\n    }\n\n    public getTimezone(compInstance?) {\n        const pageConfig = get(this.app, 'activePage.formatsByLocale.timezone');\n        const compConfig = get(compInstance, 'formatsByLocale.timezone');\n        if (compConfig) {\n            return compConfig;\n        } else if (pageConfig) {\n            return pageConfig;\n        } else {\n            return this.formatsByLocale['timezone'];\n        }\n    }\n\n    public getFormatsByLocale() {\n        return this.formatsByLocale;\n    }\n\n    public setSelectedLocale(locale) {\n\n        // check if the event is propagated from the select or any such widget\n        if (isObject(locale)) {\n            // @ts-ignore\n            locale = locale.datavalue;\n        }\n\n        const libLocale = getWmProjectProperties().supportedLanguages[locale];\n        const supportedLocale = Object.keys(getWmProjectProperties().supportedLanguages);\n\n        if (!includes(supportedLocale, locale)) {\n            return Promise.resolve();\n        }\n\n        if (!locale || locale === this.selectedLocale) {\n            return Promise.resolve();\n        }\n\n        setSessionStorageItem('selectedLocale', locale);\n\n        this.selectedLocale = locale;\n\n        // reset the localeData object\n        this.init();\n\n        this.bundleLoaded.moment = false;\n        this.bundleLoaded.fullCalendar = false;\n        this.bundleLoaded.app = false;\n        this.bundleLoaded.angular = false;\n        this.bundleLoaded.libLocale = libLocale;\n\n        // load the locale bundles of the selected locale\n        return this.loadLocaleBundles(libLocale).then(() => {\n            this.updateLocaleDirection();\n            this.bundleLoaded.angular = true;\n            this.notifyLocaleChanged();\n        });\n    }\n\n    private deduceAppLocale() {\n        // computation to find app default locale\n        const _acceptLang = this.getAcceptedLanguages();\n        const _defaultLanguage = getWmProjectProperties().defaultLanguage;\n        _acceptLang.push(_defaultLanguage);\n\n        // checks whether user preference is based on browser set languages or default language set in project\n        let preferBrowserLang = getWmProjectProperties().preferBrowserLang;\n        if (!preferBrowserLang) { // when preferBrowserLang is not defined, set to its default value\n            preferBrowserLang  = true;\n        } else { // convert stringified boolean values recieved from BE to booleans\n            preferBrowserLang= (preferBrowserLang === 'true' || preferBrowserLang === true) ? true : false;\n        }\n\n        let _supportedLang = Object.keys(getWmProjectProperties().supportedLanguages) || [this.defaultSupportedLocale];\n\n        // when preference is given to browser set languages, do not populate _selectedDefaultLang variable\n        let _selectedDefaultLang = preferBrowserLang ? undefined : _defaultLanguage;\n\n        let _appSupportedLang;\n\n        // check for the session storage to load any pre-requested locale\n        const _defaultLang = getSessionStorageItem('selectedLocale') || _selectedDefaultLang || _appSupportedLang || intersection(_acceptLang, _supportedLang)[0] || this.defaultSupportedLocale;\n        // if the supportedLocale is not available set it to defaultLocale\n        _supportedLang = _supportedLang || [_defaultLang];\n\n        const defaultLanguage = _defaultLang || _supportedLang[0];\n        return defaultLanguage;\n    }\n\n    public loadDefaultLocale() {\n        Date.prototype[\"month\"] = Date.prototype.getMonth;\n        const locale = this.deduceAppLocale();\n        return this.setSelectedLocale(locale);\n    }\n\n    public getLocalizedMessage(message, ...args) {\n        return replace(this.appLocale[message], args);\n    }\n\n    // This function returns the accepted languages list\n    public getAcceptedLanguages() {\n        let languages;\n\n        languages = decodeURIComponent(getWmProjectProperties().preferredLanguage || '');\n        /**\n         * Accept-Language Header will contain set of supported locale, so try splitting the string to proper locale set\n         * Ex: en,en-US;q=0.9,de;q=0.6,ar;q=0.2,hi\n         *\n         * Split the above into [en,en-us,de,ar,hi]\n         * @type {Array}\n         */\n        languages = languages.split(',').map(function(locale) {\n            return locale.split(';')[0];\n        });\n        return map(languages, toLower);\n    }\n\n    public initCalendarLocale(): Promise<any> {\n        return Promise.resolve();\n    }\n\n    public isAngularLocaleLoaded() {\n        return this._isAngularLocaleLoaded;\n    }\n\n    public setwidgetLocale(locale) {\n        this.formatsByLocale['number'] = locale['number'];\n    }\n\n    public getwidgetLocale() {\n        return this.formatsByLocale;\n    }\n\n    private notifyLocaleChanged() {\n        if(this.bundleLoaded.moment && this.bundleLoaded.fullCalendar && this.bundleLoaded.angular && this.bundleLoaded.app) {\n            this.app.notify(  'locale-changed', this.bundleLoaded.libLocale);\n        }\n    }\n\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { AbstractSpinnerService } from '@wm/core';\nimport {findKey, includes, keys, values} from \"lodash-es\";\n\ndeclare const $;\n\nconst spinnerTemplate = `<div class=\"app-spinner\">\n                            <div class=\"spinner-message\" aria-label=\"loading gif\">\n                                <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n                                <div class=\"spinner-messages\">\n                                    <p class=\"spinner-messages-container\"></p>\n                               </div>\n                            </div>\n                         </div>`;\n\n@Injectable()\nexport class SpinnerServiceImpl extends AbstractSpinnerService implements OnDestroy {\n    spinnerId = 0;\n    messageSource = new Subject();\n    messagesByContext = {};\n\n    constructor() {\n        super();\n    }\n\n    /**\n     * returns the message source subject\n     * @returns {Subject<any>}\n     */\n    getMessageSource() {\n        return this.messageSource;\n    }\n\n    /**\n     * show spinner on a container element\n     */\n    showContextSpinner(ctx: string, message: string, id: string) {\n        const ctxMarkup = $('[name=\"' + ctx + '\"]');\n        this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n        // If the spinner already exists on the context\n        // then just append the message to the existing spinner message\n        // else add a new spinner\n        if (Object.keys(this.messagesByContext[ctx]).length !== 0 ) {\n            this.messagesByContext[ctx][id] = message;\n            this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx]['finalMessage'] + ' ' + this.messagesByContext[ctx][id];\n            ctxMarkup.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n        } else {\n            const ctxSpinnerTemp = $(spinnerTemplate);\n            this.messagesByContext[ctx][id] = message;\n            this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx][id];\n            ctxSpinnerTemp.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n            ctxMarkup.prepend(ctxSpinnerTemp);\n        }\n        return id;\n    }\n\n    /**\n     * show the app spinner with provided message\n     * @param msg\n     * @returns {string}\n     */\n    showAppSpinner(msg, id) {\n        const ctx = 'page';\n        this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n        this.messagesByContext[ctx][id] = msg;\n\n        this.messageSource.next({\n            show: true,\n            message: msg,\n            messages: values(this.messagesByContext[ctx])\n        });\n    }\n\n    /**\n     * hides the spinner on a particular container(context)\n     * @param ctx\n     * @param id\n     */\n    hideContextSpinner(ctx, id) {\n        delete this.messagesByContext[ctx][id];\n        if (Object.keys(this.messagesByContext[ctx]).length === 1) {\n            this.messagesByContext[ctx] = {};\n        }\n        const ctxMarkup = $('[name=\"' + ctx + '\"]');\n        ctxMarkup.find('.app-spinner').remove();\n    }\n\n    /**\n     * show spinner\n     * @param message\n     * @param id\n     * @param spinnerClass\n     * @param spinnerContext\n     * @param variableScopeId\n     * @returns {any}\n     */\n    show(message, id?, spinnerClass?, spinnerContext?, variableScopeId?) {\n        id      = id || ++this.spinnerId;\n        // if spinnerContext is passed, then append the spinner to the element(default method for variable calls).\n        if (spinnerContext && spinnerContext !== 'page') {\n            // return after the compiled spinner is appended to the element reference\n            return this.showContextSpinner(spinnerContext, message, id);\n        }\n\n        this.showAppSpinner(message, id);\n        return id;\n    }\n\n    /**\n     * hide the spinner\n     * @param spinnerId\n     */\n    hide(id) {\n        // find the spinner context of the id from the messagesByContext\n        const ctx = findKey(this.messagesByContext, function (obj) {\n            return includes(keys(obj), id);\n        }) || 'page';\n\n        // if spinnerContext exists just remove the spinner from the reference and destroy the scope associated.\n        if (ctx !== 'page') {\n            this.hideContextSpinner(ctx, id);\n            return;\n        }\n\n        if (id) {\n            delete this.messagesByContext[ctx][id];\n            const messages = values(this.messagesByContext[ctx]);\n            this.messageSource.next({\n                show: messages.length ? true : false,\n                messages: values(this.messagesByContext[ctx])\n            });\n        } else {\n            this.messagesByContext[ctx] = {};\n        }\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Complete Subject to release subscriptions\n        if (this.messageSource) {\n            this.messageSource.complete();\n            this.messageSource = null;\n        }\n\n        // MEMORY LEAK FIX: Clear messages by context\n        if (this.messagesByContext) {\n            Object.keys(this.messagesByContext).forEach(key => {\n                delete this.messagesByContext[key];\n            });\n            this.messagesByContext = null;\n        }\n    }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { App, NavigationOptions, AbstractNavigationService } from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {filter, isEmpty, isEqual} from \"lodash-es\";\n\ndeclare const $;\n\nconst parentSelector = 'body >app-root';\n\n@Injectable()\nexport class NavigationServiceImpl implements AbstractNavigationService {\n    private history = new History();\n    private transition: string;\n    private isPageAddedToHistory = false;\n\n    constructor(private app: App, private router: Router, public zone: NgZone) {\n        this.router.events.subscribe(event => {\n            if (event instanceof NavigationStart) {\n                const url = event.url;\n                const urlParams = {};\n                let pageName;\n                if (!this.isPageAddedToHistory) {\n                    this.isPageAddedToHistory = false;\n                    if (url.indexOf('?') > 0) {\n                        url.substr(url.indexOf('?') + 1)\n                            .split('&')\n                            .forEach(s => {\n                                const splits = s.split('=');\n                                urlParams[splits[0]] = splits[1];\n                            });\n                        pageName = url.substr(0, url.indexOf('?'));\n                    } else {\n                        pageName = url;\n                    }\n                    if (pageName[0] === '/') {\n                        pageName = pageName.substr(1);\n                    }\n                    if (pageName) {\n                        /*\n                         * Commenting this code, one client project has Home_Page configured as Login Page.\n                         * So redirection to Home_Page post login is failing\n                         // if login page is being loaded and user is logged in, cancel that.\n                            if ($rs.isApplicationType) {\n                                stopLoginPagePostLogin($p);\n                            }\n                         */\n                        delete urlParams['name'];\n\n                        this.history.push(new PageInfo(pageName, urlParams, this.transition));\n                    }\n                }\n            }\n        });\n    }\n\n    public getPageTransition() {\n        if (isEmpty(this.transition) || isEqual('none', this.transition)) {\n            return null;\n        }\n        return this.transition;\n    }\n\n    /**\n     * Navigates to particular page\n     * @param pageName\n     * @param options\n     */\n    public goToPage(pageName: string, options: NavigationOptions) {\n        this.transition = options.transition || '';\n        // page is added to stack only when currentPage is available.\n        if (this.history.getCurrentPage()) {\n            this.isPageAddedToHistory = true;\n        }\n        this.history.push( new PageInfo(pageName, options.urlParams, this.transition));\n      /**\n       *  BrowserAnimcation module has issue with RouterOutlet\n          In the result every route appending to previous route instead of replace.\n          To fix the issue we are navigating inside the ngZones\n       *\n       *  */\n        this.zone.run(() => {\n            return this.router.navigate([`/${pageName}`], { queryParams: options.urlParams});\n        });\n\n    }\n\n    /**\n     * Navigates to last visited page.\n     */\n    public goToPrevious() {\n        if (this.history.getPagesCount()) {\n            this.transition = this.history.getCurrentPage().transition;\n            if (!isEmpty(this.transition)) {\n                this.transition += '-exit';\n            }\n            this.history.pop();\n            this.isPageAddedToHistory = true;\n            window.history.back();\n        }\n    }\n\n    /** Todo[Shubham] Need to handle gotoElement in other partials\n     * Navigates to particular view\n     * @param viewName\n     * @param options\n     * @param variable\n     */\n    public goToView(viewName: string, options: NavigationOptions, variable: any) {\n        options = options || {};\n        const pageName = options.pageName;\n        const transition = options.transition || '';\n        const $event = options.$event;\n        const activePage = this.app.activePage;\n        const prefabName = variable && variable._context && variable._context.prefabName;\n\n        // Check if app is Prefab\n        if (this.app.isPrefabType) {\n            this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n        } else {\n            // checking if the element is present in the page or not, if no show an error toaster\n            // if yes check if it is inside a partial/prefab in the page and then highlight the respective element\n            // else goto the page in which the element exists and highlight the element\n            if (pageName !== activePage.activePageName && !prefabName) {\n                if (this.isPartialWithNameExists(pageName)) {\n                    this.goToElementView($('[partialcontainer][content=\"' + pageName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n                } else {\n                    // Todo[Shubham]: Make an API call to get all pages and check if the page name\n                    //  is a page and then do this call else show an error as:\n                    //  this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n                    this.goToPage(pageName, {\n                        viewName: viewName,\n                        $event: $event,\n                        transition: transition,\n                        urlParams: options.urlParams\n                    });\n                    // subscribe to an event named pageReady which notifies this subscriber\n                    // when all widgets in page are loaded i.e when page is ready\n                    const pageReadySubscriber = this.app.subscribe('pageReady', (page) => {\n                        this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n                        pageReadySubscriber();\n                    });\n                }\n            } else if (prefabName && this.isPrefabWithNameExists(prefabName)) {\n                this.goToElementView($('[prefabName=\"' + prefabName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n            } else if (!pageName || pageName === activePage.activePageName) {\n                this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n            } else {\n                this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n            }\n        }\n    }\n\n    /*\n     * navigates the user to a view element with given name\n     * if the element not found in the compiled markup, the same is searched in the available dialogs in the page\n     */\n    private goToElementView(viewElement, viewName: string, pageName: string, variable: any) {\n        let $el, parentDialog;\n        const activePage = this.app.activePage;\n        if (viewElement.length) {\n            if (!this.app.isPrefabType && pageName === activePage.activePageName) {\n                viewElement = this.getViewElementInActivePage(viewElement);\n            }\n\n            $el = viewElement[0].widget;\n            switch ($el.widgetType) {\n                case 'wm-accordionpane':\n                    this.showAncestors(viewElement, variable);\n                    $el.expand();\n                    break;\n                case 'wm-tabpane':\n                    this.showAncestors(viewElement, variable);\n                    $el.select();\n                    break;\n                case 'wm-segment-content':\n                    this.showAncestors(viewElement, variable);\n                    $el.navigate();\n                    break;\n                case 'wm-panel':\n                    /* flip the active flag */\n                    $el.expanded = true;\n                    break;\n            }\n        } else {\n            parentDialog = this.showAncestorDialog(viewName);\n            setTimeout(() => {\n                if (parentDialog) {\n                    this.goToElementView($('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n                }\n            });\n        }\n    }\n\n    /* If page name is equal to active pageName, this function returns the element in the page.\n     The element in the partial page is not selected.*/\n    private getViewElementInActivePage($el) {\n        let selector;\n        if ($el.length > 1) {\n            selector = filter($el, (childSelector) => {\n                if (isEmpty($(childSelector).closest('[data-role = \"partial\"]')) && isEmpty($(childSelector).closest('[wmprefabcontainer]'))) {\n                    return childSelector;\n                }\n            });\n            if (selector) {\n                $el = $(selector);\n            }\n        }\n        return $el;\n    }\n\n    /**\n     * checks if the pagecontainer has the pageName.\n     */\n    private isPartialWithNameExists(name: string) {\n        return $('[partialcontainer][content=\"' + name + '\"]').length;\n    }\n\n    /**\n     * checks if the pagecontainer has the prefab.\n     */\n    private isPrefabWithNameExists(prefabName: string) {\n        return $('[prefabName=\"' + prefabName + '\"]').length;\n    }\n\n    /*\n     * shows all the parent container view elements for a given view element\n     */\n    private showAncestors(element, variable) {\n        const ancestorSearchQuery = '[wm-navigable-element=\"true\"]';\n\n        element\n            .parents(ancestorSearchQuery)\n            .toArray()\n            .reverse()\n            .forEach((parent) => {\n                const $el = parent.widget;\n                switch ($el.widgetType) {\n                    case 'wm-accordionpane':\n                        $el.expand();\n                        break;\n                    case 'wm-tabpane':\n                        $el.select();\n                        break;\n                    case 'wm-segment-content':\n                        $el.navigate();\n                        break;\n                    case 'wm-panel':\n                        /* flip the active flag */\n                        $el.expanded = true;\n                        break;\n                }\n            });\n    }\n\n\n\n    /*\n     * searches for a given view element inside the available dialogs in current page\n     * if found, the dialog is displayed, the dialog id is returned.\n     */\n    private showAncestorDialog(viewName: string) {\n        let dialogId;\n        $('app-root [dialogtype]')\n            .each(function () {\n                const dialog = $(this);\n                if ($(dialog.html()).find('[name=\"' + viewName + '\"]').length) {\n                    dialogId = dialog.attr('name');\n                    return false;\n                }\n            });\n        return dialogId;\n    }\n}\n\nclass PageInfo {\n\n    constructor(public name, public urlParams?, public transition?) {\n        this.transition = isEmpty(this.transition) ? null : this.transition;\n    }\n\n    public isEqual(page1: PageInfo) {\n        return page1 && page1.name === this.name && isEqual(page1.urlParams, this.urlParams);\n    }\n}\n\nclass History {\n    private stack: Array<PageInfo> = [];\n    private currentPage: PageInfo;\n\n    public getCurrentPage() {\n        return this.currentPage;\n    }\n\n    public getPagesCount() {\n        return this.stack.length;\n    }\n\n    public isLastVisitedPage(page: PageInfo) {\n        return this.getLastPage().isEqual(page);\n    }\n\n    public push(pageInfo: PageInfo) {\n        if (this.currentPage) {\n            this.stack.push(this.currentPage);\n        }\n        this.currentPage = pageInfo;\n    }\n\n    public pop() {\n        this.currentPage = this.stack.pop();\n        return this.currentPage;\n    }\n\n    public getLastPage() {\n        return this.stack.length > 0 ? this.stack[this.stack.length - 1] : undefined;\n    }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppDefaults } from '@wm/core';\n\n@Injectable()\nexport class AppDefaultsService implements AppDefaults {\n\n    constructor() {\n    }\n\n    dateFormat: string;\n    timeFormat: string;\n    dateTimeFormat: string;\n    currencyCode: string;\n\n    setFormats(formats: any) {\n        const dateFormat = formats.date;\n        const timeFormat = formats.time;\n        const dateTimeFormat = (dateFormat && timeFormat) ? dateFormat + ' ' + timeFormat : undefined;\n        const currency = formats.currency;\n\n        this.dateFormat = dateFormat;\n        this.timeFormat = timeFormat;\n        this.dateTimeFormat = dateTimeFormat;\n        this.currencyCode = currency;\n    }\n}\n","import { ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet securityConfigLoaded = false;\n\n@Injectable()\nexport class AuthGuard {\n\n    constructor(private securityService: SecurityService, private appManager: AppManagerService) {}\n\n    loadSecurityConfig(): Promise<boolean> {\n        if (securityConfigLoaded) {\n            return Promise.resolve(true);\n        }\n\n        return this.appManager.loadSecurityConfig().then(() => securityConfigLoaded = true);\n    }\n\n    isAuthenticated(): Promise<any> {\n        return this.loadSecurityConfig()\n            .then(() => {\n                return new Promise((resolve, reject) => {\n                    this.securityService.isAuthenticated(resolve, reject);\n                });\n            });\n    }\n\n    canActivate(route: ActivatedRouteSnapshot): Promise<any> {\n        return this.isAuthenticated()\n            .then(isLoggedIn => {\n                if (isLoggedIn) {\n                    return Promise.resolve(true);\n                }\n\n                this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n                return Promise.resolve(false);\n            });\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { AbstractToasterService, App } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AuthGuard } from './auth.guard';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {intersection} from \"lodash-es\";\n\n@Injectable()\nexport class RoleGuard {\n\n    constructor(\n        private securityService: SecurityService,\n        private authGuard: AuthGuard,\n        private toasterService: AbstractToasterService,\n        private app: App,\n        private appManager: AppManagerService\n    ) {}\n\n    canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n        const allowedRoles = route.data.allowedRoles;\n\n        return this.authGuard.isAuthenticated()\n            .then((isLoggedIn: boolean) => {\n                if (isLoggedIn) {\n                    const userRoles = this.securityService.get().userInfo.userRoles;\n                    const hasAccess = intersection(allowedRoles, userRoles).length > 0;\n\n                    if (hasAccess) {\n                        return Promise.resolve(true);\n                    }\n\n                    // current loggedin user doesn't have access to the page that the user is trying to view\n                    this.appManager.notifyAccessDenied(\n                        route.routeConfig?.path,\n                        this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied'\n                    );\n\n                    return Promise.resolve(false);\n\n                } else {\n                    // redirect to Login\n                    this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n                    return Promise.resolve(false);\n                }\n            });\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { App } from '@wm/core';\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable()\nexport class PageNotFoundGuard {\n\n    constructor(\n        private app: App,\n        private appManager: AppManagerService\n    ) {}\n\n    canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n        this.appManager.notifyApp(\n            this.app.appLocale.MESSAGE_PAGE_NOT_FOUND || 'The page you are trying to reach is not available',\n            'error'\n        );\n        return Promise.resolve(false);\n    }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService } from '@wm/core';\n\nimport { AppJSProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet appJsLoaded = false;\n\n@Injectable()\nexport class AppJSResolve {\n    private appManager;\n\n    // AppManagerService: To be make sure this instance available for locale(en.json) calls request to track inside intercepter\n    constructor(\n        private inj: Injector,\n        private app: App,\n        private utilService: UtilsService,\n        private appJsProvider: AppJSProvider\n    ) {\n        this.appManager = this.inj.get(AppManagerService);\n    }\n\n    async resolve() {\n        if (appJsLoaded) {\n            return true;\n        }\n\n        try {\n            // execute app.js\n            const appScriptFn = await this.appJsProvider.getAppScriptFn();\n            appScriptFn(this.app, this.utilService, this.inj);\n        } catch (e) {\n            console.warn('Error in executing app.js', e);\n        }\n\n        appJsLoaded = true;\n\n        return true;\n    }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService, CustomPipeManager } from '@wm/core';\n\nimport { AppExtensionProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\n\nlet appJsLoaded = false;\n\n\n@Injectable()\nexport class AppExtensionJSResolve {\n\n    constructor(\n        private appManager: AppManagerService,\n        private appJsProvider: AppExtensionProvider,\n        private customPipeManager: CustomPipeManager\n    ) {}\n\n     resolve() {\n         if(this.appManager.isPrefabType() || this.appManager.isTemplateBundleType()){\n            return true;\n         }\n        if (!appJsLoaded) {\n            this.appJsProvider.loadFormatterConfigScript(this.loadedFormatterScript.bind(this));\n            appJsLoaded = true;\n        }\n        return appJsLoaded;\n    }\n\n    // Formatters load callback\n    loadedFormatterScript(response){\n        try {\n           let formatterObj = response;\n            // If user defined the invalid formatters.\n            if(!formatterObj){\n                console.warn('Please return valid formatter object');\n            }\n\n            for(let key in formatterObj){\n                this.customPipeManager.setCustomPipe(key, formatterObj[key]);\n            }\n        } catch (e) {\n            console.warn('Error in reading formatters.js', e);\n        }\n    }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AbstractI18nService } from '@wm/core';\n\n@Injectable()\nexport class I18nResolve {\n\n    constructor(private i18nService: AbstractI18nService) {}\n\n    resolve() {\n        return this.i18nService.loadDefaultLocale();\n    }\n}\n","import {CommonModule} from '@angular/common';\nimport {AlertDialogComponent} from '@wm/components/dialogs/alert-dialog';\nimport {ConfirmDialogComponent} from '@wm/components/dialogs/confirm-dialog';\nimport {\n    AfterViewInit,\n    ApplicationRef,\n    Component,\n    DoCheck,\n    ElementRef,\n    NgZone,\n    OnDestroy,\n    ViewChild,\n    ViewContainerRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport {\n    ActivatedRoute,\n    NavigationCancel,\n    NavigationEnd,\n    NavigationError,\n    NavigationStart,\n    Router,\n    RouterOutlet\n} from '@angular/router';\n\nimport {setTheme} from 'ngx-bootstrap/utils';\n\nimport {\n    $invokeWatchers,\n    AbstractDialogService,\n    AbstractSpinnerService,\n    addClass,\n    App,\n    CustomIconsLoaderService,\n    getWmProjectProperties,\n    noop,\n    removeClass,\n    setAppRef,\n    setNgZone,\n    setPipeProvider\n} from '@wm/core';\nimport {OAuthService} from '@wm/oAuth';\nimport {AppManagerService} from '../../services/app.manager.service';\nimport {PipeProvider} from '../../services/pipe-provider.service';\nimport {AppSpinnerComponent} from '../app-spinner.component';\nimport {DialogComponent} from '@wm/components/dialogs/design-dialog';\nimport {ContainerDirective, PartialContainerDirective, PartialParamHandlerDirective} from '@wm/components/base';\nimport {filter} from \"rxjs/operators\";\nimport {Subscription} from \"rxjs\";\n\ninterface SPINNER {\n    show: boolean;\n    messages: Array<string>;\n    arialabel: string;\n}\n@Component({\n    standalone: true,\n    imports: [CommonModule, RouterOutlet, AlertDialogComponent, ConfirmDialogComponent, DialogComponent, AppSpinnerComponent, ContainerDirective, PartialParamHandlerDirective , PartialContainerDirective],\n    selector: 'app-root',\n    templateUrl: './app.component.html',\n    encapsulation: ViewEncapsulation.None\n})\nexport class AppComponent implements DoCheck, AfterViewInit, OnDestroy {\n    public startApp = false;\n    public isApplicationType = false;\n    public enableSkipToMainContent = getWmProjectProperties().enableSkipToMainContent === 'true' || getWmProjectProperties().enableSkipToMainContent === true;\n    private retryCount = 0;\n    private navigationEndSubscription!: Subscription;\n    appLocale: any = {};\n\n    @ViewChild(RouterOutlet) set routerOutlet(outlet: RouterOutlet | undefined) {\n        if (outlet) {\n            this.overrideRouterOutlet(outlet);\n        }\n    }\n\n    @ViewChild('dynamicComponent', { read: ViewContainerRef }) dynamicComponentContainerRef: ViewContainerRef;\n\n    spinner: SPINNER = { show: false, messages: [], arialabel: '' };\n    constructor(\n        _pipeProvider: PipeProvider,\n        _appRef: ApplicationRef,\n        private elRef: ElementRef,\n        private oAuthService: OAuthService,\n        private dialogService: AbstractDialogService,\n        private spinnerService: AbstractSpinnerService,\n        ngZone: NgZone,\n        private router: Router,\n        public app: App,\n        private appManager: AppManagerService,\n        private customIconsLoaderService: CustomIconsLoaderService\n    ) {\n        setPipeProvider(_pipeProvider);\n        setNgZone(ngZone);\n        setAppRef(_appRef);\n\n        this.appLocale = app.appLocale;\n        this.isApplicationType = getWmProjectProperties().type === 'APPLICATION';\n        if (this.isApplicationType) {\n            this.customIconsLoaderService.load();\n        }\n\n        // subscribe to OAuth changes\n        oAuthService.getOAuthProvidersAsObservable().subscribe((providers: any) => {\n            this.providersConfig = providers;\n            if (providers.length) {\n                this.showOAuthDialog();\n            } else {\n                this.closeOAuthDialog();\n            }\n        });\n\n        // Subscribe to the message source to show/hide app spinner\n        this.spinnerService.getMessageSource().asObservable().subscribe((data: any) => {\n            // setTimeout is to avoid 'ExpressionChangedAfterItHasBeenCheckedError'\n            setTimeout(() => {\n                this.spinner.show = data.show;\n                this.spinner.messages = data.messages;\n                this.spinner.arialabel = data.messages.toString();\n            });\n        });\n\n        // set theme to bs3 on ngx-bootstrap. This avoids runtime calculation to determine bs theme. Thus resolves performance.\n        setTheme('bs3');\n\n        let spinnerId;\n\n        let onPageRendered = noop;\n\n        this.router.events.subscribe(e => {\n            if (e instanceof NavigationStart) {\n                let page = e.url.split('?')[0];\n                page = page.substring(1);\n\n                if (!page) {\n                    this.app.activeLayoutName = '';\n                    this.app.layoutPages = [];\n                }\n                if (this.app.activeLayoutName && this.app.layoutPages && this.app.layoutPages.length && this.app.layoutPages.includes(page)) {\n                    spinnerId = this.spinnerService.show('', 'wmRouterOutlet', '', 'wmRouterOutlet');\n                } else {\n                    spinnerId = this.spinnerService.show('', 'globalSpinner');\n                }\n\n                const node = document.querySelector('app-page-outlet') as HTMLElement;\n                if (node) {\n                    addClass(node, 'page-load-in-progress');\n                }\n\n                const pageLoadStartTime = Date.now();\n                onPageRendered = () => {\n                    this.spinnerService.hide(spinnerId);\n                    const node = document.querySelector('app-page-outlet') as HTMLElement;\n                    if (node) {\n                        removeClass(node, 'page-load-in-progress');\n                    }\n                    onPageRendered = noop;\n                    this.app.activePageLoadTime = Date.now() - pageLoadStartTime;\n                };\n            } else if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError) {\n                setTimeout(() => {\n                    onPageRendered();\n                }, 1000);\n            }\n        });\n        this.appManager.subscribe('pageReady', () => {\n            onPageRendered();\n        });\n        this.appManager.subscribe('pageAttach', () => {\n            onPageRendered();\n        });\n    }\n\n    providersConfig;\n    isOAuthDialogOpen = false;\n\n    showOAuthDialog() {\n        if (!this.isOAuthDialogOpen) {\n            this.isOAuthDialogOpen = true;\n            this.dialogService.open('oAuthLoginDialog', this);\n        }\n    }\n\n    closeOAuthDialog() {\n        if (this.isOAuthDialogOpen) {\n            this.isOAuthDialogOpen = false;\n            this.dialogService.close('oAuthLoginDialog', this);\n        }\n    }\n\n    private start() {\n        //to fix the issue that happens only in the development mode\n        //ExpressionChangedAfterItHasBeenCheckedError\n        //fix: https://blog.angular-university.io/angular-debugging/\n        setTimeout(() => {\n            this.startApp = true;\n        });\n        setTimeout(() => {\n            this.app.dynamicComponentContainerRef = this.dynamicComponentContainerRef;\n        }, 10);\n    }\n\n    private overrideRouterOutlet(outlet: RouterOutlet) {\n        if ((outlet as any).__isPatched) {\n            return;\n        }\n        (outlet as any).__isPatched = true;\n\n        const oAttach = outlet.attach;\n        const oDetach = outlet.detach;\n\n        outlet.attach = (componentRef: any, activatedRoute: ActivatedRoute) => {\n            oAttach.call(outlet, componentRef, activatedRoute);\n            if (componentRef?.instance?.ngOnAttach) {\n                componentRef.instance.ngOnAttach();\n            }\n        };\n\n        outlet.detach = () => {\n            if (this.app?.activePage?.ngOnDetach) {\n                this.app.activePage.ngOnDetach();\n            }\n            const componentRef = oDetach.call(outlet);\n            return componentRef;\n        };\n    }\n\n    skipToAppContent(event: Event): void {\n        event.preventDefault();\n        this.retryCount = 0;\n        this.tryFocusContent();\n    }\n\n    private tryFocusContent(): void {\n        const contentEl = document.querySelector('.app-page-content') as HTMLElement;\n\n        if (contentEl) {\n            contentEl.setAttribute('tabindex', '-1'); // Ensure it's focusable\n            contentEl.focus({ preventScroll: false });\n            contentEl.scrollIntoView({ behavior: 'smooth' });\n        } else if (this.retryCount < 10) {\n            this.retryCount++;\n            setTimeout(() => this.tryFocusContent(), 100); // Retry every 100ms\n        }\n    }\n\n    ngAfterViewInit() {\n        document.documentElement.setAttribute('lang', getWmProjectProperties().defaultLanguage);\n        this.start();\n\n        if (this.enableSkipToMainContent) {\n           this.navigationEndSubscription = this.router.events\n                .pipe(filter((e) => e instanceof NavigationEnd))\n                .subscribe(() => {\n                    const el = document.getElementById('app-focus-start');\n                    if (el) {\n                        el.focus();\n                    }\n                });\n        }\n    }\n\n    ngDoCheck() {\n        $invokeWatchers();\n    }\n\n    ngOnDestroy() {\n        if (this.navigationEndSubscription){\n            this.navigationEndSubscription.unsubscribe();\n        }\n    }\n}\n\n","@if (startApp) {\n    @if(enableSkipToMainContent) {\n        <div id=\"app-focus-start\" tabindex=\"-1\"></div>\n        <a href=\"javascript:void(0);\" class=\"skip\" (click)=\"skipToAppContent($event)\">{{appLocale.LABEL_SKIP_TO_MAIN_CONTENT || 'Skip to main content'}}</a>\n    }\n    <router-outlet></router-outlet>\n  @if (isApplicationType) {\n    <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\"></div>\n  }\n  <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n  <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n    close.event=\"closeOAuthDialog()\">\n    <ng-template #dialogBody>\n      <ul class=\"list-items\">\n        @for (provider of providersConfig; track provider) {\n          <li class=\"list-item\">\n            <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n          </li>\n        }\n      </ul>\n    </ng-template>\n  </div>\n  <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n    canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n  escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n  @if (!isApplicationType) {\n    <div  wmConfirmDialog name=\"PrefabConfirmDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n      canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n    escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n  }\n  @if (!isApplicationType) {\n    <div  wmAlertDialog name=\"PrefabAlertDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n      canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n    escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n  }\n  <div wmAppExt></div>\n  <i id=\"wm-mobile-display\"></i>\n}\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\n\nimport {from, Observable, Subject, switchMap} from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { httpService, appManager } from '@wm/variables';\nimport { WmHttpRequest, WmHttpResponse } from '@wm/http';\nimport {extend} from \"lodash-es\";\nimport {_WM_APP_PROJECT} from \"@wm/core\";\n\n/**\n * This Interceptor intercepts all network calls and if a network call fails\n * due to session timeout, then it calls a function to handle session timeout.\n */\n@Injectable()\nexport class HttpCallInterceptor implements HttpInterceptor {\n\n    wmHttpRequest: any;\n    wmHttpResponse: any;\n\n    constructor() {\n        this.wmHttpRequest = new WmHttpRequest();\n        this.wmHttpResponse = new WmHttpResponse();\n    }\n\n    createSubject() {\n        return new Subject();\n    }\n\n    isAbsoluteUrl(url: string) {\n        return /^[a-z][a-z0-9+.-]*:\\/\\//i.test(url);\n    }\n\n    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        let modifiedReq;\n        let modifiedResp;\n        let isRelativeAPIUrl = false;\n        if(!this.isAbsoluteUrl(request.url)) {\n            isRelativeAPIUrl = request.url.indexOf(\"services/\") !== -1 || request.url.indexOf(\"j_spring_security_check\") !== -1 || request.url.indexOf(\"j_spring_security_logout\") !== -1 || request.url.indexOf(\"oAuthCallback.html\") !== -1 || request.url.startsWith(\"resources/\") || request.url.startsWith(\"prefabs/\");\n        }\n        if(isRelativeAPIUrl) {\n            let apiUrl= _WM_APP_PROJECT.apiUrl + request.url;\n            request = request.clone({ url: apiUrl });\n        }\n\n        return from(\n            Promise.resolve().then(() => {\n                if (appManager && appManager.appOnBeforeServiceCall) {\n                    const wmReq = this.wmHttpRequest.angularToWmRequest(request);\n                    return appManager.appOnBeforeServiceCall(wmReq);\n                }\n                return null;\n            }))\n            .pipe(\n                switchMap((receivedModifiedReq) => {\n                    if (receivedModifiedReq) {\n                        request = this.wmHttpRequest.wmToAngularRequest(receivedModifiedReq);\n                    }\n                    return next.handle(request);\n                 }),\n                tap((response: any) => {\n                        if (response && response.type === 4 && appManager &&  appManager.appOnServiceSuccess) {\n                            // Convert the angular HttpResponse to wm HttpResponse\n                            const resp = this.wmHttpResponse.angularToWmResponse(response);\n                            // trigger the common success handler present in app.js\n                            modifiedResp = appManager.appOnServiceSuccess(resp.body, resp);\n                            if (modifiedResp) {\n                                // Convert the wm HttpResponse to angular HttpResponse\n                                modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n                                extend(response, modifiedResp);\n                            }\n                        }\n                    },\n                    error => {\n                        error._401Subscriber = this.createSubject();\n                        if (httpService.isPlatformSessionTimeout(error)) {\n                            httpService.handleSessionTimeout(request, error._401Subscriber);\n                        }\n                        if (appManager && appManager.appOnServiceError) {\n                            // Convert the angular HttpResponse to wm HttpResponse\n                            const err = this.wmHttpResponse.angularToWmResponse(error);\n                            // trigger the common error handler present in app.js\n                            modifiedResp = appManager.appOnServiceError(err.message, err);\n                            if (modifiedResp) {\n                                // Convert the wm HttpResponse to angular HttpResponse\n                                modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n                                extend(error, modifiedResp);\n                            }\n                        }\n                    }\n                )\n        );\n    }\n}\n","import {\n    ComponentFactoryResolver,\n    Directive,\n    ElementRef,\n    Inject,\n    Injector,\n    OnDestroy,\n    Self,\n    ViewContainerRef\n} from '@angular/core';\n\nimport { WidgetRef } from '@wm/components/base';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { ComponentRefProvider, ComponentType } from '../types/types';\n\n@Directive({\n  standalone: true,\n    selector: '[wmPrefab][prefabname]'\n})\nexport class PrefabDirective implements OnDestroy {\n\n    constructor(\n        @Self() @Inject(WidgetRef) public componentInstance,\n        public vcRef: ViewContainerRef,\n        public elRef: ElementRef,\n        private prefabMngr: PrefabManagerService,\n        private resolver: ComponentFactoryResolver,\n        private injector: Injector,\n        private componentRefProvider: ComponentRefProvider\n    ) {\n        const prefabName = this.componentInstance.prefabName;\n\n        this.prefabMngr.loadDependencies(prefabName)\n            .then(async () => {\n                const componentFactory = await this.componentRefProvider.getComponentFactoryRef(prefabName, ComponentType.PREFAB);\n                if (componentFactory) {\n                    const instanceRef = this.vcRef.createComponent(componentFactory, 0, injector);\n                    this.elRef.nativeElement.appendChild(instanceRef.location.nativeElement);\n                }\n            });\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear ViewContainerRef to destroy dynamically created components\n        if (this.vcRef) {\n            this.vcRef.clear();\n        }\n\n        // MEMORY LEAK FIX: Clear ElementRef reference\n        this.elRef = null;\n    }\n}\n","import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrefabDirective } from '@wm/components/prefab';\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { PrefabDirective as PrefabLoader } from '../directives/prefab.directive';\n\nconst PREFAB = 'PREFAB';\n\n@Component({\n    standalone: true,\n    imports: [PrefabDirective, PrefabLoader],\n    selector: 'wm-prefab-preview',\n    template: `\n        <div class=\"prefab-preview row\">\n            <section wmPrefab name=\"prefab-preview\" prefabname=\"__self__\"></section>\n        </div>\n    `\n})\nexport class PrefabPreviewComponent implements AfterViewInit, OnDestroy {\n    private config: any;\n    private previewMode: boolean;\n\n    @ViewChild(PrefabDirective, { static: true }) prefabInstance;\n    private windowMessageListener: (e: MessageEvent) => void;\n    private readyStateSubscription: Subscription;\n\n    constructor(private prefabManager: PrefabManagerService) {\n\n        // MEMORY LEAK FIX: Store bound function reference for cleanup\n        this.windowMessageListener = (e: MessageEvent) => {\n            const context = e.data && e.data.context;\n\n            if (context !== PREFAB) {\n                return;\n            }\n\n            const action = e.data.action;\n            const payload = e.data.payload;\n\n            if (action === 'init') {\n                this.init();\n            } else if (action === 'set-property') {\n                this.setProperty(payload);\n            } else if (action === 'get-outbound-properties') {\n                this.getOutboundProps();\n            } else if (action === 'invoke-script') {\n                this.invokeScript(payload);\n            }\n        };\n        \n        window.addEventListener('message', this.windowMessageListener);\n    }\n\n    postMessage(action, payload?: any) {\n        const data = {\n            context: PREFAB,\n            action,\n            payload\n        };\n        window.top.postMessage(data, '*');\n    }\n\n    setupEventListeners() {\n        this.prefabInstance.invokeEventCallback = (eventName, locals = {}) => {\n            this.postMessage('event-log', { name: eventName, data: locals });\n        };\n    }\n\n    init() {\n        this.previewMode = true;\n\n        // MEMORY LEAK FIX: Store subscription reference\n        this.readyStateSubscription = this.prefabInstance.readyState.subscribe(\n            () => { },\n            () => { },\n            () => {\n                this.prefabManager.getConfig('__self__')\n                    .then(config => {\n                        this.config = config;\n                        this.postMessage('config', config);\n\n                        this.setupEventListeners();\n                    });\n            }\n        );\n    }\n\n    setProperty(payload: any) {\n        this.prefabInstance.widget[payload.name] = payload.value;\n    }\n\n    isOutBoundProp(info) {\n        return info.bindable === 'out-bound' || info.bindable === 'in-out-bound';\n    }\n\n    getOutboundProps() {\n        const payload = {};\n        for (const [name, info] of Object.entries(this.config.properties || {})) {\n            if (this.isOutBoundProp(info)) {\n                payload[name] = this.prefabInstance.widget[name];\n            }\n        }\n\n        this.postMessage('outbound-properties', payload);\n    }\n\n    invokeScript(payload: any) {\n        const script = `\\n return ${payload.script};`;\n\n        const fn = new Function('Prefab', script);\n\n        const retVal = fn(this.prefabInstance);\n\n        this.postMessage('method-output', { methodName: payload.methodName, output: retVal });\n    }\n\n    ngAfterViewInit() {\n        this.setupEventListeners();\n        this.postMessage('init');\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Remove window message listener\n        if (this.windowMessageListener) {\n            window.removeEventListener('message', this.windowMessageListener);\n            this.windowMessageListener = null;\n        }\n\n        // MEMORY LEAK FIX: Unsubscribe from readyState\n        if (this.readyStateSubscription) {\n            this.readyStateSubscription.unsubscribe();\n            this.readyStateSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Clear ViewChild reference\n        this.prefabInstance = null;\n\n        // MEMORY LEAK FIX: Clear config\n        this.config = null;\n    }\n}\n\n","import {\n    Compiler,\n    Component,\n    CUSTOM_ELEMENTS_SCHEMA,\n    Injectable,\n    NgModule,\n    NO_ERRORS_SCHEMA,\n    ViewEncapsulation\n} from '@angular/core';\n\nimport {App, extendProto, isDefined} from '@wm/core';\nimport {transpile} from '@wm/transpiler';\nimport {initComponentsBuildTask} from '@wm/build-task';\n\nimport {AppManagerService} from './app.manager.service';\nimport {RuntimeBaseModule} from '../runtime-base.module';\nimport {get} from \"lodash-es\";\n\ninitComponentsBuildTask();\n\nconst componentFactoryRefCache = new Map<string, any>();\n\nconst getDynamicModule = (componentRef: any) => {\n    return NgModule({\n        declarations: [componentRef],\n        imports: [\n            RuntimeBaseModule,\n        ],\n        schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n    })(class DynamicModule {});\n};\n\nconst getDynamicComponent = (\n    selector: any,\n    template: string,\n    css: string = '') => {\n    // @ts-ignore\n    return Component({\n        template,\n        styles: [css],\n        encapsulation: ViewEncapsulation.None,\n        selector\n    })(class DynamicComponent {\n        isDynamicComponent: boolean = true;\n    });\n};\n\n@Injectable()\nexport class DynamicComponentRefProviderService {\n    private counter = 1;\n\n    constructor(\n        private app: App,\n        private appManager: AppManagerService,\n        private compiler: Compiler\n    ) {}\n\n    public async getComponentFactoryRef(selector: string, markup: string, options: any = {}): Promise<any> {\n        // check in the cache.\n        let componentFactoryRef = componentFactoryRefCache.get(selector);\n\n        markup = options.transpile ? transpile(markup).markup : markup;\n        if (!componentFactoryRef || options.noCache) {\n            const componentDef = getDynamicComponent(selector, markup, options.styles);\n            const moduleDef = getDynamicModule(componentDef);\n\n            componentFactoryRef = this.compiler\n                .compileModuleAndAllComponentsSync(moduleDef)\n                .componentFactories\n                .filter(factory => factory.componentType === componentDef)[0];\n\n            componentFactoryRefCache.set(selector, componentFactoryRef);\n        }\n        return componentFactoryRef;\n    }\n\n    /**\n     * Creates the component dynamically and add it to the DOM\n     * @param target: HTML element where we need to append the created component\n     * @param markup: Template of the component\n     * @param context: Scope of the component\n     * @param options: We have options like\n                       selector: selector of the component\n                       transpile: flag for transpiling HTML. By default it is true\n                       nocache: flag for render it from cache or not. By default it is true\n     * @returns ComponentRef - the created component reference for cleanup\n     */\n    public async addComponent(target: HTMLElement, markup: string, context = {}, options: any = {}) {\n        options.transpile = isDefined(options.transpile) ? options.transpile : true;\n        options.noCache = isDefined(options.noCache) ? options.noCache : true;\n        options.selector = isDefined(options.selector) ? options.selector : 'wm-dynamic-component-' + this.counter++;\n        const componentFactoryRef = await this.getComponentFactoryRef(options.selector, markup, options);\n        const component = this.app.dynamicComponentContainerRef.createComponent(componentFactoryRef, 0, get(options, 'inj'));\n        extendProto(component.instance, context);\n        target.appendChild(component.location.nativeElement);\n        // MEMORY LEAK FIX: Return component reference so caller can destroy it\n        return component;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { noop } from '@wm/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nexport interface CanComponentDeactivate {\n    canDeactivate: (nextState?: string) => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n/*\n    canDeactivate guard for preview/WM deployment.\n    [WMS-19159] - Moved CanDeactivate() from page-wrapper.component.ts to base-page.component.ts(which is common for both preview and angular)\n    because beforepageleave is not calling for browser/tab close in angularmode\n    here component is pagewrapper so adding custom implementation for route change\n */\n@Injectable()\nexport class CanDeactivatePageGuard {\n    canDeactivate(\n        component: CanComponentDeactivate,\n        currentRoute: ActivatedRouteSnapshot,\n        currentState: RouterStateSnapshot,\n        nextState?: RouterStateSnapshot\n    ) {\n        function invokeCompDeactivate() {\n            let retVal;\n            const nextRoute = nextState ? nextState.url : undefined;\n            // Calling onBeforePageLeave method present at page level\n            retVal = this.app.activePage && this.app.activePage.onBeforePageLeave(nextRoute);\n            // Calling onBeforePageLeave method present at app level only if page level method return true\n            // or if there is no page level method\n            if (retVal !== false) {\n                retVal = (this.app.onBeforePageLeave || noop)(this.app.activePageName, this.app.activePage, nextRoute);\n            }\n            return retVal === undefined ? true : retVal;\n        }\n        return invokeCompDeactivate.apply(component);\n    }\n}\n\n//  [WMS-18847] - canDeactivate guard for angular deployment.\n@Injectable()\nexport class CanDeactivateNgPageGuard {\n    canDeactivate(component: CanComponentDeactivate,\n        currentRoute?: ActivatedRouteSnapshot,\n        currentState?: RouterStateSnapshot,\n        nextState?: RouterStateSnapshot) {\n        const nextRoute = nextState ? nextState.url : undefined;\n        return component.canDeactivate ? component.canDeactivate(nextRoute) : true;\n    }\n}\n","import { APP_INITIALIZER, LOCALE_ID, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { ɵSharedStylesHost } from '@angular/platform-browser';\nimport { ɵDomRendererFactory2 } from \"@angular/platform-browser\";\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ToastrModule } from 'ngx-toastr';\nimport {\n    _WM_APP_PROJECT,\n    $parseExpr,\n    AbstractI18nService,\n    AbstractNavigationService,\n    AbstractSpinnerService,\n    AbstractToasterService,\n    App,\n    AppDefaults,\n    DynamicComponentRefProvider,\n    isObject,\n    isIphone,\n    isIpod,\n    isIpad,\n    Viewport,\n    AbstractDialogService\n} from '@wm/core';\nimport { DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\nimport { ConfirmDialogComponent } from '@wm/components/dialogs/confirm-dialog';\nimport { DialogComponent } from '@wm/components/dialogs/design-dialog';\nimport { PrefabDirective, PrefabContainerDirective } from '@wm/components/prefab';\nimport { HttpServiceImpl } from '@wm/http';\nimport { VariablesService, MetadataService } from '@wm/variables';\nimport { OAuthService } from '@wm/oAuth';\n\nimport { AccessrolesDirective } from './directives/accessroles.directive';\nimport { AppSpinnerComponent } from './components/app-spinner.component';\nimport { CustomToasterComponent } from './components/custom-toaster.component';\nimport { EmptyPageComponent } from './components/empty-component/empty-page.component';\nimport { AppRef } from './services/app.service';\nimport { ToasterServiceImpl } from './services/toaster.service';\nimport { I18nServiceImpl } from './services/i18n.service';\nimport { SpinnerServiceImpl } from './services/spinner.service';\nimport { NavigationServiceImpl } from './services/navigation.service';\nimport { PipeService } from \"./services/pipe.service\";\nimport { AppDefaultsService } from './services/app-defaults.service';\nimport { AppManagerService } from './services/app.manager.service';\nimport { PrefabManagerService } from './services/prefab-manager.service';\nimport { AuthGuard } from './guards/auth.guard';\nimport { RoleGuard } from './guards/role.guard';\nimport { PageNotFoundGuard } from './guards/page-not-found.guard';\nimport { AppJSResolve } from './resolves/app-js.resolve';\nimport { AppExtensionJSResolve } from './resolves/app-extension.resolve';\nimport { I18nResolve } from './resolves/i18n.resolve';\nimport { AppComponent } from './components/app-component/app.component';\nimport { HttpCallInterceptor } from './services/http-interceptor.services';\nimport { PrefabPreviewComponent } from './components/prefab-preview.component';\nimport { DynamicComponentRefProviderService } from './services/dynamic-component-ref-provider.service';\nimport { CanDeactivatePageGuard } from './guards/can-deactivate-page.guard';\nimport { MAX_CACHE_AGE, MAX_CACHE_SIZE } from './util/wm-route-reuse-strategy';\n\n//angular overrides\nimport { WMDomSharedStylesHost } from \"./overrides/wm_shared_styles_host\";\nimport { WMDomRendererFactory2 } from \"./overrides/wm_dom_renderer\";\nimport {\n    PageDirective,\n    LayoutDirective,\n    ContentComponent,\n    PageContentComponent,\n    SpaPageDirective,\n    RouterOutletDirective\n} from \"@wm/components/page\";\nimport { FooterDirective } from \"@wm/components/page/footer\";\nimport { HeaderComponent } from \"@wm/components/page/header\";\nimport { LeftPanelDirective } from \"@wm/components/page/left-panel\";\nimport { RightPanelDirective } from \"@wm/components/page/right-panel\";\nimport { TopNavDirective } from \"@wm/components/page/top-nav\";\n\nimport { AnchorComponent } from '@wm/components/basic/anchor';\nimport { AudioComponent } from '@wm/components/basic/audio';\nimport { HtmlDirective } from '@wm/components/basic/html';\nimport { IconComponent } from '@wm/components/basic/icon';\nimport { IframeComponent } from '@wm/components/basic/iframe';\nimport { LabelDirective } from '@wm/components/basic/label';\nimport { PictureDirective } from '@wm/components/basic/picture';\nimport { SpinnerComponent } from '@wm/components/basic/spinner';\nimport { VideoComponent } from '@wm/components/basic/video';\n\nimport { ProgressBarComponent } from \"@wm/components/basic/progress/progress-bar\";\nimport { ProgressCircleComponent } from \"@wm/components/basic/progress/progress-circle\";\nimport { RichTextEditorComponent } from \"@wm/components/basic/rich-text-editor\";\nimport { SearchComponent, ScrollableDirective } from \"@wm/components/basic/search\";\nimport { TreeComponent } from \"@wm/components/basic/tree\";\nimport { CalendarComponent } from \"@wm/components/input/calendar\";\nimport { ChipsComponent } from \"@wm/components/input/chips\";\nimport { ColorPickerComponent } from \"@wm/components/input/color-picker\";\nimport { CurrencyComponent } from \"@wm/components/input/currency\";\n\nimport { DateComponent } from '@wm/components/input/epoch/date';\nimport { DatetimeComponent } from '@wm/components/input/epoch/date-time';\nimport { TimeComponent } from '@wm/components/input/epoch/time';\nimport { DateTimePickerComponent } from '@wm/components/input/epoch/date-time-picker';\nimport { TimePickerComponent } from '@wm/components/input/epoch/date-time-picker';\nimport { PickerComponent } from '@wm/components/input/epoch/picker';\nimport { PickerGroupComponent } from '@wm/components/input/epoch/picker';\nimport { FileUploadComponent } from \"@wm/components/input/file-upload\";\nimport { ButtonComponent } from \"@wm/components/input/button\";\nimport { ButtonGroupDirective } from \"@wm/components/input/button-group\";\nimport { CaptionPositionDirective } from \"@wm/components/input/caption-position\";\nimport { CheckboxComponent } from \"@wm/components/input/checkbox\";\nimport { CheckboxsetComponent } from \"@wm/components/input/checkboxset\";\nimport { CompositeDirective } from \"@wm/components/input/composite\";\nimport { NumberComponent } from \"@wm/components/input/number\";\nimport { RadiosetComponent } from \"@wm/components/input/radioset\";\nimport { SelectComponent } from \"@wm/components/input/select\";\nimport { SwitchComponent } from \"@wm/components/input/switch\";\nimport { InputCalendarComponent } from \"@wm/components/input/text\";\nimport { InputColorComponent } from \"@wm/components/input/text\";\nimport { InputEmailComponent } from \"@wm/components/input/text\";\nimport { InputNumberComponent } from \"@wm/components/input/text\";\nimport { InputTextComponent } from \"@wm/components/input/text\";\nimport { TextareaComponent } from \"@wm/components/input/textarea\";\n\nimport { RatingComponent } from \"@wm/components/input/rating\";\nimport { SliderComponent } from \"@wm/components/input/slider\";\nimport {\n    CardComponent,\n    CardActionsDirective,\n    CardContentComponent,\n    CardFooterDirective\n} from \"@wm/components/data/card\";\nimport {\n    FormComponent,\n    FormWidgetDirective,\n    FormActionDirective,\n    FormFieldDirective,\n    LiveActionsDirective,\n    DependsonDirective,\n    LiveFilterDirective,\n    LiveFormDirective\n} from \"@wm/components/data/form\";\nimport { ListComponent, ListItemDirective } from \"@wm/components/data/list\";\nimport { LiveTableComponent } from \"@wm/components/data/live-table\";\nimport { PaginationComponent } from \"@wm/components/data/pagination\";\nimport {\n    TableComponent,\n    TableCUDDirective,\n    TableFilterSortDirective,\n    TableActionDirective,\n    TableColumnDirective,\n    TableColumnGroupDirective,\n    TableRowDirective,\n    TableRowActionDirective\n} from \"@wm/components/data/table\";\nimport { ChartComponent } from \"@wm/components/chart\";\nimport { AccordionPaneComponent, AccordionDirective } from \"@wm/components/containers/accordion\";\nimport { LinearLayoutDirective, LinearLayoutItemDirective } from \"@wm/components/containers/linear-layout\";\nimport { LayoutgridDirective, LayoutGridRowDirective, LayoutGridColumnDirective } from \"@wm/components/containers/layout-grid\";\nimport { PanelComponent } from \"@wm/components/containers/panel\";\nimport { TabPaneComponent, TabsComponent } from \"@wm/components/containers/tabs\";\nimport { TileDirective } from \"@wm/components/containers/tile\";\nimport { WizardActionDirective, WizardStepComponent, WizardComponent } from \"@wm/components/containers/wizard\";\nimport { AlertDialogComponent } from \"@wm/components/dialogs/alert-dialog\";\nimport { IframeDialogComponent } from \"@wm/components/dialogs/iframe-dialog\";\nimport { LoginDialogDirective } from \"@wm/components/dialogs/login-dialog\";\nimport { PartialDialogComponent } from \"@wm/components/dialogs/partial-dialog\";\nimport { BreadcrumbComponent } from \"@wm/components/navigation/breadcrumb\";\nimport { MenuComponent, MenuDropdownComponent, MenuDropdownItemComponent, NavigationControlDirective, NavComponent, NavItemDirective } from \"@wm/components/navigation/menu\";\nimport { NavbarComponent } from \"@wm/components/navigation/navbar\";\nimport { PopoverComponent } from \"@wm/components/navigation/popover\";\nimport { CarouselDirective, CarouselTemplateDirective } from \"@wm/components/advanced/carousel\";\nimport { LoginComponent } from \"@wm/components/advanced/login\";\nimport { MarqueeDirective } from \"@wm/components/advanced/marquee\";\nimport { CustomWidgetDirective, CustomWidgetContainerDirective } from \"@wm/components/advanced/custom\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { TimepickerModule as ngxTimepickerModule } from \"ngx-bootstrap/timepicker\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { PaginationModule as ngxPaginationModule } from \"ngx-bootstrap/pagination\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CarouselModule as ngxCarouselModule } from \"ngx-bootstrap/carousel\";\nimport { PopoverModule as ngxPopoverModule } from \"ngx-bootstrap/popover\";\nimport { NgCircleProgressModule } from \"ng-circle-progress\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\nimport { SecurityService } from '@wm/security';\nimport { PrefabDirective as PrefabLoader } from './directives/prefab.directive';\nimport { ContainerDirective, CustomPipe, DialogServiceImpl, FileExtensionFromMimePipe, FileIconClassPipe, FileSizePipe, FilterPipe, ImagePipe, ItemTemplateDirective, LazyLoadDirective, MessageComponent, NumberToStringPipe, PartialContainerDirective, PartialDirective, PartialParamDirective, PartialParamHandlerDirective, PrefixPipe, RedrawableDirective, RepeatTemplateDirective, SanitizePipe, ShowInDeviceDirective, StateClassPipe, StringToNumberPipe, SuffixPipe, TextContentDirective, TimeFromNowPipe, ToCurrencyPipe, ToDatePipe, ToNumberPipe, TrailingZeroDecimalPipe, TrustAsPipe, CustomWidgetContainerDirective  as BaseCustomWidgetContainerDirective} from '@wm/components/base';\n\nconst initializeProjectDetails = () => {\n    let cdnUrl = document.querySelector('[name=\"deployUrl\"]') && document.querySelector('[name=\"deployUrl\"]').getAttribute('content');\n    _WM_APP_PROJECT.isPreview = cdnUrl ? false : true;\n    const apiUrl = document.querySelector('[name=\"apiUrl\"]') && document.querySelector('[name=\"apiUrl\"]').getAttribute('content');\n    //for preview\n    if (!cdnUrl) {\n        cdnUrl = document.querySelector('[name=\"cdnUrl\"]') && document.querySelector('[name=\"cdnUrl\"]').getAttribute('content');\n    }\n    _WM_APP_PROJECT.id = location.href.split('/')[3];\n    // Integration with third party apps like in SSPA/WebComponents, this meta tag with cdnUrl will not be there then default it to ng-bundle/\n    _WM_APP_PROJECT.apiUrl = apiUrl || './';\n    _WM_APP_PROJECT.cdnUrl = cdnUrl || 'ng-bundle/';\n    _WM_APP_PROJECT.ngDest = 'ng-bundle/';\n    try {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        //@ts-ignore\n        __webpack_require__.p = __webpack_public_path__ = cdnUrl;\n    } catch (e) {\n        //for app preview there is no webpack. Don't do anything.\n    }\n};\n\nenum OS {\n    IOS = 'ios',\n    ANDROID = 'android'\n}\n\nexport function getSettingProvider(key: string, defaultValue: unknown) {\n    return {\n        provide: key,\n        useValue: defaultValue\n    };\n}\n\nexport function InitializeApp(I18nService, AppJSResolve) {\n    return async () => {\n        initializeProjectDetails();\n        await AppJSResolve.resolve();\n        return I18nService.loadDefaultLocale();\n    };\n}\n\nexport function setAngularLocale(I18nService) {\n    initializeProjectDetails();\n    return I18nService.deduceAppLocale();\n}\n\nconst definitions = [\n    AccessrolesDirective,\n    AppSpinnerComponent,\n    CustomToasterComponent,\n    AppComponent,\n    PrefabLoader,\n    PrefabPreviewComponent,\n    EmptyPageComponent\n];\n\nexport const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [\n    ConfirmDialogComponent,\n    DialogComponent,\n    DialogBodyDirective,\n    DialogFooterDirective,\n    DialogHeaderComponent,\n\n    // Components Module changes\n    ContainerDirective,\n    ItemTemplateDirective,\n    RepeatTemplateDirective,\n    LazyLoadDirective,\n    MessageComponent,\n    PartialDirective,\n    PartialParamHandlerDirective,\n    PartialParamDirective,\n    PartialContainerDirective,\n    BaseCustomWidgetContainerDirective,\n    RedrawableDirective,\n    ShowInDeviceDirective,\n    TextContentDirective,\n\n    // Pipes\n    ToDatePipe,\n    FileIconClassPipe,\n    FileExtensionFromMimePipe,\n    FilterPipe,\n    FileSizePipe,\n    ToNumberPipe,\n    ToCurrencyPipe,\n    PrefixPipe,\n    SuffixPipe,\n    TimeFromNowPipe,\n    NumberToStringPipe,\n    StateClassPipe,\n    StringToNumberPipe,\n    TrailingZeroDecimalPipe,\n    TrustAsPipe,\n    ImagePipe,\n    CustomPipe,\n    SanitizePipe,\n\n    // NGX Bootstrap\n    BsDatepickerModule,\n    ngxTimepickerModule,\n    BsDropdownModule,\n    ngxPaginationModule,\n    TypeaheadModule,\n    ProgressbarModule,\n    ngxCarouselModule,\n    ngxPopoverModule,\n    NgCircleProgressModule,\n    TooltipModule,\n\n    // Basic widgets\n    AnchorComponent,\n    AudioComponent,\n    HtmlDirective,\n    IconComponent,\n    IframeComponent,\n    LabelDirective,\n    PictureDirective,\n    SpinnerComponent,\n    VideoComponent,\n    ProgressBarComponent,\n    ProgressCircleComponent,\n    RichTextEditorComponent,\n    SearchComponent, ScrollableDirective,\n    TreeComponent,\n\n    // Input\n    CalendarComponent,\n    ChipsComponent,\n    ColorPickerComponent,\n    CurrencyComponent,\n    DateComponent,\n    DatetimeComponent,\n    TimeComponent,\n    DateTimePickerComponent,\n    TimePickerComponent,\n    PickerComponent,\n    PickerGroupComponent,\n    FileUploadComponent,\n    ButtonComponent,\n    ButtonGroupDirective,\n    CaptionPositionDirective,\n    CheckboxComponent,\n    CheckboxsetComponent,\n    CompositeDirective,\n    NumberComponent,\n    RadiosetComponent,\n    SelectComponent,\n    SwitchComponent,\n    InputCalendarComponent,\n    InputColorComponent,\n    InputEmailComponent,\n    InputNumberComponent,\n    InputTextComponent,\n    TextareaComponent,\n    RatingComponent,\n    SliderComponent,\n\n    // Data\n    CardComponent,\n    CardActionsDirective,\n    CardContentComponent,\n    CardFooterDirective,\n    FormComponent,\n    FormWidgetDirective,\n    FormActionDirective,\n    FormFieldDirective,\n    LiveActionsDirective,\n    DependsonDirective,\n    LiveFilterDirective,\n    LiveFormDirective,\n    ListComponent, ListItemDirective,\n    LiveTableComponent,\n    PaginationComponent,\n    TableComponent,\n    TableCUDDirective,\n    TableFilterSortDirective,\n    TableActionDirective,\n    TableColumnDirective,\n    TableColumnGroupDirective,\n    TableRowDirective,\n    TableRowActionDirective,\n\n    // chart\n    ChartComponent,\n\n    // container modules\n    AccordionPaneComponent, AccordionDirective,\n    LinearLayoutDirective, LinearLayoutItemDirective,\n    LayoutgridDirective, LayoutGridRowDirective, LayoutGridColumnDirective,\n    PanelComponent,\n    TabPaneComponent, TabsComponent,\n    TileDirective,\n    WizardActionDirective, WizardStepComponent, WizardComponent,\n\n    // dialogs\n    AlertDialogComponent,\n    IframeDialogComponent,\n    LoginDialogDirective,\n    PartialDialogComponent,\n\n    // navigation\n    BreadcrumbComponent,\n    MenuComponent, MenuDropdownComponent, MenuDropdownItemComponent, NavigationControlDirective, NavComponent, NavItemDirective,\n    NavbarComponent,\n    PopoverComponent,\n\n    // Advanced\n    CarouselDirective, CarouselTemplateDirective,\n    LoginComponent,\n    MarqueeDirective,\n    CustomWidgetDirective, CustomWidgetContainerDirective,\n\n    PageDirective,\n    LayoutDirective,\n    ContentComponent,\n    PageContentComponent,\n    SpaPageDirective,\n    RouterOutletDirective,\n    FooterDirective,\n    HeaderComponent,\n    LeftPanelDirective,\n    RightPanelDirective,\n    TopNavDirective,\n    PrefabDirective, PrefabContainerDirective\n];\n\n// setting parseExpr as exprEvaluator for swipeAnimation\n($.fn as any).swipeAnimation.expressionEvaluator = $parseExpr;\n\n@NgModule({\n    imports: [\n        CommonModule,\n        RouterModule,\n        HttpClientModule,\n        FormsModule,\n        ReactiveFormsModule,\n        ...definitions,\n        ToastrModule,\n        // CoreModule,\n        ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n    ],\n    exports: [\n        FormsModule,\n        ReactiveFormsModule,\n        PrefabLoader,\n        AccessrolesDirective,\n        CommonModule,\n        RouterModule,\n        HttpClientModule,\n        ToastrModule,\n        // CoreModule,\n        ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n    ],\n    providers: [\n        { provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost },\n        { provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2 },\n        { provide: AbstractDialogService, useClass: DialogServiceImpl },\n        ToDatePipe,\n        FilterPipe,\n        TrailingZeroDecimalPipe,\n        TrustAsPipe,\n        ImagePipe,\n        CustomPipe,\n        SanitizePipe,\n        Location,\n        SecurityService,\n        HttpServiceImpl,\n    ]\n})\nexport class RuntimeBaseModule {\n\n    // this polyfill is to add support for CustomEvent in IE11\n    static addCustomEventPolyfill() {\n        if (typeof window['CustomEvent'] === 'function') {\n            return false;\n        }\n        // Adding type as any to avoid error TS2322\n        const CustomEvent: any = (event, params) => {\n            params = params || { bubbles: false, cancelable: false, detail: null };\n            const evt = document.createEvent('CustomEvent');\n            evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n            return evt;\n        };\n\n        CustomEvent.prototype = window['Event'].prototype;\n        // ### ANGULAR9TODO ###\n        window['CustomEvent'] = CustomEvent;\n    }\n\n    static forRoot(): ModuleWithProviders<RuntimeBaseModule> {\n        return {\n            ngModule: RuntimeBaseModule,\n            providers: [\n                { provide: App, useClass: AppRef },\n                { provide: AbstractToasterService, useClass: ToasterServiceImpl },\n                { provide: AbstractI18nService, useClass: I18nServiceImpl },\n                { provide: AbstractSpinnerService, useClass: SpinnerServiceImpl },\n                { provide: AbstractNavigationService, useClass: NavigationServiceImpl },\n                { provide: AppDefaults, useClass: AppDefaultsService },\n                { provide: DynamicComponentRefProvider, useClass: DynamicComponentRefProviderService },\n                {\n                    provide: APP_INITIALIZER,\n                    useFactory: InitializeApp,\n                    deps: [AbstractI18nService, AppJSResolve],\n                    multi: true\n                },\n                {\n                    provide: LOCALE_ID,\n                    useFactory: setAngularLocale,\n                    deps: [AbstractI18nService]\n                },\n                {\n                    provide: HTTP_INTERCEPTORS,\n                    useClass: HttpCallInterceptor,\n                    multi: true\n                },\n                PipeService,\n                DecimalPipe,\n                DatePipe,\n                AppManagerService,\n                PrefabManagerService,\n                AuthGuard,\n                RoleGuard,\n                PageNotFoundGuard,\n                CanDeactivatePageGuard,\n                AppJSResolve,\n                AppExtensionJSResolve,\n                I18nResolve,\n                SecurityService,\n                OAuthService,\n                VariablesService,\n                MetadataService,\n                getSettingProvider(MAX_CACHE_SIZE, 10),\n                getSettingProvider(MAX_CACHE_AGE, 30 * 60)\n            ]\n        };\n    }\n\n    constructor(\n        app: App,\n        viewport: Viewport) {\n        RuntimeBaseModule.addCustomEventPolyfill();\n\n        this.getDeviceDetails().then(details => {\n            app.selectedViewPort = {\n                os: details.os,\n                category: details.selectedDeviceCategory\n            };\n            viewport.update(details);\n            app.notify('on-viewport-details', details.os);\n        });\n    }\n\n\n    private getDeviceDetails(): Promise<any> {\n        return new Promise<any>(function (resolve, reject) {\n            const msgContent = { key: 'on-load' };\n            // Notify preview window that application is ready. Otherwise, identify the OS.\n            if (window.top !== window) {\n                window.top.postMessage(msgContent, '*');\n                // This is for preview page\n                window.onmessage = function (msg) {\n                    const data = msg.data;\n                    if (isObject(data) && data.key === 'switch-device') {\n                        resolve(data.device);\n                    }\n                };\n            } else if (isIphone() || isIpod() || isIpad()) {\n                resolve({ 'os': OS.IOS });\n            } else {\n                resolve({ 'os': OS.ANDROID });\n            }\n        });\n    }\n}\n\nexport const WM_MODULES_FOR_ROOT = [\n    // RuntimeBaseModule.forRoot()\n];\n","import { Injectable } from '@angular/core';\n\nimport { AppManagerService } from '../services/app.manager.service';\nimport { App } from '@wm/core';\n\n@Injectable()\nexport class AppBeforeLoadResolve {\n\n    constructor(\n        private appManager: AppManagerService,\n        private app: App\n    ) { }\n\n    resolve() {\n        this.appManager.initAppModes();\n        return this.appManager.beforeAppReady();\n    }\n}","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\nimport { AppVariablesProvider } from '../types/types';\n\nlet appVariablesLoaded = false;\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AppVariablesResolve {\n\n    constructor(\n        private appManager: AppManagerService,\n        private appVariablesProvider: AppVariablesProvider\n    ) {}\n\n    resolve() {\n        // execute app.js\n        if (appVariablesLoaded) {\n            return true;\n        }\n\n        return Promise.all([this.appManager.loadSecurityConfig(), this.appManager.loadMetadata(), this.appVariablesProvider.getAppVariables()])\n            .then((data) => this.appManager.loadAppVariables(data[2]))\n            .then(() => appVariablesLoaded = true);\n    }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet metadataResolved = false;\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class MetadataResolve {\n    constructor(private appManager: AppManagerService) {}\n\n    resolve() {\n        return metadataResolved || this.appManager.loadMetadata().then(() => metadataResolved = true);\n    }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { getWmProjectProperties } from '@wm/core';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SecurityConfigResolve {\n    loaded: boolean;\n\n    constructor(private appManager: AppManagerService) {\n            // if the project type is PREFAB, setting this flag will not trigger security/info call\n            this.loaded = this.appManager.isPrefabType() || this.appManager.isTemplateBundleType() || !getWmProjectProperties().securityEnabled;\n    }\n\n    resolve() {\n        return this.loaded || this.appManager.loadSecurityConfig().then(() => {\n            this.loaded = true;\n        });\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i1","i2.PrefabConfigProvider","noop","getDOM","ɵSharedStylesHost","i4.AppManagerService","i2","i1.PipeProvider","moment","i2.AppManagerService","i2.AuthGuard","appJsLoaded","i2.AppJSProvider","i1.AppManagerService","i2.AppExtensionProvider","filter","i4","i5.AppManagerService","i1.PrefabManagerService","i2.ComponentRefProvider","PrefabDirective","PrefabLoader","BaseCustomWidgetContainerDirective","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","CustomWidgetContainerDirective","isObject","ɵDomRendererFactory2","i2.AppVariablesProvider"],"mappings":"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"}