{"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":[]}