{"version":3,"file":"5734.ad5927be65350d24.js","mappings":"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","names":["i0","ctx_r0","errorMessage","InputComponent","_InputComponent","constructor","this","label","value","placeholder","disabled","type","clearInput","debounce","changed","EventEmitter","selectors","inputs","outputs","standalone","features","decls","vars","consts","template","rf","ctx","$event","emit","detail","InputComponent_div_5_Template","NgIf","IonItem","IonInput","styles","tag_r3","_r2","$implicit","ctx_r3","onClickTag","HomePage_div_17_ion_chip_11_Template","_r1","setTopic","onClickWatch","tags","list_r6","_r5","ngIf","loadMoreStacks","_c0","layoutType","Carousel","stackList_r7","items$","nextToken","loading","HomePage_div_34_app_stack_list_1_Template","isFeatured","list$","myProjects_r8","HomePage_ng_container_44_app_project_list_1_Template","length","HomePage_div_46_div_8_Template","_c1","_c2","LIST_ID_STACKS_FEATURED","LIST_ID_STACKS_RECENT","FILTER_ID","HomePage","_HomePage","store","navCtrl","translate","showCommunity","showPlans","showWatchMakeSection","HOME_TAGS","LAYOUT_TYPE","stackLists","id","LIST_ID_STACKS_MOST_VIEWED","map","item","select","selectList","selectStackListItems","featuredProjects","LIST_ID_PROJECTS_FEATURED","selectProjectListItems","myProjects","LIST_ID_PROJECTS_MINE","selectMyProjects","searchTopic","ngOnInit","get","pipe","take","subscribe","res","dispatch","stackActions","listId","filters","FilterEntityTypes","Featured","Recent","MostViewed","projectActions","ionViewDidEnter","scrollToTop","content","list","tag","navigateForward","DISCOVER_PAGE","queryParams","q","navWeddings","ONBOARD_ROUTE_WEDDINGS","i1","i2","i3","viewQuery","IonContent","HomePage_div_17_Template","HomePage_div_34_Template","HomePage_ng_container_44_Template","HomePage_div_46_Template","HomePage_div_47_Template","NgFor","AsyncPipe","TranslatePipe","RouterLink","TopNavbarComponent","ButtonComponent","CarouselGuidesComponent","FooterComponent","ListTitleComponent","ProjectListComponent","StackListComponent","IonHeader","IonChip","IonLabel"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/shared/components/ui/input/input.component.html","./src/app/shared/components/ui/input/input.component.ts","./src/app/pages/home/home.page.html","./src/app/pages/home/home.page.ts"],"sourcesContent":["<ion-item lines=\"none\" class=\"fs-input\" [class.fs-input--has-error]=\"!!errorMessage\">\n  <ion-input\n    class=\"fs-input__input\"\n    [value]=\"value\"\n    [type]=\"type\"\n    [placeholder]=\"placeholder\"\n    [disabled]=\"disabled\"\n    [clearInput]=\"clearInput\"\n    [debounce]=\"debounce\"\n    labelPlacement=\"stacked\"\n    (ionChange)=\"changed.emit($any($event).detail.value)\"\n  >\n    <div slot=\"label\" class=\"fs-input__label\">\n      <div>\n        {{ label }}\n      </div>\n      <div class=\"fs-input__label--error\" *ngIf=\"errorMessage\">\n        {{ errorMessage }}\n      </div>\n    </div>\n  </ion-input>\n</ion-item>\n","/** @format */\n\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { IonInput, IonItem } from '@ionic/angular/standalone';\n\n@Component({\n  selector: 'fs-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.scss'],\n  standalone: true,\n  imports: [NgIf, IonItem, IonInput],\n})\nexport class InputComponent {\n  @Input() label = '';\n  @Input() value = '';\n  @Input() placeholder = '';\n  @Input() disabled = false;\n  @Input() errorMessage = '';\n  @Input() type = 'text';\n  @Input() clearInput = false;\n  @Input() debounce = 0;\n\n  @Output() changed = new EventEmitter<string>();\n}\n","<ion-header>\n  <app-top-navbar>\n    <!-- SLOT: anything added here will go below the ion-navbar -->\n  </app-top-navbar>\n</ion-header>\n\n<!-- migration note: no-bounce => forceOverflow=\"false\"\t-->\n<ion-content class=\"home\" fullscreen=\"true\">\n  <!-- <div id=\"wedding-promo\" class=\"block block-layout-builder block-inline-blockhero-block\">\n    <div class=\"content\">\n    <div class=\"field field--name-field-page-hero-image field--type-entity-reference field--label-hidden field__item\">\n    <div class=\"field field--name-field-media-image field--type-image field--label-visually_hidden\">\n    <div class=\"field__item\"><picture> <source srcset=\"https://filmstacker.com/sites/default/files/styles/widgetlargexl/public/2022-12/ring_6.jpeg\" type=\"image/jpeg\" media=\"all and (min-width: 75em)\" /> <source srcset=\"https://filmstacker.com/sites/default/files/styles/widgetlarge/public/2022-12/ring_6.jpeg\" type=\"image/jpeg\" media=\"all and (min-width: 62em) and (max-width: 74.99em)\" /> <source srcset=\"https://filmstacker.com/sites/default/files/styles/widgetmedium/public/2022-12/ring_6.jpeg\" type=\"image/jpeg\" media=\"all and (min-width: 48em) and (max-width: 61.99em)\" /> <source srcset=\"https://filmstacker.com/sites/default/files/styles/widgetsmall/public/2022-12/ring_6.jpeg\" type=\"image/jpeg\" media=\"all and (min-width: 34em) and (max-width: 47.99em)\" /><img src=\"https://filmstacker.com/sites/default/files/styles/widgetsmall/public/2022-12/ring_6.jpeg\" alt=\"engaged couple\" /></picture></div>\n    </div>\n    </div>\n    <div class=\"hero-headers\">\n    <div class=\"hero-headers__bottom\">\n    <div class=\"field field--name-field-large-header field--type-string field--label-hidden field__item\">Capture all your wedding stories</div>\n    <div class=\"clearfix text-formatted field field--name-field-body-content field--type-text-long field--label-hidden field__item\">\n    <h4 class=\"text-white\">.</h4>\n    <div><a class=\"btn btn-primary btn-lg\" href=\"#\">Filmstack My Wedding</a></div>\n    </div>\n    </div>\n    </div>\n    </div>\n    </div> -->\n\n  <!-- Wedding Promo -->\n  <div class=\"home__hero home__hero__weddings\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"home__hero__text col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n          <div class=\"home__hero__title\">{{ 'HOME.WEDDINGS.HEADER' | translate }}</div>\n          <!-- <div class=\"home__hero__subtitle\">Select what interests you.</div> -->\n          <div class=\"home__hero__subtitle\">{{ 'HOME.WEDDINGS.SUB_HEADER' | translate }}</div>\n          <div class=\"ion-padding-vertical ion-margin-top\">\n            <fs-button size=\"large\" color=\"light\" (click)=\"navWeddings()\">\n              <!-- Make a filmstack -->\n              {{ 'HOME.WEDDINGS.BUTTON_ACTION' | translate }}\n              <!-- and create my own -->\n            </fs-button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- Watch/Make hero -->\n  <div *ngIf=\"showWatchMakeSection\" class=\"home__hero home__hero__watch-make\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"home__hero__text col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n          <div class=\"home__hero__title\">{{ 'HOME.HEADER' | translate }}</div>\n          <!-- <div class=\"home__hero__subtitle\">Select what interests you.</div> -->\n          <div class=\"home__hero__subtitle\">{{ 'HOME.SUB_HEADER' | translate }}</div>\n          <div class=\"home__hero__tags\">\n            <ion-chip *ngFor=\"let tag of tags\" class=\"home__hero__tags__chip\" (click)=\"onClickTag(tag)\">\n              <ion-label>{{ tag }}</ion-label>\n            </ion-chip>\n          </div>\n          <div class=\"home__hero__input\">\n            <!-- <fs-input placeholder=\"Enter other topics\"></fs-input> -->\n            <fs-input placeholder=\"Enter a topic\" [clearInput]=\"true\" [debounce]=\"600\" (changed)=\"setTopic($event)\"></fs-input>\n          </div>\n          <div>\n            <fs-button size=\"large\" color=\"light\" (click)=\"onClickWatch()\">\n              <!-- Make a filmstack -->\n              {{ 'HOME.WATCH_MAKE_BUTTON' | translate }}\n              <!-- and create my own -->\n            </fs-button>\n          </div>\n        </div>\n      </div>\n\n      <!-- v1 content -->\n      <!-- <div class=\"row\" style=\"align-items: center; height: 100%;\">\n        <div class=\"col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n          <div>\n            <h1>Creative Storytelling through shared video</h1>\n            <p class=\"splash__subtitle\">A fun and smart way to capture and create video stories.<br>Because <span italic>everyone</span> loves a good story.</p>\n            <div class=\"horiz-button-group\">\n                <ion-button \n                  size=\"large\" \n                  fill=\"outline\" \n                  shape=\"round\" \n                  color=\"primary\" \n                  class=\"ion-text-uppercase\"\n                  routerLink=\"/stack/edit\"\n                  routerDirection=\"forward\">\n                  {{ \"HOME.STORY_BUTTON\" | translate }}\n                </ion-button>\n            </div>\n            <div class=\"horiz-button-group ion-padding-vertical\">\n              <ion-button \n                size=\"large\" \n                shape=\"round\" \n                color=\"primary\" \n                class=\"ion-text-uppercase\"\n                routerLink=\"/stack/discover\" \n                routerDirection=\"forward\">\n                   {{ \"COMMON.DISCOVER\" | translate | uppercase }}\n              </ion-button>\n            </div>\n          </div>\n        </div>\n      </div> -->\n    </div>\n  </div>\n\n  <!-- discover -->\n  <div class=\"home__discover\">\n    <div class=\"container\">\n      <div class=\"col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n        <h2>{{ \"COMMON.DISCOVER\" | translate }}</h2>\n        <h1>\n          {{ \"HOME.DISCOVER_INTRO\" | translate }}\n        </h1>\n        <p>{{ \"HOME.DISCOVER_INTRO_P\" | translate }}</p>\n      </div>\n    </div>\n\n    <div class=\"container home__discover__list\">\n      <fs-list-title icon=\"logo-buffer\">{{ \"COMMON.FILMSTACKS\" | translate }}</fs-list-title>\n      <div *ngFor=\"let stackList of stackLists\" class=\"list-wrap list-spacing\" [class.list-featured-stacks]=\"stackList.isFeatured\">\n        <app-stack-list\n          *ngIf=\"stackList.list$ | async as list\"\n          [layout]=\"{ type: layoutType.Carousel }\"\n          [items]=\"stackList.items$ | async\"\n          [canLoadMore]=\"!!list.nextToken\"\n          [isLoading]=\"list.loading\"\n          [heading]=\"stackList.label\"\n          (loadMore)=\"loadMoreStacks(list)\"\n        ></app-stack-list>\n      </div>\n    </div>\n    <div class=\"container home__discover__list\">\n      <fs-carousel-guides></fs-carousel-guides>\n    </div>\n    <div class=\"container home__discover__list\">\n      <fs-list-title icon=\"folder-outline\">{{ \"COMMON.PROJECTS\" | translate }}</fs-list-title>\n      <app-project-list\n        [layout]=\"{ type: layoutType.Carousel }\"\n        [heading]=\"'COMMON.FEATURED' | translate\"\n        [items]=\"featuredProjects.items$ | async\"\n      ></app-project-list>\n\n      <ng-container *ngIf=\"myProjects.items$ | async as myProjects\">\n        <app-project-list *ngIf=\"myProjects?.length > 0\"\n          [layout]=\"{ type: layoutType.Carousel }\"\n          [heading]=\"'COMMON.MY_PROJECTS' | translate\"\n          [items]=\"myProjects\"\n        ></app-project-list>\n      </ng-container>\n    </div>\n  </div>\n\n  <!-- community -->\n  <div *ngIf=\"showCommunity\" class=\"home__community\">\n    <div class=\"container\">\n      <div class=\"col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n        <h2>Community</h2>\n        <h1>\n          Collaborate with fellow filmmakers around the world\n        </h1>\n      </div>\n      <div class=\"home__community__list\">\n        <div\n          class=\"home__community__list__user\"\n          *ngFor=\"let item of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\"\n        >\n          <img\n            class=\"home__community__list__user__image\"\n            src=\"/assets/images/avatar-130px.png\"\n            alt=\"profile\"\n          />\n          <div class=\"home__community__list__user__name\">Name</div>\n          <div class=\"home__community__list__user__role\">PRODUCER</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <!-- join -->\n  <div *ngIf=\"showPlans\" class=\"home__join\">\n    <div class=\"container\">\n      <div class=\"col-md-8 offset-md-2 col-lg-6 offset-lg-2\">\n        <h2>Join us</h2>\n        <h1>\n          Sign up to share and build your Filmstacker Crew.\n        </h1>\n        <br />\n        <fs-button [routerLink]=\"['/plans']\" size=\"large\" buttonStyle=\"outline\"\n          >See plans</fs-button\n        >\n      </div>\n    </div>\n  </div>\n\n  <app-footer></app-footer>\n</ion-content>\n","/** @format */\n\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgIf, NgFor, AsyncPipe } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { IonContent, NavController, IonHeader, IonChip, IonLabel } from '@ionic/angular/standalone';\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\nimport { take } from 'rxjs/operators';\nimport { LAYOUT_TYPE } from '@app/shared/models/layout.model';\nimport { Store } from '@ngrx/store';\nimport { State } from '@store/reducers';\nimport { List, selectList, selectProjectListItems, selectStackListItems } from '@store/selectors/lists.selectors';\nimport { FilterEntityTypes } from '@store/selectors/viewstate.selectors';\nimport * as projectActions from '@store/actions/projects.actions';\nimport * as stackActions from '@store/actions/stacks.actions';\nimport { selectMyProjects } from '@store/selectors/projects.selectors';\n\nimport { DISCOVER_PAGE } from '@app/app.routes';\nimport { ONBOARD_ROUTE_WEDDINGS } from '@app/onboarding/shared/onboarding.model';\nimport { HOME_TAGS } from '@app/modules/tagger-input/tags';\nimport {\n  LIST_ID_STACKS_MOST_VIEWED,\n  LIST_ID_PROJECTS_FEATURED,\n  LIST_ID_PROJECTS_MINE,\n} from '@app/pages/discover/discover.page';\nimport { ListTitleComponent } from '@app/shared/components/ui/list-title/list-title.component';\nimport { ButtonComponent } from '@app/shared/components/ui/buttons/button/button.component';\nimport { InputComponent } from '@app/shared/components/ui/input/input.component';\nimport { FooterComponent } from '@app/shared/components/footer/footer.component';\nimport { TopNavbarComponent } from '@app/shared/components/top-navbar/top-navbar.component';\nimport { CarouselGuidesComponent } from '@app/stacks/carousels/carousel-guides/carousel-guides.component';\nimport { StackListComponent } from '@app/stacks/shared/components/stack-list/stack-list.component';\nimport { ProjectListComponent } from '@app/projects/project-list/project-list.component';\n\nconst LIST_ID_STACKS_FEATURED = 'home_stacks_featured';\nconst LIST_ID_STACKS_RECENT = 'home_stacks_recent';\n// const LIST_ID_STACKS_MOST_VIEWED = 'discover_stacks_mostviewed';// same as DiscoverPage\n// const LIST_ID_PROJECTS_FEATURED = 'featured_projects';\n// const LIST_ID_PROJECTS_MINE = 'my_projects';\nconst FILTER_ID = 'home_page';\n\n@Component({\n  selector: 'app-home',\n  templateUrl: './home.page.html',\n  styleUrls: ['./home.page.scss'],\n  standalone: true,\n  imports: [\n    NgIf,\n    NgFor,\n    AsyncPipe,\n    TranslatePipe,\n    RouterLink,\n    TopNavbarComponent,\n    ButtonComponent,\n    CarouselGuidesComponent,\n    FooterComponent,\n    InputComponent,\n    ListTitleComponent,\n    ProjectListComponent,\n    StackListComponent,\n    IonHeader,\n    IonContent,\n    IonChip,\n    IonLabel,\n  ],\n})\nexport class HomePage implements OnInit {\n  showCommunity = false;\n  showPlans = false;\n  /** Using Wedding Promo for now, can re-enable this when desired */\n  showWatchMakeSection = false;\n\n  tags = HOME_TAGS;\n  layoutType = LAYOUT_TYPE;\n  stackLists = [\n    {\n      id: LIST_ID_STACKS_FEATURED,\n      label: 'Featured', // will be translated OnInit\n      isFeatured: true,\n    },\n    {\n      id: LIST_ID_STACKS_MOST_VIEWED,\n      label: 'Most Viewed', // will be translated OnInit\n      // label: 'Trending', // will be translated OnInit\n    },\n    {\n      id: LIST_ID_STACKS_RECENT,\n      label: 'Recent', // will be translated OnInit\n    },\n  ].map((item) => ({\n    ...item,\n    /** MVP-970 ngrx deprecated selectorWithProps */\n    list$: this.store.select(selectList(item.id)), // loading, nextToken, ...\n    items$: this.store.select(selectStackListItems(item.id)), // array of stacks\n  }));\n  featuredProjects = {\n    id: LIST_ID_PROJECTS_FEATURED,\n    label: 'Featured', // will be translated OnInit\n    list$: this.store.select(selectList(LIST_ID_PROJECTS_FEATURED)),\n    items$: this.store.select(selectProjectListItems(LIST_ID_PROJECTS_FEATURED)),\n  };\n  myProjects = {\n    id: LIST_ID_PROJECTS_MINE,\n    // list$: this.store.select(selectList(LIST_ID_MY_PROJECTS)),\n    items$: this.store.select(selectMyProjects),\n  };\n\n  @ViewChild(IonContent) content: IonContent;\n\n  private searchTopic = '';\n\n  constructor(private store: Store<State>, private navCtrl: NavController, private translate: TranslateService) {}\n\n  ngOnInit() {\n    this.translate\n      .get(['COMMON.FEATURED', 'COMMON.RECENT', 'COMMON.MOST_VIEWED'])\n      .pipe(take(1))\n      .subscribe((res) => {\n        this.featuredProjects.label = res['COMMON.FEATURED'];\n        this.stackLists[0].label = res['COMMON.FEATURED'];\n        this.stackLists[1].label = res['COMMON.MOST_VIEWED'];\n        this.stackLists[2].label = res['COMMON.RECENT'];\n      });\n\n    // dispatch featured stacks\n    this.store.dispatch(\n      stackActions.loadFilteredStacks({\n        listId: LIST_ID_STACKS_FEATURED,\n        filters: { type: FilterEntityTypes.Featured, id: FILTER_ID },\n      })\n    );\n    // dispatch recent stacks\n    this.store.dispatch(\n      stackActions.loadFilteredStacks({\n        listId: LIST_ID_STACKS_RECENT,\n        filters: { type: FilterEntityTypes.Recent, id: FILTER_ID },\n      })\n    );\n    // trending (most viewed)\n    this.store.dispatch(\n      stackActions.loadFilteredStacks({\n        listId: LIST_ID_STACKS_MOST_VIEWED,\n        filters: { type: FilterEntityTypes.MostViewed, id: FILTER_ID },\n      })\n    );\n    this.store.dispatch(\n      projectActions.loadFilteredProjects({\n        listId: LIST_ID_PROJECTS_FEATURED,\n        filters: { type: FilterEntityTypes.Featured, id: FILTER_ID },\n      })\n    );\n  }\n\n  ionViewDidEnter() {\n    this.scrollToTop();\n  }\n\n  scrollToTop() {\n    if (this.content && typeof this.content.scrollToTop === 'function') {\n      this.content.scrollToTop(400);\n    }\n  }\n\n  loadMoreStacks(list: List) {\n    this.store.dispatch(\n      stackActions.loadMoreFilteredStacks({\n        listId: list.id,\n        filters: list.filters,\n        nextToken: list.nextToken,\n      })\n    );\n  }\n\n  /**\n   * @todo: handle all the selected tags instead of just first clicked\n   */\n  onClickTag(tag) {\n    // console.log(`${PAGE} onClickTag: '${tag}'`)\n    const queryParams = tag ? { q: tag } : {};\n    this.navCtrl.navigateForward(`/${DISCOVER_PAGE}`, { queryParams });\n  }\n\n  setTopic(value) {\n    // console.log(`${PAGE} setTopic: '${value}'`)\n    this.searchTopic = value;\n  }\n\n  onClickWatch() {\n    const queryParams = this.searchTopic ? { q: this.searchTopic } : {};\n    this.navCtrl.navigateForward(`/${DISCOVER_PAGE}`, { queryParams });\n  }\n\n  navWeddings() {\n    this.navCtrl.navigateForward(ONBOARD_ROUTE_WEDDINGS);\n  }\n}\n"],"x_google_ignoreList":[]}