{
  "version": 3,
  "sources": ["libs/campaign/src/lib/campaign-email-builder/page/shared/email-template-saver.ts", "libs/campaign/src/lib/campaign-email-builder/page/send-preview-dialog/send-preview-dialog.component.ts", "libs/campaign/src/lib/campaign-email-builder/page/send-preview-dialog/send-preview-dialog.component.html", "libs/campaign/src/lib/campaign-email-builder/page/page-actions/page-actions.component.ts", "libs/campaign/src/lib/campaign-email-builder/page/page-actions/page-actions.component.html", "libs/campaign/src/lib/campaign-email-builder/page/page.component.ts", "libs/campaign/src/lib/campaign-email-builder/page/page.component.html", "libs/campaign/src/lib/campaign-email-builder/campaign-email-builder.component.ts", "libs/campaign/src/lib/campaign-email-builder/campaign-email-builder.component.html", "libs/campaign/src/lib/campaign-email-builder/campaign-email-builder.routing.ts", "libs/campaign/src/lib/campaign-email-builder/campaign-email-builder.module.ts"],
  "sourcesContent": ["import { Inject, Injectable } from '@angular/core';\nimport { EmailBuilderDataService, EmailContentData } from '@galaxy/email-ui/email-builder';\nimport { TemplateReferenceInterface } from '@vendasta/campaigns';\nimport { AppNamespace, OwnerType } from '@vendasta/email-builder';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ObservableWorkState, WorkStates } from '@vendasta/rx-utils/work-state';\nimport { Observable, catchError, of, throwError } from 'rxjs';\nimport { shareReplay } from 'rxjs/internal/operators/shareReplay';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { v4 as uuidv4 } from 'uuid';\nimport { CampaignData } from '../../../campaign-details-page/campaign-details/interface';\nimport { Context } from './context';\nimport { TemplateExporter } from './dependencies';\n\nexport interface SaveResult {\n  templateId: string;\n  campaignStepId: string;\n  campaign?: CampaignData;\n}\n\nexport interface TemplateService {\n  createNewTemplate$(\n    ownerType: OwnerType,\n    ownerId: string,\n    namespace: AppNamespace,\n    templateId: string,\n    data: EmailContentData,\n    html: string,\n    parent?: TemplateReferenceInterface,\n  ): Observable<boolean>;\n\n  updateExistingTemplate$(\n    ownerType: OwnerType,\n    ownerId: string,\n    namespace: AppNamespace,\n    templateId: string,\n    data: EmailContentData,\n    html: string,\n  ): Observable<boolean>;\n\n  validateTemplate(data: EmailContentData): boolean;\n}\n\nexport interface TemplateIDGenerator {\n  generate(): string;\n}\n\n@Injectable({ providedIn: 'root' })\nclass UUIDTemplateIDGenerator implements TemplateIDGenerator {\n  generate(): string {\n    return `EMAIL-BUILDER-${uuidv4()}`;\n  }\n}\n\n@Injectable()\nexport class EmailTemplateSaver implements TemplateExporter {\n  private latestData?: EmailContentData;\n  private latestHTML?: string;\n\n  private readonly workState$ = new ObservableWorkState<SaveResult>();\n  public readonly workState: WorkStates<SaveResult> = this.workState$;\n  constructor(\n    @Inject(EmailBuilderDataService) private readonly emailBuilderDataService: TemplateService,\n    @Inject(UUIDTemplateIDGenerator) private readonly idGenerator: TemplateIDGenerator = new UUIDTemplateIDGenerator(),\n    private readonly snackbarService: SnackbarService,\n  ) {\n    this.initialize();\n  }\n\n  initialize(): void {\n    this.latestData = {} as EmailContentData;\n    this.latestHTML = '';\n  }\n\n  saveWithWorkState$(\n    ownerId: string,\n    emailTemplateContext: Context,\n    campaignId: string,\n    campaignStepId?: string,\n    parent?: TemplateReferenceInterface,\n  ): Observable<SaveResult> {\n    const o$ = this.doSave(ownerId, emailTemplateContext, campaignId, campaignStepId, parent).pipe(\n      shareReplay({\n        bufferSize: 1,\n        refCount: true,\n      }),\n    );\n    this.workState$.startWork(o$);\n    return o$;\n  }\n\n  save$(\n    ownerId: string,\n    emailTemplateContext: Context,\n    campaignId: string,\n    campaignStepId?: string,\n    parent?: TemplateReferenceInterface,\n  ): Observable<SaveResult> {\n    return this.doSave(ownerId, emailTemplateContext, campaignId, campaignStepId, parent);\n  }\n\n  private doSave(\n    ownerId: string,\n    emailTemplateContext: Context,\n    campaignId: string,\n    campaignStepId?: string,\n    parent?: TemplateReferenceInterface,\n  ): Observable<SaveResult> {\n    if (!this.latestData) {\n      return throwError('no email content data');\n    }\n    if (!this.latestHTML) {\n      return throwError('no email HTML');\n    }\n\n    const createOrUpdateArgs = {\n      ownerId: ownerId,\n      data: this.latestData,\n      html: this.latestHTML,\n    };\n\n    if (emailTemplateContext.isNew()) {\n      return this.createNew(createOrUpdateArgs, parent);\n    } else {\n      return this.updateExisting(campaignId, campaignStepId, createOrUpdateArgs, emailTemplateContext);\n    }\n  }\n\n  private updateExisting(\n    campaignID: string,\n    campaignStepID: string,\n    updateArgs: {\n      ownerId: string;\n      data: EmailContentData;\n      html: string;\n    },\n    ctx: Context,\n  ): Observable<SaveResult> {\n    return this.emailBuilderDataService\n      .updateExistingTemplate$(\n        OwnerType.OWNER_TYPE_ACCOUNT_GROUP,\n        updateArgs.ownerId,\n        AppNamespace.CAMPAIGNS,\n        ctx.getExistingTemplateId(),\n        updateArgs.data,\n        updateArgs.html,\n      )\n      .pipe(\n        catchError((err) => {\n          this.snackbarService.openErrorSnack('EMAIL_BUILDER.SAVING.GENERIC_ERROR');\n          throw new Error(err);\n        }),\n        switchMap((ebTemplateSucceeded) => {\n          if (!ebTemplateSucceeded) {\n            return of({} as SaveResult);\n          }\n          const campaignData: CampaignData = {} as CampaignData;\n          campaignData.name = updateArgs.data.name || '';\n          return of({\n            templateId: ctx.getExistingTemplateId(),\n            campaignStepId: campaignStepID,\n            campaign: campaignData,\n          } as SaveResult);\n        }),\n      );\n  }\n\n  private createNew(\n    createArgs: {\n      ownerId: string;\n      data: EmailContentData;\n      html: string;\n    },\n    parent?: TemplateReferenceInterface,\n  ): Observable<SaveResult> {\n    const templateId = this.idGenerator.generate();\n    return this.emailBuilderDataService\n      .createNewTemplate$(\n        OwnerType.OWNER_TYPE_ACCOUNT_GROUP,\n        createArgs.ownerId,\n        AppNamespace.CAMPAIGNS,\n        templateId,\n        createArgs.data,\n        createArgs.html,\n        parent,\n      )\n      .pipe(\n        take(1),\n        catchError((err) => {\n          this.snackbarService.openErrorSnack('EMAIL_BUILDER.SAVING.GENERIC_ERROR');\n          throw new Error(err);\n        }),\n        map((ebTemplateSucceeded) => {\n          if (!ebTemplateSucceeded) {\n            return {} as SaveResult;\n          }\n          return {\n            templateId: templateId || '',\n          } as SaveResult;\n        }),\n      );\n  }\n\n  updateContentData(data: EmailContentData): void {\n    this.latestData = data;\n  }\n\n  updateHTML(html: string): void {\n    this.latestHTML = html;\n  }\n\n  getLatestData(): EmailContentData {\n    return this.latestData || ({} as EmailContentData);\n  }\n\n  getLatestHTML(): string {\n    return this.latestHTML || '';\n  }\n}\n\nexport function getStepIdFromCreateResponse(templateId: string, response: string): string {\n  const parsed = JSON.parse(response);\n  const steps: Array<any> = parsed['campaign_schedule'];\n  const lastSteps = steps.reverse();\n  for (let i = 0; i < lastSteps.length; i++) {\n    if (lastSteps[i]?.template_id === templateId) {\n      return lastSteps[i].campaign_step_id;\n    }\n  }\n  throw new Error('Could not extract campaign step ID from response');\n}\n", "import { Component, Inject } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport {\n  MAT_DIALOG_DATA,\n  MatDialogActions,\n  MatDialogClose,\n  MatDialogContent,\n  MatDialogRef,\n} from '@angular/material/dialog';\nimport {\n  EmailContentData,\n  EmailPreviewHydrationData,\n  PreviewContextSelectorModule,\n  PreviewRenderingService,\n} from '@galaxy/email-ui/email-builder';\nimport { WhitelabelService } from '@galaxy/partner';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { SelectedPreviewContext } from '@galaxy/email-ui/email-builder/src/components/preview-context-selector/preview-context-selector.component';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { MatButton } from '@angular/material/button';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatOption } from '@angular/material/autocomplete';\nimport { MatSelect } from '@angular/material/select';\nimport { EmailTemplateService, SenderType } from '@vendasta/campaigns';\nimport { TranslateModule } from '@ngx-translate/core';\n\nexport interface SendPreviewDialogData {\n  business: SelectedPreviewContext;\n  subjectLine: string;\n  emailHtmlContent: string;\n  partnerID: string;\n  marketID: string;\n  locale?: string;\n}\n\n@Component({\n  templateUrl: './send-preview-dialog.component.html',\n  imports: [\n    FormsModule,\n    GalaxyWrapModule,\n    MatButton,\n    MatDialogActions,\n    MatDialogClose,\n    MatDialogContent,\n    MatFormField,\n    MatOption,\n    MatSelect,\n    ReactiveFormsModule,\n    PreviewContextSelectorModule,\n    TranslateModule,\n  ],\n})\nexport class SendPreviewDialogComponent {\n  public form: UntypedFormGroup;\n  hydrationData: EmailPreviewHydrationData;\n\n  private subs = SubscriptionList.new();\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA) public data: SendPreviewDialogData,\n    public dialogRef: MatDialogRef<SendPreviewDialogComponent>,\n    private formBuilder: UntypedFormBuilder,\n    private emailPreviewService: PreviewRenderingService,\n    private readonly campaignsService: EmailTemplateService,\n    private readonly alerts: SnackbarService,\n    private whitelabelService: WhitelabelService,\n    @Inject('USER_ID') private userId$: Observable<string>,\n    private readonly translate: TranslateService,\n  ) {\n    this.hydrationData = {\n      business: data.business,\n      userID: undefined, // Will be set from subscription below\n      contactID: 'default',\n      partnerID: this.data.partnerID,\n      marketID: this.data.marketID,\n      businessID: data.business.accountGroupId,\n    };\n    this.subs.add(this.userId$, (uid) => {\n      this.hydrationData.userID = uid;\n      this.emailPreviewService.setPreviewHydrationParams(this.hydrationData);\n    });\n    this.emailPreviewService.setLocale(data.locale);\n    this.userId$.subscribe();\n    this.form = this.formBuilder.group({\n      sendTo: formBuilder.control('myself'),\n    });\n  }\n\n  sendPreviewEmail(): void {\n    const target = this.form.get('sendTo').value;\n    if (target === 'myself') {\n      this.userId$\n        .pipe(\n          switchMap((userID) => {\n            const hydrationData = {\n              subjectLine: this.data.subjectLine,\n            } as EmailContentData;\n\n            return this.hydrateTemplate(userID, this.hydrationData?.contactID, hydrationData);\n          }),\n          switchMap((result) => {\n            return this.getSenderInfo(result.userID, result.content, result.subject);\n          }),\n          take(1),\n          switchMap((result) => {\n            return this.campaignsService.sendPreview(\n              {\n                id: result.businessID,\n                type: SenderType.SENDER_TYPE_BUSINESS,\n              },\n              result.content,\n              result.subject || 'Preview for unnamed template',\n              result.userID,\n            );\n          }),\n        )\n        .subscribe(\n          () => this.handleSendSuccess(),\n          (error) => this.handleSendError(error),\n        );\n    }\n  }\n\n  private hydrateTemplate(\n    userID: string,\n    contactID: string,\n    hydrationData: EmailContentData,\n  ): Observable<{\n    userID: string;\n    partnerID: string;\n    content: string;\n    subject: string;\n    namespace: string;\n    contactID: string;\n    businessID: string;\n  }> {\n    const hydratedContent = this.emailPreviewService.hydrateTemplate(hydrationData, this.data.emailHtmlContent);\n    const hydratedSubject = this.emailPreviewService.hydrateSubject(hydrationData, this.data.subjectLine);\n    return combineLatest([hydratedContent, hydratedSubject]).pipe(\n      map(([content, subject]) => ({\n        userID: userID,\n        partnerID: this.data.partnerID,\n        namespace: this.data.partnerID,\n        contactID: contactID,\n        content: content,\n        subject: subject,\n        businessID: this.data.business.accountGroupId,\n      })),\n    );\n  }\n\n  private getSenderInfo(\n    userID: string,\n    content: string,\n    subject: string,\n  ): Observable<{\n    userID: string;\n    partnerID: string;\n    content: string;\n    subject: string;\n    senderName: string;\n    senderEmail: string;\n    businessID: string;\n  }> {\n    return this.whitelabelService.getConfiguration(this.data.partnerID, null).pipe(\n      map((configuration) => {\n        // The defaults here are written to mirror AA/src/app/handlers/marketing_automation/templates.py:126\n        const senderName = configuration?.emailConfiguration?.senderName || 'Campaign Email Preview';\n        const senderEmail = configuration?.emailConfiguration?.senderEmail || 'noreply@vendasta.com';\n        return {\n          userID: userID,\n          partnerID: this.data.partnerID,\n          content: content,\n          subject: subject,\n          senderName: senderName,\n          senderEmail: senderEmail,\n          businessID: this.data.business.accountGroupId,\n        };\n      }),\n    );\n  }\n\n  handleSendSuccess(): void {\n    this.alerts.openSuccessSnack(this.translate.instant('CAMPAIGN_PREVIEW.SEND_SUCCESS'));\n    this.dialogRef.close();\n  }\n\n  handleSendError(error: Error): void {\n    this.alerts.openErrorSnack(this.translate.instant('CAMPAIGN_PREVIEW.SEND_FAILED'));\n    console.error(error);\n  }\n\n  updateSelectedContact($event: string): void {\n    this.hydrationData.contactID = $event;\n    this.emailPreviewService.setPreviewHydrationParams(this.hydrationData);\n  }\n}\n", "<mat-dialog-content>\n  <form [formGroup]=\"form\">\n    <EXP__glxy-wrap>\n      <mat-form-field>\n        <mat-select formControlName=\"sendTo\">\n          <mat-option [value]=\"'myself'\">{{\n            'CAMPAIGN_GENERIC.TEST_EMAIL.SEND_TEST_EMAIL_TO_MYSELF' | translate\n          }}</mat-option>\n        </mat-select>\n      </mat-form-field>\n    </EXP__glxy-wrap>\n    <EXP__glxy-wrap>\n      <email-preview-selector\n        layout=\"vertical\"\n        [hydrationData]=\"hydrationData\"\n        (contactSelected)=\"updateSelectedContact($event)\"\n      ></email-preview-selector>\n    </EXP__glxy-wrap>\n  </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n  <button mat-flat-button mat-dialog-close=\"\">{{ 'COMMON.ACTION_LABELS.CANCEL' | translate }}</button>\n  <button mat-button color=\"primary\" (click)=\"sendPreviewEmail()\">Send</button>\n</mat-dialog-actions>\n", "import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { firstValueFrom, Observable, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { EmailTemplateSaver, SaveResult } from '../shared/email-template-saver';\nimport { Context } from '../shared/context';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CommonModule, Location } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { CampaignStateService } from '../../../campaign-details-page/campaign-details/campaign-state.service';\nimport { EmailPreviewHydrationData, TEMPLATE_HYDRATION_DATA_TOKEN } from '@galaxy/email-ui/email-builder';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n  SendPreviewDialogComponent,\n  SendPreviewDialogData,\n} from '../send-preview-dialog/send-preview-dialog.component';\n\n@Component({\n  selector: 'campaign-editor-actions',\n  templateUrl: './page-actions.component.html',\n  styleUrls: ['./page-actions.component.scss'],\n  imports: [\n    CommonModule, //\n    MatButtonModule,\n    TranslateModule,\n    GalaxyButtonLoadingIndicatorModule,\n  ],\n})\nexport class PageActionsComponent implements OnDestroy, OnInit {\n  @Input() ownerId = '';\n  @Input() context: Context | undefined = undefined;\n  @Input() campaignStepId = '';\n  @Input() campaignId = '';\n  readonly saving$: Observable<boolean>;\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    @Inject(TEMPLATE_HYDRATION_DATA_TOKEN) private readonly hydrationData$: Observable<EmailPreviewHydrationData>,\n    private readonly location: Location,\n    private readonly alerts: SnackbarService,\n    private readonly i18n: TranslateService,\n    private readonly saver: EmailTemplateSaver,\n    private readonly campaignStateService: CampaignStateService,\n    private dialog: MatDialog,\n  ) {\n    this.saving$ = this.saver.workState.isLoading$.pipe(startWith(true));\n  }\n\n  ngOnInit(): void {\n    this.saver.initialize();\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.forEach((s) => s.unsubscribe());\n  }\n\n  async openPreviewEmailDialog(): Promise<void> {\n    const contentData = this.saver.getLatestData();\n    const htmlContent = this.saver.getLatestHTML();\n    const data: EmailPreviewHydrationData = await firstValueFrom(this.hydrationData$);\n    this.dialog.open(SendPreviewDialogComponent, {\n      data: {\n        partnerID: data.partnerID,\n        marketID: data.marketID,\n        business: data.business,\n        subjectLine: contentData.subjectLine,\n        emailHtmlContent: htmlContent,\n        locale: data.locale,\n      } as SendPreviewDialogData,\n      width: '400px',\n    });\n  }\n\n  handleSaveClicked(): void {\n    this.subscriptions.push(\n      this.saver.saveWithWorkState$(this.ownerId, this.context, this.campaignId, this.campaignStepId).subscribe({\n        next: (res: SaveResult) => this.handleSaveSuccess(this.ownerId, this.campaignId, res),\n        error: (err: Error) => this.handleSaveError(err),\n      }),\n    );\n  }\n\n  private handleSaveSuccess(ownerId: string, campaignId: string, res: SaveResult): void {\n    this.alerts.openSuccessSnack(this.i18n.instant('EMAIL_BUILDER.PAGE.ACTIONS.SAVE_SUCCESS'));\n    if (this.context?.isNew()) {\n      this.campaignStateService.addCampaignStep(\n        this.context,\n        this.campaignId,\n        res.templateId,\n        this.saver.getLatestData().name || '',\n      );\n      this.context = Context.forExistingTemplate(ownerId, res.templateId);\n    } else {\n      this.campaignStateService.updateCampaignStep(\n        this.context,\n        this.campaignId,\n        res.campaignStepId,\n        res.templateId,\n        res.campaign?.name || undefined,\n        undefined,\n      );\n    }\n\n    this.campaignStepId = res.campaignStepId;\n    const reloadURL = `/template/${res.templateId}/edit?campaignId=${campaignId}&campaignStepId=${res.campaignStepId}`;\n    this.location.go(reloadURL);\n  }\n\n  private handleSaveError(err: Error): void {\n    this.alerts.openErrorSnack(this.i18n.instant('EMAIL_BUILDER.PAGE.ACTIONS.ERROR_NOTICE'));\n    console.error(err);\n  }\n}\n", "<button mat-button (click)=\"openPreviewEmailDialog()\">\n  {{ 'EMAIL_BUILDER.PAGE.ACTIONS.SEND_PREVIEW_EMAIL' | translate }}\n</button>\n<button mat-flat-button color=\"primary\" (click)=\"handleSaveClicked()\" [disabled]=\"saving$ | async\">\n  <glxy-button-loading-indicator [isLoading]=\"saving$ | async\">\n    {{ 'EMAIL_BUILDER.PAGE.ACTIONS.SAVE' | translate }}\n  </glxy-button-loading-indicator>\n</button>\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, OnDestroy, Optional, ViewChild } from '@angular/core';\nimport {\n  AdvancedSections,\n  DYNAMIC_COMPONENT_DATA_TOKEN,\n  EMAIL_FOOTER_TOKEN,\n  EMAIL_TOP_LOGO_TOKEN,\n  EmailBuilderComponent,\n  EmailBuilderDataService,\n  EmailBuilderModule,\n  EmailContentData,\n  EmailPreviewHydrationData,\n  PLACEHOLDER_LOGO_URL_TOKEN,\n  PreviewContextSelectorModule,\n  TEMPLATE_HYDRATION_DATA_TOKEN,\n  VariableMenuItem,\n} from '@galaxy/email-ui/email-builder';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AppNamespace, OwnerType } from '@vendasta/email-builder';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { SwitchingWorkState, WorkStates } from '@vendasta/rx-utils/work-state';\nimport { AsyncUiModule } from '@vendasta/uikit';\nimport { BehaviorSubject, EMPTY, Observable, of } from 'rxjs';\nimport { skipWhile, take, map } from 'rxjs/operators';\n\nimport { Context } from './shared/context';\nimport { TEMPLATE_EXPORTER_KEY, TemplateExporter } from './shared/dependencies';\nimport { EmailTemplateSaver } from './shared/email-template-saver';\nimport {\n  Footer,\n  TopLogo,\n} from '@galaxy/email-ui/email-builder/src/components/email-advanced-settings/email-advanced-settings.component';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { SelectedPreviewContext } from '@galaxy/email-ui/email-builder/src/components/preview-context-selector/preview-context-selector.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\nconst initialContent: EmailContentData = {\n  subjectLine: '',\n  name: '',\n  previewText: '',\n  emailSetup: {\n    pageSetup: {\n      collapsed: true,\n    },\n    topLogo: {\n      showLogo: 'show',\n      collapsed: true,\n    },\n    colors: {\n      collapsed: true,\n    },\n    footer: {\n      collapsed: true,\n    },\n  },\n  emailContentBlocks: [],\n};\n\ninterface Fetch {\n  templateId: string;\n  ownerType: OwnerType;\n  ownerId: string;\n}\n\n@Component({\n  selector: 'campaign-editor-page',\n  templateUrl: './page.component.html',\n  styleUrls: ['./page.component.scss'],\n  imports: [\n    CommonModule,\n    GalaxyPageModule,\n    AsyncUiModule,\n    TranslateModule,\n    EmailBuilderModule,\n    PreviewContextSelectorModule,\n    MatButtonModule,\n  ],\n  providers: [{ provide: TEMPLATE_EXPORTER_KEY, useExisting: EmailTemplateSaver }],\n})\nexport class PageComponent implements OnDestroy {\n  private templateId = '';\n  content$: Observable<EmailContentData> = EMPTY;\n\n  readonly previewHydrationData$$: BehaviorSubject<EmailPreviewHydrationData> =\n    new BehaviorSubject<EmailPreviewHydrationData>({} as EmailPreviewHydrationData);\n\n  @Input() previousPageTitle = '';\n  @Input() previousPageURL = '';\n  @Input() locale = '';\n\n  readonly advancedSections: AdvancedSections = {\n    topLogo: true,\n    pageSetup: true,\n    footer: true,\n    colors: true,\n  };\n\n  @Input() set context(ctx: Context) {\n    let templateId: string;\n    if (ctx.isNew()) {\n      templateId = ''; // Don't try to load existing content\n    } else {\n      templateId = ctx.getExistingTemplateId();\n    }\n    this.fetchState$.startWork({\n      ownerType: ctx.getOwnerType(),\n      ownerId: ctx.getOwnerId(),\n      templateId: templateId,\n    });\n    this.templateId = templateId;\n  }\n\n  private readonly fetchState$ = new SwitchingWorkState<Fetch, EmailContentData>((fetch: Fetch) => {\n    const emptyContent: EmailContentData = { ...initialContent, emailContentBlocks: [] };\n    if (!fetch.templateId) {\n      this.content$ = of(emptyContent);\n    } else {\n      this.content$ = this.dataSvc\n        .loadTemplate$(fetch.ownerType, fetch.ownerId, AppNamespace.CAMPAIGNS, fetch.templateId)\n        .pipe(take(1));\n    }\n    return this.content$.pipe(\n      map((content) => {\n        if (this.footer) {\n          content.emailSetup.footer = this.footer;\n        }\n        if (this.defaultTopLogo?.defaultSourceUrl && content.emailSetup.topLogo?.showLogo === 'show') {\n          content.emailSetup.topLogo = { ...this.defaultTopLogo, ...content.emailSetup.topLogo };\n        }\n        return content;\n      }),\n    );\n  });\n\n  readonly fetchState: WorkStates<EmailContentData> = this.fetchState$;\n  private readonly subs = SubscriptionList.new();\n\n  @ViewChild('emailBuilder') private readonly emailBuilderChild: EmailBuilderComponent;\n\n  constructor(\n    private readonly dataSvc: EmailBuilderDataService,\n    @Inject(TEMPLATE_EXPORTER_KEY) private readonly exporter: TemplateExporter,\n    @Inject(TEMPLATE_HYDRATION_DATA_TOKEN)\n    @Optional()\n    readonly initialPreviewHydrationData$: Observable<EmailPreviewHydrationData>,\n    @Inject(PLACEHOLDER_LOGO_URL_TOKEN) @Optional() readonly placeholderLogo$: Observable<string>,\n    @Inject(EMAIL_FOOTER_TOKEN) @Optional() readonly footer: Footer,\n    @Inject(EMAIL_TOP_LOGO_TOKEN) @Optional() readonly defaultTopLogo: TopLogo,\n\n    @Inject(DYNAMIC_COMPONENT_DATA_TOKEN) @Optional() readonly dynamicComponents: VariableMenuItem[],\n    private readonly alerts: SnackbarService,\n    private readonly breakpointObserver: BreakpointObserver,\n  ) {\n    this.subs.add(this.exporter.workState.successEvents$, (success) => {\n      if (success) {\n        this.emailBuilderChild.saveEmail();\n      }\n    });\n    if (initialPreviewHydrationData$) {\n      this.subs.addSub(\n        initialPreviewHydrationData$\n          .pipe(\n            skipWhile((val) => !val),\n            take(1),\n          )\n          .subscribe((data) => this.previewHydrationData$$.next(data)),\n      );\n    }\n  }\n\n  handlePreviewContextChanges(event: SelectedPreviewContext): void {\n    const updatedParams = {\n      ...this.previewHydrationData$$.value,\n      accountGroupId: event.accountGroupId,\n      contactID: event.contactID,\n      useFakeData: event.useFakeData,\n    };\n    this.previewHydrationData$$.next(updatedParams);\n  }\n\n  handleContentChanges(event: EmailContentData): void {\n    this.exporter.updateContentData(event);\n  }\n\n  handleRenderUpdated(html: string): void {\n    this.exporter.updateHTML(html);\n  }\n\n  handleRenderFailed(): void {\n    this.alerts.openErrorSnack('EMAIL_BUILDER.PAGE.HANDLE_RENDER_ERROR');\n  }\n\n  ngOnDestroy(): void {\n    this.subs.destroy();\n  }\n}\n", "<glxy-page [pagePadding]=\"false\">\n  <glxy-page-toolbar>\n    <glxy-page-nav *ngIf=\"!!previousPageTitle\">\n      <glxy-page-nav-button\n        [previousPageUrl]=\"previousPageURL\"\n        [previousPageTitle]=\"previousPageTitle\"\n      ></glxy-page-nav-button>\n    </glxy-page-nav>\n    <glxy-page-title>{{ 'EMAIL_BUILDER.PAGE.TITLE' | translate }}</glxy-page-title>\n    <glxy-page-actions>\n      <ng-content #toolbar_actions></ng-content>\n    </glxy-page-actions>\n  </glxy-page-toolbar>\n  <uikit-async-ui\n    [loading]=\"fetchState.isLoading$ | async\"\n    [error]=\"(fetchState.isSuccess$ | async) === false\"\n    [data]=\"fetchState.workResults$ | async\"\n    loadingMargin=\"auto\"\n    errorMargin=\"auto\"\n  >\n    <ng-container *successData=\"let data\">\n      <email-builder\n        #emailBuilder\n        [emailContent]=\"data\"\n        [placeholderLogoUrl]=\"placeholderLogo$ | async\"\n        [advancedSections]=\"advancedSections\"\n        [locale]=\"locale\"\n        [dynamicComponents]=\"dynamicComponents\"\n        [previewHydrationParams]=\"previewHydrationData$$ | async\"\n        (emailContentChanged)=\"this.handleContentChanges($event)\"\n        (emailRenderUpdated)=\"this.handleRenderUpdated($event)\"\n        (emailRenderFailed)=\"this.handleRenderFailed()\"\n      >\n        <div class=\"container\" preview_header>\n          <email-preview-selector\n            [hydrationData]=\"previewHydrationData$$ | async\"\n            (contextSelected)=\"handlePreviewContextChanges($event)\"\n          ></email-preview-selector>\n        </div>\n      </email-builder>\n    </ng-container>\n  </uikit-async-ui>\n</glxy-page>\n", "import { Component, Inject } from '@angular/core';\nimport { ActivatedRoute, Data } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Title } from '@angular/platform-browser';\nimport { Context } from './page/shared/context';\nimport { PAGE_ROUTES } from '../routing-constants';\nimport { CONFIG_TOKEN, CONFIG_TYPE } from '../../../shared/src/tokens';\n\nexport enum PageType {\n  CREATE = 'create',\n  EDIT = 'edit',\n}\n\n@Component({\n  templateUrl: './campaign-email-builder.component.html',\n  standalone: false,\n})\nexport class CampaignEmailBuilderComponent {\n  backPageUrl$: Observable<string>;\n  context$: Observable<Context>;\n  campaignId$: Observable<string>;\n  campaignStepId$: Observable<string>;\n  templateId$: Observable<string>;\n  locale$: Observable<string>;\n  ownerId$: Observable<string>;\n\n  constructor(\n    private readonly titleService: Title,\n    private readonly route: ActivatedRoute,\n    @Inject(CONFIG_TOKEN) private readonly config: CONFIG_TYPE,\n  ) {\n    this.campaignId$ = this.route.queryParams.pipe(map((p) => p['campaignId']));\n    this.campaignStepId$ = this.route.queryParams.pipe(map((p) => p['campaignStepId']));\n    this.templateId$ = this.route.params.pipe(map((p) => p['templateId']));\n    this.locale$ = this.route.queryParams.pipe(map((p) => p['locale']));\n    this.ownerId$ = config.sender$.pipe(map((sender) => sender.id));\n\n    this.context$ = combineLatest([this.route.data, this.ownerId$, this.templateId$]).pipe(\n      map(([data, ownerId, templateId]: [Data, string, string]) => {\n        switch (data['pageType']) {\n          case PageType.CREATE:\n            return Context.forNewTemplate(ownerId);\n          case PageType.EDIT:\n            return Context.forExistingTemplate(ownerId, templateId);\n          default:\n            throw new Error(`Unexpected pageType: ${data['pageType']}`);\n        }\n      }),\n    );\n    this.backPageUrl$ = combineLatest([this.campaignId$, this.config.basePath$]).pipe(\n      map(([campaignId, basePath]) => `${basePath}/${PAGE_ROUTES.ROOT.CAMPAIGN_SUBROUTES.DETAILS(campaignId)}`),\n    );\n  }\n}\n", "<campaign-editor-page\n  previousPageTitle=\"{{ 'EMAIL_BUILDER.PAGE.PREVIOUS_PAGE_TOOLTIP' | translate }}\"\n  [previousPageURL]=\"backPageUrl$ | async\"\n  [context]=\"context$ | async\"\n  [locale]=\"locale$ | async\"\n>\n  <ng-container #toolbar_actions>\n    <campaign-editor-actions\n      [context]=\"context$ | async\"\n      [campaignId]=\"campaignId$ | async\"\n      [campaignStepId]=\"campaignStepId$ | async\"\n      [ownerId]=\"ownerId$ | async\"\n    ></campaign-editor-actions>\n  </ng-container>\n</campaign-editor-page>\n", "import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { HasUnsavedChangesGuard } from '@galaxy/email-ui/email-builder';\nimport { CampaignEmailBuilderComponent, PageType } from './campaign-email-builder.component';\n\n@NgModule({\n  imports: [\n    RouterModule.forChild([\n      {\n        path: '',\n        component: CampaignEmailBuilderComponent,\n      },\n      {\n        path: 'new',\n        pathMatch: 'full',\n        component: CampaignEmailBuilderComponent,\n        data: {\n          pageType: PageType.CREATE,\n        },\n        canDeactivate: [HasUnsavedChangesGuard],\n      },\n      {\n        path: ':templateId',\n        pathMatch: 'full',\n        redirectTo: ':templateId/edit',\n      },\n      {\n        path: ':templateId/edit',\n        pathMatch: 'full',\n        component: CampaignEmailBuilderComponent,\n        data: {\n          pageType: PageType.EDIT,\n        },\n        canDeactivate: [HasUnsavedChangesGuard],\n      },\n    ]),\n  ],\n  providers: [],\n  exports: [RouterModule],\n})\nexport class CampaignEmailBuilderRouting {}\n", "import { CommonModule } from '@angular/common';\nimport { PageActionsComponent } from './page/page-actions/page-actions.component';\nimport { PageComponent } from './page/page.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CampaignEmailBuilderRouting } from './campaign-email-builder.routing';\nimport { CampaignEmailBuilderComponent } from './campaign-email-builder.component';\nimport { NgModule } from '@angular/core';\nimport { EmailTemplateSaver } from './page/shared/email-template-saver';\nimport { CampaignStateService } from '../campaign-details-page/campaign-details/campaign-state.service';\nimport { CampaignsService } from '../campaign-details-page/campaign-details/campaigns.service';\nimport { DynamicComponentSelectorModule } from '@galaxy/email-ui/email-builder/src/components/dynamic-component-selector';\nimport { PreviewContextSelectorModule } from '@galaxy/email-ui/email-builder/src/components/preview-context-selector/preview-context-selector.module';\n\n@NgModule({\n  declarations: [CampaignEmailBuilderComponent],\n  imports: [\n    CommonModule, //\n    PageActionsComponent,\n    PageComponent,\n    TranslateModule,\n    CampaignEmailBuilderRouting,\n    DynamicComponentSelectorModule,\n    PreviewContextSelectorModule,\n  ],\n  exports: [CampaignEmailBuilderComponent],\n  providers: [EmailTemplateSaver, CampaignStateService, CampaignsService],\n})\nexport class CampaignEmailBuilderModule {}\n"],
  "mappings": "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",
  "names": ["UUIDTemplateIDGenerator", "EmailTemplateSaver", "init_email_template_saver", "__esmMin", "init_email_builder", "init_vendasta_email_builder", "init_src", "init_esm", "init_shareReplay", "init_operators", "init_esm_browser", "generate", "uuidv4", "factory", "\u0275fac", "providedIn", "constructor", "emailBuilderDataService", "idGenerator", "snackbarService", "workState$", "ObservableWorkState", "workState", "initialize", "latestData", "latestHTML", "saveWithWorkState$", "ownerId", "emailTemplateContext", "campaignId", "campaignStepId", "parent", "o$", "doSave", "pipe", "shareReplay", "bufferSize", "refCount", "startWork", "save$", "throwError", "createOrUpdateArgs", "data", "html", "isNew", "createNew", "updateExisting", "campaignID", "campaignStepID", "updateArgs", "ctx", "updateExistingTemplate$", "OwnerType", "OWNER_TYPE_ACCOUNT_GROUP", "AppNamespace", "CAMPAIGNS", "getExistingTemplateId", "catchError", "err", "openErrorSnack", "Error", "switchMap", "ebTemplateSucceeded", "of", "campaignData", "name", "templateId", "campaign", "createArgs", "createNewTemplate$", "take", "map", "updateContentData", "updateHTML", "getLatestData", "getLatestHTML", "\u0275\u0275inject", "EmailBuilderDataService", "SnackbarService", "SendPreviewDialogComponent", "init_send_preview_dialog_component", "__esmMin", "init_forms", "init_dialog", "init_email_builder", "init_src", "init_esm", "init_operators", "init_galaxy_wrap", "init_button", "init_form_field", "init_autocomplete", "init_select", "init_vendasta_campaigns", "init_ngx_translate_core", "constructor", "data", "dialogRef", "formBuilder", "emailPreviewService", "campaignsService", "alerts", "whitelabelService", "userId$", "translate", "subs", "SubscriptionList", "new", "hydrationData", "business", "userID", "undefined", "contactID", "partnerID", "marketID", "businessID", "accountGroupId", "add", "uid", "setPreviewHydrationParams", "setLocale", "locale", "subscribe", "form", "group", "sendTo", "control", "sendPreviewEmail", "get", "value", "pipe", "switchMap", "subjectLine", "hydrateTemplate", "result", "getSenderInfo", "content", "subject", "take", "sendPreview", "id", "type", "SenderType", "SENDER_TYPE_BUSINESS", "handleSendSuccess", "error", "handleSendError", "hydratedContent", "emailHtmlContent", "hydratedSubject", "hydrateSubject", "combineLatest", "map", "namespace", "getConfiguration", "configuration", "senderName", "emailConfiguration", "senderEmail", "openSuccessSnack", "instant", "close", "openErrorSnack", "console", "updateSelectedContact", "$event", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "UntypedFormBuilder", "PreviewRenderingService", "EmailTemplateService", "SnackbarService", "WhitelabelService", "TranslateService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "FormsModule", "\u0275NgNoValidate", "NgControlStatus", "NgControlStatusGroup", "GalaxyWrapModule", "GalaxyWrapComponent", "MatButton", "MatDialogActions", "MatDialogClose", "MatDialogContent", "MatFormField", "MatOption", "MatSelect", "ReactiveFormsModule", "FormGroupDirective", "FormControlName", "PreviewContextSelectorModule", "PreviewContextSelectorComponent", "TranslateModule", "TranslatePipe", "encapsulation", "PageActionsComponent", "init_page_actions_component", "__esmMin", "init_esm", "init_operators", "init_context", "init_ngx_translate_core", "init_common", "init_button", "init_button_loading_indicator", "init_email_builder", "init_send_preview_dialog_component", "constructor", "hydrationData$", "location", "alerts", "i18n", "saver", "campaignStateService", "dialog", "ownerId", "context", "undefined", "campaignStepId", "campaignId", "subscriptions", "saving$", "workState", "isLoading$", "pipe", "startWith", "ngOnInit", "initialize", "ngOnDestroy", "forEach", "s", "unsubscribe", "openPreviewEmailDialog", "__async", "contentData", "getLatestData", "htmlContent", "getLatestHTML", "data", "firstValueFrom", "open", "SendPreviewDialogComponent", "partnerID", "marketID", "business", "subjectLine", "emailHtmlContent", "locale", "width", "handleSaveClicked", "push", "saveWithWorkState$", "subscribe", "next", "res", "handleSaveSuccess", "error", "err", "handleSaveError", "openSuccessSnack", "instant", "isNew", "addCampaignStep", "templateId", "name", "Context", "forExistingTemplate", "updateCampaignStep", "campaign", "reloadURL", "go", "openErrorSnack", "console", "\u0275\u0275directiveInject", "TEMPLATE_HYDRATION_DATA_TOKEN", "Location", "SnackbarService", "TranslateService", "EmailTemplateSaver", "CampaignStateService", "MatDialog", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275property", "CommonModule", "AsyncPipe", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "styles", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r0", "previousPageURL", "previousPageTitle", "\u0275\u0275elementContainerStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleContentChanges", "handleRenderUpdated", "handleRenderFailed", "handlePreviewContextChanges", "data_r3", "\u0275\u0275pipeBind1", "placeholderLogo$", "advancedSections", "locale", "dynamicComponents", "previewHydrationData$$", "initialContent", "PageComponent", "init_page_component", "__esmMin", "init_common", "init_email_builder", "init_ngx_translate_core", "init_vendasta_email_builder", "init_page", "init_src", "init_esm", "init_operators", "init_dependencies", "init_email_template_saver", "init_button", "subjectLine", "name", "previewText", "emailSetup", "pageSetup", "collapsed", "topLogo", "showLogo", "colors", "footer", "emailContentBlocks", "context", "ctx", "templateId", "isNew", "getExistingTemplateId", "fetchState$", "startWork", "ownerType", "getOwnerType", "ownerId", "getOwnerId", "constructor", "dataSvc", "exporter", "initialPreviewHydrationData$", "defaultTopLogo", "alerts", "breakpointObserver", "content$", "EMPTY", "BehaviorSubject", "SwitchingWorkState", "fetch", "emptyContent", "__spreadProps", "__spreadValues", "loadTemplate$", "AppNamespace", "CAMPAIGNS", "pipe", "take", "of", "map", "content", "defaultSourceUrl", "fetchState", "subs", "SubscriptionList", "new", "add", "workState", "successEvents$", "success", "emailBuilderChild", "saveEmail", "addSub", "skipWhile", "val", "subscribe", "data", "next", "event", "updatedParams", "value", "accountGroupId", "contactID", "useFakeData", "updateContentData", "html", "updateHTML", "openErrorSnack", "ngOnDestroy", "destroy", "\u0275\u0275directiveInject", "EmailBuilderDataService", "TEMPLATE_EXPORTER_KEY", "TEMPLATE_HYDRATION_DATA_TOKEN", "PLACEHOLDER_LOGO_URL_TOKEN", "EMAIL_FOOTER_TOKEN", "EMAIL_TOP_LOGO_TOKEN", "DYNAMIC_COMPONENT_DATA_TOKEN", "SnackbarService", "BreakpointObserver", "selectors", "viewQuery", "rf", "provide", "useExisting", "EmailTemplateSaver", "ngContentSelectors", "_c1", "decls", "vars", "consts", "template", "\u0275\u0275template", "PageComponent_glxy_page_nav_2_Template", "\u0275\u0275text", "\u0275\u0275projection", "PageComponent_ng_container_12_Template", "\u0275\u0275textInterpolate", "isLoading$", "isSuccess$", "workResults$", "CommonModule", "NgIf", "AsyncPipe", "GalaxyPageModule", "PageToolbarComponent", "PageTitleDirective", "PageNavDirective", "PageNavButtonComponent", "PageActionsDirective", "AsyncUiModule", "AsyncUiComponent", "SuccessDataDirective", "TranslateModule", "TranslatePipe", "EmailBuilderModule", "EmailBuilderComponent", "PreviewContextSelectorModule", "PreviewContextSelectorComponent", "MatButtonModule", "styles", "PageType", "CampaignEmailBuilderComponent", "init_campaign_email_builder_component", "__esmMin", "init_esm", "init_operators", "init_context", "init_routing_constants", "init_tokens", "constructor", "titleService", "route", "config", "campaignId$", "queryParams", "pipe", "map", "p", "campaignStepId$", "templateId$", "params", "locale$", "ownerId$", "sender$", "sender", "id", "context$", "combineLatest", "data", "ownerId", "templateId", "CREATE", "Context", "forNewTemplate", "EDIT", "forExistingTemplate", "Error", "backPageUrl$", "basePath$", "campaignId", "basePath", "PAGE_ROUTES", "ROOT", "CAMPAIGN_SUBROUTES", "DETAILS", "\u0275\u0275directiveInject", "Title", "ActivatedRoute", "CONFIG_TOKEN", "selectors", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275property", "\u0275\u0275advance", "CampaignEmailBuilderRouting", "init_campaign_email_builder_routing", "__esmMin", "init_router", "init_email_builder", "init_campaign_email_builder_component", "RouterModule", "forChild", "path", "component", "CampaignEmailBuilderComponent", "pathMatch", "data", "pageType", "PageType", "CREATE", "canDeactivate", "HasUnsavedChangesGuard", "redirectTo", "EDIT", "CampaignEmailBuilderModule", "init_campaign_email_builder_module", "__esmMin", "init_common", "init_page_actions_component", "init_page_component", "init_ngx_translate_core", "init_campaign_email_builder_routing", "init_email_template_saver", "init_campaign_state_service", "init_campaigns_service", "init_dynamic_component_selector", "init_preview_context_selector_module", "EmailTemplateSaver", "CampaignStateService", "CampaignsService", "imports", "CommonModule", "PageActionsComponent", "PageComponent", "TranslateModule", "CampaignEmailBuilderRouting", "DynamicComponentSelectorModule", "PreviewContextSelectorModule"]
}