{"version":3,"file":"2588.3586f878c7f03555.js","mappings":"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","names":["OnboardingSuccessComponent","_OnboardingSuccessComponent","constructor","onboardingService","route","this","translatePath","TRANSLATE_ROOT","actionUrl","backgroundUrl","DEFAULT_BACKGROUND_URL","backgroundPosition","DEFAULT_BACKGROUND_POSITION","params","isSuccess","onDestroy$","Subject","ngOnInit","routeOnboardingMeta$","pipe","takeUntil","subscribe","routeId","PROJECT_DETAIL_ROUTE","console","log","queryParams","id","state","JSON","stringify","status","error","warn","i0","i1","i2","selectors","standalone","features","decls","vars","consts","template","rf","ctx","_c0","IonButton","RouterLink","OnboardingService","_OnboardingService","publishService","translate","router","routeOnboardingType$","events","filter","event","NavigationEnd","map","_","firstChild","mergeMap","data","ROUTE_DATA_PROP","shareReplay","getMetaForRoute","getTranslatePath","OnboardingTypes","Weddings","Teams","None","createCollabStacksForWedding","userId","username","projectId","_this","_asyncToGenerator","input","credits","privacy","STACK_PRIVACY","PUBLIC","playlist","isCollaborative","title","instant","poster","receptionStack","createStackDraft","i3","factory","ɵfac","providedIn"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/onboarding/onboarding-success/onboarding-success.component.ts","./src/app/onboarding/onboarding-success/onboarding-success.component.html","./src/app/onboarding/shared/services/onboarding.service.ts"],"sourcesContent":["/**\n * The customers will be redirected to this URL upon successful checkout.\n * The hosted page id and state will be passed as parameters to this URL.\n *\n * @note\n * Although the customer will be redirected to the redirect_url after successful checkout,\n * we do not recommend relying on it for completing critical post-checkout actions.\n * This is because redirection may not happen due to unforeseen reasons such as user closing the tab,\n * or exiting the browser, and so on. If there is any synchronization that you are doing after the redirection,\n * you will have to have a backup. Chargebee recommends listening to appropriate webhooks such as\n * subscription_created or invoice_generated to verify a successful checkout.\n * Redirect URL configured in Settings > Hosted Pages Settings would be overriden by this redirect URL.\n *\n * http://yoursite.com?id=<hosted_page_id>&state=succeeded\n *\n * @format\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\nimport { PROJECT_DETAIL_ROUTE } from '@app/app.routes';\nimport {\n  DEFAULT_BACKGROUND_POSITION,\n  DEFAULT_BACKGROUND_URL,\n  TRANSLATE_ROOT,\n} from '@app/onboarding/shared/onboarding.model';\nimport { OnboardingService } from '@app/onboarding/shared/services/onboarding.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { IonButton } from '@ionic/angular/standalone';\n\n@Component({\n  selector: 'app-onboarding-success',\n  templateUrl: './onboarding-success.component.html',\n  styleUrls: ['./onboarding-success.component.scss'],\n  standalone: true,\n  imports: [IonButton, RouterLink],\n})\nexport class OnboardingSuccessComponent implements OnInit {\n  translatePath = TRANSLATE_ROOT;\n  actionUrl = '/studio';\n  routeId: string;\n  backgroundUrl = DEFAULT_BACKGROUND_URL;\n  backgroundPosition = DEFAULT_BACKGROUND_POSITION;\n  params = '';\n  isSuccess = false;\n\n  private onDestroy$ = new Subject<void>();\n\n  constructor(private onboardingService: OnboardingService, private route: ActivatedRoute) {}\n\n  ngOnInit(): void {\n    this.onboardingService.routeOnboardingMeta$\n      .pipe(takeUntil(this.onDestroy$))\n      .subscribe(({ routeId, translatePath = '', actionUrl = '', backgroundUrl = '', backgroundPosition = '' }) => {\n        this.routeId = routeId;\n        this.translatePath = translatePath;\n        this.actionUrl = `/${PROJECT_DETAIL_ROUTE}/`; // todo: have the projectId\n        this.backgroundUrl = backgroundUrl;\n        this.backgroundPosition = backgroundPosition;\n        console.log('OnboardingSuccess', { routeId, actionUrl });\n      });\n\n    // queryparams\n    this.route.queryParams.pipe(takeUntil(this.onDestroy$)).subscribe((params) => {\n      console.log('OnboardingSuccess queryparams:', params);\n      try {\n        // id=<hosted_page_id>&state=succeeded\n        if (params?.id && params?.state) {\n          this.isSuccess = true;\n          this.params = JSON.stringify({ id: params.id, state: params.state });\n          console.log(`OnboardingSuccess queryParams found:`, { id: params.id, state: params.state });\n        } else {\n          this.isSuccess = false;\n          this.params = JSON.stringify({ status: 'not found', params });\n        }\n      } catch (error) {\n        console.warn(error);\n      }\n    });\n  }\n}\n","<div class=\"container light\">\n  <p>SUCCESS{{ isSuccess ? '!' : '?'}}</p>\n  \n  <pre>{{params}}</pre>\n\n  <ion-button [routerLink]=\"['/stack/studio']\">HOME</ion-button>\n</div>","/** @format */\n\nimport { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { filter, map, mergeMap, shareReplay } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OnboardingTypes, OnboardingMeta, getTranslatePath, ROUTE_DATA_PROP } from '../onboarding.model';\nimport { STACK_PRIVACY, Stack, StackDraftPublishInput } from '@app/shared/models/stack.model';\nimport { PublishStackService } from '@app/core/services/publish-stack.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class OnboardingService {\n  /**\n   * use with takeUntil(this.onDestroy$),\n   * @todo consider where this should live\n   */\n  routeOnboardingType$: Observable<OnboardingTypes> = this.router.events.pipe(\n    filter((event) => event instanceof NavigationEnd),\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    map((_) => this.route),\n    map((route) => {\n      while (route.firstChild) {\n        route = route.firstChild;\n      }\n      return route;\n    }),\n    mergeMap((route) => route.data),\n    map((data) => data[ROUTE_DATA_PROP]),\n    shareReplay(1)\n  );\n\n  /**\n   * use with takeUntil(this.onDestroy$),\n   */\n  routeOnboardingMeta$: Observable<OnboardingMeta> = this.routeOnboardingType$.pipe(\n    map((routeId: OnboardingTypes) => this.getMetaForRoute(routeId)),\n    shareReplay(1)\n  );\n\n  constructor(\n    private publishService: PublishStackService,\n    private translate: TranslateService,\n    private router: Router,\n    private route: ActivatedRoute\n  ) {}\n\n  getMetaForRoute(routeId: string): OnboardingMeta {\n    const translatePath = getTranslatePath(routeId);\n    switch (routeId) {\n      case OnboardingTypes.Weddings:\n        return {\n          routeId,\n          translatePath,\n          actionUrl: `/events/weddings/`,\n          backgroundUrl: '/assets/images/events/weddings-bride@2.jpg',\n          backgroundPosition: 'bottom right',\n        };\n      case OnboardingTypes.Teams:\n        return {\n          routeId,\n          translatePath,\n          actionUrl: `/events/`,\n          backgroundUrl: '/assets/images/events/crowd-filming@2.jpg',\n          backgroundPosition: 'center',\n        };\n      case OnboardingTypes.Pro:\n      case OnboardingTypes.Projects:\n      case OnboardingTypes.None:\n      default:\n        return {\n          routeId: (routeId as OnboardingTypes) || OnboardingTypes.None,\n          translatePath,\n          actionUrl: `/pro/`,\n          backgroundUrl: '/assets/images/events/crowd-filming@2.jpg',\n          backgroundPosition: 'center',\n          // this.sideBlocks = this.buildSideBlocks('');\n        };\n    }\n  }\n\n  /**\n   * On successful signup, create 2 collab drafts for Guests [MVP-1367]\n   * The owner should be the person who just signed up\n   * 1: Reception\n   *    poster: https://app.filmstacker.com/assets/images/events/weddings-jump@1.jpg\n   * 2: Ceremony (created second so it shows up first?)\n   *    poster: https://app.filmstacker.com/assets/images/events/weddings-hands@1.jpg\n   */\n  async createCollabStacksForWedding({ userId, username, projectId }): Promise<Array<Stack>> {\n    console.warn('create the collab stacks!', { userId, username, projectId });\n    try {\n      const input: StackDraftPublishInput = {\n        userId,\n        credits: username,\n        projectId,\n        privacy: STACK_PRIVACY.PUBLIC,\n        playlist: [],\n        isCollaborative: 1,\n        title: this.translate.instant('ONBOARDING.COMMON.STACK_TITLE_RECEPTION'),\n        poster: 'https://app.filmstacker.com/assets/images/events/weddings-jump@1.jpg',\n      };\n      const receptionStack = await this.publishService.createStackDraft(input);\n      // ok, now the Ceremony\n      input.title = this.translate.instant('ONBOARDING.COMMON.STACK_TITLE_CEREMONY');\n      input.poster = 'https://app.filmstacker.com/assets/images/events/weddings-hands@1.jpg';\n      const ceremonyStack = await this.publishService.createStackDraft(input);\n      return [receptionStack, ceremonyStack];\n    } catch (error) {\n      console.error(error);\n      throw error;\n    }\n  }\n}\n"],"x_google_ignoreList":[]}