@wavemaker/app-ng-runtime 12.0.0-next.45055 → 12.0.0-next.45058
Sign up to get free protection for your applications and to get access to all the features.
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -0
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +3 -0
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +5 -2
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +4 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +19 -2
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +20 -3
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +19 -2
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +6 -2
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +9 -5
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +8 -4
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -2
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +9 -5
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +8 -4
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
- app-ng-runtime/core/bundles/index.umd.js +12 -0
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +9 -1
- app-ng-runtime/core/fesm2022/index.mjs +11 -1
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +2 -0
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +9 -5
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +2 -1
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +9 -7
- app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/types/types.mjs +3 -1
- app-ng-runtime/runtime/base/fesm2022/index.mjs +9 -6
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/types/types.d.ts +3 -0
- app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +8 -0
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +22 -4
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +4 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +22 -0
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +25 -5
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/custom-widgets-m3/src/checkbox_set/checkbox_set.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/checkbox_set/checkbox_set.js +38 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/checkbox_set/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/checkbox_set/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/discrete_slider/discrete_slider.d.ts +10 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/discrete_slider/discrete_slider.js +171 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/discrete_slider/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/discrete_slider/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/divider/divider.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/divider/divider.js +28 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/divider/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/divider/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/icon_button/icon_button.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/icon_button/icon_button.js +24 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/icon_button/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/icon_button/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/input_chip.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/input_chip.js +34 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/input_chip.variables.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/input_chip.variables.js +1 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/input_chip/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/payee_list/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/payee_list/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/payee_list/payee_list.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/payee_list/payee_list.js +19 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/progressbar/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/progressbar/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/progressbar/progressbar.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/progressbar/progressbar.js +52 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/radio_set/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/radio_set/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/radio_set/radio_set.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/radio_set/radio_set.js +35 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/slider/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/slider/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/slider/slider.d.ts +11 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/slider/slider.js +121 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/switch_button/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/switch_button/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/switch_button/switch_button.d.ts +0 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/switch_button/switch_button.js +33 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/textfield/page.min.d.ts +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/textfield/page.min.js +7 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/textfield/textfield.d.ts +4 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/textfield/textfield.js +65 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/widget-registry.d.ts +6 -0
- app-ng-runtime/scripts/custom-widgets-m3/src/widget-registry.js +68 -0
@@ -1 +1 @@
|
|
1
|
-
{"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/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/directives/prefab.directive.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.html","../../../../projects/runtime-base/src/components/app-component/app.component.ts","../../../../projects/runtime-base/src/services/http-interceptor.services.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/overrides/wm_shared_styles_host.ts","../../../../projects/runtime-base/src/overrides/wm_dom_renderer.ts","../../../../projects/runtime-base/src/runtime-base.module.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 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 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n App,\n fetchContent,\n isDefined,\n triggerFn,\n $appDigest\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\nimport { CONSTANTS, $rootScope, routerService, MetadataService, VariablesService } from '@wm/variables';\nimport {extend, forEach, get, isEmpty, isObject, isUndefined, merge, trim} from \"lodash-es\";\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@Injectable()\nexport class AppManagerService {\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\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 this.$http.registerOnSessionTimeout(this.handle401.bind(this));\n\n this.$variables.registerDependency('appManager', this);\n\n 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.$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.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {\n this.$app.clearPageCache();\n }));\n 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) {\n const SSO_URL = 'services/security/ssologin',\n PREVIEW_WINDOW_NAME = 'WM_PREVIEW_WINDOW';\n let page,\n pageParams;\n\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);\n\n if (CONSTANTS.hasCordova) {\n // get previously loggedInUser name (if any)\n const lastLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n this.$security.authInBrowser()\n .then(() => this.reloadAppData())\n .then(() => {\n const presentLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n if (presentLoggedInUsername && presentLoggedInUsername === lastLoggedInUsername) {\n routerService.navigate([page]);\n } else {\n routerService.navigate([`/`]);\n }\n });\n } else {\n page = page ? '?redirectPage=' + encodeURIComponent(page) : '';\n pageParams = this.$security.getQueryString(this.$security.getRedirectedRouteQueryParams());\n pageParams = pageParams ? '?' + pageParams : '';\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 + pageParams;\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 /**\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);\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 LoginVariableService.\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);\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();\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 * 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 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","export const isPrefabInPreview = (prefabName: string) => prefabName === '__self__';\n\nexport const getPrefabBaseUrl = (prefabName: string) => isPrefabInPreview(prefabName) ? '.' : `app/prefabs/${prefabName}`;\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","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).replace('//', '/');\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 } 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\n constructor() {}\n\n init() {\n // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.isViewInitialized = true;\n this.isReady();\n });\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 {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy,\n} from '@angular/router';\n\nimport { LRUCache } from '@wm/core';\nimport {isNil} from \"lodash-es\";\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 === '') {\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 isMobileApp,\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 if (isMobileApp() && BasePageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BasePageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BasePageComponent.lastPageSnapShot);\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() {\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);\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 //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';\n\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, RadiosetComponent} from \"@wm/components/input\";\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 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 abstract getExpressions();\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.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 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 }\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 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 window['resourceCache'].get(`./custom-widgets/${this.customWidgetName}/page.min.json`).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 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 // user overrides this\n onPropertyChange() { }\n\n onReady(params?) {\n }\n}\n","import { AfterViewInit, Injector, inject, OnDestroy, ViewChild, Directive } 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 AfterViewInit, 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) prefabContainerDirective;\n scriptLoaderService: ScriptLoaderService;\n compileContent = false;\n pageDirective: PageDirective | SpaPageDirective;\n Viewport: Viewport;\n spa: boolean;\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 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\n ngAfterViewInit(): void {\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 ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n // user overrides this\n onPropertyChange() {}\n\n onReady() {}\n\n}\n","import { AfterViewInit, Injector, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { PageDirective } from \"@wm/components/page\";\nimport { registerFnByExpr, App } 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) => {\n oAttach.call(this.routerOutlet, componentRef);\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 }\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","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, Subscription} from 'rxjs';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n addClass,\n App,\n isMobileApp,\n muteWatchers,\n noop,\n removeClass,\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 if (isMobileApp() && BaseSpaPageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BaseSpaPageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BaseSpaPageComponent.lastPageSnapShot);\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() {\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);\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, 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 selector: '[accessroles]'\n})\nexport class AccessrolesDirective {\n\n private processed = false;\n private readonly isUserAuthenticated;\n private readonly userRoles;\n private readonly context = {};\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 = /,/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","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n template: `\n <div class=\"app-spinner\" [ngClass]=\"classname\" *ngIf=\"show\">\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 <p *ngFor=\"let value of spinnermessages\" [textContent]=\"value\"></p>\n </div>\n </div>\n </div>\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 { 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\";\n\ndeclare const $;\n\n@Component({\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 <div *ngFor=\"let param of params | keyvalue\" wmParam hidden\n [name]=\"param.key\" [value]=\"param.value\"></div>\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 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 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 this.router.navigate([page]);\n });\n } else {\n this.router.navigate([getWmProjectProperties().homePage]);\n this.appManger.postAppTypeInfo();\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\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 selector: '[wmPrefab][prefabname]'\n})\nexport class PrefabDirective {\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","import { Compiler, Injectable, Injector, ChangeDetectorRef, InjectionToken, KeyValueDiffers, Pipe, Inject } from '@angular/core';\nimport {\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n NgLocalization\n} from '@angular/common'\nimport {\n SuffixPipe,\n ToDatePipe,\n FileIconClassPipe,\n FileExtensionFromMimePipe,\n FilterPipe,\n FileSizePipe,\n ToNumberPipe,\n ToCurrencyPipe,\n PrefixPipe,\n TimeFromNowPipe,\n NumberToStringPipe,\n StateClassPipe,\n StringToNumberPipe,\n CustomPipe,\n TrustAsPipe,\n SanitizePipe\n} from '@wm/components/base';\nimport { getSessionStorageItem, CustomPipeManager, AbstractI18nService } 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), undefined, 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(CustomPipeManager)]),\n this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),\n this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer])\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}\n","import { Injectable } from \"@angular/core\";\nimport { PipeProvider } from \"./pipe-provider.service\";\nimport { App } from \"@wm/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class PipeService {\n constructor(private pipeProvider: PipeProvider,\n private $app: App) {\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 } 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, isString} from \"lodash-es\";\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 {\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\n targetPlatform: string;\n\n appLocale: 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\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\n 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 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","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 isMobileApp,\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\ndeclare const moment;\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 this.loadResource(`${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 const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n moment.locale(this.defaultSupportedLocale);\n return;\n }\n const path = _cdnUrl + `locales/moment/${momentLocale}.js`;\n loadScripts([path], true).then(()=>{\n moment.locale(this.selectedLocale);\n\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 = 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\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 loadCalendarLocaleBundle(calendarLocale, force = false) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n let path: string;\n if (calendarLocale) {\n path = _cdnUrl + `locales/fullcalendar/${calendarLocale}.js`;\n } else {\n return Promise.resolve();\n }\n\n // return in case of mobile app or if selected locale is default supported locale.\n if (!force && (isMobile() || isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {\n this.bundleLoaded.fullCalendar = true;\n return;\n }\n\n // Call the script. In script, moment defines the loaded locale\n return loadScripts([path], true);\n }\n\n protected loadMomentTimeZoneBundle(locale, compInstance?) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;\n loadScripts([path], true).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.tz.names(), (timezoneName) => {\n return locale === moment.tz(timezoneName).format('Z');\n });\n }\n this.formatsByLocale.timezone = locale;\n const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;\n Object.assign(localeData, localeObj);\n resolve();\n }, resolve);\n });\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.loadCalendarLocaleBundle(libLocale.fullCalendar)?.then(() => {\n this.bundleLoaded.fullCalendar = true;\n this.notifyLocaleChanged();\n });\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 this.loadMomentTimeZoneBundle(locale, compInstance);\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 * for cordova, check for language ignoring the locale\n * As the navigator.languages always returns the language with locale (en-us)\n * The supportedLanguages from BE doesn't include locale (en) which leads to mismatch\n */\n if (CONSTANTS.hasCordova) {\n let supportedLang = [];\n forEach(_acceptLang, function (lang) {\n let matchedLang = find(_supportedLang, (val) => lang === val) || find(_supportedLang, (val) => lang.startsWith(val));\n if (matchedLang) {\n supportedLang.push(matchedLang);\n }\n })\n _appSupportedLang = supportedLang[0];\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 if (CONSTANTS.hasCordova) {\n languages = navigator.languages || [navigator.language];\n } else {\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 }\n return map(languages, toLower);\n }\n\n public initCalendarLocale(): Promise<any> {\n if (this.selectedLocale !== 'en') {\n return this.loadCalendarLocaleBundle(this.selectedLocale, true);\n }\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 } 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 {\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","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.notifyApp(\n this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied',\n 'error'\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","<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\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 <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\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 <div *ngIf=\"!isApplicationType\" 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 <div *ngIf=\"!isApplicationType\" 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 <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n","import { ApplicationRef, Component, DoCheck, ElementRef, NgZone, ViewEncapsulation, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterOutlet } from '@angular/router';\n\nimport { setTheme } from 'ngx-bootstrap/utils';\n\nimport { CustomIconsLoaderService, noop } from '@wm/core';\nimport { $invokeWatchers, AbstractDialogService, AbstractSpinnerService, getWmProjectProperties, hasCordova, setAppRef, setNgZone, setPipeProvider, App, addClass, removeClass } from '@wm/core';\nimport { OAuthService } from '@wm/oAuth';\nimport { AppManagerService } from '../../services/app.manager.service';\nimport { PipeProvider } from '../../services/pipe-provider.service';\n\ninterface SPINNER {\n show: boolean;\n messages: Array<string>;\n arialabel: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AppComponent implements DoCheck, AfterViewInit {\n public startApp = false;\n public isApplicationType = false;\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\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 private app: App,\n private appManager: AppManagerService,\n private customIconsLoaderService: CustomIconsLoaderService\n ) {\n setPipeProvider(_pipeProvider);\n setNgZone(ngZone);\n setAppRef(_appRef);\n\n this.isApplicationType = getWmProjectProperties().type === 'APPLICATION';\n if(this.isApplicationType) {\n this.customIconsLoaderService.load();\n }\n\n this.appManager.beforeAppReady();\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 this.overrideRouterOutlet();\n }, 10);\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) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n this.app.activePage.ngOnDetach();\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n if (hasCordova() && !window['wmDeviceReady']) {\n document.addEventListener('wmDeviceReady' , () => this.start());\n } else {\n this.start();\n }\n }\n\n ngDoCheck() {\n $invokeWatchers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\n\nimport { Observable, Subject } 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\";\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 intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n let modifiedReq;\n let modifiedResp;\n if (appManager && appManager.appOnBeforeServiceCall) {\n // Convert the angular HttpRequest to wm HttpRequest\n const req = this.wmHttpRequest.angularToWmRequest(request);\n // trigger the common onBeforeServiceCall handler present in app.js\n modifiedReq = appManager.appOnBeforeServiceCall(req);\n if (modifiedReq) {\n // Convert the wm HttpRequest to angular HttpRequest\n modifiedReq = this.wmHttpRequest.wmToAngularRequest(modifiedReq);\n request = modifiedReq;\n }\n }\n return next.handle(request).pipe(\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 { AfterViewInit, Component, ViewChild } from '@angular/core';\n\nimport { PrefabDirective } from '@wm/components/prefab';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\n\nconst PREFAB = 'PREFAB';\n\n@Component({\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 {\n private config: any;\n private previewMode: boolean;\n\n @ViewChild(PrefabDirective, { static: true }) prefabInstance;\n\n constructor(private prefabManager: PrefabManagerService) {\n\n window.addEventListener('message', e => {\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\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 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\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 */\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 }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {noop} from '@wm/core';\n\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => 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(component: CanComponentDeactivate) {\n function invokeCompDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.app.activePage && this.app.activePage.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);\n }\n return retVal === undefined ? true : retVal;\n }\n return invokeCompDeactivate.apply(component);\n }\n}\n\n\n// [WMS-18847] - canDeactivate guard for angular deployment.\n@Injectable()\nexport class CanDeactivateNgPageGuard {\n canDeactivate(component: CanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\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","/**\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 if (parent) {\n parent.removeChild(oldChild);\n }\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(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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';\n\nimport { ToastrModule } from 'ngx-toastr';\n\nimport {\n _WM_APP_PROJECT,\n $parseExpr,\n AbstractI18nService,\n AbstractNavigationService,\n AbstractSpinnerService,\n AbstractToasterService,\n App,\n AppDefaults,\n CoreModule,\n DynamicComponentRefProvider,\n isObject,\n isIphone,\n isIpod,\n isIpad,\n Viewport,\n hasCordova\n} from '@wm/core';\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { ConfirmDialogModule } from '@wm/components/dialogs/confirm-dialog';\nimport { DesignDialogModule } from '@wm/components/dialogs/design-dialog';\nimport { PrefabModule } from '@wm/components/prefab';\nimport { MobileRuntimeModule } from '@wm/mobile/runtime';\nimport { SecurityModule } from '@wm/security';\nimport { HttpServiceModule } from '@wm/http';\nimport { VariablesModule } from '@wm/variables';\nimport { OAuthModule } 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 { PrefabDirective } from './directives/prefab.directive';\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 {PageModule} from \"@wm/components/page\";\nimport {FooterModule} from \"@wm/components/page/footer\";\nimport {HeaderModule} from \"@wm/components/page/header\";\nimport {LeftPanelModule} from \"@wm/components/page/left-panel\";\nimport {RightPanelModule} from \"@wm/components/page/right-panel\";\nimport {TopNavModule} from \"@wm/components/page/top-nav\";\nimport {BasicModule} from \"@wm/components/basic\";\nimport {ProgressModule} from \"@wm/components/basic/progress\";\nimport {RichTextEditorModule} from \"@wm/components/basic/rich-text-editor\";\nimport {SearchModule} from \"@wm/components/basic/search\";\nimport {TreeModule} from \"@wm/components/basic/tree\";\nimport {CalendarModule} from \"@wm/components/input/calendar\";\nimport {ChipsModule} from \"@wm/components/input/chips\";\nimport {ColorPickerModule} from \"@wm/components/input/color-picker\";\nimport {CurrencyModule} from \"@wm/components/input/currency\";\nimport {EpochModule} from \"@wm/components/input/epoch\";\nimport {FileUploadModule} from \"@wm/components/input/file-upload\";\nimport {InputModule} from \"@wm/components/input\";\nimport {RatingModule} from \"@wm/components/input/rating\";\nimport {SliderModule} from \"@wm/components/input/slider\";\nimport {CardModule} from \"@wm/components/data/card\";\nimport {FormModule} from \"@wm/components/data/form\";\nimport {ListModule} from \"@wm/components/data/list\";\nimport {LiveTableModule} from \"@wm/components/data/live-table\";\nimport {PaginationModule} from \"@wm/components/data/pagination\";\nimport {TableModule} from \"@wm/components/data/table\";\nimport {ChartModule} from \"@wm/components/chart\";\nimport {AccordionModule} from \"@wm/components/containers/accordion\";\nimport {LinearLayoutModule} from \"@wm/components/containers/linear-layout\";\nimport {LayoutGridModule} from \"@wm/components/containers/layout-grid\";\nimport {PanelModule} from \"@wm/components/containers/panel\";\nimport {TabsModule} from \"@wm/components/containers/tabs\";\nimport {TileModule} from \"@wm/components/containers/tile\";\nimport {WizardModule} from \"@wm/components/containers/wizard\";\nimport {AlertDialogModule} from \"@wm/components/dialogs/alert-dialog\";\nimport {IframeDialogModule} from \"@wm/components/dialogs/iframe-dialog\";\nimport {LoginDialogModule} from \"@wm/components/dialogs/login-dialog\";\nimport {PartialDialogModule} from \"@wm/components/dialogs/partial-dialog\";\nimport {BreadcrumbModule} from \"@wm/components/navigation/breadcrumb\";\nimport {MenuModule} from \"@wm/components/navigation/menu\";\nimport {NavbarModule} from \"@wm/components/navigation/navbar\";\nimport {PopoverModule} from \"@wm/components/navigation/popover\";\nimport {CarouselModule} from \"@wm/components/advanced/carousel\";\nimport {LoginModule} from \"@wm/components/advanced/login\";\nimport {MarqueeModule} from \"@wm/components/advanced/marquee\";\nimport {CustomModule} 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\";\n\ndeclare const _WM_APP_PROPERTIES;\n\nconst initializeProjectDetails = () => {\n let cdnUrl = document.querySelector('[name=\"deployUrl\"]') && document.querySelector('[name=\"deployUrl\"]').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 = hasCordova() ? _WM_APP_PROPERTIES.displayName : 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.cdnUrl = cdnUrl || 'ng-bundle/';\n _WM_APP_PROJECT.ngDest = 'ng-bundle/';\n try {\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: any) {\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 PrefabDirective,\n AppComponent,\n PrefabPreviewComponent,\n EmptyPageComponent\n];\n\nexport const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [\n ConfirmDialogModule,\n DesignDialogModule,\n DialogModule,\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 BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n CustomModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n PrefabModule\n];\n\n// setting parseExpr as exprEvaluator for swipeAnimation\n($.fn as any).swipeAnimation.expressionEvaluator = $parseExpr;\n\n@NgModule({\n declarations: [ ...definitions ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n\n ...definitions,\n\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n providers: [\n {provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost},\n {provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2}\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 getSettingProvider(MAX_CACHE_SIZE, 10),\n getSettingProvider(MAX_CACHE_AGE, 30 * 60)\n ]\n };\n }\n\n constructor(mobileRuntimeModule: MobileRuntimeModule,\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 WmComponentsModule.forRoot(),\n MobileRuntimeModule.forRoot(),\n CoreModule.forRoot(),\n SecurityModule.forRoot(),\n OAuthModule.forRoot(),\n VariablesModule.forRoot(),\n HttpServiceModule.forRoot(),\n RuntimeBaseModule.forRoot()\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, isMobileApp } 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\n if (!isMobileApp()) {\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\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","i5","i1","i2.PrefabConfigProvider","noop","i4.AppManagerService","i1.PrefabManagerService","i2.ComponentRefProvider","i2","i1.PipeProvider","i2.AppManagerService","i2.AuthGuard","appJsLoaded","i2.AppJSProvider","i1.AppManagerService","i2.AppExtensionProvider","i4","i5.AppManagerService","PrefabDirective","getDOM","ɵSharedStylesHost","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule","isObject","ɵDomRendererFactory2","i2.AppVariablesProvider"],"mappings":"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"}
|
1
|
+
{"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/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/directives/prefab.directive.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.html","../../../../projects/runtime-base/src/components/app-component/app.component.ts","../../../../projects/runtime-base/src/services/http-interceptor.services.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/overrides/wm_shared_styles_host.ts","../../../../projects/runtime-base/src/overrides/wm_dom_renderer.ts","../../../../projects/runtime-base/src/runtime-base.module.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 } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n App,\n fetchContent,\n isDefined,\n triggerFn,\n $appDigest\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\nimport { CONSTANTS, $rootScope, routerService, MetadataService, VariablesService } from '@wm/variables';\nimport {extend, forEach, get, isEmpty, isObject, isUndefined, merge, trim} from \"lodash-es\";\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@Injectable()\nexport class AppManagerService {\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\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 this.$http.registerOnSessionTimeout(this.handle401.bind(this));\n\n this.$variables.registerDependency('appManager', this);\n\n 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.$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.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {\n this.$app.clearPageCache();\n }));\n 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) {\n const SSO_URL = 'services/security/ssologin',\n PREVIEW_WINDOW_NAME = 'WM_PREVIEW_WINDOW';\n let page,\n pageParams;\n\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);\n\n if (CONSTANTS.hasCordova) {\n // get previously loggedInUser name (if any)\n const lastLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n this.$security.authInBrowser()\n .then(() => this.reloadAppData())\n .then(() => {\n const presentLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n if (presentLoggedInUsername && presentLoggedInUsername === lastLoggedInUsername) {\n routerService.navigate([page]);\n } else {\n routerService.navigate([`/`]);\n }\n });\n } else {\n page = page ? '?redirectPage=' + encodeURIComponent(page) : '';\n pageParams = this.$security.getQueryString(this.$security.getRedirectedRouteQueryParams());\n pageParams = pageParams ? '?' + pageParams : '';\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 + pageParams;\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 /**\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);\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 LoginVariableService.\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);\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();\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 * 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 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","export const isPrefabInPreview = (prefabName: string) => prefabName === '__self__';\n\nexport const getPrefabBaseUrl = (prefabName: string) => isPrefabInPreview(prefabName) ? '.' : `app/prefabs/${prefabName}`;\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","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).replace('//', '/');\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 } 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\n constructor() {}\n\n init() {\n // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.isViewInitialized = true;\n this.isReady();\n });\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 {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy,\n} from '@angular/router';\n\nimport { LRUCache } from '@wm/core';\nimport {isNil} from \"lodash-es\";\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 === '') {\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 isMobileApp,\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 if (isMobileApp() && BasePageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BasePageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BasePageComponent.lastPageSnapShot);\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() {\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);\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 //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, RadiosetComponent} from \"@wm/components/input\";\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 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 }\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 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 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 // user overrides this\n onPropertyChange() { }\n\n onReady(params?) {\n }\n}\n","import { AfterViewInit, Injector, inject, OnDestroy, ViewChild, Directive } 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 AfterViewInit, 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) prefabContainerDirective;\n scriptLoaderService: ScriptLoaderService;\n compileContent = false;\n pageDirective: PageDirective | SpaPageDirective;\n Viewport: Viewport;\n spa: boolean;\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 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\n ngAfterViewInit(): void {\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 ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n // user overrides this\n onPropertyChange() {}\n\n onReady() {}\n\n}\n","import { AfterViewInit, Injector, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { PageDirective } from \"@wm/components/page\";\nimport { registerFnByExpr, App } 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) => {\n oAttach.call(this.routerOutlet, componentRef);\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 }\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","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, Subscription} from 'rxjs';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n addClass,\n App,\n isMobileApp,\n muteWatchers,\n noop,\n removeClass,\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 if (isMobileApp() && BaseSpaPageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BaseSpaPageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BaseSpaPageComponent.lastPageSnapShot);\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() {\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);\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, 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 selector: '[accessroles]'\n})\nexport class AccessrolesDirective {\n\n private processed = false;\n private readonly isUserAuthenticated;\n private readonly userRoles;\n private readonly context = {};\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 = /,/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","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n template: `\n <div class=\"app-spinner\" [ngClass]=\"classname\" *ngIf=\"show\">\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 <p *ngFor=\"let value of spinnermessages\" [textContent]=\"value\"></p>\n </div>\n </div>\n </div>\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 { 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\";\n\ndeclare const $;\n\n@Component({\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 <div *ngFor=\"let param of params | keyvalue\" wmParam hidden\n [name]=\"param.key\" [value]=\"param.value\"></div>\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 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 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 this.router.navigate([page]);\n });\n } else {\n this.router.navigate([getWmProjectProperties().homePage]);\n this.appManger.postAppTypeInfo();\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\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 selector: '[wmPrefab][prefabname]'\n})\nexport class PrefabDirective {\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","import { Compiler, Injectable, Injector, ChangeDetectorRef, InjectionToken, KeyValueDiffers, Pipe, Inject } from '@angular/core';\nimport {\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n NgLocalization\n} from '@angular/common'\nimport {\n SuffixPipe,\n ToDatePipe,\n FileIconClassPipe,\n FileExtensionFromMimePipe,\n FilterPipe,\n FileSizePipe,\n ToNumberPipe,\n ToCurrencyPipe,\n PrefixPipe,\n TimeFromNowPipe,\n NumberToStringPipe,\n StateClassPipe,\n StringToNumberPipe,\n CustomPipe,\n TrustAsPipe,\n SanitizePipe\n} from '@wm/components/base';\nimport { getSessionStorageItem, CustomPipeManager, AbstractI18nService } 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), undefined, 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(CustomPipeManager)]),\n this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),\n this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer])\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}\n","import { Injectable } from \"@angular/core\";\nimport { PipeProvider } from \"./pipe-provider.service\";\nimport { App } from \"@wm/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class PipeService {\n constructor(private pipeProvider: PipeProvider,\n private $app: App) {\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 } 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, isString} from \"lodash-es\";\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 {\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\n targetPlatform: string;\n\n appLocale: 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\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\n 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 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","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 isMobileApp,\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\ndeclare const moment;\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 this.loadResource(`${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 const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n moment.locale(this.defaultSupportedLocale);\n return;\n }\n const path = _cdnUrl + `locales/moment/${momentLocale}.js`;\n loadScripts([path], true).then(()=>{\n moment.locale(this.selectedLocale);\n\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 = 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\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 loadCalendarLocaleBundle(calendarLocale, force = false) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n let path: string;\n if (calendarLocale) {\n path = _cdnUrl + `locales/fullcalendar/${calendarLocale}.js`;\n } else {\n return Promise.resolve();\n }\n\n // return in case of mobile app or if selected locale is default supported locale.\n if (!force && (isMobile() || isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {\n this.bundleLoaded.fullCalendar = true;\n return;\n }\n\n // Call the script. In script, moment defines the loaded locale\n return loadScripts([path], true);\n }\n\n protected loadMomentTimeZoneBundle(locale, compInstance?) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;\n loadScripts([path], true).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.tz.names(), (timezoneName) => {\n return locale === moment.tz(timezoneName).format('Z');\n });\n }\n this.formatsByLocale.timezone = locale;\n const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;\n Object.assign(localeData, localeObj);\n resolve();\n }, resolve);\n });\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.loadCalendarLocaleBundle(libLocale.fullCalendar)?.then(() => {\n this.bundleLoaded.fullCalendar = true;\n this.notifyLocaleChanged();\n });\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 this.loadMomentTimeZoneBundle(locale, compInstance);\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 * for cordova, check for language ignoring the locale\n * As the navigator.languages always returns the language with locale (en-us)\n * The supportedLanguages from BE doesn't include locale (en) which leads to mismatch\n */\n if (CONSTANTS.hasCordova) {\n let supportedLang = [];\n forEach(_acceptLang, function (lang) {\n let matchedLang = find(_supportedLang, (val) => lang === val) || find(_supportedLang, (val) => lang.startsWith(val));\n if (matchedLang) {\n supportedLang.push(matchedLang);\n }\n })\n _appSupportedLang = supportedLang[0];\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 if (CONSTANTS.hasCordova) {\n languages = navigator.languages || [navigator.language];\n } else {\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 }\n return map(languages, toLower);\n }\n\n public initCalendarLocale(): Promise<any> {\n if (this.selectedLocale !== 'en') {\n return this.loadCalendarLocaleBundle(this.selectedLocale, true);\n }\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 } 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 {\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","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.notifyApp(\n this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied',\n 'error'\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","<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\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 <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\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 <div *ngIf=\"!isApplicationType\" 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 <div *ngIf=\"!isApplicationType\" 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 <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n","import { ApplicationRef, Component, DoCheck, ElementRef, NgZone, ViewEncapsulation, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterOutlet } from '@angular/router';\n\nimport { setTheme } from 'ngx-bootstrap/utils';\n\nimport { CustomIconsLoaderService, noop } from '@wm/core';\nimport { $invokeWatchers, AbstractDialogService, AbstractSpinnerService, getWmProjectProperties, hasCordova, setAppRef, setNgZone, setPipeProvider, App, addClass, removeClass } from '@wm/core';\nimport { OAuthService } from '@wm/oAuth';\nimport { AppManagerService } from '../../services/app.manager.service';\nimport { PipeProvider } from '../../services/pipe-provider.service';\n\ninterface SPINNER {\n show: boolean;\n messages: Array<string>;\n arialabel: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AppComponent implements DoCheck, AfterViewInit {\n public startApp = false;\n public isApplicationType = false;\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\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 private app: App,\n private appManager: AppManagerService,\n private customIconsLoaderService: CustomIconsLoaderService\n ) {\n setPipeProvider(_pipeProvider);\n setNgZone(ngZone);\n setAppRef(_appRef);\n\n this.isApplicationType = getWmProjectProperties().type === 'APPLICATION';\n if(this.isApplicationType) {\n this.customIconsLoaderService.load();\n }\n\n this.appManager.beforeAppReady();\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 this.overrideRouterOutlet();\n }, 10);\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) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n this.app.activePage.ngOnDetach();\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n if (hasCordova() && !window['wmDeviceReady']) {\n document.addEventListener('wmDeviceReady' , () => this.start());\n } else {\n this.start();\n }\n }\n\n ngDoCheck() {\n $invokeWatchers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\n\nimport { Observable, Subject } 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\";\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 intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n let modifiedReq;\n let modifiedResp;\n if (appManager && appManager.appOnBeforeServiceCall) {\n // Convert the angular HttpRequest to wm HttpRequest\n const req = this.wmHttpRequest.angularToWmRequest(request);\n // trigger the common onBeforeServiceCall handler present in app.js\n modifiedReq = appManager.appOnBeforeServiceCall(req);\n if (modifiedReq) {\n // Convert the wm HttpRequest to angular HttpRequest\n modifiedReq = this.wmHttpRequest.wmToAngularRequest(modifiedReq);\n request = modifiedReq;\n }\n }\n return next.handle(request).pipe(\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 { AfterViewInit, Component, ViewChild } from '@angular/core';\n\nimport { PrefabDirective } from '@wm/components/prefab';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\n\nconst PREFAB = 'PREFAB';\n\n@Component({\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 {\n private config: any;\n private previewMode: boolean;\n\n @ViewChild(PrefabDirective, { static: true }) prefabInstance;\n\n constructor(private prefabManager: PrefabManagerService) {\n\n window.addEventListener('message', e => {\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\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 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\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 */\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 }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {noop} from '@wm/core';\n\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => 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(component: CanComponentDeactivate) {\n function invokeCompDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.app.activePage && this.app.activePage.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);\n }\n return retVal === undefined ? true : retVal;\n }\n return invokeCompDeactivate.apply(component);\n }\n}\n\n\n// [WMS-18847] - canDeactivate guard for angular deployment.\n@Injectable()\nexport class CanDeactivateNgPageGuard {\n canDeactivate(component: CanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\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","/**\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 if (parent) {\n parent.removeChild(oldChild);\n }\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(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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';\n\nimport { ToastrModule } from 'ngx-toastr';\n\nimport {\n _WM_APP_PROJECT,\n $parseExpr,\n AbstractI18nService,\n AbstractNavigationService,\n AbstractSpinnerService,\n AbstractToasterService,\n App,\n AppDefaults,\n CoreModule,\n DynamicComponentRefProvider,\n isObject,\n isIphone,\n isIpod,\n isIpad,\n Viewport,\n hasCordova\n} from '@wm/core';\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { ConfirmDialogModule } from '@wm/components/dialogs/confirm-dialog';\nimport { DesignDialogModule } from '@wm/components/dialogs/design-dialog';\nimport { PrefabModule } from '@wm/components/prefab';\nimport { MobileRuntimeModule } from '@wm/mobile/runtime';\nimport { SecurityModule } from '@wm/security';\nimport { HttpServiceModule } from '@wm/http';\nimport { VariablesModule } from '@wm/variables';\nimport { OAuthModule } 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 { PrefabDirective } from './directives/prefab.directive';\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 {PageModule} from \"@wm/components/page\";\nimport {FooterModule} from \"@wm/components/page/footer\";\nimport {HeaderModule} from \"@wm/components/page/header\";\nimport {LeftPanelModule} from \"@wm/components/page/left-panel\";\nimport {RightPanelModule} from \"@wm/components/page/right-panel\";\nimport {TopNavModule} from \"@wm/components/page/top-nav\";\nimport {BasicModule} from \"@wm/components/basic\";\nimport {ProgressModule} from \"@wm/components/basic/progress\";\nimport {RichTextEditorModule} from \"@wm/components/basic/rich-text-editor\";\nimport {SearchModule} from \"@wm/components/basic/search\";\nimport {TreeModule} from \"@wm/components/basic/tree\";\nimport {CalendarModule} from \"@wm/components/input/calendar\";\nimport {ChipsModule} from \"@wm/components/input/chips\";\nimport {ColorPickerModule} from \"@wm/components/input/color-picker\";\nimport {CurrencyModule} from \"@wm/components/input/currency\";\nimport {EpochModule} from \"@wm/components/input/epoch\";\nimport {FileUploadModule} from \"@wm/components/input/file-upload\";\nimport {InputModule} from \"@wm/components/input\";\nimport {RatingModule} from \"@wm/components/input/rating\";\nimport {SliderModule} from \"@wm/components/input/slider\";\nimport {CardModule} from \"@wm/components/data/card\";\nimport {FormModule} from \"@wm/components/data/form\";\nimport {ListModule} from \"@wm/components/data/list\";\nimport {LiveTableModule} from \"@wm/components/data/live-table\";\nimport {PaginationModule} from \"@wm/components/data/pagination\";\nimport {TableModule} from \"@wm/components/data/table\";\nimport {ChartModule} from \"@wm/components/chart\";\nimport {AccordionModule} from \"@wm/components/containers/accordion\";\nimport {LinearLayoutModule} from \"@wm/components/containers/linear-layout\";\nimport {LayoutGridModule} from \"@wm/components/containers/layout-grid\";\nimport {PanelModule} from \"@wm/components/containers/panel\";\nimport {TabsModule} from \"@wm/components/containers/tabs\";\nimport {TileModule} from \"@wm/components/containers/tile\";\nimport {WizardModule} from \"@wm/components/containers/wizard\";\nimport {AlertDialogModule} from \"@wm/components/dialogs/alert-dialog\";\nimport {IframeDialogModule} from \"@wm/components/dialogs/iframe-dialog\";\nimport {LoginDialogModule} from \"@wm/components/dialogs/login-dialog\";\nimport {PartialDialogModule} from \"@wm/components/dialogs/partial-dialog\";\nimport {BreadcrumbModule} from \"@wm/components/navigation/breadcrumb\";\nimport {MenuModule} from \"@wm/components/navigation/menu\";\nimport {NavbarModule} from \"@wm/components/navigation/navbar\";\nimport {PopoverModule} from \"@wm/components/navigation/popover\";\nimport {CarouselModule} from \"@wm/components/advanced/carousel\";\nimport {LoginModule} from \"@wm/components/advanced/login\";\nimport {MarqueeModule} from \"@wm/components/advanced/marquee\";\nimport {CustomModule} 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\";\n\ndeclare const _WM_APP_PROPERTIES;\n\nconst initializeProjectDetails = () => {\n let cdnUrl = document.querySelector('[name=\"deployUrl\"]') && document.querySelector('[name=\"deployUrl\"]').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 = hasCordova() ? _WM_APP_PROPERTIES.displayName : 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.cdnUrl = cdnUrl || 'ng-bundle/';\n _WM_APP_PROJECT.ngDest = 'ng-bundle/';\n try {\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: any) {\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 PrefabDirective,\n AppComponent,\n PrefabPreviewComponent,\n EmptyPageComponent\n];\n\nexport const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [\n ConfirmDialogModule,\n DesignDialogModule,\n DialogModule,\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 BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n CustomModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n PrefabModule\n];\n\n// setting parseExpr as exprEvaluator for swipeAnimation\n($.fn as any).swipeAnimation.expressionEvaluator = $parseExpr;\n\n@NgModule({\n declarations: [ ...definitions ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n\n ...definitions,\n\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n providers: [\n {provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost},\n {provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2}\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 getSettingProvider(MAX_CACHE_SIZE, 10),\n getSettingProvider(MAX_CACHE_AGE, 30 * 60)\n ]\n };\n }\n\n constructor(mobileRuntimeModule: MobileRuntimeModule,\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 WmComponentsModule.forRoot(),\n MobileRuntimeModule.forRoot(),\n CoreModule.forRoot(),\n SecurityModule.forRoot(),\n OAuthModule.forRoot(),\n VariablesModule.forRoot(),\n HttpServiceModule.forRoot(),\n RuntimeBaseModule.forRoot()\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, isMobileApp } 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\n if (!isMobileApp()) {\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\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","i5","i1","i2.PrefabConfigProvider","noop","i4.AppManagerService","i1.PrefabManagerService","i2.ComponentRefProvider","i2","i1.PipeProvider","i2.AppManagerService","i2.AuthGuard","appJsLoaded","i2.AppJSProvider","i1.AppManagerService","i2.AppExtensionProvider","i4","i5.AppManagerService","PrefabDirective","getDOM","ɵSharedStylesHost","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule","isObject","ɵDomRendererFactory2","i2.AppVariablesProvider"],"mappings":"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"}
|