{ "version": 3, "sources": ["apps/partner-center-client/src/app/marketing/campaign.ts", "apps/partner-center-client/src/app/marketing/marketing-automation-page/interface.ts", "apps/partner-center-client/src/app/marketing/marketing-automation-page/campaigns.service.ts"], "sourcesContent": ["import { Moment } from 'moment';\n\nexport class Campaign {\n id?: string;\n campaignId?: string;\n name?: string;\n isDraft?: boolean;\n status?: string;\n createdDate?: Date;\n updatedDate?: Date;\n createdUser?: string;\n updatedUser?: string;\n recipientCampaignId?: string;\n recipientCampaignStatus?: string;\n nextStepScheduledDate?: Date;\n focus?: string;\n locale?: string;\n campaignSchedule?: CampaignSchedule[];\n\n public static createFromRawData(rawData: any): Campaign {\n const campaign = new Campaign();\n campaign.id = rawData.campaign_id;\n campaign.name = rawData.name;\n campaign.status = rawData.status;\n campaign.locale = rawData.locale;\n campaign.isDraft = rawData.is_draft;\n campaign.focus = rawData.campaign_focus;\n campaign.createdDate = new Date(rawData.created);\n campaign.updatedDate = new Date(rawData.updated);\n campaign.createdUser = rawData.created_user;\n campaign.updatedUser = rawData.updated_user;\n campaign.campaignSchedule = [];\n if (rawData.campaign_schedule) {\n campaign.campaignSchedule = rawData.campaign_schedule.map((scheduleData) =>\n this.createScheduleData(scheduleData),\n );\n }\n return campaign;\n }\n\n private static createScheduleData(campaignSchedule: any): CampaignSchedule {\n return {\n campaignStepId: campaignSchedule.campaign_step_id,\n name: campaignSchedule.name,\n secondsAfterLastEmail: campaignSchedule.seconds_after_last_email,\n stepType: campaignSchedule.step_type,\n templateId: campaignSchedule.template_id,\n };\n }\n\n get currentStatus(): string {\n if (this.status === 'draft' || this.status === 'archived') {\n return null;\n } else if (this.recipientCampaignStatus === 'active') {\n return 'active';\n } else if (this.recipientCampaignStatus === 'stopped') {\n return 'paused';\n } else if (this.recipientCampaignStatus === 'waiting_on_rate_limit') {\n return 'buffering';\n } else if (this.recipientCampaignStatus === 'completed') {\n return 'completed';\n } else {\n console.error('unexpected statuses', this.status, this.recipientCampaignStatus);\n return null;\n }\n }\n\n get started(): boolean {\n return !!this.recipientCampaignId;\n }\n}\n\nexport class AutomationConstants {\n public static START_CAMPAIGN = 'start-campaign';\n public static STOP_CAMPAIGN = 'stop-campaign';\n public static PRODUCT_TRIGGER = 'product-activation';\n}\n\nexport interface CampaignEvent {\n recipientName: string;\n recipientEmail: string;\n accountGroupId: string;\n accountName: string;\n accountAddress: string;\n eventStep: string;\n activity: string;\n time: Moment;\n}\n\nexport interface CampaignStepTitle {\n campaignStepId: string;\n title: string;\n}\n\nexport interface RecipientCampaignStatusResponse {\n recipientCampaignId: string;\n scheduledTime: Date;\n stageName: string;\n stageType: string;\n status: string;\n}\n\nexport interface SimpleCampaign {\n id: string;\n name: string;\n status: string;\n}\n\nexport interface LookupCampaignsResponse {\n campaigns: SimpleCampaign[];\n offset?: string;\n}\n\nexport interface RecipientCampaign {\n recipientId: string;\n recipientCampaignId: string;\n status: string;\n nextStepScheduledDate: string;\n}\n\nexport interface RecipientCampaignsResponse {\n [campaignId: string]: RecipientCampaign;\n}\n\nexport interface CampaignSchedule {\n campaignStepId: string;\n stepType: string;\n name: string;\n secondsAfterLastEmail: number;\n templateId: string;\n}\n\nexport interface CampaignDelay {\n delay: number;\n validDays: string[];\n timezone: string;\n rateLimitEnabled: boolean;\n rateLimit: number;\n}\n\nexport interface CampaignAutomations {\n automationID: string;\n productId: string;\n triggerId?: string;\n actionID?: string;\n}\n\nexport interface AutomationIds {\n start_automation_id: string;\n stop_automation_id: string;\n}\n", "export interface CampaignData {\n is_enabled: boolean;\n status: string;\n updated: string;\n open_rate: number;\n hidden_for_partners: any[];\n events_count: number;\n emails_delivered: number;\n created: string;\n campaign_id: string;\n campaign_focus: string;\n is_editable: boolean;\n created_user: string;\n accounts_count: number;\n click_through_rate: number;\n has_automations: boolean;\n parent_campaign_id: string;\n active_accounts_count: number;\n is_hidden: boolean;\n is_draft: boolean;\n updated_user: string;\n name: string;\n campaign_schedule: CampaignStepInterface[];\n partner_id: string;\n market_id: string;\n campaign_schedule_version: number;\n locale: string;\n email_category_id: string;\n is_premade: boolean;\n}\n\nexport interface CampaignPreviewInterface {\n html: string;\n name: string;\n subject: string;\n}\n\nexport interface CampaignStepInterface {\n campaign_step_id: string;\n step_type: string;\n template_id: string;\n seconds_after_last_email: number;\n name: string;\n}\n\nexport interface TemplateData {\n created: string;\n fullHtml: string;\n htmlBody: string;\n name: string;\n subject: string;\n templateId: string;\n useFullHtml: boolean;\n}\n\nexport interface CampaignStepData {\n bounced: number;\n campaign_step_id: string;\n clickedThrough: number;\n created: number;\n delivered: number;\n dropped: number;\n notRequired: number;\n onDeck: number;\n opened: number;\n paused: number;\n pending: number;\n refreshed: number;\n sent: number;\n spamReport: number;\n unsubscribed: number;\n clickToOpenRate: number;\n openRate: number;\n}\n\nexport interface CampaignStats {\n active: number;\n clicked_through: number;\n completed: number;\n delivered: number;\n opened: number;\n sent: number;\n stopped: number;\n total_accounts: number;\n total_leads: number;\n total_recipients: number;\n undeliverable: number;\n waiting_on_rate_limit: number;\n}\n\nexport enum CampaignStatus {\n ACTIVE = 'active',\n DRAFT = 'draft',\n PUBLISHED = 'published',\n ARCHIVED = 'archived',\n}\n\nexport interface StepNumberInterface {\n currentStep: number;\n totalSteps: number;\n}\n\nexport interface MarketingAutomationPageData {\n key: string;\n title: string;\n imageHeader: {\n title: string;\n subtitle: string;\n };\n showNewPage?: boolean;\n manageTagsCampaignId?: string;\n}\n\nexport enum CampaignFocus {\n ACQUIRE = 'acquire',\n ADOPT = 'adopt',\n UPSELL = 'upsell',\n}\n", "import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n CampaignService,\n CampaignStepInterface,\n CampaignStepInterfaceInterface,\n CampaignStepType,\n ConfigService,\n EmailTemplateService,\n FieldMaskInterface,\n Focuses,\n GetterCampaignData,\n LegacyAppengineService,\n ListCampaignsResponse,\n ListRecommendedCampaignsRequestInterface,\n RecipientCampaignService,\n Sender,\n SenderInterface,\n SenderType,\n Statuses,\n StepDataResponse,\n UpdateConfigResponse,\n} from '@vendasta/campaigns';\nimport { RecipientCampaignStatus } from '@vendasta/campaigns/lib/_internal';\nimport { PagedRequestOptionsInterface } from '@vendasta/campaigns/lib/_internal/interfaces';\nimport { GetConfigResponse, RecipientCampaignStruct } from '@vendasta/campaigns/lib/_internal/objects/api';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ApiService } from '../../api-service/api.service';\nimport { AutomationConstants, AutomationIds, CampaignAutomations } from '../campaign';\nimport { CampaignPreviewInterface, CampaignStatus } from './interface';\n\nexport const SNAPSHOT_STEP_NAME = 'Snapshot Creation';\nexport const DEFAULT_SEND_DELAY = 5 * 60; // 5 minutes\n\nexport const MAILING_INFO_NOT_CONFIGURED = 'mailing-info-not-configured';\nconst exampleEmail = 'example@example.com';\n\n@Injectable({ providedIn: 'root' })\nexport class CampaignsService {\n cs: typeof CampaignStatus = CampaignStatus;\n\n constructor(\n private campaignAPIService: CampaignService,\n private templateService: EmailTemplateService,\n private legacyCampaignService: LegacyAppengineService,\n private configService: ConfigService,\n private rcService: RecipientCampaignService,\n private apiService: ApiService,\n private readonly http: HttpClient,\n ) {}\n\n createCampaign(sender: SenderInterface, name: string): Observable {\n return this.campaignAPIService.create(sender as Sender, name);\n }\n\n deleteCampaign(campaignId: string): Observable {\n return this.campaignAPIService.delete(campaignId);\n }\n\n getCampaign(campaignID: string): Observable {\n return this.campaignAPIService.get(campaignID);\n }\n\n listCampaigns(\n partnerID: string,\n focuses?: Focuses[],\n statuses?: Statuses[],\n name?: string,\n pagingOptions?: PagedRequestOptionsInterface,\n ): Observable {\n return this.campaignAPIService.list(partnerID, focuses, statuses, name, pagingOptions);\n }\n\n listRecommendedCampaigns(data: ListRecommendedCampaignsRequestInterface): Observable {\n return this.campaignAPIService.listRecommendedCampaigns(data);\n }\n\n updateStatus(sender: SenderInterface, campaignID: string, status: Statuses): Observable {\n return this.campaignAPIService.updateStatus(sender, campaignID, status);\n }\n\n pauseCampaign(campaignId: string): Observable {\n return this.campaignAPIService.pauseCampaign(campaignId);\n }\n\n unpauseCampaign(campaignId: string): Observable {\n return this.campaignAPIService.unpauseCampaign(campaignId);\n }\n\n updateCampaignLocale(sender: SenderInterface, campaignID: string, locale: string): Observable {\n return this.campaignAPIService.updateCampaignLocale(sender, campaignID, locale);\n }\n\n updateCampaignSchedule(\n sender: SenderInterface,\n campaignID: string,\n campaignSchedule: CampaignStepInterfaceInterface[],\n ): Observable {\n return this.campaignAPIService.updateCampaignSchedule(sender, campaignID, campaignSchedule);\n }\n\n updateStep(\n sender: SenderInterface,\n campaignId: string,\n campaignStepId: string,\n contentId: string,\n name: string,\n secondsAfterLastStep: number,\n fm: FieldMaskInterface,\n ): Observable {\n return this.campaignAPIService.updateStep(\n sender,\n campaignId,\n campaignStepId,\n contentId,\n name,\n secondsAfterLastStep,\n fm,\n );\n }\n\n addSnapshotStep(sender: SenderInterface, campaignId: string): Observable {\n return this.campaignAPIService.addStep(\n sender,\n campaignId,\n CampaignStepType.CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION,\n '',\n SNAPSHOT_STEP_NAME,\n );\n }\n\n isSnapshotStep(step: CampaignStepInterfaceInterface): boolean {\n return step.stepType === CampaignStepType.CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION;\n }\n\n hasSnapshotStep(campaignId: string): Observable {\n return this.campaignAPIService.get(campaignId).pipe(\n map((campaign) => {\n return campaign.campaignSchedule.some((step) => this.isSnapshotStep(step));\n }),\n );\n }\n\n addStep(\n sender: SenderInterface,\n campaignId: string,\n stepType: CampaignStepType,\n contentId: string,\n name: string,\n ): Observable {\n return this.campaignAPIService.addStep(sender, campaignId, stepType, contentId, name);\n }\n\n updateName(sender: SenderInterface, campaignID: string, name: string): Observable {\n return this.campaignAPIService.updateName(sender, campaignID, name);\n }\n\n updateRecipientCampaignStatus(recipientCampaignId: string, status: RecipientCampaignStatus): Observable {\n return this.legacyCampaignService.updateRecipientCampaignStatus(recipientCampaignId, status);\n }\n\n getConfig(campaignId: string): Observable {\n return this.configService.getConfig(campaignId);\n }\n\n updateCampaignConfig(\n sender: SenderInterface,\n campaignId: string,\n timezone: string,\n validDays: string[],\n ): Observable {\n return this.configService.updateConfig(campaignId, timezone, [], false, 0, sender, validDays);\n }\n\n listRecipientCampaigns(accountGroupID: string): Observable {\n return this.rcService.list(accountGroupID);\n }\n\n convertFocusToProto(focus: string): Focuses {\n switch (focus) {\n case 'acquire':\n return Focuses.FOCUSES_ACQUIRE;\n case 'adopt':\n return Focuses.FOCUSES_ADOPT;\n case 'upsell':\n return Focuses.FOCUSES_UPSELL;\n case 'none':\n return Focuses.FOCUSES_NONE;\n default:\n return Focuses.FOCUSES_ACQUIRE;\n }\n }\n\n statusFromProto(status: Statuses): string {\n switch (status) {\n case Statuses.STATUSES_DRAFT:\n return this.cs.DRAFT;\n case Statuses.STATUSES_PUBLISHED:\n return this.cs.PUBLISHED;\n case Statuses.STATUSES_ACTIVE:\n return this.cs.ACTIVE;\n case Statuses.STATUSES_ARCHIVED:\n return this.cs.ARCHIVED;\n default:\n return '';\n }\n }\n\n focusFromProto(focus: Focuses): string {\n switch (focus) {\n case Focuses.FOCUSES_ACQUIRE:\n return 'acquire';\n case Focuses.FOCUSES_UPSELL:\n return 'upsell';\n case Focuses.FOCUSES_ADOPT:\n return 'adopt';\n case Focuses.FOCUSES_NONE:\n return 'none';\n default:\n return '';\n }\n }\n\n //Legacy Ajax endpoints\n\n private _stepIdForPreview = '';\n private _prefetchTemplatePreviews$$: BehaviorSubject<{ [templateId: string]: CampaignPreviewInterface }> =\n new BehaviorSubject({});\n\n getPrefetchedPreviewByStepId(stepId: string): CampaignPreviewInterface {\n return this._prefetchTemplatePreviews$$.value[stepId];\n }\n\n loadPreviews(\n partnerID: string,\n marketID: string,\n accountGroupID: string,\n locale: string,\n steps: CampaignStepInterface[],\n ) {\n const previews$ = steps.map((step) => {\n return this.getHTMLContentOfEmail(partnerID, marketID, step.templateId, accountGroupID, locale).pipe(\n map((preview) => ({ ...preview, stepId: step.campaignStepId })),\n );\n });\n combineLatest(previews$).subscribe((previews) => {\n const newPreviews = {};\n previews.forEach((preview) => (newPreviews[preview.stepId] = preview));\n this._prefetchTemplatePreviews$$.next(newPreviews);\n });\n }\n\n get stepIDForPreview(): string {\n return this._stepIdForPreview;\n }\n\n set stepIDForPreview(stepId: string) {\n this._stepIdForPreview = stepId;\n }\n\n getHTMLContentOfEmail(\n partnerId: string,\n marketId: string,\n templateId: string,\n accountGroupId = '',\n locale?: string,\n ): Observable {\n if (templateId === 'snapshot-creation') {\n return of({\n html: '',\n name: '',\n subject: '',\n });\n }\n return this.templateService\n .previewEmailTemplate(templateId, accountGroupId, partnerId, marketId, locale, '', {\n type: SenderType.SENDER_TYPE_PARTNER,\n id: partnerId,\n })\n .pipe(\n map((preview) => ({\n html: preview.htmlBody,\n name: preview.name,\n subject: preview.subject,\n })),\n );\n }\n getCampaignAutiomations(campaignId: string, partnerId: string, marketId: string): Observable {\n const url = `/_ajax/v1/campaign/automation/lookup?campaignId=${campaignId}&partnerId=${partnerId}&marketId=${marketId}&actionIds=${AutomationConstants.START_CAMPAIGN}&actionIds=${AutomationConstants.STOP_CAMPAIGN}`;\n const automations: CampaignAutomations[] = [];\n return this.apiService.get(url).pipe(\n map((res) => {\n res.forEach((a) => {\n automations.push({\n automationID: a.automation_id,\n productId: a.product_id,\n triggerId: a.trigger_id,\n actionID: a.action_id,\n });\n });\n return automations;\n }),\n );\n }\n\n updateAutomationsConfig(\n startAutomationProductId: string,\n startProductId: string,\n stopAutomationProductId: string,\n stopProductId: string,\n marketId: string,\n campaignId: string,\n ): Observable {\n const url = `/_ajax/v1/campaign/automation/update`;\n const formData = new FormData();\n formData.set('startAutomationProductId', startAutomationProductId);\n formData.set('startAutomationId', startProductId);\n formData.set('stopAutomationProductId', stopAutomationProductId);\n formData.set('stopAutomationId', stopProductId);\n formData.set('marketId', marketId);\n formData.set('campaignId', campaignId);\n return this.http.post<{ data: AutomationIds; withCredentials: true }>(url, formData).pipe(map((r) => r.data));\n }\n\n legacyStepTypeToProto(stepType: CampaignStepType): string {\n switch (stepType) {\n case CampaignStepType.CAMPAIGN_STEP_TYPE_EMAIL:\n return 'email';\n case CampaignStepType.CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION:\n return 'snapshot-creation';\n case CampaignStepType.CAMPAIGN_STEP_TYPE_SMS:\n return 'sms';\n default:\n return '';\n }\n }\n\n validateForRecipient(\n campaignSchedule: CampaignStepInterface[],\n partnerId: string,\n accountGroupId: string,\n marketId: string,\n ): Observable {\n const formData = new FormData();\n const scheduleJSON: {\n campaign_step_id: string;\n step_type: string;\n template_id: string;\n seconds_after_last_email: number;\n name: string;\n }[] = [];\n\n campaignSchedule.forEach((step) => {\n scheduleJSON.push({\n campaign_step_id: step.campaignStepId,\n step_type: this.legacyStepTypeToProto(step.stepType),\n template_id: step.templateId,\n seconds_after_last_email: step.secondsAfterLastEmail ? step.secondsAfterLastEmail : 0,\n name: step.name,\n });\n });\n\n formData.set('campaignScheduleJson', JSON.stringify(scheduleJSON));\n formData.set('partnerId', partnerId);\n formData.set('accountGroupId', accountGroupId);\n formData.set('email', exampleEmail);\n formData.set('marketId', marketId);\n return this.http.post('/_ajax/v1/campaign/validateForRecipient', formData).pipe(\n map((resp) => {\n return resp.data;\n }),\n );\n }\n\n sendTestEmail(\n partnerId: string,\n templateId: string,\n email: string,\n marketId = '',\n accountGroupId = '',\n locale?: string,\n renderFakeData?: boolean,\n ): Observable {\n const formData = new FormData();\n formData.set('partnerId', partnerId);\n formData.set('templateId', templateId);\n formData.set('recipientEmail', email);\n formData.set('marketId', marketId);\n formData.set('accountGroupId', accountGroupId);\n formData.set('renderFakeDataFlag', renderFakeData ? 'true' : 'false');\n if (locale) {\n formData.set('locale', locale);\n }\n return this.http.post('/_ajax/v1/campaign/template/preview/send/', formData);\n }\n\n updateCampaignFocus(campaignId: string, focus: string): Observable {\n //TODO: deprecate this in favour of tags [MAEL-1024]\n const formData = new FormData();\n formData.set('focus', focus);\n formData.set('campaignId', campaignId);\n return this.http\n .post<{ data: null }>('/_ajax/v1/campaign/focus/update', formData, {\n withCredentials: true,\n })\n .pipe(map((resp) => resp.data));\n }\n\n updateCampaignEmailCategory(campaignId: string, emailCategoryId: string): Observable {\n const formData = new FormData();\n formData.set('emailCategoryId', emailCategoryId);\n formData.set('campaignId', campaignId);\n return this.http\n .post<{ data: null }>('/_ajax/v1/campaign/email-category/update', formData, {\n withCredentials: true,\n })\n .pipe(map((resp) => resp.data));\n }\n}\n"], "mappings": "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", "names": ["Campaign", "createFromRawData", "rawData", "campaign", "id", "campaign_id", "name", "status", "locale", "isDraft", "is_draft", "focus", "campaign_focus", "createdDate", "Date", "created", "updatedDate", "updated", "createdUser", "created_user", "updatedUser", "updated_user", "campaignSchedule", "campaign_schedule", "map", "scheduleData", "createScheduleData", "campaignStepId", "campaign_step_id", "secondsAfterLastEmail", "seconds_after_last_email", "stepType", "step_type", "templateId", "template_id", "currentStatus", "recipientCampaignStatus", "console", "error", "started", "recipientCampaignId", "AutomationConstants", "_AutomationConstants", "START_CAMPAIGN", "STOP_CAMPAIGN", "PRODUCT_TRIGGER", "CampaignStatus", "CampaignFocus", "SNAPSHOT_STEP_NAME", "DEFAULT_SEND_DELAY", "MAILING_INFO_NOT_CONFIGURED", "exampleEmail", "CampaignsService", "constructor", "campaignAPIService", "templateService", "legacyCampaignService", "configService", "rcService", "apiService", "http", "cs", "CampaignStatus", "_stepIdForPreview", "_prefetchTemplatePreviews$$", "BehaviorSubject", "createCampaign", "sender", "name", "create", "deleteCampaign", "campaignId", "delete", "getCampaign", "campaignID", "get", "listCampaigns", "partnerID", "focuses", "statuses", "pagingOptions", "list", "listRecommendedCampaigns", "data", "updateStatus", "status", "pauseCampaign", "unpauseCampaign", "updateCampaignLocale", "locale", "updateCampaignSchedule", "campaignSchedule", "updateStep", "campaignStepId", "contentId", "secondsAfterLastStep", "fm", "addSnapshotStep", "addStep", "CampaignStepType", "CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION", "isSnapshotStep", "step", "stepType", "hasSnapshotStep", "pipe", "map", "campaign", "some", "updateName", "updateRecipientCampaignStatus", "recipientCampaignId", "getConfig", "updateCampaignConfig", "timezone", "validDays", "updateConfig", "listRecipientCampaigns", "accountGroupID", "convertFocusToProto", "focus", "Focuses", "FOCUSES_ACQUIRE", "FOCUSES_ADOPT", "FOCUSES_UPSELL", "FOCUSES_NONE", "statusFromProto", "Statuses", "STATUSES_DRAFT", "DRAFT", "STATUSES_PUBLISHED", "PUBLISHED", "STATUSES_ACTIVE", "ACTIVE", "STATUSES_ARCHIVED", "ARCHIVED", "focusFromProto", "getPrefetchedPreviewByStepId", "stepId", "value", "loadPreviews", "marketID", "steps", "previews$", "getHTMLContentOfEmail", "templateId", "preview", "__spreadProps", "__spreadValues", "combineLatest", "subscribe", "previews", "newPreviews", "forEach", "next", "stepIDForPreview", "partnerId", "marketId", "accountGroupId", "of", "html", "subject", "previewEmailTemplate", "type", "SenderType", "SENDER_TYPE_PARTNER", "id", "htmlBody", "getCampaignAutiomations", "url", "AutomationConstants", "START_CAMPAIGN", "STOP_CAMPAIGN", "automations", "res", "a", "push", "automationID", "automation_id", "productId", "product_id", "triggerId", "trigger_id", "actionID", "action_id", "updateAutomationsConfig", "startAutomationProductId", "startProductId", "stopAutomationProductId", "stopProductId", "formData", "FormData", "set", "post", "r", "legacyStepTypeToProto", "CAMPAIGN_STEP_TYPE_EMAIL", "CAMPAIGN_STEP_TYPE_SMS", "validateForRecipient", "scheduleJSON", "campaign_step_id", "step_type", "template_id", "seconds_after_last_email", "secondsAfterLastEmail", "JSON", "stringify", "resp", "sendTestEmail", "email", "renderFakeData", "updateCampaignFocus", "withCredentials", "updateCampaignEmailCategory", "emailCategoryId", "\u0275\u0275inject", "CampaignService", "EmailTemplateService", "LegacyAppengineService", "ConfigService", "RecipientCampaignService", "ApiService", "HttpClient", "factory", "\u0275fac", "providedIn", "_CampaignsService"] }