{"version":3,"file":"chunk-kajj92d0.js","sources":["packages/vanilla/lib/shared/login/src/workflow.service.ts","packages/vanilla/lib/shared/login/src/login.client-config.ts","packages/vanilla/lib/shared/login/src/login.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport {\n LoginResponseHandlerService,\n LoginResponseOptions,\n LoginStoreService,\n ProductNavigationService,\n SharedFeaturesApiService,\n UserService,\n WorkflowHandleResponse,\n WorkflowResponse,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\n/**\n * @whatItDoes Provides options to get the user out of workflow mode.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkflowService {\n constructor(\n private api: SharedFeaturesApiService,\n private loginResponseHandler: LoginResponseHandlerService,\n private loginStore: LoginStoreService,\n private user: UserService,\n private productNavigationService: ProductNavigationService,\n ) {}\n\n /**\n * @whatItDoes Calls POS API `FinalizeWorkflow` method, executes login including redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalize(options?: LoginResponseOptions): Promise {\n return await this.execute(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'finalizeWorkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `SkipWorkflow` method, executes login including redirection.\n *\n * @description\n *\n * Skips the workflow.\n */\n async skip(options?: LoginResponseOptions): Promise {\n return await this.execute(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'skipworkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `workflowdata` and then finalize().\n *\n * @description\n *\n * Finalizes workflow with data.\n */\n async finalizeWithData(data: any, options?: LoginResponseOptions): Promise {\n await firstValueFrom(this.api.post('workflowdata', data));\n\n return await this.finalize(options);\n }\n\n /**\n * @whatItDoes Calls POS API `FinalizeWorkflow` method, executes login without redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalizeHandle(options?: LoginResponseOptions): Promise {\n return await this.executeHandle(this.user.workflowType < 0 ? 'finalizePostLoginWorkflow' : 'finalizeWorkflow', options);\n }\n\n /**\n * @whatItDoes Calls POSAPi `workflowdata`, then `FinalizeWorkflow` method, executes login without redirection.\n *\n * @description\n *\n * It is required to call this to get the user out of the workflow.\n *\n */\n async finalizeWithDataHandle(data: any, options?: LoginResponseOptions): Promise {\n await firstValueFrom(this.api.post('workflowdata', data));\n\n return await this.finalizeHandle(options);\n }\n\n private async execute(action: string, options?: LoginResponseOptions): Promise {\n let response;\n\n try {\n response = await firstValueFrom(this.api.post(action, this.getParameters()));\n } catch (loginError: any) {\n this.productNavigationService.goTo(loginError?.redirectUrl);\n return { loginError: loginError };\n }\n\n await this.loginResponseHandler.handleResponse(response, options);\n\n return {}; // better not to return response here because handleResponse redirects. if they need it they need to use Handle method\n }\n\n private async executeHandle(action: string, options?: LoginResponseOptions): Promise {\n let response;\n\n try {\n response = await firstValueFrom(this.api.post(action, this.getParameters()));\n } catch (error: any) {\n this.productNavigationService.goTo(error?.redirectUrl);\n\n return { loginError: error };\n }\n\n const loginRedirectInfo = await this.loginResponseHandler.handle(response, options);\n\n return { loginResponse: response, loginRedirectInfo: loginRedirectInfo };\n }\n\n private getParameters(): { loginType: string | null } {\n return {\n loginType: this.loginStore.LoginType,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService, MessageType } from '@frontend/vanilla/core';\n\nexport interface ProviderParameters {\n loginUrl: string;\n redirectUrl: string;\n clientId: string;\n appendNonce: boolean;\n welcomeDialog?: boolean;\n sdkUrl?: string;\n sdkVersion?: string;\n sdkCookie?: boolean;\n sdkLogin?: boolean;\n redirectQueryParams?: { [key: string]: string };\n}\n\n@LazyClientConfig({ key: 'vnLogin2', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: loginConfigFactory,\n})\nexport class LoginConfig extends LazyClientConfigBase {\n autoFocusUsername?: boolean;\n closeButtonTextCssClass: string;\n connectCardVersion: number;\n disableLoginOnFormInvalid: boolean;\n disableFeatureDataPrefetch: { [key: string]: string };\n enableLimitsToaster: boolean;\n fastLoginOptionsEnabled: boolean;\n fastLoginToggleEnabled: boolean;\n isDateOfBirthEnabled: boolean;\n isLoginWithMobileEnabled: boolean;\n loginMessages: { urlPattern: string; name: string; type: MessageType }[];\n loginOptions: string[];\n passwordHintsOnNthAttempt: number;\n prefillUsernameToggleEnabled: boolean;\n providers: { [key: string]: ProviderParameters };\n recaptchaEnterpriseEnabled: boolean;\n rememberMeEnabled: boolean;\n resetLoginFormErrorCodes: string[];\n selectedTabEnabled: boolean;\n showCloseButtonAsText: boolean;\n showRegisterButton: boolean;\n signInByEmail: boolean;\n titleCssClass: string;\n useOpenRegistrationEvent: boolean;\n useProviderProfile: boolean;\n v2: boolean;\n version: number;\n showLoginSpinner: boolean;\n}\n\nexport function loginConfigFactory(service: LazyClientConfigService) {\n return service.get(LoginConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { DslService, UserEvent, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { first } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { LoginConfig } from './login.client-config';\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginService {\n constructor(\n private userService: UserService,\n private loginConfig: LoginConfig,\n private dslService: DslService,\n ) {}\n\n runAfterLogin(source: string, callback: () => void) {\n this.loginConfig.whenReady.pipe(first()).subscribe(() => {\n if (this.userService.isAuthenticated) {\n this.runCallback(source, callback);\n }\n\n this.userService.events\n .pipe(filter((event: UserEvent) => event instanceof UserLoginEvent))\n .subscribe(() => this.runCallback(source, callback));\n });\n }\n\n private runCallback(source: string, callback: () => void) {\n const featureName =\n Object.keys(this.loginConfig.disableFeatureDataPrefetch).find((name: string) => source.toLowerCase().includes(name.toLowerCase())) || '';\n\n const dsl = this.loginConfig.disableFeatureDataPrefetch[featureName];\n\n if (dsl) {\n this.dslService.evaluateExpression(dsl).subscribe((disabled: boolean) => {\n if (!disabled) {\n callback();\n }\n });\n } else {\n callback();\n }\n }\n}\n"],"names":["WorkflowService","constructor","api","loginResponseHandler","loginStore","user","productNavigationService","finalize","options","__async","execute","workflowType","skip","finalizeWithData","data","firstValueFrom","post","finalizeHandle","executeHandle","finalizeWithDataHandle","action","response","getParameters","loginError","goTo","redirectUrl","handleResponse","error","loginRedirectInfo","handle","loginResponse","loginType","LoginType","ɵɵinject","SharedFeaturesApiService","LoginResponseHandlerService","LoginStoreService","UserService","ProductNavigationService","factory","ɵfac","providedIn","_WorkflowService","LoginConfig","_a","LazyClientConfigBase","w","__ngFactoryType__","__ngConditionalFactory__","loginConfigFactory","LazyClientConfigService","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","service","get","LoginService","userService","loginConfig","dslService","runAfterLogin","source","callback","whenReady","pipe","first","subscribe","isAuthenticated","runCallback","events","filter","event","UserLoginEvent","featureName","Object","keys","disableFeatureDataPrefetch","find","name","toLowerCase","includes","dsl","evaluateExpression","disabled","DslService","_LoginService"],"mappings":"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"}