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