{"version":3,"file":"6333.5c2a71c33b19de53.js","mappings":"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","names":["i0","slide_r2","heading","title","description","_r3","ctx_r3","continue","imageLg","imageSm","_r5","WidgetSplashPage_swiper_slide_3_ng_template_5_div_0_img_1_Template","WidgetSplashPage_swiper_slide_3_ng_template_5_div_0_img_2_Template","WidgetSplashPage_swiper_slide_3_ng_template_5_div_0_Template","$event","btn_r7","_r6","$implicit","onBtnAction","action","_r8","startApp","_r9","_r10","startAppText","WidgetSplashPage_swiper_slide_3_h1_1_Template","WidgetSplashPage_swiper_slide_3_h2_2_Template","WidgetSplashPage_swiper_slide_3_div_3_Template","WidgetSplashPage_swiper_slide_3_ng_container_4_Template","WidgetSplashPage_swiper_slide_3_ng_template_5_Template","WidgetSplashPage_swiper_slide_3_ion_button_8_Template","WidgetSplashPage_swiper_slide_3_div_10_Template","WidgetSplashPage_swiper_slide_3_ion_fab_11_Template","WidgetSplashPage_swiper_slide_3_div_12_Template","notBothImages_r11","buttons","hideSkip","isEnd","hideContinue","PAGE","ImageTypes","Clips","Stacks","Storylines","Share","WidgetSplashPage","_WidgetSplashPage","swiper","_b","_a","this","swiperRef","nativeElement","constructor","store","navCtrl","menu","configService","swiperModules","IonicSlides","slidesPerView","navOnStart","navOnStartParams","showSkip","isStart","imageTypes","ngOnInit","slides","appConfig","then","config","resetSlides","splash","tourClipsDescription","tourStacksDescription","tourStorylinesDescription","tourShareDescription","tourDoneBtnText","append","isWidgetActive","navStart","navStartParams","unshift","btnText","setTourSeen","dispatch","viewstateActions","console","log","navigateRoot","id","PROJECT_DETAIL_ROUTE","projectId","DISCOVER_PAGE","slideNext","event","Utils","tryStopPropagation","onSlideReachEnd","onSlideReachStart","onSlideTap","isSliderBeginning","_this","_asyncToGenerator","isBeginning","isSliderEnd","_this2","imageType","i1","i2","i3","selectors","viewQuery","rf","ctx","_r1","WidgetSplashPage_swiper_slide_3_Template","_c1","NgFor","NgIf","IonContent","IonButton","IonFab","IonFabButton","IonIcon","styles","opts","extendParams","slidesParams","effect","undefined","direction","initialSlide","loop","parallax","spaceBetween","speed","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","touchEventsTarget","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","zoom","maxRatio","minRatio","toggle","touchRatio","touchAngle","simulateTouch","touchStartPreventDefault","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchReleaseOnEdges","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","preventClicks","preventClicksPropagation","slideToClickedSlide","loopAdditionalSlides","noSwiping","runCallbacksOnInit","coverflowEffect","rotate","stretch","depth","modifier","slideShadows","flipEffect","limitRotation","cubeEffect","shadow","shadowOffset","shadowScale","fadeEffect","crossFade","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","pagination","type","clickable","hideOnClick","scrollbar","hide"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/pages/widget-splash/widget-splash.page.html","./src/app/pages/widget-splash/widget-splash.page.ts","./node_modules/@ionic/core/components/index.js"],"sourcesContent":["<ion-content forceOverflow=\"false\">\n <swiper-container #swiper class=\"tour-slides\" effect=\"slide\" [initialSlide]=\"0\" [slidesPerView]=\"slidesPerView\"\n [speed]=\"400\" [spaceBetween]=\"6\" [modules]=\"swiperModules\"\n [pagination]=\"{\n el: '.swiper-pagination',\n type: 'bullets',\n clickable: true,\n }\"\n (reachend)=\"onSlideReachEnd()\"\n (reachbeginning)=\"onSlideReachStart()\">\n\n <swiper-slide *ngFor=\"let slide of slides\">\n <h1 *ngIf=\"slide.heading\" class=\"slide-intro constrain\" [innerHTML]=\"slide.heading\"></h1>\n <h2 *ngIf=\"slide.title\" class=\"slide-title constrain\" [innerHTML]=\"slide.title\"></h2>\n <div *ngIf=\"slide.description\" class=\"desc constrain\" [innerHTML]=\"slide.description\"></div>\n\n <ng-container *ngIf=\"slide.imageLg && slide.imageSm; else notBothImages\">\n <div class=\"image-wrap constrain\" (click)=\"continue()\">\n <img [src]=\"slide.imageLg\" class=\"ion-hide-md-down\" draggable=\"false\" />\n <img [src]=\"slide.imageSm\" class=\"ion-hide-md-up \" draggable=\"false\" />\n </div>\n </ng-container>\n\n <ng-template #notBothImages>\n <div *ngIf=\"slide.imageLg || slide.imageSm\" class=\"image-wrap constrain\" (click)=\"continue()\">\n <img *ngIf=\"slide.imageLg\" [src]=\"slide.imageLg\" draggable=\"false\" />\n <img *ngIf=\"slide.imageSm\" [src]=\"slide.imageSm\" draggable=\"false\" />\n </div>\n\n\n <!-- deprecated template styling based on imageType -->\n <!-- \n <ng-container *ngIf=\"slide.imageType && !slide.imageLg && !slide.imageSm\">\n <div [ngSwitch]=\"slide.imageType\" [ngClass]=\"['constrain', 'image-types', slide.imageType]\" (click)=\"continue()\">\n \n <div *ngSwitchCase=\"imageTypes.Clips\">\n <div *ngSwitchCase=\"imageTypes.Stacks\"\n <div *ngSwitchCase=\"imageTypes.Storylines\">\n <div *ngSwitchCase=\"imageTypes.Share\">\n </div>\n </ng-container> -->\n </ng-template>\n\n <div class=\"btn-wrapper constrain\">\n <ion-button *ngFor=\"let btn of slide.buttons\" class=\"action-btns\" color=\"light\"\n (click)=\"onBtnAction(btn.action, $event)\">\n {{ btn.title }}\n </ion-button>\n </div>\n\n <div class=\"bottom-actions constrain\">\n <div *ngIf=\"!slide.hideSkip\" class=\"skip-btn\">\n <ion-button fill=\"clear\" class=\"ion-text-uppercase\" color=\"light\" (click)=\"startApp()\">\n Skip\n </ion-button>\n </div>\n\n <ion-fab *ngIf=\"!isEnd && !slide.hideContinue\" vertical=\"bottom\" horizontal=\"end\" class=\"fab-continue\"\n slot=\"fixed\">\n <ion-fab-button color=\"light\" (click)=\"continue()\">\n <ion-icon name=\"arrow-forward\"></ion-icon>\n </ion-fab-button>\n </ion-fab>\n\n <div *ngIf=\"isEnd && slide.hideContinue\" class=\"start-btn btn-wrapper\">\n <ion-button class=\"action-btns\" color=\"light\" (click)=\"startApp()\">\n {{ slide.startAppText || 'Get Started!' }}\n </ion-button>\n </div>\n </div>\n\n </swiper-slide>\n\n </swiper-container>\n\n</ion-content>","/** @format */\n\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { NgFor, NgIf } from '@angular/common';\nimport {\n MenuController,\n IonicSlides,\n NavController,\n IonContent,\n IonButton,\n IonFab,\n IonFabButton,\n IonIcon,\n} from '@ionic/angular/standalone';\nimport { Store } from '@ngrx/store';\nimport { State } from '@store/reducers';\nimport * as viewstateActions from '@store/actions/viewstate.actions';\nimport { ConfigService } from '@app/core/config/config.service';\nimport { Utils } from '@app/shared/utils';\nimport { DISCOVER_PAGE, PROJECT_DETAIL_ROUTE } from '@app/app.routes';\n\nconst PAGE = '[WidgetSplash]';\n\nexport interface SplashSlide {\n title: string; // title is required\n heading?: string;\n description: string;\n imageLg?: string;\n imageSm?: string;\n buttons?: Array<{\n title: string;\n action: string;\n }>;\n hideSkip?: boolean;\n hideContinue?: boolean;\n imageType?: string;\n imageConfig?: {\n poster?: string;\n title?: string;\n date?: string;\n poster2?: string;\n title2?: string;\n date2?: string;\n };\n startAppText?: string;\n}\n\nenum ImageTypes {\n Clips = 'clips',\n Stacks = 'stacks',\n Storylines = 'storylines',\n Share = 'share',\n}\n\n@Component({\n selector: 'app-widget-splash',\n templateUrl: './widget-splash.page.html',\n styleUrls: ['./widget-splash.page.scss'],\n standalone: true,\n imports: [NgFor, NgIf, IonContent, IonButton, IonFab, IonFabButton, IonIcon],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class WidgetSplashPage implements OnInit {\n // https://ionicframework.com/docs/api/components/slides/Slides/\n @ViewChild('swiper', { static: false }) swiperRef: ElementRef | undefined;\n swiperModules = [IonicSlides];\n slidesPerView = 1;\n /*\n note: pagination not working... using default:true for now\n {\n el: '.swiper-pagination',\n type: 'bullets',\n clickable: true,\n }\n */\n\n get swiper() {\n return this.swiperRef?.nativeElement?.swiper;\n }\n\n navOnStart: string = '/stack/discover';\n navOnStartParams: { [id: string]: string } = {};\n\n slides: SplashSlide[];\n showSkip = true;\n\n isEnd: boolean = false;\n isStart: boolean = true;\n\n imageTypes = ImageTypes;\n\n constructor(\n private store: Store<State>,\n private navCtrl: NavController,\n private menu: MenuController,\n private configService: ConfigService\n ) {}\n\n ngOnInit() {\n // create tutorial slides\n this.slides = [\n {\n title: 'Loading...',\n description: '',\n },\n ];\n\n // load config and insert at beginning of slides\n this.configService.appConfig.then((config) => {\n if (!config) {\n this.resetSlides();\n return;\n }\n\n // const clipPoster = 'assets/images/widget-splash/widget-clip.png';\n\n this.slides = [\n {\n title: 'Clips',\n description: config.splash.tourClipsDescription,\n imageSm: 'assets/images/widget-splash/widget-clip.png',\n /**\n * removed template logic, using image instead\n */\n // imageType: ImageTypes.Clips,\n // imageConfig: {\n // poster: clipPoster,\n // title: config.splash.tourClipTitle,\n // date: config.splash.tourClipDate,\n // },\n },\n {\n title: 'Filmstacks',\n description: config.splash.tourStacksDescription,\n imageLg: 'assets/images/widget-splash/widget-stack.png',\n /**\n * removed template logic, using image instead\n */\n // imageType: ImageTypes.Stacks,\n // imageConfig: {\n // poster: clipPoster,\n // poster2: clipPoster,\n // title: config.splash.tourStacksClipTitle1,\n // title2: config.splash.tourStacksClipTitle2,\n // date: config.splash.tourStacksClipDate1,\n // date2: config.splash.tourStacksClipDate2,\n // },\n },\n {\n title: 'Storylines',\n description: config.splash.tourStorylinesDescription,\n imageLg: 'assets/images/widget-splash/widget-storylines.png',\n // imageType: ImageTypes.Storylines,\n },\n {\n title: 'Share',\n description: config.splash.tourShareDescription,\n // imageType: ImageTypes.Share,\n imageLg: 'assets/images/widget-splash/widget-share.png',\n hideContinue: true,\n hideSkip: true,\n startAppText: config.splash.tourDoneBtnText || 'GET STARTED',\n },\n ];\n\n const append = config.isWidgetActive\n ? `This tool is powered by <a href=\"https://app.filmstacker.com\" target=\"fsr\">Filmstacker</a>. A fun and easy way to create and share video stories.`\n : '';\n\n if (config.splash.navStart) {\n this.navOnStart = config.splash.navStart;\n }\n if (config.splash.navStartParams) {\n this.navOnStartParams = config.splash.navStartParams;\n }\n\n if (config.splash.heading || config.splash.title || config.splash.description) {\n this.slides.unshift({\n heading: config.splash.heading || '',\n title: config.splash.title || '',\n description: config.splash.description ? `${config.splash.description}<br><br>${append}` : `${append}`,\n buttons: [\n {\n title: config.splash.btnText || 'Get Started!',\n action: 'startSlides',\n },\n ],\n hideSkip: false,\n hideContinue: true,\n });\n }\n });\n }\n\n setTourSeen() {\n this.store.dispatch(viewstateActions.tourSeenWidgetSplash());\n }\n\n startApp() {\n console.log(`${PAGE} startApp`, this.navOnStart, this.navOnStartParams);\n\n this.configService.appConfig.then((config) => {\n switch (this.navOnStart) {\n case 'project': {\n if (this.navOnStartParams && this.navOnStartParams.id) {\n this.navCtrl.navigateRoot([`/${PROJECT_DETAIL_ROUTE}`, this.navOnStartParams.id]);\n } else if (config.projectId) {\n this.navCtrl.navigateRoot([`/${PROJECT_DETAIL_ROUTE}`, config.projectId]);\n } else {\n this.navCtrl.navigateRoot([`/${DISCOVER_PAGE}`]);\n }\n break;\n }\n case 'discover':\n default: {\n this.navCtrl.navigateRoot([`/${DISCOVER_PAGE}`]);\n }\n }\n this.setTourSeen(); // do it after, to allow urgent UI response\n });\n }\n\n continue() {\n this.swiper?.slideNext();\n }\n\n onBtnAction(action: string, event) {\n console.log(`action: ${action}`);\n Utils.tryStopPropagation(event);\n switch (action) {\n case 'startApp': {\n this.startApp();\n break;\n }\n case 'startSlides': {\n this.continue();\n break;\n }\n case 'watch':\n // fall through\n case 'explore':\n // fall through\n case 'stack':\n // fall through\n case 'publish':\n // fall through\n default: {\n console.log(`[${PAGE}] onBtnAction:`, action);\n }\n }\n }\n\n /**\n * Instead of this, use onSlideReachEnd && onSlideReachStart\n * if needed in template: (slidechangetransitionstart)=\"onSlideChangeStart(slider)\"\n */\n // async onSlideChangeStart(slider) {\n // this.isEnd = await swiper?.isEnd();\n // this.isStart = await swiper?.isBeginning();\n // console.log({ slider, isEnd: this.isEnd, isStart: this.isStart });\n // }\n\n onSlideReachEnd() {\n // console.log('onSlideReachEnd');\n this.isEnd = true;\n }\n onSlideReachStart() {\n // console.log('onSlideReachStart');\n this.isStart = true;\n }\n\n onSlideTap() {\n if (this.isEnd) {\n this.startApp();\n } else {\n this.swiper?.slideNext();\n }\n }\n\n async isSliderBeginning() {\n return await this.swiper?.isBeginning();\n }\n\n async isSliderEnd() {\n return await this.swiper?.isEnd();\n }\n\n /**\n * NOTE: these are v1, needs updated\n */\n resetSlides() {\n this.slides = [\n {\n title: 'Storylines',\n description:\n 'To help you find clips for your filmstack, explore possible storylines of clips that offer alternative ways to tell your story.',\n imageType: ImageTypes.Storylines,\n imageLg: 'assets/images/widget-splash/widget-storylines.png',\n },\n {\n title: 'Clips',\n //description: \"The building blocks of Filmstacker, clips are under 1-minute videos captured from a phone, tablet or camera. Clips can be uploaded from your device or online sites like YouTube or found on Filmstacker.\",\n // description: \"The building blocks of your film are clips. These videos are super short, typically under 1-minute. Clip titles define the content to help you craft your story.\",\n description:\n 'The building blocks of your film are clips. These videos are super short, typically under 1-minute. As you watch our short films, click the plus button to add clips to your Stack editor.',\n imageLg: 'assets/images/widget-splash/D-Step1-2x.jpg',\n imageSm: 'assets/images/widget-splash/P-Step1-2x.jpg',\n },\n {\n title: 'Stacks',\n description:\n 'Composed of clips, stacks are short films of a narrow focus that are prearranged by Filmstacker and edited by you. Publish it and share on social media.',\n imageLg: 'assets/images/widget-splash/D-Step2-2x.jpg',\n imageSm: 'assets/images/widget-splash/P-Step2-2x.jpg',\n },\n {\n title: 'Projects',\n description:\n 'A place to collect and organize clips and published stacks that share a common purpose. Keep it as a private studio or invite others to be part of your film Crew.',\n imageLg: 'assets/images/widget-splash/D-Step3-2x.jpg',\n imageSm: 'assets/images/widget-splash/P-Step3-2x.jpg',\n },\n {\n title: 'Film Crew',\n description:\n 'Build your own film studio by inviting others to collaborate on your projects. As a private place to create, your Crew will help you upload, arrange and publish stacks. Together, you will elevate your stories out into the world.',\n imageLg: 'assets/images/widget-splash/D-Step4-2x.jpg',\n imageSm: 'assets/images/widget-splash/P-Step4-2x.jpg',\n },\n {\n heading: 'Create your Filmstack',\n title: '',\n description: '<ol><li>Watch</li><li>Explore</li><li>Stack</li><li>Publish</li></ol>',\n imageLg: 'assets/images/widget-splash/bottom-tabs.png',\n imageSm: 'assets/images/widget-splash/bottom-tabs.png',\n buttons: [\n {\n title: 'Start Stacking',\n action: 'startApp',\n },\n ],\n },\n ];\n }\n}\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nexport { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';\nexport { c as createAnimation } from './animation.js';\nexport { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index2.js';\nexport { iosTransitionAnimation } from './ios.transition.js';\nexport { mdTransitionAnimation } from './md.transition.js';\nexport { g as getTimeGivenProgression } from './cubic-bezier.js';\nexport { createGesture } from './index3.js';\nexport { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global.js';\nexport { c as componentOnReady } from './helpers.js';\nexport { I as IonicSafeString, g as getMode, s as setupConfig } from './config.js';\nexport { o as openURL } from './theme.js';\nexport { m as menuController } from './index4.js';\nexport { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays.js';\n\nconst IonicSlides = (opts) => {\n const { swiper, extendParams } = opts;\n const slidesParams = {\n effect: undefined,\n direction: 'horizontal',\n initialSlide: 0,\n loop: false,\n parallax: false,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 300,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0,\n slidesOffsetAfter: 0,\n touchEventsTarget: 'container',\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n autoHeight: false,\n setWrapperSize: false,\n zoom: {\n maxRatio: 3,\n minRatio: 1,\n toggle: false,\n },\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n touchStartPreventDefault: false,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n resistance: true,\n resistanceRatio: 0.85,\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n loopAdditionalSlides: 0,\n noSwiping: true,\n runCallbacksOnInit: true,\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n fadeEffect: {\n crossFade: false,\n },\n a11y: {\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n },\n };\n if (swiper.pagination) {\n slidesParams.pagination = {\n type: 'bullets',\n clickable: false,\n hideOnClick: false,\n };\n }\n if (swiper.scrollbar) {\n slidesParams.scrollbar = {\n hide: true,\n };\n }\n extendParams(slidesParams);\n};\n\nexport { IonicSlides };\n"],"x_google_ignoreList":[2]}