{"version":3,"file":"950.8ff23b7077b105ea.js","mappings":"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","names":["PlsService","constructor","_bsApi","getContestInfo","from","this","get","pipe","map","res","contests","updateContestInfo","contestId","contest","post","body","_PlsService","_angular_core__WEBPACK_IMPORTED_MODULE_3__","factory","AutosaveService","bsApi","router","simpleModalSvc","Subscription","value","selected","BehaviorSubject","undefined","_currentAutosaveInfo","asObservable","_autoSaveAmountSelected","_autoSaveOnOff","_isOkToPost","defaultOptions","_currencySelectOptions","_processing","sub","add","combineLatest","autoSaveAmountSelected","autoSaveOnOff","subscribe","amount","status","fundSourceTruth","autoSaveSchedule","isAlreadyOn","next","nextDepositAmount","getAutoSavingsInfo","_fundSourceTruth","defaultNotStartedOptions","faCoreServices","_faCoreServices","inject","FinancialAccountsCoreService","force","getSavingsAccounts","setAutoSaveAmount","amountToSave","getAccountsByType","FinancialAccountTypes","SAVINGS","resp","payload","accounts","fundsSource","createAutoSaveSchedule","autosavePostObj","schedule_type","next_transfer_date","nextAvailableDate","source","paused_ts","postAutoSavings","patchAutoSavings","showConfirmModal","apiName","take","postPatchResponse","patch","result","code","GenericResponseCode","SERVICE_OK","navigate","routeOnSuccess","showRetryModal","Date","toISOString","split","createModal","title","contentKey","displayCloseButton","eventName","isError","size","ctaKey","ctaAction","secondaryCtaKey","secondaryCtaAction","clearModal","createGenericErrorModal","setAutoSaveFeature","enable","ngOnDestroy","unsubscribe","setDirty","b","_AutosaveService","core","i0","AutosaveSettingsComponent","autoSaveSvc","route","_location","currentAutosaveInfo","isOkToPost","currentSelectionOption","processing","snapshot","data","routeOnBack","ngOnInit","onSubmit","autosaveAmount","$event","toggleAutoSaveFeature","routeUserOnBack","back","_AutosaveSettingsComponent","selectors","decls","ctx","trigger","state","style","maxHeight","opacity","transition","animate","changeDetection","AutosaveSimpleSelectorComponent","_route","autoSaveTitle","autoSaveDescription","description","options","length","_defaultOptions","o","options$","of","recommendedValue","simpleSelectorVal$","chooseOwnRoute","chooseOwn","_AutosaveSimpleSelectorComponent","PlsIntroComponent","_router","fromSavings","_origin","queryParams","origin","introCtaCopy","contestIntroClick","relativeTo","showRules","_PlsIntroComponent","PlsOfficialRulesComponent","backToIntro","_PlsOfficialRulesComponent","routes","path","component","PlsContestRewardsComponent","_plsService","numberOfWinners$","find","c","includes","id","messageValues","numberOfWinners","backToSavingsDashboard","_PlsContestRewardsComponent","redirectTo","DesktopFeaturePrizeLinkSavingsModule","_DesktopFeaturePrizeLinkSavingsModule","imports","CommonModule","RouterModule","forChild","SharedDesktopModule","BrightsideUiModule","MicroUiMoleculeModule","TranslateModule","SweepstakesAmoeComponent","_phonePipe","clientDetails","fName","lName","phone","transform","_SweepstakesAmoeComponent","PhonePipe","cell_component","fb_directive","ngx_translate_core"],"sourceRoot":"webpack:///","sources":["./libs/desktop/feature/prize-link-savings/src/lib/pls.service.ts","./libs/desktop/feature/autosave/src/lib/autosave.service.ts","./libs/desktop/feature/autosave/src/lib/autosave-settings/autosave-settings.component.html","./libs/desktop/feature/autosave/src/lib/autosave-settings/autosave-settings.component.ts","./libs/desktop/feature/autosave/src/lib/autosave-simple-selector/autosave-simple-selector.component.html","./libs/desktop/feature/autosave/src/lib/autosave-simple-selector/autosave-simple-selector.component.ts","./libs/desktop/feature/prize-link-savings/src/lib/pls-intro/pls-intro.component.ts","./libs/desktop/feature/prize-link-savings/src/lib/pls-intro/pls-intro.component.html","./libs/desktop/feature/prize-link-savings/src/lib/pls-official-rules/pls-official-rules.component.ts","./libs/desktop/feature/prize-link-savings/src/lib/pls-official-rules/pls-official-rules.component.html","./libs/desktop/feature/prize-link-savings/src/lib/pls-contest-rewards/pls-contest-rewards.component.html","./libs/desktop/feature/prize-link-savings/src/lib/desktop-feature-prize-link-savings.module.ts","./libs/desktop/feature/prize-link-savings/src/lib/pls-contest-rewards/pls-contest-rewards.component.ts","./libs/desktop/feature/prize-link-savings/src/lib/sweepstakes-amoe/sweepstakes-amoe.component.ts","./libs/desktop/feature/prize-link-savings/src/lib/sweepstakes-amoe/sweepstakes-amoe.component.html"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AwsApiWrapperService } from '@brightside-web/desktop/data-access/core-services';\nimport { Observable, from, map } from 'rxjs';\nimport { Contest } from './pls.model';\n\n@Injectable()\nexport class PlsService {\n constructor(private _bsApi: AwsApiWrapperService) {}\n\n getContestInfo(): Observable<Contest[]> {\n return from(this._bsApi.get('api-mobile', '/contests-app-api/v2')).pipe(map((res) => res.contests));\n }\n\n updateContestInfo(contestId: number | undefined, contest: Contest) {\n return from(this._bsApi.post('api-mobile', `/contests-app-api/v2/${contestId}/results`, { body: contest }));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ArrayOfSavingsAccounts } from '@brightside-web/desktop/feature/savings-account';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport {\n FinancialAccountFundsSource,\n FinancialAccountsCoreService,\n FinancialAccountTypes,\n} from '@brightside-web/desktop/feature/financial-accounts-core';\nimport {\n BsApiService,\n GenericResponseCode,\n GenericResponseResult,\n SimpleGlobalModalService,\n} from '@brightside-web/desktop/data-access/core-services';\nimport { take } from 'rxjs/operators';\nimport { CurrencySelectAmountOption } from '@brightside/brightside-ui';\nimport { Router } from '@angular/router';\n\nexport interface autosavePayload {\n amount: number;\n schedule_type: string;\n source: string;\n next_transfer_date: string;\n paused_ts: string | null;\n}\n\n@Injectable()\nexport class AutosaveService {\n sub = new Subscription();\n\n apiName = 'api-mobile';\n\n defaultOptions: CurrencySelectAmountOption[] = [\n { value: 25, selected: false },\n { value: 50, selected: false },\n { value: 100, selected: false },\n ];\n\n defaultNotStartedOptions: CurrencySelectAmountOption[] = [\n { value: 25, selected: false },\n { value: 50, selected: false },\n { value: 100, selected: false },\n ];\n\n private _currentAutosaveInfo = new BehaviorSubject<FinancialAccountFundsSource | undefined>(undefined);\n public readonly currentAutosaveInfo: Observable<FinancialAccountFundsSource | undefined> =\n this._currentAutosaveInfo.asObservable();\n\n private _autoSaveAmountSelected = new BehaviorSubject<number | null>(null);\n public readonly autoSaveAmountSelected: Observable<number | null> = this._autoSaveAmountSelected.asObservable();\n\n private _autoSaveOnOff = new BehaviorSubject<boolean>(false);\n public readonly autoSaveOnOff: Observable<boolean> = this._autoSaveOnOff.asObservable();\n\n private _isOkToPost = new BehaviorSubject<boolean>(false);\n public readonly isOkToPost: Observable<boolean> = this._isOkToPost.asObservable();\n\n private _currencySelectOptions = new BehaviorSubject<CurrencySelectAmountOption[]>(this.defaultOptions);\n public readonly currentSelectionOption: Observable<CurrencySelectAmountOption[]> = this._currencySelectOptions.asObservable();\n\n private _fundSourceTruth: FinancialAccountFundsSource | undefined;\n\n private _processing = new BehaviorSubject<boolean>(false);\n public readonly processing: Observable<boolean> = this._processing.asObservable();\n routeOnSuccess: string[] = ['accounts', 'savings'];\n routeOnBack: string[];\n\n get fundSourceTruth() {\n return this._fundSourceTruth;\n }\n set fundSourceTruth(value: FinancialAccountFundsSource | undefined) {\n this._fundSourceTruth = value;\n if (value?.autoSaveSchedule.nextDepositAmount) {\n this._autoSaveAmountSelected.next(value?.autoSaveSchedule.nextDepositAmount);\n }\n if (value?.autoSaveSchedule.status === 'active') {\n this._autoSaveOnOff.next(true);\n } else if (value?.autoSaveSchedule.status === 'notStarted') {\n this._currencySelectOptions.next(this.defaultNotStartedOptions);\n if (!this._autoSaveAmountSelected.value) this._autoSaveAmountSelected.next(20);\n }\n if (value) this._currentAutosaveInfo.next(value);\n }\n\n private _faCoreServices: FinancialAccountsCoreService | undefined;\n\n get faCoreServices(): FinancialAccountsCoreService {\n if (!this._faCoreServices) {\n this._faCoreServices = inject(FinancialAccountsCoreService);\n }\n return this._faCoreServices;\n }\n\n constructor(private bsApi: BsApiService, private router: Router, private simpleModalSvc: SimpleGlobalModalService) {\n this.sub.add(\n combineLatest([this.autoSaveAmountSelected, this.autoSaveOnOff]).subscribe(([amount, autoSaveOnOff]) => {\n const status = this.fundSourceTruth?.autoSaveSchedule.status;\n const isAlreadyOn = status === 'active';\n const isAmountValid = amount !== null && amount > 0;\n const isAmountChanged = amount !== this.fundSourceTruth?.autoSaveSchedule.nextDepositAmount;\n const isStatusNotStarted = status === 'notStarted';\n\n const shouldPost =\n (isStatusNotStarted || isAlreadyOn !== autoSaveOnOff || (isAlreadyOn === autoSaveOnOff && isAmountChanged)) &&\n isAmountValid;\n\n this._isOkToPost.next(shouldPost);\n })\n );\n\n // this.sub.add(\n // this.savingsAccountSvc.currentAccountInfo.subscribe(\n // resp => {\n // if (resp) {\n // this.fundSourceTruth = resp.fundsSource;\n // }\n // }\n // )\n // );\n this.getAutoSavingsInfo();\n }\n\n getAutoSavingsInfo(force: boolean = false) {\n this._isOkToPost.next(false);\n this.getSavingsAccounts(force);\n }\n\n setAutoSaveAmount(amountToSave: number) {\n this._autoSaveAmountSelected.next(amountToSave);\n }\n\n getSavingsAccounts(force = false) {\n this.faCoreServices.getAccountsByType<ArrayOfSavingsAccounts>(FinancialAccountTypes.SAVINGS).subscribe((resp) => {\n if (resp.payload) {\n this.fundSourceTruth = resp.payload.accounts[0].fundsSource;\n } else {\n // we shouldn't be in autosave if there is an issue here... soooo something went wrong, try again modal\n // call this again, try a few times before exiting?\n }\n });\n }\n\n createAutoSaveSchedule() {\n if (this._isOkToPost.value) {\n const autosavePostObj: autosavePayload = {\n schedule_type: 'everyPaycheck',\n next_transfer_date: this._currentAutosaveInfo.value?.nextAvailableDate ?? '',\n amount: this._autoSaveAmountSelected.value ?? 0,\n source: 'payroll',\n paused_ts: null,\n };\n if (this.fundSourceTruth?.autoSaveSchedule.status === 'notStarted') {\n this.postAutoSavings(autosavePostObj);\n } else {\n if (!this._autoSaveOnOff.value && this.fundSourceTruth?.autoSaveSchedule.status === 'active') {\n this.showConfirmModal(autosavePostObj);\n } else {\n this.patchAutoSavings(autosavePostObj);\n }\n }\n }\n }\n\n private postAutoSavings(payload: autosavePayload) {\n this._processing.next(true);\n this.bsApi\n .post(this.apiName, '/accounts/savings/auto-schedule', payload)\n .pipe(take(1))\n .subscribe((resp) => {\n this.postPatchResponse(resp);\n });\n }\n\n private patchAutoSavings(payload: autosavePayload) {\n this._processing.next(true);\n this.bsApi\n .patch(this.apiName, '/accounts/savings/auto-schedule', payload)\n .pipe(take(1))\n .subscribe((resp) => {\n this.postPatchResponse(resp);\n });\n }\n\n postPatchResponse(resp: GenericResponseResult) {\n if (resp.result.code === GenericResponseCode.SERVICE_OK) {\n this.router.navigate(this.routeOnSuccess);\n } else {\n this.showRetryModal(resp);\n this._processing.next(false);\n }\n }\n\n showConfirmModal(autosavePostObj: autosavePayload) {\n const paused_ts = new Date().toISOString().split('T')[0];\n this.simpleModalSvc.createModal({\n title: 'AUTOSAVE_CONFIRM_DISABLE_TITLE',\n contentKey: 'AUTOSAVE_CONFIRM_DISABLE_DESC',\n displayCloseButton: false,\n eventName: 'autosave_confirm_disable',\n isError: false,\n size: 'medium',\n ctaKey: 'AUTOSAVE_CONFIRM_DISABLE_CTA1',\n ctaAction: () => {\n this.patchAutoSavings({ ...autosavePostObj, paused_ts });\n },\n secondaryCtaKey: 'AUTOSAVE_CONFIRM_DISABLE_CTA2',\n secondaryCtaAction: () => {\n this.simpleModalSvc.clearModal();\n },\n });\n }\n\n showRetryModal(resp: GenericResponseResult) {\n this.simpleModalSvc.createGenericErrorModal(`autosave_settings_${resp.result.code}`);\n }\n\n setAutoSaveFeature(enable: boolean) {\n this._autoSaveOnOff.next(enable);\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n setDirty(b: boolean) {\n this._isOkToPost.next(b);\n }\n}\n","<bw-action-article\n class=\"autosave-settings\"\n [brightsideWebFb]=\"{event_name: 'autosave_settings'}\">\n <div header-actions>\n <ui-nav-exit-back\n [trackingDetail]=\"{ event_name: 'autosave_settings' }\"\n (exitActionHandler)=\"routeUserOnBack()\"\n ></ui-nav-exit-back>\n </div>\n <div header-title>\n <typography title-large color=\"var(--primary-text)\">\n {{ 'AUTOSAVE_SETTINGS_TITLE' | translate }}\n </typography>\n </div>\n <div content-section>\n <div *ngIf=\"(currentAutosaveInfo$|async) as autosave;else spinner\"\n class=\"autosave-settings__content-section\">\n <typography\n *ngIf=\"(autoSaveOnOff$|async) || autosave.autoSaveSchedule.status === 'notStarted';else descOff\"\n text-small-regular\n color=\"var(--secondary-text)\"\n class=\"mb-sm\">\n {{ 'AUTOSAVE_SETTINGS_DESC' | translate }}\n </typography>\n <ng-template #descOff>\n <typography\n text-small-regular\n color=\"var(--secondary-text)\"\n class=\"mb-sm\">\n {{ 'AUTOSAVE_SETTINGS_DESC_OFF' | translate }}\n </typography>\n </ng-template>\n <div\n class=\"autosave-settings__animation-wrapper\"\n [@openClose]=\"(autoSaveOnOff$|async) || autosave.autoSaveSchedule.status === 'notStarted' ? 'open' : 'closed'\">\n <bw-new-currency-select\n [preselectedValue]=\"(autoSaveAmountSelected$|async)\"\n (selectionChanged)=\"autosaveAmount($event)\"\n [amountOptions]=\"options$|async\"\n [precision]=\"0\"\n [forcedMaxValue]=\"9999\">\n <div> {{ 'AUTOSAVE_SETTINGS_PAYCHECK_AMOUNT' | translate }}</div>\n </bw-new-currency-select>\n </div>\n <bw-cell\n [labelSubLeft]=\"\n autosave.autoSaveSchedule.status !== 'notStarted'\n ? ('AUTOSAVE_SETTINGS_NEXT_PAYCHECK'|translate)\n : ('AUTOSAVE_SETTINGS_START_DATE'|translate)\n \"\n [labelRight]=\"autosave.nextAvailableDate | date:'MMMM d, YYYY'\">\n </bw-cell>\n <bw-cell\n *ngIf=\"autosave.autoSaveSchedule.status !== 'notStarted'\"\n [labelSubLeft]=\"(autoSaveOnOff$|async) ? ('AUTOSAVE_SETTINGS_TOGGLE_ON'|translate) : ('AUTOSAVE_SETTINGS_TOGGLE_OFF'|translate)\"\n [showToggleSwitch]=\"true\"\n [switchChecked]=\"autoSaveOnOff$|async\"\n (switchToggled)=\"toggleAutoSaveFeature($event)\">\n </bw-cell>\n <typography text-small-regular color=\"var(--secondary-text)\" class=\"mt-sm\">\n <div *ngIf=\"autosave.autoSaveSchedule.status !== 'notStarted'\" [innerHTML]=\"\n 'AUTOSAVE_SETTINGS_AVAILABLE_PAYROLL_DATE' | translate:\n {date: (autosave.autoSaveSchedule.nextDepositDate | date:'MMMM d, YYYY') }\">\n </div>\n </typography>\n </div>\n </div>\n <div footer-actions class=\"flex-row flex-item-flexible space-between\">\n <div class=\"flex-row row-reverse\" >\n <button\n *ngIf=\"(currentAutosaveInfo$|async)\"\n bw-button\n type=\"submit\"\n [brightsideWebFb]=\"{ event_name: 'autosave_settings'}\"\n [disabled]=\"(isOkToPost$|async) === false\"\n (click)=\"onSubmit()\"\n [processing]=\"processing$|async\"\n >\n {{ 'AUTOSAVE_SETTINGS_CTA1' | translate }}\n </button>\n </div>\n </div>\n</bw-action-article>\n\n<ng-template #spinner>\n <bw-spinner></bw-spinner>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AutosaveService } from '../autosave.service';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'brightside-web-autosave-settings',\n templateUrl: './autosave-settings.component.html',\n styleUrls: ['./autosave-settings.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'open',\n style({\n maxHeight: '600px',\n opacity: 1,\n })\n ),\n state(\n 'closed',\n style({\n maxHeight: '0',\n opacity: 0,\n })\n ),\n transition('open => closed', [animate('1000ms ease-in-out')]),\n transition('closed => open', [animate('1000ms ease-in-out')]),\n ]),\n ],\n providers: [AutosaveService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutosaveSettingsComponent {\n currentAutosaveInfo$ = this.autoSaveSvc.currentAutosaveInfo;\n autoSaveAmountSelected$ = this.autoSaveSvc.autoSaveAmountSelected;\n autoSaveOnOff$ = this.autoSaveSvc.autoSaveOnOff;\n isOkToPost$ = this.autoSaveSvc.isOkToPost;\n options$ = this.autoSaveSvc.currentSelectionOption;\n processing$ = this.autoSaveSvc.processing;\n\n constructor(\n private autoSaveSvc: AutosaveService,\n private route: ActivatedRoute,\n private router: Router,\n private _location: Location\n ) {\n if (this.route.snapshot.data['routeOnSuccess']) {\n this.autoSaveSvc.routeOnSuccess = this.route.snapshot.data['routeOnSuccess'];\n }\n if (this.route.snapshot.data['routeOnBack']) {\n this.autoSaveSvc.routeOnBack = this.route.snapshot.data['routeOnBack'];\n }\n }\n\n ngOnInit() {\n this.autoSaveSvc.getAutoSavingsInfo(true);\n }\n\n onSubmit() {\n this.autoSaveSvc.createAutoSaveSchedule();\n }\n\n autosaveAmount($event: number) {\n this.autoSaveSvc.setAutoSaveAmount($event);\n }\n\n toggleAutoSaveFeature($event: boolean) {\n this.autoSaveSvc.setAutoSaveFeature($event);\n }\n routeUserOnBack() {\n if (this.autoSaveSvc.routeOnBack) {\n this.router.navigate(this.autoSaveSvc.routeOnBack);\n } else {\n this._location.back();\n }\n }\n}\n","<bw-action-article\n class=\"autosave-settings\"\n [brightsideWebFb]=\"{ event_name: 'autosave_select' }\"\n *ngIf=\"simpleSelectorVal$ | async as amountSelected; else spinner\"\n>\n <div header-actions>\n <ui-nav-exit-back\n [trackingDetail]=\"{ event_name: 'autosave_select' }\"\n (exitActionHandler)=\"routeUserOnBack()\"\n ></ui-nav-exit-back>\n </div>\n <div header-title>\n <typography title-large color=\"var(--primary-text)\">\n {{ autoSaveTitle | translate }}\n </typography>\n </div>\n <div content-section>\n <div class=\"autosave-settings__content-section\">\n <typography text-small-regular color=\"var(--secondary-text)\" class=\"mb-sm\">\n {{ autoSaveDescription | translate }}\n </typography>\n\n <ng-container *ngIf=\"options$ | async as options\">\n <bw-bui-tile\n *ngFor=\"let option of options\"\n tileHeight=\"72px\"\n tileWidth=\"400px\"\n tileMargin=\"0 0 8px 0\"\n [tileBorder]=\"option.value === amountSelected ? '1px solid #005fff' : '1px solid #f2f7ff'\"\n >\n <bui-tile-card\n tabindex=\"0\"\n (click)=\"autosaveAmount(option.value)\"\n (keyup.enter)=\"autosaveAmount(option.value)\"\n cardBackground=\"var(--bg-blue)\"\n >\n <bw-bui-row rightIconName=\"checkmark\" [rightIconColor]=\"option.value === amountSelected ? '#005fff' : '#757575'\">\n <div class=\"row-content\">\n <bw-bui-column\n [rowSpacing]=\"4\"\n [rows]=\"[\n {\n type: 'label',\n content: option.value !== recommendedValue ? '' : ('RECOMMENDED' | translate),\n color: option.value === amountSelected ? 'var(--blue-50)' : 'var(--primary-text)'\n },\n {\n type: 'detail',\n content: 'AUTOSAVE_SELECT_AMOUNT' | translate : { amount: option.value },\n color: option.value === amountSelected ? 'var(--blue-50)' : 'var(--primary-text)'\n }\n ]\"\n >\n </bw-bui-column>\n </div>\n </bw-bui-row>\n </bui-tile-card>\n </bw-bui-tile>\n </ng-container>\n </div>\n </div>\n <div footer-actions>\n <button\n bw-button\n type=\"submit\"\n [brightsideWebFb]=\"{ event_name: 'autosave_select' }\"\n (click)=\"onSubmit()\"\n [processing]=\"processing$ | async\"\n >\n {{ 'AUTOSAVE_SELECT_CTA1' | translate : { amount: amountSelected } }}\n </button>\n <button bw-link-button (click)=\"chooseOwn()\" [brightsideWebFb]=\"{ event_name: 'autosave_select' }\" [secondaryCta]=\"true\">\n {{ 'AUTOSAVE_SELECT_CTA2' | translate }}\n </button>\n </div>\n</bw-action-article>\n\n<ng-template #spinner>\n <bw-spinner></bw-spinner>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { AutosaveService } from '../autosave.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BehaviorSubject, Subscription, of } from 'rxjs';\nimport { Location } from '@angular/common';\nimport { CurrencySelectAmountOption } from '@brightside/brightside-ui';\n\n@Component({\n selector: 'brightside-web-autosave-simple-selector',\n templateUrl: './autosave-simple-selector.component.html',\n styleUrls: ['./autosave-simple-selector.component.scss'],\n providers: [AutosaveService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutosaveSimpleSelectorComponent implements OnInit {\n sub = new Subscription();\n\n options$ = this.autoSaveSvc.currentSelectionOption;\n processing$ = this.autoSaveSvc.processing;\n\n simpleSelectorVal$: BehaviorSubject<number> = new BehaviorSubject<number>(50);\n\n autoSaveTitle: string;\n autoSaveDescription: string; \n recommendedValue: number = 50; \n options: [];\n chooseOwnRoute: [];\n\n private _defaultOptions: CurrencySelectAmountOption[];\n\n constructor(\n private autoSaveSvc: AutosaveService,\n private _route: ActivatedRoute,\n private router: Router, \n private _location: Location\n ) {\n if (this._route.snapshot.data['routeOnSuccess']) {\n this.autoSaveSvc.routeOnSuccess = this._route.snapshot.data['routeOnSuccess'];\n }\n if (this._route.snapshot.data['routeOnBack']) {\n this.autoSaveSvc.routeOnBack = this._route.snapshot.data['routeOnBack'];\n }\n\n this.autoSaveTitle = this._route.snapshot.data.title || 'AUTOSAVE_SELECT_TITLE';\n this.autoSaveDescription = this._route.snapshot.data.description || 'AUTOSAVE_SELECT_DESC';\n\n if(this._route.snapshot.data.options && this._route.snapshot.data.options.length) {\n this.options = this._route.snapshot.data.options;\n this._defaultOptions = this.options.map(o => ({\n value: o,\n selected: false\n }))\n this.options$ = of(this._defaultOptions);\n }\n\n if (this._route.snapshot.data.recommendedValue) {\n this.recommendedValue = this._route.snapshot.data.recommendedValue\n this.simpleSelectorVal$.next(this.recommendedValue);\n }\n\n this.chooseOwnRoute = this._route.snapshot.data.chooseOwnRoute;\n }\n\n ngOnInit(): void {\n this.autoSaveSvc.getAutoSavingsInfo(true);\n }\n\n onSubmit() {\n this.sub.add(\n this.simpleSelectorVal$.subscribe((value) => {\n this.autoSaveSvc.setAutoSaveAmount(value); \n this.autoSaveSvc.createAutoSaveSchedule();\n })\n );\n }\n\n chooseOwn() { \n if (this.chooseOwnRoute) {\n this.router.navigate(this.chooseOwnRoute);\n } else {\n this.router.navigate(['accounts', 'loans', 'creation', 'autosave']);\n } \n }\n\n routeUserOnBack() { \n if (this.autoSaveSvc.routeOnBack) {\n this.router.navigate(this.autoSaveSvc.routeOnBack);\n } else {\n this._location.back();\n }\n }\n\n autosaveAmount(amount: number) {\n this.simpleSelectorVal$.next(amount);\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'brightside-web-pls-intro',\n templateUrl: './pls-intro.component.html',\n styleUrls: ['./pls-intro.component.scss'],\n})\nexport class PlsIntroComponent implements OnInit {\n introCtaCopy: string = 'CONTEST_INTRO_CTA1';\n private _origin: string;\n\n constructor(private _router: Router, private _route: ActivatedRoute, private _location: Location) {}\n\n get fromSavings(): boolean {\n return this._origin === 'savings';\n }\n\n ngOnInit(): void {\n this._origin = this._route.snapshot.queryParams['origin'];\n if (this.fromSavings) {\n this.introCtaCopy = 'CONTEST_INTRO_HAS_SAVINGS_CTA1';\n }\n }\n\n contestIntroClick(): void {\n if (this.fromSavings) {\n this._router.navigate(['../autosave-select'], { relativeTo: this._route });\n } else {\n this._router.navigate(['accounts/savings']);\n }\n }\n\n showRules(): void {\n this._router.navigate(['../contest-rules'], { relativeTo: this._route });\n }\n}\n","<section class=\"content-layout\" [brightsideWebFb]=\"{ event_name: 'contest_intro' }\">\n <bw-action-article>\n <ui-nav-exit-back back-action-top [trackingDetail]=\"{ event_name: 'contest_intro' }\">\n </ui-nav-exit-back>\n\n <div content-section>\n <div class=\"flex-column mb-sm\">\n <div class=\"align-left\">\n <typography text-large-regular color=\"var(--secondary-text)\" class=\"mb-sm\">\n {{ 'CONTEST_INTRO_TITLE' | translate }}\n </typography>\n <p title-medium class=\"mb-sm\">{{ 'CONTEST_INTRO_DESC' | translate }}</p>\n <div class=\"contest-intro__container mt-md\">\n <div class=\"contest-intro__item\">\n <bw-icon iconName=\"money_bag\" color=\"var(--brand)\" [size]=\"50\" backgroundColor=\"var(--bg-blue)\"></bw-icon>\n <div>\n <typography text-small class=\"contest-intro__item-detail-title\">\n {{ 'CONTEST_INTRO_ITEM1_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-intro__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_INTRO_ITEM1_DESC' | translate }}\n </typography>\n </div>\n </div>\n\n <div class=\"contest-intro__item\">\n <bw-icon iconName=\"plant_pot\" color=\"var(--brand)\" [size]=\"50\" backgroundColor=\"var(--bg-blue)\"></bw-icon>\n <div>\n <typography text-small class=\"contest-intro__item-detail-title\">\n {{ 'CONTEST_INTRO_ITEM2_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-intro__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_INTRO_ITEM2_DESC' | translate }}\n </typography>\n </div>\n </div>\n\n <div class=\"contest-intro__item\">\n <bw-icon iconName=\"pen\" color=\"var(--brand)\" [size]=\"50\" backgroundColor=\"var(--bg-blue)\"></bw-icon>\n <div>\n <typography text-small class=\"contest-intro__item-detail-title\">\n {{ 'CONTEST_INTRO_ITEM3_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-intro__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_INTRO_ITEM3_DESC' | translate }}\n </typography>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div footer-actions>\n <button bw-button type=\"submit\" [brightsideWebFb]=\"{ event_name: 'contest_intro' }\" (click)=\"contestIntroClick()\">\n {{ introCtaCopy | translate }}\n </button>\n <button bw-link-button [secondaryCta]=\"true\" [brightsideWebFb]=\"{ event_name: 'contest_intro' }\" (click)=\"showRules()\">\n <span [innerHTML]=\"'CONTEST_INTRO_RULES' | translate\"></span>\n </button>\n </div>\n </bw-action-article>\n</section>\n","import { Component } from '@angular/core';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'brightside-web-pls-intro',\n templateUrl: './pls-official-rules.component.html',\n styleUrls: ['./pls-official-rules.component.scss'],\n})\nexport class PlsOfficialRulesComponent {\n constructor(private _location: Location) {}\n\n backToIntro(): void {\n this._location.back();\n }\n}\n","<section class=\"content-layout\" [brightsideWebFb]=\"{ event_name: 'contest_intro' }\">\n <bw-action-article>\n <ui-nav-exit-close back-action-top [trackingDetail]=\"{ event_name: 'contest_intro' }\" (exitActionHandler)=\"backToIntro()\">\n </ui-nav-exit-close>\n\n <div content-section>\n <div class=\"flex-column mb-sm\">\n <div class=\"align-left\">\n <typography text-large-regular color=\"var(--secondary-text)\" class=\"mb-sm\">\n {{ 'CONTEST_RULES_TITLE' | translate }}\n </typography>\n <p title-medium class=\"mb-sm\">{{ 'CONTEST_RULES_DESC' | translate }}</p>\n <typography text-small color=\"var(--secondary-text)\" class=\"mb-sm\">\n <div [innerHTML]=\"'CONTEST_RULES_BODY' | translate\"></div>\n </typography>\n </div>\n </div>\n </div>\n </bw-action-article>\n</section>\n","<section\n *ngIf=\"numberOfWinners$ | async as numberOfWinners; else spinner\"\n class=\"content-layout\"\n [brightsideWebFb]=\"{ event_name: 'contest_details' }\"\n>\n <bw-action-article>\n <ui-nav-exit-back\n back-action-top\n [trackingDetail]=\"{ event_name: 'contest_details' }\"\n (exitActionHandler)=\"backToSavingsDashboard()\"\n ></ui-nav-exit-back>\n\n <div content-section>\n <div class=\"flex-column mb-sm\">\n <div class=\"align-left\">\n <img src=\"../assets/rewards_pig.svg\" alt=\"contest-details\" class=\"mb-md\" />\n <typography text-large-regular color=\"var(--secondary-text)\" class=\"mb-sm\">\n {{ 'CONTEST_DETAILS_TITLE' | translate }}\n </typography>\n <p title-medium class=\"mb-sm\" *ngIf=\"numberOfWinners\">\n {{ 'CONTEST_DETAILS_DESC' | translate : { numberOfWinners } }}\n </p>\n <div class=\"contest-details__container\">\n <div class=\"contest-details__item\">\n <div>\n <typography text-small class=\"contest-details__item-detail-title\">\n {{ 'CONTEST_DETAILS_ITEM1_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-details__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_DETAILS_ITEM1_DESC' | translate }}\n </typography>\n </div>\n </div>\n\n <div class=\"contest-details__item\">\n <div>\n <typography text-small class=\"contest-details__item-detail-title\">\n {{ 'CONTEST_DETAILS_ITEM2_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-details__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_DETAILS_ITEM2_DESC' | translate }}\n </typography>\n </div>\n </div>\n\n <div class=\"contest-details__item\">\n <div>\n <typography text-small class=\"contest-details__item-detail-title\">\n {{ 'CONTEST_DETAILS_ITEM3_TITLE' | translate }}\n </typography>\n <typography text-small class=\"contest-details__item-detail\" color=\"var(--secondary-text)\">\n {{ 'CONTEST_DETAILS_ITEM3_DESC' | translate }}\n </typography>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div footer-actions>\n <button bw-link-button [secondaryCta]=\"true\" [brightsideWebFb]=\"{ event_name: 'contest_details' }\" (click)=\"showRules()\">\n <span [innerHTML]=\"'CONTEST_DETAILS_RULES' | translate\"></span>\n </button>\n </div>\n </bw-action-article>\n</section>\n\n<ng-template #spinner>\n <bw-spinner></bw-spinner>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlsIntroComponent } from './pls-intro/pls-intro.component';\nimport { BrightsideUiModule } from '@brightside/brightside-ui';\nimport { RouterModule, Routes } from '@angular/router';\nimport { MicroUiMoleculeModule } from '@micro-ui/molecule';\nimport { SharedDesktopModule } from '@brightside-web/shared/desktop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PlsOfficialRulesComponent } from './pls-official-rules/pls-official-rules.component';\nimport {\n AutosaveService,\n AutosaveSettingsComponent,\n AutosaveSimpleSelectorComponent,\n} from '@brightside-web/desktop/feature/autosave';\nimport { PlsContestRewardsComponent } from './pls-contest-rewards/pls-contest-rewards.component';\nimport { PlsService } from './pls.service';\n\nconst routes: Routes = [\n {\n path: 'contest-intro',\n component: PlsIntroComponent,\n },\n {\n path: 'contest-rules',\n component: PlsOfficialRulesComponent,\n },\n {\n path: 'autosave-select',\n component: AutosaveSimpleSelectorComponent,\n data: {\n routeOnSuccess: ['accounts/savings/dashboard'],\n title: 'AUTOSAVE_SELECT_CONTEST_TITLE',\n description: 'AUTOSAVE_SELECT_DESC',\n recommendedValue: 15,\n options: [10, 15, 20],\n chooseOwnRoute: ['pls/autosave'],\n },\n },\n {\n path: 'autosave',\n component: AutosaveSettingsComponent,\n data: {\n routeOnSuccess: ['accounts/savings/dashboard'],\n },\n },\n {\n path: 'contest-details',\n component: PlsContestRewardsComponent,\n },\n {\n path: '**',\n redirectTo: 'contest-intro',\n },\n];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forChild(routes),\n SharedDesktopModule, \n BrightsideUiModule,\n MicroUiMoleculeModule,\n TranslateModule,\n ],\n declarations: [PlsIntroComponent, PlsOfficialRulesComponent, PlsContestRewardsComponent],\n providers: [PlsService, AutosaveService],\n})\nexport class DesktopFeaturePrizeLinkSavingsModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PlsService } from '../pls.service';\nimport { Observable, map } from 'rxjs';\n\n@Component({\n selector: 'brightside-web-pls-contest-rewards',\n templateUrl: './pls-contest-rewards.component.html',\n styleUrls: ['./pls-contest-rewards.component.scss'],\n})\nexport class PlsContestRewardsComponent implements OnInit {\n numberOfWinners$: Observable<number | undefined>;\n\n constructor(private _router: Router, private _route: ActivatedRoute, private _plsService: PlsService) {}\n\n ngOnInit(): void {\n this.numberOfWinners$ = this._plsService.getContestInfo().pipe(\n map((contests) => contests.find((c: any) => [1, 2].includes(c.id))),\n map((contest) => contest?.messageValues?.numberOfWinners)\n );\n }\n\n backToSavingsDashboard(): void {\n this._router.navigate(['accounts', 'savings', 'dashboard']);\n }\n\n showRules(): void {\n this._router.navigate(['../contest-rules'], { relativeTo: this._route });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { PhonePipe, SharedDesktopModule } from '@brightside-web/shared/desktop';\nimport { BrightsideUiModule, CellSeparatorType } from '@brightside/brightside-ui';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'brightside-web-sweepstakes-amoe',\n standalone: true,\n imports: [CommonModule, BrightsideUiModule, SharedDesktopModule, TranslateModule],\n templateUrl: './sweepstakes-amoe.component.html',\n styleUrls: ['./sweepstakes-amoe.component.scss'],\n providers: [PhonePipe],\n})\nexport class SweepstakesAmoeComponent {\n clientDetails: {fName:string,lName:string,phone:string};\n\n constructor(private _route: ActivatedRoute, private _phonePipe: PhonePipe) {}\n\n ngOnInit() {\n this.clientDetails = {\n fName: this._route.snapshot.queryParams['fName'] || '',\n lName: this._route.snapshot.queryParams['lName'] || '',\n phone: this._phonePipe.transform(this._route.snapshot.queryParams['phone']),\n };\n }\n\n}\n","<bw-action-article [brightsideWebFb]=\"{event_name: 'contest-amoe'}\" [minHeight]=\"0\" [edgeToEdge]=\"false\">\n\n <div header-title>\n <bw-header [eyebrow]=\"true\"\n [title]=\"'CONTEST_AMOE_LEGAL_SUB_TITLE'|translate\"\n [description]=\"'CONTEST_AMOE_LEGAL_TITLE'|translate\">\n </bw-header>\n </div>\n <div content-section>\n <p text-large-regular\n color=\"var(--secondary-text)\"\n class=\"mb-sm\"\n [innerHTML]=\"'CONTEST_AMOE_LEGAL_CONTENT_SUB_TITLE'|translate\">\n </p>\n <bw-cell\n [separatorType]=\"'full'\"\n [contentLeft]=\"true\"\n [contentRight]=\"true\"\n >\n <ng-container content-left>\n <p text-large-regular class=\"truncate-line\">{{ 'CONTEST_AMOE_LEGAL_CONTENT_FNAME_LABEL' | translate }}</p>\n </ng-container>\n\n <ng-container content-right>\n <p text-large-regular class=\"truncate-line\">{{ clientDetails.fName | translate }}</p>\n </ng-container>\n </bw-cell>\n <bw-cell\n [separatorType]=\"'full'\"\n [contentLeft]=\"true\"\n [contentRight]=\"true\"\n >\n <ng-container content-left>\n <p text-large-regular class=\"truncate-line\">{{ 'CONTEST_AMOE_LEGAL_CONTENT_LNAME_LABEL' | translate }}</p>\n </ng-container>\n\n <ng-container content-right>\n <p text-large-regular class=\"truncate-line\">{{ clientDetails.lName | translate }}</p>\n </ng-container>\n </bw-cell>\n <bw-cell\n [separatorType]=\"'full'\"\n [contentLeft]=\"true\"\n [contentRight]=\"true\"\n >\n <ng-container content-left>\n <p text-large-regular class=\"truncate-line\">{{ 'CONTEST_AMOE_LEGAL_CONTENT_PHONE_LABEL' | translate }}</p>\n </ng-container>\n\n <ng-container content-right>\n <p text-large-regular class=\"truncate-line\">{{ clientDetails.phone | translate }}</p>\n </ng-container>\n </bw-cell>\n\n </div>\n</bw-action-article>\n"],"x_google_ignoreList":[]}