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