{"version":3,"file":"2593.b77b2b36b716dd64.js","mappings":"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","names":["i0","_r1","ctx_r1","scrollToId","_r3","openTutorial","_r4","openTour","HelpPage_div_46_div_1_Template","emailControl","errors","email","message","PAGE","HelpPage","_HelpPage","constructor","mailerApi","formBuilder","navCtrl","route","store","this","showStudio","showTutorial","showTour","title","sections","feedback","privacy","filmstack","how","project","studio","story","submitAttempt","subscriptions","Subscription","ngOnInit","formGroup","group","name","Validators","required","get","submitForm","value","sendEmail","fromEmail","subject","topic","MailTopic","Feedback","pipe","take","subscribe","next","reset","error","console","log","id","scrollToItem","el","document","getElementById","offsetTop","content","scrollToPoint","scrollToTop","openPrivacy","openPage","openRules","openTerms","dispatch","resetTourSeenOverview","setTimeout","navigateForward","openRootPage","navigateRoot","ionViewWillEnter","handleAnchor","anchor","subQueryParams","queryParamMap","queryParams","subParams","paramMap","params","add","ionViewWillLeave","unsubscribe","i1","i2","i3","i4","i5","selectors","viewQuery","rf","ctx","IonContent","HelpPage_li_24_Template","HelpPage_ion_button_28_Template","HelpPage_ion_button_29_Template","HelpPage_div_46_Template","HelpPage_div_53_Template","HelpPage_dt_77_Template","HelpPage_dd_78_Template","dirty","valid","IonHeader","TopNavbarComponent","IonButton","NgIf","FormsModule","ReactiveFormsModule","IonItem","IonLabel","IonTextarea","IonFabButton","IonIcon","FooterComponent","styles","_FooterComponent","theme","copyrightYear","Date","getFullYear","inputs","standalone","features","decls","vars","consts","template","FooterComponent_ng_container_4_Template","FooterComponent_ng_container_5_Template","NgSwitch","NgSwitchCase","NgSwitchDefault","RouterLink","TranslatePipe"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/pages/help/help.page.html","./src/app/pages/help/help.page.ts","./src/app/shared/components/footer/footer.component.html","./src/app/shared/components/footer/footer.component.ts"],"sourcesContent":["<ion-header>\n  <app-top-navbar [title]=\"title\">\n    <!-- SLOT: anything added here will go below the ion-navbar -->\n  </app-top-navbar>\n</ion-header>\n\n<ion-content>\n\n    <div id=\"help\" class=\"page limit-width ion-padding\">\n        <div class=\"container\">\n          <!-- <h1>{{ title }}</h1> -->\n    \n          <section class=\"help-topics\">\n            <h2>Help Topics</h2>\n            <ul class=\"faq-list list-unstyled\">\n              <li>\n                <ion-button (click)=\"scrollToId('feedback_form')\" fill=\"clear\" color=\"light\">\n                  How do I contact you with questions or feedback?\n                </ion-button>\n              </li>\n              <li>\n                <ion-button (click)=\"scrollToId('faq_item-privacy')\" fill=\"clear\" color=\"light\">\n                  How to you handle my privacy?\n                </ion-button>\n              </li>\n              <li>\n                <ion-button (click)=\"scrollToId('faq_item-filmstack')\" fill=\"clear\" color=\"light\">\n                  What is a Filmstack?\n                </ion-button>\n              </li>\n              <li>\n                <ion-button (click)=\"scrollToId('faq_item-how_stack')\" fill=\"clear\" color=\"light\">\n                  How do I stack?\n                </ion-button>\n              </li>\n              <li>\n                <ion-button (click)=\"scrollToId('faq_item-project')\" fill=\"clear\" color=\"light\">\n                  What is a Project?\n                </ion-button>\n              </li>\n              <li *ngIf=\"showStudio\">\n                <ion-button (click)=\"scrollToId('faq_item-studio')\" fill=\"clear\" color=\"light\">\n                  What is my Studio?\n                </ion-button>\n              </li>\n              <li>\n                <ion-button (click)=\"scrollToId('faq_item-tell_story')\" fill=\"clear\" color=\"light\">\n                  How do I tell a story?\n                </ion-button>\n              </li>\n            </ul>\n    \n            <ion-button *ngIf=\"showTutorial\" fill=\"clear\" (click)=\"openTutorial()\">\n              See the Overview Tutorial\n            </ion-button>\n            <ion-button *ngIf=\"showTour\" fill=\"clear\" (click)=\"openTour()\">\n              Quick Tour\n            </ion-button>\n          </section>\n    \n          <section class=\"feedback\" id=\"feedback_form\">\n            <h2>Feedback</h2>\n            <form [formGroup]=\"formGroup\" (ngSubmit)=\"submitForm()\">\n              <ion-item lines=\"none\">\n                <ion-input labelPlacement=\"floating\" type=\"text\" formControlName=\"name\">\n                  <div slot=\"label\">Name <sup>*</sup></div>\n                </ion-input>\n              </ion-item>\n              <ion-item lines=\"none\">\n                <ion-input labelPlacement=\"floating\" type=\"email\" formControlName=\"email\">\n                  <div slot=\"label\">Email <sup>*</sup></div>\n                </ion-input>\n              </ion-item>\n              <div *ngIf=\"emailControl.errors && (emailControl.dirty || submitAttempt)\" class=\"errors ion-text-center\">\n                <div *ngIf=\"emailControl.errors.email\">\n                  Please enter a valid Email.\n                </div>\n              </div>\n    \n              <ion-item lines=\"none\">\n                <ion-label position=\"floating\">What's on your mind? <sup>*</sup></ion-label>\n                <ion-textarea formControlName=\"message\"></ion-textarea>\n              </ion-item>\n              <div *ngIf=\"message\" class=\"message ion-text-center\">\n                {{message}}\n              </div>\n              <div class=\"ion-text-center\">\n                <ion-button type=\"submit\" [disabled]=\"!formGroup.valid\">Send Message</ion-button>\n              </div>\n            </form>\n          </section>\n    \n          <section class=\"faqs\">\n            <h2>FAQ's</h2>\n            <dl>\n    \n              <dt id=\"faq_item-filmstack\">What is a Filmstack?</dt>\n              <dd>Your personal arrangement of video clips, shared to your friends, or to the world.</dd>\n    \n              <dt id=\"faq_item-how_stack\">How do I stack?</dt>\n              <dd>\n                  Watch Stacks, explore pathways. <br>\n                  Add clips or whole stack pathays to your Stack Editor. <br>\n                  Arrange the Clips in your Stack, customize, Publish -> Share.\n              </dd>\n    \n              <dt id=\"faq_item-project\">What is Project?</dt>\n              <dd>A collection of clips and crew with a shared purpose.</dd>\n    \n              <dt *ngIf=\"showStudio\" id=\"faq_item-studio\">What is my Studio?</dt>\n              <dd *ngIf=\"showStudio\">Go to my dashboard...</dd>\n    \n              <dt id=\"faq_item-tell_story\">How to tell a story</dt>\n              <dd>\n                Watch Stacks, explore other pathways. <br>\n                Add clips or whole stack pathays to your Stack Editor. <br>\n                Arrange the Clips in your Stack, customize, Publish -> Share.\n              </dd>\n    \n              <dt id=\"faq_item-privacy\">How to you handle my privacy?</dt>\n              <dd>\n                  We will not share your private information, we value ours as well.\n                  <br>\n                  We only use the information we gather to make your Filmstacker experience better.\n                  <br>\n                  We adhere to the General Data Protection Regulation (GDPR) requirements.\n                  <br>\n                  You can request a copy of your user information or discuss removal by <a href=\"mailto:privacy@filmstacker.com\">emailing our Privacy Officer</a>.\n                  \n                  <div class=\"\">\n                    <ion-button (click)=\"openPrivacy()\" fill=\"clear\" color=\"light\">\n                        Read our Privacy Policy\n                    </ion-button>\n                    <ion-button (click)=\"openRules()\" fill=\"clear\" color=\"light\">\n                        Read our Community Rules\n                    </ion-button>\n                    <ion-button (click)=\"openTerms()\" fill=\"clear\" color=\"light\">\n                        Read our Terms of Service\n                    </ion-button>\n                  </div>\n              </dd>\n    \n            </dl>\n          </section>\n    \n    \n          <div class=\"bottom-actions ion-text-center\">\n            <ion-fab-button (click)=\"scrollToTop()\" color=\"light\">\n              <ion-icon size=\"large\" name=\"arrow-up\"></ion-icon>\n            </ion-fab-button>\n          </div>\n    \n    \n    \n        </div>\n      </div>\n\n      <div class=\"tab-bottom-spacer\"></div>\n    \n      <app-footer></app-footer>\n\n</ion-content>\n","/** @format */\n\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { Validators, UntypedFormBuilder, UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n  NavController,\n  IonContent,\n  IonHeader,\n  IonButton,\n  IonItem,\n  IonLabel,\n  IonTextarea,\n  IonFabButton,\n  IonIcon,\n} from '@ionic/angular/standalone';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { Store } from '@ngrx/store';\nimport { State } from '@store/reducers';\nimport { resetTourSeenOverview } from '@store/actions/viewstate.actions';\nimport { MailerApiService, MailTopic, SendMail } from '@app/core/api/mailer.api.service';\nimport { FooterComponent } from '@app/shared/components/footer/footer.component';\nimport { TopNavbarComponent } from '@app/shared/components/top-navbar/top-navbar.component';\n\nconst PAGE = '[HelpPage]';\n\n@Component({\n  selector: 'app-help',\n  templateUrl: './help.page.html',\n  styleUrls: ['./help.page.scss'],\n  standalone: true,\n  imports: [\n    IonHeader,\n    TopNavbarComponent,\n    IonContent,\n    IonButton,\n    NgIf,\n    FormsModule,\n    ReactiveFormsModule,\n    IonItem,\n    IonLabel,\n    IonTextarea,\n    IonFabButton,\n    IonIcon,\n    FooterComponent,\n  ],\n})\nexport class HelpPage implements OnInit {\n  @ViewChild(IonContent) content: IonContent;\n\n  showStudio: boolean = false; // show the Studio FAQ\n  showTutorial: boolean = true; // show the tutorial button\n  showTour: boolean = true; // show the tour button\n\n  title: string = 'Help & Feedback';\n\n  sections = {\n    //TODO: update to variables from strings in template and component\n    feedback: 'feedback_form',\n    privacy: 'faq_item-privacy',\n    filmstack: 'faq_item-filmstack',\n    how: 'faq_item-how_stack',\n    project: 'faq_item-project',\n    studio: 'faq_item-studio',\n    story: 'faq_item-tell_story',\n  };\n\n  formGroup: UntypedFormGroup;\n  submitAttempt: boolean = false;\n  message = '';\n\n  private subscriptions: Subscription = new Subscription();\n\n  constructor(\n    private mailerApi: MailerApiService,\n    private formBuilder: UntypedFormBuilder,\n    private navCtrl: NavController,\n    private route: ActivatedRoute,\n    private store: Store<State>\n  ) {}\n\n  ngOnInit() {\n    this.formGroup = this.formBuilder.group({\n      name: ['', Validators.required],\n      email: ['', [Validators.required, Validators.email]],\n      message: ['', Validators.required],\n    });\n  }\n\n  // getters for form fields\n  get emailControl() {\n    return this.formGroup.get('email');\n  }\n\n  submitForm() {\n    this.submitAttempt = true;\n    // console.log(this.formGroup.value);\n\n    const { name, email, message } = this.formGroup.value;\n\n    const params: SendMail = {\n      fromEmail: email,\n      name,\n      subject: 'Filmstacker Feedback',\n      topic: MailTopic.Feedback,\n      // toEmail: 'jd@filmstacker.com',//must be confirmed in AWS SES\n      message,\n    };\n\n    this.mailerApi\n      .sendEmail(params)\n      .pipe(take(1))\n      .subscribe({\n        next: () => {\n          // console.log(`${PAGE} sendEmail res:`, res);\n          this.message = 'Message sent, thanks!';\n          this.formGroup.reset();\n        },\n        error: (error) => {\n          console.log(`${PAGE} sendEmail ERROR:`, error);\n          this.message = 'Oops! There was a problem - please try again.';\n        },\n      });\n  }\n\n  scrollToId(id) {\n    // console.log(`${PAGE} scrollToId`, id);\n    this.scrollToItem(id);\n  }\n\n  scrollToItem(id: string) {\n    const el = document.getElementById(id);\n    if (el && el.offsetTop) {\n      // console.log(`${PAGE} el.offsetTop`, el.offsetTop);\n      this.content.scrollToPoint(0, el.offsetTop, 1100); //(x, y, duration);\n    } else {\n      console.log(`${PAGE} scrollToItem NO EL?`, el);\n    }\n  }\n\n  scrollToTop() {\n    this.content.scrollToTop();\n  }\n\n  openPrivacy() {\n    this.openPage('privacy');\n  }\n  openRules() {\n    this.openPage('community-rules');\n  }\n  openTerms() {\n    this.openPage('terms');\n  }\n\n  openTutorial() {\n    this.store.dispatch(resetTourSeenOverview());\n    setTimeout(() => {\n      // force a change detection in tabs-main\n      this.openPage('/stack/discover'); // make sure the tabs are showing\n    }, 300);\n  }\n\n  openTour() {\n    this.openPage('/tour');\n  }\n\n  /*\n    NAV \n  */\n  openPage(name: string) {\n    // push to the nav stack and get a back button\n    this.navCtrl.navigateForward(`/${name}`);\n  }\n  openRootPage(name: string) {\n    // Reset the content nav to have just this page\n    // we wouldn't want the back button to show in this scenario\n    this.navCtrl.navigateRoot(`/${name}`);\n  }\n\n  /**\n   * fired when entering a page, before it becomes the active one.\n   * Use it for tasks you want to do every time you enter in the view\n   * (setting event listeners, updating a table, etc.).\n   */\n  ionViewWillEnter() {\n    // console.log(`${PAGE} ionViewWillEnter - check for 'section' queryParam..`);\n\n    const handleAnchor = (anchor: string) => {\n      switch (anchor) {\n        case 'feedback': {\n          this.scrollToId('feedback_form');\n          break;\n        }\n        case 'privacy': {\n          this.scrollToId('faq_item-privacy');\n          break;\n        }\n        case 'filmstack': {\n          this.scrollToId('faq_item-filmstack');\n          break;\n        }\n        case 'how': {\n          this.scrollToId('faq_item-how_stack');\n          break;\n        }\n        case 'project': {\n          this.scrollToId('faq_item-project');\n          break;\n        }\n        case 'studio': {\n          this.scrollToId('faq_item-studio');\n          break;\n        }\n        case 'story': {\n          this.scrollToId('faq_item-tell_story');\n          break;\n        }\n        default: {\n          console.log(`${PAGE} unhandled section: ${anchor}`);\n        }\n      }\n    };\n\n    const subQueryParams = this.route.queryParamMap.subscribe((queryParams) => {\n      // console.log(`${PAGE} queryParams:`,queryParams);\n      if (queryParams.get('section')) {\n        handleAnchor(queryParams.get('section'));\n      }\n    });\n    // in case we pass as page params, this is how:\n    const subParams = this.route.paramMap.subscribe((params) => {\n      // console.log(`${PAGE} params:`, params);\n      if (params.get('section')) {\n        handleAnchor(params.get('section'));\n      }\n    });\n\n    this.subscriptions.add(subQueryParams);\n    this.subscriptions.add(subParams);\n  }\n\n  ionViewWillLeave() {\n    this.subscriptions.unsubscribe();\n  }\n}\n","<!-- @format -->\n\n<footer>\n  <div class=\"footer container\">\n    <div class=\"footer__side footer__side--left\">\n      <div [ngSwitch]=\"theme\">\n        <ng-container *ngSwitchCase=\"'light'\">\n          <!-- if light theme, use blue logo -->\n          <img class=\"logo\" src=\"/assets/images/logos/Filmstacker-logo-teal.png\" alt=\"Filmstacker\" />\n        </ng-container>\n        <ng-container *ngSwitchDefault>\n          <img class=\"logo\" src=\"/assets/images/filmstacker-logo.png\" alt=\"Filmstacker\" />\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"footer__side\">\n      <div class=\"footer__side__item\">\n        <a routerLink=\"/about\">{{ 'COMMON.ABOUT' | translate }}</a>\n      </div>\n      <!-- <div class=\"footer__side__item\">\n        <a routerLink=\"/support\">{{ 'COMMON.SUPPORT' | translate }}</a>\n      </div> -->\n      <div class=\"footer__side__item\">\n        <a routerLink=\"/community-rules\">{{ 'COMMON.COMMUNITY_GUIDELINES' | translate }}</a>\n      </div>\n      <div class=\"footer__side__item\">\n        <a routerLink=\"/privacy\">{{ 'POLICIES.PRIVACY_POLICY' | translate }}</a>\n      </div>\n      <div class=\"footer__side__item\">\n        <a routerLink=\"/terms\">{{ 'POLICIES.TERMS_USE' | translate }}</a>\n      </div>\n      <div class=\"footer__side__item\">&copy;{{ copyrightYear }} Filmstacker Inc. {{ 'POLICIES.RIGHTS_RESERVED' | translate }}.</div>\n    </div>\n  </div>\n  <div class=\"tab-bottom-spacer\"></div>\n</footer>\n","/** @format */\n\nimport { Component, Input } from '@angular/core';\nimport { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n  selector: 'app-footer',\n  templateUrl: './footer.component.html',\n  styleUrls: ['./footer.component.scss'],\n  standalone: true,\n  imports: [NgSwitch, NgSwitchCase, NgSwitchDefault, RouterLink, TranslatePipe],\n})\nexport class FooterComponent {\n  /** manages which logo */\n  @Input() theme: 'light' | 'dark' = 'dark';\n\n  copyrightYear = new Date().getFullYear();\n}\n"],"x_google_ignoreList":[]}