{"version":3,"sources":["node_modules/@vendasta/conversation/fesm2022/vendasta-conversation.mjs","libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.ts","libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.html","libs/sms/src/lib/progress-tracker/progress-tracker.component.ts","libs/sms/src/lib/progress-tracker/progress-tracker.component.html","node_modules/@vendasta/smsv2/fesm2020/vendasta-smsv2.mjs","libs/sms/src/lib/sms-registration-form/types.ts","libs/sms/src/lib/sms.constants.ts","libs/sms/src/lib/token.ts","libs/sms/src/lib/service/sms.service.ts","libs/sms/src/lib/info-banner/info-banner.component.ts","libs/sms/src/lib/info-banner/info-banner.component.html","libs/sms/src/lib/sms-registration-card/sms-registration-card.component.ts","libs/sms/src/lib/sms-registration-card/sms-registration-card.component.html","libs/sms/src/lib/sms-registration-error-banner/sms-registration-error-banner.component.ts","libs/sms/src/lib/sms-registration-error-banner/sms-registration-error-banner.component.html","libs/sms/src/lib/sms-registration-form/pipes/business-category-to-label.pipe.ts","libs/sms/src/lib/sms-registration-form/pipes/region-to-label.pipe.ts","libs/sms/src/lib/sms-registration-form/comfirmation-dialog/confirmation-modal.component.ts","libs/sms/src/lib/sms-registration-form/comfirmation-dialog/confirmation-modal.component.html","libs/sms/src/lib/sms-registration-form/sms-registration-form.component.ts","libs/sms/src/lib/sms-registration-form/sms-registration-form.component.html","libs/sms/src/lib/sms-registration/sms-registration.component.ts","libs/sms/src/lib/sms-registration/sms-registration.component.html","libs/sms/src/lib/assets/i18n/en_devel.json","libs/sms/src/lib/assets/i18n/sms-i18n.module.ts","libs/sms/src/lib/sms.module.ts","node_modules/@vendasta/templates/fesm2020/vendasta-templates.mjs","libs/email-ui/email-builder/src/services/app-listing-service.interface.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.service.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-dialog/dynamic-component-dialog.component.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-dialog/dynamic-component-dialog.component.html","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.component.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.component.html","libs/templates/src/lib/assets/i18n/en_devel.json","libs/templates/src/lib/assets/i18n/templates-i18n.module.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.module.ts","libs/sms/src/lib/text-message-builder/text-message-builder-form/text-message-builder-form.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder-form/text-message-builder-form.component.html","libs/galaxy/chat/src/chat-bubble/chat-bubble.component.ts","libs/galaxy/chat/src/chat-bubble/chat-bubble.component.html","libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.ts","libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.html","libs/galaxy/chat/src/chat-event/chat-event.component.ts","libs/galaxy/chat/src/chat-event/chat-event.component.html","libs/galaxy/chat/src/chat-container/chat-container.component.ts","libs/galaxy/chat/src/chat-container/chat-container.component.html","libs/galaxy/chat/src/chat-message/chat-message.component.ts","libs/galaxy/chat/src/chat-message/chat-message.component.html","libs/galaxy/chat/src/chat-message-group/chat-message-group.component.ts","libs/galaxy/chat/src/chat-message-group/chat-message-group.component.html","libs/galaxy/chat/src/directives/additional-metadata.ts","libs/galaxy/chat/src/chat.module.ts","libs/sms/src/lib/text-message-builder/text-message-builder-preview/text-message-builder-preview.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder-preview/text-message-builder-preview.component.html","libs/sms/src/lib/text-message-builder/text-message-builder.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder.component.html","libs/conversation/core/src/lib/tokens.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient, 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 ConversationChannel[ConversationChannel[\"CONVERSATION_CHANNEL_INSTAGRAM\"] = 9] = \"CONVERSATION_CHANNEL_INSTAGRAM\";\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 participantType;\n internalParticipantId;\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 participantType;\n internalParticipantId;\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 conversationId;\n channel;\n externalConversationId;\n created;\n updated;\n deleted;\n participantIds;\n latestMsgSentTime;\n originLocation;\n originLocationExternalId;\n lastSeenByParticipant;\n conversationViewIds;\n subjectParticipantsKey;\n subjectParticipants;\n isOpen;\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 subjectParticipants;\n channel;\n originLocationExternalId;\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 participantId;\n lastSeenTime;\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 messageId;\n externalMessageId;\n conversationId;\n participantId;\n type;\n body;\n error;\n created;\n updated;\n deleted;\n media;\n sendStatus;\n channel;\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 participantId;\n messageId;\n status;\n updated;\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 status;\n reason;\n created;\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 firstLineAddress;\n secondLineAddress;\n city;\n state;\n country;\n zipCode;\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 participantId;\n internalParticipantId;\n partnerId;\n accountGroupId;\n location;\n channel;\n externalParticipantId;\n name;\n created;\n updated;\n deleted;\n participantType;\n email;\n phoneNumber;\n address;\n isSubjectParticipant;\n isParticipantInternalInfoDeleted;\n profileImageUrl;\n namespaceHierarchy;\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 internalParticipantId;\n partnerId;\n accountGroupId;\n location;\n channels;\n participantType;\n namespaceHierarchy;\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 scope;\n public;\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 subjectParticipant;\n createdAt;\n updatedAt;\n availabilityMessage;\n showAvailabilityMessage;\n googleBusinessMessagesEnabled;\n smsEnabled;\n inboxProEnabled;\n webChatEnabled;\n facebookMessengerEnabled;\n multiLocationEnabled;\n instagramMessagingEnabled;\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 if (typeof this.instagramMessagingEnabled !== 'undefined') {\n toReturn['instagramMessagingEnabled'] = this.instagramMessagingEnabled;\n }\n return toReturn;\n }\n}\nclass ProductFeature {\n googleBusinessMessagesEnabled;\n smsEnabled;\n multiLocationEnabled;\n webChatEnabled;\n facebookMessengerEnabled;\n instagramMessagingEnabled;\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 if (typeof this.instagramMessagingEnabled !== 'undefined') {\n toReturn['instagramMessagingEnabled'] = this.instagramMessagingEnabled;\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 viewId;\n created;\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 businessProfile;\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 widgetId;\n name;\n namespace;\n color;\n allowedUrls;\n position;\n created;\n updated;\n isEnabled;\n welcomeMessage;\n textColor;\n accentColor;\n accentTextColor;\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 paths;\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 templateId;\n name;\n content;\n created;\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 viewId;\n conversationId;\n participantId;\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 conversationId;\n participants;\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 participants;\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 CapturedLead {\n name;\n email;\n phone;\n static fromProto(proto) {\n let m = new CapturedLead();\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.phone !== 'undefined') {\n toReturn['phone'] = this.phone;\n }\n return toReturn;\n }\n}\nclass ConversationMessageCount {\n conversationId;\n count;\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 conversation;\n participants;\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 key;\n value;\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 participants;\n channel;\n externalConversationId;\n created;\n updated;\n originLocation;\n originLocationExternalId;\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 conversation;\n participants;\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 template;\n subjectParticipant;\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 template;\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 messages;\n lastSeen;\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 widgetId;\n chatSourceUrl;\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 widgetParticipantToken;\n conversation;\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 name;\n namespace;\n color;\n allowedUrls;\n welcomeMessage;\n dataSources;\n textColor;\n accentColor;\n accentTextColor;\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 widget;\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 key;\n value;\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 conversationId;\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 messageId;\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 templateId;\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 widgetId;\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 GetMultiConversationDetailsResponseDetailedConversation {\n conversation;\n latestMessage;\n participants;\n summary;\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 SearchConversationsResponseDetailedConversation {\n conversation;\n latestMessage;\n participants;\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 EvaluateResponseRequest {\n messageId;\n sentiment;\n comment;\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 conversationId;\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 channels;\n preferredChannel;\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 subjectParticipant;\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 configuration;\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 conversationKey;\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 conversation;\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 conversationId;\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 summary;\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 participantId;\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 views;\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 messageId;\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 templateId;\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 template;\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 subjectParticipants;\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 configurations;\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 conversationIds;\n options;\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 conversations;\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 conversationIds;\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 messageCounts;\n counts;\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 messageIds;\n conversationId;\n languageCode;\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 messages;\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 participantIds;\n conversationId;\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 participants;\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 messageIds;\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 messages;\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 GetOwnerEmailRequest {\n subjectParticipant;\n static fromProto(proto) {\n let m = new GetOwnerEmailRequest();\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 GetOwnerEmailResponse {\n forwardingEmail;\n static fromProto(proto) {\n let m = new GetOwnerEmailResponse();\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.forwardingEmail !== 'undefined') {\n toReturn['forwardingEmail'] = this.forwardingEmail;\n }\n return toReturn;\n }\n}\nclass GetParticipantsByKeyRequest {\n participantKey;\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 participants;\n participant;\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 widgetId;\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 name;\n color;\n isEnabled;\n welcomeMessage;\n textColor;\n accentColor;\n accentTextColor;\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 conversation;\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 widgetId;\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 widget;\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 subjectParticipant;\n pagingOptions;\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 templates;\n pagingMetadata;\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 conversationId;\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 filters;\n pagingOptions;\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 messages;\n pagingMetadata;\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 namespace;\n pagingOptions;\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 widgets;\n pagingMetadata;\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 internalParticipantId;\n location;\n channel;\n accountGroupId;\n externalConversationId;\n originLocation;\n originLocationExternalId;\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 filters;\n pagingOptions;\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 conversations;\n pagingMetadata;\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 mediaContentType;\n mediaLocationPath;\n mediaFileName;\n fileSize;\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 identifier;\n data;\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 key;\n value;\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 NewInboxLeadCapturedRequest {\n namespace;\n parentNamespace;\n conversationId;\n conversationSummary;\n capturedLead;\n source;\n capturedAt;\n static fromProto(proto) {\n let m = new NewInboxLeadCapturedRequest();\n m = Object.assign(m, proto);\n if (proto.capturedLead) {\n m.capturedLead = CapturedLead.fromProto(proto.capturedLead);\n }\n if (proto.capturedAt) {\n m.capturedAt = new Date(proto.capturedAt);\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.parentNamespace !== 'undefined') {\n toReturn['parentNamespace'] = this.parentNamespace;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.conversationSummary !== 'undefined') {\n toReturn['conversationSummary'] = this.conversationSummary;\n }\n if (typeof this.capturedLead !== 'undefined' && this.capturedLead !== null) {\n toReturn['capturedLead'] = 'toApiJson' in this.capturedLead ? this.capturedLead.toApiJson() : this.capturedLead;\n }\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.capturedAt !== 'undefined' && this.capturedAt !== null) {\n toReturn['capturedAt'] = 'toApiJson' in this.capturedAt ? this.capturedAt.toApiJson() : this.capturedAt;\n }\n return toReturn;\n }\n}\nclass NewInboxLeadCapturedResponse {\n static fromProto(proto) {\n let m = new NewInboxLeadCapturedResponse();\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 return toReturn;\n }\n}\nclass PagedRequestOptions {\n cursor;\n pageSize;\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 nextCursor;\n hasMore;\n totalResults;\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 senderId;\n recipientId;\n conversationId;\n messageId;\n body;\n channel;\n type;\n location;\n partnerId;\n accountGroupId;\n metadata;\n media;\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 viewId;\n conversationId;\n participantId;\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 partnerId;\n accountGroupId;\n location;\n searchTerm;\n pagingOptions;\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 conversations;\n pagingMetadata;\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 sender;\n recipient;\n conversationId;\n type;\n body;\n metadata;\n originLocation;\n media;\n channel;\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 workflowId;\n messageId;\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 type;\n body;\n metadata;\n location;\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 messageId;\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 conversationId;\n participant;\n status;\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 participant;\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 conversation;\n fieldMask;\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 conversation;\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 messageId;\n participantId;\n status;\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 template;\n fieldMask;\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 template;\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 widgetId;\n name;\n color;\n allowedUrls;\n welcomeMessage;\n isEnabled;\n fieldMask;\n textColor;\n accentColor;\n accentTextColor;\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 widget;\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 configuration;\n fieldMask;\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 configuration;\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 productFeature;\n fieldMask;\n subjectParticipant;\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 productFeature;\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 static ɵfac = function HostService_Factory(t) {\n return new (t || HostService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\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 hostService = inject(HostService);\n http = inject(HttpClient);\n _host = this.hostService.hostWithScheme;\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 newInboxLeadCaptured(r) {\n const request = r.toApiJson ? r : new NewInboxLeadCapturedRequest(r);\n return this.http.post(this._host + \"/conversation.v1.ConversationService/NewInboxLeadCaptured\", request.toApiJson(), this.apiOptions()).pipe(map(resp => NewInboxLeadCapturedResponse.fromProto(resp)));\n }\n static ɵfac = function ConversationApiService_Factory(t) {\n return new (t || ConversationApiService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConversationApiService,\n factory: ConversationApiService.ɵfac,\n providedIn: 'root'\n });\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 EmailApiService = /*#__PURE__*/(() => {\n class EmailApiService {\n hostService = inject(HostService);\n http = inject(HttpClient);\n _host = this.hostService.hostWithScheme;\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getOwnerEmail(r) {\n const request = r.toApiJson ? r : new GetOwnerEmailRequest(r);\n return this.http.post(this._host + \"/conversation.v1.EmailService/GetOwnerEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetOwnerEmailResponse.fromProto(resp)));\n }\n static ɵfac = function EmailApiService_Factory(t) {\n return new (t || EmailApiService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailApiService,\n factory: EmailApiService.ɵfac,\n providedIn: 'root'\n });\n }\n return EmailApiService;\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 hostService = inject(HostService);\n http = inject(HttpClient);\n _host = this.hostService.hostWithScheme;\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 static ɵfac = function InboxApiService_Factory(t) {\n return new (t || InboxApiService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboxApiService,\n factory: InboxApiService.ɵfac,\n providedIn: 'root'\n });\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, CapturedLead, Configuration, Conversation, ConversationApiService, ConversationChannel, ConversationKey, ConversationMessageCount, CreateConversationRequest, CreateConversationResponse, CreateMessageTemplateRequest, CreateMessageTemplateResponse, CreateMultiMessagesRequest, CreateWidgetConversationRequest, CreateWidgetConversationResponse, CreateWidgetRequest, CreateWidgetResponse, DataSources, DeleteConversationRequest, DeleteMessageRequest, DeleteMessageTemplateRequest, DeleteWidgetRequest, EmailApiService, 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, GetOwnerEmailRequest, GetOwnerEmailResponse, 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, NewInboxLeadCapturedRequest, NewInboxLeadCapturedResponse, 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 { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './learn-more-modal.component.html',\n styleUrls: ['./learn-more-modal.component.scss'],\n})\nexport class LearnMoreModalComponent {}\n","
Required registration for SMS
\n\n SMS Registration Requirements\n

\n To prevent spam and other SMS abuse, phone carriers in the United States now require businesses to register their\n phone numbers before sending SMS messages to customers. (Policy known as A2P 10DLC)\n

\n How long does registration take?\n

\n Once the form has been submitted, registration through third-party verification can take anywhere from one week, up\n to one month. A third-party agency is being used by telecom carriers in the United States to verify business\n registration data with government databases.\n

\n How do I find my business registration number a.k.a. EIN / Tax ID?\n

\n An EIN is a nine-digit number the IRS uses to identify a business for tax purposes, much like a Social Security\n number identifies an individual business. In the US, the Internal Revenue Service (IRS) issues a CP 575 EIN\n Confirmation Letter to confirm the unique Employer Identification Number (EIN) issued to a new business. The EIN\n provided in a CP 575 letter is required to file your company’s taxes, open a business bank account, and apply for a\n business credit card, loan, or payroll processing. You may be able to find your number on previous business tax\n returns, loans, licenses or bank statements. If you can't find your EIN on any of your documents, you can contact\n the IRS at 800-829-4933, Monday through Friday between 7 a.m. and 7 p.m. local time. If your business does not have\n an EIN, you can apply for an EIN by submitting IRS Form SS-4 with the IRS.\n

\n How can I ensure my application is approved?\n

\n Make sure the data entered exactly matches the information associated with your EIN, including your legal company\n name. The most common reason for a business’s application being rejected is because the information entered in the\n form does not match the information the IRS has for the business, associated with your EIN.\n

\n
\n\n \n\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\n\nexport enum Status {\n NotStarted = 'not_started',\n InProgress = 'in_progress',\n Completed = 'completed',\n Failed = 'failed',\n}\nexport interface StageStatus {\n name: string;\n status: Status;\n}\n\n@Component({\n selector: 'sms-progress-tracker',\n standalone: true,\n imports: [CommonModule, MatIcon],\n templateUrl: './progress-tracker.component.html',\n styleUrl: './progress-tracker.component.scss',\n})\nexport class ProgressTrackerComponent {\n @Input({ required: true }) stages: StageStatus[] = [];\n\n private cssClasses: Map = new Map([\n [Status.NotStarted, 'tracker-not-started-color'],\n [Status.InProgress, 'tracker-in-progress-color'],\n [Status.Completed, 'tracker-completed-color'],\n [Status.Failed, 'tracker-failed-color'],\n ]);\n\n getClassForStatus(status: Status): string {\n return this.cssClasses.get(status) ?? '';\n }\n}\n","
\n \n
\n
\n
\n
\n .\n .\n .\n
\n done\n close\n
\n
\n {{ stage.name }}\n
\n
\n
\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 ParticipantType = /*#__PURE__*/function (ParticipantType) {\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_UNKNOWN\"] = 0] = \"PARTICIPANT_TYPE_UNKNOWN\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_ACCOUNT_GROUP\"] = 1] = \"PARTICIPANT_TYPE_ACCOUNT_GROUP\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_CUSTOMER\"] = 2] = \"PARTICIPANT_TYPE_CUSTOMER\";\n return ParticipantType;\n}(ParticipantType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar OwnerType = /*#__PURE__*/function (OwnerType) {\n OwnerType[OwnerType[\"OWNER_TYPE_UNSPECIFIED\"] = 0] = \"OWNER_TYPE_UNSPECIFIED\";\n OwnerType[OwnerType[\"OWNER_TYPE_PARTNER\"] = 1] = \"OWNER_TYPE_PARTNER\";\n OwnerType[OwnerType[\"OWNER_TYPE_ACCOUNT_GROUP\"] = 2] = \"OWNER_TYPE_ACCOUNT_GROUP\";\n return OwnerType;\n}(OwnerType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DataField = /*#__PURE__*/function (DataField) {\n DataField[DataField[\"DATA_FIELD_UNSPECIFIED\"] = 0] = \"DATA_FIELD_UNSPECIFIED\";\n DataField[DataField[\"DATA_FIELD_LEGAL_BUSINESS_NAME\"] = 1] = \"DATA_FIELD_LEGAL_BUSINESS_NAME\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_CATEGORY\"] = 2] = \"DATA_FIELD_BUSINESS_CATEGORY\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_TYPE\"] = 3] = \"DATA_FIELD_BUSINESS_TYPE\";\n DataField[DataField[\"DATA_FIELD_REGION_OF_OPERATION\"] = 4] = \"DATA_FIELD_REGION_OF_OPERATION\";\n DataField[DataField[\"DATA_FIELD_REGISTRATION_IDENTIFIER\"] = 5] = \"DATA_FIELD_REGISTRATION_IDENTIFIER\";\n DataField[DataField[\"DATA_FIELD_STREET_ADDRESS\"] = 6] = \"DATA_FIELD_STREET_ADDRESS\";\n DataField[DataField[\"DATA_FIELD_STREET_ADDRESS_SECONDARY\"] = 7] = \"DATA_FIELD_STREET_ADDRESS_SECONDARY\";\n DataField[DataField[\"DATA_FIELD_CITY\"] = 8] = \"DATA_FIELD_CITY\";\n DataField[DataField[\"DATA_FIELD_STATE\"] = 9] = \"DATA_FIELD_STATE\";\n DataField[DataField[\"DATA_FIELD_POSTAL_CODE\"] = 10] = \"DATA_FIELD_POSTAL_CODE\";\n DataField[DataField[\"DATA_FIELD_WEBSITE_URL\"] = 11] = \"DATA_FIELD_WEBSITE_URL\";\n DataField[DataField[\"DATA_FIELD_COUNTRY\"] = 12] = \"DATA_FIELD_COUNTRY\";\n DataField[DataField[\"DATA_FIELD_FIRST_NAME\"] = 13] = \"DATA_FIELD_FIRST_NAME\";\n DataField[DataField[\"DATA_FIELD_LAST_NAME\"] = 14] = \"DATA_FIELD_LAST_NAME\";\n DataField[DataField[\"DATA_FIELD_JOB_POSITION\"] = 15] = \"DATA_FIELD_JOB_POSITION\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_TITLE\"] = 16] = \"DATA_FIELD_BUSINESS_TITLE\";\n DataField[DataField[\"DATA_FIELD_EMAIL\"] = 17] = \"DATA_FIELD_EMAIL\";\n DataField[DataField[\"DATA_FIELD_PHONE_NUMBER\"] = 18] = \"DATA_FIELD_PHONE_NUMBER\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_REGISTRATION_NUMBER\"] = 19] = \"DATA_FIELD_BUSINESS_REGISTRATION_NUMBER\";\n return DataField;\n}(DataField || {});\nvar BrandStatus = /*#__PURE__*/function (BrandStatus) {\n BrandStatus[BrandStatus[\"BRAND_STATUS_UNSPECIFIED\"] = 0] = \"BRAND_STATUS_UNSPECIFIED\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_PENDING\"] = 1] = \"BRAND_STATUS_PENDING\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_IN_REVIEW\"] = 2] = \"BRAND_STATUS_IN_REVIEW\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_FAILED\"] = 3] = \"BRAND_STATUS_FAILED\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_APPROVED\"] = 4] = \"BRAND_STATUS_APPROVED\";\n return BrandStatus;\n}(BrandStatus || {});\nvar MessagingCampaignStatus = /*#__PURE__*/function (MessagingCampaignStatus) {\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED\"] = 0] = \"MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_PENDING\"] = 1] = \"MESSAGING_CAMPAIGN_STATUS_PENDING\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_FAILED\"] = 2] = \"MESSAGING_CAMPAIGN_STATUS_FAILED\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_VERIFIED\"] = 3] = \"MESSAGING_CAMPAIGN_STATUS_VERIFIED\";\n return MessagingCampaignStatus;\n}(MessagingCampaignStatus || {});\nvar ValidationStatus = /*#__PURE__*/function (ValidationStatus) {\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_UNSPECIFIED\"] = 0] = \"VALIDATION_STATUS_UNSPECIFIED\";\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_COMPLIANT\"] = 1] = \"VALIDATION_STATUS_COMPLIANT\";\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_NON_COMPLIANT\"] = 2] = \"VALIDATION_STATUS_NON_COMPLIANT\";\n return ValidationStatus;\n}(ValidationStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar StatusType = /*#__PURE__*/function (StatusType) {\n StatusType[StatusType[\"STATUS_TYPE_UNSPECIFIED\"] = 0] = \"STATUS_TYPE_UNSPECIFIED\";\n StatusType[StatusType[\"STATUS_TYPE_QUEUED\"] = 1] = \"STATUS_TYPE_QUEUED\";\n StatusType[StatusType[\"STATUS_TYPE_SENDING\"] = 2] = \"STATUS_TYPE_SENDING\";\n StatusType[StatusType[\"STATUS_TYPE_SENT\"] = 3] = \"STATUS_TYPE_SENT\";\n StatusType[StatusType[\"STATUS_TYPE_FAILED\"] = 4] = \"STATUS_TYPE_FAILED\";\n StatusType[StatusType[\"STATUS_TYPE_DELIVERED\"] = 5] = \"STATUS_TYPE_DELIVERED\";\n StatusType[StatusType[\"STATUS_TYPE_UNDELIVERED\"] = 6] = \"STATUS_TYPE_UNDELIVERED\";\n StatusType[StatusType[\"STATUS_TYPE_RECEIVING\"] = 7] = \"STATUS_TYPE_RECEIVING\";\n StatusType[StatusType[\"STATUS_TYPE_RECEIVED\"] = 8] = \"STATUS_TYPE_RECEIVED\";\n StatusType[StatusType[\"STATUS_TYPE_ACCEPTED\"] = 9] = \"STATUS_TYPE_ACCEPTED\";\n StatusType[StatusType[\"STATUS_TYPE_SCHEDULED\"] = 10] = \"STATUS_TYPE_SCHEDULED\";\n StatusType[StatusType[\"STATUS_TYPE_CANCELED\"] = 11] = \"STATUS_TYPE_CANCELED\";\n return StatusType;\n}(StatusType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar LimitType = /*#__PURE__*/function (LimitType) {\n LimitType[LimitType[\"LIMIT_TYPE_UNSPECIFIED\"] = 0] = \"LIMIT_TYPE_UNSPECIFIED\";\n LimitType[LimitType[\"LIMIT_TYPE_DAILY\"] = 1] = \"LIMIT_TYPE_DAILY\";\n return LimitType;\n}(LimitType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$5(ParticipantType, proto.type);\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.internalId !== 'undefined') {\n toReturn['internalId'] = this.internalId;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\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 A2PRegistrationInfo {\n static fromProto(proto) {\n let m = new A2PRegistrationInfo();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue$4(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\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.submitted) {\n m.submitted = new Date(proto.submitted);\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.friendlyName !== 'undefined') {\n toReturn['friendlyName'] = this.friendlyName;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\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.submitted !== 'undefined' && this.submitted !== null) {\n toReturn['submitted'] = 'toApiJson' in this.submitted ? this.submitted.toApiJson() : this.submitted;\n }\n return toReturn;\n }\n}\nclass A2PRegistrationStatus {\n static fromProto(proto) {\n let m = new A2PRegistrationStatus();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue$4(OwnerType, proto.ownerType);\n }\n if (proto.secondaryBusinessProfile) {\n m.secondaryBusinessProfile = SecondaryBusinessProfile.fromProto(proto.secondaryBusinessProfile);\n }\n if (proto.trustBundle) {\n m.trustBundle = TrustBundle.fromProto(proto.trustBundle);\n }\n if (proto.brand) {\n m.brand = Brand.fromProto(proto.brand);\n }\n if (proto.messagingCampaign) {\n m.messagingCampaign = MessagingCampaign.fromProto(proto.messagingCampaign);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n if (typeof this.messagingServiceId !== 'undefined') {\n toReturn['messagingServiceId'] = this.messagingServiceId;\n }\n if (typeof this.secondaryBusinessProfile !== 'undefined' && this.secondaryBusinessProfile !== null) {\n toReturn['secondaryBusinessProfile'] = 'toApiJson' in this.secondaryBusinessProfile ? this.secondaryBusinessProfile.toApiJson() : this.secondaryBusinessProfile;\n }\n if (typeof this.trustBundle !== 'undefined' && this.trustBundle !== null) {\n toReturn['trustBundle'] = 'toApiJson' in this.trustBundle ? this.trustBundle.toApiJson() : this.trustBundle;\n }\n if (typeof this.brand !== 'undefined' && this.brand !== null) {\n toReturn['brand'] = 'toApiJson' in this.brand ? this.brand.toApiJson() : this.brand;\n }\n if (typeof this.messagingCampaign !== 'undefined' && this.messagingCampaign !== null) {\n toReturn['messagingCampaign'] = 'toApiJson' in this.messagingCampaign ? this.messagingCampaign.toApiJson() : this.messagingCampaign;\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 return toReturn;\n }\n}\nclass AuthorizedRepresentative {\n static fromProto(proto) {\n let m = new AuthorizedRepresentative();\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.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\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.businessTitle !== 'undefined') {\n toReturn['businessTitle'] = this.businessTitle;\n }\n if (typeof this.jobPosition !== 'undefined') {\n toReturn['jobPosition'] = this.jobPosition;\n }\n return toReturn;\n }\n}\nclass Brand {\n static fromProto(proto) {\n let m = new Brand();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(BrandStatus, 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.id !== 'undefined') {\n toReturn['id'] = this.id;\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 Business {\n static fromProto(proto) {\n let m = new Business();\n m = Object.assign(m, proto);\n if (proto.registrationIdentifier) {\n m.registrationIdentifier = RegistrationIdentifier.fromProto(proto.registrationIdentifier);\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.legalName !== 'undefined') {\n toReturn['legalName'] = this.legalName;\n }\n if (typeof this.businessType !== 'undefined') {\n toReturn['businessType'] = this.businessType;\n }\n if (typeof this.industry !== 'undefined') {\n toReturn['industry'] = this.industry;\n }\n if (typeof this.registrationIdentifier !== 'undefined' && this.registrationIdentifier !== null) {\n toReturn['registrationIdentifier'] = 'toApiJson' in this.registrationIdentifier ? this.registrationIdentifier.toApiJson() : this.registrationIdentifier;\n }\n if (typeof this.regionOfOperation !== 'undefined') {\n toReturn['regionOfOperation'] = this.regionOfOperation;\n }\n if (typeof this.websiteUrl !== 'undefined') {\n toReturn['websiteUrl'] = this.websiteUrl;\n }\n if (typeof this.socialMediaProfileUrls !== 'undefined') {\n toReturn['socialMediaProfileUrls'] = this.socialMediaProfileUrls;\n }\n if (typeof this.streetAddress !== 'undefined') {\n toReturn['streetAddress'] = this.streetAddress;\n }\n if (typeof this.streetAddressSecondary !== 'undefined') {\n toReturn['streetAddressSecondary'] = this.streetAddressSecondary;\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.postalCode !== 'undefined') {\n toReturn['postalCode'] = this.postalCode;\n }\n if (typeof this.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n return toReturn;\n }\n}\nclass MessagingCampaign {\n static fromProto(proto) {\n let m = new MessagingCampaign();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(MessagingCampaignStatus, 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.id !== 'undefined') {\n toReturn['id'] = this.id;\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 RegistrationIdentifier {\n static fromProto(proto) {\n let m = new RegistrationIdentifier();\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.identifierType !== 'undefined') {\n toReturn['identifierType'] = this.identifierType;\n }\n if (typeof this.identifier !== 'undefined') {\n toReturn['identifier'] = this.identifier;\n }\n return toReturn;\n }\n}\nclass SecondaryBusinessProfile {\n static fromProto(proto) {\n let m = new SecondaryBusinessProfile();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(ValidationStatus, proto.status);\n }\n if (proto.fieldsWithIssues) {\n m.fieldsWithIssues = proto.fieldsWithIssues.map(v => enumStringToValue$4(DataField, v));\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.authorizedRepresentativeId !== 'undefined') {\n toReturn['authorizedRepresentativeId'] = this.authorizedRepresentativeId;\n }\n if (typeof this.addressResourceId !== 'undefined') {\n toReturn['addressResourceId'] = this.addressResourceId;\n }\n if (typeof this.addressSupportingDocumentId !== 'undefined') {\n toReturn['addressSupportingDocumentId'] = this.addressSupportingDocumentId;\n }\n if (typeof this.secondaryBusinessInformationId !== 'undefined') {\n toReturn['secondaryBusinessInformationId'] = this.secondaryBusinessInformationId;\n }\n if (typeof this.fieldsWithIssues !== 'undefined') {\n toReturn['fieldsWithIssues'] = this.fieldsWithIssues;\n }\n return toReturn;\n }\n}\nclass TrustBundle {\n static fromProto(proto) {\n let m = new TrustBundle();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(ValidationStatus, proto.status);\n }\n if (proto.fieldsWithIssues) {\n m.fieldsWithIssues = proto.fieldsWithIssues.map(v => enumStringToValue$4(DataField, v));\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n if (typeof this.fieldsWithIssues !== 'undefined') {\n toReturn['fieldsWithIssues'] = this.fieldsWithIssues;\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 Attribute {\n static fromProto(proto) {\n let m = new Attribute();\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}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass SupportingDocumentInfo {\n static fromProto(proto) {\n let m = new SupportingDocumentInfo();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.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.documentType !== 'undefined') {\n toReturn['documentType'] = this.documentType;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.processAddress !== 'undefined') {\n toReturn['processAddress'] = this.processAddress;\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 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(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ClaimPhoneNumberRequest {\n static fromProto(proto) {\n let m = new ClaimPhoneNumberRequest();\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass CreateA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new CreateA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\n }\n if (typeof this.submitted !== 'undefined') {\n toReturn['submitted'] = this.submitted;\n }\n return toReturn;\n }\n}\nclass CreateRegulationInfoRequest {\n static fromProto(proto) {\n let m = new CreateRegulationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.businessAttributes) {\n m.businessAttributes = proto.businessAttributes.map(Attribute.fromProto);\n }\n if (proto.supportingDocuments) {\n m.supportingDocuments = proto.supportingDocuments.map(SupportingDocumentInfo.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.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.countryCode !== 'undefined') {\n toReturn['countryCode'] = this.countryCode;\n }\n if (typeof this.businessAttributes !== 'undefined' && this.businessAttributes !== null) {\n toReturn['businessAttributes'] = 'toApiJson' in this.businessAttributes ? this.businessAttributes.toApiJson() : this.businessAttributes;\n }\n if (typeof this.supportingDocuments !== 'undefined' && this.supportingDocuments !== null) {\n toReturn['supportingDocuments'] = 'toApiJson' in this.supportingDocuments ? this.supportingDocuments.toApiJson() : this.supportingDocuments;\n }\n return toReturn;\n }\n}\nclass CreateRegulationInfoResponse {\n static fromProto(proto) {\n let m = new CreateRegulationInfoResponse();\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.regulationInfoId !== 'undefined') {\n toReturn['regulationInfoId'] = this.regulationInfoId;\n }\n return toReturn;\n }\n}\nclass CreateSmsClickedEventRequest {\n static fromProto(proto) {\n let m = new CreateSmsClickedEventRequest();\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.messageUuid !== 'undefined') {\n toReturn['messageUuid'] = this.messageUuid;\n }\n return toReturn;\n }\n}\nclass DeleteA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new DeleteA2PRegistrationInfoRequest();\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass GetA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new GetA2PRegistrationInfoRequest();\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass GetA2PRegistrationInfoResponse {\n static fromProto(proto) {\n let m = new GetA2PRegistrationInfoResponse();\n m = Object.assign(m, proto);\n if (proto.a2pRegistrationInfo) {\n m.a2pRegistrationInfo = A2PRegistrationInfo.fromProto(proto.a2pRegistrationInfo);\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.a2pRegistrationInfo !== 'undefined' && this.a2pRegistrationInfo !== null) {\n toReturn['a2pRegistrationInfo'] = 'toApiJson' in this.a2pRegistrationInfo ? this.a2pRegistrationInfo.toApiJson() : this.a2pRegistrationInfo;\n }\n return toReturn;\n }\n}\nclass GetAccountInfoRequest {\n static fromProto(proto) {\n let m = new GetAccountInfoRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Participant.fromProto(proto.sender);\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.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAccountInfoResponse {\n static fromProto(proto) {\n let m = new GetAccountInfoResponse();\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.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\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.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(StatusStat.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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n return toReturn;\n }\n}\nclass GetLatestA2PRegistrationStatusRequest {\n static fromProto(proto) {\n let m = new GetLatestA2PRegistrationStatusRequest();\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n return toReturn;\n }\n}\nclass GetLatestA2PRegistrationStatusResponse {\n static fromProto(proto) {\n let m = new GetLatestA2PRegistrationStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = A2PRegistrationStatus.fromProto(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.status !== 'undefined' && this.status !== null) {\n toReturn['status'] = 'toApiJson' in this.status ? this.status.toApiJson() : this.status;\n }\n return toReturn;\n }\n}\nclass GetLimitRequest {\n static fromProto(proto) {\n let m = new GetLimitRequest();\n m = Object.assign(m, proto);\n if (proto.limitType) {\n m.limitType = enumStringToValue(LimitType, proto.limitType);\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.limitType !== 'undefined') {\n toReturn['limitType'] = this.limitType;\n }\n return toReturn;\n }\n}\nclass GetLimitResponse {\n static fromProto(proto) {\n let m = new GetLimitResponse();\n m = Object.assign(m, proto);\n if (proto.limitType) {\n m.limitType = enumStringToValue(LimitType, proto.limitType);\n }\n if (proto.usage) {\n m.usage = parseInt(proto.usage, 10);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\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.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.limitType !== 'undefined') {\n toReturn['limitType'] = this.limitType;\n }\n if (typeof this.usage !== 'undefined') {\n toReturn['usage'] = this.usage;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\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 return toReturn;\n }\n}\nclass Media {\n static fromProto(proto) {\n let m = new Media();\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.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.locationPath !== 'undefined') {\n toReturn['locationPath'] = this.locationPath;\n }\n if (typeof this.fileName !== 'undefined') {\n toReturn['fileName'] = this.fileName;\n }\n return toReturn;\n }\n}\nclass Recipient {\n static fromProto(proto) {\n let m = new Recipient();\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.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\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.media) {\n m.media = proto.media.map(Media.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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.recipientPhoneNumber !== 'undefined') {\n toReturn['recipientPhoneNumber'] = this.recipientPhoneNumber;\n }\n if (typeof this.messageBody !== 'undefined') {\n toReturn['messageBody'] = this.messageBody;\n }\n if (typeof this.media !== 'undefined' && this.media !== null) {\n toReturn['media'] = 'toApiJson' in this.media ? this.media.toApiJson() : this.media;\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.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass SendMessageV2Request {\n static fromProto(proto) {\n let m = new SendMessageV2Request();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = Recipient.fromProto(proto.recipient);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.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.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.messageBody !== 'undefined') {\n toReturn['messageBody'] = this.messageBody;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass SendMessageV2Response {\n static fromProto(proto) {\n let m = new SendMessageV2Response();\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 Sender {\n static fromProto(proto) {\n let m = new Sender();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass StatusStat {\n static fromProto(proto) {\n let m = new StatusStat();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(StatusType, proto.status);\n }\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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass TriggerA2PRegistrationRequest {\n static fromProto(proto) {\n let m = new TriggerA2PRegistrationRequest();\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass UpsertA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new UpsertA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\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.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\n }\n if (typeof this.submitted !== 'undefined') {\n toReturn['submitted'] = this.submitted;\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': 'sms-api.vendasta-local.com',\n 'test': '',\n 'demo': 'sms-demo.apigateway.co',\n 'prod': 'sms-prod.apigateway.co',\n 'production': 'sms-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 A2PRegistrationApiService = /*#__PURE__*/(() => {\n class A2PRegistrationApiService {\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 createA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new CreateA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/CreateA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new GetA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/GetA2PRegistrationInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetA2PRegistrationInfoResponse.fromProto(resp)));\n }\n deleteA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new DeleteA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/DeleteA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new UpsertA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/UpsertA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getLatestA2pRegistrationStatus(r) {\n const request = r.toApiJson ? r : new GetLatestA2PRegistrationStatusRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/GetLatestA2PRegistrationStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLatestA2PRegistrationStatusResponse.fromProto(resp)));\n }\n triggerA2pRegistration(r) {\n const request = r.toApiJson ? r : new TriggerA2PRegistrationRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/TriggerA2PRegistration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n A2PRegistrationApiService.ɵfac = function A2PRegistrationApiService_Factory(t) {\n return new (t || A2PRegistrationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n A2PRegistrationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: A2PRegistrationApiService,\n factory: A2PRegistrationApiService.ɵfac,\n providedIn: 'root'\n });\n return A2PRegistrationApiService;\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 + \"/sms.v2.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageResponse.fromProto(resp)));\n }\n claimPhoneNumber(r) {\n const request = r.toApiJson ? r : new ClaimPhoneNumberRequest(r);\n return this.http.post(this._host + \"/sms.v2.ConversationService/ClaimPhoneNumber\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\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 EventApiService = /*#__PURE__*/(() => {\n class EventApiService {\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 getAttributeEventStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventStatsRequest(r);\n return this.http.post(this._host + \"/sms.v2.EventService/GetAttributeEventStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventStatsResponse.fromProto(resp)));\n }\n }\n EventApiService.ɵfac = function EventApiService_Factory(t) {\n return new (t || EventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EventApiService,\n factory: EventApiService.ɵfac,\n providedIn: 'root'\n });\n return EventApiService;\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 RegulationApiService = /*#__PURE__*/(() => {\n class RegulationApiService {\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 createRegulationInfo(r) {\n const request = r.toApiJson ? r : new CreateRegulationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.RegulationService/CreateRegulationInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateRegulationInfoResponse.fromProto(resp)));\n }\n }\n RegulationApiService.ɵfac = function RegulationApiService_Factory(t) {\n return new (t || RegulationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RegulationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RegulationApiService,\n factory: RegulationApiService.ɵfac,\n providedIn: 'root'\n });\n return RegulationApiService;\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 SmsApiService = /*#__PURE__*/(() => {\n class SmsApiService {\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 createSmsClickedEvent(r) {\n const request = r.toApiJson ? r : new CreateSmsClickedEventRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/CreateSmsClickedEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAccountInfo(r) {\n const request = r.toApiJson ? r : new GetAccountInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/GetAccountInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAccountInfoResponse.fromProto(resp)));\n }\n sendMessageV2(r) {\n const request = r.toApiJson ? r : new SendMessageV2Request(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/SendMessageV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageV2Response.fromProto(resp)));\n }\n getLimit(r) {\n const request = r.toApiJson ? r : new GetLimitRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/GetLimit\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLimitResponse.fromProto(resp)));\n }\n }\n SmsApiService.ɵfac = function SmsApiService_Factory(t) {\n return new (t || SmsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SmsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SmsApiService,\n factory: SmsApiService.ɵfac,\n providedIn: 'root'\n });\n return SmsApiService;\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// *********************************\nlet SmsService = /*#__PURE__*/(() => {\n class SmsService {\n constructor(smsApiService) {\n this.smsApiService = smsApiService;\n }\n getAccountInfo(sender) {\n return this.smsApiService.getAccountInfo({\n sender: sender\n });\n }\n }\n SmsService.ɵfac = function SmsService_Factory(t) {\n return new (t || SmsService)(i0.ɵɵinject(SmsApiService));\n };\n SmsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SmsService,\n factory: SmsService.ɵfac,\n providedIn: 'root'\n });\n return SmsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EventService = /*#__PURE__*/(() => {\n class EventService {\n constructor(eventService) {\n this.eventService = eventService;\n }\n getAttributeEventStats(sender, attribute) {\n return this.eventService.getAttributeEventStats({\n sender: sender,\n attribute: attribute\n });\n }\n }\n EventService.ɵfac = function EventService_Factory(t) {\n return new (t || EventService)(i0.ɵɵinject(EventApiService));\n };\n EventService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EventService,\n factory: EventService.ɵfac,\n providedIn: 'root'\n });\n return EventService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A2PRegistrationApiService, A2PRegistrationInfo, A2PRegistrationStatus, Access, Attribute, AuthorizedRepresentative, Brand, BrandStatus, Business, ClaimPhoneNumberRequest, ConversationApiService, CreateA2PRegistrationInfoRequest, CreateRegulationInfoRequest, CreateRegulationInfoResponse, CreateSmsClickedEventRequest, DataField, DeleteA2PRegistrationInfoRequest, EventApiService, EventService, GetA2PRegistrationInfoRequest, GetA2PRegistrationInfoResponse, GetAccountInfoRequest, GetAccountInfoResponse, GetAttributeEventStatsRequest, GetAttributeEventStatsResponse, GetLatestA2PRegistrationStatusRequest, GetLatestA2PRegistrationStatusResponse, GetLimitRequest, GetLimitResponse, LimitType, Media, MessagingCampaign, MessagingCampaignStatus, OwnerType, Participant, ParticipantType, Recipient, RegistrationIdentifier, RegulationApiService, SecondaryBusinessProfile, SendMessageRequest, SendMessageResponse, SendMessageV2Request, SendMessageV2Response, Sender, SmsApiService, SmsService, StatusStat, StatusType, SupportingDocumentInfo, TriggerA2PRegistrationRequest, TrustBundle, UpsertA2PRegistrationInfoRequest, ValidationStatus };\n","export enum BusinessType {\n soleProprietorship = 'Sole Proprietorship',\n partnerShip = 'Partnership',\n limitedLiabilityCorporation = 'Limited Liability Corporation',\n coOperative = 'Co-operative',\n nonProfit = 'Non-profit Corporation',\n corporation = 'Corporation',\n}\n\n// aka Industry\nexport enum BusinessCategory {\n automotiveIndustry = 'AUTOMOTIVE',\n agriculture = 'AGRICULTURE',\n banking = 'BANKING',\n consumer = 'CONSUMER',\n education = 'EDUCATION',\n engineering = 'ENGINEERING',\n energy = 'ENERGY',\n oilAndGas = 'OIL_AND_GAS',\n fastMovingConsumerGoods = 'FAST_MOVING_CONSUMER_GOODS',\n financial = 'FINANCIAL',\n fintech = 'FINTECH',\n foodAndBeverage = 'FOOD_AND_BEVERAGE',\n government = 'GOVERNMENT',\n healthcare = 'HEALTHCARE',\n hospitality = 'HOSPITALITY',\n insurance = 'INSURANCE',\n legal = 'LEGAL',\n manufacturing = 'MANUFACTURING',\n media = 'MEDIA',\n online = 'ONLINE',\n rawMaterials = 'RAW_MATERIALS',\n realEstate = 'REAL_ESTATE',\n religion = 'RELIGION',\n retail = 'RETAIL',\n jewelry = 'JEWELRY',\n technology = 'TECHNOLOGY',\n telecommunications = 'TELECOMMUNICATIONS',\n transportation = 'TRANSPORTATION',\n travel = 'TRAVEL',\n electronics = 'ELECTRONICS',\n notForProfit = 'NOT_FOR_PROFIT',\n}\n\nconst businessCategoryLabels = new Map([\n [BusinessCategory.automotiveIndustry, 'Automotive Industry'],\n [BusinessCategory.agriculture, 'Agriculture'],\n [BusinessCategory.banking, 'Banking'],\n [BusinessCategory.consumer, 'Consumer'],\n [BusinessCategory.education, 'Education'],\n [BusinessCategory.engineering, 'Engineering'],\n [BusinessCategory.energy, 'Energy'],\n [BusinessCategory.oilAndGas, 'Oil and Gas'],\n [BusinessCategory.fastMovingConsumerGoods, 'Fast Moving Consumer Goods'],\n [BusinessCategory.financial, 'Financial'],\n [BusinessCategory.fintech, 'Fintech'],\n [BusinessCategory.foodAndBeverage, 'Food and Beverage'],\n [BusinessCategory.government, 'Government'],\n [BusinessCategory.healthcare, 'Healthcare'],\n [BusinessCategory.hospitality, 'Hospitality'],\n [BusinessCategory.insurance, 'Insurance'],\n [BusinessCategory.legal, 'Legal'],\n [BusinessCategory.manufacturing, 'Manufacturing'],\n [BusinessCategory.media, 'Media'],\n [BusinessCategory.online, 'Online'],\n [BusinessCategory.rawMaterials, 'Raw Materials'],\n [BusinessCategory.realEstate, 'Real Estate'],\n [BusinessCategory.religion, 'Religion'],\n [BusinessCategory.retail, 'Retail'],\n [BusinessCategory.jewelry, 'Jewelry'],\n [BusinessCategory.technology, 'Technology'],\n [BusinessCategory.telecommunications, 'Telecommunications'],\n [BusinessCategory.transportation, 'Transportation'],\n [BusinessCategory.travel, 'Travel'],\n [BusinessCategory.electronics, 'Electronics'],\n [BusinessCategory.notForProfit, 'Not for Profit'],\n]);\n\nexport const businessCategoryToLabel = (businessCategory: BusinessCategory): string => {\n return businessCategoryLabels.get(businessCategory);\n};\n\nexport enum Region {\n africa = 'AFRICA',\n asia = 'ASIA',\n europe = 'EUROPE',\n latinAmerica = 'LATIN_AMERICA',\n usaAndCanada = 'USA_AND_CANADA',\n}\n\nconst regionLabels = new Map([\n [Region.africa, 'Africa'],\n [Region.asia, 'Asia'],\n [Region.europe, 'Europe'],\n [Region.latinAmerica, 'Latin America'],\n [Region.usaAndCanada, 'USA and Canada'],\n]);\n\nexport const regionToLabel = (region: Region): string => {\n return regionLabels.get(region);\n};\n\nexport enum Position {\n director = 'Director',\n gm = 'GM',\n vp = 'VP',\n ceo = 'CEO',\n cfo = 'CFO',\n generalCounsel = 'General Counsel',\n otherPosition = 'Other',\n}\n","export const NORTH_AMERICA_COUNTRIES = ['US', 'CA'];\n\nexport enum RegistrationStage {\n NotSubmitted = 0,\n ReviewingInfo = 1,\n RegistrationComplete = 2,\n DataError = 3,\n CampaignError = 4,\n}\n\nexport enum RegistrationTitle {\n NotApproved = 'Required information for US-based businesses',\n ApprovedStatus = 'Businesses registered for SMS',\n}\nexport enum RegistrationContent {\n NotApproved = 'To send SMS messages to customers, more details about your business are required. Update your business info to send SMS messages.',\n ApprovedStatus = 'You can now access SMS features. Contact support if you need to make changes to your authorized business representative information.',\n}\n","import { InjectionToken } from '@angular/core';\nimport { SmsRegistrationDependencies } from './interface';\n\nexport const SmsInjectionToken = new InjectionToken(\n 'dependencies for the sms registration',\n);\n","import { HttpResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport {\n A2PRegistrationApiService,\n A2PRegistrationInfoInterface,\n A2PRegistrationStatusInterface,\n BrandStatus,\n CreateA2PRegistrationInfoRequestInterface,\n GetA2PRegistrationInfoRequestInterface,\n GetA2PRegistrationInfoResponseInterface,\n GetLatestA2PRegistrationStatusRequestInterface,\n MessagingCampaignStatus,\n OwnerType,\n ValidationStatus,\n} from '@vendasta/smsv2';\nimport { UpsertA2PRegistrationInfoRequestInterface } from '@vendasta/smsv2/lib/_internal/interfaces/api.interface';\nimport { GetLatestA2PRegistrationStatusResponse } from '@vendasta/smsv2/lib/_internal/objects';\nimport {\n Observable,\n catchError,\n combineLatest,\n distinctUntilChanged,\n map,\n of,\n shareReplay,\n BehaviorSubject,\n} from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { SmsRegistrationDependencies } from '../interface';\nimport { Region } from '../sms-registration-form/types';\nimport { NORTH_AMERICA_COUNTRIES, RegistrationStage } from '../sms.constants';\nimport { SmsInjectionToken } from '../token';\n\nexport interface A2PRegistrationState {\n a2pRegistrationInfo: A2PRegistrationInfoInterface;\n a2pRegistrationStatus: A2PRegistrationStatusInterface;\n RegistrationStage: RegistrationStage;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SmsRegistrationService {\n private readonly A2PRegistrationState$$: BehaviorSubject =\n new BehaviorSubject({\n a2pRegistrationInfo: {} as A2PRegistrationInfoInterface,\n a2pRegistrationStatus: {} as A2PRegistrationStatusInterface,\n RegistrationStage: RegistrationStage.NotSubmitted,\n });\n\n public readonly A2PRegistrationState$: Observable = this.A2PRegistrationState$$.asObservable();\n\n public readonly registrationStage$: Observable = this.A2PRegistrationState$$.asObservable().pipe(\n map((state) => state.RegistrationStage),\n );\n\n public readonly a2PRegistrationInfo$: Observable = this.A2PRegistrationState$$.pipe(\n map((state) => state.a2pRegistrationInfo),\n );\n\n public readonly a2pRegistrationStatus$: Observable = this.A2PRegistrationState$$.pipe(\n map((state) => state.a2pRegistrationStatus),\n );\n\n public readonly showExternalBanner$: Observable = this.registrationStage$.pipe(\n map((stage) => stage === RegistrationStage.NotSubmitted || stage === RegistrationStage.DataError),\n shareReplay(1),\n );\n\n ownerId$: Observable;\n public ownerType: OwnerType = this.config.ownerType;\n\n constructor(\n private a2pRegistrationApiService: A2PRegistrationApiService,\n private accountGroupService: AccountGroupService,\n @Inject(SmsInjectionToken) private readonly config: SmsRegistrationDependencies,\n ) {\n this.ownerId$ = this.config.ownerId$.pipe(distinctUntilChanged(), shareReplay(1));\n\n const existingA2PRegistrationInfo$ = this.ownerId$.pipe(\n switchMap((ownerId) => {\n const request = {\n ownerId: ownerId,\n } as GetA2PRegistrationInfoRequestInterface;\n return this.a2pRegistrationApiService.getA2pRegistrationInfo(request).pipe(\n catchError(() => {\n console.error('Error getting A2P registration info');\n return of({} as GetA2PRegistrationInfoResponseInterface);\n }),\n );\n }),\n );\n\n const existingA2PRegistrationStatus$ = combineLatest([this.config.ownerId$, this.config.subaccountID$]).pipe(\n switchMap(([ownerId, subaccountId]) => {\n if (!ownerId || !subaccountId) {\n return of({} as GetLatestA2PRegistrationStatusResponse);\n }\n const request = {\n ownerId: ownerId,\n subaccountId: subaccountId,\n } as GetLatestA2PRegistrationStatusRequestInterface;\n return this.a2pRegistrationApiService.getLatestA2pRegistrationStatus(request).pipe(\n catchError((e) => {\n console.error('getLatestA2pRegistrationStatus error:', e);\n return of({} as GetLatestA2PRegistrationStatusResponse);\n }),\n );\n }),\n map((response) => response.status),\n catchError(() => of({} as A2PRegistrationStatusInterface)),\n );\n\n combineLatest([existingA2PRegistrationInfo$, existingA2PRegistrationStatus$]).subscribe(\n ([a2pRegistrationInfo, a2pRegistrationStatus]) => {\n const a2pInfo = a2pRegistrationInfo?.a2pRegistrationInfo ?? ({} as A2PRegistrationInfoInterface);\n const isSubmitted = !!a2pInfo?.submitted && a2pInfo?.submitted > new Date(2023, 1, 1);\n this.A2PRegistrationState$$.next({\n a2pRegistrationInfo: a2pInfo,\n a2pRegistrationStatus: a2pRegistrationStatus,\n RegistrationStage: this.getRegistrationStage(a2pRegistrationStatus, isSubmitted),\n });\n },\n );\n }\n\n private getRegistrationStage(\n a2pRegistrationStatus: A2PRegistrationStatusInterface,\n isSubmitted: boolean,\n ): RegistrationStage {\n const secondaryBusinessProfileStatus =\n a2pRegistrationStatus?.secondaryBusinessProfile?.status ?? ValidationStatus.VALIDATION_STATUS_UNSPECIFIED;\n const trustBundleStatus =\n a2pRegistrationStatus?.trustBundle?.status ?? ValidationStatus.VALIDATION_STATUS_UNSPECIFIED;\n const brandStatus = a2pRegistrationStatus?.brand?.status ?? BrandStatus.BRAND_STATUS_UNSPECIFIED;\n const messagingCampaignStatus =\n a2pRegistrationStatus?.messagingCampaign?.status ?? MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED;\n\n if (!isSubmitted) {\n return RegistrationStage.NotSubmitted;\n }\n\n if (\n secondaryBusinessProfileStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n trustBundleStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n brandStatus === BrandStatus.BRAND_STATUS_FAILED\n ) {\n return RegistrationStage.DataError;\n }\n\n // This is separate because the data in the form is acceptable, but it failed for other reasons outside the user's control\n if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_FAILED) {\n return RegistrationStage.CampaignError;\n }\n\n if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_VERIFIED) {\n return RegistrationStage.RegistrationComplete;\n }\n\n return RegistrationStage.ReviewingInfo;\n }\n\n public upsertA2pRegistration(request: UpsertA2PRegistrationInfoRequestInterface): Observable> {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n request.ownerId = ownerId;\n request.ownerType = this.config.ownerType;\n return this.a2pRegistrationApiService.upsertA2pRegistrationInfo(request).pipe(\n map((response) => {\n this.updateA2pRegistrationInfo(request);\n return response;\n }),\n );\n }),\n );\n }\n\n private updateA2pRegistrationInfo(\n a2pRegistrationInfo: CreateA2PRegistrationInfoRequestInterface | UpsertA2PRegistrationInfoRequestInterface,\n ): void {\n const currentState = this.A2PRegistrationState$$.getValue();\n this.A2PRegistrationState$$.next({\n ...currentState,\n a2pRegistrationInfo: {\n ...currentState.a2pRegistrationInfo,\n ...a2pRegistrationInfo,\n submitted: a2pRegistrationInfo.submitted ? new Date() : currentState.a2pRegistrationInfo.submitted,\n },\n RegistrationStage: this.getRegistrationStage(currentState.a2pRegistrationStatus, true),\n });\n }\n\n getAccountGroupInfo$(): Observable {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n return this.accountGroupService\n .get(ownerId, new ProjectionFilter({ napData: true }))\n .pipe(catchError(() => of({} as AccountGroup)));\n }),\n );\n }\n\n getPrefillA2PFormInfo(): Observable {\n return this.a2PRegistrationInfo$.pipe(\n switchMap((a2PRegistrationInfo) => {\n //If there is submitted A2P form data from different app\n if (a2PRegistrationInfo && Object.keys(a2PRegistrationInfo).length > 0) {\n return of(a2PRegistrationInfo);\n }\n\n if (this.ownerType === OwnerType.OWNER_TYPE_ACCOUNT_GROUP) {\n return this.getAccountGroupInfo$().pipe(\n map((accountGroupInfo) => {\n return {\n business: {\n regionOfOperation: NORTH_AMERICA_COUNTRIES.includes(accountGroupInfo?.napData?.country)\n ? Region.usaAndCanada\n : '',\n streetAddress: accountGroupInfo?.napData?.address,\n streetAddressSecondary: accountGroupInfo?.napData?.address2,\n state: accountGroupInfo?.napData?.state,\n city: accountGroupInfo?.napData?.city,\n postalCode: accountGroupInfo?.napData?.zip,\n websiteUrl: accountGroupInfo?.napData?.website,\n },\n } as A2PRegistrationInfoInterface;\n }),\n );\n }\n\n return of({} as A2PRegistrationInfoInterface);\n }),\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { LearnMoreModalComponent } from './learn-more-modal/learn-more-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ProgressTrackerComponent, StageStatus, Status } from '../progress-tracker/progress-tracker.component';\nimport { map, Observable } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { RegistrationStage } from '../sms.constants';\nimport {\n A2PRegistrationStatusInterface,\n BrandStatus,\n MessagingCampaignStatus,\n ValidationStatus,\n} from '@vendasta/smsv2';\n\n@Component({\n selector: 'sms-info-banner',\n standalone: true,\n imports: [CommonModule, MatCardModule, GalaxyBadgeModule, MatButtonModule, TranslateModule, ProgressTrackerComponent],\n templateUrl: './info-banner.component.html',\n styleUrls: ['./info-banner.component.scss'],\n})\nexport class InfoBannerComponent {\n stages$: Observable;\n constructor(\n private dialog: MatDialog,\n private readonly smsRegistrationService: SmsRegistrationService,\n ) {\n this.stages$ = this.smsRegistrationService.A2PRegistrationState$.pipe(\n map((state) => {\n if (state.RegistrationStage === RegistrationStage.NotSubmitted) {\n return [\n { name: 'Submit information', status: Status.NotStarted },\n { name: 'Information review', status: Status.NotStarted },\n { name: 'Final approval', status: Status.NotStarted },\n ];\n }\n\n return [\n { name: 'Information submitted', status: Status.Completed },\n this.getInformationStageStatus(state?.a2pRegistrationStatus),\n this.getMessagingCampaignStageStatus(state?.a2pRegistrationStatus),\n ];\n }),\n );\n }\n\n openLearnMoreModal(): void {\n this.dialog.open(LearnMoreModalComponent, { width: '600px' });\n }\n\n private getInformationStageStatus(registrationStatus: A2PRegistrationStatusInterface): StageStatus {\n let informationStatus: Status = Status.InProgress; // Default to in progress, this assumes info has been submitted\n const secondaryBusinessProfileStatus = registrationStatus?.secondaryBusinessProfile?.status;\n const trustBundleStatus = registrationStatus?.trustBundle?.status;\n const brandStatus = registrationStatus?.brand?.status;\n\n if (brandStatus === BrandStatus.BRAND_STATUS_APPROVED) {\n informationStatus = Status.Completed;\n } else if (\n secondaryBusinessProfileStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n trustBundleStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n brandStatus === BrandStatus.BRAND_STATUS_FAILED\n ) {\n informationStatus = Status.Failed;\n }\n\n switch (informationStatus) {\n case Status.InProgress:\n return { name: 'Information review', status: Status.InProgress };\n case Status.Completed:\n return { name: 'Information approved', status: Status.Completed };\n case Status.Failed:\n return { name: 'Information rejected', status: Status.Failed };\n default:\n return { name: 'Information review', status: Status.InProgress };\n }\n }\n\n private getMessagingCampaignStageStatus(registrationStatus: A2PRegistrationStatusInterface): StageStatus {\n const informationStageStatus = this.getInformationStageStatus(registrationStatus);\n let campaignStatus: Status =\n informationStageStatus.status === Status.Completed ? Status.InProgress : Status.NotStarted;\n\n const messagingCampaignStatus = registrationStatus?.messagingCampaign?.status;\n if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_VERIFIED) {\n campaignStatus = Status.Completed;\n } else if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_FAILED) {\n campaignStatus = Status.Failed;\n } else if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_PENDING) {\n campaignStatus = Status.InProgress;\n }\n\n switch (campaignStatus) {\n case Status.InProgress:\n return { name: 'Final approval', status: Status.InProgress };\n case Status.Completed:\n return { name: 'Approved', status: Status.Completed };\n case Status.Failed:\n return { name: 'Not approved', status: Status.Failed };\n default:\n return { name: 'Final approval', status: Status.NotStarted };\n }\n }\n}\n","\n \n Registration for messaging US recipients \n \n To send SMS messages to recipients located in the US, provide business details below\n \n \n \n \n \n \n \n \n\n","import { Component } from '@angular/core';\nimport { map, Observable, of, from, filter } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LearnMoreModalComponent } from '../info-banner/learn-more-modal/learn-more-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { RegistrationContent, RegistrationStage, RegistrationTitle } from '../sms.constants';\nimport { ParticipantType, SmsService } from '@vendasta/smsv2';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { switchMap, catchError, shareReplay } from 'rxjs/operators';\n\ntype SmsRegistrationCardData = {\n statusBadgeText: 'Setup required' | 'Rejected' | 'In progress' | 'Active';\n statusBadgeColor: 'red' | 'blue' | 'green';\n buttonText: 'Register now' | 'Business info' | 'Update business info' | 'See details' | '';\n buttonType: 'primary' | 'basic' | '';\n title: RegistrationTitle.ApprovedStatus | RegistrationTitle.NotApproved;\n content: RegistrationContent.ApprovedStatus | RegistrationContent.NotApproved;\n};\n\ntype SMSNumberCardData = {\n statusBadgeText: 'Active';\n statusBadgeColor: 'green';\n};\n\nconst RegistrationStageToCardData: Record = {\n [RegistrationStage.NotSubmitted]: {\n statusBadgeText: 'Setup required',\n statusBadgeColor: 'red',\n buttonText: 'Register now',\n buttonType: 'primary',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n [RegistrationStage.ReviewingInfo]: {\n statusBadgeText: 'In progress',\n statusBadgeColor: 'blue',\n buttonText: 'Business info',\n buttonType: 'basic',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n [RegistrationStage.DataError]: {\n statusBadgeText: 'Rejected',\n statusBadgeColor: 'red',\n buttonText: 'Update business info',\n buttonType: 'primary',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n [RegistrationStage.CampaignError]: {\n statusBadgeText: 'Rejected',\n statusBadgeColor: 'red',\n buttonText: 'See details',\n buttonType: 'primary',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n // message campaign registration approved\n [RegistrationStage.RegistrationComplete]: {\n statusBadgeText: 'Active',\n statusBadgeColor: 'green',\n buttonText: '',\n buttonType: '',\n title: RegistrationTitle.ApprovedStatus,\n content: RegistrationContent.ApprovedStatus,\n },\n};\n\nconst SMSNumberToCardData: SMSNumberCardData = {\n statusBadgeText: 'Active',\n statusBadgeColor: 'green',\n};\n\n@Component({\n selector: 'sms-registration-card',\n templateUrl: './sms-registration-card.component.html',\n styleUrls: ['./sms-registration-card.component.scss'],\n})\nexport class SmsRegistrationCardComponent {\n constructor(\n private smsRegistrationService: SmsRegistrationService,\n private dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute,\n private smsService: SmsService,\n private environmentService: EnvironmentService,\n ) {}\n\n smsNumber$: Observable = this.smsRegistrationService.ownerId$.pipe(\n switchMap((internalId) => {\n return from(\n this.smsService.getAccountInfo({\n internalId,\n type: ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n }),\n );\n }),\n catchError((error) => {\n console.log('Error while getting SMS number:', error);\n return of(null);\n }),\n map((res) => res?.phoneNumber || null),\n filter((phoneNumber) => phoneNumber !== null),\n );\n\n accountGroupInfo$ = this.smsRegistrationService\n .getAccountGroupInfo$()\n .pipe(shareReplay({ bufferSize: 1, refCount: false }));\n\n country$: Observable = this.accountGroupInfo$.pipe(map((info) => info.napData.country));\n\n smsCardData$: Observable = this.country$.pipe(\n switchMap((country) => {\n if (country === 'CA') {\n return of(SMSNumberToCardData);\n }\n return this.smsRegistrationService.registrationStage$.pipe(map((stage) => RegistrationStageToCardData[stage]));\n }),\n );\n\n showPopover = false;\n\n openLearnMoreModal(): void {\n this.dialog.open(LearnMoreModalComponent, { width: '600px' });\n }\n\n closeInfoPopover(): void {\n this.showPopover = false;\n }\n\n toggleInfoPopover(): void {\n this.showPopover = !this.showPopover;\n }\n\n redirectToSMSRegistration(): void {\n this.router.navigate(['./sms-registration'], { relativeTo: this.route });\n }\n\n getLogoImage(): string {\n const env = this.environmentService.getEnvironment();\n if (env === Environment.PROD) {\n return 'https://vbc-prod.appspot.com/static/images/file-upload.png';\n }\n return 'https://vbc-demo.appspot.com/static/images/file-upload.png';\n }\n}\n","\n \n \n \"avatar\"\n {{ 'SMS_REGISTRATION.CARD.YOUR_SMS_NUMBER' | translate }}\n
\n \n {{ smsCardData.statusBadgeText }}\n \n
\n
\n \n
\n
\n

Assigned number: {{ (smsNumber$ | async) || '-' }}

\n \n \n Assigned number\n
\n

{{ 'SMS_REGISTRATION.CARD.ASSIGNED_NUMBER_DESCRIPTION' | translate }}

\n
\n \n \n \n \n
\n
\n \n
\n
{{ smsCardData.title }}
\n
\n
\n {{ smsCardData.content }}\n Learn more\n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { RegistrationStage } from '../sms.constants';\nimport { LearnMoreModalComponent } from '../info-banner/learn-more-modal/learn-more-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'sms-registration-error-banner',\n templateUrl: './sms-registration-error-banner.component.html',\n styleUrls: ['./sms-registration-error-banner.component.scss'],\n})\nexport class SmsRegistrationErrorBannerComponent implements OnInit {\n registrationStage$: Observable;\n\n protected readonly RegistrationStage = RegistrationStage;\n\n constructor(private smsRegistrationService: SmsRegistrationService, private dialog: MatDialog) {}\n\n ngOnInit() {\n this.registrationStage$ = this.smsRegistrationService.registrationStage$;\n }\n openLearnMoreModal(): void {\n this.dialog.open(LearnMoreModalComponent, { width: '600px' });\n }\n}\n","\n \n {{ 'SMS_REGISTRATION.ALERT.REJECTED_TITLE' | translate }} -\n {{ 'SMS_REGISTRATION.ALERT.REJECTED_SUGGESTION' | translate }}\n \n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BusinessCategory, businessCategoryToLabel } from '../types';\n\n@Pipe({\n name: 'businessCategoryToLabel',\n standalone: true,\n})\nexport class BusinessCategoryToLabelPipe implements PipeTransform {\n transform(businessCategory: BusinessCategory): string {\n return businessCategoryToLabel(businessCategory);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Region, regionToLabel } from '../types';\n\n@Pipe({\n name: 'regionToLabel',\n standalone: true,\n})\nexport class RegionToLabelPipe implements PipeTransform {\n transform(region: Region): string {\n return regionToLabel(region);\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'sms-comfirmation-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './confirmation-modal.component.html',\n styleUrls: ['./confirmation-modal.component.scss'],\n})\nexport class ConfirmationModalComponent {}\n","

Submit business information?

\n\n

\n You will not be able to edit this information after submitting. Make sure that all the information you've provided\n is accurate.\n

\n
\n\n \n \n\n","import { Component, DestroyRef, OnDestroy, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n A2PRegistrationInfoInterface,\n A2PRegistrationStatusInterface,\n AuthorizedRepresentativeInterface,\n BrandStatus,\n BusinessInterface,\n DataField,\n RegistrationIdentifierInterface,\n UpsertA2PRegistrationInfoRequestInterface,\n ValidationStatus,\n} from '@vendasta/smsv2';\nimport { Subscription, combineLatest, take } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { RegistrationStage } from '../sms.constants';\nimport { ConfirmationModalComponent } from './comfirmation-dialog/confirmation-modal.component';\nimport { BusinessCategory, BusinessType, Position, Region } from './types';\n\n// The format for american EINsn(Employer Identification Number) is XX-XXXXXXX\nconst EIN_REGEX = /^\\d{2}-\\d{7}$/;\n\n// The format of the phone number is +1 (XXX) XXX-XXXX\nconst PHONE_NUMBER_REGEX = /^\\+\\d{1,3}-\\d{3}-\\d{3}-\\d{4}$/;\n\n// The format of zip codes is either XXXXX or XXXXX-XXXX\nconst ZIP_CODE_REGEX = /^\\d{5}(?:-\\d{4})?$/;\n\n// IdentifierTypeEIN USA: Employer Identification Number.\nconst IdentifierTypeEIN = 'EIN';\n\nconst additionalAddressLine = 'additionalAddressLine';\nconst businessRegistrationNumber = 'businessRegistrationNumber';\nconst businessName = 'businessName';\n\n@Component({\n selector: 'sms-registration-form',\n templateUrl: './sms-registration-form.component.html',\n styleUrls: ['./sms-registration-form.component.scss'],\n})\nexport class SmsRegistrationFormComponent implements OnInit, OnDestroy {\n BusinessCategories = Object.values(BusinessCategory);\n BusinessTypes = Object.values(BusinessType);\n Regions = Object.values(Region);\n JobPositions = Object.values(Position);\n\n smsForm: FormGroup;\n formLocked = false;\n registrationStage: RegistrationStage = RegistrationStage.NotSubmitted;\n initialRegistrationFormInfo: Map = new Map();\n fieldsWithIssues: string[] = [];\n groupOfSomeValuesNeedToChange: string[] = [];\n customValidatorsMap = new Map();\n\n subscriptions: Subscription[] = [];\n\n fieldWithIssuesToFormFieldsMapping = new Map([\n [DataField.DATA_FIELD_LEGAL_BUSINESS_NAME, 'businessName'],\n [DataField.DATA_FIELD_BUSINESS_CATEGORY, 'businessCategory'],\n [DataField.DATA_FIELD_BUSINESS_TYPE, 'businessType'],\n [DataField.DATA_FIELD_REGION_OF_OPERATION, 'regionOfOperation'],\n [DataField.DATA_FIELD_BUSINESS_REGISTRATION_NUMBER, 'businessRegistrationNumber'],\n [DataField.DATA_FIELD_STREET_ADDRESS, 'address'],\n [DataField.DATA_FIELD_STREET_ADDRESS_SECONDARY, 'additionalAddressLine'],\n [DataField.DATA_FIELD_CITY, 'city'],\n [DataField.DATA_FIELD_STATE, 'state'],\n [DataField.DATA_FIELD_POSTAL_CODE, 'zipCode'],\n [DataField.DATA_FIELD_WEBSITE_URL, 'website'],\n [DataField.DATA_FIELD_COUNTRY, 'country'],\n [DataField.DATA_FIELD_FIRST_NAME, 'firstName'],\n [DataField.DATA_FIELD_LAST_NAME, 'lastName'],\n [DataField.DATA_FIELD_JOB_POSITION, 'jobPosition'],\n [DataField.DATA_FIELD_BUSINESS_TITLE, 'businessTitle'],\n [DataField.DATA_FIELD_EMAIL, 'email'],\n [DataField.DATA_FIELD_PHONE_NUMBER, 'phoneNumber'],\n ]);\n\n constructor(\n private formBuilder: FormBuilder,\n private smsRegistrationService: SmsRegistrationService,\n private snackbarService: SnackbarService,\n private modal: MatDialog,\n private destroyRef: DestroyRef,\n ) {\n this.smsForm = this.formBuilder.group({\n businessName: ['', Validators.maxLength(64)],\n businessCategory: [''],\n businessType: [''],\n regionOfOperation: [''],\n businessRegistrationNumber: ['', Validators.pattern(EIN_REGEX)],\n address: [''],\n additionalAddressLine: [''],\n state: [''],\n city: [''],\n zipCode: ['', Validators.pattern(ZIP_CODE_REGEX)],\n website: [''],\n firstName: [''],\n lastName: [''],\n jobPosition: [''],\n businessTitle: [''],\n email: ['', Validators.email],\n phoneNumber: ['', Validators.pattern(PHONE_NUMBER_REGEX)],\n });\n }\n\n ngOnInit(): void {\n this.getRegistration();\n const sub = this.smsForm.controls['jobPosition'].valueChanges.subscribe((value: string) => {\n const businessTitle = this.smsForm.value.businessTitle;\n const businessTitleInJobPositions = this.JobPositions.some((p) => p === businessTitle);\n\n if (value !== Position.otherPosition && (businessTitle === '' || businessTitleInJobPositions)) {\n this.smsForm.controls['businessTitle'].patchValue(value);\n } else if (value === Position.otherPosition && businessTitleInJobPositions) {\n this.smsForm.controls['businessTitle'].patchValue('');\n }\n });\n this.subscriptions.push(sub);\n\n Object.keys(this.smsForm.controls).forEach((key) => {\n this.subscriptions.push(\n this.smsForm.controls[key].valueChanges.subscribe(() => {\n if (this.groupOfSomeValuesNeedToChange.includes(key)) {\n this.groupOfSomeValuesNeedToChange.forEach((fieldName) => {\n this.smsForm.controls[fieldName].updateValueAndValidity({ emitEvent: false });\n });\n }\n }),\n );\n });\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n submitRegistrationForm(): void {\n this.toggleSubmitValidators(true);\n if (this.smsForm.invalid) {\n this.snackbarService.openErrorSnack('Invalid data for submission');\n return;\n }\n\n this.modal\n .open(ConfirmationModalComponent, { width: '420px' })\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result) {\n this.upsertData(true);\n }\n });\n }\n\n saveChanges(): void {\n // Don't show errors for empty required fields & unchanged error fields, when doing partial save\n this.toggleSubmitValidators(false);\n\n // Check for formatting errors\n const hasFormatErrors = Object.keys(this.smsForm.controls).some((key) => {\n const errors = this.smsForm.controls[key].errors;\n if (errors === null) {\n return;\n }\n\n return Object.keys(errors).some((errorKey) => errorKey !== 'required');\n });\n\n // If there are formatting errors don't save the form\n if (hasFormatErrors) {\n this.snackbarService.openErrorSnack('Invalid format for some fields');\n\n return;\n }\n\n this.upsertData(false);\n }\n\n upsertData(isSubmitted: boolean): void {\n const form = this.smsForm.value;\n // TODO: get country from form\n const country = 'US';\n\n const request = {\n business: {\n legalName: form.businessName,\n businessType: form.businessType,\n industry: form.businessCategory,\n registrationIdentifier: {\n identifierType: IdentifierTypeEIN,\n identifier: form.businessRegistrationNumber,\n } as RegistrationIdentifierInterface,\n regionOfOperation: form.regionOfOperation,\n websiteUrl: form.website,\n socialMediaProfileUrls: [],\n streetAddress: form.address,\n streetAddressSecondary: form.additionalAddressLine,\n city: form.city,\n state: form.state,\n postalCode: form.zipCode,\n country: country,\n } as BusinessInterface,\n authorizedRepresentative: {\n firstName: form.firstName,\n lastName: form.lastName,\n email: form.email,\n phoneNumber: form.phoneNumber,\n businessTitle: form.businessTitle,\n jobPosition: form.jobPosition,\n } as AuthorizedRepresentativeInterface,\n submitted: isSubmitted,\n } as UpsertA2PRegistrationInfoRequestInterface;\n\n this.smsRegistrationService.upsertA2pRegistration(request).subscribe(\n () => {\n this.snackbarService.openWithOptions('Registration Saved Successfully', {\n panelClass: ['success-snackbar'],\n });\n if (isSubmitted) {\n this.lockForm();\n }\n },\n () => {\n this.snackbarService.openErrorSnack('Error Saving Registration');\n },\n );\n }\n\n getRegistration(): void {\n combineLatest([\n this.smsRegistrationService.a2PRegistrationInfo$,\n this.smsRegistrationService.registrationStage$,\n this.smsRegistrationService.a2pRegistrationStatus$,\n this.smsRegistrationService.getPrefillA2PFormInfo(),\n ])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(\n ([a2pRegistrationInfo, registrationStage, registrationStatus, a2PFormInfo]) => {\n this.registrationStage = registrationStage;\n this.prefillFormWithA2PFormInfo(a2PFormInfo as A2PRegistrationInfoInterface);\n\n if (\n registrationStage !== RegistrationStage.NotSubmitted &&\n registrationStage !== RegistrationStage.DataError\n ) {\n this.lockForm();\n } else {\n this.unlockForm();\n }\n\n if (registrationStage === RegistrationStage.DataError) {\n this.initialRegistrationFormInfo = this.getInitialRegistrationFormInfo(a2pRegistrationInfo);\n this.fieldsWithIssues = this.getFormFieldsWithIssues(registrationStatus);\n this.groupOfSomeValuesNeedToChange = this.getGroupOfSomeValuesNeedToChange(registrationStatus);\n this.fieldsWithIssues.forEach((fieldName) => {\n const control = this.smsForm.get(fieldName);\n if (control) {\n control.markAsTouched();\n }\n });\n this.groupOfSomeValuesNeedToChange.forEach((fieldName) => {\n const control = this.smsForm.get(fieldName);\n if (control) {\n control.markAsTouched();\n }\n });\n this.toggleSubmitValidators(true);\n }\n },\n (error) => {\n if (error.status !== 404) {\n this.snackbarService.openErrorSnack('Error Fetching Registration');\n }\n },\n );\n }\n\n lockForm(): void {\n this.formLocked = true;\n this.smsForm.disable();\n }\n\n unlockForm(): void {\n this.formLocked = false;\n this.smsForm.enable();\n }\n\n toggleSubmitValidators(on: boolean): void {\n Object.keys(this.smsForm.controls).forEach((key) => {\n const control = this.smsForm.controls[key];\n if (on) {\n if (key !== additionalAddressLine) {\n control.addValidators(Validators.required);\n }\n if (this.fieldsWithIssues.includes(key) && this.registrationStage === RegistrationStage.DataError) {\n const val = this.initialRegistrationFormInfo.get(key);\n if (val !== undefined) {\n const sameValueValidatorFn = this.sameValueValidator(val);\n control.addValidators(sameValueValidatorFn);\n this.customValidatorsMap.set(key, sameValueValidatorFn);\n }\n } else if (\n this.groupOfSomeValuesNeedToChange.includes(key) &&\n this.registrationStage === RegistrationStage.DataError\n ) {\n const someValueNeedsToChange = this.someValueNeedsToChangeValidator(this.groupOfSomeValuesNeedToChange);\n\n control.addValidators(someValueNeedsToChange);\n this.customValidatorsMap.set(key, someValueNeedsToChange);\n }\n } else {\n control.removeValidators(Validators.required);\n const customValidatorFn = this.customValidatorsMap.get(key);\n if (customValidatorFn) {\n control.removeValidators(customValidatorFn);\n this.customValidatorsMap.delete(key);\n }\n }\n\n control.updateValueAndValidity();\n });\n }\n\n getInitialRegistrationFormInfo(a2PRegistrationInfo: A2PRegistrationInfoInterface): Map {\n const result = new Map();\n result.set('businessName', a2PRegistrationInfo?.business?.legalName || '');\n result.set('businessCategory', a2PRegistrationInfo?.business?.industry || '');\n result.set('businessType', a2PRegistrationInfo?.business?.businessType || '');\n result.set('regionOfOperation', a2PRegistrationInfo?.business?.regionOfOperation || '');\n result.set('businessRegistrationNumber', a2PRegistrationInfo?.business?.registrationIdentifier?.identifier || '');\n result.set('address', a2PRegistrationInfo?.business?.streetAddress || '');\n result.set('additionalAddressLine', a2PRegistrationInfo?.business?.streetAddressSecondary || '');\n result.set('state', a2PRegistrationInfo?.business?.state || '');\n result.set('city', a2PRegistrationInfo?.business?.city || '');\n result.set('zipCode', a2PRegistrationInfo?.business?.postalCode || '');\n result.set('website', a2PRegistrationInfo?.business?.websiteUrl || '');\n result.set('firstName', a2PRegistrationInfo?.authorizedRepresentative?.firstName || '');\n result.set('lastName', a2PRegistrationInfo?.authorizedRepresentative?.lastName || '');\n result.set('jobPosition', a2PRegistrationInfo?.authorizedRepresentative?.jobPosition || '');\n result.set('businessTitle', a2PRegistrationInfo?.authorizedRepresentative?.businessTitle || '');\n result.set('email', a2PRegistrationInfo?.authorizedRepresentative?.email || '');\n result.set('phoneNumber', a2PRegistrationInfo?.authorizedRepresentative?.phoneNumber || '');\n return result;\n }\n\n sameValueValidator(originalFormFieldValue: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (originalFormFieldValue === control.value) {\n return { sameValueError: true };\n }\n return null;\n };\n }\n\n someValueNeedsToChangeValidator(groupOfFields: string[]) {\n const originalValuesMap: Map = new Map();\n groupOfFields.forEach((fieldName) => {\n const val = this.initialRegistrationFormInfo.get(fieldName);\n if (val === undefined) {\n return;\n }\n originalValuesMap.set(fieldName, val);\n });\n\n return (): ValidationErrors | null => {\n let passed = false;\n for (const [fieldName, originalValue] of originalValuesMap.entries()) {\n const c = this.smsForm.get(fieldName);\n if (c !== null && c.value !== originalValue) {\n passed = true;\n break;\n }\n }\n if (!passed) {\n return { groupValueError: true };\n }\n return null;\n };\n }\n\n getFormFieldsWithIssues(registrationStatus: A2PRegistrationStatusInterface): string[] {\n const result: string[] = [];\n if (registrationStatus === null || registrationStatus === undefined) {\n return [];\n }\n if (\n !!registrationStatus.secondaryBusinessProfile &&\n registrationStatus.secondaryBusinessProfile.status === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT &&\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues &&\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues.length > 0\n ) {\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues.forEach((field) => {\n const val = this.fieldWithIssuesToFormFieldsMapping.get(field);\n if (val !== undefined) {\n result.push(val);\n }\n });\n }\n if (\n !!registrationStatus.trustBundle &&\n registrationStatus.trustBundle.status === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT &&\n !!registrationStatus.trustBundle.fieldsWithIssues &&\n registrationStatus.trustBundle.fieldsWithIssues.length > 0\n ) {\n registrationStatus.trustBundle.fieldsWithIssues.forEach((field) => {\n const val = this.fieldWithIssuesToFormFieldsMapping.get(field);\n if (val !== undefined) {\n result.push(val);\n }\n });\n }\n\n return result;\n }\n\n getGroupOfSomeValuesNeedToChange(registrationStatus: A2PRegistrationStatusInterface): string[] {\n const result: string[] = [];\n if (registrationStatus === null || registrationStatus === undefined) {\n return [];\n }\n\n if (!!registrationStatus.brand && registrationStatus.brand.status === BrandStatus.BRAND_STATUS_FAILED) {\n result.push(businessRegistrationNumber);\n result.push(businessName);\n }\n\n return result;\n }\n\n prefillFormWithA2PFormInfo(a2pRegistrationInfo: A2PRegistrationInfoInterface): void {\n this.smsForm.patchValue({\n businessName: a2pRegistrationInfo?.business?.legalName,\n businessCategory: a2pRegistrationInfo?.business?.industry,\n businessType: a2pRegistrationInfo?.business?.businessType,\n regionOfOperation: a2pRegistrationInfo?.business?.regionOfOperation,\n businessRegistrationNumber: a2pRegistrationInfo?.business?.registrationIdentifier?.identifier,\n address: a2pRegistrationInfo?.business?.streetAddress,\n additionalAddressLine: a2pRegistrationInfo?.business?.streetAddressSecondary,\n state: a2pRegistrationInfo?.business?.state,\n city: a2pRegistrationInfo?.business?.city,\n zipCode: a2pRegistrationInfo?.business?.postalCode,\n website: a2pRegistrationInfo?.business?.websiteUrl,\n firstName: a2pRegistrationInfo?.authorizedRepresentative?.firstName,\n lastName: a2pRegistrationInfo?.authorizedRepresentative?.lastName,\n jobPosition: a2pRegistrationInfo?.authorizedRepresentative?.jobPosition,\n businessTitle: a2pRegistrationInfo?.authorizedRepresentative?.businessTitle,\n email: a2pRegistrationInfo?.authorizedRepresentative?.email,\n phoneNumber: a2pRegistrationInfo?.authorizedRepresentative?.phoneNumber,\n });\n }\n}\n","
\n
\n \n \n
\n Business information\n lock\n
\n
\n\n \n \n \n \n Legal business name\n \n \n \n This must be the same name your business uses for tax purposes. For example: Roadside Coffee Inc.\n \n \n Business name should be maximum of 64 characters.\n \n \n\n \n \n \n Business category\n \n \n \n {{ businessCategory | businessCategoryToLabel }}\n \n \n \n\n \n \n \n Business type\n \n \n \n {{ businessType }}\n \n \n \n\n \n \n \n Country/region\n \n \n {{ region | regionToLabel }}\n \n \n\n \n \n \n Business registration number\n \n \n \n For US-based companies, this must be your business EIN number\n \n \n For US-based companies, this must be your business EIN number\n \n \n\n \n \n \n Address\n \n \n \n\n \n \n \n Additional address line\n \n \n \n\n \n \n \n \n State\n \n \n \n\n \n \n \n City\n \n \n \n \n\n \n \n \n Zip Code\n \n \n \n Not a valid zip code\n \n \n\n \n \n \n Website\n \n \n If you don't have a business website, provide an online listing\n \n \n
\n\n \n \n
\n Authorized business representative\n lock\n
\n
\n \n \n \n \n \n First name\n \n \n \n\n \n \n \n Last name\n \n \n \n \n\n \n \n \n Job position\n \n \n \n {{ jobPosition }}\n \n \n \n\n \n \n \n Title\n \n \n For example CEO, CTO, Manager\n \n\n \n \n \n Email\n \n \n Email of Authorized Business Representative\n \n Not a valid email\n \n \n\n \n \n \n Phone number\n \n \n \n Best way to contact the authorized business representative. Required format +1-123-456-7890\n \n \n Required format +1-123-456-7890\n \n \n \n
\n
\n\n
\n \n\n \n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sms-registration',\n templateUrl: './sms-registration.component.html',\n styleUrls: ['./sms-registration.component.scss'],\n})\nexport class SmsRegistrationComponent {}\n","
\n \n \n \n
\n","{\n \"SMS_REGISTRATION\": {\n \"ALERT\": {\n \"BUSINESS_INFO_REQUIRED_TITLE\": \"Business information required\",\n \"MORE_DETAILS_SUGGESTION\": \"More details are needed about your business to send SMS messages to customers.\",\n \"UPDATE_INFO_ACTION_TITLE\": \"Update business info\",\n \"REJECTED_TITLE\": \"SMS registration rejected\",\n \"REJECTED_SUGGESTION\": \"update your information and try submitting again to access SMS features.\"\n },\n \"CARD\": {\n \"YOUR_SMS_NUMBER\": \"Your SMS number\",\n \"ASSIGNED_NUMBER_TITLE\": \"Assigned Number\",\n \"ASSIGNED_NUMBER_DESCRIPTION\": \"Your number is automatically assigned based on available options in your area.\"\n },\n \"INFO_BANNER\": {\n \"LEARN_MORE\": \"Learn more\"\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/sms',\n baseTranslation: En,\n }),\n ],\n})\nexport class SMSI18NModule {}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { InfoBannerComponent } from './info-banner/info-banner.component';\nimport { SmsRegistrationService } from './service/sms.service';\nimport { SmsRegistrationAlertComponent } from './sms-registration-alert/sms-registration-alert.component';\nimport { SmsRegistrationCardComponent } from './sms-registration-card/sms-registration-card.component';\nimport { SmsRegistrationErrorBannerComponent } from './sms-registration-error-banner/sms-registration-error-banner.component';\nimport { BusinessCategoryToLabelPipe } from './sms-registration-form/pipes/business-category-to-label.pipe';\nimport { RegionToLabelPipe } from './sms-registration-form/pipes/region-to-label.pipe';\nimport { SmsRegistrationFormComponent } from './sms-registration-form/sms-registration-form.component';\nimport { SmsRegistrationComponent } from './sms-registration/sms-registration.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SMSI18NModule } from './assets/i18n/sms-i18n.module';\nimport { ProgressTrackerComponent } from './progress-tracker/progress-tracker.component';\n\n@NgModule({\n declarations: [\n SmsRegistrationFormComponent,\n SmsRegistrationComponent,\n SmsRegistrationAlertComponent,\n SmsRegistrationErrorBannerComponent,\n SmsRegistrationCardComponent,\n ],\n exports: [SmsRegistrationComponent, SmsRegistrationAlertComponent, SmsRegistrationCardComponent],\n imports: [\n CommonModule,\n MatCardModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n ReactiveFormsModule,\n BusinessCategoryToLabelPipe,\n RegionToLabelPipe,\n MatIconModule,\n InfoBannerComponent,\n GalaxyAlertModule,\n MatChipsModule,\n GalaxyBadgeModule,\n GalaxyPopoverModule,\n CdkOverlayOrigin,\n TranslateModule,\n SMSI18NModule,\n ProgressTrackerComponent,\n ],\n providers: [SmsRegistrationService],\n})\nexport class SmsModule {}\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar TemplateType = /*#__PURE__*/function (TemplateType) {\n TemplateType[TemplateType[\"TEMPLATE_TYPE_GOLANG\"] = 0] = \"TEMPLATE_TYPE_GOLANG\";\n TemplateType[TemplateType[\"TEMPLATE_TYPE_DJANGO\"] = 1] = \"TEMPLATE_TYPE_DJANGO\";\n TemplateType[TemplateType[\"TEMPLATE_TYPE_GOLANG_TEXT\"] = 2] = \"TEMPLATE_TYPE_GOLANG_TEXT\";\n return TemplateType;\n}(TemplateType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$4(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$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass InflatedAccountGroupsAccountGroup {\n static fromProto(proto) {\n let m = new InflatedAccountGroupsAccountGroup();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.address !== 'undefined') {\n toReturn['address'] = this.address;\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.zip !== 'undefined') {\n toReturn['zip'] = this.zip;\n }\n return toReturn;\n }\n}\nclass AccountGroupsHydrationOption {\n static fromProto(proto) {\n let m = new AccountGroupsHydrationOption();\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.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedAppsApp {\n static fromProto(proto) {\n let m = new InflatedAppsApp();\n m = Object.assign(m, proto);\n if (proto.appKey) {\n m.appKey = AppKey.fromProto(proto.appKey);\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.appKey !== 'undefined' && this.appKey !== null) {\n toReturn['appKey'] = 'toApiJson' in this.appKey ? this.appKey.toApiJson() : this.appKey;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.editionName !== 'undefined') {\n toReturn['editionName'] = this.editionName;\n }\n return toReturn;\n }\n}\nclass AppKey {\n static fromProto(proto) {\n let m = new AppKey();\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.appId !== 'undefined') {\n toReturn['appId'] = this.appId;\n }\n if (typeof this.editionId !== 'undefined') {\n toReturn['editionId'] = this.editionId;\n }\n return toReturn;\n }\n}\nclass InflatedBrandingBrandingApps {\n static fromProto(proto) {\n let m = new InflatedBrandingBrandingApps();\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.identifier !== 'undefined') {\n toReturn['identifier'] = this.identifier;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass AppsHydrationOption {\n static fromProto(proto) {\n let m = new AppsHydrationOption();\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.appKeys !== 'undefined') {\n toReturn['appKeys'] = this.appKeys;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedBrandingBrandingAssets {\n static fromProto(proto) {\n let m = new InflatedBrandingBrandingAssets();\n m = Object.assign(m, proto);\n if (proto.logoUrl) {\n m.logoUrl = InflatedBrandingBrandingAssetsUrl.fromProto(proto.logoUrl);\n }\n if (proto.shortcutIconUrl) {\n m.shortcutIconUrl = InflatedBrandingBrandingAssetsUrl.fromProto(proto.shortcutIconUrl);\n }\n if (proto.faviconUrl) {\n m.faviconUrl = InflatedBrandingBrandingAssetsUrl.fromProto(proto.faviconUrl);\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.logoUrl !== 'undefined' && this.logoUrl !== null) {\n toReturn['logoUrl'] = 'toApiJson' in this.logoUrl ? this.logoUrl.toApiJson() : this.logoUrl;\n }\n if (typeof this.shortcutIconUrl !== 'undefined' && this.shortcutIconUrl !== null) {\n toReturn['shortcutIconUrl'] = 'toApiJson' in this.shortcutIconUrl ? this.shortcutIconUrl.toApiJson() : this.shortcutIconUrl;\n }\n if (typeof this.faviconUrl !== 'undefined' && this.faviconUrl !== null) {\n toReturn['faviconUrl'] = 'toApiJson' in this.faviconUrl ? this.faviconUrl.toApiJson() : this.faviconUrl;\n }\n return toReturn;\n }\n}\nclass InflatedBrandingBranding {\n static fromProto(proto) {\n let m = new InflatedBrandingBranding();\n m = Object.assign(m, proto);\n if (proto.assets) {\n m.assets = InflatedBrandingBrandingAssets.fromProto(proto.assets);\n }\n if (proto.apps) {\n m.apps = InflatedBrandingBrandingApps.fromProto(proto.apps);\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.primaryColor !== 'undefined') {\n toReturn['primaryColor'] = this.primaryColor;\n }\n if (typeof this.assets !== 'undefined' && this.assets !== null) {\n toReturn['assets'] = 'toApiJson' in this.assets ? this.assets.toApiJson() : this.assets;\n }\n if (typeof this.apps !== 'undefined' && this.apps !== null) {\n toReturn['apps'] = 'toApiJson' in this.apps ? this.apps.toApiJson() : this.apps;\n }\n return toReturn;\n }\n}\nclass BrandingHydrationOption {\n static fromProto(proto) {\n let m = new BrandingHydrationOption();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass HydrationOptions {\n static fromProto(proto) {\n let m = new HydrationOptions();\n m = Object.assign(m, proto);\n if (proto.accountGroups) {\n m.accountGroups = AccountGroupsHydrationOption.fromProto(proto.accountGroups);\n }\n if (proto.apps) {\n m.apps = AppsHydrationOption.fromProto(proto.apps);\n }\n if (proto.packages) {\n m.packages = PackagesHydrationOption.fromProto(proto.packages);\n }\n if (proto.branding) {\n m.branding = BrandingHydrationOption.fromProto(proto.branding);\n }\n if (proto.users) {\n m.users = UsersHydrationOption.fromProto(proto.users);\n }\n if (proto.salesActivities) {\n m.salesActivities = SalesActivitiesHydrationOption.fromProto(proto.salesActivities);\n }\n if (proto.partnerConfig) {\n m.partnerConfig = PartnerConfigHydrationOption.fromProto(proto.partnerConfig);\n }\n if (proto.task) {\n m.task = TasksHydrationOption.fromProto(proto.task);\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.accountGroups !== 'undefined' && this.accountGroups !== null) {\n toReturn['accountGroups'] = 'toApiJson' in this.accountGroups ? this.accountGroups.toApiJson() : this.accountGroups;\n }\n if (typeof this.apps !== 'undefined' && this.apps !== null) {\n toReturn['apps'] = 'toApiJson' in this.apps ? this.apps.toApiJson() : this.apps;\n }\n if (typeof this.packages !== 'undefined' && this.packages !== null) {\n toReturn['packages'] = 'toApiJson' in this.packages ? this.packages.toApiJson() : this.packages;\n }\n if (typeof this.branding !== 'undefined' && this.branding !== null) {\n toReturn['branding'] = 'toApiJson' in this.branding ? this.branding.toApiJson() : this.branding;\n }\n if (typeof this.users !== 'undefined' && this.users !== null) {\n toReturn['users'] = 'toApiJson' in this.users ? this.users.toApiJson() : this.users;\n }\n if (typeof this.salesActivities !== 'undefined' && this.salesActivities !== null) {\n toReturn['salesActivities'] = 'toApiJson' in this.salesActivities ? this.salesActivities.toApiJson() : this.salesActivities;\n }\n if (typeof this.partnerConfig !== 'undefined' && this.partnerConfig !== null) {\n toReturn['partnerConfig'] = 'toApiJson' in this.partnerConfig ? this.partnerConfig.toApiJson() : this.partnerConfig;\n }\n if (typeof this.task !== 'undefined' && this.task !== null) {\n toReturn['task'] = 'toApiJson' in this.task ? this.task.toApiJson() : this.task;\n }\n return toReturn;\n }\n}\nclass InflatedAccountGroups {\n static fromProto(proto) {\n let m = new InflatedAccountGroups();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedAccountGroupsAccountGroup.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedApps {\n static fromProto(proto) {\n let m = new InflatedApps();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedAppsApp.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedBranding {\n static fromProto(proto) {\n let m = new InflatedBranding();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = InflatedBrandingBranding.fromProto(proto.inflatedPropertyName);\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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedPacklages {\n static fromProto(proto) {\n let m = new InflatedPacklages();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedPacklagesPackage.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedSalesActivities {\n static fromProto(proto) {\n let m = new InflatedSalesActivities();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedSalesActivitiesSalesActivity.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedSalesConfig {\n static fromProto(proto) {\n let m = new InflatedSalesConfig();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = InflatedSalesConfigPartnerConfiguration.fromProto(proto.inflatedPropertyName);\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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedTasks {\n static fromProto(proto) {\n let m = new InflatedTasks();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedTasksTask.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedUsers {\n static fromProto(proto) {\n let m = new InflatedUsers();\n m = Object.assign(m, proto);\n if (proto.inflatedPropertyName) {\n m.inflatedPropertyName = proto.inflatedPropertyName.map(InflatedUsersUser.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.inflatedPropertyName !== 'undefined' && this.inflatedPropertyName !== null) {\n toReturn['inflatedPropertyName'] = 'toApiJson' in this.inflatedPropertyName ? this.inflatedPropertyName.toApiJson() : this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedPacklagesPackage {\n static fromProto(proto) {\n let m = new InflatedPacklagesPackage();\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.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass PackagesHydrationOption {\n static fromProto(proto) {\n let m = new PackagesHydrationOption();\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.packageIds !== 'undefined') {\n toReturn['packageIds'] = this.packageIds;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass PartnerConfigHydrationOption {\n static fromProto(proto) {\n let m = new PartnerConfigHydrationOption();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedSalesConfigPartnerConfiguration {\n static fromProto(proto) {\n let m = new InflatedSalesConfigPartnerConfiguration();\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.defaultCurrency !== 'undefined') {\n toReturn['defaultCurrency'] = this.defaultCurrency;\n }\n return toReturn;\n }\n}\nclass SalesActivitiesHydrationOption {\n static fromProto(proto) {\n let m = new SalesActivitiesHydrationOption();\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.salesActivityKeys !== 'undefined') {\n toReturn['salesActivityKeys'] = this.salesActivityKeys;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedSalesActivitiesSalesActivity {\n static fromProto(proto) {\n let m = new InflatedSalesActivitiesSalesActivity();\n m = Object.assign(m, proto);\n if (proto.salesActivityKey) {\n m.salesActivityKey = SalesActivityKey.fromProto(proto.salesActivityKey);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.lastEdited) {\n m.lastEdited = new Date(proto.lastEdited);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\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.salesActivityKey !== 'undefined' && this.salesActivityKey !== null) {\n toReturn['salesActivityKey'] = 'toApiJson' in this.salesActivityKey ? this.salesActivityKey.toApiJson() : this.salesActivityKey;\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.lastEdited !== 'undefined' && this.lastEdited !== null) {\n toReturn['lastEdited'] = 'toApiJson' in this.lastEdited ? this.lastEdited.toApiJson() : this.lastEdited;\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.salesStatus !== 'undefined') {\n toReturn['salesStatus'] = this.salesStatus;\n }\n if (typeof this.previousSalesStatus !== 'undefined') {\n toReturn['previousSalesStatus'] = this.previousSalesStatus;\n }\n if (typeof this.salespersonAction !== 'undefined') {\n toReturn['salespersonAction'] = this.salespersonAction;\n }\n if (typeof this.customActionName !== 'undefined') {\n toReturn['customActionName'] = this.customActionName;\n }\n if (typeof this.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.productName !== 'undefined') {\n toReturn['productName'] = this.productName;\n }\n if (typeof this.productPrice !== 'undefined') {\n toReturn['productPrice'] = this.productPrice;\n }\n if (typeof this.connected !== 'undefined') {\n toReturn['connected'] = this.connected;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.closedLostReason !== 'undefined') {\n toReturn['closedLostReason'] = this.closedLostReason;\n }\n if (typeof this.audioKey !== 'undefined') {\n toReturn['audioKey'] = this.audioKey;\n }\n if (typeof this.opportunityName !== 'undefined') {\n toReturn['opportunityName'] = this.opportunityName;\n }\n if (typeof this.audioUrl !== 'undefined') {\n toReturn['audioUrl'] = this.audioUrl;\n }\n if (typeof this.salesPersonFirstName !== 'undefined') {\n toReturn['salesPersonFirstName'] = this.salesPersonFirstName;\n }\n if (typeof this.salesPersonLastName !== 'undefined') {\n toReturn['salesPersonLastName'] = this.salesPersonLastName;\n }\n return toReturn;\n }\n}\nclass SalesActivityKey {\n static fromProto(proto) {\n let m = new SalesActivityKey();\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.salesActivityId !== 'undefined') {\n toReturn['salesActivityId'] = this.salesActivityId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass InflatedTasksTask {\n static fromProto(proto) {\n let m = new InflatedTasksTask();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\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.title !== 'undefined') {\n toReturn['title'] = this.title;\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.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nclass TaskKeys {\n static fromProto(proto) {\n let m = new TaskKeys();\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.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPath !== 'undefined') {\n toReturn['parentPath'] = this.parentPath;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n return toReturn;\n }\n}\nclass TasksHydrationOption {\n static fromProto(proto) {\n let m = new TasksHydrationOption();\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.taskKeys !== 'undefined') {\n toReturn['taskKeys'] = this.taskKeys;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\n }\n return toReturn;\n }\n}\nclass InflatedBrandingBrandingAssetsUrl {\n static fromProto(proto) {\n let m = new InflatedBrandingBrandingAssetsUrl();\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.insecure !== 'undefined') {\n toReturn['insecure'] = this.insecure;\n }\n if (typeof this.secure !== 'undefined') {\n toReturn['secure'] = this.secure;\n }\n return toReturn;\n }\n}\nclass InflatedUsersUser {\n static fromProto(proto) {\n let m = new InflatedUsersUser();\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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n return toReturn;\n }\n}\nclass UsersHydrationOption {\n static fromProto(proto) {\n let m = new UsersHydrationOption();\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.userIds !== 'undefined') {\n toReturn['userIds'] = this.userIds;\n }\n if (typeof this.inflatedPropertyName !== 'undefined') {\n toReturn['inflatedPropertyName'] = this.inflatedPropertyName;\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 RawTemplate {\n static fromProto(proto) {\n let m = new RawTemplate();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$2(TemplateType, proto.type);\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.templateContent !== 'undefined') {\n toReturn['templateContent'] = this.templateContent;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nclass Template {\n static fromProto(proto) {\n let m = new Template();\n m = Object.assign(m, proto);\n if (proto.hydrationOptions) {\n m.hydrationOptions = HydrationOptions.fromProto(proto.hydrationOptions);\n }\n if (proto.type) {\n m.type = enumStringToValue$2(TemplateType, proto.type);\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.metadata !== 'undefined') {\n toReturn['metadata'] = this.metadata;\n }\n if (typeof this.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.hydrationOptions !== 'undefined' && this.hydrationOptions !== null) {\n toReturn['hydrationOptions'] = 'toApiJson' in this.hydrationOptions ? this.hydrationOptions.toApiJson() : this.hydrationOptions;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\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}\nclass TemplateIdentifier {\n static fromProto(proto) {\n let m = new TemplateIdentifier();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\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 SubstitutionParameter {\n static fromProto(proto) {\n let m = new SubstitutionParameter();\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.replacementTag !== 'undefined') {\n toReturn['replacementTag'] = this.replacementTag;\n }\n if (typeof this.requiredOptions !== 'undefined') {\n toReturn['requiredOptions'] = this.requiredOptions;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.isHtml !== 'undefined') {\n toReturn['isHtml'] = this.isHtml;\n }\n if (typeof this.isDeprecated !== 'undefined') {\n toReturn['isDeprecated'] = this.isDeprecated;\n }\n return toReturn;\n }\n}\nclass SubstitutionParameterError {\n static fromProto(proto) {\n let m = new SubstitutionParameterError();\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.replacementTag !== 'undefined') {\n toReturn['replacementTag'] = this.replacementTag;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\nclass SubstitutionParameterOptions {\n static fromProto(proto) {\n let m = new SubstitutionParameterOptions();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.orderId !== 'undefined') {\n toReturn['orderId'] = this.orderId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\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 AddTemplateLocaleRequest {\n static fromProto(proto) {\n let m = new AddTemplateLocaleRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass CreateTemplateRequest {\n static fromProto(proto) {\n let m = new CreateTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = Template.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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\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 DeleteTemplateRequest {\n static fromProto(proto) {\n let m = new DeleteTemplateRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass ListSubstitutionParametersRequestFilters {\n static fromProto(proto) {\n let m = new ListSubstitutionParametersRequestFilters();\n m = Object.assign(m, proto);\n if (proto.forRequiredOptions) {\n m.forRequiredOptions = SubstitutionParameterOptions.fromProto(proto.forRequiredOptions);\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.includeHtml !== 'undefined') {\n toReturn['includeHtml'] = this.includeHtml;\n }\n if (typeof this.includeDeprecated !== 'undefined') {\n toReturn['includeDeprecated'] = this.includeDeprecated;\n }\n if (typeof this.forRequiredOptions !== 'undefined' && this.forRequiredOptions !== null) {\n toReturn['forRequiredOptions'] = 'toApiJson' in this.forRequiredOptions ? this.forRequiredOptions.toApiJson() : this.forRequiredOptions;\n }\n return toReturn;\n }\n}\nclass GetAllSubstitutionParametersRequest {\n static fromProto(proto) {\n let m = new GetAllSubstitutionParametersRequest();\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.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass GetAllSubstitutionParametersResponse {\n static fromProto(proto) {\n let m = new GetAllSubstitutionParametersResponse();\n m = Object.assign(m, proto);\n if (proto.substitutionParameters) {\n m.substitutionParameters = proto.substitutionParameters.map(SubstitutionParameter.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.substitutionParameters !== 'undefined' && this.substitutionParameters !== null) {\n toReturn['substitutionParameters'] = 'toApiJson' in this.substitutionParameters ? this.substitutionParameters.toApiJson() : this.substitutionParameters;\n }\n return toReturn;\n }\n}\nclass GetMultiTemplateRequest {\n static fromProto(proto) {\n let m = new GetMultiTemplateRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateIds !== 'undefined') {\n toReturn['templateIds'] = this.templateIds;\n }\n return toReturn;\n }\n}\nclass GetMultiTemplateResponse {\n static fromProto(proto) {\n let m = new GetMultiTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.templates) {\n m.templates = proto.templates.map(GetMultiTemplateResponseGetOrError.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.templates !== 'undefined' && this.templates !== null) {\n toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\n }\n return toReturn;\n }\n}\nclass GetMultiTemplateResponseGetOrError {\n static fromProto(proto) {\n let m = new GetMultiTemplateResponseGetOrError();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = Template.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 if (typeof this.errorDescription !== 'undefined') {\n toReturn['errorDescription'] = this.errorDescription;\n }\n return toReturn;\n }\n}\nclass GetTemplateRequest {\n static fromProto(proto) {\n let m = new GetTemplateRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass GetTemplateResponse {\n static fromProto(proto) {\n let m = new GetTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = Template.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 ListSubstitutionParametersRequest {\n static fromProto(proto) {\n let m = new ListSubstitutionParametersRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListSubstitutionParametersRequestFilters.fromProto(proto.filters);\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.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass ListSubstitutionParametersResponse {\n static fromProto(proto) {\n let m = new ListSubstitutionParametersResponse();\n m = Object.assign(m, proto);\n if (proto.substitutionParameters) {\n m.substitutionParameters = proto.substitutionParameters.map(SubstitutionParameter.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.substitutionParameters !== 'undefined' && this.substitutionParameters !== null) {\n toReturn['substitutionParameters'] = 'toApiJson' in this.substitutionParameters ? this.substitutionParameters.toApiJson() : this.substitutionParameters;\n }\n return toReturn;\n }\n}\nclass ListTemplateRequest {\n static fromProto(proto) {\n let m = new ListTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.prefix !== 'undefined') {\n toReturn['prefix'] = this.prefix;\n }\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 ListTemplateResponse {\n static fromProto(proto) {\n let m = new ListTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.templates) {\n m.templates = proto.templates.map(Template.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.templates !== 'undefined' && this.templates !== null) {\n toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass RenderTemplateMultiRequestParameterizedTemplates {\n static fromProto(proto) {\n let m = new RenderTemplateMultiRequestParameterizedTemplates();\n m = Object.assign(m, proto);\n if (proto.substitutionParameterOptions) {\n m.substitutionParameterOptions = SubstitutionParameterOptions.fromProto(proto.substitutionParameterOptions);\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.parameters !== 'undefined') {\n toReturn['parameters'] = this.parameters;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.substitutionParameterOptions !== 'undefined' && this.substitutionParameterOptions !== null) {\n toReturn['substitutionParameterOptions'] = 'toApiJson' in this.substitutionParameterOptions ? this.substitutionParameterOptions.toApiJson() : this.substitutionParameterOptions;\n }\n return toReturn;\n }\n}\nclass RenderMultiRequestRender {\n static fromProto(proto) {\n let m = new RenderMultiRequestRender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(TemplateType, proto.type);\n }\n if (proto.hydrationOptions) {\n m.hydrationOptions = HydrationOptions.fromProto(proto.hydrationOptions);\n }\n if (proto.substitutionParameterOptions) {\n m.substitutionParameterOptions = SubstitutionParameterOptions.fromProto(proto.substitutionParameterOptions);\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.templateContent !== 'undefined') {\n toReturn['templateContent'] = this.templateContent;\n }\n if (typeof this.parameters !== 'undefined') {\n toReturn['parameters'] = this.parameters;\n }\n if (typeof this.errorOnMissingParam !== 'undefined') {\n toReturn['errorOnMissingParam'] = this.errorOnMissingParam;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.hydrationOptions !== 'undefined' && this.hydrationOptions !== null) {\n toReturn['hydrationOptions'] = 'toApiJson' in this.hydrationOptions ? this.hydrationOptions.toApiJson() : this.hydrationOptions;\n }\n if (typeof this.substitutionParameterOptions !== 'undefined' && this.substitutionParameterOptions !== null) {\n toReturn['substitutionParameterOptions'] = 'toApiJson' in this.substitutionParameterOptions ? this.substitutionParameterOptions.toApiJson() : this.substitutionParameterOptions;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.renderFakeData !== 'undefined') {\n toReturn['renderFakeData'] = this.renderFakeData;\n }\n return toReturn;\n }\n}\nclass RenderMultiRequest {\n static fromProto(proto) {\n let m = new RenderMultiRequest();\n m = Object.assign(m, proto);\n if (proto.renderRequests) {\n m.renderRequests = proto.renderRequests.map(RenderMultiRequestRender.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.renderRequests !== 'undefined' && this.renderRequests !== null) {\n toReturn['renderRequests'] = 'toApiJson' in this.renderRequests ? this.renderRequests.toApiJson() : this.renderRequests;\n }\n return toReturn;\n }\n}\nclass RenderMultiResponse {\n static fromProto(proto) {\n let m = new RenderMultiResponse();\n m = Object.assign(m, proto);\n if (proto.renders) {\n m.renders = proto.renders.map(RenderMultiResponseRenderOrError.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.renders !== 'undefined' && this.renders !== null) {\n toReturn['renders'] = 'toApiJson' in this.renders ? this.renders.toApiJson() : this.renders;\n }\n return toReturn;\n }\n}\nclass RenderMultiResponseRenderOrError {\n static fromProto(proto) {\n let m = new RenderMultiResponseRenderOrError();\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.renderedTemplate !== 'undefined') {\n toReturn['renderedTemplate'] = this.renderedTemplate;\n }\n if (typeof this.errorDescription !== 'undefined') {\n toReturn['errorDescription'] = this.errorDescription;\n }\n return toReturn;\n }\n}\nclass RenderRequest {\n static fromProto(proto) {\n let m = new RenderRequest();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(TemplateType, proto.type);\n }\n if (proto.hydrationOptions) {\n m.hydrationOptions = HydrationOptions.fromProto(proto.hydrationOptions);\n }\n if (proto.substitutionParameterOptions) {\n m.substitutionParameterOptions = SubstitutionParameterOptions.fromProto(proto.substitutionParameterOptions);\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.templateContent !== 'undefined') {\n toReturn['templateContent'] = this.templateContent;\n }\n if (typeof this.parameters !== 'undefined') {\n toReturn['parameters'] = this.parameters;\n }\n if (typeof this.errorOnMissingParam !== 'undefined') {\n toReturn['errorOnMissingParam'] = this.errorOnMissingParam;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.hydrationOptions !== 'undefined' && this.hydrationOptions !== null) {\n toReturn['hydrationOptions'] = 'toApiJson' in this.hydrationOptions ? this.hydrationOptions.toApiJson() : this.hydrationOptions;\n }\n if (typeof this.substitutionParameterOptions !== 'undefined' && this.substitutionParameterOptions !== null) {\n toReturn['substitutionParameterOptions'] = 'toApiJson' in this.substitutionParameterOptions ? this.substitutionParameterOptions.toApiJson() : this.substitutionParameterOptions;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.renderFakeData !== 'undefined') {\n toReturn['renderFakeData'] = this.renderFakeData;\n }\n return toReturn;\n }\n}\nclass RenderResponse {\n static fromProto(proto) {\n let m = new RenderResponse();\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.renderedTemplate !== 'undefined') {\n toReturn['renderedTemplate'] = this.renderedTemplate;\n }\n return toReturn;\n }\n}\nclass RenderTemplateMultiRequest {\n static fromProto(proto) {\n let m = new RenderTemplateMultiRequest();\n m = Object.assign(m, proto);\n if (proto.templatesToRender) {\n m.templatesToRender = proto.templatesToRender.map(RenderTemplateMultiRequestParameterizedTemplates.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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templatesToRender !== 'undefined' && this.templatesToRender !== null) {\n toReturn['templatesToRender'] = 'toApiJson' in this.templatesToRender ? this.templatesToRender.toApiJson() : this.templatesToRender;\n }\n if (typeof this.errorOnMissingParam !== 'undefined') {\n toReturn['errorOnMissingParam'] = this.errorOnMissingParam;\n }\n return toReturn;\n }\n}\nclass RenderTemplateRequest {\n static fromProto(proto) {\n let m = new RenderTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.substitutionParameterOptions) {\n m.substitutionParameterOptions = SubstitutionParameterOptions.fromProto(proto.substitutionParameterOptions);\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.parameters !== 'undefined') {\n toReturn['parameters'] = this.parameters;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.errorOnMissingParam !== 'undefined') {\n toReturn['errorOnMissingParam'] = this.errorOnMissingParam;\n }\n if (typeof this.substitutionParameterOptions !== 'undefined' && this.substitutionParameterOptions !== null) {\n toReturn['substitutionParameterOptions'] = 'toApiJson' in this.substitutionParameterOptions ? this.substitutionParameterOptions.toApiJson() : this.substitutionParameterOptions;\n }\n return toReturn;\n }\n}\nclass ReplaceTemplateRequest {\n static fromProto(proto) {\n let m = new ReplaceTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = Template.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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\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 UpdateTemplateRequest {\n static fromProto(proto) {\n let m = new UpdateTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = Template.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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\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 VerifySubstitutionParametersRequest {\n static fromProto(proto) {\n let m = new VerifySubstitutionParametersRequest();\n m = Object.assign(m, proto);\n if (proto.rawTemplate) {\n m.rawTemplate = RawTemplate.fromProto(proto.rawTemplate);\n }\n if (proto.templateIdentifier) {\n m.templateIdentifier = TemplateIdentifier.fromProto(proto.templateIdentifier);\n }\n if (proto.substitutionParameterOptions) {\n m.substitutionParameterOptions = SubstitutionParameterOptions.fromProto(proto.substitutionParameterOptions);\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.rawTemplate !== 'undefined' && this.rawTemplate !== null) {\n toReturn['rawTemplate'] = 'toApiJson' in this.rawTemplate ? this.rawTemplate.toApiJson() : this.rawTemplate;\n }\n if (typeof this.templateIdentifier !== 'undefined' && this.templateIdentifier !== null) {\n toReturn['templateIdentifier'] = 'toApiJson' in this.templateIdentifier ? this.templateIdentifier.toApiJson() : this.templateIdentifier;\n }\n if (typeof this.substitutionParameterOptions !== 'undefined' && this.substitutionParameterOptions !== null) {\n toReturn['substitutionParameterOptions'] = 'toApiJson' in this.substitutionParameterOptions ? this.substitutionParameterOptions.toApiJson() : this.substitutionParameterOptions;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.parameters !== 'undefined') {\n toReturn['parameters'] = this.parameters;\n }\n return toReturn;\n }\n}\nclass VerifySubstitutionParametersResponse {\n static fromProto(proto) {\n let m = new VerifySubstitutionParametersResponse();\n m = Object.assign(m, proto);\n if (proto.errors) {\n m.errors = proto.errors.map(SubstitutionParameterError.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.errors !== 'undefined' && this.errors !== null) {\n toReturn['errors'] = 'toApiJson' in this.errors ? this.errors.toApiJson() : this.errors;\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': 'templates-api.vendasta-local.com',\n 'test': '',\n 'demo': 'templates-api-demo.apigateway.co',\n 'prod': 'templates-api-prod.apigateway.co',\n 'production': 'templates-api-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 TemplatesApiService = /*#__PURE__*/(() => {\n class TemplatesApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Create\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n get(r) {\n const request = r.toApiJson ? r : new GetTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTemplateResponse.fromProto(resp)));\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiTemplateResponse.fromProto(resp)));\n }\n list(r) {\n const request = r.toApiJson ? r : new ListTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTemplateResponse.fromProto(resp)));\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n update(r) {\n const request = r.toApiJson ? r : new UpdateTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Update\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n replace(r) {\n const request = r.toApiJson ? r : new ReplaceTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Replace\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n addTemplateLocale(r) {\n const request = r.toApiJson ? r : new AddTemplateLocaleRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/AddTemplateLocale\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n renderTemplate(r) {\n const request = r.toApiJson ? r : new RenderTemplateRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/RenderTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderResponse.fromProto(resp)));\n }\n renderTemplateMulti(r) {\n const request = r.toApiJson ? r : new RenderTemplateMultiRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/RenderTemplateMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderMultiResponse.fromProto(resp)));\n }\n render(r) {\n const request = r.toApiJson ? r : new RenderRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/Render\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderResponse.fromProto(resp)));\n }\n renderMulti(r) {\n const request = r.toApiJson ? r : new RenderMultiRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/RenderMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderMultiResponse.fromProto(resp)));\n }\n getAllSubstitutionParameters(r) {\n const request = r.toApiJson ? r : new GetAllSubstitutionParametersRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/GetAllSubstitutionParameters\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAllSubstitutionParametersResponse.fromProto(resp)));\n }\n listSubstitutionParameters(r) {\n const request = r.toApiJson ? r : new ListSubstitutionParametersRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/ListSubstitutionParameters\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSubstitutionParametersResponse.fromProto(resp)));\n }\n verifySubstitutionParameters(r) {\n const request = r.toApiJson ? r : new VerifySubstitutionParametersRequest(r);\n return this.http.post(this._host + \"/templates.v1.TemplatesService/VerifySubstitutionParameters\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifySubstitutionParametersResponse.fromProto(resp)));\n }\n }\n TemplatesApiService.ɵfac = function TemplatesApiService_Factory(t) {\n return new (t || TemplatesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TemplatesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TemplatesApiService,\n factory: TemplatesApiService.ɵfac,\n providedIn: 'root'\n });\n return TemplatesApiService;\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// *********************************\nlet TemplatesService = /*#__PURE__*/(() => {\n class TemplatesService {\n constructor(client) {\n this.client = client;\n }\n get(applicationId, templateId, locale) {\n return this.client.get({\n applicationId,\n templateId,\n locale\n }).pipe(map(resp => resp.template));\n }\n getMulti(applicationId, templateIds) {\n return this.client.getMulti({\n applicationId,\n templateIds\n }).pipe(map(resp => resp.templates));\n }\n create(applicationId, template) {\n return this.client.create({\n applicationId,\n template\n }).pipe(map(() => true));\n }\n update(applicationId, template) {\n return this.client.update({\n applicationId,\n template\n }).pipe(map(() => true));\n }\n /**\n * Render any text content using template hydration\n * @param templateContent The content to render - including substitution tags (Default is GoLang style, but can be overridden)\n * @param parameters Typically contains IDs used for hydration (e.g. partner ID, user ID) using keys of your choosing\n * @param subParamOpts Used for mapping the keys provided in `parameters` to the ones expected by templates microservice\n * @param templateType The templating engine to use.\n * @param locale The locale to use for localizable hydrations (e.g. dates, addresses) - optional\n * @param renderFakeData If true, will return fake data if real data cannot be rendered\n */\n render(templateContent, parameters, templateType = TemplateType.TEMPLATE_TYPE_GOLANG, subParamOpts, locale, errorOnMissingParam, options, renderFakeData) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const request = new RenderRequest({\n templateContent: templateContent,\n errorOnMissingParam: errorOnMissingParam,\n locale: locale,\n parameters: parameters,\n substitutionParameterOptions: subParamOpts,\n hydrationOptions: options,\n type: templateType,\n renderFakeData: renderFakeData\n });\n return this.client.render(request).pipe(map(resp => resp.renderedTemplate || ''));\n }\n renderTemplate(applicationId, templateId, parameters, locale, errorOnMissingParam) {\n return this.client.renderTemplate({\n applicationId: applicationId,\n templateId: templateId,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n parameters: parameters,\n locale: locale,\n errorOnMissingParam: errorOnMissingParam\n }).pipe(map(resp => resp.renderedTemplate || ''));\n }\n listSubstitutionParameters(filters) {\n return this.client.listSubstitutionParameters({\n filters: filters\n }).pipe(map(resp => resp.substitutionParameters));\n }\n }\n TemplatesService.ɵfac = function TemplatesService_Factory(t) {\n return new (t || TemplatesService)(i0.ɵɵinject(TemplatesApiService));\n };\n TemplatesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TemplatesService,\n factory: TemplatesService.ɵfac,\n providedIn: 'root'\n });\n return TemplatesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CreateTemplateRequest, DeleteTemplateRequest, GetMultiTemplateRequest, GetTemplateRequest, GetTemplateResponse, ListTemplateRequest, RenderMultiResponse, RenderRequest, RenderResponse, RenderTemplateMultiRequest, RenderTemplateRequest, SubstitutionParameter, Template, TemplateType, TemplatesApiService, TemplatesService, UpdateTemplateRequest };\n","import { ActivatableApp } from '@vendasta/marketplace-packages';\nimport { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface AppListingServiceInterface {\n listAllActivatableApps(): Observable;\n}\n\nexport const EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN = new InjectionToken(\n '[AppListingServiceInterface]: token for app listing service',\n);\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatableApp } from '@vendasta/marketplace-packages';\nimport {\n ListSubstitutionParametersRequestFiltersInterface,\n SubstitutionParameter,\n TemplatesService,\n} from '@vendasta/templates';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport {\n AppListingServiceInterface,\n EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN,\n} from '@galaxy/email-ui/email-builder/src/services/app-listing-service.interface';\n\nexport interface Option {\n title: string;\n value: string;\n}\n\nexport interface VariableMenuItemOptions {\n requiredParams: string[];\n nestedDynamicSelector: boolean;\n}\n\nexport interface VariableMenuItem {\n textKey: string;\n replacementTags: string[];\n template?: string;\n subItems?: SubstitutionParameter[];\n options?: VariableMenuItemOptions;\n}\n\nconst defaultDynamicComponents = [\n {\n textKey: 'DYNAMIC_COMPONENT_SELECTOR.CONTACT_DETAILS',\n replacementTags: ['crmContactFirstName', 'crmContactLastName'],\n },\n];\n\n@Injectable()\nexport class DynamicComponentSelectorService {\n private parentVariableCategories: VariableMenuItem[] = [];\n\n constructor(\n private readonly templatesService: TemplatesService,\n @Inject(EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN) @Optional() private appListingService: AppListingServiceInterface,\n ) {\n this.overrideParentVariableCategories(defaultDynamicComponents);\n }\n\n public hasComponentsToDisplay(): boolean {\n return this.parentVariableCategories.length > 0;\n }\n\n public getVariables(filters: ListSubstitutionParametersRequestFiltersInterface): Observable {\n return this.templatesService\n .listSubstitutionParameters(filters)\n .pipe(map((params) => this.filterSubstitutionParameters(params)));\n }\n\n private filterSubstitutionParameters(params: SubstitutionParameter[]): VariableMenuItem[] {\n return this.parentVariableCategories.map((v) => ({\n textKey: v.textKey,\n replacementTags: v.replacementTags,\n options: v.options,\n subItems: params\n .filter((p) => v.replacementTags.some((t) => t === p.replacementTag))\n .sort(function (a, b): number {\n return v.replacementTags.indexOf(a.replacementTag) - v.replacementTags.indexOf(b.replacementTag);\n }),\n }));\n }\n\n public getProductSubstitutionVariables(): Observable {\n return this.appListingService.listAllActivatableApps().pipe(take(1));\n }\n\n public overrideParentVariableCategories(variableCategories: VariableMenuItem[]): VariableMenuItem[] {\n return (this.parentVariableCategories = variableCategories);\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Option, VariableMenuItem, DynamicComponentSelectorService } from '../dynamic-component-selector.service';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { SubstitutionParameter } from '@vendasta/templates';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'templates-dynamic-component-dialog',\n templateUrl: './dynamic-component-dialog.component.html',\n styleUrls: ['./dynamic-component-dialog.component.scss'],\n})\nexport class DynamicComponentDialogComponent implements OnInit {\n @Output() formResult: EventEmitter = new EventEmitter();\n readonly allowedEntryApps = ['RM', 'SM'];\n\n variables$: Observable = this.dynamicComponentSelectorService\n .getVariables({ includeHtml: true })\n .pipe(\n map((vars) => {\n return vars.filter((v) => {\n return (v?.options?.requiredParams || []).reduce((prev, curr, i, arr) => {\n return prev && !!this[arr[i]];\n }, true);\n });\n }),\n shareReplay(1),\n );\n\n chosenCategory: VariableMenuItem = null;\n chosenParam: SubstitutionParameter = null;\n chosenParamDetails: string = null;\n chosenDynamicParam$$ = new ReplaySubject(1);\n chosenDynamicParam$: Observable;\n\n constructor(\n private readonly dynamicComponentSelectorService: DynamicComponentSelectorService,\n public dialogRef: MatDialogRef,\n ) {}\n\n ngOnInit(): void {\n this.chosenDynamicParam$ = this.chosenDynamicParam$$.asObservable().pipe(\n switchMap((chosenDynamicParam) => {\n if (\n chosenDynamicParam === 'productName' ||\n chosenDynamicParam === 'productPreviewUrl' ||\n chosenDynamicParam === 'productUrl'\n ) {\n return this.dynamicComponentSelectorService.getProductSubstitutionVariables().pipe(\n map((apps) => {\n if (chosenDynamicParam === 'productUrl') {\n apps = apps.filter((a) => this.allowedEntryApps.includes(a.appId));\n }\n return apps.map((app) => {\n return {\n title: app.name,\n value: app.appId,\n };\n });\n }),\n );\n }\n }),\n );\n }\n\n handleCategoryChange(): void {\n this.chosenParam = null;\n this.chosenParamDetails = null;\n }\n\n handleParamChange(): void {\n this.chosenParamDetails = null;\n if (\n this.chosenParam.replacementTag === 'productName' ||\n this.chosenParam.replacementTag === 'productPreviewUrl' ||\n this.chosenParam.replacementTag === 'productUrl'\n ) {\n this.chosenDynamicParam$$.next(this.chosenParam.replacementTag);\n }\n }\n\n add(): void {\n let replacementTag = this.chosenParam.replacementTag;\n if (this.chosenParamDetails) {\n replacementTag = `${replacementTag}['${this.chosenParamDetails}']`;\n }\n this.dialogRef.close('{{ ' + replacementTag + ' }}');\n }\n\n close(): void {\n this.dialogRef.close(null);\n }\n}\n","\n

{{ 'DYNAMIC_COMPONENT_DIALOG.ADD_HEADING' | translate }}

\n \n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.CATEGORY' | translate }}\n \n \n {{ mainItem.textKey | translate }}\n \n \n \n \n \n \n \n \n {{ chosenCategory.textKey | translate }}\n \n \n \n {{ subParam.displayName | translate }}\n \n \n \n \n \n \n \n \n \n \n {{ chosenParam.displayName | translate }}\n \n \n \n {{ v.title | translate }}\n \n \n \n \n \n \n
\n
\n
\n \n
\n\n
\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.ADD_BUTTON' | translate }}\n \n
\n
\n\n\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.NO_OPTIONS' | translate }}\n \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { take } from 'rxjs/operators';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorService } from './dynamic-component-selector.service';\n\n@Component({\n selector: 'templates-dynamic-component-selector',\n templateUrl: 'dynamic-component-selector.component.html',\n styleUrls: ['dynamic-component-selector.component.scss'],\n})\nexport class DynamicComponentSelectorComponent {\n @Input() marketId: string;\n @Input() target: HTMLTextAreaElement;\n @Input() model: string;\n\n @Output() modelChange: EventEmitter = new EventEmitter();\n\n public variablesReady = this.variableService.hasComponentsToDisplay();\n\n constructor(\n private dialog: MatDialog,\n private variableService: DynamicComponentSelectorService,\n ) {}\n\n openDialog(): void {\n const dialogRef = this.dialog.open(DynamicComponentDialogComponent, {\n width: '450px',\n height: '450px',\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res: string | null) => {\n if (res) {\n this.selectVariable(res);\n }\n });\n }\n\n selectVariable(replacementTag: string): void {\n const startPos = this.target.selectionStart;\n const endPos = this.target.selectionEnd ?? startPos;\n\n const contentBefore = this.target.value.substr(0, startPos);\n const contentAfter = this.target.value.substr(endPos, this.target.value.length);\n\n const newValue = contentBefore + replacementTag + contentAfter;\n this.target.value = newValue;\n this.target.selectionStart = startPos;\n\n this.modelChange.emit(newValue);\n\n // Using setTimeout fix bug where input does not focus\n window.setTimeout(() => {\n this.target.focus();\n this.target.setSelectionRange(startPos, replacementTag.length + startPos);\n }, 0);\n }\n}\n","\n data_object\n\n","{\n \"DYNAMIC_COMPONENT_SELECTOR\": {\n \"INSERT_DYNAMIC_CONTENT\": \"Insert dynamic content\",\n \"SNAPSHOT_REPORT\": \"Snapshot report\",\n \"BUSINESS_APP_DETAILS\": \"Business app details\",\n \"SALESPERSON_DETAILS\": \"Salesperson details\",\n \"PARTNER_DETAILS\": \"Partner details\",\n \"ACCOUNT_DETAILS\": \"Account details\",\n \"PRODUCT_DETAILS\": \"Product details\",\n \"CONTACT_DETAILS\": \"Contact details\"\n },\n \"DYNAMIC_COMPONENT_DIALOG\": {\n \"ADD_HEADING\": \"Add dynamic content\",\n \"CATEGORY\": \"Category\",\n \"CANCEL_BUTTON\": \"Cancel\",\n \"ADD_BUTTON\": \"Add\",\n \"NO_OPTIONS\": \"No options found\"\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/templates',\n baseTranslation: En,\n }),\n ],\n})\nexport class TemplatesI18nModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorComponent } from './dynamic-component-selector.component';\nimport {\n DynamicComponentSelectorService,\n VariableMenuItemOptions,\n VariableMenuItem,\n Option,\n} from './dynamic-component-selector.service';\nimport { TemplatesI18nModule } from '../assets/i18n/templates-i18n.module';\n\n@NgModule({\n providers: [DynamicComponentSelectorService],\n declarations: [DynamicComponentSelectorComponent, DynamicComponentDialogComponent],\n imports: [\n CommonModule,\n GalaxyTooltipModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n MatButtonModule,\n MatDialogModule,\n MatInputModule,\n MatListModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatOptionModule,\n TranslateModule,\n MatSelectModule,\n GalaxyEmptyStateModule,\n TemplatesI18nModule,\n ],\n exports: [DynamicComponentSelectorComponent],\n})\nexport class DynamicComponentSelectorModule {}\n\nexport { DynamicComponentSelectorService, VariableMenuItemOptions, VariableMenuItem, Option };\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { TextMessageBuilderForm } from '../interfaces';\nimport { MatInputModule } from '@angular/material/input';\nimport { DynamicComponentSelectorModule } from '@galaxy/templates';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'sms-builder-form',\n templateUrl: 'text-message-builder-form.component.html',\n styleUrls: ['./text-message-builder-form.component.scss'],\n imports: [CommonModule, GalaxyFormFieldModule, ReactiveFormsModule, MatInputModule, DynamicComponentSelectorModule],\n})\nexport class TextMessageBuilderFormComponent implements OnInit {\n smsForm = new FormGroup({\n name: new FormControl(''),\n message: new FormControl(''),\n });\n\n @ViewChild('smsText') smsText?: ElementRef;\n\n @Input()\n set setInitialInputText(inputText: TextMessageBuilderForm) {\n this.smsForm.patchValue(inputText);\n }\n\n @Input() allowDynamic: boolean;\n\n @Output() template: EventEmitter = new EventEmitter();\n @Output() valid: EventEmitter = new EventEmitter();\n\n ngOnInit() {\n this.smsForm.valueChanges.subscribe((value) => {\n this.template.emit(value as TextMessageBuilderForm);\n });\n this.smsForm.statusChanges.subscribe((status) => {\n this.valid.emit(status === 'VALID');\n });\n }\n\n emitNewTemplateValue(value: string) {\n this.template.emit({ message: value } as TextMessageBuilderForm);\n }\n}\n","
\n \n Template Name\n \n \n \n \n Message\n \n \n \n \n \n \n \n
Message
\n \n \n
\n
\n \n
\n
\n
\n","import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @deprecated Use the new `glxy-chat-message-group` component instead\n */\n@Component({\n selector: 'glxy-chat-bubble',\n templateUrl: './chat-bubble.component.html',\n styleUrls: ['./chat-bubble.component.scss'],\n})\nexport class ChatBubbleComponent {\n @HostBinding('class') class = 'glxy-chat-bubble';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageText?: string;\n\n @Input() messageFrom?: string;\n\n @Input() messageMetadata?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconUrl?: string;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = true;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n\n get profilePicCSS(): string {\n return this.profilePicUrl ? 'url(' + this.profilePicUrl + ')' : '';\n }\n\n get profileSourceIconCSS(): string {\n return this.profileSourceIconUrl ? 'url(' + this.profileSourceIconUrl + ')' : '';\n }\n}\n","\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-divider-text',\n templateUrl: './chat-divider-text.component.html',\n styleUrls: ['./chat-divider-text.component.scss'],\n})\nexport class ChatDividerTextComponent {}\n","
\n \n
\n","import { Component, ElementRef, HostListener, Input, inject } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-event',\n templateUrl: './chat-event.component.html',\n styleUrls: ['./chat-event.component.scss'],\n})\nexport class ChatEventComponent {\n @Input() messageMetadata?: string | null;\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n private clickTimeout = 0;\n\n @HostListener('document:mousedown', ['$event'])\n onMouseDown(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Start a new click timeout with a delay of 300 milliseconds\n this.clickTimeout = window.setTimeout(() => {\n // Check if the target is outside of the .bubble element\n if (!this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = false;\n }\n }, 300);\n }\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Check if the target is inside the .pill element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n if (!isLink && this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n this.isMetadataPresented = false;\n }\n }\n}\n","
\n \n
\n
\n {{ messageMetadata }}\n
\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-container',\n templateUrl: './chat-container.component.html',\n styleUrls: ['./chat-container.component.scss'],\n})\nexport class ChatContainerComponent implements AfterViewInit, OnChanges, OnDestroy {\n @HostBinding('class') class = 'glxy-chat-container';\n\n @ViewChild('chatContent') chatContent?: ElementRef;\n\n @Input() chatId = '';\n\n showNewMessageIndicator = false;\n\n get scrollable(): HTMLDivElement | undefined {\n return this.chatContent?.nativeElement;\n }\n\n get scrollTop(): number {\n return this.scrollable?.scrollTop ?? 0;\n }\n\n scrollTo({ top = 0, behavior = 'smooth' }: ScrollToOptions = {}): void {\n this.scrollable?.scrollTo({ top, behavior });\n }\n\n onNewMessageReceived(): void {\n if (this.scrollTop < 0) {\n this.showNewMessageIndicator = true;\n } else {\n this.mobileSafariScrollFix();\n }\n }\n\n onNewMessageSent(): void {\n // jump to bottom instantly so new message can animate into view\n this.scrollToBottom({ behavior: 'instant' });\n this.mobileSafariScrollFix();\n }\n\n scrollToBottom({ behavior }: ScrollToOptions = {}): void {\n // column-reverse means top: 0 is bottom\n // on iOS, always scroll to bottom instantly\n if (this.isIOS) {\n this.scrollTo({ top: 0, behavior: 'instant' });\n } else {\n this.scrollTo({ top: 0, behavior });\n }\n }\n\n onScroll(): void {\n if (this.scrollTop >= 0) {\n this.showNewMessageIndicator = false;\n }\n }\n\n mobileSafariScrollFix(): void {\n if (!this.isIOS) return;\n\n this.scrollTo({ top: this.scrollTop - 1 });\n window.setTimeout(() => {\n this.scrollToBottom();\n }, this.animationDuration * 2);\n }\n isIOS = /iPad|iPhone|iPod/.test(window.navigator.userAgent);\n\n ngAfterViewInit(): void {\n this.resetAnimationDuration();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.chatId) {\n const isDifferentConversation = changes?.chatId.currentValue != changes?.chatId.previousValue;\n if (isDifferentConversation) {\n this.resetAnimationDuration();\n }\n }\n }\n\n private animationTimer = 0;\n @Input() animationDuration = 0; // TODO(pascal): set this to 150 once µConversation updates are done\n currentAnimationDuration = 0;\n\n @HostBinding('style.--animation-duration')\n get getAnimationDurationStyle() {\n return `${this.currentAnimationDuration}ms`;\n }\n\n resetAnimationDuration(): void {\n window.clearTimeout(this.animationTimer);\n this.currentAnimationDuration = 0;\n this.animationTimer = window.setTimeout(() => {\n // always use 0 duration on iOS, so we don't have animation on the initial content\n const animationDuration = this.isIOS ? 0 : this.animationDuration;\n this.currentAnimationDuration = animationDuration;\n }, this.animationDuration * 2);\n // timeout delay must be greater than the animation duration, so we don't\n // have animation on the initial content\n }\n\n ngOnDestroy(): void {\n window.clearTimeout(this.animationTimer);\n }\n}\n","
\n \n
\n\n
\n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport DOMPurify from 'dompurify';\n\nexport type ChatMessageStatus = 'sending' | 'sent' | 'failed' | 'delivered' | 'undelivered' | undefined;\n\n@Component({\n selector: 'glxy-chat-message',\n standalone: true,\n imports: [CommonModule, MatIconModule, TranslateModule],\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageComponent implements AfterViewInit {\n @HostBinding('class')\n get class() {\n return ['glxy-chat-message', this.messageStatusClass];\n }\n\n @Input() itemContent: 'message' | 'attachment' = 'message';\n\n @Input() isTyping = false;\n\n @Input() messageText?: string;\n\n @Input() messageStatus?: ChatMessageStatus;\n\n @Input() messageTime?: string | null;\n\n get messageStatusText(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.DELIVERED';\n case 'failed':\n case 'undelivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.UNDELIVERED';\n case 'sent':\n return 'GALAXY.CHAT.MESSAGE_STATUS.SENT';\n case 'sending':\n default:\n return '';\n }\n }\n\n get messageStatusClass(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'delivered';\n case 'failed':\n case 'undelivered':\n return 'failed';\n case 'sent':\n return 'sent';\n case 'sending':\n return 'sending';\n default:\n return '';\n }\n }\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n\n @ViewChild('bubbleElement') bubbleElement!: ElementRef;\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Check if metadata is being clicked\n if (this.eRef.nativeElement.querySelector('.metadata')?.contains(event.target)) {\n return;\n }\n\n // Check if the target is inside the element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n const isInElement = this.eRef.nativeElement.contains(event.target);\n if (!isLink && isInElement) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n if (this.itemContent === 'message') {\n this.isMetadataPresented = false;\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.messageText && !this.isTyping) {\n this.bubbleElement.nativeElement.innerHTML = DOMPurify.sanitize(this.messageText);\n }\n }\n}\n","
\n error\n
\n \n \n \n\n \n\n \n \n \n \n\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n \n \n {{ messageStatusText | translate }}\n {{ messageTime }}\n \n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ChatSourceId } from '@vendasta/galaxy/chat-composer';\nimport { ChatMessageComponent } from '../chat-message/chat-message.component';\n\n@Component({\n selector: 'glxy-chat-message-group',\n standalone: true,\n imports: [CommonModule, GalaxyAvatarModule, ChatMessageComponent, TranslateModule],\n templateUrl: './chat-message-group.component.html',\n styleUrls: ['./chat-message-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageGroupComponent {\n @HostBinding('class') class = 'glxy-chat-message-group';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageFrom = '';\n\n @Input() messageMetadata?: string;\n\n @Input() profileIcon?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconName?: ChatSourceId;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = false;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n}\n","\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n {{ sentFromYou ? ('GALAXY.CHAT.YOU' | translate) : messageFrom }}\n  \n {{ messageMetadata }}\n
\n\n \n\n \n \n \n
\n\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'glxy-additional-metadata, [glxyAdditionalMetadata]',\n})\nexport class AdditionalMetadataDirective {\n @HostBinding('class') class = 'glxy-additional-metadata';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { ChatBubbleComponent } from './chat-bubble/chat-bubble.component';\nexport { ChatBubbleComponent };\n\nimport { ChatDividerTextComponent } from './chat-divider-text/chat-divider-text.component';\nexport { ChatDividerTextComponent };\n\nimport { ChatEventComponent } from './chat-event/chat-event.component';\nexport { ChatEventComponent };\n\nimport { ChatContainerComponent } from './chat-container/chat-container.component';\nexport { ChatContainerComponent };\n\nimport { ChatMessageGroupComponent } from './chat-message-group/chat-message-group.component';\nexport { ChatMessageGroupComponent };\n\nimport { ChatMessageComponent } from './chat-message/chat-message.component';\nexport { ChatMessageComponent };\n\nimport { ChatMessageStatus } from './chat-message/chat-message.component';\nexport { ChatMessageStatus };\n\nimport { AdditionalMetadataDirective } from './directives/additional-metadata';\n\nexport const MODULE_IMPORTS = [\n CommonModule,\n MatTooltipModule,\n CdkScrollableModule,\n GalaxyAvatarModule,\n ChatMessageGroupComponent,\n ChatMessageComponent,\n MatButtonModule,\n MatIconModule,\n];\n\nexport const MODULE_DECLARATIONS = [\n ChatBubbleComponent,\n ChatDividerTextComponent,\n ChatEventComponent,\n ChatContainerComponent,\n AdditionalMetadataDirective,\n];\n\nexport const MODULE_EXPORTS = [...MODULE_DECLARATIONS, ChatMessageGroupComponent, ChatMessageComponent];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyChatModule {}\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ChatMessageComponent, ChatMessageGroupComponent } from '@vendasta/galaxy/chat';\nimport { MatCardModule } from '@angular/material/card';\nimport { TemplatesService, TemplateType } from '@vendasta/templates';\nimport { Observable, tap } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'sms-builder-preview',\n templateUrl: 'text-message-builder-preview.component.html',\n styleUrls: ['./text-message-builder-preview.component.scss'],\n imports: [CommonModule, ChatMessageGroupComponent, ChatMessageComponent, MatCardModule],\n})\nexport class TextMessageBuilderPreviewComponent implements OnChanges {\n @Input() messageText?: string;\n @Input() allowDynamic: boolean;\n rendered$: Observable;\n loading = false;\n\n constructor(private readonly templates: TemplatesService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.allowDynamic) {\n this.loading = true;\n this.rendered$ = this.templates\n .render(\n changes['messageText'].currentValue,\n {\n account_group_id: 'want-fake-value-displayed',\n partner_id: 'want-fake-value-displayed',\n contact_id: 'want-fake-value-displayed',\n },\n TemplateType.TEMPLATE_TYPE_GOLANG_TEXT,\n {\n accountGroupId: 'account_group_id',\n partnerId: 'partner_id',\n contactId: 'contact_id',\n },\n undefined,\n undefined,\n undefined,\n true,\n )\n .pipe(tap((_) => (this.loading = false)));\n }\n }\n}\n","\n {{ rendered$ | async }}\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TextMessageBuilderFormComponent } from './text-message-builder-form/text-message-builder-form.component';\nimport { TextMessageBuilderPreviewComponent } from './text-message-builder-preview/text-message-builder-preview.component';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { TextMessageBuilderForm } from './interfaces';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\n\n@Component({\n standalone: true,\n selector: 'sms-builder',\n templateUrl: 'text-message-builder.component.html',\n styleUrls: ['./text-message-builder.component.scss'],\n imports: [MatCardModule, CommonModule, TextMessageBuilderFormComponent, TextMessageBuilderPreviewComponent],\n})\nexport class TextMessageBuilderComponent implements OnInit {\n initialInputText: TextMessageBuilderForm = { message: '', name: '' };\n private sms$$: BehaviorSubject = new BehaviorSubject({\n name: '',\n message: '',\n });\n sms$: Observable = this.sms$$.asObservable();\n\n private valid$$: BehaviorSubject = new BehaviorSubject(false);\n valid$: Observable = this.valid$$.asObservable();\n\n @Input() allowDynamic: boolean;\n\n @Input()\n set setMessageBuilderText(messageBuilderText: TextMessageBuilderForm) {\n if (messageBuilderText) {\n this.initialInputText = messageBuilderText;\n }\n }\n\n @Output() sms: EventEmitter = new EventEmitter();\n @Output() valid: EventEmitter = new EventEmitter();\n\n ngOnInit() {\n this.sms$.subscribe((value) => {\n this.sms.emit(value as TextMessageBuilderForm);\n });\n this.valid$.subscribe((status) => {\n this.valid.emit(status);\n });\n }\n\n updateSMS(m: TextMessageBuilderForm) {\n this.sms$$.next(m);\n }\n\n updateValid(m: boolean) {\n this.valid$$.next(m);\n }\n}\n","
\n \n \n \n \n \n
\n \n
\n
\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { ConversationChannel, PlatformLocation } from '@vendasta/conversation';\nimport { Observable } from 'rxjs';\nimport { ConversationChannelService } from './channels/conversation-channel.abstract';\nimport { ConversationConfig } from './interface/config.interface';\nimport { HostAppInterface } from './interface/host-app.interface';\nimport { RouteConfig } from './interface/routes.interface';\n\nexport const CONVERSATION_CONFIG_TOKEN = new InjectionToken(\n '[Conversation]: token for configuration',\n);\n\nexport const USER_ID_TOKEN: InjectionToken> = new InjectionToken('[Conversation]: token for userId');\n\nexport const ACCOUNT_GROUP_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for accountGroupId',\n);\n\nexport const CONVERSATION_COUNTRY_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for country',\n);\n\nexport const CONVERSATION_GEOGRAPHICAL_STATE_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for state',\n);\n\nexport const PARTNER_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for partnerId',\n);\n\nexport const PARTNER_BRAND_NAME_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for partnerBrandName',\n);\n\nexport const MARKET_ID_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for marketId',\n);\n\nexport const COMPANY_NAME_TOKEN: InjectionToken> = new InjectionToken(\n '[Conversation]: token for companyName',\n);\n\nexport const FEATURE_FLAG_TOKEN = new InjectionToken>('[Conversation]: token to show up the Inbox');\n\nexport const CONVERSATION_IMAGE_SERVICE_TOKEN: InjectionToken = new InjectionToken(\n '[Conversation]: token for InboxImageService',\n);\n\nexport const CONVERSATION_PLATFORM_LOCATION_TOKEN: InjectionToken = new InjectionToken(\n '[Conversation]: token for platformLocation',\n);\n\nexport const CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN: InjectionToken> =\n new InjectionToken('[Conversation]: token for conversationChannelsEnabled');\n\nexport const CONVERSATION_ROUTES_TOKEN = new InjectionToken>(\n '[Conversation]: token for routes',\n);\n\nexport const CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for googleBusinessMessagesAvailable - indicates whether the Google Business Messaging feature is available',\n);\n\nexport const CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for facebookMessengerAvailable - indicates whether the Facebook Messenger feature is available',\n);\n\nexport const CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN = new InjectionToken>(\n '[Conversation]: token for instagramMessagesAvailable - indicates whether the Instagram Messages feature is available',\n);\n\nexport const CONVERSATION_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"],"mappings":"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","names":["GlobalParticipantType","ConversationChannel","PlatformLocation","MessageStatus","MessageType","ParticipantType","WidgetPosition","EvaluationSentiment","MetadataIdentifier","SetLastSeenRequestStatus","enumStringToValue$a","enumRef","value","NamespaceDetail","_NamespaceDetail","proto","m","GlobalParticipantType","kwargs","toReturn","SubjectParticipant","_SubjectParticipant","enumStringToValue$9","Conversation","_Conversation","ConversationChannel","PlatformLocation","LastSeenByParticipant","ConversationKey","_ConversationKey","_LastSeenByParticipant","enumStringToValue$8","Message","_Message","MessageType","SendStatus","SendStatus","_SendStatus","proto","m","enumStringToValue$8","MessageStatus","kwargs","toReturn","enumStringToValue$7","enumRef","value","Address","_Address","Participant","_Participant","PlatformLocation","ConversationChannel","ParticipantType","NamespaceDetail","ParticipantKey","_ParticipantKey","v","GlobalParticipantType","Configuration","_Configuration","proto","m","SubjectParticipant","kwargs","toReturn","ProductFeature","_ProductFeature","View","_View","proto","m","kwargs","toReturn","enumStringToValue$3","enumRef","value","DataSources","_DataSources","Widget","_Widget","WidgetPosition","FieldMask","_FieldMask","proto","m","kwargs","toReturn","MessageTemplate","_MessageTemplate","proto","m","kwargs","toReturn","enumStringToValue","enumRef","value","AddConversationToConversationViewRequest","_AddConversationToConversationViewRequest","AddMultiParticipantsRequest","_AddMultiParticipantsRequest","Participant","AddMultiParticipantsResponse","_AddMultiParticipantsResponse","CapturedLead","_CapturedLead","ConversationMessageCount","_ConversationMessageCount","LookupConversationsResponseConversations","_LookupConversationsResponseConversations","Conversation","CreateConversationRequest","_CreateConversationRequest","proto","m","Participant","enumStringToValue","ConversationChannel","PlatformLocation","kwargs","toReturn","CreateConversationResponse","_CreateConversationResponse","Conversation","CreateMessageTemplateRequest","_CreateMessageTemplateRequest","MessageTemplate","SubjectParticipant","CreateMessageTemplateResponse","_CreateMessageTemplateResponse","CreateMultiMessagesRequest","_CreateMultiMessagesRequest","Message","CreateWidgetConversationRequest","_CreateWidgetConversationRequest","CreateWidgetConversationResponse","_CreateWidgetConversationResponse","CreateWidgetRequest","_CreateWidgetRequest","DataSources","CreateWidgetResponse","_CreateWidgetResponse","Widget","DeleteConversationRequest","_DeleteConversationRequest","proto","m","kwargs","toReturn","DeleteMessageRequest","_DeleteMessageRequest","DeleteMessageTemplateRequest","_DeleteMessageTemplateRequest","DeleteWidgetRequest","_DeleteWidgetRequest","GetMultiConversationDetailsResponseDetailedConversation","_GetMultiConversationDetailsResponseDetailedConversation","Conversation","Message","Participant","SearchConversationsResponseDetailedConversation","_SearchConversationsResponseDetailedConversation","EvaluateResponseRequest","_EvaluateResponseRequest","enumStringToValue","EvaluationSentiment","GetAvailableChannelsForConversationRequest","_GetAvailableChannelsForConversationRequest","GetAvailableChannelsForConversationResponse","_GetAvailableChannelsForConversationResponse","v","ConversationChannel","GetConfigurationRequest","_GetConfigurationRequest","SubjectParticipant","GetConfigurationResponse","_GetConfigurationResponse","Configuration","GetConversationByKeyRequest","_GetConversationByKeyRequest","ConversationKey","GetConversationByKeyResponse","_GetConversationByKeyResponse","GetConversationSummaryRequest","_GetConversationSummaryRequest","GetConversationSummaryResponse","_GetConversationSummaryResponse","GetConversationViewsRequest","_GetConversationViewsRequest","GetConversationViewsResponse","_GetConversationViewsResponse","View","GetMessageRequest","_GetMessageRequest","GetMessageTemplateRequest","_GetMessageTemplateRequest","GetMessageTemplateResponse","_GetMessageTemplateResponse","MessageTemplate","GetMultiConfigurationRequest","_GetMultiConfigurationRequest","GetMultiConfigurationResponse","_GetMultiConfigurationResponse","GetMultiConversationDetailsRequest","_GetMultiConversationDetailsRequest","FieldMask","GetMultiConversationDetailsResponse","_GetMultiConversationDetailsResponse","GetMultiConversationMessageCountRequest","_GetMultiConversationMessageCountRequest","GetMultiConversationMessageCountResponse","_GetMultiConversationMessageCountResponse","ConversationMessageCount","obj","k","GetMultiMessagesRequest","_GetMultiMessagesRequest","GetMultiMessagesResponse","_GetMultiMessagesResponse","GetMultiParticipantsRequest","_GetMultiParticipantsRequest","GetMultiParticipantsResponse","_GetMultiParticipantsResponse","GetMultiWidgetMessagesRequest","_GetMultiWidgetMessagesRequest","GetMultiWidgetMessagesResponse","_GetMultiWidgetMessagesResponse","GetOwnerEmailRequest","_GetOwnerEmailRequest","GetOwnerEmailResponse","_GetOwnerEmailResponse","GetParticipantsByKeyRequest","_GetParticipantsByKeyRequest","ParticipantKey","GetParticipantsByKeyResponse","_GetParticipantsByKeyResponse","GetWidgetConfigRequest","_GetWidgetConfigRequest","GetWidgetConfigResponse","_GetWidgetConfigResponse","GetWidgetConversationResponse","_GetWidgetConversationResponse","GetWidgetRequest","_GetWidgetRequest","GetWidgetResponse","_GetWidgetResponse","Widget","ListMessageTemplateRequest","_ListMessageTemplateRequest","PagedRequestOptions","ListMessageTemplateResponse","_ListMessageTemplateResponse","PagedResponseMetadata","ListMessagesRequestListMessagesFilters","_ListMessagesRequestListMessagesFilters","ListMessagesRequest","_ListMessagesRequest","ListMessagesResponse","_ListMessagesResponse","ListWidgetsRequest","_ListWidgetsRequest","ListWidgetsResponse","_ListWidgetsResponse","LookupConversationsRequestLookupConversationsFilters","_LookupConversationsRequestLookupConversationsFilters","PlatformLocation","LookupConversationsRequest","_LookupConversationsRequest","LookupConversationsResponse","_LookupConversationsResponse","LookupConversationsResponseConversations","Media","_Media","Metadata","_Metadata","MetadataIdentifier","NewInboxLeadCapturedRequest","_NewInboxLeadCapturedRequest","proto","m","CapturedLead","kwargs","toReturn","NewInboxLeadCapturedResponse","_NewInboxLeadCapturedResponse","PagedRequestOptions","_PagedRequestOptions","PagedResponseMetadata","_PagedResponseMetadata","ReceiveMessageRequest","_ReceiveMessageRequest","enumStringToValue","ConversationChannel","MessageType","PlatformLocation","obj","k","RemoveConversationFromConversationViewRequest","_RemoveConversationFromConversationViewRequest","SearchConversationsRequest","_SearchConversationsRequest","SearchConversationsResponse","_SearchConversationsResponse","SearchConversationsResponseDetailedConversation","SendMessageRequest","_SendMessageRequest","Participant","Metadata","Media","SendMessageResponse","_SendMessageResponse","SendWidgetMessageRequest","_SendWidgetMessageRequest","SendWidgetMessageResponse","_SendWidgetMessageResponse","SetLastSeenRequest","_SetLastSeenRequest","SetLastSeenRequestStatus","SetLastSeenResponse","_SetLastSeenResponse","UpdateConversationRequest","_UpdateConversationRequest","Conversation","FieldMask","UpdateConversationResponse","_UpdateConversationResponse","UpdateMessageStatusRequest","_UpdateMessageStatusRequest","MessageStatus","UpdateMessageTemplateRequest","_UpdateMessageTemplateRequest","MessageTemplate","UpdateMessageTemplateResponse","_UpdateMessageTemplateResponse","UpdateWidgetRequest","_UpdateWidgetRequest","UpdateWidgetResponse","_UpdateWidgetResponse","Widget","UpsertConfigurationRequest","_UpsertConfigurationRequest","Configuration","UpsertConfigurationResponse","_UpsertConfigurationResponse","UpsertProductFeatureRequest","_UpsertProductFeatureRequest","ProductFeature","SubjectParticipant","UpsertProductFeatureResponse","_UpsertProductFeatureResponse","environment","hostMap","HostService","t","ɵɵdefineInjectable","ConversationApiService","inject","HttpClient","HttpHeaders","r","request","map","resp","GetMessageRequest","Message","ListMessagesRequest","ListMessagesResponse","DeleteMessageRequest","__spreadProps","__spreadValues","LookupConversationsRequest","LookupConversationsResponse","GetConversationByKeyRequest","GetConversationByKeyResponse","CreateConversationRequest","CreateConversationResponse","DeleteConversationRequest","GetMultiMessagesRequest","GetMultiMessagesResponse","CreateMultiMessagesRequest","GetMultiConversationDetailsRequest","GetMultiConversationDetailsResponse","GetMultiParticipantsRequest","GetMultiParticipantsResponse","GetMultiConversationMessageCountRequest","GetMultiConversationMessageCountResponse","AddMultiParticipantsRequest","AddMultiParticipantsResponse","GetParticipantsByKeyRequest","GetParticipantsByKeyResponse","GetConversationViewsRequest","GetConversationViewsResponse","AddConversationToConversationViewRequest","CreateWidgetConversationRequest","CreateWidgetConversationResponse","GetMultiWidgetMessagesRequest","GetMultiWidgetMessagesResponse","GetWidgetConversationResponse","GetAvailableChannelsForConversationRequest","GetAvailableChannelsForConversationResponse","EvaluateResponseRequest","CreateWidgetRequest","CreateWidgetResponse","GetWidgetRequest","GetWidgetResponse","DeleteWidgetRequest","ListWidgetsRequest","ListWidgetsResponse","GetWidgetConfigRequest","GetWidgetConfigResponse","ListMessageTemplateRequest","ListMessageTemplateResponse","DeleteMessageTemplateRequest","CreateMessageTemplateRequest","CreateMessageTemplateResponse","GetMessageTemplateRequest","GetMessageTemplateResponse","GetConversationSummaryRequest","GetConversationSummaryResponse","EmailApiService","GetOwnerEmailRequest","GetOwnerEmailResponse","InboxApiService","GetConfigurationRequest","GetConfigurationResponse","GetMultiConfigurationRequest","GetMultiConfigurationResponse","LearnMoreModalComponent","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_LearnMoreModalComponent","ɵɵelement","ɵɵproperty","ctx_r1","getClassForStatus","stage_r1","status","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵtemplate","ProgressTrackerComponent_ng_container_1_div_1_Template","ProgressTrackerComponent_ng_container_1_div_4_Template","ProgressTrackerComponent_ng_container_1_mat_icon_5_Template","ProgressTrackerComponent_ng_container_1_mat_icon_6_Template","ɵɵadvance","isFirst_r3","ɵɵtextInterpolate","name","Status","ProgressTrackerComponent","constructor","stages","cssClasses","Map","NotStarted","InProgress","Completed","Failed","get","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ProgressTrackerComponent_ng_container_1_Template","CommonModule","NgClass","NgForOf","NgIf","MatIcon","styles","_ProgressTrackerComponent","ParticipantType","OwnerType","DataField","BrandStatus","MessagingCampaignStatus","ValidationStatus","LimitType","enumStringToValue$5","enumRef","value","Participant","_Participant","proto","m","ParticipantType","kwargs","toReturn","enumStringToValue$4","A2PRegistrationInfo","_A2PRegistrationInfo","OwnerType","Business","AuthorizedRepresentative","A2PRegistrationStatus","_A2PRegistrationStatus","SecondaryBusinessProfile","TrustBundle","Brand","MessagingCampaign","_AuthorizedRepresentative","_Brand","BrandStatus","_Business","RegistrationIdentifier","_MessagingCampaign","MessagingCampaignStatus","_RegistrationIdentifier","_SecondaryBusinessProfile","ValidationStatus","v","DataField","_TrustBundle","Attribute","_Attribute","proto","m","kwargs","toReturn","enumStringToValue","enumRef","value","CreateA2PRegistrationInfoRequest","_CreateA2PRegistrationInfoRequest","proto","m","enumStringToValue","OwnerType","Business","AuthorizedRepresentative","kwargs","toReturn","CreateSmsClickedEventRequest","_CreateSmsClickedEventRequest","proto","m","kwargs","toReturn","DeleteA2PRegistrationInfoRequest","_DeleteA2PRegistrationInfoRequest","GetA2PRegistrationInfoRequest","_GetA2PRegistrationInfoRequest","GetA2PRegistrationInfoResponse","_GetA2PRegistrationInfoResponse","A2PRegistrationInfo","GetAccountInfoRequest","_GetAccountInfoRequest","Participant","GetAccountInfoResponse","_GetAccountInfoResponse","GetLatestA2PRegistrationStatusRequest","_GetLatestA2PRegistrationStatusRequest","proto","m","kwargs","toReturn","GetLatestA2PRegistrationStatusResponse","_GetLatestA2PRegistrationStatusResponse","A2PRegistrationStatus","GetLimitRequest","_GetLimitRequest","enumStringToValue","LimitType","GetLimitResponse","_GetLimitResponse","Recipient","_Recipient","proto","m","kwargs","toReturn","SendMessageV2Request","_SendMessageV2Request","proto","m","Sender","Recipient","Attribute","kwargs","toReturn","SendMessageV2Response","_SendMessageV2Response","_Sender","enumStringToValue","OwnerType","TriggerA2PRegistrationRequest","_TriggerA2PRegistrationRequest","proto","m","kwargs","toReturn","UpsertA2PRegistrationInfoRequest","_UpsertA2PRegistrationInfoRequest","enumStringToValue","OwnerType","Business","AuthorizedRepresentative","environment","hostMap","HostService","t","ɵɵdefineInjectable","A2PRegistrationApiService","http","hostService","HttpHeaders","r","request","CreateA2PRegistrationInfoRequest","__spreadProps","__spreadValues","GetA2PRegistrationInfoRequest","map","resp","GetA2PRegistrationInfoResponse","DeleteA2PRegistrationInfoRequest","GetLatestA2PRegistrationStatusRequest","GetLatestA2PRegistrationStatusResponse","ɵɵinject","HttpClient","SmsApiService","http","hostService","HttpHeaders","r","request","CreateSmsClickedEventRequest","__spreadProps","__spreadValues","GetAccountInfoRequest","map","resp","GetAccountInfoResponse","SendMessageV2Request","SendMessageV2Response","GetLimitRequest","GetLimitResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","SmsService","smsApiService","sender","BusinessType","BusinessCategory","businessCategoryLabels","Map","automotiveIndustry","agriculture","banking","consumer","education","engineering","energy","oilAndGas","fastMovingConsumerGoods","financial","fintech","foodAndBeverage","government","healthcare","hospitality","insurance","legal","manufacturing","media","online","rawMaterials","realEstate","religion","retail","jewelry","technology","telecommunications","transportation","travel","electronics","notForProfit","businessCategoryToLabel","businessCategory","get","Region","regionLabels","africa","asia","europe","latinAmerica","usaAndCanada","regionToLabel","region","Position","NORTH_AMERICA_COUNTRIES","RegistrationStage","RegistrationTitle","RegistrationContent","SmsInjectionToken","InjectionToken","SmsRegistrationService","constructor","a2pRegistrationApiService","accountGroupService","config","A2PRegistrationState$$","BehaviorSubject","a2pRegistrationInfo","a2pRegistrationStatus","RegistrationStage","NotSubmitted","A2PRegistrationState$","asObservable","registrationStage$","pipe","map","state","a2PRegistrationInfo$","a2pRegistrationStatus$","showExternalBanner$","stage","DataError","shareReplay","ownerType","ownerId$","distinctUntilChanged","existingA2PRegistrationInfo$","switchMap","ownerId","request","getA2pRegistrationInfo","catchError","console","error","of","existingA2PRegistrationStatus$","combineLatest","subaccountID$","subaccountId","getLatestA2pRegistrationStatus","e","response","status","subscribe","a2pInfo","isSubmitted","submitted","Date","next","getRegistrationStage","secondaryBusinessProfileStatus","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_UNSPECIFIED","trustBundleStatus","trustBundle","brandStatus","brand","BrandStatus","BRAND_STATUS_UNSPECIFIED","messagingCampaignStatus","messagingCampaign","MessagingCampaignStatus","MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED","VALIDATION_STATUS_NON_COMPLIANT","BRAND_STATUS_FAILED","MESSAGING_CAMPAIGN_STATUS_FAILED","CampaignError","MESSAGING_CAMPAIGN_STATUS_VERIFIED","RegistrationComplete","ReviewingInfo","upsertA2pRegistration","upsertA2pRegistrationInfo","updateA2pRegistrationInfo","currentState","getValue","__spreadProps","__spreadValues","getAccountGroupInfo$","get","ProjectionFilter","napData","getPrefillA2PFormInfo","a2PRegistrationInfo","Object","keys","length","OwnerType","OWNER_TYPE_ACCOUNT_GROUP","accountGroupInfo","business","regionOfOperation","NORTH_AMERICA_COUNTRIES","includes","country","Region","usaAndCanada","streetAddress","address","streetAddressSecondary","address2","city","postalCode","zip","websiteUrl","website","ɵɵinject","A2PRegistrationApiService","AccountGroupService","SmsInjectionToken","factory","ɵfac","providedIn","_SmsRegistrationService","InfoBannerComponent","constructor","dialog","smsRegistrationService","stages$","A2PRegistrationState$","pipe","map","state","RegistrationStage","NotSubmitted","name","status","Status","NotStarted","Completed","getInformationStageStatus","a2pRegistrationStatus","getMessagingCampaignStageStatus","openLearnMoreModal","open","LearnMoreModalComponent","width","registrationStatus","informationStatus","InProgress","secondaryBusinessProfileStatus","secondaryBusinessProfile","trustBundleStatus","trustBundle","brandStatus","brand","BrandStatus","BRAND_STATUS_APPROVED","ValidationStatus","VALIDATION_STATUS_NON_COMPLIANT","BRAND_STATUS_FAILED","Failed","campaignStatus","messagingCampaignStatus","messagingCampaign","MessagingCampaignStatus","MESSAGING_CAMPAIGN_STATUS_VERIFIED","MESSAGING_CAMPAIGN_STATUS_FAILED","MESSAGING_CAMPAIGN_STATUS_PENDING","ɵɵdirectiveInject","MatDialog","SmsRegistrationService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","ɵɵtextInterpolate1","CommonModule","AsyncPipe","MatCardModule","MatCard","MatCardActions","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyBadgeModule","MatButtonModule","MatButton","TranslateModule","TranslatePipe","ProgressTrackerComponent","styles","_InfoBannerComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r1","ɵɵnextContext","ɵɵresetView","redirectToSMSRegistration","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","smsCardData_r5","buttonType","ɵɵtextInterpolate1","buttonText","ɵɵelementContainerStart","_r3","openLearnMoreModal","ɵɵtemplate","SmsRegistrationCardComponent_ng_container_0_ng_container_30_div_8_Template","ɵɵtextInterpolate","title","content","ɵɵproperty","statusBadgeText","ɵɵelement","_r1","toggleInfoPopover","closeInfoPopover","SmsRegistrationCardComponent_ng_container_0_ng_container_30_Template","getLogoImage","ɵɵsanitizeUrl","ɵɵpipeBind1","statusBadgeColor","smsNumber$","showPopover","popoverOrigin_r6","country$","RegistrationStageToCardData","RegistrationStage","NotSubmitted","RegistrationTitle","NotApproved","RegistrationContent","ReviewingInfo","DataError","CampaignError","RegistrationComplete","ApprovedStatus","SMSNumberToCardData","SmsRegistrationCardComponent","constructor","smsRegistrationService","dialog","router","route","smsService","environmentService","ownerId$","pipe","switchMap","internalId","from","getAccountInfo","type","ParticipantType","PARTICIPANT_TYPE_ACCOUNT_GROUP","catchError","error","console","log","of","map","res","phoneNumber","filter","accountGroupInfo$","getAccountGroupInfo$","shareReplay","bufferSize","refCount","info","napData","country","smsCardData$","registrationStage$","stage","open","LearnMoreModalComponent","width","navigate","relativeTo","getEnvironment","Environment","PROD","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","Router","ActivatedRoute","SmsService","EnvironmentService","selectors","decls","vars","consts","template","rf","ctx","SmsRegistrationCardComponent_ng_container_0_Template","_SmsRegistrationCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openLearnMoreModal","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","ɵɵpipeBind1","SmsRegistrationErrorBannerComponent","constructor","smsRegistrationService","dialog","RegistrationStage","ngOnInit","registrationStage$","open","LearnMoreModalComponent","width","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationErrorBannerComponent_ng_container_0_Template","DataError","_SmsRegistrationErrorBannerComponent","BusinessCategoryToLabelPipe","transform","businessCategory","businessCategoryToLabel","pure","standalone","_BusinessCategoryToLabelPipe","RegionToLabelPipe","transform","region","regionToLabel","pure","standalone","_RegionToLabelPipe","ConfirmationModalComponent","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_ConfirmationModalComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","businessCategory_r1","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","businessType_r2","region_r3","ɵɵtextInterpolate","jobPosition_r4","EIN_REGEX","PHONE_NUMBER_REGEX","ZIP_CODE_REGEX","IdentifierTypeEIN","additionalAddressLine","businessRegistrationNumber","businessName","SmsRegistrationFormComponent","constructor","formBuilder","smsRegistrationService","snackbarService","modal","destroyRef","BusinessCategories","Object","values","BusinessCategory","BusinessTypes","BusinessType","Regions","Region","JobPositions","Position","formLocked","registrationStage","RegistrationStage","NotSubmitted","initialRegistrationFormInfo","Map","fieldsWithIssues","groupOfSomeValuesNeedToChange","customValidatorsMap","subscriptions","fieldWithIssuesToFormFieldsMapping","DataField","DATA_FIELD_LEGAL_BUSINESS_NAME","DATA_FIELD_BUSINESS_CATEGORY","DATA_FIELD_BUSINESS_TYPE","DATA_FIELD_REGION_OF_OPERATION","DATA_FIELD_BUSINESS_REGISTRATION_NUMBER","DATA_FIELD_STREET_ADDRESS","DATA_FIELD_STREET_ADDRESS_SECONDARY","DATA_FIELD_CITY","DATA_FIELD_STATE","DATA_FIELD_POSTAL_CODE","DATA_FIELD_WEBSITE_URL","DATA_FIELD_COUNTRY","DATA_FIELD_FIRST_NAME","DATA_FIELD_LAST_NAME","DATA_FIELD_JOB_POSITION","DATA_FIELD_BUSINESS_TITLE","DATA_FIELD_EMAIL","DATA_FIELD_PHONE_NUMBER","smsForm","group","Validators","maxLength","businessCategory","businessType","regionOfOperation","pattern","address","state","city","zipCode","website","firstName","lastName","jobPosition","businessTitle","email","phoneNumber","ngOnInit","getRegistration","sub","controls","valueChanges","subscribe","value","businessTitleInJobPositions","some","p","otherPosition","patchValue","push","keys","forEach","key","includes","fieldName","updateValueAndValidity","emitEvent","ngOnDestroy","s","unsubscribe","submitRegistrationForm","toggleSubmitValidators","invalid","openErrorSnack","open","ConfirmationModalComponent","width","afterClosed","pipe","take","result","upsertData","saveChanges","errors","errorKey","isSubmitted","form","request","business","legalName","industry","registrationIdentifier","identifierType","identifier","websiteUrl","socialMediaProfileUrls","streetAddress","streetAddressSecondary","postalCode","country","authorizedRepresentative","submitted","upsertA2pRegistration","openWithOptions","panelClass","lockForm","combineLatest","a2PRegistrationInfo$","registrationStage$","a2pRegistrationStatus$","getPrefillA2PFormInfo","takeUntilDestroyed","a2pRegistrationInfo","registrationStatus","a2PFormInfo","prefillFormWithA2PFormInfo","DataError","unlockForm","getInitialRegistrationFormInfo","getFormFieldsWithIssues","getGroupOfSomeValuesNeedToChange","control","get","markAsTouched","error","status","disable","enable","on","addValidators","required","val","undefined","sameValueValidatorFn","sameValueValidator","set","someValueNeedsToChange","someValueNeedsToChangeValidator","removeValidators","customValidatorFn","delete","a2PRegistrationInfo","originalFormFieldValue","sameValueError","groupOfFields","originalValuesMap","passed","originalValue","entries","c","groupValueError","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_NON_COMPLIANT","length","field","trustBundle","brand","BrandStatus","BRAND_STATUS_FAILED","ɵɵdirectiveInject","FormBuilder","SmsRegistrationService","SnackbarService","MatDialog","DestroyRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationFormComponent_mat_icon_7_Template","ɵɵelement","SmsRegistrationFormComponent_glxy_hint_14_Template","SmsRegistrationFormComponent_glxy_error_15_Template","SmsRegistrationFormComponent_mat_option_21_Template","SmsRegistrationFormComponent_mat_option_27_Template","SmsRegistrationFormComponent_mat_option_33_Template","SmsRegistrationFormComponent_glxy_hint_39_Template","SmsRegistrationFormComponent_glxy_error_40_Template","SmsRegistrationFormComponent_glxy_error_67_Template","SmsRegistrationFormComponent_mat_icon_80_Template","SmsRegistrationFormComponent_mat_option_98_Template","SmsRegistrationFormComponent_glxy_error_113_Template","SmsRegistrationFormComponent_glxy_hint_119_Template","SmsRegistrationFormComponent_glxy_error_120_Template","ɵɵlistener","hasError","touched","_SmsRegistrationFormComponent","SmsRegistrationComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","_SmsRegistrationComponent","en_devel_default","SMSI18NModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_SMSI18NModule","SmsModule","SmsRegistrationService","imports","CommonModule","MatCardModule","GalaxyFormFieldModule","MatInputModule","MatSelectModule","MatButtonModule","ReactiveFormsModule","MatIconModule","InfoBannerComponent","GalaxyAlertModule","MatChipsModule","GalaxyBadgeModule","GalaxyPopoverModule","TranslateModule","SMSI18NModule","ProgressTrackerComponent","_SmsModule","TemplateType","AccountGroupsHydrationOption","_AccountGroupsHydrationOption","proto","m","kwargs","toReturn","AppsHydrationOption","_AppsHydrationOption","proto","m","kwargs","toReturn","BrandingHydrationOption","_BrandingHydrationOption","proto","m","kwargs","toReturn","HydrationOptions","_HydrationOptions","AccountGroupsHydrationOption","AppsHydrationOption","PackagesHydrationOption","UsersHydrationOption","SalesActivitiesHydrationOption","PartnerConfigHydrationOption","TasksHydrationOption","PackagesHydrationOption","_PackagesHydrationOption","proto","m","kwargs","toReturn","PartnerConfigHydrationOption","_PartnerConfigHydrationOption","SalesActivitiesHydrationOption","_SalesActivitiesHydrationOption","proto","m","kwargs","toReturn","TasksHydrationOption","_TasksHydrationOption","proto","m","kwargs","toReturn","UsersHydrationOption","_UsersHydrationOption","proto","m","kwargs","toReturn","enumStringToValue$2","enumRef","value","RawTemplate","_RawTemplate","TemplateType","Template","_Template","HydrationOptions","TemplateIdentifier","_TemplateIdentifier","SubstitutionParameter","_SubstitutionParameter","proto","m","kwargs","toReturn","SubstitutionParameterError","_SubstitutionParameterError","SubstitutionParameterOptions","_SubstitutionParameterOptions","enumStringToValue","enumRef","value","AddTemplateLocaleRequest","_AddTemplateLocaleRequest","CreateTemplateRequest","_CreateTemplateRequest","Template","DeleteTemplateRequest","_DeleteTemplateRequest","ListSubstitutionParametersRequestFilters","_ListSubstitutionParametersRequestFilters","GetAllSubstitutionParametersRequest","_GetAllSubstitutionParametersRequest","GetAllSubstitutionParametersResponse","_GetAllSubstitutionParametersResponse","GetMultiTemplateRequest","_GetMultiTemplateRequest","GetMultiTemplateResponse","_GetMultiTemplateResponse","GetMultiTemplateResponseGetOrError","_GetMultiTemplateResponseGetOrError","GetTemplateRequest","_GetTemplateRequest","GetTemplateResponse","_GetTemplateResponse","ListSubstitutionParametersRequest","_ListSubstitutionParametersRequest","ListSubstitutionParametersResponse","_ListSubstitutionParametersResponse","ListTemplateRequest","_ListTemplateRequest","ListTemplateResponse","_ListTemplateResponse","RenderTemplateMultiRequestParameterizedTemplates","_RenderTemplateMultiRequestParameterizedTemplates","RenderMultiRequestRender","_RenderMultiRequestRender","TemplateType","HydrationOptions","RenderMultiRequest","_RenderMultiRequest","RenderMultiResponse","_RenderMultiResponse","RenderMultiResponseRenderOrError","_RenderMultiResponseRenderOrError","RenderRequest","_RenderRequest","RenderResponse","_RenderResponse","RenderTemplateMultiRequest","_RenderTemplateMultiRequest","RenderTemplateRequest","_RenderTemplateRequest","ReplaceTemplateRequest","_ReplaceTemplateRequest","UpdateTemplateRequest","_UpdateTemplateRequest","VerifySubstitutionParametersRequest","_VerifySubstitutionParametersRequest","RawTemplate","TemplateIdentifier","VerifySubstitutionParametersResponse","_VerifySubstitutionParametersResponse","environment","hostMap","HostService","t","ɵɵdefineInjectable","TemplatesApiService","http","hostService","HttpHeaders","r","request","__spreadProps","__spreadValues","map","resp","ɵɵinject","HttpClient","TemplatesService","client","applicationId","templateId","locale","templateIds","template","templateContent","parameters","templateType","subParamOpts","errorOnMissingParam","options","renderFakeData","filters","EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN","InjectionToken","defaultDynamicComponents","textKey","replacementTags","DynamicComponentSelectorService","constructor","templatesService","appListingService","parentVariableCategories","overrideParentVariableCategories","hasComponentsToDisplay","length","getVariables","filters","listSubstitutionParameters","pipe","map","params","filterSubstitutionParameters","v","options","subItems","filter","p","some","t","replacementTag","sort","a","b","indexOf","getProductSubstitutionVariables","listAllActivatableApps","take","variableCategories","ɵɵinject","TemplatesService","EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN","factory","ɵfac","_DynamicComponentSelectorService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","mainItem_r4","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","textKey","subParam_r6","displayName","ɵɵelementContainerStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r5","ctx_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","chosenParam","ɵɵresetView","ɵɵlistener","handleParamChange","ɵɵtemplate","DynamicComponentDialogComponent_ng_container_4_ng_container_8_mat_option_7_Template","chosenCategory","ɵɵtwoWayProperty","subItems","v_r8","value","title","_r7","chosenParamDetails","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_mat_option_7_Template","dynamicValues_r9","ɵɵelement","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_template_3_Template","ɵɵtemplateRefExtractor","chosenDynamicParam$","loading_r10","_r2","handleCategoryChange","DynamicComponentDialogComponent_ng_container_4_mat_option_7_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_8_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_Template","ɵɵtextInterpolate","variables_r11","options","nestedDynamicSelector","DynamicComponentDialogComponent","constructor","dynamicComponentSelectorService","dialogRef","formResult","EventEmitter","allowedEntryApps","variables$","getVariables","includeHtml","pipe","map","vars","filter","v","requiredParams","reduce","prev","curr","i","arr","shareReplay","chosenDynamicParam$$","ReplaySubject","ngOnInit","asObservable","switchMap","chosenDynamicParam","getProductSubstitutionVariables","apps","a","includes","appId","app","name","replacementTag","next","add","close","ɵɵdirectiveInject","DynamicComponentSelectorService","MatDialogRef","selectors","outputs","decls","consts","template","rf","ctx","DynamicComponentDialogComponent_ng_container_4_Template","_r1","DynamicComponentDialogComponent_ng_template_14_Template","empty_r12","_DynamicComponentDialogComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openDialog","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","DynamicComponentSelectorComponent","constructor","dialog","variableService","modelChange","EventEmitter","variablesReady","hasComponentsToDisplay","open","DynamicComponentDialogComponent","width","height","afterClosed","pipe","take","subscribe","res","selectVariable","replacementTag","startPos","target","selectionStart","endPos","selectionEnd","contentBefore","value","substr","contentAfter","length","newValue","emit","window","setTimeout","focus","setSelectionRange","ɵɵdirectiveInject","MatDialog","DynamicComponentSelectorService","selectors","inputs","marketId","model","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DynamicComponentSelectorComponent_mat_icon_0_Template","_DynamicComponentSelectorComponent","en_devel_default","TemplatesI18nModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_TemplatesI18nModule","DynamicComponentSelectorModule","DynamicComponentSelectorService","imports","CommonModule","GalaxyTooltipModule","GalaxyWrapModule","MatFormFieldModule","MatButtonModule","MatDialogModule","MatInputModule","MatListModule","MatIconModule","MatTooltipModule","MatCardModule","MatOptionModule","TranslateModule","MatSelectModule","GalaxyEmptyStateModule","TemplatesI18nModule","_DynamicComponentSelectorModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","emitNewTemplateValue","smsText_r3","TextMessageBuilderFormComponent","constructor","smsForm","FormGroup","name","FormControl","message","template","EventEmitter","valid","setInitialInputText","inputText","patchValue","ngOnInit","valueChanges","subscribe","value","emit","statusChanges","status","selectors","viewQuery","rf","ctx","ɵɵtemplate","TextMessageBuilderFormComponent_ng_container_5_Template","TextMessageBuilderFormComponent_ng_template_6_Template","ɵɵtemplateRefExtractor","allowDynamic","hasDynamic_r4","CommonModule","NgIf","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","RequiredValidator","FormGroupDirective","FormControlName","MatInputModule","MatInput","DynamicComponentSelectorModule","DynamicComponentSelectorComponent","styles","_TextMessageBuilderFormComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵstyleProp","ctx_r0","profileSourceIconCSS","ɵɵelementStart","ɵɵtemplate","ChatBubbleComponent_ng_container_1_ng_container_4_Template","ɵɵelementEnd","ɵɵproperty","profilePicUrl","profileSVGIcon","messageFrom","profileBackgroundColor","profileSourceIconUrl","ɵɵprojection","messageText","ɵɵsanitizeHtml","messageMetadata","ChatBubbleComponent","constructor","class","type","showProfilePic","sentFromYou","isTyping","shouldShowProfilePic","profilePicCSS","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ChatBubbleComponent_ng_container_1_Template","ChatBubbleComponent_ng_container_4_Template","ChatBubbleComponent_ng_container_5_Template","ɵɵclassProp","_ChatBubbleComponent","ChatDividerTextComponent","selectors","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","_ChatDividerTextComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","ctx_r0","isMetadataPresented","ɵɵadvance","ɵɵtextInterpolate1","messageMetadata","ChatEventComponent","constructor","eRef","inject","ElementRef","clickTimeout","onMouseDown","event","window","getSelection","toString","clearTimeout","setTimeout","nativeElement","querySelector","contains","target","onClick","HTMLAnchorElement","selectors","hostBindings","rf","ctx","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵprojection","ɵɵtemplate","ChatEventComponent_div_2_Template","ɵɵproperty","_ChatEventComponent","ChatContainerComponent","constructor","class","chatId","showNewMessageIndicator","isIOS","test","window","navigator","userAgent","animationTimer","animationDuration","currentAnimationDuration","scrollable","chatContent","nativeElement","scrollTop","scrollTo","top","behavior","onNewMessageReceived","mobileSafariScrollFix","onNewMessageSent","scrollToBottom","onScroll","setTimeout","ngAfterViewInit","resetAnimationDuration","ngOnChanges","changes","currentValue","previousValue","getAnimationDurationStyle","clearTimeout","ngOnDestroy","selectors","viewQuery","rf","ctx","ɵɵclassMap","ɵɵstyleProp","ɵɵelementStart","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵprojection","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵclassProp","_ChatContainerComponent","import_dompurify","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵprojection","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r0","messageStatusText","messageTime","ChatMessageComponent","constructor","itemContent","isTyping","isMetadataPresented","eRef","inject","ElementRef","class","messageStatusClass","messageStatus","onClick","event","window","getSelection","toString","nativeElement","querySelector","contains","target","isLink","HTMLAnchorElement","isInElement","ngAfterViewInit","messageText","bubbleElement","innerHTML","DOMPurify","sanitize","selectors","viewQuery","rf","ctx","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵclassMap","ɵɵtemplate","ChatMessageComponent_mat_icon_1_Template","ChatMessageComponent_ng_container_5_Template","ChatMessageComponent_ng_container_6_Template","ChatMessageComponent_span_10_Template","ChatMessageComponent_span_11_Template","ɵɵproperty","ɵɵpureFunction0","_c3","includes","ɵɵclassProp","CommonModule","NgClass","NgIf","NgSwitch","NgSwitchCase","NgSwitchDefault","MatIconModule","MatIcon","TranslateModule","TranslatePipe","styles","changeDetection","_ChatMessageComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c1","ctx_r0","profileSourceIconName","ɵɵelementStart","ɵɵtemplate","ChatMessageGroupComponent_ng_container_1_ng_container_4_Template","ɵɵelementEnd","profilePicUrl","profileIcon","profileSVGIcon","messageFrom","profileBackgroundColor","ɵɵtext","ɵɵtextInterpolate","messageMetadata","ChatMessageGroupComponent","constructor","class","type","showProfilePic","sentFromYou","isTyping","shouldShowProfilePic","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ChatMessageGroupComponent_ng_container_1_Template","ChatMessageGroupComponent_span_7_Template","ChatMessageGroupComponent_span_8_Template","ɵɵprojection","ChatMessageGroupComponent_ng_container_10_Template","ɵɵclassProp","ɵɵpipeBind1","CommonModule","NgClass","NgIf","GalaxyAvatarModule","AvatarComponent","ChatMessageComponent","TranslateModule","TranslatePipe","styles","changeDetection","_ChatMessageGroupComponent","AdditionalMetadataDirective","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_AdditionalMetadataDirective","MODULE_IMPORTS","CommonModule","MatTooltipModule","CdkScrollableModule","GalaxyAvatarModule","ChatMessageGroupComponent","ChatMessageComponent","MatButtonModule","MatIconModule","MODULE_DECLARATIONS","ChatBubbleComponent","ChatDividerTextComponent","ChatEventComponent","ChatContainerComponent","AdditionalMetadataDirective","MODULE_EXPORTS","GalaxyChatModule","_GalaxyChatModule","TextMessageBuilderPreviewComponent","constructor","templates","loading","ngOnChanges","changes","allowDynamic","rendered$","render","currentValue","account_group_id","partner_id","contact_id","TemplateType","TEMPLATE_TYPE_GOLANG_TEXT","accountGroupId","partnerId","contactId","undefined","pipe","tap","_","ɵɵdirectiveInject","TemplatesService","selectors","inputs","messageText","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","AsyncPipe","ChatMessageGroupComponent","ChatMessageComponent","MatCardModule","styles","_TextMessageBuilderPreviewComponent","TextMessageBuilderComponent","constructor","initialInputText","message","name","sms$$","BehaviorSubject","sms$","asObservable","valid$$","valid$","sms","EventEmitter","valid","setMessageBuilderText","messageBuilderText","ngOnInit","subscribe","value","emit","status","updateSMS","m","next","updateValid","selectors","inputs","allowDynamic","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","MatCardModule","MatCard","MatCardContent","CommonModule","AsyncPipe","TextMessageBuilderFormComponent","TextMessageBuilderPreviewComponent","styles","_TextMessageBuilderComponent","CONVERSATION_CONFIG_TOKEN","InjectionToken","USER_ID_TOKEN","ACCOUNT_GROUP_ID_TOKEN","CONVERSATION_COUNTRY_TOKEN","CONVERSATION_GEOGRAPHICAL_STATE_TOKEN","PARTNER_ID_TOKEN","PARTNER_BRAND_NAME_TOKEN","MARKET_ID_TOKEN","COMPANY_NAME_TOKEN","FEATURE_FLAG_TOKEN","CONVERSATION_IMAGE_SERVICE_TOKEN","CONVERSATION_PLATFORM_LOCATION_TOKEN","CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN","CONVERSATION_ROUTES_TOKEN","CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN","CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN","CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN","CONVERSATION_SMS_ENABLED_TOKEN","CONVERSATION_WEB_CHAT_ENABLED_TOKEN","CONVERSATION_CHANNEL_SERVICE_TOKEN","GROUP_ID_TOKEN","StubInboxImageService","getImageSrc","_imageName","Error","factory","ɵfac","providedIn","_StubInboxImageService","CONVERSATION_HOST_APP_INTERFACE_TOKEN"],"x_google_ignoreList":[0,5,27]}