{ "version": 3, "sources": ["libs/conversation/core/src/lib/tokens.ts", "libs/conversation/core/src/lib/template.service.ts"], "sourcesContent": ["import { Injectable, InjectionToken } from '@angular/core';\nimport { ConversationChannel, PlatformLocation } from '@vendasta/conversation';\nimport { Observable } from 'rxjs';\nimport { ConversationChannelService } from './channels/conversation-channel.abstract';\nimport { ConversationConfig } from './interface/config.interface';\nimport { HostAppInterface } from './interface/host-app.interface';\nimport { RouteConfig } from './interface/routes.interface';\n\nexport const CONVERSATION_CONFIG_TOKEN = new InjectionToken(\n '[Conversation]: token for configuration',\n);\n\nexport const USER_ID_TOKEN: InjectionToken> = new InjectionToken('[Conversation]: token for userId');\n\nexport const ACCOUNT_GROUP_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for accountGroupId',\n);\n\nexport const CONVERSATION_COUNTRY_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for country',\n);\n\nexport const CONVERSATION_GEOGRAPHICAL_STATE_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for state',\n);\n\nexport const PARTNER_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for partnerId',\n);\n\nexport const PARTNER_BRAND_NAME_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for partnerBrandName',\n);\n\nexport const MARKET_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for marketId',\n);\n\nexport const COMPANY_NAME_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for companyName',\n);\n\nexport const FEATURE_FLAG_TOKEN = new InjectionToken>('[Conversation]: token to show up the Inbox');\n\nexport const CONVERSATION_IMAGE_SERVICE_TOKEN: InjectionToken = new InjectionToken(\n '[Conversation]: token for InboxImageService',\n);\n\nexport const CONVERSATION_PLATFORM_LOCATION_TOKEN: InjectionToken = new InjectionToken(\n '[Conversation]: token for platformLocation',\n);\n\nexport const CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN: InjectionToken> =\n new InjectionToken('[Conversation]: token for conversationChannelsEnabled');\n\nexport const CONVERSATION_ROUTES_TOKEN = new InjectionToken>(\n '[Conversation]: token for routes',\n);\n\nexport const CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for googleBusinessMessagesAvailable - indicates whether the Google Business Messaging feature is available',\n);\n\nexport const CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for facebookMessengerAvailable - indicates whether the Facebook Messenger feature is available',\n);\n\nexport const CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for instagramMessagesAvailable - indicates whether the Instagram Messages feature is available',\n);\n\nexport const CONVERSATION_WHATSAPP_MESSAGES_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for whatsAppMessagesAvailable - indicates whether the WhatsApp Messages feature is available',\n);\n\nexport const CONVERSATION_SMS_ENABLED_TOKEN = new InjectionToken>(\n '[Conversation]: token for smsEnabled',\n);\n\nexport const CONVERSATION_WEB_CHAT_ENABLED_TOKEN = new InjectionToken>(\n '[Conversation]: token for webChatEnabled',\n);\n\nexport const CONVERSATION_CHANNEL_SERVICE_TOKEN = new InjectionToken<\n Record\n>('[Conversation]: token for ConversationChannelService');\n\nexport const GROUP_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for business app group/brand id - empty if not accessed from business app multi-location',\n);\n\nexport const MARKETPLACE_APP_ID_TOKEN: InjectionToken = new InjectionToken(\n '[Conversation]: token for marketplace app id',\n);\n\nexport interface InboxImageService {\n getImageSrc(imageName: string): string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class StubInboxImageService implements InboxImageService {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getImageSrc(_imageName: string): string {\n throw new Error('Method not implemented.');\n }\n}\n\nexport const CONVERSATION_HOST_APP_INTERFACE_TOKEN = new InjectionToken(\n '[Conversation]: token for HostAppInterface',\n);\n", "import { HttpResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport {\n ConversationApiService,\n GlobalParticipantType,\n ListMessageTemplateRequest,\n MessageTemplate,\n SubjectParticipant,\n GetMessageTemplateRequestHydrationOptionsInterface,\n} from '@vendasta/conversation';\nimport { GetMessageTemplateResponse, ListMessageTemplateResponse } from '@vendasta/conversation/lib/_internal/objects';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, combineLatest, firstValueFrom, of, switchMap } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { ACCOUNT_GROUP_ID_TOKEN, PARTNER_ID_TOKEN } from './tokens';\n@Injectable({ providedIn: 'root' })\nexport class TemplateService {\n private readonly conversationApiService = inject(ConversationApiService);\n private readonly snackbarService = inject(SnackbarService);\n\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n\n listTemplates(cursor: string, pageSize: number): Observable {\n return combineLatest([this.accountGroupId$, this.partnerId$]).pipe(\n switchMap(([accountGroupId, partnerId]) => {\n const subjectParticipant = new SubjectParticipant({\n participantType: accountGroupId\n ? GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP\n : GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n internalParticipantId: accountGroupId || partnerId,\n });\n\n return this.conversationApiService.listMessageTemplate(\n new ListMessageTemplateRequest({\n pagingOptions: { cursor: cursor, pageSize: pageSize },\n subjectParticipant: subjectParticipant,\n }),\n );\n }),\n map((response) => {\n response.pagingMetadata.hasMore = response.pagingMetadata.hasMore || false;\n return response;\n }),\n );\n }\n\n async createTemplate(template: MessageTemplate): Promise {\n const sb = await firstValueFrom(\n combineLatest([this.accountGroupId$, this.partnerId$]).pipe(\n map(([accountGroupId, partnerId]) => {\n return new SubjectParticipant({\n participantType: accountGroupId\n ? GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP\n : GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n internalParticipantId: accountGroupId || partnerId,\n });\n }),\n ),\n );\n await firstValueFrom(\n this.conversationApiService.createMessageTemplate({\n template: template,\n subjectParticipant: sb,\n }),\n );\n }\n\n async delete(templateId: string): Promise> {\n return await firstValueFrom(this.conversationApiService.deleteMessageTemplate({ templateId: templateId }));\n }\n\n async updateTemplate(template: MessageTemplate): Promise {\n await firstValueFrom(\n this.conversationApiService.updateMessageTemplate({\n template: template,\n fieldMask: {\n paths: ['name', 'content'],\n },\n }),\n );\n }\n\n getTemplate(\n templateId: string,\n hydrationOptions: GetMessageTemplateRequestHydrationOptionsInterface = null,\n ): Observable {\n return this.conversationApiService\n .getMessageTemplate({ templateId: templateId, hydrationOptions: hydrationOptions })\n .pipe(\n catchError(() => {\n this.snackbarService.openErrorSnack('INBOX.SETTINGS.MESSAGE_TEMPLATES.LOAD_TEMPLATE_FAILED');\n return of(null);\n }),\n );\n }\n}\n"], "mappings": "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", "names": ["CONVERSATION_CONFIG_TOKEN", "USER_ID_TOKEN", "ACCOUNT_GROUP_ID_TOKEN", "CONVERSATION_COUNTRY_TOKEN", "CONVERSATION_GEOGRAPHICAL_STATE_TOKEN", "PARTNER_ID_TOKEN", "PARTNER_BRAND_NAME_TOKEN", "MARKET_ID_TOKEN", "COMPANY_NAME_TOKEN", "FEATURE_FLAG_TOKEN", "CONVERSATION_IMAGE_SERVICE_TOKEN", "CONVERSATION_PLATFORM_LOCATION_TOKEN", "CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN", "CONVERSATION_ROUTES_TOKEN", "CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN", "CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN", "CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN", "CONVERSATION_WHATSAPP_MESSAGES_AVAILABLE_TOKEN", "CONVERSATION_SMS_ENABLED_TOKEN", "CONVERSATION_WEB_CHAT_ENABLED_TOKEN", "CONVERSATION_CHANNEL_SERVICE_TOKEN", "GROUP_ID_TOKEN", "MARKETPLACE_APP_ID_TOKEN", "StubInboxImageService", "CONVERSATION_HOST_APP_INTERFACE_TOKEN", "init_tokens", "__esmMin", "init_core", "InjectionToken", "getImageSrc", "_imageName", "Error", "factory", "\u0275fac", "providedIn", "TemplateService", "init_template_service", "__esmMin", "init_core", "init_vendasta_conversation", "init_snackbar_service", "init_esm", "init_operators", "init_tokens", "constructor", "conversationApiService", "inject", "ConversationApiService", "snackbarService", "SnackbarService", "accountGroupId$", "ACCOUNT_GROUP_ID_TOKEN", "partnerId$", "PARTNER_ID_TOKEN", "listTemplates", "cursor", "pageSize", "combineLatest", "pipe", "switchMap", "accountGroupId", "partnerId", "subjectParticipant", "SubjectParticipant", "participantType", "GlobalParticipantType", "GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP", "GLOBAL_PARTICIPANT_TYPE_PARTNER", "internalParticipantId", "listMessageTemplate", "ListMessageTemplateRequest", "pagingOptions", "map", "response", "pagingMetadata", "hasMore", "createTemplate", "template", "__async", "sb", "firstValueFrom", "createMessageTemplate", "delete", "templateId", "deleteMessageTemplate", "updateTemplate", "updateMessageTemplate", "fieldMask", "paths", "getTemplate", "hydrationOptions", "getMessageTemplate", "catchError", "openErrorSnack", "of", "factory", "\u0275fac", "providedIn"] }