{ "version": 3, "sources": ["libs/campaign/shared/src/crm-campaign-dialog/crm-campaign-contacts-dialog.component.ts", "libs/campaign/shared/src/crm-campaign-dialog/crm-campaign-contacts-dialog.component.html", "libs/campaign/shared/src/crm-campaign-dialog/crm-campaign-contacts-dialog.service.ts"], "sourcesContent": ["import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CrmFieldService, StandardExternalIds } from '@galaxy/crm/static';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport {\n CampaignService as CS,\n ContactType,\n RecipientCampaignService,\n RecipientType,\n Sender,\n SenderType,\n SortDirection,\n SortField,\n SortOptions,\n Statuses,\n} from '@vendasta/campaigns';\nimport { SenderInterface } from '@vendasta/email';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Row } from '@vendasta/galaxy/table';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Scrollable } from '@vendasta/rx-utils';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { BehaviorSubject, forkJoin, of } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { Filter, FilterGroupInterface, FilterGroupOperator, FilterValue, FilterOperator } from '@vendasta/crm';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\n\nexport interface dialogData {\n contacts: Row[];\n senderId: string;\n senderType: SenderType;\n filters?: GalaxyFilterInterface[];\n search?: string;\n useSelectAll?: boolean;\n totalContacts?: number;\n}\n\nexport interface Contact {\n id: string;\n name: string;\n email: string;\n disabled?: boolean;\n phone?: string;\n}\n\nexport interface Campaign {\n id: string;\n title: string;\n updated: string;\n}\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatDialogModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n VaFormsModule,\n MatInputModule,\n GalaxyButtonLoadingIndicatorModule,\n MatProgressSpinnerModule,\n VaFilterModule,\n GalaxyInfiniteScrollTriggerModule,\n ReactiveFormsModule,\n GalaxyTooltipModule,\n GalaxyAlertModule,\n ],\n templateUrl: './crm-campaign-contacts-dialog.component.html',\n styleUrls: ['./crm-campaign-contacts-dialog.component.scss'],\n providers: [RecipientCampaignService, CrmFieldService],\n})\nexport class CrmCampaignContactsDialogComponent implements OnInit, OnDestroy {\n constructor(\n private readonly translate: TranslateService,\n @Inject(MAT_DIALOG_DATA) readonly data: dialogData,\n readonly ref: MatDialogRef,\n private snackbarService: SnackbarService,\n private readonly recipientCampaignService: RecipientCampaignService,\n private readonly CampaignService: CS,\n private crmFieldService: CrmFieldService,\n private posthogService: ProductAnalyticsService,\n ) {}\n missingEmailAddresses: string[] = [];\n searchControl = new UntypedFormControl();\n campaigns$$ = new BehaviorSubject([] as Campaign[]);\n campaigns$ = this.campaigns$$.asObservable();\n criteria$ = this.searchControl.valueChanges.pipe(startWith(''), distinctUntilChanged(), debounceTime(300));\n contacts: (Contact | null)[] = [];\n selectedCampaign: Campaign;\n Scrollable: Scrollable;\n emailFieldID = this.crmFieldService.getFieldId(StandardExternalIds.Email);\n phoneFieldID = this.crmFieldService.getFieldId(StandardExternalIds.PhoneNumber);\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n subscriptions: any = [];\n placeholder = '';\n tooltipText = '';\n sendToAll = false;\n\n ngOnInit(): void {\n this.sendToAll = this.data.useSelectAll ?? false;\n this.contacts = this.data.contacts\n .map((row) => {\n if (row['data'][this.emailFieldID] != undefined) {\n const contact = {\n id: row.id,\n name: row['data']['fullName']['value'],\n email: row['data'][this.emailFieldID]['value'],\n } as Contact;\n if (row['data'][this.phoneFieldID] != undefined) {\n contact.phone = row['data'][this.phoneFieldID]['value'];\n }\n return contact;\n } else {\n const missingEmailContact = row['data']['fullName']['value'];\n this.missingEmailAddresses.push(missingEmailContact);\n }\n return null;\n })\n .filter((contact) => contact !== null);\n\n this.Scrollable = this.getScrollableList(this.data.senderId, this.data.senderType);\n this.campaigns$ = this.Scrollable.items$;\n this.placeholder = this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.SEARCH_PLACEHOLDER');\n this.tooltipText = this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.RECIPIENTS_TOOLTIP');\n }\n close() {\n this.ref.close();\n }\n\n loadNext() {\n this.Scrollable.loadMore();\n }\n\n onItemChange(campaign: Campaign) {\n this.selectedCampaign = campaign;\n }\n\n sendCampaign() {\n if (this.selectedCampaign === undefined) {\n this.snackbarService.openErrorSnack('CAMPAIGNS.CONTACTS.MODAL.ERRORS.NO_CAMPAIGN_SELECTED');\n return;\n }\n if (this.sendToAll) {\n this.bulkAddContactsToCampaign();\n } else {\n this.posthogService.trackEvent('user-clicked-crm-publish-now-multi', 'send-campaign-workflow', 'click');\n const sender = {\n type: this.data.senderType,\n id: this.data.senderId,\n } as Sender;\n const recipients = this.contacts.map((contact) => {\n return {\n id: contact?.id,\n type: RecipientType.RECIPIENT_TYPE_CRM_CONTACT,\n contact: {\n type: ContactType.CONTACT_TYPE_EMAIL,\n value: contact?.email,\n },\n emailAddress: contact?.email,\n phoneNumber: contact?.phone,\n };\n });\n this.loading$$.next(true);\n this.subscriptions.push(\n forkJoin(\n recipients.map((recipient) =>\n this.recipientCampaignService\n .addToCampaign(this.selectedCampaign.id, sender, recipient, new Date(Date.now()))\n .pipe(\n map(() => ''),\n catchError(() => {\n return of(recipient.contact?.value || recipient.emailAddress);\n }),\n ),\n ),\n ).subscribe((resp: string[]) => {\n const failedAddresses = resp.filter((address) => address !== '');\n this.loading$$.next(false);\n if (failedAddresses?.length > 0) {\n this.snackbarService.openErrorSnack(\n this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.ERRORS.FAILED_ADDRESS_ERROR') +\n failedAddresses.join(', ') +\n '.',\n );\n } else {\n this.snackbarService.openSuccessSnack(\n this.contacts?.length +\n ' ' +\n this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.SUCCESS') +\n ' ' +\n this.selectedCampaign.title,\n );\n this.close();\n }\n }),\n );\n }\n }\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n getScrollableList(senderId: string, senderType: SenderType) {\n return new Scrollable(this.criteria$, (criteria, cursor) => {\n return this.loadMore(criteria, cursor, senderId, senderType);\n });\n }\n\n loadMore(criteria: string, cursor: string, senderId: string, senderType: SenderType) {\n this.loading$$.next(true);\n return this.CampaignService.listCampaignsV2(\n { type: senderType, id: senderId } as SenderInterface,\n [Statuses.STATUSES_ACTIVE, Statuses.STATUSES_PUBLISHED],\n criteria,\n { cursor: cursor, pageSize: 10 },\n { field: SortField.SORT_FIELDS_UPDATED_AT, direction: SortDirection.SORT_ORDER_DESCENDING } as SortOptions,\n ).pipe(\n map((response) => {\n this.loading$$.next(false);\n return {\n items: response.campaigns.map((campaign) => {\n return {\n id: campaign.campaignId,\n title: campaign.name,\n updated: campaign.updated.toISOString(),\n } as Campaign;\n }),\n cursor: response.metadata?.nextCursor ?? null,\n hasMore: response.metadata?.hasMore ?? false,\n };\n }),\n catchError(() => of({ items: [] as Array, cursor: '', hasMore: false })),\n );\n }\n\n bulkAddContactsToCampaign(): void {\n this.posthogService.trackEvent('user-clicked-crm-publish-now-bulk', 'send-campaign-workflow', 'click');\n const operator: FilterGroupOperator = FilterGroupOperator.FILTER_GROUP_OPERATOR_AND;\n let filterGroup: FilterGroupInterface | undefined = undefined;\n const contactFilters: Filter[] = [];\n if (this.data.filters.length > 0) {\n this.data.filters.forEach((filter) => {\n const temp = new Filter();\n temp.fieldId = filter.fieldId;\n temp.operator = filter.operator.valueOf() as FilterOperator;\n temp.values = filter.values?.valueOf() as FilterValue[];\n contactFilters.push(temp);\n });\n filterGroup = {\n operator: operator,\n filters: contactFilters,\n };\n }\n const sender = {\n type: this.data.senderType,\n id: this.data.senderId,\n };\n this.loading$$.next(true);\n this.recipientCampaignService\n .bulkAddToCampaign(this.selectedCampaign.id, sender, new Date(Date.now()), filterGroup, this.data.search)\n .pipe(\n catchError(() => {\n this.loading$$.next(false);\n this.snackbarService.openErrorSnack(this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.ERRORS.GENERIC_ERROR'));\n return of(null);\n }),\n )\n .subscribe(() => {\n this.loading$$.next(false);\n this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.ERRORS.GENERIC_ERROR');\n this.snackbarService.openSuccessSnack(\n this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.SELECT_ALL_SUCCESS', {\n totalObjects: this.data.totalContacts,\n campaignTitle: this.selectedCampaign.title,\n }),\n );\n this.ref.close();\n });\n }\n}\n", "

\n {{\n 'CAMPAIGNS.CONTACTS.MODAL.SELECT_CAMPAIGN'\n | translate: { recipientCount: this.data.useSelectAll ? this.data.totalContacts : this.contacts?.length }\n }}\n

\n\n\n 0\">\n \n {{\n 'CAMPAIGNS.CONTACTS.MODAL.MISSING_EMAIL_ADDRESS'\n | translate: { contactCount: this.missingEmailAddresses.length }\n }}\n \n {{ 'CAMPAIGNS.CONTACTS.MODAL.MISSING_EMAIL' | translate }}\n \n \n \n \n \n \n
\n \n \n
\n
\n \n {{ campaign.title }}\n \n {{ 'CAMPAIGNS.CONTACTS.MODAL.UPDATED' | translate }}\n {{ campaign.updated | date: 'mediumDate' }}\n \n \n
\n
\n
\n
\n \n \n account_circle\n \n

{{ 'CAMPAIGNS.CONTACTS.MODAL.NO_CAMPAIGNS' | translate }}

\n
\n
\n \n \n \n
\n
\n
\n \n
\n\n \n
\n
\n \n

\n {{\n 'CAMPAIGNS.CONTACTS.MODAL.RECIPIENT_COUNT'\n | translate\n : { recipientCount: this.data.useSelectAll ? this.data.totalContacts : this.contacts?.length }\n }}\n

\n
\n info_outline\n
\n
\n \n \n \n {{ 'CAMPAIGNS.CONTACTS.MODAL.PUBLISH' | translate }}\n \n \n
\n
\n
\n
\n", "import { Injectable } from '@angular/core';\nimport { Row } from '@vendasta/galaxy/table';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SenderType } from '@vendasta/campaigns';\nimport { CrmCampaignContactsDialogComponent } from './crm-campaign-contacts-dialog.component';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\n\n@Injectable({ providedIn: 'root' })\nexport class CrmCampaignContactsDialogService {\n constructor(private dialog: MatDialog) {}\n\n openCampaignDialog(\n senderID: string,\n senderType: SenderType,\n rows: Row[],\n filters?: GalaxyFilterInterface[],\n search?: string,\n useSelectAll?: boolean,\n totalContacts?: number,\n ): void {\n this.dialog.open(CrmCampaignContactsDialogComponent, {\n data: { contacts: rows, senderId: senderID, senderType, filters, search, useSelectAll, totalContacts },\n width: '500px',\n });\n }\n}\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c1", "ctx_r0", "missingEmailAddresses", "length", "\u0275\u0275template", "CrmCampaignContactsDialogComponent_glxy_alert_4_strong_1_Template", "\u0275\u0275property", "sendToAll", "\u0275\u0275pipeBind1", "\u0275\u0275listener", "campaign_r3", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onItemChange", "id", "title", "\u0275\u0275textInterpolate2", "updated", "\u0275\u0275textInterpolate", "CrmCampaignContactsDialogComponent", "constructor", "translate", "data", "ref", "snackbarService", "recipientCampaignService", "CampaignService", "crmFieldService", "posthogService", "searchControl", "UntypedFormControl", "campaigns$$", "BehaviorSubject", "campaigns$", "asObservable", "criteria$", "valueChanges", "pipe", "startWith", "distinctUntilChanged", "debounceTime", "contacts", "emailFieldID", "getFieldId", "StandardExternalIds", "Email", "phoneFieldID", "PhoneNumber", "loading$$", "subscriptions", "placeholder", "tooltipText", "ngOnInit", "useSelectAll", "map", "row", "undefined", "contact", "name", "email", "phone", "missingEmailContact", "push", "filter", "Scrollable", "getScrollableList", "senderId", "senderType", "items$", "instant", "close", "loadNext", "loadMore", "campaign", "selectedCampaign", "sendCampaign", "openErrorSnack", "bulkAddContactsToCampaign", "trackEvent", "sender", "type", "recipients", "RecipientType", "RECIPIENT_TYPE_CRM_CONTACT", "ContactType", "CONTACT_TYPE_EMAIL", "value", "emailAddress", "phoneNumber", "next", "forkJoin", "recipient", "addToCampaign", "Date", "now", "catchError", "of", "subscribe", "resp", "failedAddresses", "address", "join", "openSuccessSnack", "ngOnDestroy", "forEach", "sub", "unsubscribe", "criteria", "cursor", "listCampaignsV2", "Statuses", "STATUSES_ACTIVE", "STATUSES_PUBLISHED", "pageSize", "field", "SortField", "SORT_FIELDS_UPDATED_AT", "direction", "SortDirection", "SORT_ORDER_DESCENDING", "response", "items", "campaigns", "campaignId", "toISOString", "metadata", "nextCursor", "hasMore", "operator", "FilterGroupOperator", "FILTER_GROUP_OPERATOR_AND", "filterGroup", "contactFilters", "filters", "temp", "Filter", "fieldId", "valueOf", "values", "bulkAddToCampaign", "search", "totalObjects", "totalContacts", "campaignTitle", "\u0275\u0275directiveInject", "TranslateService", "MAT_DIALOG_DATA", "MatDialogRef", "SnackbarService", "RecipientCampaignService", "CrmFieldService", "ProductAnalyticsService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "CrmCampaignContactsDialogComponent_glxy_alert_4_Template", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "CrmCampaignContactsDialogComponent_div_11_Template", "CrmCampaignContactsDialogComponent_glxy_empty_state_13_Template", "_c0", "\u0275\u0275propertyInterpolate", "tmp_6_0", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "DatePipe", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "GalaxyLoadingSpinnerModule", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "GalaxyEmptyStateModule", "EmptyStateComponent", "EmptyStateHeroDirective", "MatIconModule", "MatIcon", "GalaxyFormFieldModule", "FormFieldComponent", "ExtendedDirective", "MatRadioModule", "MatRadioGroup", "MatRadioButton", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "VaFormsModule", "MatInputModule", "MatInput", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "MatProgressSpinnerModule", "VaFilterModule", "GalaxyInfiniteScrollTriggerModule", "InfiniteScrollTriggerComponent", "ReactiveFormsModule", "FormControlDirective", "GalaxyTooltipModule", "GalaxyTooltipDirective", "GalaxyAlertModule", "AlertComponent", "styles", "_CrmCampaignContactsDialogComponent", "CrmCampaignContactsDialogService", "constructor", "dialog", "openCampaignDialog", "senderID", "senderType", "rows", "filters", "search", "useSelectAll", "totalContacts", "open", "CrmCampaignContactsDialogComponent", "data", "contacts", "senderId", "width", "\u0275\u0275inject", "MatDialog", "factory", "\u0275fac", "providedIn", "_CrmCampaignContactsDialogService"] }