{ "version": 3, "sources": ["libs/campaign/src/lib/dependencies/src/tokens.ts"], "sourcesContent": ["import { Component, InjectionToken, Type } from '@angular/core';\nimport { CampaignConfig } from './config';\nimport { WorkStates } from '@vendasta/rx-utils/work-state';\nimport { SaveResult } from '../../campaign-email-builder/page/shared/email-template-saver';\nimport { EmailContentData, EmailPreviewHydrationData } from '@galaxy/email-ui/email-builder';\nimport { combineLatest, Observable } from 'rxjs';\nimport { AccountGroup } from '@vendasta/account-group/lib/_internal/objects/api';\nimport { map } from 'rxjs/operators';\nimport { SenderInterface } from '@vendasta/campaigns';\n\nexport const CONFIG_TOKEN = new InjectionToken('com.vendasta.campaigns.config');\nexport type CONFIG_TYPE = CampaignConfig;\n\nexport const PREVIEW_DATA_TOKEN = new InjectionToken('com.vendasta.campaigns.preview.data');\nexport type PREVIEW_DATA_TYPE = Observable<{ [key: string]: string }>;\n\nexport const PREVIEW_DATA_SELECTOR_COMPONENT_TOKEN = new InjectionToken(\n 'com.vendasta.campaigns.preview.data.selector_component',\n);\nexport type PREVIEW_DATA_SELECTOR_COMPONENT_TYPE = Type;\n\nexport interface PreviewDataProvider {\n data$: PREVIEW_DATA_TYPE;\n}\n\nexport interface TemplateExporter {\n workState: WorkStates;\n\n updateContentData(update: EmailContentData): void;\n\n updateHTML(html: string): void;\n}\n\nexport function buildHydrationData(\n accountGroup$: Observable,\n campaignConfig: CampaignConfig,\n): Observable {\n return combineLatest([accountGroup$, campaignConfig.userId$]).pipe(\n map(([accountGroup, userId]: [AccountGroup, string]) => ({\n business: {\n accountGroupId: accountGroup.accountGroupId,\n name: accountGroup.napData?.companyName,\n hasSnapshot: accountGroup.snapshotReports?.snapshots?.length > 0,\n hasSalesperson: accountGroup.accountGroupExternalIdentifiers?.salesPersonId !== '',\n },\n partnerID: '',\n marketID: '',\n userID: userId,\n locale: 'en',\n useFakeData: false,\n })),\n );\n}\n\nexport const SUPPORTED_LOCALES_TOKEN = 'com.vendasta.campaigns.supported_locales';\nexport type LOCALE_DATA_TYPE = Observable<{ value: string; name: string }[]>;\n\nexport interface QuotaConfig {\n sender$: Observable;\n actionURL?: string;\n}\n\nexport type QUOTA_CONFIG = QuotaConfig;\nexport const QUOTA_BANNER_CONFIG = 'campaign.quota.banner.config';\n\nexport enum AddActionType {\n New = 'add-new',\n Existing = 'add-existing',\n Snapshot = 'add-snapshot',\n SMS = 'add-sms',\n}\n"], "mappings": "yCAUO,IAAMA,EAAe,IAAIC,EAAe,+BAA+B,EAGjEC,EAAqB,IAAID,EAAe,qCAAqC,EAG7EE,EAAwC,IAAIF,EACvD,wDAAwD,EAqCnD,IAAMG,EAA0B,2CAS1BC,EAAsB,+BAEvBC,EAAZ,SAAYA,EAAa,CACvBA,OAAAA,EAAA,IAAA,UACAA,EAAA,SAAA,eACAA,EAAA,SAAA,eACAA,EAAA,IAAA,UAJUA,CAKZ,EALYA,GAAa,CAAA,CAAA", "names": ["CONFIG_TOKEN", "InjectionToken", "PREVIEW_DATA_TOKEN", "PREVIEW_DATA_SELECTOR_COMPONENT_TOKEN", "SUPPORTED_LOCALES_TOKEN", "QUOTA_BANNER_CONFIG", "AddActionType"] }