{"version":3,"sources":["libs/conversation/core/src/lib/tokens.ts","node_modules/@vendasta/conversation/fesm2020/vendasta-conversation.mjs","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_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 Map\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 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 * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar GlobalParticipantType = /*#__PURE__*/function (GlobalParticipantType) {\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_UNDEFINED\"] = 0] = \"GLOBAL_PARTICIPANT_TYPE_UNDEFINED\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_CUSTOMER\"] = 1] = \"GLOBAL_PARTICIPANT_TYPE_CUSTOMER\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_IAM_USER\"] = 2] = \"GLOBAL_PARTICIPANT_TYPE_IAM_USER\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP\"] = 3] = \"GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_PARTNER\"] = 4] = \"GLOBAL_PARTICIPANT_TYPE_PARTNER\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT\"] = 5] = \"GLOBAL_PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_DIGITAL_AGENT\"] = 6] = \"GLOBAL_PARTICIPANT_TYPE_DIGITAL_AGENT\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_VENDOR\"] = 7] = \"GLOBAL_PARTICIPANT_TYPE_VENDOR\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_OPENAI_BOT\"] = 8] = \"GLOBAL_PARTICIPANT_TYPE_OPENAI_BOT\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_ANONYMOUS\"] = 9] = \"GLOBAL_PARTICIPANT_TYPE_ANONYMOUS\";\n GlobalParticipantType[GlobalParticipantType[\"GLOBAL_PARTICIPANT_TYPE_GROUP\"] = 10] = \"GLOBAL_PARTICIPANT_TYPE_GROUP\";\n return GlobalParticipantType;\n}(GlobalParticipantType || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_DIRECTION_DESCENDING\"] = 0] = \"SORT_DIRECTION_DESCENDING\";\n SortDirection[SortDirection[\"SORT_DIRECTION_ASCENDING\"] = 1] = \"SORT_DIRECTION_ASCENDING\";\n return SortDirection;\n}(SortDirection || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ConversationChannel = /*#__PURE__*/function (ConversationChannel) {\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_UNDEFINED\"] = 0] = \"CONVERSATION_CHANNEL_UNDEFINED\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_INTERNAL\"] = 1] = \"CONVERSATION_CHANNEL_INTERNAL\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_SMS\"] = 2] = \"CONVERSATION_CHANNEL_SMS\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_FACEBOOK\"] = 3] = \"CONVERSATION_CHANNEL_FACEBOOK\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_GOOGLE_MESSAGES\"] = 4] = \"CONVERSATION_CHANNEL_GOOGLE_MESSAGES\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_OPENAI\"] = 5] = \"CONVERSATION_CHANNEL_OPENAI\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_EMAIL\"] = 6] = \"CONVERSATION_CHANNEL_EMAIL\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_GOOGLE_BUSINESS_COMMUNICATIONS\"] = 7] = \"CONVERSATION_CHANNEL_GOOGLE_BUSINESS_COMMUNICATIONS\";\n ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_WEB_CHAT\"] = 8] = \"CONVERSATION_CHANNEL_WEB_CHAT\";\n return ConversationChannel;\n}(ConversationChannel || {});\nvar PlatformLocation = /*#__PURE__*/function (PlatformLocation) {\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_UNDEFINED\"] = 0] = \"PLATFORM_LOCATION_UNDEFINED\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_BUSINESS_APP\"] = 1] = \"PLATFORM_LOCATION_BUSINESS_APP\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_PARTNER_CENTER\"] = 2] = \"PLATFORM_LOCATION_PARTNER_CENTER\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_VENDOR_CENTER\"] = 3] = \"PLATFORM_LOCATION_VENDOR_CENTER\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_TASK_MANAGER\"] = 4] = \"PLATFORM_LOCATION_TASK_MANAGER\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_PROPOSAL_BUILDER\"] = 5] = \"PLATFORM_LOCATION_PROPOSAL_BUILDER\";\n PlatformLocation[PlatformLocation[\"PLATFORM_LOCATION_SALES_CENTER\"] = 6] = \"PLATFORM_LOCATION_SALES_CENTER\";\n return PlatformLocation;\n}(PlatformLocation || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MessageStatus = /*#__PURE__*/function (MessageStatus) {\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_NOT_READ\"] = 0] = \"MESSAGE_STATUS_NOT_READ\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_READ\"] = 1] = \"MESSAGE_STATUS_READ\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_SENT\"] = 2] = \"MESSAGE_STATUS_SENT\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_DELIVERED\"] = 3] = \"MESSAGE_STATUS_DELIVERED\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_FAILED\"] = 4] = \"MESSAGE_STATUS_FAILED\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_UNDELIVERED\"] = 5] = \"MESSAGE_STATUS_UNDELIVERED\";\n MessageStatus[MessageStatus[\"MESSAGE_STATUS_SENDING\"] = 6] = \"MESSAGE_STATUS_SENDING\";\n return MessageStatus;\n}(MessageStatus || {});\nvar MessageType = /*#__PURE__*/function (MessageType) {\n MessageType[MessageType[\"MESSAGE_TYPE_MESSAGE\"] = 0] = \"MESSAGE_TYPE_MESSAGE\";\n MessageType[MessageType[\"MESSAGE_TYPE_MEDIA\"] = 1] = \"MESSAGE_TYPE_MEDIA\";\n MessageType[MessageType[\"MESSAGE_TYPE_SYSTEM\"] = 2] = \"MESSAGE_TYPE_SYSTEM\";\n return MessageType;\n}(MessageType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ParticipantType = /*#__PURE__*/function (ParticipantType) {\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_UNDEFINED\"] = 0] = \"PARTICIPANT_TYPE_UNDEFINED\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_CUSTOMER\"] = 1] = \"PARTICIPANT_TYPE_CUSTOMER\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_IAM_USER\"] = 2] = \"PARTICIPANT_TYPE_IAM_USER\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_ACCOUNT_GROUP\"] = 3] = \"PARTICIPANT_TYPE_ACCOUNT_GROUP\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_PARTNER\"] = 4] = \"PARTICIPANT_TYPE_PARTNER\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT\"] = 5] = \"PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_DIGITAL_AGENT\"] = 6] = \"PARTICIPANT_TYPE_DIGITAL_AGENT\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_VENDOR\"] = 7] = \"PARTICIPANT_TYPE_VENDOR\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_OPENAI_BOT\"] = 8] = \"PARTICIPANT_TYPE_OPENAI_BOT\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_ANONYMOUS\"] = 9] = \"PARTICIPANT_TYPE_ANONYMOUS\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_GROUP\"] = 10] = \"PARTICIPANT_TYPE_GROUP\";\n return ParticipantType;\n}(ParticipantType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ViewType = /*#__PURE__*/function (ViewType) {\n ViewType[ViewType[\"VIEW_TYPE_UNDEFINED\"] = 0] = \"VIEW_TYPE_UNDEFINED\";\n ViewType[ViewType[\"VIEW_TYPE_FOLLOWING\"] = 1] = \"VIEW_TYPE_FOLLOWING\";\n return ViewType;\n}(ViewType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar WidgetPosition = /*#__PURE__*/function (WidgetPosition) {\n WidgetPosition[WidgetPosition[\"WIDGET_POSITION_UNSPECIFIED\"] = 0] = \"WIDGET_POSITION_UNSPECIFIED\";\n WidgetPosition[WidgetPosition[\"WIDGET_POSITION_RIGHT\"] = 1] = \"WIDGET_POSITION_RIGHT\";\n WidgetPosition[WidgetPosition[\"WIDGET_POSITION_LEFT\"] = 2] = \"WIDGET_POSITION_LEFT\";\n return WidgetPosition;\n}(WidgetPosition || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EvaluationSentiment = /*#__PURE__*/function (EvaluationSentiment) {\n EvaluationSentiment[EvaluationSentiment[\"EVALUATION_SENTIMENT_UNDEFINED\"] = 0] = \"EVALUATION_SENTIMENT_UNDEFINED\";\n EvaluationSentiment[EvaluationSentiment[\"EVALUATION_SENTIMENT_POSITIVE\"] = 1] = \"EVALUATION_SENTIMENT_POSITIVE\";\n EvaluationSentiment[EvaluationSentiment[\"EVALUATION_SENTIMENT_NEGATIVE\"] = 2] = \"EVALUATION_SENTIMENT_NEGATIVE\";\n return EvaluationSentiment;\n}(EvaluationSentiment || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MetadataIdentifier = /*#__PURE__*/function (MetadataIdentifier) {\n MetadataIdentifier[MetadataIdentifier[\"METADATA_IDENTIFIER_UNDEFINED\"] = 0] = \"METADATA_IDENTIFIER_UNDEFINED\";\n MetadataIdentifier[MetadataIdentifier[\"METADATA_IDENTIFIER_RECIPIENT\"] = 1] = \"METADATA_IDENTIFIER_RECIPIENT\";\n MetadataIdentifier[MetadataIdentifier[\"METADATA_IDENTIFIER_SENDER\"] = 2] = \"METADATA_IDENTIFIER_SENDER\";\n MetadataIdentifier[MetadataIdentifier[\"METADATA_IDENTIFIER_CONVERSATION\"] = 3] = \"METADATA_IDENTIFIER_CONVERSATION\";\n return MetadataIdentifier;\n}(MetadataIdentifier || {});\nvar SetLastSeenRequestStatus = /*#__PURE__*/function (SetLastSeenRequestStatus) {\n SetLastSeenRequestStatus[SetLastSeenRequestStatus[\"SET_LAST_SEEN_REQUEST_STATUS_READ\"] = 0] = \"SET_LAST_SEEN_REQUEST_STATUS_READ\";\n SetLastSeenRequestStatus[SetLastSeenRequestStatus[\"SET_LAST_SEEN_REQUEST_STATUS_UNREAD\"] = 1] = \"SET_LAST_SEEN_REQUEST_STATUS_UNREAD\";\n return SetLastSeenRequestStatus;\n}(SetLastSeenRequestStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$a(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass NamespaceDetail {\n static fromProto(proto) {\n let m = new NamespaceDetail();\n m = Object.assign(m, proto);\n if (proto.participantType) {\n m.participantType = enumStringToValue$a(GlobalParticipantType, proto.participantType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantType !== 'undefined') {\n toReturn['participantType'] = this.participantType;\n }\n if (typeof this.internalParticipantId !== 'undefined') {\n toReturn['internalParticipantId'] = this.internalParticipantId;\n }\n return toReturn;\n }\n}\nclass SubjectParticipant {\n static fromProto(proto) {\n let m = new SubjectParticipant();\n m = Object.assign(m, proto);\n if (proto.participantType) {\n m.participantType = enumStringToValue$a(GlobalParticipantType, proto.participantType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantType !== 'undefined') {\n toReturn['participantType'] = this.participantType;\n }\n if (typeof this.internalParticipantId !== 'undefined') {\n toReturn['internalParticipantId'] = this.internalParticipantId;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$9(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Conversation {\n static fromProto(proto) {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.channel) {\n m.channel = enumStringToValue$9(ConversationChannel, proto.channel);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.latestMsgSentTime) {\n m.latestMsgSentTime = new Date(proto.latestMsgSentTime);\n }\n if (proto.originLocation) {\n m.originLocation = enumStringToValue$9(PlatformLocation, proto.originLocation);\n }\n if (proto.lastSeenByParticipant) {\n m.lastSeenByParticipant = proto.lastSeenByParticipant.map(LastSeenByParticipant.fromProto);\n }\n if (proto.subjectParticipants) {\n m.subjectParticipants = proto.subjectParticipants.map(SubjectParticipant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.externalConversationId !== 'undefined') {\n toReturn['externalConversationId'] = this.externalConversationId;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.participantIds !== 'undefined') {\n toReturn['participantIds'] = this.participantIds;\n }\n if (typeof this.latestMsgSentTime !== 'undefined' && this.latestMsgSentTime !== null) {\n toReturn['latestMsgSentTime'] = 'toApiJson' in this.latestMsgSentTime ? this.latestMsgSentTime.toApiJson() : this.latestMsgSentTime;\n }\n if (typeof this.originLocation !== 'undefined') {\n toReturn['originLocation'] = this.originLocation;\n }\n if (typeof this.originLocationExternalId !== 'undefined') {\n toReturn['originLocationExternalId'] = this.originLocationExternalId;\n }\n if (typeof this.lastSeenByParticipant !== 'undefined' && this.lastSeenByParticipant !== null) {\n toReturn['lastSeenByParticipant'] = 'toApiJson' in this.lastSeenByParticipant ? this.lastSeenByParticipant.toApiJson() : this.lastSeenByParticipant;\n }\n if (typeof this.conversationViewIds !== 'undefined') {\n toReturn['conversationViewIds'] = this.conversationViewIds;\n }\n if (typeof this.subjectParticipantsKey !== 'undefined') {\n toReturn['subjectParticipantsKey'] = this.subjectParticipantsKey;\n }\n if (typeof this.subjectParticipants !== 'undefined' && this.subjectParticipants !== null) {\n toReturn['subjectParticipants'] = 'toApiJson' in this.subjectParticipants ? this.subjectParticipants.toApiJson() : this.subjectParticipants;\n }\n if (typeof this.isOpen !== 'undefined') {\n toReturn['isOpen'] = this.isOpen;\n }\n return toReturn;\n }\n}\nclass ConversationKey {\n static fromProto(proto) {\n let m = new ConversationKey();\n m = Object.assign(m, proto);\n if (proto.subjectParticipants) {\n m.subjectParticipants = proto.subjectParticipants.map(SubjectParticipant.fromProto);\n }\n if (proto.channel) {\n m.channel = enumStringToValue$9(ConversationChannel, proto.channel);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subjectParticipants !== 'undefined' && this.subjectParticipants !== null) {\n toReturn['subjectParticipants'] = 'toApiJson' in this.subjectParticipants ? this.subjectParticipants.toApiJson() : this.subjectParticipants;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.originLocationExternalId !== 'undefined') {\n toReturn['originLocationExternalId'] = this.originLocationExternalId;\n }\n return toReturn;\n }\n}\nclass LastSeenByParticipant {\n static fromProto(proto) {\n let m = new LastSeenByParticipant();\n m = Object.assign(m, proto);\n if (proto.lastSeenTime) {\n m.lastSeenTime = new Date(proto.lastSeenTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n if (typeof this.lastSeenTime !== 'undefined' && this.lastSeenTime !== null) {\n toReturn['lastSeenTime'] = 'toApiJson' in this.lastSeenTime ? this.lastSeenTime.toApiJson() : this.lastSeenTime;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Message {\n static fromProto(proto) {\n let m = new Message();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$8(MessageType, proto.type);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.sendStatus) {\n m.sendStatus = SendStatus.fromProto(proto.sendStatus);\n }\n if (proto.channel) {\n m.channel = enumStringToValue$8(ConversationChannel, proto.channel);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.externalMessageId !== 'undefined') {\n toReturn['externalMessageId'] = this.externalMessageId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.body !== 'undefined') {\n toReturn['body'] = this.body;\n }\n if (typeof this.error !== 'undefined') {\n toReturn['error'] = this.error;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.media !== 'undefined') {\n toReturn['media'] = this.media;\n }\n if (typeof this.sendStatus !== 'undefined' && this.sendStatus !== null) {\n toReturn['sendStatus'] = 'toApiJson' in this.sendStatus ? this.sendStatus.toApiJson() : this.sendStatus;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n return toReturn;\n }\n}\nclass ParticipantMessageStatus {\n static fromProto(proto) {\n let m = new ParticipantMessageStatus();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$8(MessageStatus, proto.status);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass SendStatus {\n static fromProto(proto) {\n let m = new SendStatus();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$8(MessageStatus, proto.status);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Address {\n static fromProto(proto) {\n let m = new Address();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.firstLineAddress !== 'undefined') {\n toReturn['firstLineAddress'] = this.firstLineAddress;\n }\n if (typeof this.secondLineAddress !== 'undefined') {\n toReturn['secondLineAddress'] = this.secondLineAddress;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n if (typeof this.zipCode !== 'undefined') {\n toReturn['zipCode'] = this.zipCode;\n }\n return toReturn;\n }\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = enumStringToValue$7(PlatformLocation, proto.location);\n }\n if (proto.channel) {\n m.channel = enumStringToValue$7(ConversationChannel, proto.channel);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.participantType) {\n m.participantType = enumStringToValue$7(ParticipantType, proto.participantType);\n }\n if (proto.address) {\n m.address = Address.fromProto(proto.address);\n }\n if (proto.namespaceHierarchy) {\n m.namespaceHierarchy = proto.namespaceHierarchy.map(NamespaceDetail.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n if (typeof this.internalParticipantId !== 'undefined') {\n toReturn['internalParticipantId'] = this.internalParticipantId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.externalParticipantId !== 'undefined') {\n toReturn['externalParticipantId'] = this.externalParticipantId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.participantType !== 'undefined') {\n toReturn['participantType'] = this.participantType;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.address !== 'undefined' && this.address !== null) {\n toReturn['address'] = 'toApiJson' in this.address ? this.address.toApiJson() : this.address;\n }\n if (typeof this.isSubjectParticipant !== 'undefined') {\n toReturn['isSubjectParticipant'] = this.isSubjectParticipant;\n }\n if (typeof this.isParticipantInternalInfoDeleted !== 'undefined') {\n toReturn['isParticipantInternalInfoDeleted'] = this.isParticipantInternalInfoDeleted;\n }\n if (typeof this.profileImageUrl !== 'undefined') {\n toReturn['profileImageUrl'] = this.profileImageUrl;\n }\n if (typeof this.namespaceHierarchy !== 'undefined' && this.namespaceHierarchy !== null) {\n toReturn['namespaceHierarchy'] = 'toApiJson' in this.namespaceHierarchy ? this.namespaceHierarchy.toApiJson() : this.namespaceHierarchy;\n }\n return toReturn;\n }\n}\nclass ParticipantKey {\n static fromProto(proto) {\n let m = new ParticipantKey();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = enumStringToValue$7(PlatformLocation, proto.location);\n }\n if (proto.channels) {\n m.channels = proto.channels.map(v => enumStringToValue$7(ConversationChannel, v));\n }\n if (proto.participantType) {\n m.participantType = enumStringToValue$7(GlobalParticipantType, proto.participantType);\n }\n if (proto.namespaceHierarchy) {\n m.namespaceHierarchy = proto.namespaceHierarchy.map(NamespaceDetail.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.internalParticipantId !== 'undefined') {\n toReturn['internalParticipantId'] = this.internalParticipantId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.channels !== 'undefined') {\n toReturn['channels'] = this.channels;\n }\n if (typeof this.participantType !== 'undefined') {\n toReturn['participantType'] = this.participantType;\n }\n if (typeof this.namespaceHierarchy !== 'undefined' && this.namespaceHierarchy !== null) {\n toReturn['namespaceHierarchy'] = 'toApiJson' in this.namespaceHierarchy ? this.namespaceHierarchy.toApiJson() : this.namespaceHierarchy;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Configuration {\n static fromProto(proto) {\n let m = new Configuration();\n m = Object.assign(m, proto);\n if (proto.subjectParticipant) {\n m.subjectParticipant = SubjectParticipant.fromProto(proto.subjectParticipant);\n }\n if (proto.createdAt) {\n m.createdAt = new Date(proto.createdAt);\n }\n if (proto.updatedAt) {\n m.updatedAt = new Date(proto.updatedAt);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subjectParticipant !== 'undefined' && this.subjectParticipant !== null) {\n toReturn['subjectParticipant'] = 'toApiJson' in this.subjectParticipant ? this.subjectParticipant.toApiJson() : this.subjectParticipant;\n }\n if (typeof this.createdAt !== 'undefined' && this.createdAt !== null) {\n toReturn['createdAt'] = 'toApiJson' in this.createdAt ? this.createdAt.toApiJson() : this.createdAt;\n }\n if (typeof this.updatedAt !== 'undefined' && this.updatedAt !== null) {\n toReturn['updatedAt'] = 'toApiJson' in this.updatedAt ? this.updatedAt.toApiJson() : this.updatedAt;\n }\n if (typeof this.availabilityMessage !== 'undefined') {\n toReturn['availabilityMessage'] = this.availabilityMessage;\n }\n if (typeof this.showAvailabilityMessage !== 'undefined') {\n toReturn['showAvailabilityMessage'] = this.showAvailabilityMessage;\n }\n if (typeof this.googleBusinessMessagesEnabled !== 'undefined') {\n toReturn['googleBusinessMessagesEnabled'] = this.googleBusinessMessagesEnabled;\n }\n if (typeof this.smsEnabled !== 'undefined') {\n toReturn['smsEnabled'] = this.smsEnabled;\n }\n if (typeof this.inboxProEnabled !== 'undefined') {\n toReturn['inboxProEnabled'] = this.inboxProEnabled;\n }\n if (typeof this.webChatEnabled !== 'undefined') {\n toReturn['webChatEnabled'] = this.webChatEnabled;\n }\n if (typeof this.facebookMessengerEnabled !== 'undefined') {\n toReturn['facebookMessengerEnabled'] = this.facebookMessengerEnabled;\n }\n if (typeof this.multiLocationEnabled !== 'undefined') {\n toReturn['multiLocationEnabled'] = this.multiLocationEnabled;\n }\n return toReturn;\n }\n}\nclass ProductFeature {\n static fromProto(proto) {\n let m = new ProductFeature();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.googleBusinessMessagesEnabled !== 'undefined') {\n toReturn['googleBusinessMessagesEnabled'] = this.googleBusinessMessagesEnabled;\n }\n if (typeof this.smsEnabled !== 'undefined') {\n toReturn['smsEnabled'] = this.smsEnabled;\n }\n if (typeof this.multiLocationEnabled !== 'undefined') {\n toReturn['multiLocationEnabled'] = this.multiLocationEnabled;\n }\n if (typeof this.webChatEnabled !== 'undefined') {\n toReturn['webChatEnabled'] = this.webChatEnabled;\n }\n if (typeof this.facebookMessengerEnabled !== 'undefined') {\n toReturn['facebookMessengerEnabled'] = this.facebookMessengerEnabled;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass View {\n static fromProto(proto) {\n let m = new View();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.viewId !== 'undefined') {\n toReturn['viewId'] = this.viewId;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DataSources {\n static fromProto(proto) {\n let m = new DataSources();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.businessProfile !== 'undefined') {\n toReturn['businessProfile'] = this.businessProfile;\n }\n return toReturn;\n }\n}\nclass Widget {\n static fromProto(proto) {\n let m = new Widget();\n m = Object.assign(m, proto);\n if (proto.position) {\n m.position = enumStringToValue$3(WidgetPosition, proto.position);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n if (typeof this.allowedUrls !== 'undefined') {\n toReturn['allowedUrls'] = this.allowedUrls;\n }\n if (typeof this.position !== 'undefined') {\n toReturn['position'] = this.position;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.welcomeMessage !== 'undefined') {\n toReturn['welcomeMessage'] = this.welcomeMessage;\n }\n if (typeof this.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.accentColor !== 'undefined') {\n toReturn['accentColor'] = this.accentColor;\n }\n if (typeof this.accentTextColor !== 'undefined') {\n toReturn['accentTextColor'] = this.accentTextColor;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass MessageTemplate {\n static fromProto(proto) {\n let m = new MessageTemplate();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AddConversationToConversationViewRequest {\n static fromProto(proto) {\n let m = new AddConversationToConversationViewRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.viewId !== 'undefined') {\n toReturn['viewId'] = this.viewId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n return toReturn;\n }\n}\nclass AddMultiParticipantsRequest {\n static fromProto(proto) {\n let m = new AddMultiParticipantsRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass AddMultiParticipantsResponse {\n static fromProto(proto) {\n let m = new AddMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass ConversationMessageCount {\n static fromProto(proto) {\n let m = new ConversationMessageCount();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass LookupConversationsResponseConversations {\n static fromProto(proto) {\n let m = new LookupConversationsResponseConversations();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationMessageCountResponseCountsEntry {\n static fromProto(proto) {\n let m = new GetMultiConversationMessageCountResponseCountsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass CreateConversationRequest {\n static fromProto(proto) {\n let m = new CreateConversationRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n if (proto.channel) {\n m.channel = enumStringToValue(ConversationChannel, proto.channel);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.originLocation) {\n m.originLocation = enumStringToValue(PlatformLocation, proto.originLocation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.externalConversationId !== 'undefined') {\n toReturn['externalConversationId'] = this.externalConversationId;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.originLocation !== 'undefined') {\n toReturn['originLocation'] = this.originLocation;\n }\n if (typeof this.originLocationExternalId !== 'undefined') {\n toReturn['originLocationExternalId'] = this.originLocationExternalId;\n }\n return toReturn;\n }\n}\nclass CreateConversationResponse {\n static fromProto(proto) {\n let m = new CreateConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass CreateMessageTemplateRequest {\n static fromProto(proto) {\n let m = new CreateMessageTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = MessageTemplate.fromProto(proto.template);\n }\n if (proto.subjectParticipant) {\n m.subjectParticipant = SubjectParticipant.fromProto(proto.subjectParticipant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n if (typeof this.subjectParticipant !== 'undefined' && this.subjectParticipant !== null) {\n toReturn['subjectParticipant'] = 'toApiJson' in this.subjectParticipant ? this.subjectParticipant.toApiJson() : this.subjectParticipant;\n }\n return toReturn;\n }\n}\nclass CreateMessageTemplateResponse {\n static fromProto(proto) {\n let m = new CreateMessageTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = MessageTemplate.fromProto(proto.template);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass CreateMultiMessagesRequest {\n static fromProto(proto) {\n let m = new CreateMultiMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(Message.fromProto);\n }\n if (proto.lastSeen) {\n m.lastSeen = new Date(proto.lastSeen);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n if (typeof this.lastSeen !== 'undefined' && this.lastSeen !== null) {\n toReturn['lastSeen'] = 'toApiJson' in this.lastSeen ? this.lastSeen.toApiJson() : this.lastSeen;\n }\n return toReturn;\n }\n}\nclass CreateWidgetConversationRequest {\n static fromProto(proto) {\n let m = new CreateWidgetConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n if (typeof this.chatSourceUrl !== 'undefined') {\n toReturn['chatSourceUrl'] = this.chatSourceUrl;\n }\n return toReturn;\n }\n}\nclass CreateWidgetConversationResponse {\n static fromProto(proto) {\n let m = new CreateWidgetConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetParticipantToken !== 'undefined') {\n toReturn['widgetParticipantToken'] = this.widgetParticipantToken;\n }\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n return toReturn;\n }\n}\nclass CreateWidgetRequest {\n static fromProto(proto) {\n let m = new CreateWidgetRequest();\n m = Object.assign(m, proto);\n if (proto.dataSources) {\n m.dataSources = DataSources.fromProto(proto.dataSources);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n if (typeof this.allowedUrls !== 'undefined') {\n toReturn['allowedUrls'] = this.allowedUrls;\n }\n if (typeof this.welcomeMessage !== 'undefined') {\n toReturn['welcomeMessage'] = this.welcomeMessage;\n }\n if (typeof this.dataSources !== 'undefined' && this.dataSources !== null) {\n toReturn['dataSources'] = 'toApiJson' in this.dataSources ? this.dataSources.toApiJson() : this.dataSources;\n }\n if (typeof this.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.accentColor !== 'undefined') {\n toReturn['accentColor'] = this.accentColor;\n }\n if (typeof this.accentTextColor !== 'undefined') {\n toReturn['accentTextColor'] = this.accentTextColor;\n }\n return toReturn;\n }\n}\nclass CreateWidgetResponse {\n static fromProto(proto) {\n let m = new CreateWidgetResponse();\n m = Object.assign(m, proto);\n if (proto.widget) {\n m.widget = Widget.fromProto(proto.widget);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widget !== 'undefined' && this.widget !== null) {\n toReturn['widget'] = 'toApiJson' in this.widget ? this.widget.toApiJson() : this.widget;\n }\n return toReturn;\n }\n}\nclass MetadataDataEntry {\n static fromProto(proto) {\n let m = new MetadataDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass DeleteConversationRequest {\n static fromProto(proto) {\n let m = new DeleteConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass DeleteMessageRequest {\n static fromProto(proto) {\n let m = new DeleteMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass DeleteMessageTemplateRequest {\n static fromProto(proto) {\n let m = new DeleteMessageTemplateRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass DeleteWidgetRequest {\n static fromProto(proto) {\n let m = new DeleteWidgetRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n return toReturn;\n }\n}\nclass SearchConversationsResponseDetailedConversation {\n static fromProto(proto) {\n let m = new SearchConversationsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n if (proto.latestMessage) {\n m.latestMessage = Message.fromProto(proto.latestMessage);\n }\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {\n toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? this.latestMessage.toApiJson() : this.latestMessage;\n }\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationDetailsResponseDetailedConversation {\n static fromProto(proto) {\n let m = new GetMultiConversationDetailsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n if (proto.latestMessage) {\n m.latestMessage = Message.fromProto(proto.latestMessage);\n }\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {\n toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? this.latestMessage.toApiJson() : this.latestMessage;\n }\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n if (typeof this.summary !== 'undefined') {\n toReturn['summary'] = this.summary;\n }\n return toReturn;\n }\n}\nclass EvaluateResponseRequest {\n static fromProto(proto) {\n let m = new EvaluateResponseRequest();\n m = Object.assign(m, proto);\n if (proto.sentiment) {\n m.sentiment = enumStringToValue(EvaluationSentiment, proto.sentiment);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.sentiment !== 'undefined') {\n toReturn['sentiment'] = this.sentiment;\n }\n if (typeof this.comment !== 'undefined') {\n toReturn['comment'] = this.comment;\n }\n return toReturn;\n }\n}\nclass GetAvailableChannelsForConversationRequest {\n static fromProto(proto) {\n let m = new GetAvailableChannelsForConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass GetAvailableChannelsForConversationResponse {\n static fromProto(proto) {\n let m = new GetAvailableChannelsForConversationResponse();\n m = Object.assign(m, proto);\n if (proto.channels) {\n m.channels = proto.channels.map(v => enumStringToValue(ConversationChannel, v));\n }\n if (proto.preferredChannel) {\n m.preferredChannel = enumStringToValue(ConversationChannel, proto.preferredChannel);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.channels !== 'undefined') {\n toReturn['channels'] = this.channels;\n }\n if (typeof this.preferredChannel !== 'undefined') {\n toReturn['preferredChannel'] = this.preferredChannel;\n }\n return toReturn;\n }\n}\nclass GetConfigurationRequest {\n static fromProto(proto) {\n let m = new GetConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.subjectParticipant) {\n m.subjectParticipant = SubjectParticipant.fromProto(proto.subjectParticipant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subjectParticipant !== 'undefined' && this.subjectParticipant !== null) {\n toReturn['subjectParticipant'] = 'toApiJson' in this.subjectParticipant ? this.subjectParticipant.toApiJson() : this.subjectParticipant;\n }\n return toReturn;\n }\n}\nclass GetConfigurationResponse {\n static fromProto(proto) {\n let m = new GetConfigurationResponse();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = Configuration.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass GetConversationByKeyRequest {\n static fromProto(proto) {\n let m = new GetConversationByKeyRequest();\n m = Object.assign(m, proto);\n if (proto.conversationKey) {\n m.conversationKey = ConversationKey.fromProto(proto.conversationKey);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationKey !== 'undefined' && this.conversationKey !== null) {\n toReturn['conversationKey'] = 'toApiJson' in this.conversationKey ? this.conversationKey.toApiJson() : this.conversationKey;\n }\n return toReturn;\n }\n}\nclass GetConversationByKeyResponse {\n static fromProto(proto) {\n let m = new GetConversationByKeyResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n return toReturn;\n }\n}\nclass GetConversationSummaryRequest {\n static fromProto(proto) {\n let m = new GetConversationSummaryRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass GetConversationSummaryResponse {\n static fromProto(proto) {\n let m = new GetConversationSummaryResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.summary !== 'undefined') {\n toReturn['summary'] = this.summary;\n }\n return toReturn;\n }\n}\nclass GetConversationViewsRequest {\n static fromProto(proto) {\n let m = new GetConversationViewsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n return toReturn;\n }\n}\nclass GetConversationViewsResponse {\n static fromProto(proto) {\n let m = new GetConversationViewsResponse();\n m = Object.assign(m, proto);\n if (proto.views) {\n m.views = proto.views.map(View.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.views !== 'undefined' && this.views !== null) {\n toReturn['views'] = 'toApiJson' in this.views ? this.views.toApiJson() : this.views;\n }\n return toReturn;\n }\n}\nclass GetMessageRequest {\n static fromProto(proto) {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass GetMessageTemplateRequest {\n static fromProto(proto) {\n let m = new GetMessageTemplateRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass GetMessageTemplateResponse {\n static fromProto(proto) {\n let m = new GetMessageTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = MessageTemplate.fromProto(proto.template);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass GetMultiConfigurationRequest {\n static fromProto(proto) {\n let m = new GetMultiConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.subjectParticipants) {\n m.subjectParticipants = proto.subjectParticipants.map(SubjectParticipant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subjectParticipants !== 'undefined' && this.subjectParticipants !== null) {\n toReturn['subjectParticipants'] = 'toApiJson' in this.subjectParticipants ? this.subjectParticipants.toApiJson() : this.subjectParticipants;\n }\n return toReturn;\n }\n}\nclass GetMultiConfigurationResponse {\n static fromProto(proto) {\n let m = new GetMultiConfigurationResponse();\n m = Object.assign(m, proto);\n if (proto.configurations) {\n m.configurations = proto.configurations.map(Configuration.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurations !== 'undefined' && this.configurations !== null) {\n toReturn['configurations'] = 'toApiJson' in this.configurations ? this.configurations.toApiJson() : this.configurations;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationDetailsRequest {\n static fromProto(proto) {\n let m = new GetMultiConversationDetailsRequest();\n m = Object.assign(m, proto);\n if (proto.options) {\n m.options = FieldMask.fromProto(proto.options);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationIds !== 'undefined') {\n toReturn['conversationIds'] = this.conversationIds;\n }\n if (typeof this.options !== 'undefined' && this.options !== null) {\n toReturn['options'] = 'toApiJson' in this.options ? this.options.toApiJson() : this.options;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationDetailsResponse {\n static fromProto(proto) {\n let m = new GetMultiConversationDetailsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {\n m.conversations = proto.conversations.map(GetMultiConversationDetailsResponseDetailedConversation.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationMessageCountRequest {\n static fromProto(proto) {\n let m = new GetMultiConversationMessageCountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationIds !== 'undefined') {\n toReturn['conversationIds'] = this.conversationIds;\n }\n return toReturn;\n }\n}\nclass GetMultiConversationMessageCountResponse {\n static fromProto(proto) {\n let m = new GetMultiConversationMessageCountResponse();\n m = Object.assign(m, proto);\n if (proto.messageCounts) {\n m.messageCounts = proto.messageCounts.map(ConversationMessageCount.fromProto);\n }\n if (proto.counts) {\n m.counts = Object.keys(proto.counts).reduce((obj, k) => {\n obj[k] = parseInt(proto.counts[k], 10);\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageCounts !== 'undefined' && this.messageCounts !== null) {\n toReturn['messageCounts'] = 'toApiJson' in this.messageCounts ? this.messageCounts.toApiJson() : this.messageCounts;\n }\n if (typeof this.counts !== 'undefined' && this.counts !== null) {\n toReturn['counts'] = 'toApiJson' in this.counts ? this.counts.toApiJson() : this.counts;\n }\n return toReturn;\n }\n}\nclass GetMultiMessagesRequest {\n static fromProto(proto) {\n let m = new GetMultiMessagesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageIds !== 'undefined') {\n toReturn['messageIds'] = this.messageIds;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.languageCode !== 'undefined') {\n toReturn['languageCode'] = this.languageCode;\n }\n return toReturn;\n }\n}\nclass GetMultiMessagesResponse {\n static fromProto(proto) {\n let m = new GetMultiMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(Message.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n return toReturn;\n }\n}\nclass GetMultiParticipantsRequest {\n static fromProto(proto) {\n let m = new GetMultiParticipantsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantIds !== 'undefined') {\n toReturn['participantIds'] = this.participantIds;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass GetMultiParticipantsResponse {\n static fromProto(proto) {\n let m = new GetMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n return toReturn;\n }\n}\nclass GetMultiWidgetMessagesRequest {\n static fromProto(proto) {\n let m = new GetMultiWidgetMessagesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageIds !== 'undefined') {\n toReturn['messageIds'] = this.messageIds;\n }\n return toReturn;\n }\n}\nclass GetMultiWidgetMessagesResponse {\n static fromProto(proto) {\n let m = new GetMultiWidgetMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(Message.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n return toReturn;\n }\n}\nclass GetParticipantsByKeyRequest {\n static fromProto(proto) {\n let m = new GetParticipantsByKeyRequest();\n m = Object.assign(m, proto);\n if (proto.participantKey) {\n m.participantKey = ParticipantKey.fromProto(proto.participantKey);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participantKey !== 'undefined' && this.participantKey !== null) {\n toReturn['participantKey'] = 'toApiJson' in this.participantKey ? this.participantKey.toApiJson() : this.participantKey;\n }\n return toReturn;\n }\n}\nclass GetParticipantsByKeyResponse {\n static fromProto(proto) {\n let m = new GetParticipantsByKeyResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {\n m.participants = proto.participants.map(Participant.fromProto);\n }\n if (proto.participant) {\n m.participant = Participant.fromProto(proto.participant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participants !== 'undefined' && this.participants !== null) {\n toReturn['participants'] = 'toApiJson' in this.participants ? this.participants.toApiJson() : this.participants;\n }\n if (typeof this.participant !== 'undefined' && this.participant !== null) {\n toReturn['participant'] = 'toApiJson' in this.participant ? this.participant.toApiJson() : this.participant;\n }\n return toReturn;\n }\n}\nclass GetWidgetConfigRequest {\n static fromProto(proto) {\n let m = new GetWidgetConfigRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n return toReturn;\n }\n}\nclass GetWidgetConfigResponse {\n static fromProto(proto) {\n let m = new GetWidgetConfigResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.welcomeMessage !== 'undefined') {\n toReturn['welcomeMessage'] = this.welcomeMessage;\n }\n if (typeof this.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.accentColor !== 'undefined') {\n toReturn['accentColor'] = this.accentColor;\n }\n if (typeof this.accentTextColor !== 'undefined') {\n toReturn['accentTextColor'] = this.accentTextColor;\n }\n return toReturn;\n }\n}\nclass GetWidgetConversationResponse {\n static fromProto(proto) {\n let m = new GetWidgetConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n return toReturn;\n }\n}\nclass GetWidgetRequest {\n static fromProto(proto) {\n let m = new GetWidgetRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n return toReturn;\n }\n}\nclass GetWidgetResponse {\n static fromProto(proto) {\n let m = new GetWidgetResponse();\n m = Object.assign(m, proto);\n if (proto.widget) {\n m.widget = Widget.fromProto(proto.widget);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widget !== 'undefined' && this.widget !== null) {\n toReturn['widget'] = 'toApiJson' in this.widget ? this.widget.toApiJson() : this.widget;\n }\n return toReturn;\n }\n}\nclass ListMessageTemplateRequest {\n static fromProto(proto) {\n let m = new ListMessageTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.subjectParticipant) {\n m.subjectParticipant = SubjectParticipant.fromProto(proto.subjectParticipant);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subjectParticipant !== 'undefined' && this.subjectParticipant !== null) {\n toReturn['subjectParticipant'] = 'toApiJson' in this.subjectParticipant ? this.subjectParticipant.toApiJson() : this.subjectParticipant;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListMessageTemplateResponse {\n static fromProto(proto) {\n let m = new ListMessageTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.templates) {\n m.templates = proto.templates.map(MessageTemplate.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.templates !== 'undefined' && this.templates !== null) {\n toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListMessagesRequestListMessagesFilters {\n static fromProto(proto) {\n let m = new ListMessagesRequestListMessagesFilters();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass ListMessagesRequest {\n static fromProto(proto) {\n let m = new ListMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListMessagesRequestListMessagesFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListMessagesResponse {\n static fromProto(proto) {\n let m = new ListMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(Message.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListWidgetsRequest {\n static fromProto(proto) {\n let m = new ListWidgetsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListWidgetsResponse {\n static fromProto(proto) {\n let m = new ListWidgetsResponse();\n m = Object.assign(m, proto);\n if (proto.widgets) {\n m.widgets = proto.widgets.map(Widget.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgets !== 'undefined' && this.widgets !== null) {\n toReturn['widgets'] = 'toApiJson' in this.widgets ? this.widgets.toApiJson() : this.widgets;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass LookupConversationsRequestLookupConversationsFilters {\n static fromProto(proto) {\n let m = new LookupConversationsRequestLookupConversationsFilters();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = enumStringToValue(PlatformLocation, proto.location);\n }\n if (proto.channel) {\n m.channel = enumStringToValue(ConversationChannel, proto.channel);\n }\n if (proto.originLocation) {\n m.originLocation = enumStringToValue(PlatformLocation, proto.originLocation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.internalParticipantId !== 'undefined') {\n toReturn['internalParticipantId'] = this.internalParticipantId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.externalConversationId !== 'undefined') {\n toReturn['externalConversationId'] = this.externalConversationId;\n }\n if (typeof this.originLocation !== 'undefined') {\n toReturn['originLocation'] = this.originLocation;\n }\n if (typeof this.originLocationExternalId !== 'undefined') {\n toReturn['originLocationExternalId'] = this.originLocationExternalId;\n }\n return toReturn;\n }\n}\nclass LookupConversationsRequest {\n static fromProto(proto) {\n let m = new LookupConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = LookupConversationsRequestLookupConversationsFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass LookupConversationsResponse {\n static fromProto(proto) {\n let m = new LookupConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {\n m.conversations = proto.conversations.map(LookupConversationsResponseConversations.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass Media {\n static fromProto(proto) {\n let m = new Media();\n m = Object.assign(m, proto);\n if (proto.fileSize) {\n m.fileSize = parseInt(proto.fileSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.mediaContentType !== 'undefined') {\n toReturn['mediaContentType'] = this.mediaContentType;\n }\n if (typeof this.mediaLocationPath !== 'undefined') {\n toReturn['mediaLocationPath'] = this.mediaLocationPath;\n }\n if (typeof this.mediaFileName !== 'undefined') {\n toReturn['mediaFileName'] = this.mediaFileName;\n }\n if (typeof this.fileSize !== 'undefined') {\n toReturn['fileSize'] = this.fileSize;\n }\n return toReturn;\n }\n}\nclass Metadata {\n static fromProto(proto) {\n let m = new Metadata();\n m = Object.assign(m, proto);\n if (proto.identifier) {\n m.identifier = enumStringToValue(MetadataIdentifier, proto.identifier);\n }\n if (proto.data) {\n m.data = Object.keys(proto.data).reduce((obj, k) => {\n obj[k] = proto.data[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identifier !== 'undefined') {\n toReturn['identifier'] = this.identifier;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass ReceiveMessageRequestMetadataEntry {\n static fromProto(proto) {\n let m = new ReceiveMessageRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass ReceiveMessageRequest {\n static fromProto(proto) {\n let m = new ReceiveMessageRequest();\n m = Object.assign(m, proto);\n if (proto.channel) {\n m.channel = enumStringToValue(ConversationChannel, proto.channel);\n }\n if (proto.type) {\n m.type = enumStringToValue(MessageType, proto.type);\n }\n if (proto.location) {\n m.location = enumStringToValue(PlatformLocation, proto.location);\n }\n if (proto.metadata) {\n m.metadata = Object.keys(proto.metadata).reduce((obj, k) => {\n obj[k] = proto.metadata[k];\n return obj;\n }, {});\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.body !== 'undefined') {\n toReturn['body'] = this.body;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.media !== 'undefined') {\n toReturn['media'] = this.media;\n }\n return toReturn;\n }\n}\nclass RemoveConversationFromConversationViewRequest {\n static fromProto(proto) {\n let m = new RemoveConversationFromConversationViewRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.viewId !== 'undefined') {\n toReturn['viewId'] = this.viewId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n return toReturn;\n }\n}\nclass SearchConversationsRequest {\n static fromProto(proto) {\n let m = new SearchConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = enumStringToValue(PlatformLocation, proto.location);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass SearchConversationsResponse {\n static fromProto(proto) {\n let m = new SearchConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {\n m.conversations = proto.conversations.map(SearchConversationsResponseDetailedConversation.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass SendMessageRequest {\n static fromProto(proto) {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Participant.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = Participant.fromProto(proto.recipient);\n }\n if (proto.type) {\n m.type = enumStringToValue(MessageType, proto.type);\n }\n if (proto.metadata) {\n m.metadata = proto.metadata.map(Metadata.fromProto);\n }\n if (proto.originLocation) {\n m.originLocation = enumStringToValue(PlatformLocation, proto.originLocation);\n }\n if (proto.media) {\n m.media = proto.media.map(Media.fromProto);\n }\n if (proto.channel) {\n m.channel = enumStringToValue(ConversationChannel, proto.channel);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.body !== 'undefined') {\n toReturn['body'] = this.body;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.originLocation !== 'undefined') {\n toReturn['originLocation'] = this.originLocation;\n }\n if (typeof this.media !== 'undefined' && this.media !== null) {\n toReturn['media'] = 'toApiJson' in this.media ? this.media.toApiJson() : this.media;\n }\n if (typeof this.channel !== 'undefined') {\n toReturn['channel'] = this.channel;\n }\n return toReturn;\n }\n}\nclass SendMessageResponse {\n static fromProto(proto) {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.workflowId !== 'undefined') {\n toReturn['workflowId'] = this.workflowId;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass SendWidgetMessageRequest {\n static fromProto(proto) {\n let m = new SendWidgetMessageRequest();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(MessageType, proto.type);\n }\n if (proto.metadata) {\n m.metadata = proto.metadata.map(Metadata.fromProto);\n }\n if (proto.location) {\n m.location = enumStringToValue(PlatformLocation, proto.location);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.body !== 'undefined') {\n toReturn['body'] = this.body;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.location !== 'undefined') {\n toReturn['location'] = this.location;\n }\n return toReturn;\n }\n}\nclass SendWidgetMessageResponse {\n static fromProto(proto) {\n let m = new SendWidgetMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass SetLastSeenRequest {\n static fromProto(proto) {\n let m = new SetLastSeenRequest();\n m = Object.assign(m, proto);\n if (proto.participant) {\n m.participant = Participant.fromProto(proto.participant);\n }\n if (proto.status) {\n m.status = enumStringToValue(SetLastSeenRequestStatus, proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.participant !== 'undefined' && this.participant !== null) {\n toReturn['participant'] = 'toApiJson' in this.participant ? this.participant.toApiJson() : this.participant;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass SetLastSeenResponse {\n static fromProto(proto) {\n let m = new SetLastSeenResponse();\n m = Object.assign(m, proto);\n if (proto.participant) {\n m.participant = Participant.fromProto(proto.participant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.participant !== 'undefined' && this.participant !== null) {\n toReturn['participant'] = 'toApiJson' in this.participant ? this.participant.toApiJson() : this.participant;\n }\n return toReturn;\n }\n}\nclass UpdateConversationRequest {\n static fromProto(proto) {\n let m = new UpdateConversationRequest();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateConversationResponse {\n static fromProto(proto) {\n let m = new UpdateConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {\n m.conversation = Conversation.fromProto(proto.conversation);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {\n toReturn['conversation'] = 'toApiJson' in this.conversation ? this.conversation.toApiJson() : this.conversation;\n }\n return toReturn;\n }\n}\nclass UpdateMessageStatusRequest {\n static fromProto(proto) {\n let m = new UpdateMessageStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(MessageStatus, proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.participantId !== 'undefined') {\n toReturn['participantId'] = this.participantId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass UpdateMessageTemplateRequest {\n static fromProto(proto) {\n let m = new UpdateMessageTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = MessageTemplate.fromProto(proto.template);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateMessageTemplateResponse {\n static fromProto(proto) {\n let m = new UpdateMessageTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = MessageTemplate.fromProto(proto.template);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass UpdateWidgetRequest {\n static fromProto(proto) {\n let m = new UpdateWidgetRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widgetId !== 'undefined') {\n toReturn['widgetId'] = this.widgetId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n if (typeof this.allowedUrls !== 'undefined') {\n toReturn['allowedUrls'] = this.allowedUrls;\n }\n if (typeof this.welcomeMessage !== 'undefined') {\n toReturn['welcomeMessage'] = this.welcomeMessage;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.accentColor !== 'undefined') {\n toReturn['accentColor'] = this.accentColor;\n }\n if (typeof this.accentTextColor !== 'undefined') {\n toReturn['accentTextColor'] = this.accentTextColor;\n }\n return toReturn;\n }\n}\nclass UpdateWidgetResponse {\n static fromProto(proto) {\n let m = new UpdateWidgetResponse();\n m = Object.assign(m, proto);\n if (proto.widget) {\n m.widget = Widget.fromProto(proto.widget);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.widget !== 'undefined' && this.widget !== null) {\n toReturn['widget'] = 'toApiJson' in this.widget ? this.widget.toApiJson() : this.widget;\n }\n return toReturn;\n }\n}\nclass UpsertConfigurationRequest {\n static fromProto(proto) {\n let m = new UpsertConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = Configuration.fromProto(proto.configuration);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertConfigurationResponse {\n static fromProto(proto) {\n let m = new UpsertConfigurationResponse();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = Configuration.fromProto(proto.configuration);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n return toReturn;\n }\n}\nclass UpsertProductFeatureRequest {\n static fromProto(proto) {\n let m = new UpsertProductFeatureRequest();\n m = Object.assign(m, proto);\n if (proto.productFeature) {\n m.productFeature = ProductFeature.fromProto(proto.productFeature);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n if (proto.subjectParticipant) {\n m.subjectParticipant = SubjectParticipant.fromProto(proto.subjectParticipant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.productFeature !== 'undefined' && this.productFeature !== null) {\n toReturn['productFeature'] = 'toApiJson' in this.productFeature ? this.productFeature.toApiJson() : this.productFeature;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.subjectParticipant !== 'undefined' && this.subjectParticipant !== null) {\n toReturn['subjectParticipant'] = 'toApiJson' in this.subjectParticipant ? this.subjectParticipant.toApiJson() : this.subjectParticipant;\n }\n return toReturn;\n }\n}\nclass UpsertProductFeatureResponse {\n static fromProto(proto) {\n let m = new UpsertProductFeatureResponse();\n m = Object.assign(m, proto);\n if (proto.productFeature) {\n m.productFeature = ProductFeature.fromProto(proto.productFeature);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.productFeature !== 'undefined' && this.productFeature !== null) {\n toReturn['productFeature'] = 'toApiJson' in this.productFeature ? this.productFeature.toApiJson() : this.productFeature;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'conversation-api.vendasta-local.com',\n 'test': '',\n 'demo': 'conversation-demo.apigateway.co',\n 'prod': 'conversation-prod.apigateway.co',\n 'production': 'conversation-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet ConversationApiService = /*#__PURE__*/(() => {\n class ConversationApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n sendMessage(r) {\n const request = r.toApiJson ? r : new SendMessageRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageResponse.fromProto(resp)));\n }\n getMessage(r) {\n const request = r.toApiJson ? r : new GetMessageRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => Message.fromProto(resp)));\n }\n listMessages(r) {\n const request = r.toApiJson ? r : new ListMessagesRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/ListMessages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListMessagesResponse.fromProto(resp)));\n }\n deleteMessage(r) {\n const request = r.toApiJson ? r : new DeleteMessageRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/DeleteMessage\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateMessageStatus(r) {\n const request = r.toApiJson ? r : new UpdateMessageStatusRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/UpdateMessageStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n lookupConversations(r) {\n const request = r.toApiJson ? r : new LookupConversationsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/LookupConversations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupConversationsResponse.fromProto(resp)));\n }\n getConversationByKey(r) {\n const request = r.toApiJson ? r : new GetConversationByKeyRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetConversationByKey\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConversationByKeyResponse.fromProto(resp)));\n }\n createConversation(r) {\n const request = r.toApiJson ? r : new CreateConversationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/CreateConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateConversationResponse.fromProto(resp)));\n }\n updateConversation(r) {\n const request = r.toApiJson ? r : new UpdateConversationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/UpdateConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateConversationResponse.fromProto(resp)));\n }\n deleteConversation(r) {\n const request = r.toApiJson ? r : new DeleteConversationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/DeleteConversation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n receiveMessage(r) {\n const request = r.toApiJson ? r : new ReceiveMessageRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/ReceiveMessage\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMultiMessages(r) {\n const request = r.toApiJson ? r : new GetMultiMessagesRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMultiMessages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiMessagesResponse.fromProto(resp)));\n }\n createMultiMessages(r) {\n const request = r.toApiJson ? r : new CreateMultiMessagesRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/CreateMultiMessages\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMultiConversationDetails(r) {\n const request = r.toApiJson ? r : new GetMultiConversationDetailsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMultiConversationDetails\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiConversationDetailsResponse.fromProto(resp)));\n }\n getMultiParticipants(r) {\n const request = r.toApiJson ? r : new GetMultiParticipantsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMultiParticipants\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiParticipantsResponse.fromProto(resp)));\n }\n searchConversations(r) {\n const request = r.toApiJson ? r : new SearchConversationsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/SearchConversations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchConversationsResponse.fromProto(resp)));\n }\n getMultiConversationMessageCount(r) {\n const request = r.toApiJson ? r : new GetMultiConversationMessageCountRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMultiConversationMessageCount\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)));\n }\n addMultiParticipants(r) {\n const request = r.toApiJson ? r : new AddMultiParticipantsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/AddMultiParticipants\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddMultiParticipantsResponse.fromProto(resp)));\n }\n setLastSeen(r) {\n const request = r.toApiJson ? r : new SetLastSeenRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/SetLastSeen\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SetLastSeenResponse.fromProto(resp)));\n }\n getParticipantsByKey(r) {\n const request = r.toApiJson ? r : new GetParticipantsByKeyRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetParticipantsByKey\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetParticipantsByKeyResponse.fromProto(resp)));\n }\n getConversationViews(r) {\n const request = r.toApiJson ? r : new GetConversationViewsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetConversationViews\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConversationViewsResponse.fromProto(resp)));\n }\n addConversationToConversationView(r) {\n const request = r.toApiJson ? r : new AddConversationToConversationViewRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/AddConversationToConversationView\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n removeConversationFromConversationView(r) {\n const request = r.toApiJson ? r : new RemoveConversationFromConversationViewRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/RemoveConversationFromConversationView\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createWidgetConversation(r) {\n const request = r.toApiJson ? r : new CreateWidgetConversationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/CreateWidgetConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateWidgetConversationResponse.fromProto(resp)));\n }\n getMultiWidgetMessages(r) {\n const request = r.toApiJson ? r : new GetMultiWidgetMessagesRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMultiWidgetMessages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiWidgetMessagesResponse.fromProto(resp)));\n }\n sendWidgetMessage(r) {\n const request = r.toApiJson ? r : new SendWidgetMessageRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/SendWidgetMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWidgetMessageResponse.fromProto(resp)));\n }\n getWidgetConversation() {\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetWidgetConversation\", {}, this.apiOptions()).pipe(map(resp => GetWidgetConversationResponse.fromProto(resp)));\n }\n getAvailableChannelsForConversation(r) {\n const request = r.toApiJson ? r : new GetAvailableChannelsForConversationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetAvailableChannelsForConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAvailableChannelsForConversationResponse.fromProto(resp)));\n }\n evaluateResponse(r) {\n const request = r.toApiJson ? r : new EvaluateResponseRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/EvaluateResponse\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createWidget(r) {\n const request = r.toApiJson ? r : new CreateWidgetRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/CreateWidget\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateWidgetResponse.fromProto(resp)));\n }\n getWidget(r) {\n const request = r.toApiJson ? r : new GetWidgetRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetWidget\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetWidgetResponse.fromProto(resp)));\n }\n updateWidget(r) {\n const request = r.toApiJson ? r : new UpdateWidgetRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/UpdateWidget\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateWidgetResponse.fromProto(resp)));\n }\n deleteWidget(r) {\n const request = r.toApiJson ? r : new DeleteWidgetRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/DeleteWidget\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listWidgets(r) {\n const request = r.toApiJson ? r : new ListWidgetsRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/ListWidgets\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListWidgetsResponse.fromProto(resp)));\n }\n getWidgetConfig(r) {\n const request = r.toApiJson ? r : new GetWidgetConfigRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetWidgetConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetWidgetConfigResponse.fromProto(resp)));\n }\n listMessageTemplate(r) {\n const request = r.toApiJson ? r : new ListMessageTemplateRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/ListMessageTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListMessageTemplateResponse.fromProto(resp)));\n }\n deleteMessageTemplate(r) {\n const request = r.toApiJson ? r : new DeleteMessageTemplateRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/DeleteMessageTemplate\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createMessageTemplate(r) {\n const request = r.toApiJson ? r : new CreateMessageTemplateRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/CreateMessageTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateMessageTemplateResponse.fromProto(resp)));\n }\n updateMessageTemplate(r) {\n const request = r.toApiJson ? r : new UpdateMessageTemplateRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/UpdateMessageTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateMessageTemplateResponse.fromProto(resp)));\n }\n getMessageTemplate(r) {\n const request = r.toApiJson ? r : new GetMessageTemplateRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetMessageTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMessageTemplateResponse.fromProto(resp)));\n }\n getConversationSummary(r) {\n const request = r.toApiJson ? r : new GetConversationSummaryRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/GetConversationSummary\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConversationSummaryResponse.fromProto(resp)));\n }\n }\n ConversationApiService.ɵfac = function ConversationApiService_Factory(t) {\n return new (t || ConversationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ConversationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConversationApiService,\n factory: ConversationApiService.ɵfac,\n providedIn: 'root'\n });\n return ConversationApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InboxApiService = /*#__PURE__*/(() => {\n class InboxApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getConfiguration(r) {\n const request = r.toApiJson ? r : new GetConfigurationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.InboxService/GetConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigurationResponse.fromProto(resp)));\n }\n getMultiConfiguration(r) {\n const request = r.toApiJson ? r : new GetMultiConfigurationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.InboxService/GetMultiConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiConfigurationResponse.fromProto(resp)));\n }\n upsertConfiguration(r) {\n const request = r.toApiJson ? r : new UpsertConfigurationRequest(r);\n return this.http.post(this._host + \"/conversation.v1.InboxService/UpsertConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpsertConfigurationResponse.fromProto(resp)));\n }\n upsertProductFeature(r) {\n const request = r.toApiJson ? r : new UpsertProductFeatureRequest(r);\n return this.http.post(this._host + \"/conversation.v1.InboxService/UpsertProductFeature\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpsertProductFeatureResponse.fromProto(resp)));\n }\n }\n InboxApiService.ɵfac = function InboxApiService_Factory(t) {\n return new (t || InboxApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InboxApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboxApiService,\n factory: InboxApiService.ɵfac,\n providedIn: 'root'\n });\n return InboxApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AddConversationToConversationViewRequest, AddMultiParticipantsRequest, AddMultiParticipantsResponse, Address, Configuration, Conversation, ConversationApiService, ConversationChannel, ConversationKey, ConversationMessageCount, CreateConversationRequest, CreateConversationResponse, CreateMessageTemplateRequest, CreateMessageTemplateResponse, CreateMultiMessagesRequest, CreateWidgetConversationRequest, CreateWidgetConversationResponse, CreateWidgetRequest, CreateWidgetResponse, DataSources, DeleteConversationRequest, DeleteMessageRequest, DeleteMessageTemplateRequest, DeleteWidgetRequest, EvaluateResponseRequest, EvaluationSentiment, FieldMask, GetAvailableChannelsForConversationRequest, GetAvailableChannelsForConversationResponse, GetConfigurationRequest, GetConfigurationResponse, GetConversationByKeyRequest, GetConversationByKeyResponse, GetConversationSummaryRequest, GetConversationSummaryResponse, GetConversationViewsRequest, GetConversationViewsResponse, GetMessageRequest, GetMessageTemplateRequest, GetMessageTemplateResponse, GetMultiConfigurationRequest, GetMultiConfigurationResponse, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiConversationDetailsResponseDetailedConversation, GetMultiConversationMessageCountRequest, GetMultiConversationMessageCountResponse, GetMultiConversationMessageCountResponseCountsEntry, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, GetMultiWidgetMessagesRequest, GetMultiWidgetMessagesResponse, GetParticipantsByKeyRequest, GetParticipantsByKeyResponse, GetWidgetConfigRequest, GetWidgetConfigResponse, GetWidgetConversationResponse, GetWidgetRequest, GetWidgetResponse, GlobalParticipantType, InboxApiService, LastSeenByParticipant, ListMessageTemplateRequest, ListMessageTemplateResponse, ListMessagesRequest, ListMessagesRequestListMessagesFilters, ListMessagesResponse, ListWidgetsRequest, ListWidgetsResponse, LookupConversationsRequest, LookupConversationsRequestLookupConversationsFilters, LookupConversationsResponse, LookupConversationsResponseConversations, Media, Message, MessageStatus, MessageTemplate, MessageType, Metadata, MetadataDataEntry, MetadataIdentifier, NamespaceDetail, PagedRequestOptions, PagedResponseMetadata, Participant, ParticipantKey, ParticipantMessageStatus, ParticipantType, PlatformLocation, ProductFeature, ReceiveMessageRequest, ReceiveMessageRequestMetadataEntry, RemoveConversationFromConversationViewRequest, SearchConversationsRequest, SearchConversationsResponse, SearchConversationsResponseDetailedConversation, SendMessageRequest, SendMessageResponse, SendStatus, SendWidgetMessageRequest, SendWidgetMessageResponse, SetLastSeenRequest, SetLastSeenRequestStatus, SetLastSeenResponse, SortDirection, SubjectParticipant, UpdateConversationRequest, UpdateConversationResponse, UpdateMessageStatusRequest, UpdateMessageTemplateRequest, UpdateMessageTemplateResponse, UpdateWidgetRequest, UpdateWidgetResponse, UpsertConfigurationRequest, UpsertConfigurationResponse, UpsertProductFeatureRequest, UpsertProductFeatureResponse, View, ViewType, Widget, WidgetPosition };\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} 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\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 );\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(templateId: string): Observable {\n return this.conversationApiService.getMessageTemplate({ templateId: templateId }).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_SMS_ENABLED_TOKEN","CONVERSATION_WEB_CHAT_ENABLED_TOKEN","CONVERSATION_CHANNEL_SERVICE_TOKEN","GROUP_ID_TOKEN","StubInboxImageService","CONVERSATION_HOST_APP_INTERFACE_TOKEN","init_tokens","__esmMin","init_core","InjectionToken","getImageSrc","_imageName","Error","factory","ɵfac","providedIn","_StubInboxImageService","enumStringToValue$a","enumRef","value","enumStringToValue$9","enumStringToValue$8","enumStringToValue$7","enumStringToValue$3","enumStringToValue","GlobalParticipantType","ConversationChannel","PlatformLocation","MessageStatus","MessageType","ParticipantType","WidgetPosition","EvaluationSentiment","MetadataIdentifier","SetLastSeenRequestStatus","NamespaceDetail","SubjectParticipant","Conversation","ConversationKey","LastSeenByParticipant","Message","SendStatus","Address","Participant","ParticipantKey","Configuration","ProductFeature","View","DataSources","Widget","FieldMask","MessageTemplate","AddConversationToConversationViewRequest","AddMultiParticipantsRequest","AddMultiParticipantsResponse","ConversationMessageCount","LookupConversationsResponseConversations","CreateConversationRequest","CreateConversationResponse","CreateMessageTemplateRequest","CreateMessageTemplateResponse","CreateMultiMessagesRequest","CreateWidgetConversationRequest","CreateWidgetConversationResponse","CreateWidgetRequest","CreateWidgetResponse","DeleteConversationRequest","DeleteMessageRequest","DeleteMessageTemplateRequest","DeleteWidgetRequest","SearchConversationsResponseDetailedConversation","GetMultiConversationDetailsResponseDetailedConversation","EvaluateResponseRequest","GetAvailableChannelsForConversationRequest","GetAvailableChannelsForConversationResponse","GetConfigurationRequest","GetConfigurationResponse","GetConversationByKeyRequest","GetConversationByKeyResponse","GetConversationSummaryRequest","GetConversationSummaryResponse","GetConversationViewsRequest","GetConversationViewsResponse","GetMessageRequest","GetMessageTemplateRequest","GetMessageTemplateResponse","GetMultiConfigurationRequest","GetMultiConfigurationResponse","GetMultiConversationDetailsRequest","GetMultiConversationDetailsResponse","GetMultiConversationMessageCountRequest","GetMultiConversationMessageCountResponse","GetMultiMessagesRequest","GetMultiMessagesResponse","GetMultiParticipantsRequest","GetMultiParticipantsResponse","GetMultiWidgetMessagesRequest","GetMultiWidgetMessagesResponse","GetParticipantsByKeyRequest","GetParticipantsByKeyResponse","GetWidgetConfigRequest","GetWidgetConfigResponse","GetWidgetConversationResponse","GetWidgetRequest","GetWidgetResponse","ListMessageTemplateRequest","ListMessageTemplateResponse","ListMessagesRequestListMessagesFilters","ListMessagesRequest","ListMessagesResponse","ListWidgetsRequest","ListWidgetsResponse","LookupConversationsRequestLookupConversationsFilters","LookupConversationsRequest","LookupConversationsResponse","Media","Metadata","PagedRequestOptions","PagedResponseMetadata","ReceiveMessageRequest","RemoveConversationFromConversationViewRequest","SearchConversationsRequest","SearchConversationsResponse","SendMessageRequest","SendMessageResponse","SendWidgetMessageRequest","SendWidgetMessageResponse","SetLastSeenRequest","SetLastSeenResponse","UpdateConversationRequest","UpdateConversationResponse","UpdateMessageStatusRequest","UpdateMessageTemplateRequest","UpdateMessageTemplateResponse","UpdateWidgetRequest","UpdateWidgetResponse","UpsertConfigurationRequest","UpsertConfigurationResponse","UpsertProductFeatureRequest","UpsertProductFeatureResponse","environment","hostMap","HostService","ConversationApiService","InboxApiService","init_vendasta_conversation","__esmMin","init_core","init_http","init_operators","_NamespaceDetail","proto","m","kwargs","toReturn","_SubjectParticipant","_Conversation","_ConversationKey","_LastSeenByParticipant","_Message","_SendStatus","_Address","_Participant","_ParticipantKey","v","_Configuration","_ProductFeature","_View","_DataSources","_Widget","_FieldMask","_MessageTemplate","_AddConversationToConversationViewRequest","_AddMultiParticipantsRequest","_AddMultiParticipantsResponse","_ConversationMessageCount","_LookupConversationsResponseConversations","_CreateConversationRequest","_CreateConversationResponse","_CreateMessageTemplateRequest","_CreateMessageTemplateResponse","_CreateMultiMessagesRequest","_CreateWidgetConversationRequest","_CreateWidgetConversationResponse","_CreateWidgetRequest","_CreateWidgetResponse","_DeleteConversationRequest","_DeleteMessageRequest","_DeleteMessageTemplateRequest","_DeleteWidgetRequest","_SearchConversationsResponseDetailedConversation","_GetMultiConversationDetailsResponseDetailedConversation","_EvaluateResponseRequest","_GetAvailableChannelsForConversationRequest","_GetAvailableChannelsForConversationResponse","_GetConfigurationRequest","_GetConfigurationResponse","_GetConversationByKeyRequest","_GetConversationByKeyResponse","_GetConversationSummaryRequest","_GetConversationSummaryResponse","_GetConversationViewsRequest","_GetConversationViewsResponse","_GetMessageRequest","_GetMessageTemplateRequest","_GetMessageTemplateResponse","_GetMultiConfigurationRequest","_GetMultiConfigurationResponse","_GetMultiConversationDetailsRequest","_GetMultiConversationDetailsResponse","_GetMultiConversationMessageCountRequest","_GetMultiConversationMessageCountResponse","obj","k","_GetMultiMessagesRequest","_GetMultiMessagesResponse","_GetMultiParticipantsRequest","_GetMultiParticipantsResponse","_GetMultiWidgetMessagesRequest","_GetMultiWidgetMessagesResponse","_GetParticipantsByKeyRequest","_GetParticipantsByKeyResponse","_GetWidgetConfigRequest","_GetWidgetConfigResponse","_GetWidgetConversationResponse","_GetWidgetRequest","_GetWidgetResponse","_ListMessageTemplateRequest","_ListMessageTemplateResponse","_ListMessagesRequestListMessagesFilters","_ListMessagesRequest","_ListMessagesResponse","_ListWidgetsRequest","_ListWidgetsResponse","_LookupConversationsRequestLookupConversationsFilters","_LookupConversationsRequest","_LookupConversationsResponse","_Media","_Metadata","_PagedRequestOptions","_PagedResponseMetadata","_ReceiveMessageRequest","_RemoveConversationFromConversationViewRequest","_SearchConversationsRequest","_SearchConversationsResponse","_SendMessageRequest","_SendMessageResponse","_SendWidgetMessageRequest","_SendWidgetMessageResponse","_SetLastSeenRequest","_SetLastSeenResponse","_UpdateConversationRequest","_UpdateConversationResponse","_UpdateMessageStatusRequest","_UpdateMessageTemplateRequest","_UpdateMessageTemplateResponse","_UpdateWidgetRequest","_UpdateWidgetResponse","_UpsertConfigurationRequest","_UpsertConfigurationResponse","_UpsertProductFeatureRequest","_UpsertProductFeatureResponse","t","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","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","createTemplate","template","__async","sb","firstValueFrom","map","createMessageTemplate","delete","templateId","deleteMessageTemplate","updateTemplate","updateMessageTemplate","fieldMask","paths","getTemplate","getMessageTemplate","catchError","openErrorSnack","of","factory","ɵfac","providedIn","_TemplateService"],"x_google_ignoreList":[1]}