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