{"version":3,"sources":["node_modules/@vendasta/email/fesm2020/vendasta-email.mjs","apps/vendasta-center-client/src/app/pages/email/preview/dev-mappings.ts","node_modules/@vendasta/spambam/fesm2020/vendasta-spambam.mjs","apps/vendasta-center-client/src/app/shared/directives/copy-to-clipboard.directive.ts","apps/vendasta-center-client/src/app/pages/email/preview/email-preview.component.ts","apps/vendasta-center-client/src/app/pages/email/preview/email-preview.component.html","apps/vendasta-center-client/src/app/pages/email/admin/email-admin.component.ts","apps/vendasta-center-client/src/app/pages/email/admin/email-admin.component.html","apps/vendasta-center-client/src/app/pages/email/email.data-source.ts","apps/vendasta-center-client/src/app/pages/email/email.component.ts","apps/vendasta-center-client/src/app/pages/email/email.component.html","libs/data-providers/src/lib/base.ts","apps/vendasta-center-client/src/app/data-providers/email/sendgrid-admins-source.service.ts","apps/vendasta-center-client/src/app/data-providers/email/sendgrid-reputations.source.ts","libs/email-ui/preferences/data-sources/email-preferences.source.ts","libs/email-ui/preferences/data-sources/email-categories.source.ts","libs/email-ui/preferences/data-sources/data-sources.module.ts","apps/vendasta-center-client/src/app/data-providers/data-providers.module.ts","apps/vendasta-center-client/src/app/pages/email/ui-utils/async.ts","apps/vendasta-center-client/src/app/pages/email/sendgrid-admins/sendgrid-admins/sendgrid-admins-table/sendgrid-admins-table.component.ts","apps/vendasta-center-client/src/app/pages/email/sendgrid-admins/sendgrid-admins/sendgrid-admins-table/sendgrid-admins-table.component.html","apps/vendasta-center-client/src/app/pages/email/sendgrid-admins/sendgrid-admins/sendgrid-admins.component.ts","apps/vendasta-center-client/src/app/pages/email/sendgrid-admins/sendgrid-admins/sendgrid-admins.component.html","apps/vendasta-center-client/src/app/pages/email/send-grid-index/resubscribe/resubscribe.component.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-index/resubscribe/resubscribe.component.html","apps/vendasta-center-client/src/app/pages/email/send-grid-index/unbounce/unbounce.component.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-index/unbounce/unbounce.component.html","apps/vendasta-center-client/src/app/pages/email/send-grid-index/send-grid-index.component.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-index/send-grid-index.component.html","apps/vendasta-center-client/src/app/pages/email/send-grid-reputation/send-grid-reputation.component.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-reputation/send-grid-reputation.component.html","libs/email-ui/preferences/truncate.pipe.ts","libs/email-ui/preferences/preferences.component.ts","libs/email-ui/preferences/preferences.component.html","apps/vendasta-center-client/src/app/pages/email/email-users/recipient-status/recipient-status.component.ts","apps/vendasta-center-client/src/app/pages/email/email-users/recipient-status/recipient-status.component.html","apps/vendasta-center-client/src/app/pages/email/email-users/email-users.component.ts","apps/vendasta-center-client/src/app/pages/email/email-users/email-users.component.html","apps/vendasta-center-client/src/app/core/pending-changes.guard.ts","libs/email-ui/domain-authorization/src/domain-cache.service.ts","libs/email-ui/domain-authorization/src/domain-info-card/dependencies.ts","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.component.ts","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.component.html","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.component.ts","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.component.html","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.component.ts","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.component.html","libs/email-ui/domain-authorization/src/default-domain.service.ts","libs/email-ui/domain-authorization/src/domains/can-add-domain.pipe.ts","libs/email-ui/domain-authorization/src/domains/domains.component.ts","libs/email-ui/domain-authorization/src/domains/domains.component.html","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.component.ts","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.component.html","libs/email-ui/domain-authorization/src/sender-info-card/dependencies.ts","libs/email-ui/email-form-validators/src/validators.ts","libs/email-ui/domain-authorization/src/domains-dialog/domain-status-and-name/domain-status-and-name.component.ts","libs/email-ui/domain-authorization/src/domains-dialog/domain-status-and-name/domain-status-and-name.component.html","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.component.ts","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/selected-domain.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/selected-domain-factory.service.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/email-forwarding-info/email-forwarding-info.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/email-forwarding-info/email-forwarding-info.component.html","libs/email-ui/email-username-input/email-username-input.component.ts","libs/email-ui/email-username-input/email-username-input.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/sender-info-form.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/sender-info-form.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.component.html","libs/email-ui/domain-authorization/src/domain-authorization.component.ts","libs/email-ui/domain-authorization/src/domain-authorization.component.html","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.module.ts","libs/email-ui/src/lib/i18n/assets/en_devel.json","libs/email-ui/src/lib/i18n/email-ui-i18n.module.ts","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.module.ts","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.module.ts","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.module.ts","libs/email-ui/domain-authorization/src/domains/domains.module.ts","libs/email-ui/email-username-input/email-username-input.module.ts","libs/email-ui/domain-authorization/src/domain-info-dialog/domain-info-dialog.module.ts","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.module.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.module.ts","libs/email-ui/domain-authorization/src/domain-authorization.module.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/domain-records/domain-records.component.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/domain-records/domain-records.component.html","apps/vendasta-center-client/src/app/pages/email/email-senders/sender-status.component.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/sender-status.component.html","libs/email-ui/sender-chooser/src/sender-chooser.component.ts","libs/email-ui/sender-chooser/src/sender-chooser.component.html","apps/vendasta-center-client/src/app/pages/email/email-senders/email-senders.component.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/email-senders.component.html","apps/vendasta-center-client/src/app/pages/email/email.routing.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-index/resubscribe/resubscribe.module.ts","apps/vendasta-center-client/src/app/pages/email/send-grid-index/unbounce/unbounce.module.ts","apps/vendasta-center-client/src/app/pages/email/sendgrid-admins/sendgrid-admins.module.ts","libs/email-ui/preferences/preferences.module.ts","apps/vendasta-center-client/src/app/pages/email/email-users/email-users.module.ts","libs/email-ui/sender-chooser/src/sender-chooser.module.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/domain-records/domain-records.module.ts","apps/vendasta-center-client/src/app/pages/email/email-senders/email-senders.module.ts","apps/vendasta-center-client/src/app/pages/email/email.module.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject, NgModule } from '@angular/core';\nimport { map, mapTo, shareReplay } from 'rxjs/operators';\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nfunction enumStringToValue$8(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$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DateRange {\n static fromProto(proto) {\n let m = new DateRange();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\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.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\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 EmailDomain {\n static fromProto(proto) {\n let m = new EmailDomain();\n m = Object.assign(m, proto);\n if (proto.mail) {\n m.mail = Record.fromProto(proto.mail);\n }\n if (proto.dkim1) {\n m.dkim1 = Record.fromProto(proto.dkim1);\n }\n if (proto.dkim2) {\n m.dkim2 = Record.fromProto(proto.dkim2);\n }\n if (proto.dmarc) {\n m.dmarc = Record.fromProto(proto.dmarc);\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.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.mail !== 'undefined' && this.mail !== null) {\n toReturn['mail'] = 'toApiJson' in this.mail ? this.mail.toApiJson() : this.mail;\n }\n if (typeof this.dkim1 !== 'undefined' && this.dkim1 !== null) {\n toReturn['dkim1'] = 'toApiJson' in this.dkim1 ? this.dkim1.toApiJson() : this.dkim1;\n }\n if (typeof this.dkim2 !== 'undefined' && this.dkim2 !== null) {\n toReturn['dkim2'] = 'toApiJson' in this.dkim2 ? this.dkim2.toApiJson() : this.dkim2;\n }\n if (typeof this.apiKey !== 'undefined') {\n toReturn['apiKey'] = this.apiKey;\n }\n if (typeof this.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.domainId !== 'undefined') {\n toReturn['domainId'] = this.domainId;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n if (typeof this.dmarc !== 'undefined' && this.dmarc !== null) {\n toReturn['dmarc'] = 'toApiJson' in this.dmarc ? this.dmarc.toApiJson() : this.dmarc;\n }\n return toReturn;\n }\n}\nclass Record {\n static fromProto(proto) {\n let m = new Record();\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.subdomain !== 'undefined') {\n toReturn['subdomain'] = this.subdomain;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.currentValue !== 'undefined') {\n toReturn['currentValue'] = this.currentValue;\n }\n if (typeof this.verified !== 'undefined') {\n toReturn['verified'] = this.verified;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EventType = /*#__PURE__*/function (EventType) {\n EventType[EventType[\"EMPTY\"] = 0] = \"EMPTY\";\n EventType[EventType[\"PROCESSED\"] = 1] = \"PROCESSED\";\n EventType[EventType[\"DELIVERED\"] = 2] = \"DELIVERED\";\n EventType[EventType[\"OPENED\"] = 3] = \"OPENED\";\n EventType[EventType[\"CLICKED\"] = 4] = \"CLICKED\";\n EventType[EventType[\"BOUNCED\"] = 5] = \"BOUNCED\";\n EventType[EventType[\"DEFERRED\"] = 6] = \"DEFERRED\";\n EventType[EventType[\"DROPPED\"] = 7] = \"DROPPED\";\n EventType[EventType[\"SPAMREPORT\"] = 8] = \"SPAMREPORT\";\n EventType[EventType[\"UNSUBSCRIBED\"] = 9] = \"UNSUBSCRIBED\";\n EventType[EventType[\"RESUBSCRIBED\"] = 10] = \"RESUBSCRIBED\";\n return EventType;\n}(EventType || {});\nvar NotificationType = /*#__PURE__*/function (NotificationType) {\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_UPSELL\"] = 0] = \"NOTIFICATION_TYPE_PRODUCT_UPSELL\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_ADOPTION\"] = 1] = \"NOTIFICATION_TYPE_PRODUCT_ADOPTION\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\"] = 2] = \"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\";\n return NotificationType;\n}(NotificationType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ContentContentType = /*#__PURE__*/function (ContentContentType) {\n ContentContentType[ContentContentType[\"TEXT_PLAIN\"] = 0] = \"TEXT_PLAIN\";\n ContentContentType[ContentContentType[\"TEXT_HTML\"] = 1] = \"TEXT_HTML\";\n return ContentContentType;\n}(ContentContentType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar BounceSenderType = /*#__PURE__*/function (BounceSenderType) {\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_INVALID\"] = 0] = \"UNBOUNCE_SENDER_TYPE_INVALID\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_PARTNER\"] = 1] = \"UNBOUNCE_SENDER_TYPE_PARTNER\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_BUSINESS\"] = 2] = \"UNBOUNCE_SENDER_TYPE_BUSINESS\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_YESWARE\"] = 3] = \"UNBOUNCE_SENDER_TYPE_YESWARE\";\n return BounceSenderType;\n}(BounceSenderType || {});\nvar ChangeEmailDomainStatus = /*#__PURE__*/function (ChangeEmailDomainStatus) {\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\"] = 0] = \"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\"] = 1] = \"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\"] = 2] = \"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\";\n return ChangeEmailDomainStatus;\n}(ChangeEmailDomainStatus || {});\nvar EmailQueueStatus = /*#__PURE__*/function (EmailQueueStatus) {\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_UNSPECIFIED\"] = 0] = \"EMAIL_QUEUE_STATUS_UNSPECIFIED\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_RUNNING\"] = 1] = \"EMAIL_QUEUE_STATUS_RUNNING\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_DISABLED\"] = 2] = \"EMAIL_QUEUE_STATUS_DISABLED\";\n return EmailQueueStatus;\n}(EmailQueueStatus || {});\nvar Namespace = /*#__PURE__*/function (Namespace) {\n Namespace[Namespace[\"NAMESPACE_INVALID\"] = 0] = \"NAMESPACE_INVALID\";\n Namespace[Namespace[\"NAMESPACE_EMAIL\"] = 1] = \"NAMESPACE_EMAIL\";\n return Namespace;\n}(Namespace || {});\nvar RecipientStatusEnum = /*#__PURE__*/function (RecipientStatusEnum) {\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_INVALID\"] = 0] = \"RECIPIENT_STATUS_INVALID\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_HARD\"] = 1] = \"RECIPIENT_STATUS_HARD\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_SOFT\"] = 2] = \"RECIPIENT_STATUS_SOFT\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_UNKNOWN\"] = 3] = \"RECIPIENT_STATUS_UNKNOWN\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_RESET\"] = 4] = \"RECIPIENT_STATUS_RESET\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_NOT_BLOCKED\"] = 5] = \"RECIPIENT_STATUS_NOT_BLOCKED\";\n return RecipientStatusEnum;\n}(RecipientStatusEnum || {});\nvar SenderType = /*#__PURE__*/function (SenderType) {\n SenderType[SenderType[\"SENDER_TYPE_INVALID\"] = 0] = \"SENDER_TYPE_INVALID\";\n SenderType[SenderType[\"SENDER_TYPE_PARTNER\"] = 1] = \"SENDER_TYPE_PARTNER\";\n SenderType[SenderType[\"SENDER_TYPE_BUSINESS\"] = 2] = \"SENDER_TYPE_BUSINESS\";\n return SenderType;\n}(SenderType || {});\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 EmailEvent {\n static fromProto(proto) {\n let m = new EmailEvent();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue$5(EventType, proto.eventType);\n }\n if (proto.eventTime) {\n m.eventTime = new Date(proto.eventTime);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventTime !== 'undefined' && this.eventTime !== null) {\n toReturn['eventTime'] = 'toApiJson' in this.eventTime ? this.eventTime.toApiJson() : this.eventTime;\n }\n if (typeof this.ipAddress !== 'undefined') {\n toReturn['ipAddress'] = this.ipAddress;\n }\n if (typeof this.userAgent !== 'undefined') {\n toReturn['userAgent'] = this.userAgent;\n }\n if (typeof this.urlClicked !== 'undefined') {\n toReturn['urlClicked'] = this.urlClicked;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.urlClickedNormalized !== 'undefined') {\n toReturn['urlClickedNormalized'] = this.urlClickedNormalized;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\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 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}\nclass Bucket {\n static fromProto(proto) {\n let m = new Bucket();\n m = Object.assign(m, proto);\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.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\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 ContactParticipant {\n static fromProto(proto) {\n let m = new ContactParticipant();\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.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass Content {\n static fromProto(proto) {\n let m = new Content();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$4(ContentContentType, 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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.sensitive !== 'undefined') {\n toReturn['sensitive'] = this.sensitive;\n }\n return toReturn;\n }\n}\nclass EmailMessage {\n static fromProto(proto) {\n let m = new EmailMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n if (typeof this.originUserId !== 'undefined') {\n toReturn['originUserId'] = this.originUserId;\n }\n return toReturn;\n }\n}\nclass EmailMessageV2 {\n static fromProto(proto) {\n let m = new EmailMessageV2();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = UserParticipant.fromProto(proto.to);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n return toReturn;\n }\n}\nclass EmailWithCustomDomainMessage {\n static fromProto(proto) {\n let m = new EmailWithCustomDomainMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.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.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n return toReturn;\n }\n}\nclass GCSAttachment {\n static fromProto(proto) {\n let m = new GCSAttachment();\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.bucket !== 'undefined') {\n toReturn['bucket'] = this.bucket;\n }\n if (typeof this.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass Header {\n static fromProto(proto) {\n let m = new Header();\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 Links {\n static fromProto(proto) {\n let m = new Links();\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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\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.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass ServiceProviderInfo {\n static fromProto(proto) {\n let m = new ServiceProviderInfo();\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.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n return toReturn;\n }\n}\nclass URLAttachment {\n static fromProto(proto) {\n let m = new URLAttachment();\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.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass UserParticipant {\n static fromProto(proto) {\n let m = new UserParticipant();\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 return toReturn;\n }\n}\nclass WhiteLabelEmailMessage {\n static fromProto(proto) {\n let m = new WhiteLabelEmailMessage();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.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.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlContent !== 'undefined') {\n toReturn['htmlContent'] = this.htmlContent;\n }\n if (typeof this.plainTextContent !== 'undefined') {\n toReturn['plainTextContent'] = this.plainTextContent;\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.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\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 PartnerEmailQuota {\n static fromProto(proto) {\n let m = new PartnerEmailQuota();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\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}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AttachmentInfo {\n static fromProto(proto) {\n let m = new AttachmentInfo();\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.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.charset !== 'undefined') {\n toReturn['charset'] = this.charset;\n }\n if (typeof this.storageObjectName !== 'undefined') {\n toReturn['storageObjectName'] = this.storageObjectName;\n }\n if (typeof this.storageObjectUrl !== 'undefined') {\n toReturn['storageObjectUrl'] = this.storageObjectUrl;\n }\n return toReturn;\n }\n}\nclass Envelope {\n static fromProto(proto) {\n let m = new Envelope();\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.toField !== 'undefined') {\n toReturn['toField'] = this.toField;\n }\n if (typeof this.fromField !== 'undefined') {\n toReturn['fromField'] = this.fromField;\n }\n return toReturn;\n }\n}\nclass InboundMessage {\n static fromProto(proto) {\n let m = new InboundMessage();\n m = Object.assign(m, proto);\n if (proto.contentIds) {\n m.contentIds = proto.contentIds.map(Attribute.fromProto);\n }\n if (proto.toField) {\n m.toField = proto.toField.map(Participant.fromProto);\n }\n if (proto.fromField) {\n m.fromField = Participant.fromProto(proto.fromField);\n }\n if (proto.envelope) {\n m.envelope = Envelope.fromProto(proto.envelope);\n }\n if (proto.attachmentInfo) {\n m.attachmentInfo = proto.attachmentInfo.map(AttachmentInfo.fromProto);\n }\n if (proto.charsets) {\n m.charsets = proto.charsets.map(Attribute.fromProto);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.headers !== 'undefined') {\n toReturn['headers'] = this.headers;\n }\n if (typeof this.dkim !== 'undefined') {\n toReturn['dkim'] = this.dkim;\n }\n if (typeof this.contentIds !== 'undefined' && this.contentIds !== null) {\n toReturn['contentIds'] = 'toApiJson' in this.contentIds ? this.contentIds.toApiJson() : this.contentIds;\n }\n if (typeof this.toField !== 'undefined' && this.toField !== null) {\n toReturn['toField'] = 'toApiJson' in this.toField ? this.toField.toApiJson() : this.toField;\n }\n if (typeof this.fromField !== 'undefined' && this.fromField !== null) {\n toReturn['fromField'] = 'toApiJson' in this.fromField ? this.fromField.toApiJson() : this.fromField;\n }\n if (typeof this.contentText !== 'undefined') {\n toReturn['contentText'] = this.contentText;\n }\n if (typeof this.contentHtml !== 'undefined') {\n toReturn['contentHtml'] = this.contentHtml;\n }\n if (typeof this.senderIp !== 'undefined') {\n toReturn['senderIp'] = this.senderIp;\n }\n if (typeof this.spamReport !== 'undefined') {\n toReturn['spamReport'] = this.spamReport;\n }\n if (typeof this.envelope !== 'undefined' && this.envelope !== null) {\n toReturn['envelope'] = 'toApiJson' in this.envelope ? this.envelope.toApiJson() : this.envelope;\n }\n if (typeof this.attachments !== 'undefined') {\n toReturn['attachments'] = this.attachments;\n }\n if (typeof this.attachmentInfo !== 'undefined' && this.attachmentInfo !== null) {\n toReturn['attachmentInfo'] = 'toApiJson' in this.attachmentInfo ? this.attachmentInfo.toApiJson() : this.attachmentInfo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.spamScore !== 'undefined') {\n toReturn['spamScore'] = this.spamScore;\n }\n if (typeof this.charsets !== 'undefined' && this.charsets !== null) {\n toReturn['charsets'] = 'toApiJson' in this.charsets ? this.charsets.toApiJson() : this.charsets;\n }\n if (typeof this.spf !== 'undefined') {\n toReturn['spf'] = this.spf;\n }\n if (typeof this.rawMessage !== 'undefined') {\n toReturn['rawMessage'] = this.rawMessage;\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 InboundMessageMapping {\n static fromProto(proto) {\n let m = new InboundMessageMapping();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\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 return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.mappingId !== 'undefined') {\n toReturn['mappingId'] = this.mappingId;\n }\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\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.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 return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CheckDisposableEmailRequest {\n static fromProto(proto) {\n let m = new CheckDisposableEmailRequest();\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n return toReturn;\n }\n}\nclass CheckDisposableEmailResponse {\n static fromProto(proto) {\n let m = new CheckDisposableEmailResponse();\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.isDisposable !== 'undefined') {\n toReturn['isDisposable'] = this.isDisposable;\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 AdminSetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new AdminSetEmailQueuesStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(EmailQueueStatus, 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') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusRequest {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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.recipientEmails !== 'undefined') {\n toReturn['recipientEmails'] = this.recipientEmails;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusResponse {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusResponse();\n m = Object.assign(m, proto);\n if (proto.recipientStatuses) {\n m.recipientStatuses = proto.recipientStatuses.map(Status.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.recipientStatuses !== 'undefined' && this.recipientStatuses !== null) {\n toReturn['recipientStatuses'] = 'toApiJson' in this.recipientStatuses ? this.recipientStatuses.toApiJson() : this.recipientStatuses;\n }\n return toReturn;\n }\n}\nclass BounceSender {\n static fromProto(proto) {\n let m = new BounceSender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(BounceSenderType, 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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass BulkUpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new BulkUpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuota) {\n m.partnerEmailQuota = proto.partnerEmailQuota.map(PartnerEmailQuotaMutation.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.partnerEmailQuota !== 'undefined' && this.partnerEmailQuota !== null) {\n toReturn['partnerEmailQuota'] = 'toApiJson' in this.partnerEmailQuota ? this.partnerEmailQuota.toApiJson() : this.partnerEmailQuota;\n }\n return toReturn;\n }\n}\nclass Category {\n static fromProto(proto) {\n let m = new Category();\n m = Object.assign(m, proto);\n if (proto.namespace) {\n m.namespace = enumStringToValue(Namespace, proto.namespace);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainRequest {\n static fromProto(proto) {\n let m = new ChangeEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.replyToEmail !== 'undefined') {\n toReturn['replyToEmail'] = this.replyToEmail;\n }\n if (typeof this.sendFromName !== 'undefined') {\n toReturn['sendFromName'] = this.sendFromName;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainResponse {\n static fromProto(proto) {\n let m = new ChangeEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(ChangeEmailDomainStatus, 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') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass CreateBlockRequest {\n static fromProto(proto) {\n let m = new CreateBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass CreateBlockResponse {\n static fromProto(proto) {\n let m = new CreateBlockResponse();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainWithSendAsRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainWithSendAsRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingRequest {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingRequest();\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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingResponse {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingResponse();\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.mappingId !== 'undefined') {\n toReturn['mappingId'] = this.mappingId;\n }\n return toReturn;\n }\n}\nclass CreatePendingDomainRequest {\n static fromProto(proto) {\n let m = new CreatePendingDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CustomSender {\n static fromProto(proto) {\n let m = new CustomSender();\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.customEmailUsername !== 'undefined') {\n toReturn['customEmailUsername'] = this.customEmailUsername;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.replyTo !== 'undefined') {\n toReturn['replyTo'] = this.replyTo;\n }\n return toReturn;\n }\n}\nclass DeleteBlockRequest {\n static fromProto(proto) {\n let m = new DeleteBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeleteEmailDomainRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass DeletePartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new DeletePartnerEmailQuotaRequest();\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 return toReturn;\n }\n}\nclass DeletePendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeletePendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass DeleteSubUserRequest {\n static fromProto(proto) {\n let m = new DeleteSubUserRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass EmailEventBucket {\n static fromProto(proto) {\n let m = new EmailEventBucket();\n m = Object.assign(m, proto);\n if (proto.eventRollup) {\n m.eventRollup = proto.eventRollup.map(EmailEventBucketEventRollup.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.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\n }\n if (typeof this.eventRollup !== 'undefined' && this.eventRollup !== null) {\n toReturn['eventRollup'] = 'toApiJson' in this.eventRollup ? this.eventRollup.toApiJson() : this.eventRollup;\n }\n return toReturn;\n }\n}\nclass EmailEventFilter {\n static fromProto(proto) {\n let m = new EmailEventFilter();\n m = Object.assign(m, proto);\n if (proto.notificationTypes) {\n m.notificationTypes = proto.notificationTypes.map(v => enumStringToValue(NotificationType, v));\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, v));\n }\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\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.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.notificationTypes !== 'undefined') {\n toReturn['notificationTypes'] = this.notificationTypes;\n }\n if (typeof this.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n return toReturn;\n }\n}\nclass EmailEventBucketEventRollup {\n static fromProto(proto) {\n let m = new EmailEventBucketEventRollup();\n m = Object.assign(m, proto);\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 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.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponseEventStats {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponseEventStats();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue(EventType, proto.eventType);\n }\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n if (proto.uniqueCount) {\n m.uniqueCount = parseInt(proto.uniqueCount, 10);\n }\n if (proto.uniqueRecipients) {\n m.uniqueRecipients = parseInt(proto.uniqueRecipients, 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.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.uniqueCount !== 'undefined') {\n toReturn['uniqueCount'] = this.uniqueCount;\n }\n if (typeof this.uniqueRecipients !== 'undefined') {\n toReturn['uniqueRecipients'] = this.uniqueRecipients;\n }\n return toReturn;\n }\n}\nclass ExportAttributeEventClickStatsRequest {\n static fromProto(proto) {\n let m = new ExportAttributeEventClickStatsRequest();\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.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventLinkStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsRequest();\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 GetAttributeEventLinkStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsResponse();\n m = Object.assign(m, proto);\n if (proto.data) {\n m.data = proto.data.map(LinkStats.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.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\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.data) {\n m.data = proto.data.map(GetAttributeEventStatsResponseEventStats.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.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetBlockRequest {\n static fromProto(proto) {\n let m = new GetBlockRequest();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetBlockResponse {\n static fromProto(proto) {\n let m = new GetBlockResponse();\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.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientRequest {\n static fromProto(proto) {\n let m = new GetBouncedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientResponse {\n static fromProto(proto) {\n let m = new GetBouncedRecipientResponse();\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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetCategoriesRequest {\n static fromProto(proto) {\n let m = new GetCategoriesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetCategoriesResponse {\n static fromProto(proto) {\n let m = new GetCategoriesResponse();\n m = Object.assign(m, proto);\n if (proto.categories) {\n m.categories = proto.categories.map(Category.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.categories !== 'undefined' && this.categories !== null) {\n toReturn['categories'] = 'toApiJson' in this.categories ? this.categories.toApiJson() : this.categories;\n }\n return toReturn;\n }\n}\nclass GetCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\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 return toReturn;\n }\n}\nclass GetCategoryPreferencesResponse {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesResponse();\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.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n if (typeof this.emailPreferenceInitialized !== 'undefined') {\n toReturn['emailPreferenceInitialized'] = this.emailPreferenceInitialized;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainRequest {\n static fromProto(proto) {\n let m = new GetDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainResponse {\n static fromProto(proto) {\n let m = new GetDefaultDomainResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetEmailDomainRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.domain) {\n m.domain = EmailDomain.fromProto(proto.domain);\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.domain !== 'undefined' && this.domain !== null) {\n toReturn['domain'] = 'toApiJson' in this.domain ? this.domain.toApiJson() : this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusRequest();\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 GetEmailQueuesStatusResponse {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusResponse();\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.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageMappingRequest {\n static fromProto(proto) {\n let m = new GetInboundMessageMappingRequest();\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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageMappingResponse {\n static fromProto(proto) {\n let m = new GetInboundMessageMappingResponse();\n m = Object.assign(m, proto);\n if (proto.inboundMessageMapping) {\n m.inboundMessageMapping = InboundMessageMapping.fromProto(proto.inboundMessageMapping);\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.inboundMessageMapping !== 'undefined' && this.inboundMessageMapping !== null) {\n toReturn['inboundMessageMapping'] = 'toApiJson' in this.inboundMessageMapping ? this.inboundMessageMapping.toApiJson() : this.inboundMessageMapping;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageRequest {\n static fromProto(proto) {\n let m = new GetInboundMessageRequest();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageResponse {\n static fromProto(proto) {\n let m = new GetInboundMessageResponse();\n m = Object.assign(m, proto);\n if (proto.inboundMessage) {\n m.inboundMessage = InboundMessage.fromProto(proto.inboundMessage);\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.inboundMessage !== 'undefined' && this.inboundMessage !== null) {\n toReturn['inboundMessage'] = 'toApiJson' in this.inboundMessage ? this.inboundMessage.toApiJson() : this.inboundMessage;\n }\n return toReturn;\n }\n}\nclass GetMessageRequest {\n static fromProto(proto) {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetMessageResponse {\n static fromProto(proto) {\n let m = new GetMessageResponse();\n m = Object.assign(m, proto);\n if (proto.message) {\n m.message = EmailMessage.fromProto(proto.message);\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.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsRequest {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsRequest();\n m = Object.assign(m, proto);\n if (proto.buckets) {\n m.buckets = proto.buckets.map(Bucket.fromProto);\n }\n if (proto.filter) {\n m.filter = EmailEventFilter.fromProto(proto.filter);\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.buckets !== 'undefined' && this.buckets !== null) {\n toReturn['buckets'] = 'toApiJson' in this.buckets ? this.buckets.toApiJson() : this.buckets;\n }\n if (typeof this.filter !== 'undefined' && this.filter !== null) {\n toReturn['filter'] = 'toApiJson' in this.filter ? this.filter.toApiJson() : this.filter;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsResponse {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsResponse();\n m = Object.assign(m, proto);\n if (proto.emailRollups) {\n m.emailRollups = proto.emailRollups.map(EmailEventBucket.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.emailRollups !== 'undefined' && this.emailRollups !== null) {\n toReturn['emailRollups'] = 'toApiJson' in this.emailRollups ? this.emailRollups.toApiJson() : this.emailRollups;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageRequest {\n static fromProto(proto) {\n let m = new GetMultiMessageRequest();\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.emailIds !== 'undefined') {\n toReturn['emailIds'] = this.emailIds;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageResponse {\n static fromProto(proto) {\n let m = new GetMultiMessageResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(EmailMessage.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 GetMultiPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaRequest();\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.partnerIds !== 'undefined') {\n toReturn['partnerIds'] = this.partnerIds;\n }\n return toReturn;\n }\n}\nclass GetMultiPartnerEmailQuotaResponse {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaResponse();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuotas) {\n m.partnerEmailQuotas = proto.partnerEmailQuotas.map(PartnerEmailQuota.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.partnerEmailQuotas !== 'undefined' && this.partnerEmailQuotas !== null) {\n toReturn['partnerEmailQuotas'] = 'toApiJson' in this.partnerEmailQuotas ? this.partnerEmailQuotas.toApiJson() : this.partnerEmailQuotas;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainTargetCNameRecords {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainTargetCNameRecords();\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.mailSubdomain !== 'undefined') {\n toReturn['mailSubdomain'] = this.mailSubdomain;\n }\n if (typeof this.mailValue !== 'undefined') {\n toReturn['mailValue'] = this.mailValue;\n }\n if (typeof this.dkim1Subdomain !== 'undefined') {\n toReturn['dkim1Subdomain'] = this.dkim1Subdomain;\n }\n if (typeof this.dkim1Value !== 'undefined') {\n toReturn['dkim1Value'] = this.dkim1Value;\n }\n if (typeof this.dkim2Subdomain !== 'undefined') {\n toReturn['dkim2Subdomain'] = this.dkim2Subdomain;\n }\n if (typeof this.dkim2Value !== 'undefined') {\n toReturn['dkim2Value'] = this.dkim2Value;\n }\n if (typeof this.dmarcSubdomain !== 'undefined') {\n toReturn['dmarcSubdomain'] = this.dmarcSubdomain;\n }\n if (typeof this.dmarcValue !== 'undefined') {\n toReturn['dmarcValue'] = this.dmarcValue;\n }\n return toReturn;\n }\n}\nclass GetReplyEmailRequest {\n static fromProto(proto) {\n let m = new GetReplyEmailRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass GetReplyEmailResponse {\n static fromProto(proto) {\n let m = new GetReplyEmailResponse();\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.replyAddress !== 'undefined') {\n toReturn['replyAddress'] = this.replyAddress;\n }\n return toReturn;\n }\n}\nclass GetSenderInfoRequest {\n static fromProto(proto) {\n let m = new GetSenderInfoRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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 return toReturn;\n }\n}\nclass GetSenderInfoResponse {\n static fromProto(proto) {\n let m = new GetSenderInfoResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.isPlatformAuthorized !== 'undefined') {\n toReturn['isPlatformAuthorized'] = this.isPlatformAuthorized;\n }\n if (typeof this.isDefaultForSenderType !== 'undefined') {\n toReturn['isDefaultForSenderType'] = this.isDefaultForSenderType;\n }\n if (typeof this.preferredEmailUsername !== 'undefined') {\n toReturn['preferredEmailUsername'] = this.preferredEmailUsername;\n }\n if (typeof this.preferredEmailDisplayName !== 'undefined') {\n toReturn['preferredEmailDisplayName'] = this.preferredEmailDisplayName;\n }\n if (typeof this.preferredReplyToEmailAddress !== 'undefined') {\n toReturn['preferredReplyToEmailAddress'] = this.preferredReplyToEmailAddress;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientIds !== 'undefined') {\n toReturn['recipientIds'] = this.recipientIds;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientResponse();\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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass InboundMessageMappingOptions {\n static fromProto(proto) {\n let m = new InboundMessageMappingOptions();\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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass InitializeSubUserRequest {\n static fromProto(proto) {\n let m = new InitializeSubUserRequest();\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRectifyRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRectifyRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.bypassFrequencyLimit !== 'undefined') {\n toReturn['bypassFrequencyLimit'] = this.bypassFrequencyLimit;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRollbackRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRollbackRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStats {\n static fromProto(proto) {\n let m = new LinkClickStats();\n m = Object.assign(m, proto);\n if (proto.recipient) {\n m.recipient = LinkClickStatsRecipient.fromProto(proto.recipient);\n }\n if (proto.recentDate) {\n m.recentDate = new Date(proto.recentDate);\n }\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.recentDate !== 'undefined' && this.recentDate !== null) {\n toReturn['recentDate'] = 'toApiJson' in this.recentDate ? this.recentDate.toApiJson() : this.recentDate;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass LinkStats {\n static fromProto(proto) {\n let m = new LinkStats();\n m = Object.assign(m, proto);\n if (proto.totalClicks) {\n m.totalClicks = parseInt(proto.totalClicks, 10);\n }\n if (proto.uniqueClicks) {\n m.uniqueClicks = parseInt(proto.uniqueClicks, 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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.totalClicks !== 'undefined') {\n toReturn['totalClicks'] = this.totalClicks;\n }\n if (typeof this.uniqueClicks !== 'undefined') {\n toReturn['uniqueClicks'] = this.uniqueClicks;\n }\n if (typeof this.clickRate !== 'undefined') {\n toReturn['clickRate'] = this.clickRate;\n }\n return toReturn;\n }\n}\nclass ListAllDomainsRequest {\n static fromProto(proto) {\n let m = new ListAllDomainsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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 return toReturn;\n }\n}\nclass ListAllDomainsResponse {\n static fromProto(proto) {\n let m = new ListAllDomainsResponse();\n m = Object.assign(m, proto);\n if (proto.domains) {\n m.domains = proto.domains.map(SenderDomain.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.domains !== 'undefined' && this.domains !== null) {\n toReturn['domains'] = 'toApiJson' in this.domains ? this.domains.toApiJson() : this.domains;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequestListEmailEventsFilters {\n static fromProto(proto) {\n let m = new ListEmailEventsRequestListEmailEventsFilters();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequest {\n static fromProto(proto) {\n let m = new ListEmailEventsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailEventsRequestListEmailEventsFilters.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 ListEmailEventsResponse {\n static fromProto(proto) {\n let m = new ListEmailEventsResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.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.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequestListEmailsFilters {\n static fromProto(proto) {\n let m = new ListEmailsRequestListEmailsFilters();\n m = Object.assign(m, proto);\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\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.to !== 'undefined') {\n toReturn['to'] = this.to;\n }\n if (typeof this.from !== 'undefined') {\n toReturn['from'] = this.from;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.espIds !== 'undefined') {\n toReturn['espIds'] = this.espIds;\n }\n if (typeof this.subuserId !== 'undefined') {\n toReturn['subuserId'] = this.subuserId;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequest {\n static fromProto(proto) {\n let m = new ListEmailsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailsRequestListEmailsFilters.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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\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 ListEmailsResponse {\n static fromProto(proto) {\n let m = new ListEmailsResponse();\n m = Object.assign(m, proto);\n if (proto.emails) {\n m.emails = proto.emails.map(EmailMessage.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.emails !== 'undefined' && this.emails !== null) {\n toReturn['emails'] = 'toApiJson' in this.emails ? this.emails.toApiJson() : this.emails;\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 ListEventsForAttributesRequest {\n static fromProto(proto) {\n let m = new ListEventsForAttributesRequest();\n m = Object.assign(m, proto);\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, 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.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n return toReturn;\n }\n}\nclass ListEventsForAttributesResponse {\n static fromProto(proto) {\n let m = new ListEventsForAttributesResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.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.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\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 ListLinkClickActivityForAttributeRequest {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequest();\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 if (proto.pagingOptions) {\n m.pagingOptions = ListLinkClickActivityForAttributeRequestPagedRequestOptions.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.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 if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeResponse {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeResponse();\n m = Object.assign(m, proto);\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n if (proto.data) {\n m.data = proto.data.map(LinkClickStats.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.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\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 ListSendGridSubUserReputationsRequest {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.cursor) {\n m.cursor = parseInt(proto.cursor, 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.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridSubUserReputationsResponse {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsResponse();\n m = Object.assign(m, proto);\n if (proto.reputations) {\n m.reputations = proto.reputations.map(SendGridSubUserReputation.fromProto);\n }\n if (proto.nextCursor) {\n m.nextCursor = parseInt(proto.nextCursor, 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.reputations !== 'undefined' && this.reputations !== null) {\n toReturn['reputations'] = 'toApiJson' in this.reputations ? this.reputations.toApiJson() : this.reputations;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridTeammatesRequest {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesRequest();\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 ListSendGridTeammatesResponse {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesResponse();\n m = Object.assign(m, proto);\n if (proto.teammates) {\n m.teammates = proto.teammates.map(SendGridTeammate.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.teammates !== 'undefined' && this.teammates !== null) {\n toReturn['teammates'] = 'toApiJson' in this.teammates ? this.teammates.toApiJson() : this.teammates;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\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.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 ListLinkClickActivityForAttributeRequestPagedRequestOptions {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequestPagedRequestOptions();\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass PartnerEmailQuotaMutation {\n static fromProto(proto) {\n let m = new PartnerEmailQuotaMutation();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass QuarantineSenderRequest {\n static fromProto(proto) {\n let m = new QuarantineSenderRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStatsRecipient {\n static fromProto(proto) {\n let m = new LinkClickStatsRecipient();\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.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RedirectEmailRequest {\n static fromProto(proto) {\n let m = new RedirectEmailRequest();\n m = Object.assign(m, proto);\n if (proto.override) {\n m.override = EmailMessage.fromProto(proto.override);\n }\n if (proto.overrideSender) {\n m.overrideSender = Sender.fromProto(proto.overrideSender);\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.authCheckOnly !== 'undefined') {\n toReturn['authCheckOnly'] = this.authCheckOnly;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.newRecipientEmailAddress !== 'undefined') {\n toReturn['newRecipientEmailAddress'] = this.newRecipientEmailAddress;\n }\n if (typeof this.includeContent !== 'undefined') {\n toReturn['includeContent'] = this.includeContent;\n }\n if (typeof this.includeAttributes !== 'undefined') {\n toReturn['includeAttributes'] = this.includeAttributes;\n }\n if (typeof this.override !== 'undefined' && this.override !== null) {\n toReturn['override'] = 'toApiJson' in this.override ? this.override.toApiJson() : this.override;\n }\n if (typeof this.overrideSender !== 'undefined' && this.overrideSender !== null) {\n toReturn['overrideSender'] = 'toApiJson' in this.overrideSender ? this.overrideSender.toApiJson() : this.overrideSender;\n }\n return toReturn;\n }\n}\nclass RedirectEmailResponse {\n static fromProto(proto) {\n let m = new RedirectEmailResponse();\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.newEmailId !== 'undefined') {\n toReturn['newEmailId'] = this.newEmailId;\n }\n return toReturn;\n }\n}\nclass ResetRecipientStatusRequest {\n static fromProto(proto) {\n let m = new ResetRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientFromUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientFromUnsubscribeLinkRequest();\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.unsubscribeLinkUrl !== 'undefined') {\n toReturn['unsubscribeLinkUrl'] = this.unsubscribeLinkUrl;\n }\n if (typeof this.unsubscribeLinkId !== 'undefined') {\n toReturn['unsubscribeLinkId'] = this.unsubscribeLinkId;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass SaveCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new SaveCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.unverifiedEmailAddress !== 'undefined') {\n toReturn['unverifiedEmailAddress'] = this.unverifiedEmailAddress;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainRequest {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainRequest();\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 = Participant.fromProto(proto.recipient);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\n }\n if (proto.customSender) {\n m.customSender = CustomSender.fromProto(proto.customSender);\n }\n if (proto.inboundMessageMappingOptions) {\n m.inboundMessageMappingOptions = InboundMessageMappingOptions.fromProto(proto.inboundMessageMappingOptions);\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.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n if (typeof this.encryptContentAtRest !== 'undefined') {\n toReturn['encryptContentAtRest'] = this.encryptContentAtRest;\n }\n if (typeof this.customSender !== 'undefined' && this.customSender !== null) {\n toReturn['customSender'] = 'toApiJson' in this.customSender ? this.customSender.toApiJson() : this.customSender;\n }\n if (typeof this.inboundMessageMappingOptions !== 'undefined' && this.inboundMessageMappingOptions !== null) {\n toReturn['inboundMessageMappingOptions'] = 'toApiJson' in this.inboundMessageMappingOptions ? this.inboundMessageMappingOptions.toApiJson() : this.inboundMessageMappingOptions;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainResponse {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendGridSubUserReputation {\n static fromProto(proto) {\n let m = new SendGridSubUserReputation();\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.username !== 'undefined') {\n toReturn['username'] = this.username;\n }\n if (typeof this.reputationPercent !== 'undefined') {\n toReturn['reputationPercent'] = this.reputationPercent;\n }\n return toReturn;\n }\n}\nclass SendGridTeammate {\n static fromProto(proto) {\n let m = new SendGridTeammate();\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.fullName !== 'undefined') {\n toReturn['fullName'] = this.fullName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.role !== 'undefined') {\n toReturn['role'] = this.role;\n }\n if (typeof this.slackUserName !== 'undefined') {\n toReturn['slackUserName'] = this.slackUserName;\n }\n if (typeof this.slackUrl !== 'undefined') {\n toReturn['slackUrl'] = this.slackUrl;\n }\n return toReturn;\n }\n}\nclass SendRequest {\n static fromProto(proto) {\n let m = new SendRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessage.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendResponse {\n static fromProto(proto) {\n let m = new SendResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendV2Request {\n static fromProto(proto) {\n let m = new SendV2Request();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessageV2.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendV2Response {\n static fromProto(proto) {\n let m = new SendV2Response();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserRequest {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipientUser) {\n m.recipientUser = UserParticipant.fromProto(proto.recipientUser);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\n }\n if (proto.userParticipant) {\n m.userParticipant = UserParticipant.fromProto(proto.userParticipant);\n }\n if (proto.contactParticipant) {\n m.contactParticipant = ContactParticipant.fromProto(proto.contactParticipant);\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.recipientUser !== 'undefined' && this.recipientUser !== null) {\n toReturn['recipientUser'] = 'toApiJson' in this.recipientUser ? this.recipientUser.toApiJson() : this.recipientUser;\n }\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n if (typeof this.userParticipant !== 'undefined' && this.userParticipant !== null) {\n toReturn['userParticipant'] = 'toApiJson' in this.userParticipant ? this.userParticipant.toApiJson() : this.userParticipant;\n }\n if (typeof this.contactParticipant !== 'undefined' && this.contactParticipant !== null) {\n toReturn['contactParticipant'] = 'toApiJson' in this.contactParticipant ? this.contactParticipant.toApiJson() : this.contactParticipant;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserResponse {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainRequest {\n static fromProto(proto) {\n let m = new SendWithCustomDomainRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailWithCustomDomainMessage.fromProto(proto.email);\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.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.fallbackEmail !== 'undefined') {\n toReturn['fallbackEmail'] = this.fallbackEmail;\n }\n if (typeof this.fallbackName !== 'undefined') {\n toReturn['fallbackName'] = this.fallbackName;\n }\n if (typeof this.fallbackEspId !== 'undefined') {\n toReturn['fallbackEspId'] = this.fallbackEspId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainResponse {\n static fromProto(proto) {\n let m = new SendWithCustomDomainResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.customDomainUsed !== 'undefined') {\n toReturn['customDomainUsed'] = this.customDomainUsed;\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.type) {\n m.type = enumStringToValue(SenderType, 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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n return toReturn;\n }\n}\nclass SenderDomain {\n static fromProto(proto) {\n let m = new SenderDomain();\n m = Object.assign(m, proto);\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\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.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.isPrimary !== 'undefined') {\n toReturn['isPrimary'] = this.isPrimary;\n }\n return toReturn;\n }\n}\nclass SetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new SetEmailQueuesStatusRequest();\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.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass Status {\n static fromProto(proto) {\n let m = new Status();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.status) {\n m.status = enumStringToValue(RecipientStatusEnum, proto.status);\n }\n if (proto.infractionCount) {\n m.infractionCount = parseInt(proto.infractionCount, 10);\n }\n if (proto.bounceExpiry) {\n m.bounceExpiry = new Date(proto.bounceExpiry);\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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.infractionCount !== 'undefined') {\n toReturn['infractionCount'] = this.infractionCount;\n }\n if (typeof this.bounceExpiry !== 'undefined' && this.bounceExpiry !== null) {\n toReturn['bounceExpiry'] = 'toApiJson' in this.bounceExpiry ? this.bounceExpiry.toApiJson() : this.bounceExpiry;\n }\n return toReturn;\n }\n}\nclass UnbounceRecipientRequest {\n static fromProto(proto) {\n let m = new UnbounceRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.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.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass UpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new UpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainMismatch();\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.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainRequest {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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 return toReturn;\n }\n}\nclass VerifyDefaultDomainResponse {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyDefaultDomainMismatch.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.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.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 return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCResponse {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCResponse();\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.dmarcPass !== 'undefined') {\n toReturn['dmarcPass'] = this.dmarcPass;\n }\n if (typeof this.dmarcRecord !== 'undefined') {\n toReturn['dmarcRecord'] = this.dmarcRecord;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainRequest();\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.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainMismatch();\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.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyPendingEmailDomainMismatch.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.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\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': 'email-api.vendasta-local.com',\n 'test': '',\n 'demo': 'email-api-demo.apigateway.co',\n 'prod': 'email-api-prod.apigateway.co',\n 'production': 'email-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(__ngFactoryType__) {\n return new (__ngFactoryType__ || 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 EmailApiService = /*#__PURE__*/(() => {\n class EmailApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 send(r) {\n const request = r.toApiJson ? r : new SendRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/Send\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendResponse.fromProto(resp)));\n }\n sendWithCustomDomain(r) {\n const request = r.toApiJson ? r : new SendWithCustomDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendWithCustomDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWithCustomDomainResponse.fromProto(resp)));\n }\n sendV2(r) {\n const request = r.toApiJson ? r : new SendV2Request(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendV2Response.fromProto(resp)));\n }\n list(r) {\n const request = r.toApiJson ? r : new ListEmailsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailsResponse.fromProto(resp)));\n }\n getEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new GetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailQueuesStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailQueuesStatusResponse.fromProto(resp)));\n }\n setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new SetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEmailDomain(r) {\n const request = r.toApiJson ? r : new GetEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n createEmailDomain(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createEmailDomainWithSendAs(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainWithSendAsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomainWithSendAs\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n verifyEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n deleteEmailDomain(r) {\n const request = r.toApiJson ? r : new DeleteEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeleteEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n changeEmailDomain(r) {\n const request = r.toApiJson ? r : new ChangeEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/ChangeEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ChangeEmailDomainResponse.fromProto(resp)));\n }\n getPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new GetPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n verifyPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyPendingEmailDomainResponse.fromProto(resp)));\n }\n deletePendingEmailDomain(r) {\n const request = r.toApiJson ? r : new DeletePendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeletePendingEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailApiService.ɵfac = function EmailApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailApiService)();\n };\n EmailApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailApiService,\n factory: EmailApiService.ɵfac,\n providedIn: 'root'\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 AdminApiService = /*#__PURE__*/(() => {\n class AdminApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new AdminSetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n redirectEmail(r) {\n const request = r.toApiJson ? r : new RedirectEmailRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/RedirectEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RedirectEmailResponse.fromProto(resp)));\n }\n resubscribeRecipient(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/ResubscribeRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribedRecipient(r) {\n const request = r.toApiJson ? r : new GetUnsubscribedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetUnsubscribedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribedRecipientResponse.fromProto(resp)));\n }\n initiateEmailDomainRollback(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRollbackRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRollback\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n initiateEmailDomainRectify(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRectifyRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRectify\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getBouncedRecipient(r) {\n const request = r.toApiJson ? r : new GetBouncedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetBouncedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBouncedRecipientResponse.fromProto(resp)));\n }\n unbounceRecipient(r) {\n const request = r.toApiJson ? r : new UnbounceRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/UnbounceRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n AdminApiService.ɵfac = function AdminApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AdminApiService)();\n };\n AdminApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminApiService,\n factory: AdminApiService.ɵfac,\n providedIn: 'root'\n });\n return AdminApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AdminService = /*#__PURE__*/(() => {\n class AdminService {\n constructor(api) {\n this.api = api;\n }\n setEmailQueuesStatus(running) {\n let statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_RUNNING;\n if (!running) {\n statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_DISABLED;\n }\n const req = new AdminSetEmailQueuesStatusRequest({\n status: statusEnum\n });\n return this.api.setEmailQueuesStatus(req);\n }\n getUnsubscribedRecipientForPartner(partnerID, recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForBusiness(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForProduct(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getBouncedRecipient(sender, recipientEmail) {\n const req = new GetBouncedRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.getBouncedRecipient(req);\n }\n unbounceRecipient(sender, recipientEmail) {\n const req = new UnbounceRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.unbounceRecipient(req);\n }\n resubscribeRecipientForPartner(partnerID, recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForBusiness(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForProduct(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n redirectEmail(emailID, newRecipientEmailAddress, authCheckOnly, includeContent, includeAttributes) {\n const req = new RedirectEmailRequest({\n emailId: emailID,\n newRecipientEmailAddress: newRecipientEmailAddress,\n authCheckOnly: authCheckOnly,\n includeContent: includeContent,\n includeAttributes: includeAttributes\n });\n return this.api.redirectEmail(req);\n }\n }\n AdminService.ɵfac = function AdminService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AdminService)(i0.ɵɵinject(AdminApiService));\n };\n AdminService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminService,\n factory: AdminService.ɵfac,\n providedIn: 'root'\n });\n return AdminService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailService = /*#__PURE__*/(() => {\n class EmailService {\n constructor(api, admin) {\n this.api = api;\n this.admin = admin;\n }\n createEmailDomain(partnerId, applicationId, businessId, domain, userId = '') {\n const req = CreateEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n userId: userId\n });\n return this.api.createEmailDomain(req);\n }\n createEmailDomainWithSendAs(partnerId, applicationId, businessId, domain, sendAsEmail, sendAsName) {\n const req = CreateEmailDomainWithSendAsRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n sendAsEmail: sendAsEmail,\n sendAsName: sendAsName\n });\n return this.api.createEmailDomainWithSendAs(req);\n }\n getEmailDomain(partnerId, applicationId, businessId) {\n const req = GetEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.getEmailDomain(req).pipe(map(r => r.domain));\n }\n verifyEmailDomain(partnerId, applicationId, businessId) {\n const req = VerifyEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.verifyEmailDomain(req).pipe(map(r => r.domain));\n }\n listEmails(searchTerm, filters, pagingOptions) {\n return this.api.list({\n searchTerm: searchTerm,\n pagingOptions: pagingOptions,\n filters: filters\n });\n }\n getEmailQueuesStatus() {\n const req = GetEmailQueuesStatusRequest.fromProto({});\n return this.api.getEmailQueuesStatus(req).pipe(map(r => r.running));\n }\n /**\n * @deprecated Use AdminService.setEmailQueuesStatus\n */\n setEmailQueuesStatus(running) {\n return this.admin.setEmailQueuesStatus(running);\n }\n }\n EmailService.ɵfac = function EmailService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(AdminService));\n };\n EmailService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailService,\n factory: EmailService.ɵfac,\n providedIn: 'root'\n });\n return EmailService;\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 EmailEventApiService = /*#__PURE__*/(() => {\n class EmailEventApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 list(r) {\n const request = r.toApiJson ? r : new ListEmailEventsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailEventsResponse.fromProto(resp)));\n }\n getMultiEmailRollups(r) {\n const request = r.toApiJson ? r : new GetMultiEmailRollupsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetMultiEmailRollups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiEmailRollupsResponse.fromProto(resp)));\n }\n listForAttributes(r) {\n const request = r.toApiJson ? r : new ListEventsForAttributesRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListForAttributes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEventsForAttributesResponse.fromProto(resp)));\n }\n getAttributeEventStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventStatsResponse.fromProto(resp)));\n }\n getAttributeEventLinkStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventLinkStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventLinkStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventLinkStatsResponse.fromProto(resp)));\n }\n listLinkClickActivityForAttribute(r) {\n const request = r.toApiJson ? r : new ListLinkClickActivityForAttributeRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListLinkClickActivityForAttribute\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListLinkClickActivityForAttributeResponse.fromProto(resp)));\n }\n exportAttributeEventClickStats(r) {\n const request = r.toApiJson ? r : new ExportAttributeEventClickStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ExportAttributeEventClickStats\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailEventApiService.ɵfac = function EmailEventApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailEventApiService)();\n };\n EmailEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventApiService,\n factory: EmailEventApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventApiService;\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 BlocksApiService = /*#__PURE__*/(() => {\n class BlocksApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 createBlock(r) {\n const request = r.toApiJson ? r : new CreateBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/CreateBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateBlockResponse.fromProto(resp)));\n }\n getBlock(r) {\n const request = r.toApiJson ? r : new GetBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/GetBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBlockResponse.fromProto(resp)));\n }\n deleteBlock(r) {\n const request = r.toApiJson ? r : new DeleteBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/DeleteBlock\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n BlocksApiService.ɵfac = function BlocksApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BlocksApiService)();\n };\n BlocksApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BlocksApiService,\n factory: BlocksApiService.ɵfac,\n providedIn: 'root'\n });\n return BlocksApiService;\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 DisposableEmailApiService = /*#__PURE__*/(() => {\n class DisposableEmailApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 checkDisposableEmail(r) {\n const request = r.toApiJson ? r : new CheckDisposableEmailRequest(r);\n return this.http.post(this._host + \"/email.v1.DisposableEmail/CheckDisposableEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckDisposableEmailResponse.fromProto(resp)));\n }\n }\n DisposableEmailApiService.ɵfac = function DisposableEmailApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DisposableEmailApiService)();\n };\n DisposableEmailApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DisposableEmailApiService,\n factory: DisposableEmailApiService.ɵfac,\n providedIn: 'root'\n });\n return DisposableEmailApiService;\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 DomainApiService = /*#__PURE__*/(() => {\n class DomainApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 createPendingDomain(r) {\n const request = r.toApiJson ? r : new CreatePendingDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/CreatePendingDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n listAllDomains(r) {\n const request = r.toApiJson ? r : new ListAllDomainsRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/ListAllDomains\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAllDomainsResponse.fromProto(resp)));\n }\n getDefaultDomain(r) {\n const request = r.toApiJson ? r : new GetDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/GetDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetDefaultDomainResponse.fromProto(resp)));\n }\n verifyDefaultDomain(r) {\n const request = r.toApiJson ? r : new VerifyDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyDefaultDomainResponse.fromProto(resp)));\n }\n verifyEmailDomainDmarc(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainDMARCRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyEmailDomainDMARC\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyEmailDomainDMARCResponse.fromProto(resp)));\n }\n }\n DomainApiService.ɵfac = function DomainApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DomainApiService)();\n };\n DomainApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainApiService,\n factory: DomainApiService.ɵfac,\n providedIn: 'root'\n });\n return DomainApiService;\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 EmailClientApiService = /*#__PURE__*/(() => {\n class EmailClientApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 resubscribeRecipientFromUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientFromUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailClient/ResubscribeRecipientFromUnsubscribeLink\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailClientApiService.ɵfac = function EmailClientApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailClientApiService)();\n };\n EmailClientApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientApiService,\n factory: EmailClientApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientApiService;\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 InboundMessageMappingApiService = /*#__PURE__*/(() => {\n class InboundMessageMappingApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 createInboundMessageMapping(r) {\n const request = r.toApiJson ? r : new CreateInboundMessageMappingRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/CreateInboundMessageMapping\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateInboundMessageMappingResponse.fromProto(resp)));\n }\n getInboundMessageMapping(r) {\n const request = r.toApiJson ? r : new GetInboundMessageMappingRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/GetInboundMessageMapping\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetInboundMessageMappingResponse.fromProto(resp)));\n }\n getReplyEmail(r) {\n const request = r.toApiJson ? r : new GetReplyEmailRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/GetReplyEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReplyEmailResponse.fromProto(resp)));\n }\n }\n InboundMessageMappingApiService.ɵfac = function InboundMessageMappingApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InboundMessageMappingApiService)();\n };\n InboundMessageMappingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageMappingApiService,\n factory: InboundMessageMappingApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageMappingApiService;\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 InboundMessageApiService = /*#__PURE__*/(() => {\n class InboundMessageApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 getInboundMessage(r) {\n const request = r.toApiJson ? r : new GetInboundMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageService/GetInboundMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetInboundMessageResponse.fromProto(resp)));\n }\n }\n InboundMessageApiService.ɵfac = function InboundMessageApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InboundMessageApiService)();\n };\n InboundMessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageApiService,\n factory: InboundMessageApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageApiService;\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 MessageApiService = /*#__PURE__*/(() => {\n class MessageApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 getMessage(r) {\n const request = r.toApiJson ? r : new GetMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMessageResponse.fromProto(resp)));\n }\n getMultiMessage(r) {\n const request = r.toApiJson ? r : new GetMultiMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMultiMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiMessageResponse.fromProto(resp)));\n }\n }\n MessageApiService.ɵfac = function MessageApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MessageApiService)();\n };\n MessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageApiService,\n factory: MessageApiService.ɵfac,\n providedIn: 'root'\n });\n return MessageApiService;\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 PartnerEmailQuotaApiService = /*#__PURE__*/(() => {\n class PartnerEmailQuotaApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 upsert(r) {\n const request = r.toApiJson ? r : new UpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Upsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n bulkUpsert(r) {\n const request = r.toApiJson ? r : new BulkUpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/BulkUpsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeletePartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiPartnerEmailQuotaResponse.fromProto(resp)));\n }\n }\n PartnerEmailQuotaApiService.ɵfac = function PartnerEmailQuotaApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PartnerEmailQuotaApiService)();\n };\n PartnerEmailQuotaApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PartnerEmailQuotaApiService,\n factory: PartnerEmailQuotaApiService.ɵfac,\n providedIn: 'root'\n });\n return PartnerEmailQuotaApiService;\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 PreferencesApiService = /*#__PURE__*/(() => {\n class PreferencesApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 getCategories(r) {\n const request = r.toApiJson ? r : new GetCategoriesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategories\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoriesResponse.fromProto(resp)));\n }\n getCategoryPreferences(r) {\n const request = r.toApiJson ? r : new GetCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategoryPreferences\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoryPreferencesResponse.fromProto(resp)));\n }\n saveCategoryPreferences(r) {\n const request = r.toApiJson ? r : new SaveCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/SaveCategoryPreferences\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new GetUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetUnsubscribeLink\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribeLinkResponse.fromProto(resp)));\n }\n }\n PreferencesApiService.ɵfac = function PreferencesApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PreferencesApiService)();\n };\n PreferencesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesApiService,\n factory: PreferencesApiService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesApiService;\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 RecipientStatusApiService = /*#__PURE__*/(() => {\n class RecipientStatusApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 resetRecipientStatus(r) {\n const request = r.toApiJson ? r : new ResetRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/ResetRecipientStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n batchSearchRecipientStatus(r) {\n const request = r.toApiJson ? r : new BatchSearchRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/BatchSearchRecipientStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BatchSearchRecipientStatusResponse.fromProto(resp)));\n }\n }\n RecipientStatusApiService.ɵfac = function RecipientStatusApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RecipientStatusApiService)();\n };\n RecipientStatusApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusApiService,\n factory: RecipientStatusApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusApiService;\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 SendApiService = /*#__PURE__*/(() => {\n class SendApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 sendWhitelabelEmailToUser(r) {\n const request = r.toApiJson ? r : new SendWhitelabelEmailToUserRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendWhitelabelEmailToUser\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWhitelabelEmailToUserResponse.fromProto(resp)));\n }\n sendFromAuthorizedDomain(r) {\n const request = r.toApiJson ? r : new SendFromAuthorizedDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendFromAuthorizedDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendFromAuthorizedDomainResponse.fromProto(resp)));\n }\n }\n SendApiService.ɵfac = function SendApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendApiService)();\n };\n SendApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendApiService,\n factory: SendApiService.ɵfac,\n providedIn: 'root'\n });\n return SendApiService;\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 SendGridApiService = /*#__PURE__*/(() => {\n class SendGridApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 listSendGridTeammates(r) {\n const request = r.toApiJson ? r : new ListSendGridTeammatesRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridTeammates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridTeammatesResponse.fromProto(resp)));\n }\n listSendGridSubUserReputations(r) {\n const request = r.toApiJson ? r : new ListSendGridSubUserReputationsRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridSubUserReputations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridSubUserReputationsResponse.fromProto(resp)));\n }\n }\n SendGridApiService.ɵfac = function SendGridApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendGridApiService)();\n };\n SendGridApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendGridApiService,\n factory: SendGridApiService.ɵfac,\n providedIn: 'root'\n });\n return SendGridApiService;\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 SendersApiService = /*#__PURE__*/(() => {\n class SendersApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 getSenderInfo(r) {\n const request = r.toApiJson ? r : new GetSenderInfoRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/GetSenderInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSenderInfoResponse.fromProto(resp)));\n }\n quarantineSender(r) {\n const request = r.toApiJson ? r : new QuarantineSenderRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/QuarantineSender\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SendersApiService.ɵfac = function SendersApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendersApiService)();\n };\n SendersApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersApiService,\n factory: SendersApiService.ɵfac,\n providedIn: 'root'\n });\n return SendersApiService;\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 SubUserApiService = /*#__PURE__*/(() => {\n class SubUserApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\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 initializeSubUser(r) {\n const request = r.toApiJson ? r : new InitializeSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/InitializeSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteSubUser(r) {\n const request = r.toApiJson ? r : new DeleteSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/DeleteSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SubUserApiService.ɵfac = function SubUserApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SubUserApiService)();\n };\n SubUserApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SubUserApiService,\n factory: SubUserApiService.ɵfac,\n providedIn: 'root'\n });\n return SubUserApiService;\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 EmailEventService = /*#__PURE__*/(() => {\n class EmailEventService {\n constructor(api) {\n this.api = api;\n }\n /*\n @params:\n - buckets: a list or names with an key-value pair to build aggregations on. The length of the response\n will be the same length as buckets. The key-value is for an additional filter term to use only for a specific\n aggregation.\n - dateRange: the range of dates to collect aggregations for.\n - partnerId: the partner to filter all aggregations by\n - marketId: the market to filter the aggregations by.\n - notificationTypes: the notification types to filter the aggregations by.\n - eventTypes: the event types to filter the aggregations by\n @returns: an observable containing a list of buckets that correspond have a name, corresponding to the name passed in to\n each bucket object in the request\n @throws: an observable of a HttpErrorResponse if the client is unable to fetch the data\n */\n getEventRollups(buckets, dateRange, partnerId, marketId, notificationTypes, eventTypes) {\n if (!buckets || !buckets.length) {\n throw new HttpErrorResponse({\n status: 409,\n statusText: '1 or more buckets must be passed in'\n });\n }\n const req = new GetMultiEmailRollupsRequest({\n buckets: buckets,\n filter: new EmailEventFilter({\n dateRange: dateRange,\n partnerId: partnerId,\n marketId: marketId,\n notificationTypes: notificationTypes,\n eventTypes: eventTypes\n })\n });\n return this.api.getMultiEmailRollups(req).pipe(map(resp => (resp || {\n emailRollups: null\n }).emailRollups));\n }\n listEvents(emailId, pagingOptions, partnerId, businessId) {\n const filters = new ListEmailEventsRequestListEmailEventsFilters({\n emailId: emailId,\n partnerId: partnerId,\n businessId: businessId\n });\n return this.api.list({\n filters,\n pagingOptions\n });\n }\n getAttributeEventStats(sender, attribute) {\n return this.api.getAttributeEventStats({\n sender: sender,\n attribute: attribute\n });\n }\n getAttributeEventLinkStats(sender, attribute) {\n return this.api.getAttributeEventLinkStats({\n sender: sender,\n attribute: attribute\n });\n }\n listEventsForAttribute(sender, attribute, eventTypes, cursor, pageSize) {\n return this.api.listForAttributes({\n sender: sender,\n attribute: attribute,\n eventTypes: eventTypes,\n cursor: cursor,\n pageSize: pageSize\n });\n }\n listLinkClickActivityForAttribute(sender, attribute, normalizedURL, cursor, pageSize) {\n return this.api.listLinkClickActivityForAttribute({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedURL,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n }\n exportAttributeEventClickStats(sender, attribute, normalizedUrl, userId) {\n return this.api.exportAttributeEventClickStats({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedUrl,\n userId: userId\n });\n }\n }\n EmailEventService.ɵfac = function EmailEventService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailEventService)(i0.ɵɵinject(EmailEventApiService));\n };\n EmailEventService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventService,\n factory: EmailEventService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridSubUsersService = /*#__PURE__*/(() => {\n class SendgridSubUsersService {\n constructor(api) {\n this.api = api;\n }\n listSubUserReputations(pageSize = 10, cursor) {\n const req = {\n pageSize: pageSize,\n cursor: cursor\n };\n return this.api.listSendGridSubUserReputations(req);\n }\n }\n SendgridSubUsersService.ɵfac = function SendgridSubUsersService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendgridSubUsersService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridSubUsersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridSubUsersService,\n factory: SendgridSubUsersService.ɵfac,\n providedIn: 'root'\n });\n return SendgridSubUsersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridTeammatesService = /*#__PURE__*/(() => {\n class SendgridTeammatesService {\n constructor(api) {\n this.api = api;\n }\n list() {\n const req = {};\n return this.api.listSendGridTeammates(req);\n }\n }\n SendgridTeammatesService.ɵfac = function SendgridTeammatesService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendgridTeammatesService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridTeammatesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridTeammatesService,\n factory: SendgridTeammatesService.ɵfac,\n providedIn: 'root'\n });\n return SendgridTeammatesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DomainService = /*#__PURE__*/(() => {\n class DomainService {\n constructor(api, domain) {\n this.api = api;\n this.domain = domain;\n }\n delete(partnerId, appId, businessId) {\n const req = {\n partnerId: partnerId,\n applicationId: appId,\n businessId: businessId\n };\n const observable = this.api.deleteEmailDomain(req).pipe(mapTo(null), shareReplay(1));\n observable.subscribe();\n return observable;\n }\n /**\n * Requests the partner's domain and send-from address to be changed to the\n * provided values.\n * @param partnerID The Partner ID\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param appId [optional/soon-to-be-deprecated] The application ID to change\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForPartner(partnerID, newDomain, newEmailUsername, appId, replyTo, newSendFromName) {\n return this.changeForSender(SenderType.SENDER_TYPE_PARTNER, partnerID, newDomain, newEmailUsername, replyTo, newSendFromName);\n }\n /**\n * Requests the sender's domain and send-from address to be changed to the\n * provided values.\n * @param senderType The Sender type (e.g. partner or business)\n * @param senderID The Sender ID (e.g. partner ID or account group ID)\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForSender(senderType, senderID, newDomain, newEmailUsername, replyTo, newSendFromName) {\n const req = new ChangeEmailDomainRequest({\n senderType: senderType,\n senderId: senderID,\n sendFromDomain: newDomain,\n sendFromUsername: newEmailUsername,\n replyToEmail: replyTo,\n sendFromName: newSendFromName\n });\n return this.api.changeEmailDomain(req).pipe(map(v => v.status));\n }\n createPendingDomain(senderType, senderId, domain) {\n return this.domain.createPendingDomain({\n sender: new Sender({\n type: senderType,\n id: senderId\n }),\n domain: domain\n });\n }\n deletePendingDomain(senderType, senderId, domain) {\n return this.api.deletePendingEmailDomain({\n senderType: senderType,\n senderId: senderId,\n domain: domain\n }).pipe(map(() => null));\n }\n /**\n * Requests the pending domain for an email sender\n * @param senderType The sender type, (ex. partner, business)\n * @param senderID the sender ID, (ex. partnerID, businessID)\n */\n getPendingEmailDomain(senderType, senderID) {\n const req = new GetPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.getPendingEmailDomain(req);\n }\n verifyPendingDomain(senderType, senderID) {\n const req = new VerifyPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.verifyPendingEmailDomain(req).pipe(map(v => {\n v.allRecordsMatch = Boolean(v.allRecordsMatch);\n v.mismatches = v.mismatches || [];\n return v;\n }));\n }\n verifyDefaultDomain(senderType, senderId) {\n const req = new VerifyDefaultDomainRequest({\n sender: {\n type: senderType,\n id: senderId\n }\n });\n return this.domain.verifyDefaultDomain(req).pipe(map(v => ({\n allRecordsMatch: Boolean(v.allRecordsMatch),\n mismatches: v.mismatches || []\n })));\n }\n listAllDomains(senderType, senderID) {\n const req = new ListAllDomainsRequest({\n sender: {\n type: senderType,\n id: senderID\n }\n });\n return this.domain.listAllDomains(req).pipe(map(v => {\n v.domains = v.domains || [];\n return v;\n }));\n }\n getDefaultDomain(senderType) {\n const req = new GetDefaultDomainRequest({\n senderType: senderType\n });\n return this.domain.getDefaultDomain(req);\n }\n verifyDMARC(sender) {\n const req = new VerifyEmailDomainDMARCRequest({\n sender: sender\n });\n return this.domain.verifyEmailDomainDmarc(req);\n }\n }\n DomainService.ɵfac = function DomainService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DomainService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(DomainApiService));\n };\n DomainService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainService,\n factory: DomainService.ɵfac,\n providedIn: 'root'\n });\n return DomainService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MessageService = /*#__PURE__*/(() => {\n class MessageService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getMessage(emailID) {\n const req = {\n emailId: emailID\n };\n return this.delegate.getMessage(req).pipe(map(v => v.message));\n }\n }\n MessageService.ɵfac = function MessageService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MessageService)(i0.ɵɵinject(MessageApiService));\n };\n MessageService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageService,\n factory: MessageService.ɵfac,\n providedIn: 'root'\n });\n return MessageService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PreferencesService = /*#__PURE__*/(() => {\n class PreferencesService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getCategories(senderType, senderID) {\n const req = new GetCategoriesRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.delegate.getCategories(req);\n }\n saveCategoryPreferencesForUser(senderType, senderID, recipientUserID, optedInEmailCategoryIDs) {\n const req = new SaveCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n userId: recipientUserID,\n optedInEmailCategoryIds: optedInEmailCategoryIDs\n });\n return this.delegate.saveCategoryPreferences(req);\n }\n getCategoryPreferences(senderType, senderID, recipientID) {\n const req = new GetCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n recipientId: recipientID\n });\n return this.delegate.getCategoryPreferences(req);\n }\n getUnsubscribeLink(linkID) {\n return this.delegate.getUnsubscribeLink({\n id: linkID\n });\n }\n }\n PreferencesService.ɵfac = function PreferencesService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PreferencesService)(i0.ɵɵinject(PreferencesApiService));\n };\n PreferencesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesService,\n factory: PreferencesService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailClientService = /*#__PURE__*/(() => {\n class EmailClientService {\n constructor(api) {\n this.api = api;\n }\n resubscribeRecipientFromUnsubscribeLink(unsubscribeLinkId) {\n const req = new ResubscribeRecipientFromUnsubscribeLinkRequest({\n unsubscribeLinkId: unsubscribeLinkId\n });\n return this.api.resubscribeRecipientFromUnsubscribeLink(req);\n }\n }\n EmailClientService.ɵfac = function EmailClientService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailClientService)(i0.ɵɵinject(EmailClientApiService));\n };\n EmailClientService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientService,\n factory: EmailClientService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RecipientStatusService = /*#__PURE__*/(() => {\n class RecipientStatusService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n // MAX email list size is 500\n searchRecipientStatus(senderType, senderID, recipientEmails) {\n return this.delegate.batchSearchRecipientStatus({\n sender: {\n type: senderType,\n id: senderID\n },\n recipientEmails: recipientEmails\n });\n }\n }\n RecipientStatusService.ɵfac = function RecipientStatusService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RecipientStatusService)(i0.ɵɵinject(RecipientStatusApiService));\n };\n RecipientStatusService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusService,\n factory: RecipientStatusService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailModule = /*#__PURE__*/(() => {\n class EmailModule {}\n EmailModule.ɵfac = function EmailModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EmailModule)();\n };\n EmailModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EmailModule\n });\n EmailModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [EmailService, EmailEventService, SendgridSubUsersService, SendgridTeammatesService, DomainService, AdminService, MessageService, PreferencesService, RecipientStatusService, EmailClientService]\n });\n return EmailModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendersService = /*#__PURE__*/(() => {\n class SendersService {\n constructor(senders) {\n this.senders = senders;\n }\n getEmailSendingInfo(senderType, senderId) {\n const req = {\n sender: {\n type: senderType,\n id: senderId\n }\n };\n return this.senders.getSenderInfo(req);\n }\n }\n SendersService.ɵfac = function SendersService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SendersService)(i0.ɵɵinject(SendersApiService));\n };\n SendersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersService,\n factory: SendersService.ɵfac,\n providedIn: 'root'\n });\n return SendersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst MARKETING_SERVICE_PROVIDER_ID = 'ESP_MARKETING';\nlet MessageSendingService = /*#__PURE__*/(() => {\n class MessageSendingService {\n constructor(emailClientApi) {\n this.emailClientApi = emailClientApi;\n }\n sendMarketingEmailFromPartner(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", \"\", options);\n return this.emailClientApi.sendV2(req);\n }\n sendMarketingEmailFromBusiness(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, businessID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", businessID, options);\n return this.emailClientApi.sendV2(req);\n }\n buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, espID, partnerID, replyToName, replyToEmailAddress, applicationID, businessID, options) {\n const message = new EmailMessageV2({\n to: {\n userId: recipientUserID\n },\n from: {\n name: fromName,\n emailAddress: fromEmailAddress\n },\n subject: subjectLine,\n content: [{\n type: ContentContentType.TEXT_HTML,\n value: emailContentHtml\n }]\n });\n if (!!replyToName && !!replyToEmailAddress) {\n message.replyTo = {\n name: replyToName,\n emailAddress: replyToEmailAddress\n };\n }\n if (!!options) {\n if (!!options.attributes) {\n message.attributes = options.attributes;\n }\n if (!!options.headers) {\n message.headers = options.headers;\n }\n if (!!options.attachments) {\n message.attachments = options.attachments;\n }\n if (!!options.urlAttachments) {\n message.urlAttachments = options.urlAttachments;\n }\n }\n const req = new SendV2Request({\n email: message,\n partnerId: partnerID,\n espId: espID,\n applicationId: applicationID ? applicationID : '',\n businessId: businessID ? businessID : ''\n });\n if (!!applicationID) {\n req.applicationId = applicationID;\n }\n if (!!businessID) {\n req.businessId = businessID;\n }\n if (!!options?.idempotencyKey) {\n req.idempotencyKey = options.idempotencyKey;\n }\n return req;\n }\n }\n MessageSendingService.ɵfac = function MessageSendingService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MessageSendingService)(i0.ɵɵinject(EmailApiService));\n };\n MessageSendingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageSendingService,\n factory: MessageSendingService.ɵfac,\n providedIn: 'root'\n });\n return MessageSendingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BlockService = /*#__PURE__*/(() => {\n class BlockService {\n constructor(api) {\n this.api = api;\n }\n createBlock(blockType, message, conditions) {\n const req = new CreateBlockRequest({\n blockType: blockType,\n message: message,\n conditions: conditions\n });\n return this.api.createBlock(req);\n }\n getBlock(blockType, id) {\n const req = new GetBlockRequest({\n blockType: blockType,\n id: id\n });\n return this.api.getBlock(req);\n }\n deleteBlock(blockType, id) {\n const req = new DeleteBlockRequest({\n blockType: blockType,\n id: id\n });\n return this.api.deleteBlock(req);\n }\n }\n BlockService.ɵfac = function BlockService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BlockService)(i0.ɵɵinject(BlocksApiService));\n };\n BlockService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BlockService,\n factory: BlockService.ɵfac,\n providedIn: 'root'\n });\n return BlockService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AdminService, AdminSetEmailQueuesStatusRequest, AttachmentInfo, Attribute, BatchSearchRecipientStatusRequest, BatchSearchRecipientStatusResponse, BlockService, BounceSender, BounceSenderType, Bucket, BulkUpsertPartnerEmailQuotaRequest, Category, ChangeEmailDomainRequest, ChangeEmailDomainResponse, ChangeEmailDomainStatus, CheckDisposableEmailRequest, CheckDisposableEmailResponse, ContactParticipant, Content, ContentContentType, CreateBlockRequest, CreateBlockResponse, CreateEmailDomainRequest, CreateEmailDomainWithSendAsRequest, CreateInboundMessageMappingRequest, CreateInboundMessageMappingResponse, CreatePendingDomainRequest, CustomSender, DateRange, DeleteBlockRequest, DeleteEmailDomainRequest, DeletePartnerEmailQuotaRequest, DeletePendingEmailDomainRequest, DeleteSubUserRequest, DomainService, EmailClientService, EmailDomain, EmailEvent, EmailEventBucket, EmailEventBucketEventRollup, EmailEventFilter, EmailEventService, EmailMessage, EmailMessageV2, EmailModule, EmailQueueStatus, EmailService, EmailWithCustomDomainMessage, Envelope, EventType, ExportAttributeEventClickStatsRequest, GCSAttachment, GetAttributeEventLinkStatsRequest, GetAttributeEventLinkStatsResponse, GetAttributeEventStatsRequest, GetAttributeEventStatsResponse, GetAttributeEventStatsResponseEventStats, GetBlockRequest, GetBlockResponse, GetBouncedRecipientRequest, GetBouncedRecipientResponse, GetCategoriesRequest, GetCategoriesResponse, GetCategoryPreferencesRequest, GetCategoryPreferencesResponse, GetDefaultDomainRequest, GetDefaultDomainResponse, GetEmailDomainRequest, GetEmailDomainResponse, GetEmailQueuesStatusRequest, GetEmailQueuesStatusResponse, GetInboundMessageMappingRequest, GetInboundMessageMappingResponse, GetInboundMessageRequest, GetInboundMessageResponse, GetMessageRequest, GetMessageResponse, GetMultiEmailRollupsRequest, GetMultiEmailRollupsResponse, GetMultiMessageRequest, GetMultiMessageResponse, GetMultiPartnerEmailQuotaRequest, GetMultiPartnerEmailQuotaResponse, GetPendingEmailDomainRequest, GetPendingEmailDomainResponse, GetPendingEmailDomainTargetCNameRecords, GetReplyEmailRequest, GetReplyEmailResponse, GetSenderInfoRequest, GetSenderInfoResponse, GetUnsubscribeLinkRequest, GetUnsubscribeLinkResponse, GetUnsubscribedRecipientRequest, GetUnsubscribedRecipientResponse, Header, InboundMessage, InboundMessageMapping, InboundMessageMappingOptions, InitializeSubUserRequest, InitiateEmailDomainRectifyRequest, InitiateEmailDomainRollbackRequest, LinkClickStats, LinkClickStatsRecipient, LinkStats, Links, ListAllDomainsRequest, ListAllDomainsResponse, ListEmailEventsRequest, ListEmailEventsRequestListEmailEventsFilters, ListEmailEventsResponse, ListEmailsRequest, ListEmailsRequestListEmailsFilters, ListEmailsResponse, ListEventsForAttributesRequest, ListEventsForAttributesResponse, ListLinkClickActivityForAttributeRequest, ListLinkClickActivityForAttributeRequestPagedRequestOptions, ListLinkClickActivityForAttributeResponse, ListSendGridSubUserReputationsRequest, ListSendGridSubUserReputationsResponse, ListSendGridTeammatesRequest, ListSendGridTeammatesResponse, MessageSendingService, MessageService, Namespace, NotificationType, PagedRequestOptions, PagedResponseMetadata, Participant, PartnerEmailQuota, PartnerEmailQuotaMutation, PreferencesService, QuarantineSenderRequest, RecipientStatusEnum, RecipientStatusService, Record, RedirectEmailRequest, RedirectEmailResponse, ResetRecipientStatusRequest, ResubscribeRecipientFromUnsubscribeLinkRequest, ResubscribeRecipientRequest, SaveCategoryPreferencesRequest, SendFromAuthorizedDomainRequest, SendFromAuthorizedDomainResponse, SendGridSubUserReputation, SendGridTeammate, SendRequest, SendResponse, SendV2Request, SendV2Response, SendWhitelabelEmailToUserRequest, SendWhitelabelEmailToUserResponse, SendWithCustomDomainRequest, SendWithCustomDomainResponse, Sender, SenderDomain, SenderType, SendersService, SendgridSubUsersService, SendgridTeammatesService, ServiceProviderInfo, SetEmailQueuesStatusRequest, Status, URLAttachment, UnbounceRecipientRequest, UpsertPartnerEmailQuotaRequest, UserParticipant, VerifyDefaultDomainMismatch, VerifyDefaultDomainRequest, VerifyDefaultDomainResponse, VerifyEmailDomainDMARCRequest, VerifyEmailDomainDMARCResponse, VerifyEmailDomainRequest, VerifyPendingEmailDomainMismatch, VerifyPendingEmailDomainRequest, VerifyPendingEmailDomainResponse, WhiteLabelEmailMessage };\n","export const devPyMappings: { [regex: string]: string } = {\n '.*s~vbc-(?:demo|prod)\\\\/marketing-automation:.*\\\\.(\\\\d+)(.*)':\n 'https://github.com/vendasta/marketing-automation/blob/master/src',\n 's~vbc-(?:demo|prod).*?.*\\\\.(\\\\d+)(.*)': 'https://github.com/vendasta/VBC/blob/master/src',\n 's~developers-vendasta-(?:demo|prod).*?.*\\\\.(\\\\d+)(.*)':\n 'https://github.com/vendasta/developer-central/blob/master/src',\n 's~website-pro-(?:demo|prod).*?.*\\\\.(\\\\d+)(.*)': 'https://github.com/vendasta/wsp-portal/blob/master/src',\n};\n\nexport const devGoMappings: { [uid: string]: string } = {\n // Demo\n 'U-4dc51001-43a0-4637-86f0-8a1d7c0921e4': 'https://github.com/vendasta/sales-orders/blob/master',\n 'U-ed5a9a1e-d336-4d3b-860d-75946abd9c27': 'https://github.com/vendasta/developer-central/blob/master',\n 'U-f78c792b-2456-4493-996a-4ea29cc0503f': 'https://github.com/vendasta/business-center/blob/master',\n 'U-fd604765-fa0e-48cd-812d-a20ac3f61176': 'https://github.com/vendasta/billing/blob/master',\n 'U-1dd8630c-1d42-40d1-8596-b3f84d317723': 'https://github.com/vendasta/reputation/blob/master',\n 'U-99e04759-35b8-4581-b131-5992365d956e': 'https://github.com/vendasta/sales/blob/master',\n 'U-b237a4ef-fd8e-42b6-a516-ee4142df76e8': 'https://github.com/vendasta/partner/blob/master',\n 'U-b0257997-7dbc-4f8e-94a6-9dce3bb06b8b': 'https://github.com/vendasta/campaigns/blob/master',\n 'U-748d72e7-38b9-4b63-a036-1e3ae99135f4': 'https://github.com/vendasta/snapshot/blob/master',\n // Prod\n 'U-5ba17e3e-1914-44b0-b54f-98a4b765e38c': 'https://github.com/vendasta/sales-orders/blob/master',\n 'U-0c53679b-b79a-4275-9fcb-e8c0ded7cfa2': 'https://github.com/vendasta/developer-central/blob/master',\n 'U-9c63d59d-81c9-4980-b917-68ac07994769': 'https://github.com/vendasta/business-center/blob/master',\n 'U-13540457-6f8c-4da5-90f3-b089dde60566': 'https://github.com/vendasta/billing/blob/master',\n 'U-7527d7fb-166c-4be2-a977-33c704ff8554': 'https://github.com/vendasta/reputation/blob/master',\n 'U-855d447e-a2f4-4733-8497-fe7441d7b224': 'https://github.com/vendasta/sales/blob/master',\n 'U-fbef6dd7-a81b-431f-b0d4-85ae422fdf5f': 'https://github.com/vendasta/partner/blob/master',\n 'U-44c0e750-4d99-4eca-9a30-47dad60bc624': 'https://github.com/vendasta/campaigns/blob/master',\n 'U-60878190-0b9e-4be4-a07a-1ca1cac92ec7': 'https://github.com/vendasta/snapshot/blob/master',\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';\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}\nclass BulkGetSpamScoreRequest {\n static fromProto(proto) {\n let m = new BulkGetSpamScoreRequest();\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 BulkGetSpamScoreResponse {\n static fromProto(proto) {\n let m = new BulkGetSpamScoreResponse();\n m = Object.assign(m, proto);\n if (proto.scores) {\n m.scores = proto.scores.map(SpamScore.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.scores !== 'undefined' && this.scores !== null) {\n toReturn['scores'] = 'toApiJson' in this.scores ? this.scores.toApiJson() : this.scores;\n }\n return toReturn;\n }\n}\nclass GetSpamScoreRequest {\n static fromProto(proto) {\n let m = new GetSpamScoreRequest();\n m = Object.assign(m, proto);\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\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.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n if (typeof this.fromAddress !== 'undefined') {\n toReturn['fromAddress'] = this.fromAddress;\n }\n if (typeof this.toAddress !== 'undefined') {\n toReturn['toAddress'] = this.toAddress;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass GetSpamScoreResponse {\n static fromProto(proto) {\n let m = new GetSpamScoreResponse();\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.isSpam !== 'undefined') {\n toReturn['isSpam'] = this.isSpam;\n }\n if (typeof this.score !== 'undefined') {\n toReturn['score'] = this.score;\n }\n if (typeof this.baseScore !== 'undefined') {\n toReturn['baseScore'] = this.baseScore;\n }\n return toReturn;\n }\n}\nclass Message {\n static fromProto(proto) {\n let m = new Message();\n m = Object.assign(m, proto);\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\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.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n if (typeof this.fromAddress !== 'undefined') {\n toReturn['fromAddress'] = this.fromAddress;\n }\n if (typeof this.toAddress !== 'undefined') {\n toReturn['toAddress'] = this.toAddress;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass SpamScore {\n static fromProto(proto) {\n let m = new SpamScore();\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.isSpam !== 'undefined') {\n toReturn['isSpam'] = this.isSpam;\n }\n if (typeof this.score !== 'undefined') {\n toReturn['score'] = this.score;\n }\n if (typeof this.baseScore !== 'undefined') {\n toReturn['baseScore'] = this.baseScore;\n }\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\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': 'spambam-api.vendasta-local.com',\n 'test': '',\n 'demo': 'spambam-demo.apigateway.co',\n 'prod': 'spambam-prod.apigateway.co',\n 'production': 'spambam-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(__ngFactoryType__) {\n return new (__ngFactoryType__ || 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 SpamDetectionApiService = /*#__PURE__*/(() => {\n class SpamDetectionApiService {\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 getSpamScore(r) {\n const request = r.toApiJson ? r : new GetSpamScoreRequest(r);\n return this.http.post(this._host + \"/spambam.v1.SpamDetectionService/GetSpamScore\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSpamScoreResponse.fromProto(resp)));\n }\n bulkGetSpamScore(r) {\n const request = r.toApiJson ? r : new BulkGetSpamScoreRequest(r);\n return this.http.post(this._host + \"/spambam.v1.SpamDetectionService/BulkGetSpamScore\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BulkGetSpamScoreResponse.fromProto(resp)));\n }\n }\n SpamDetectionApiService.ɵfac = function SpamDetectionApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SpamDetectionApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SpamDetectionApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SpamDetectionApiService,\n factory: SpamDetectionApiService.ɵfac,\n providedIn: 'root'\n });\n return SpamDetectionApiService;\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 ScoringService = /*#__PURE__*/(() => {\n class ScoringService {\n constructor(api) {\n this.api = api;\n }\n getSpamScore(subject, content, fromAddress, toAddress, timestamp, messageId) {\n const req = new GetSpamScoreRequest({\n subject: subject,\n content: content,\n fromAddress: fromAddress,\n toAddress: toAddress,\n timestamp: timestamp,\n messageId: messageId\n });\n return this.api.getSpamScore(req);\n }\n }\n ScoringService.ɵfac = function ScoringService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScoringService)(i0.ɵɵinject(SpamDetectionApiService));\n };\n ScoringService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScoringService,\n factory: ScoringService.ɵfac,\n providedIn: 'root'\n });\n return ScoringService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, BulkGetSpamScoreRequest, BulkGetSpamScoreResponse, GetSpamScoreRequest, GetSpamScoreResponse, Message, ScoringService, SpamScore };\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Directive({\n selector: '[appCopyToClipboard]',\n standalone: false,\n})\nexport class CopyToClipboardDirective {\n @Input('appCopyToClipboard') fieldText: string;\n\n constructor(\n private snackbarService: SnackbarService,\n private translateService: TranslateService,\n ) {}\n\n @HostListener('click')\n copyToClipboardOnClick(): void {\n try {\n const listener = (e: ClipboardEvent) => {\n e.clipboardData.setData('text/plain', this.fieldText);\n e.preventDefault();\n };\n document.addEventListener('copy', listener);\n document.execCommand('copy');\n document.removeEventListener('copy', listener);\n } catch (error) {\n this.snackbarService.errorSnack(\n `${this.translateService.instant('COPY_TO_CLIPBOARD.COPY')}: \"${this.fieldText}\"`,\n );\n return;\n }\n this.snackbarService.successSnack(\n `${this.translateService.instant('COPY_TO_CLIPBOARD.COPIED')}: \"${this.fieldText}\"`,\n );\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport {\n ContentContentType,\n EmailEvent,\n EmailEventService,\n EmailMessage,\n EventType,\n PagedRequestOptions,\n} from '@vendasta/email';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { take } from 'rxjs/operators';\nimport { devGoMappings, devPyMappings } from './dev-mappings';\nimport { EnvironmentService } from '@galaxy/core';\nimport { ScoringService } from '@vendasta/spambam';\n\ninterface SpamScore {\n isSpam: boolean;\n score: number;\n baseScore: number;\n}\n@Component({\n selector: 'app-email-preview',\n templateUrl: './email-preview.component.html',\n styleUrls: ['./email-preview.component.scss'],\n standalone: false,\n})\nexport class EmailPreviewDialogComponent implements OnInit {\n email: EmailMessage;\n info: { key: string; value: string }[] = [];\n events$: Observable;\n private _events$$: BehaviorSubject = new BehaviorSubject([]);\n\n // Initial tab to open\n selectedTab: any = 1;\n shareableURL: string;\n codeLocation: string | undefined;\n vStoreLocation: string | undefined;\n spamScore: SpamScore = {\n isSpam: false,\n score: 0,\n baseScore: 0,\n };\n is_loading$$: BehaviorSubject = new BehaviorSubject(false);\n is_loading$: Observable = this.is_loading$$.asObservable();\n showSpamScore = false;\n\n get htmlContent(): string {\n let msg = this.email.content[0];\n const htmlContents = this.email.content.filter((c) => c.type === ContentContentType.TEXT_HTML);\n if (htmlContents.length > 0) {\n msg = htmlContents[0];\n }\n if (msg.sensitive) {\n return '

🔐 The contents of this email are sensitive and have been encrypted

';\n }\n return msg.value;\n }\n\n constructor(\n private readonly router: Router,\n private readonly location: Location,\n private _eventService: EmailEventService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private _email: EmailMessage,\n private readonly environment: EnvironmentService,\n private readonly spamBamService: ScoringService,\n private route: ActivatedRoute,\n ) {\n this.email = _email;\n this.info.push({ key: 'EmailID', value: this.email.emailId });\n this.info.push(...(this.email.attributes || []));\n this.info.push({ key: 'Sub User', value: this.email.serviceProviderInfo?.subUserId });\n this.initializeSharableURL(_email.emailId);\n this.codeLocation = this.extractCodeLocation(_email);\n const env = environment.getEnvironmentString();\n this.vStoreLocation = `https://vstore-${env}.vendasta-internal.com/namespace/email/table/Message/entity/${_email.emailId}`;\n }\n\n private initializeSharableURL(emailId): void {\n const tree = this.router.createUrlTree([`email`, `message`, emailId]);\n this.location.go(tree.toString());\n\n this.shareableURL = `${window.location.protocol}//${window.location.host}/${tree.toString()}`;\n\n this.dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => {\n const mainTree = this.router.createUrlTree([`email`]);\n this.location.go(mainTree.toString());\n });\n }\n\n changePreviewWidth(newWidth): void {\n const preview = document.getElementById('email-preview-iframe');\n preview.style.width = newWidth;\n\n // hide sourceCode if visible\n const sourceCode = document.getElementById('source-code');\n if (sourceCode.style.display === 'block') {\n sourceCode.style.display = 'none';\n }\n }\n\n toggleSourceCode(): void {\n const sourceCode = document.getElementById('source-code');\n if (sourceCode.style.display === 'block') {\n sourceCode.style.display = 'none';\n } else {\n sourceCode.style.display = 'block';\n }\n }\n\n activeTab(currentTab?): void {\n const storedTab = sessionStorage.getItem('storedTab');\n\n if (currentTab) {\n // If a new tab is passed in, then update the saved\n // value in sessionStorage.\n sessionStorage.setItem('storedTab', currentTab.index);\n } else if (storedTab) {\n // If no new tab is passed in, the set the current tab to\n // what is saved in sessionStorage\n this.selectedTab = storedTab;\n }\n }\n\n ngOnInit(): void {\n const po = new PagedRequestOptions({ cursor: '', pageSize: 15 });\n this.activeTab();\n this.events$ = this._events$$.asObservable();\n this._eventService.listEvents(this.email.emailId, po).subscribe((res) => {\n this._events$$.next(res.events);\n });\n this.showSpamScore = this.route.snapshot.queryParamMap.get('withSpamScore') != undefined;\n if (this.email != undefined && this.showSpamScore) {\n this.getSpamScore();\n }\n }\n\n getSpamScore(): void {\n this.is_loading$$.next(true);\n this.spamBamService\n .getSpamScore(\n this.email.subject,\n this.email.content.map((c) => c.value).join('\\n'),\n this.email.from.emailAddress,\n this.email.to[0].emailAddress,\n this.email.timestamp,\n this.email.emailId,\n )\n .subscribe((res) => {\n this.spamScore.isSpam = res?.isSpam != undefined;\n this.spamScore.score = res?.score;\n this.spamScore.baseScore = res?.baseScore;\n this.is_loading$$.next(false);\n });\n }\n\n eventTypeToString(e: EventType): string {\n return EventType[e];\n }\n\n private extractCodeLocation(email: EmailMessage) {\n if (!email.attributes) {\n return undefined;\n }\n const codeLocation = email.attributes.find((a) => a.key === 'sdk-source');\n if (!codeLocation) {\n return undefined;\n }\n const ghStart = devGoMappings[email.originUserId];\n if (codeLocation.value.startsWith('/workspace/')) {\n const locWithLineNo = codeLocation.value.split('/workspace/')[1];\n if (ghStart) {\n const filePath = locWithLineNo.split(':')[0];\n const lineNumber = locWithLineNo.split(':')[1];\n return `${ghStart}${filePath}#L${lineNumber}`;\n }\n return undefined;\n }\n\n for (const regex in devPyMappings) {\n const match = codeLocation.value.match(regex);\n if (match) {\n const restOfText = match[2];\n\n const repoUrl = devPyMappings[regex];\n const filePath = restOfText.split(':')[0];\n const lineNumber = restOfText.split(':')[1];\n\n return `${repoUrl}${filePath}#L${lineNumber}`;\n }\n }\n\n if (ghStart) {\n return ghStart;\n }\n return undefined;\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
\n \n
\n
\n Subject\n {{ email.subject }}\n
\n
\n To\n \n {{ to.name }}\n \n ({{ to.emailAddress }})\n
\n
\n From\n \n {{ email.from.name }}\n \n ({{ email.from.emailAddress }})\n
\n
\n Reply-To\n \n {{ email.replyTo.name }}\n \n ({{ email.replyTo.emailAddress }})\n
\n
\n\n \n\n \n \n \n \n \n \n
    \n
  • \n
    \n \n drafts\n mail\n send\n trending_down\n replay\n remove_circle_outline\n crop_square\n
    \n

    \n {{ eventTypeToString(e.eventType) | titlecase }}\n

    \n

    \n {{ e.urlClicked }}\n

    \n

    {{ e.eventTime | date: 'medium' }}

    \n

    \n {{ e.reason }}\n

    \n
    \n
    \n
  • \n
\n
\n \n No events found\n \n
\n \n \n
    \n
  • \n
    {{ inf.key }}
    \n
    \n
    {{ inf.value }}
    \n \n file_copy\n \n
    \n
  • \n
\n
\n \n \n
\n
{{ 'EMAIL_REVIEW.SPAM.SPAM' | translate }}
\n
\n
\n
\n check_circle_outline\n
\n
\n
\n
\n
\n
    \n
    \n
    {{ 'EMAIL_REVIEW.SPAM.SCORE' | translate }}
    \n
    \n
    {{ spamScore?.score }}
    \n \n file_copy\n \n
    \n
    \n
    \n
    {{ 'EMAIL_REVIEW.SPAM.IS_SPAM' | translate }}
    \n
    \n
    {{ spamScore?.isSpam }}
    \n
    \n
    \n
\n
\n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n
\n cancel\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { EmailService } from '@vendasta/email';\nimport { startWith } from 'rxjs/operators';\n\n@Component({\n selector: 'app-email-admin',\n templateUrl: 'email-admin.component.html',\n styleUrls: ['email-admin.component.scss'],\n standalone: false,\n})\nexport class EmailAdminComponent implements OnInit {\n public env: string;\n\n queueStatus$ = this.emailService.getEmailQueuesStatus().pipe(startWith(null));\n\n setStatus(a): void {\n this.emailService.setEmailQueuesStatus(a.checked).subscribe();\n }\n\n constructor(\n public emailService: EmailService,\n public dialog: MatDialog,\n public envService: EnvironmentService,\n ) {}\n\n ngOnInit(): void {\n if (this.envService.getEnvironment() === Environment.PROD) {\n this.env = 'prod';\n } else {\n this.env = 'demo';\n }\n }\n}\n","\n \n Email Management\n \n \n \n Email Master Control\n\n \n
\n \n Email Queues Running\n \n
\n\n \n\n \n

This toggle controls processing of the following queues:

\n\n \n notifications_none\n ns-notifcations\n open_in_new\n \n\n \n mail_outline\n sendgrid-email\n open_in_new\n \n\n \n keyboard_tab\n email-send-push\n open_in_new\n \n
\n
\n
\n
\n
\n","import { DataSource } from '@angular/cdk/collections';\nimport { PageEvent } from '@angular/material/paginator';\nimport { EmailMessage, EmailService, ListEmailsRequestListEmailsFilters, PagedRequestOptions } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FilterField } from '@vendasta/uikit';\nimport { BehaviorSubject, Observable, ReplaySubject, combineLatest, of } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\n\ninterface PageOptions {\n index: number;\n size: number;\n}\n\nexport class EmailDataSource extends DataSource {\n private _emails$$: ReplaySubject = new ReplaySubject(1);\n private _searchTerm$$: BehaviorSubject = new BehaviorSubject('');\n private _pageOptions$$: BehaviorSubject = new BehaviorSubject({ index: 0, size: 15 });\n private _toFilter$$: BehaviorSubject = new BehaviorSubject('');\n private _fromFilter$$: BehaviorSubject = new BehaviorSubject('');\n private _startFilter$$: BehaviorSubject = new BehaviorSubject(null);\n private _endFilter$$: BehaviorSubject = new BehaviorSubject(null);\n private _espFilter$$: BehaviorSubject = new BehaviorSubject('');\n private _partnerIDFilter$$: BehaviorSubject = new BehaviorSubject('');\n private _applicationIDFilter$$: BehaviorSubject = new BehaviorSubject('');\n private _businessIDFilter$$: BehaviorSubject = new BehaviorSubject('');\n\n emails$: Observable = this._emails$$.asObservable();\n searchTerm$: Observable = this._searchTerm$$.asObservable();\n pageSize$: Observable;\n\n totalResults = 0;\n\n constructor(private _api: EmailService, private snackBarService: SnackbarService) {\n super();\n this.pageSize$ = this._pageOptions$$.asObservable().pipe(map((p) => p.size));\n }\n\n private static _getFilter(\n to: string,\n from: string,\n start: Date,\n end: Date,\n espId: string,\n partnerId?: string,\n applicationId?: string,\n businessId?: string,\n ): ListEmailsRequestListEmailsFilters {\n return new ListEmailsRequestListEmailsFilters({\n to: to,\n from: from,\n dateRange: {\n start: start,\n end: end,\n },\n espId: espId,\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n });\n }\n\n pageOptionsChanged(event: PageEvent): void {\n this._pageOptions$$.next({ index: event.pageIndex, size: event.pageSize });\n }\n\n private _getCursor(pageIndex: number, pageSize: number): string {\n const offset = pageSize * pageIndex;\n return window.btoa(offset.toString(10));\n }\n\n private _getPagingRequestOptions(pagingOptions: PageOptions): PagedRequestOptions {\n return new PagedRequestOptions({\n cursor: this._getCursor(pagingOptions.index, pagingOptions.size),\n pageSize: pagingOptions.size,\n });\n }\n\n updateSearchTerm(term: string): void {\n this._searchTerm$$.next(term);\n }\n\n updateFilter(field: FilterField): void {\n switch (field.id) {\n case 'to':\n this._toFilter$$.next(field.value);\n break;\n case 'from':\n this._fromFilter$$.next(field.value);\n break;\n case 'sent_after':\n this._startFilter$$.next(field.value);\n break;\n case 'sent_before':\n this._endFilter$$.next(field.value);\n break;\n case 'email_service_provider':\n this._espFilter$$.next(field.value?.id);\n break;\n case 'partner_id':\n this._partnerIDFilter$$.next(field.value);\n break;\n case 'application_id':\n this._applicationIDFilter$$.next(field.value);\n break;\n case 'business_id':\n this._businessIDFilter$$.next(field.value);\n break;\n }\n }\n\n connect(): Observable {\n combineLatest([\n this.searchTerm$,\n this._pageOptions$$,\n this._toFilter$$.asObservable(),\n this._fromFilter$$.asObservable(),\n this._startFilter$$.asObservable(),\n this._endFilter$$.asObservable(),\n this._espFilter$$.asObservable(),\n this._partnerIDFilter$$.asObservable(),\n this._applicationIDFilter$$.asObservable(),\n this._businessIDFilter$$.asObservable(),\n ])\n .pipe(\n switchMap(([searchTerm, pageOptions, to, from, start, end, espId, partnerID, applicationID, businessID]) => {\n return this._api\n .listEmails(\n searchTerm,\n EmailDataSource._getFilter(\n to,\n from,\n start,\n end,\n espId,\n partnerID,\n applicationID,\n businessID,\n ),\n this._getPagingRequestOptions(pageOptions),\n )\n .pipe(\n catchError(() => {\n this.snackBarService.openErrorSnack('An error occurred, please try again.');\n return of(null);\n }),\n );\n }),\n )\n .subscribe((r) => {\n if (r) {\n this._emails$$.next(r.emails);\n this.totalResults = r.pagingMetadata.totalResults;\n } else {\n this._emails$$.next([]);\n }\n });\n return this.emails$;\n }\n\n disconnect(): void {\n return;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { EmailDataSource } from './email.data-source';\nimport { EmailPreviewDialogComponent } from './preview/email-preview.component';\nimport {\n DatePickerFilterField,\n Filters,\n FilterService,\n FilterSection,\n RadioFilterField,\n TextFilterField,\n} from '@vendasta/uikit';\nimport { EmailMessage, EmailService, MessageService } from '@vendasta/email';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Subscription, firstValueFrom, take } from 'rxjs';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-email',\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n standalone: false,\n})\nexport class EmailComponent implements OnInit, OnDestroy {\n private subscriptions: Subscription[] = [];\n emailDataSource: EmailDataSource;\n displayedColumns: string[] = ['timestamp', 'partner', 'subject', 'to', 'from'];\n\n private searchTerm$$: BehaviorSubject = new BehaviorSubject('');\n\n private searchAfterField = new DatePickerFilterField({\n name: 'Sent After',\n value: '',\n });\n\n filters: Filters = new Filters('Filters', [\n new FilterSection({\n title: 'Participants',\n type: 'and',\n fields: [\n new TextFilterField({\n name: 'To',\n value: '',\n }),\n new TextFilterField({\n name: 'From',\n value: '',\n }),\n ],\n }),\n new FilterSection({\n title: 'Sender Domain Info',\n type: 'and',\n fields: [\n new TextFilterField({\n name: 'Partner ID',\n value: '',\n }),\n new TextFilterField({\n name: 'Application ID',\n value: '',\n }),\n new TextFilterField({\n name: 'Business ID',\n value: '',\n }),\n ],\n }),\n new FilterSection({\n title: 'Email Type',\n type: 'and',\n fields: [\n new RadioFilterField({\n name: 'Email Service Provider',\n value: '',\n options: [\n {\n id: '',\n name: 'All',\n },\n {\n id: 'ESP_BILLING',\n name: 'Billing',\n },\n {\n id: 'ESP_MARKETING',\n name: 'Marketing',\n },\n {\n id: 'ESP_PRODUCT',\n name: 'Product',\n },\n {\n id: 'ESP_SMB',\n name: 'SMB',\n },\n {\n id: 'ESP_WEBSITE_PRO',\n name: 'Website Pro',\n },\n {\n id: 'ESP_WEBSITE_PRO_TRANSACTIONAL',\n name: 'WSP Transactional',\n },\n ],\n }),\n ],\n }),\n new FilterSection({\n title: 'Sent',\n type: 'and',\n fields: [\n this.searchAfterField,\n new DatePickerFilterField({\n name: 'Sent Before',\n value: '',\n }),\n ],\n }),\n ]);\n\n getPartnerID(item: EmailMessage): string {\n if (item.attributes) {\n // notification style of key naming is `partnerId`\n const partnerId = item.attributes.find((e) => e.key === 'partnerId');\n\n // new notification microservice email key is now `partner_id` !!? Why??!\n const partner_id = item.attributes.find((e) => e.key === 'partner_id');\n\n if (partnerId) {\n return partnerId.value;\n } else if (partner_id) {\n return partner_id.value;\n }\n }\n return null;\n }\n\n openEmailDialog(email: EmailMessage): void {\n const filters = this.filterService.filters;\n this.dialog\n .open(EmailPreviewDialogComponent, {\n data: email,\n panelClass: 'mat-dialog-no-padding',\n })\n .afterClosed()\n .subscribe(() => this.filterService.setFilters(filters));\n }\n\n set searchTerm(s: string) {\n this.searchTerm$$.next(s);\n }\n\n get searchTerm(): string {\n return this.searchTerm$$.getValue();\n }\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly messageService: MessageService,\n private readonly alerts: SnackbarService,\n public emailService: EmailService,\n public dialog: MatDialog,\n private snackBarService: SnackbarService,\n private readonly router: Router,\n private readonly filterService: FilterService,\n ) {}\n\n ngOnInit(): void {\n this.emailDataSource = new EmailDataSource(this.emailService, this.snackBarService);\n this.filterService.setFilters(this.filters);\n this.subscriptions.push(\n this.filterService.fieldValueChanges.subscribe((fields) => {\n fields.forEach((f) => this.emailDataSource.updateFilter(f));\n }),\n );\n\n if (!this.searchAfterField.value) {\n this.searchAfterField.changeValue(moment().subtract(7, 'days'));\n }\n\n const emailIdFromURL = this.activatedRoute.snapshot.params['emailId'];\n if (emailIdFromURL) {\n this.loadMessageAndOpenInDialog(emailIdFromURL).catch((err) => {\n console.error('Failed to load message', err);\n this.alerts.errorSnack('Failed to load message');\n });\n }\n\n this.subscriptions.push(\n this.activatedRoute.queryParams.pipe(take(1)).subscribe((p: Params) => {\n this.searchTerm = p.search_term || '';\n }),\n );\n\n this.subscriptions.push(\n this.searchTerm$$.subscribe((s) => {\n this.emailDataSource.updateSearchTerm(s);\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: { search_term: s },\n queryParamsHandling: 'merge',\n });\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n private async loadMessageAndOpenInDialog(emailID: string): Promise {\n return firstValueFrom(this.messageService.getMessage(emailID)).then((result: EmailMessage) =>\n this.openEmailDialog(result),\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
Timestamp\n {{ row.timestamp | date: 'mediumDate' }}\n
\n {{ row.timestamp | date: 'mediumTime' }}\n
PID\n \n {{ getPartnerID(row) }}\n \n \n
\n
\n
To\n
\n {{ t.name }}\n
\n {{ t.emailAddress }}\n
\n
\n
From\n {{ row.from.name }}\n
\n {{ row.from.emailAddress }}\n
\n
Subject\n {{ row.subject }}\n
\n\n\n\n\n
\n","import { Observable, of, SchedulerLike } from 'rxjs';\nimport {\n ObservableWorkStateMap,\n WorkStateMap,\n applyFinishedWork,\n startWorkIfNeededForSubscriber,\n} from '@vendasta/rx-utils/work-state';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\n\nexport function IDENTITY(data: DATA): Observable {\n return of(data);\n}\n\nexport const GLOBAL_INPUT = 'global';\n\n/**\n * External source is the origin of the data. This might be a remote HTTP\n * server or an in-memory service that performs expensive computations.\n */\ninterface ExternalSource {\n /**\n * fetchFn acquires a new copy of the data using the given inputs.\n * The data could come from an HTTP request or an expensive async procedure.\n */\n fetchFn: (i: INPUTS) => Observable;\n /**\n * uploadFn sends the provided data to the external source. It also stores\n * the provided data locally, overwriting any existing data previously\n * computed/fetched/set for the same set of inputs.\n */\n uploadFn: (i: INPUTS, d: DATA) => Observable;\n}\n\ninterface Testing {\n scheduler?: SchedulerLike;\n}\n\n/**\n * Defines how the KeyedDataProvider should acquire data and surface it back to\n * the caller.\n */\nexport interface DataProviderConfig {\n /**\n * externalSource is the origin of the data. This might be a remote HTTP\n * server or an in-memory service that performs expensive computations.\n */\n externalSource: ExternalSource;\n /**\n * convert is a set of functions for transforming data for different use cases\n */\n convert: {\n /**\n * apiDataToAppData is a function that converts from the API's response\n * into an object that can be used for display purposes. It returns an\n * observable in case additional async work is required to produce the\n * final object. For example, an additional HTTP request to acquire display\n * data.\n */\n apiDataToAppData: (API_DATA) => Observable;\n /**\n * inputsToStringKey is a function that converts a set of inputs into a\n * key string in a reproducable way. This key will be used for providing\n * access to loading, error, and success values when multiple sets of\n * inputs have been processed by the Data Provider.\n */\n inputsToStringKey: (INPUTS) => string;\n };\n testing?: Testing;\n}\n\nexport class KeyedDataProvider {\n private readonly stateMap = new ObservableWorkStateMap();\n readonly state: WorkStateMap = this.stateMap;\n private readonly updateStateMap = new ObservableWorkStateMap();\n\n constructor(private readonly config: DataProviderConfig) {}\n\n getCachedOrFetch$(param: INPUTS): Observable {\n const loadDataFn = this.getWorkFn(param);\n const key = this.config.convert.inputsToStringKey(param);\n const scheduler = this.config.testing?.scheduler || undefined;\n return startWorkIfNeededForSubscriber(key, this.stateMap, loadDataFn, scheduler);\n }\n\n requestRefresh(param: INPUTS): void {\n const work = this.getWorkFn(param);\n const key = this.config.convert.inputsToStringKey(param);\n this.stateMap.startWork(key, work());\n }\n\n private getWorkFn(param: INPUTS): () => Observable {\n return () =>\n this.config.externalSource\n .fetchFn(param)\n .pipe(switchMap((v: API_DATA) => this.config.convert.apiDataToAppData(v)));\n }\n\n store(i: INPUTS, data: DATA): void {\n const work = this.config.externalSource.uploadFn(i, data).pipe(shareReplay(1));\n const key = this.config.convert.inputsToStringKey(i);\n applyFinishedWork(this.stateMap, key, data);\n this.updateStateMap.startWork(key, work);\n }\n\n storeStateSuccess$(i: INPUTS): Observable {\n return this.updateStateMap.isSuccess$(this.config.convert.inputsToStringKey(i));\n }\n\n isLoading$(i: INPUTS): Observable {\n return this.state.isLoading$(this.config.convert.inputsToStringKey(i));\n }\n\n isSuccess$(i: INPUTS): Observable {\n return this.state.isSuccess$(this.config.convert.inputsToStringKey(i));\n }\n\n isFailed$(i: INPUTS): Observable {\n return this.isSuccess$(i).pipe(map((v) => !v));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DataProviderConfig, KeyedDataProvider } from '@vendasta/data-providers';\nimport { ListSendGridTeammatesResponseInterface, SendgridTeammatesService } from '@vendasta/email';\nimport { Observable, of, throwError } from 'rxjs';\n\nexport interface SendGridAdmin {\n name: string;\n email: string;\n role?: string;\n slackName?: string;\n}\n\ntype EmailResponse = ListSendGridTeammatesResponseInterface;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SendgridAdminsSource extends KeyedDataProvider {\n constructor(svc: SendgridTeammatesService) {\n const cfg: DataProviderConfig = {\n externalSource: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fetchFn: (i: string) => svc.list(),\n uploadFn: () => throwError('Upload not supported'),\n },\n convert: {\n apiDataToAppData: emailResponseToUIObject,\n inputsToStringKey: (i) => i,\n },\n };\n super(cfg);\n }\n}\n\nfunction emailResponseToUIObject(a: EmailResponse): Observable {\n const sga: SendGridAdmin[] = a.teammates.map((v) => ({\n name: v.fullName,\n email: v.email,\n role: v.role,\n slackName: v.slackUserName,\n slackUrl: v.slackUrl,\n }));\n return of(sga);\n}\n","import { Injectable } from '@angular/core';\nimport { DataProviderConfig, KeyedDataProvider } from '@vendasta/data-providers';\nimport { ListSendGridSubUserReputationsResponse, SendgridSubUsersService } from '@vendasta/email';\nimport { Observable, of, throwError } from 'rxjs';\n\ntype Response = ListSendGridSubUserReputationsResponse;\nexport interface Reputation {\n username: string;\n reputationPercent: number;\n color: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SendgridReputationsSource extends KeyedDataProvider {\n constructor(svc: SendgridSubUsersService) {\n const cfg: DataProviderConfig = {\n externalSource: {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fetchFn: (i: string) => svc.listSubUserReputations(),\n uploadFn: () => throwError('Upload not supported'),\n },\n convert: {\n apiDataToAppData: responseToUIObject,\n inputsToStringKey: (i) => i,\n },\n };\n super(cfg);\n }\n}\n\nfunction computeColor(reputationPercent: number): string {\n if (reputationPercent < 95) {\n return 'warn';\n }\n return 'primary';\n}\n\nfunction responseToUIObject(r: Response): Observable {\n return of(\n r.reputations.map((v) => ({\n reputationPercent: v.reputationPercent,\n username: v.username,\n color: computeColor(v.reputationPercent),\n })),\n );\n}\n","import { Injectable } from '@angular/core';\nimport { DataProviderConfig, KeyedDataProvider } from '@vendasta/data-providers';\nimport {\n GetCategoryPreferencesResponse as Response,\n GetCategoryPreferencesResponseInterface as ResponseInterface,\n PreferencesService,\n SenderType,\n} from '@vendasta/email';\nimport { of } from 'rxjs';\nimport { mapTo } from 'rxjs/operators';\n\nexport interface PreferenceInputs {\n senderType: SenderType;\n senderId: string;\n userId: string;\n}\n\n@Injectable()\nexport class EmailPreferencesSource extends KeyedDataProvider {\n constructor(svc: PreferencesService) {\n const cfg: DataProviderConfig = {\n externalSource: {\n fetchFn: (i: PreferenceInputs) => svc.getCategoryPreferences(i.senderType, i.senderId, i.userId),\n uploadFn: (i: PreferenceInputs, preference: ResponseInterface) =>\n svc\n .saveCategoryPreferencesForUser(i.senderType, i.senderId, i.userId, preference.optedInEmailCategoryIds)\n .pipe(mapTo(null)),\n },\n convert: {\n apiDataToAppData: of,\n inputsToStringKey: (i) => [i.senderType.toString(), i.senderId, i.userId].join(':'),\n },\n };\n super(cfg);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DataProviderConfig, KeyedDataProvider } from '@vendasta/data-providers';\nimport { Category, GetCategoriesResponse as Response, PreferencesService, SenderType } from '@vendasta/email';\nimport { of, throwError } from 'rxjs';\n\nexport interface CategoriesInputs {\n senderType: SenderType;\n senderId: string;\n}\n\n@Injectable()\nexport class EmailCategoriesSource extends KeyedDataProvider {\n constructor(svc: PreferencesService) {\n const cfg: DataProviderConfig = {\n externalSource: {\n fetchFn: (i: CategoriesInputs) => svc.getCategories(i.senderType, i.senderId),\n uploadFn: () => throwError('Upload not supported'),\n },\n convert: {\n apiDataToAppData: (r: Response) => of(r.categories),\n inputsToStringKey: (i) => i,\n },\n };\n super(cfg);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { EmailPreferencesSource } from './email-preferences.source';\nimport { EmailCategoriesSource } from './email-categories.source';\n\n@NgModule({\n imports: [CommonModule],\n exports: [],\n providers: [EmailPreferencesSource, EmailCategoriesSource],\n})\nexport class DataSourcesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SendgridAdminsSource } from './email/sendgrid-admins-source.service';\nimport { SendgridReputationsSource } from './email/sendgrid-reputations.source';\nimport {\n DataSourcesModule,\n EmailCategoriesSource,\n EmailPreferencesSource,\n} from '@galaxy/email-ui/preferences/data-sources';\n\n@NgModule({\n providers: [SendgridAdminsSource, SendgridReputationsSource, EmailCategoriesSource, EmailPreferencesSource],\n declarations: [],\n imports: [CommonModule, DataSourcesModule],\n})\nexport class DataProvidersModule {}\n","import { merge, Observable, of } from 'rxjs';\nimport { delay, filter, mapTo, startWith, switchMap } from 'rxjs/operators';\nimport { ReloadVisibility } from '@vendasta/uikit';\nimport { KeyedDataProvider } from '@vendasta/data-providers';\n\nexport function nicerLoading(loading$: Observable): Observable {\n return loading$.pipe(\n switchMap((isSending) => {\n if (isSending) {\n return of(true);\n }\n // More satisfying UX for very fast requests\n return of(false).pipe(delay(350));\n }),\n );\n}\n\nexport function buildReloadVis$(id: string, data: KeyedDataProvider): Observable {\n // None of this should be necessary. TODO: Fix async-ui so we can just use:\n // this.reloadVis$ = this.data$.pipe(mapTo('data-visible'));\n const showWhenDataLoads = data.state.getWorkResults$(id).pipe(mapTo('data-visible'));\n const hideOnError = data.state.isSuccess$(id).pipe(\n filter((v) => !v),\n mapTo('data-hidden'),\n );\n return merge(showWhenDataLoads, hideOnError).pipe(startWith('data-hidden'));\n}\n","import { Component, Input } from '@angular/core';\nimport { SendGridAdmin } from '../../../../../data-providers';\n\n@Component({\n selector: 'app-sendgrid-admins-table',\n templateUrl: './sendgrid-admins-table.component.html',\n styleUrls: ['./sendgrid-admins-table.component.scss'],\n standalone: false,\n})\nexport class SendgridAdminsTableComponent {\n displayedColumns: string[] = ['name', 'email', 'role', 'slack'];\n\n @Input() dataSource: SendGridAdmin[];\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Name\n
{{ element.name }}
\n
Email\n
{{ element.email }}
\n
Role\n
{{ element.role }}
\n
Slack\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { GLOBAL_INPUT } from '@vendasta/data-providers';\nimport { map } from 'rxjs/operators';\nimport { SendgridAdminsSource } from '../../../../data-providers';\nimport { buildReloadVis$, nicerLoading } from '../../ui-utils/async';\n\n@Component({\n templateUrl: './sendgrid-admins.component.html',\n styleUrls: ['./sendgrid-admins.component.scss'],\n standalone: false,\n})\nexport class SendgridAdminsComponent implements OnInit {\n readonly loading$ = nicerLoading(this.data.state.isLoading$(GLOBAL_INPUT));\n readonly failed$ = this.data.state.isSuccess$(GLOBAL_INPUT).pipe(map((v) => !v));\n readonly data$ = this.data.getCachedOrFetch$(GLOBAL_INPUT);\n readonly reloadVis$ = buildReloadVis$(GLOBAL_INPUT, this.data);\n\n constructor(private readonly data: SendgridAdminsSource) {}\n\n ngOnInit(): void {\n this.data.requestRefresh(GLOBAL_INPUT);\n }\n\n handleTryAgain(): void {\n this.data.requestRefresh(GLOBAL_INPUT);\n }\n}\n","\n \n \n SendGrid Admins\n \n \n \n These are people who can probably help you gain access to SendGrid\n \n
\n \n \n \n \n\n \n \n
\n
\n
\n\n\n \n \n error_outline\n \n Unable to load Teammates\n \n \n \n \n\n","import { HttpResponse } from '@angular/common/http';\nimport { Component } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { AdminService, GetUnsubscribedRecipientResponseInterface } from '@vendasta/email';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\ninterface Recipient {\n email: string;\n partnerID: string;\n}\n\ntype SenderType = '' | 'partner' | 'business' | 'product';\n\n@Component({\n selector: 'app-resubscribe',\n templateUrl: './resubscribe.component.html',\n styleUrls: ['./resubscribe.component.scss'],\n standalone: false,\n})\nexport class ResubscribeComponent {\n senderType: SenderType = 'partner';\n isHelpPopoverOpen: boolean;\n searchResult$$: BehaviorSubject = new BehaviorSubject(null);\n searchForm: UntypedFormGroup;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n\n pos = PopoverPositions['TopRight'];\n\n constructor(\n formBuilder: UntypedFormBuilder,\n private adminService: AdminService,\n private alertService: SnackbarService,\n ) {\n this.searchForm = formBuilder.group({\n email: ['', Validators.required],\n partnerId: ['', Validators.required],\n consent: [false, Validators.required],\n });\n }\n\n searchForUnsubscribed(): void {\n this.loading$$.next(true);\n this.searchForm.get('consent').setValue(false);\n const partnerID = this.searchForm.get('partnerId').value;\n const recipientEmail = this.searchForm.get('email').value;\n let get$: Observable;\n switch (this.senderType) {\n case '':\n throw new Error('Cannot get unsubscribed for empty sender type');\n case 'business':\n get$ = this.adminService.getUnsubscribedRecipientForBusiness(recipientEmail);\n break;\n case 'partner':\n get$ = this.adminService.getUnsubscribedRecipientForPartner(partnerID, recipientEmail);\n break;\n case 'product':\n get$ = this.adminService.getUnsubscribedRecipientForProduct(recipientEmail);\n break;\n }\n get$.subscribe(\n (response: GetUnsubscribedRecipientResponseInterface) => {\n this.searchResult$$.next({ email: response.recipientEmail, partnerID: partnerID });\n this.loading$$.next(false);\n },\n (error) => {\n this.loading$$.next(false);\n if (error.status === 404) {\n this.alertService.errorSnack('Recipient not found');\n } else if (error.status === 400) {\n this.alertService.errorSnack('Search failed');\n console.error('search failed', error.error.message);\n } else {\n this.alertService.errorSnack('Search failed');\n }\n },\n );\n }\n\n resubscribeRecipient(recipient: Recipient): void {\n this.loading$$.next(true);\n\n let resub$: Observable>;\n switch (this.senderType) {\n case '':\n throw new Error('Cannot resubscribe for empty sender type');\n case 'business':\n resub$ = this.adminService.resubscribeRecipientForBusiness(recipient.email);\n break;\n case 'partner':\n resub$ = this.adminService.resubscribeRecipientForPartner(recipient.partnerID, recipient.email);\n break;\n case 'product':\n resub$ = this.adminService.resubscribeRecipientForProduct(recipient.email);\n break;\n }\n resub$.subscribe({\n next: () => {\n this.alertService.successSnack('Recipient resubscribed');\n this.searchResult$$.next(null);\n this.searchForm.get('email').setValue('');\n this.searchForm.get('partnerId').setValue('');\n this.loading$$.next(false);\n },\n error: (error) => {\n this.loading$$.next(false);\n if (error.status === 404) {\n this.alertService.errorSnack('Failed to resubscribe, recipient not found');\n } else {\n this.alertService.errorSnack('Failed to resubscribe');\n console.error('failed to resubscribe', error?.error?.message);\n }\n },\n });\n }\n\n goBack(): void {\n this.searchResult$$.next(null);\n this.searchForm.get('email').setValue('');\n this.searchForm.get('partnerId').setValue('');\n }\n\n openHelpNote(): void {\n this.isHelpPopoverOpen = true;\n }\n\n closeHelpNote(): void {\n this.isHelpPopoverOpen = false;\n }\n}\n","\n \n Resubscribe email recipients\n \n \n \n \n What kind of sender?\n \n Business\n Partner\n Product\n \n \n \n \n
\n \n \n \n If the recipient you are searching for is not partner specific, leave this field blank\n \n \n \n \n \n \n
\n
\n
\n\n\n
\n \n Re-subscribing a recipient requires their consent.\n
\n Be absolutely sure you have this before continuing!\n
\n
\n
Recipient Email: {{ result.email }}
\n
Partner ID: {{ result.partnerID }}
\n
\n\n
\n I have the recipient's consent\n
\n
\n \n \n Resubscribe\n \n
\n
\n
\n\n\n \n\n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { AdminService, BounceSender, BounceSenderType, GetBouncedRecipientResponseInterface } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject } from 'rxjs';\n\ninterface Recipient {\n email: string;\n senderId: string;\n}\n\ntype Type = 'partner' | 'business' | 'yesware' | '';\n\n@Component({\n selector: 'app-unbounce',\n templateUrl: './unbounce.component.html',\n styleUrls: ['./unbounce.component.scss'],\n standalone: false,\n})\nexport class UnbounceComponent {\n senderType: Type = 'partner';\n searchResult$$: BehaviorSubject = new BehaviorSubject(null);\n searchForm: UntypedFormGroup;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n formBuilder: UntypedFormBuilder,\n private alertService: SnackbarService,\n private adminService: AdminService,\n ) {\n this.searchForm = formBuilder.group({\n email: ['', Validators.required],\n senderId: ['', Validators.required],\n });\n }\n\n searchForBounced(): void {\n const senderId = this.searchForm.get('senderId').value;\n const recipientEmail = this.searchForm.get('email').value;\n\n if (senderId === '' || recipientEmail === '') {\n this.alertService.openErrorSnack('Please enter the required fields');\n } else if (recipientEmail.length < 2) {\n this.alertService.openErrorSnack('Please enter a valid email address');\n } else {\n this.loading$$.next(true);\n const sender = this.getSender(senderId);\n\n const get$ = this.adminService.getBouncedRecipient(sender, recipientEmail);\n\n get$.subscribe(\n (response: GetBouncedRecipientResponseInterface) => {\n this.searchResult$$.next({ email: response.recipientEmail, senderId: senderId });\n this.loading$$.next(false);\n },\n (error) => {\n this.loading$$.next(false);\n if (error.status === 404) {\n this.alertService.openErrorSnack('Recipient not found');\n } else {\n this.alertService.openErrorSnack('Search failed');\n console.error('search failed', error.error.message);\n }\n },\n );\n }\n }\n\n unbounceRecipient(recipient: Recipient): void {\n this.loading$$.next(true);\n const sender = this.getSender(recipient.senderId);\n const unbounce$ = this.adminService.unbounceRecipient(sender, recipient.email);\n\n unbounce$.subscribe({\n next: () => {\n this.alertService.openSuccessSnack('Recipient unbounced');\n this.goBack();\n this.loading$$.next(false);\n },\n error: (error) => {\n this.loading$$.next(false);\n if (error.status === 404) {\n this.alertService.openErrorSnack('Failed to unbounce, recipient not found');\n } else {\n this.alertService.openErrorSnack('Failed to unbounce');\n console.error('failed to unbounce', error.error.message);\n }\n },\n });\n }\n\n goBack(): void {\n this.searchResult$$.next(null);\n this.searchForm.get('email').setValue('');\n this.searchForm.get('senderId').setValue(this.senderType == 'yesware' ? '~' : '');\n }\n\n typeChanged(typ: MatSelectChange): void {\n if (typ.value == 'yesware') {\n // The API (and form validation) requires a value, but it's not important for Yesware\n this.searchForm.get('senderId').setValue('~');\n }\n }\n\n getSender(senderID: string): BounceSender {\n let type = BounceSenderType.UNBOUNCE_SENDER_TYPE_PARTNER;\n if (this.senderType === 'business') {\n type = BounceSenderType.UNBOUNCE_SENDER_TYPE_BUSINESS;\n }\n if (this.senderType === 'yesware') {\n type = BounceSenderType.UNBOUNCE_SENDER_TYPE_YESWARE;\n }\n return new BounceSender({ type, id: senderID });\n }\n}\n","\n Unbounce email recipients\n\n\n \n \n \n What kind of sender?\n \n Business\n Partner\n Yesware\n \n \n \n\n
\n \n \n \n\n \n Search\n \n \n
\n
\n\n\n \n \n Search result:\n \n \n
Sender ID: {{ result.senderId }}
\n
Recipient Email: {{ result.email }}
\n
\n\n \n \n \n \n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './send-grid-index.component.html',\n styleUrls: ['./send-grid-index.component.scss'],\n standalone: false,\n})\nexport class SendGridIndexComponent {}\n","\n \n SendGrid\n \n \n Here you can find tools for working with our SendGrid integration(s)\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n \n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { nicerLoading } from '../ui-utils/async';\nimport { GLOBAL_INPUT } from '@vendasta/data-providers';\nimport { map } from 'rxjs/operators';\nimport { Reputation, SendgridReputationsSource } from '../../../data-providers/email/sendgrid-reputations.source';\n\nfunction sort(v: Reputation[]): Reputation[] {\n return v.sort((v1, v2) => (v1.reputationPercent > v2.reputationPercent ? 1 : -1));\n}\n\n@Component({\n templateUrl: './send-grid-reputation.component.html',\n styleUrls: ['./send-grid-reputation.component.scss'],\n standalone: false,\n})\nexport class SendGridReputationComponent implements OnInit {\n readonly loading$ = nicerLoading(this.data.state.isLoading$(GLOBAL_INPUT));\n readonly failed$ = this.data.state.isSuccess$(GLOBAL_INPUT).pipe(map((v) => !v));\n readonly data$ = this.data.getCachedOrFetch$(GLOBAL_INPUT).pipe(map(sort));\n\n constructor(private readonly data: SendgridReputationsSource) {}\n\n ngOnInit(): void {\n this.data.requestRefresh(GLOBAL_INPUT);\n }\n\n handleTryAgain(): void {\n this.data.requestRefresh(GLOBAL_INPUT);\n }\n}\n","\n \n \n \n \n SendGrid Reputation\n \n \n Here you can see the current SendGrid sender reputation for our sub-users\n \n \n \n \n \n \n
{{ rep.reputationPercent }}
\n
{{ rep.username }}
\n
\n
\n
\n \n
\n
\n
\n
\n\n\n \n \n error_outline\n \n Unable to load Reputations\n \n \n \n \n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n standalone: false,\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n return value.length > limit ? value.substr(0, limit) + ellipsis : value;\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Category } from '@vendasta/email';\n\nexport interface UICategory {\n categoryId: string;\n categoryName: string;\n isOptedIn: boolean;\n}\n\n@Component({\n selector: 'email-preferences',\n templateUrl: './preferences.component.html',\n styleUrls: ['./preferences.component.scss'],\n standalone: false,\n})\nexport class PreferencesComponent implements OnInit, OnChanges {\n @Input() categories: Category[] = [];\n @Input() preferenceIDs: string[] = [];\n @Input() allowEditing = false;\n\n @Output() selectedCategoryIDs: EventEmitter = new EventEmitter();\n\n formGroup = new UntypedFormGroup({\n preferences: new UntypedFormArray([]),\n });\n\n data: UICategory[] = [];\n\n constructor(private readonly formBuilder: UntypedFormBuilder) {}\n\n get prefFields(): UntypedFormArray {\n return this.formGroup.controls['preferences'] as UntypedFormArray;\n }\n\n ngOnInit(): void {\n const p = this.prefFields;\n const control = this.formBuilder.control(false);\n p.push(control);\n this.handleInputChanges();\n }\n\n ngOnChanges(): void {\n this.handleInputChanges();\n }\n\n private handleInputChanges(): void {\n const combined = applyPreferencesToCategories(this.preferenceIDs, this.categories);\n this.data = combined;\n this.prefFields.clear();\n combined.forEach((p: UICategory) => {\n this.prefFields.push(this.formBuilder.control(p.isOptedIn));\n });\n this.selectedCategoryIDs.emit(this.getOptedInCategoryIDs(combined));\n }\n\n private getOptedInCategoryIDs(categories: UICategory[]): string[] {\n return categories.filter((c) => c.isOptedIn).map((c) => c.categoryId);\n }\n\n public toggleSelection(i: number): void {\n this.data[i].isOptedIn = !this.data[i].isOptedIn;\n const optedIn = this.getOptedInCategoryIDs(this.data);\n this.selectedCategoryIDs.emit(optedIn);\n }\n}\n\nexport function applyPreferencesToCategories(\n recipientPreferenceIDs: string[],\n senderCategories: Category[],\n): UICategory[] {\n const repo = {};\n const cats = {};\n recipientPreferenceIDs.forEach((id: string) => (repo[id] = true));\n senderCategories.forEach((cat: Category) => (cats[cat.id] = true));\n const unknownPrefs = recipientPreferenceIDs\n .filter((id) => !cats[id])\n .map((id) => ({ id: id, name: `Unknown (id:${id})` }) as Category);\n const all = senderCategories.concat(unknownPrefs);\n return all.map(\n (v: Category) =>\n ({\n categoryId: v.id,\n categoryName: v.name,\n isOptedIn: repo[v.id] || false,\n }) as UICategory,\n );\n}\n","
\n \n \n \n 140; else short\">\n \n {{ data[i]?.categoryName | truncate: 140 }}\n \n \n\n \n {{ data[i]?.categoryName }}\n \n \n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { EmailModule, RecipientStatusEnum, RecipientStatusService, SenderType } from '@vendasta/email';\nimport { BehaviorSubject, combineLatest, Observable, take } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { CommonModule } from '@angular/common';\n\ndayjs.extend(utc);\n\ninterface RecipientStatus {\n sender: string;\n email: string;\n status: string;\n infractionCount?: number;\n bounceExpiry?: Date;\n}\n\nconst PAGE_SIZE = 500;\n\n@Component({\n selector: 'app-recipient-status',\n imports: [\n CommonModule,\n EmailModule,\n GalaxyFormFieldModule,\n FormsModule,\n MatSelectModule,\n MatOptionModule,\n MatDividerModule,\n ClipboardModule,\n MatButtonModule,\n MatCardModule,\n ],\n templateUrl: './recipient-status.component.html',\n styleUrls: ['./recipient-status.component.scss'],\n})\nexport class RecipientStatusComponent implements OnInit {\n public senderType: string;\n public senderID: string;\n public emails: string;\n\n public statuses$: BehaviorSubject = new BehaviorSubject([]);\n public resultsCSVString$: Observable;\n\n constructor(private recipientStatusService: RecipientStatusService) {}\n\n ngOnInit() {\n this.senderType = '';\n this.resultsCSVString$ = this.statuses$.pipe(\n startWith([]),\n map((statuses) => {\n return (\n 'sender,email,status,infractions,expiry\\n' +\n statuses\n .map(\n (status) =>\n `${status.sender},${status.email},${status.status},${status.infractionCount},${status.bounceExpiry}`,\n )\n .join('\\n')\n );\n }),\n );\n }\n\n search(): void {\n const emailList = this.emails\n .split('\\n')\n .map((line) => line.split(',').map((email) => email.trim()))\n .reduce((acc, val) => acc.concat(val), [])\n .filter((email) => email.length > 0);\n let senderTypeProto = null;\n if (this.senderType === 'partner') {\n senderTypeProto = SenderType.SENDER_TYPE_PARTNER;\n } else if (this.senderType === 'business') {\n senderTypeProto = SenderType.SENDER_TYPE_BUSINESS;\n } else senderTypeProto = SenderType.SENDER_TYPE_INVALID;\n const resultStreams: Observable[] = [];\n for (let i = 0; i < emailList.length; i = i + PAGE_SIZE) {\n const emailListSlice = emailList.slice(i, i + PAGE_SIZE);\n resultStreams.push(\n this.recipientStatusService.searchRecipientStatus(senderTypeProto, this.senderID, emailListSlice).pipe(\n take(1),\n map((response) => {\n return response.recipientStatuses.map((recipientStatus) => {\n let statusString = '';\n switch (recipientStatus.status) {\n case RecipientStatusEnum.RECIPIENT_STATUS_INVALID:\n statusString = 'Invalid';\n break;\n case RecipientStatusEnum.RECIPIENT_STATUS_HARD:\n statusString = 'Hard';\n break;\n case RecipientStatusEnum.RECIPIENT_STATUS_SOFT:\n statusString = 'Soft';\n break;\n case RecipientStatusEnum.RECIPIENT_STATUS_UNKNOWN:\n statusString = 'Unknown';\n break;\n case RecipientStatusEnum.RECIPIENT_STATUS_RESET:\n statusString = 'Reset';\n break;\n case RecipientStatusEnum.RECIPIENT_STATUS_NOT_BLOCKED:\n statusString = 'Not Blocked';\n break;\n }\n return {\n sender: recipientStatus.sender?.id || 'Global',\n // a missing sender means there are no current blocks and therefore\n // the recipient is not blocked in a \"global\" sense\n email: recipientStatus.recipientEmail,\n status: statusString,\n bounceExpiry: recipientStatus.bounceExpiry,\n infractionCount: recipientStatus.infractionCount,\n };\n });\n }),\n ),\n );\n }\n combineLatest(resultStreams).subscribe((results) => {\n this.statuses$.next(results.reduce((acc, val) => acc.concat(val), []));\n });\n }\n\n downloadCSV(content: string): void {\n const currentDate = dayjs().utc();\n const a = document.createElement('a');\n const mimeType = 'application/octet-stream';\n\n a.href = URL.createObjectURL(\n new Blob([content], {\n type: mimeType,\n }),\n );\n a.setAttribute('download', 'recipientStatuses-' + currentDate.format('YYYY-MM-DD') + '.csv');\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n}\n","\n \n Recipient status\n \n \n \n \n None\n Partner\n Business\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Results\n \n \n
\n
\n {{ s.sender }} - {{ s.email }}: {{ s.status }}\n - {{ s.infractionCount }}\n - {{ s.bounceExpiry | date: 'MMM d, y, h:mm:ss a' }}\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { EmailCategoriesSource, EmailPreferencesSource } from '@galaxy/email-ui/preferences/data-sources';\nimport { Category, GetCategoryPreferencesResponseInterface, SenderType } from '@vendasta/email';\nimport { Observable, combineLatest } from 'rxjs';\nimport { debounceTime, filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';\n\ninterface FormPayload {\n senderType: SenderType;\n senderId: string;\n userId: string;\n}\n\n@Component({\n templateUrl: './email-users.component.html',\n styleUrls: ['./email-users.component.scss'],\n standalone: false,\n})\nexport class EmailUsersComponent {\n readonly partnerSenderType = SenderType.SENDER_TYPE_PARTNER;\n\n readonly searchForm = new UntypedFormGroup({\n senderType: new UntypedFormControl(SenderType.SENDER_TYPE_PARTNER, [Validators.required]),\n senderId: new UntypedFormControl('', [Validators.required]),\n userId: new UntypedFormControl('', [Validators.required]),\n });\n\n private readonly selection$ = this.searchForm.valueChanges.pipe(\n filter((v: FormPayload) => v.senderType !== SenderType.SENDER_TYPE_INVALID && !!v.senderId && !!v.userId),\n map((v: FormPayload) => v),\n debounceTime(1000),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n\n private readonly preferences$ = this.forSelection((v: FormPayload) => this.preferences.getCachedOrFetch$(v));\n private readonly prefsLoading$ = this.forSelection((v: FormPayload) => this.preferences.isLoading$(v));\n private readonly prefsFailed$ = this.forSelection((v: FormPayload) => this.preferences.isFailed$(v));\n\n private readonly categories$ = this.forSelection((v: FormPayload) => this.categories.getCachedOrFetch$(v));\n private readonly catsLoading$ = this.forSelection((v: FormPayload) => this.categories.isLoading$(v));\n private readonly catsFailed$ = this.forSelection((v: FormPayload) => this.categories.isFailed$(v));\n\n readonly loading$ = combineLatest([this.prefsLoading$, this.catsLoading$]).pipe(\n map(([l1, l2]) => l1 || l2),\n startWith(false),\n );\n\n readonly loadStyle$ = combineLatest([this.prefsLoading$, this.catsLoading$]).pipe(\n map(([l1, l2]) => (!l1 || !l2 ? 'data-visible' : 'data-hidden')),\n );\n\n readonly failed$ = combineLatest([this.prefsFailed$, this.catsFailed$]).pipe(\n map(([f1, f2]) => f1 || f2),\n startWith(false),\n );\n\n readonly data$ = combineLatest([this.preferences$, this.categories$.pipe(startWith([]))]).pipe(\n map(([prefs, cats]: [GetCategoryPreferencesResponseInterface, Category[]]) => {\n if (!prefs.emailPreferenceInitialized) {\n return null;\n }\n return { preferenceIds: prefs.optedInEmailCategoryIds, categories: cats };\n }),\n );\n\n readonly noPreferences$ = this.preferences$.pipe(map((p) => !p.emailPreferenceInitialized));\n\n readonly showEmptyState$ = combineLatest([this.loading$, this.data$.pipe(startWith([])), this.failed$]).pipe(\n map(([loading, data, failed]: [boolean, { categories: Category[]; preferenceIds: string[] }, boolean]) => {\n if (failed || loading) {\n return false;\n }\n return data?.categories?.length === 0 && data?.preferenceIds?.length === 0;\n }),\n );\n\n private forSelection(fn: (v: FormPayload) => Observable): Observable {\n return this.selection$.pipe(switchMap(fn));\n }\n\n constructor(\n private readonly preferences: EmailPreferencesSource,\n private readonly categories: EmailCategoriesSource,\n ) {}\n}\n","\n \n Users\n \n \n Here you can find tools for working with customers of the email microservice\n \n \n \n Email Marketing Preferences (Read Only)\n \n \n
\n
\n \n \n What kind of sender?\n \n Partner\n \n \n \n\n \n \n Partner ID\n \n \n \n \n\n \n \n User ID\n \n \n \n
\n
\n
\n \n \n No Preferences Found\n

Enter a valid set of IDs

\n
\n
\n\n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n","// TODO: This is duplicated from PCC. Consider adding to galaxy or core.\nimport { HostListener, Injectable, Directive } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nexport function displayPendingChangesDialog(): boolean {\n const message =\n 'You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.';\n return confirm(message);\n}\n\n@Directive()\n// tslint:disable-next-line:directive-class-suffix\nexport abstract class ComponentCanDeactivate {\n abstract canDeactivate(): boolean | Observable;\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification($event: any): void {\n if (!this.canDeactivate()) {\n $event.returnValue = true;\n }\n }\n\n // If you want your own dialog, you could override this method\n pendingChangesDialog(): boolean | Observable {\n return displayPendingChangesDialog();\n }\n}\n\n@Injectable()\nexport class PendingChangesGuard {\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (component.canDeactivate()) {\n return true;\n }\n return component.pendingChangesDialog();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DomainService as DomainSDKService, ListAllDomainsResponse, SenderType } from '@vendasta/email';\nimport { GetPendingEmailDomainResponse } from '@vendasta/email/lib/_internal/objects/api';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { shareReplay, skipWhile, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class DomainCacheService {\n private responses = new Map>();\n constructor(private readonly sdk: DomainSDKService) {}\n\n listAllDomains(senderType: SenderType, senderID: string): Observable {\n const key = this.buildCacheKey(senderType, senderID);\n let cachedResponse = this.responses.get(key);\n const b = new BehaviorSubject(null);\n if (!cachedResponse) {\n this.responses.set(key, b);\n this.sdk\n .listAllDomains(senderType, senderID)\n .pipe(shareReplay(1))\n .subscribe((r) => b.next(r));\n this.responses.set(key, b);\n cachedResponse = b;\n }\n return cachedResponse.asObservable().pipe(skipWhile((a) => !a));\n }\n\n private refreshDomains(senderType: SenderType, senderID: string): void {\n const key = this.buildCacheKey(senderType, senderID);\n let cachedResponse = this.responses.get(key);\n const b = new BehaviorSubject(null);\n if (!cachedResponse) {\n cachedResponse = b;\n this.responses.set(key, b);\n }\n this.sdk\n .listAllDomains(senderType, senderID)\n .pipe(shareReplay(1), take(1))\n .subscribe((r) => cachedResponse.next(r));\n return;\n }\n\n createPendingDomain(\n senderType: SenderType,\n senderID: string,\n domain: string,\n ): Observable {\n const d = this.sdk\n .createPendingDomain(senderType, senderID, domain)\n .pipe(tap(() => this.refreshDomains(senderType, senderID)));\n return d;\n }\n\n deletePendingDomain(senderType: SenderType, senderID: string, domain: string): Observable {\n const d = this.sdk\n .deletePendingDomain(senderType, senderID, domain)\n .pipe(tap(() => this.refreshDomains(senderType, senderID)));\n return d;\n }\n\n private buildCacheKey(senderType: SenderType, senderID: string): string {\n return senderType.toString() + ':' + senderID;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SETUP_HELP_INFO_URL_INJECTION_TOKEN = new InjectionToken(\n 'com.vendasta.email-ui.domain-authorization.setup-help-info-url',\n);\n","import { Component, Input } from '@angular/core';\nimport {\n GetPendingEmailDomainTargetCNameRecordsInterface,\n VerifyPendingEmailDomainResponseInterface,\n} from '@vendasta/email';\n\nexport interface DomainStatus {\n targetSpf?: string;\n currentSpf?: string;\n targets?: GetPendingEmailDomainTargetCNameRecordsInterface;\n}\n\n@Component({\n selector: 'email-domain-status-icon',\n templateUrl: './domain-status-icon.component.html',\n styleUrls: ['./domain-status-icon.component.scss'],\n standalone: false,\n})\nexport class DomainStatusIconComponent {\n @Input() result: VerifyPendingEmailDomainResponseInterface;\n}\n","\n \n check_circle_filled\n \n \n error\n \n\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { ChangeDetectorRef, Component, ElementRef, Input, Pipe, PipeTransform, Self } from '@angular/core';\nimport { VerifyPendingEmailDomainMismatchInterface } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap } from 'rxjs/operators';\n\nexport interface RecordsRow {\n recordType: 'CNAME' | 'TXT' | 'A_RECORD';\n recordHost: string;\n recordValue: string;\n recordValueMatchPrefix?: string;\n recordValueMismatchPortion?: string;\n recordValueMatchSuffix?: string;\n}\n\n@Pipe({\n name: 'toTableRowClass',\n standalone: false,\n})\nexport class ToTableRowClassPipe implements PipeTransform {\n transform(value: any): any {\n const row: RecordsRow = value;\n if (row.recordValueMatchPrefix?.length > 0 && row.recordValueMismatchPortion?.length === 0) {\n return 'match';\n }\n }\n}\n\nfunction splitOnce(s: string, on: string): string[] {\n const [first, ...rest] = s.split(on);\n return [first, rest.length > 0 ? rest.join(on) : null];\n}\n\n@Component({\n selector: 'email-domain-records-table',\n templateUrl: './domain-records-table.component.html',\n styleUrls: ['./domain-records-table.component.scss'],\n standalone: false,\n})\nexport class DomainRecordsTableComponent {\n private readonly mobileMaxWidth: number = 768;\n private readonly isContainerLarge$$ = new ReplaySubject(1);\n readonly isContainerLarge$ = this.isContainerLarge$$.asObservable().pipe(\n distinctUntilChanged(),\n tap(() => this.cd.detectChanges()),\n );\n\n @Input() expectedRecords: RecordsRow[] = [];\n\n @Input() set mismatchedRecords(v: VerifyPendingEmailDomainMismatchInterface[]) {\n if (v == undefined) {\n return;\n }\n\n this.expectedRecords = this.expectedRecords.map((er) => {\n const mismatch = v.find((vr) => vr.url === er.recordHost);\n if (!mismatch) {\n return {\n ...er,\n recordValueMatchPrefix: er.recordValue,\n };\n }\n\n return {\n ...er,\n recordValueMatchPrefix: mismatch?.matchedPrefix,\n recordValueMismatchPortion: this.findMismatchedPortion(mismatch),\n recordValueMatchSuffix: mismatch?.matchedSuffix,\n };\n });\n this.cd.markForCheck();\n }\n\n private findMismatchedPortion(mismatch: VerifyPendingEmailDomainMismatchInterface) {\n const withPrefixRemoved = mismatch?.matchedPrefix\n ? splitOnce(mismatch?.actualValue, mismatch?.matchedPrefix)[1]\n : '';\n return mismatch?.matchedSuffix ? splitOnce(withPrefixRemoved, mismatch?.matchedSuffix)[0] : withPrefixRemoved;\n }\n\n @Input() showMismatches: boolean;\n\n constructor(\n @Self() private readonly element: ElementRef,\n private readonly cd: ChangeDetectorRef,\n private readonly clipboard: Clipboard,\n private readonly snackbar: SnackbarService,\n ) {\n const ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target !== this.element.nativeElement) {\n continue;\n }\n const cr = entry.contentRect;\n const isLarge = cr.width >= this.mobileMaxWidth;\n this.isContainerLarge$$.next(isLarge);\n }\n });\n\n // Element for which to observe height and width\n ro.observe(this.element.nativeElement);\n }\n\n copyValue(recordValue: string): void {\n this.clipboard.copy(recordValue);\n this.snackbar.openSuccessSnack('DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.COPY_SUCCESS');\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.TYPE' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.HOST' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.VALUE' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.FOUND' | translate }}
\n \n
\n
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.TYPE' | translate }}{{ row.recordType }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.HOST' | translate }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.VALUE' | translate }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.FOUND' | translate }}\n \n
\n
\n
\n\n\n \n {{ cellText }}\n \n\n\n\n \n {{ row.recordValueMatchPrefix }}\n \n {{ row.recordValueMismatchPortion }}\n \n {{ row.recordValueMatchSuffix }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.NOT_FOUND' | translate }}\n \n \n\n","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n DomainService,\n SenderDomain,\n VerifyDefaultDomainResponse,\n VerifyPendingEmailDomainResponse as VerifyResponse,\n} from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EMPTY, Observable, ReplaySubject, throwError } from 'rxjs';\nimport { catchError, delay, map, tap } from 'rxjs/operators';\nimport { RecordsRow } from '../domain-records-table/domain-records-table.component';\nimport { ExtendedDomain, SenderID } from '../shared-types';\nimport { SETUP_HELP_INFO_URL_INJECTION_TOKEN } from './dependencies';\nimport { MatDialog } from '@angular/material/dialog';\n\nexport type VerifyError = boolean;\n\n@Component({\n selector: 'email-domain-info-card',\n templateUrl: './domain-info-card.component.html',\n styleUrls: ['./domain-info-card.component.scss'],\n standalone: false,\n})\nexport class DomainInfoCardComponent implements OnInit {\n private readonly inputs$$ = new ReplaySubject(1);\n private _senderId: SenderID;\n\n private _domain: SenderDomain;\n targetDmarc: RecordsRow;\n targetSpf: RecordsRow;\n targetA: RecordsRow;\n targetCNAME: RecordsRow;\n targetDKIMs: RecordsRow[];\n domainResult$: Observable = EMPTY;\n\n @Output() readonly useAsDefaultRequested = new EventEmitter();\n @Output() readonly deleteRequested = new EventEmitter();\n\n @Input() expanded = false;\n @Input() showShadow = false;\n @Input() showDeleteButton = true;\n @Input() deleteInProgress = false;\n\n @Input() set senderId(v: SenderID) {\n this.inputs$$.next(v);\n this._senderId = v;\n }\n\n get senderId(): SenderID {\n return this._senderId;\n }\n\n @Input() set domain(v: ExtendedDomain) {\n this._domain = v;\n if (v.targetA) {\n this.targetA = {\n recordType: 'A_RECORD',\n recordHost: `@.${v.sendFromDomain}`,\n recordValue: v.targetA,\n };\n }\n if (v.targetCNAME) {\n this.targetCNAME = {\n recordType: 'CNAME',\n recordHost: `www.${v.sendFromDomain}`,\n recordValue: v.targetCNAME,\n };\n }\n this.targetDmarc = {\n recordType: 'TXT',\n recordHost: v.targets.dmarcSubdomain,\n recordValue: v.targets.dmarcValue,\n };\n this.targetSpf = {\n recordType: 'TXT',\n recordHost: `@.${v.sendFromDomain}`,\n recordValue: `v=spf1 ${v.targetSpf} -all`,\n };\n this.targetDKIMs = [\n {\n recordType: 'CNAME',\n recordHost: v.targets.mailSubdomain,\n recordValue: v.targets.mailValue,\n },\n {\n recordType: 'CNAME',\n recordHost: v.targets.dkim1Subdomain,\n recordValue: v.targets.dkim1Value,\n },\n {\n recordType: 'CNAME',\n recordHost: v.targets.dkim2Subdomain,\n recordValue: v.targets.dkim2Value,\n },\n ];\n }\n\n get domain(): SenderDomain {\n return this._domain;\n }\n\n @ViewChild('genericHelpModal') helpModal: TemplateRef;\n private readonly dialog = inject(MatDialog);\n\n constructor(\n private readonly sdk: DomainService,\n private readonly alerts: SnackbarService,\n @Inject(SETUP_HELP_INFO_URL_INJECTION_TOKEN) @Optional() private readonly helpArticleURL: string,\n ) {}\n\n ngOnInit(): void {\n this.runValidation(true);\n }\n\n runValidation(initialLoad = false): void {\n if (this._domain.isPrimary) {\n this.runPrimaryDomainValidation(initialLoad);\n } else {\n this.runPendingDomainValidation(initialLoad);\n }\n }\n\n private runPrimaryDomainValidation(initialLoad: boolean): void {\n const request$ = this.sdk.verifyDefaultDomain(this._senderId.senderType, this._senderId.senderID);\n this.runGenericValidation(request$, initialLoad);\n }\n\n private runPendingDomainValidation(initialLoad: boolean): void {\n const request$ = this.sdk.verifyPendingDomain(this._senderId.senderType, this._senderId.senderID);\n this.runGenericValidation(request$, initialLoad);\n }\n\n private runGenericValidation(\n request$: Observable,\n initialLoad: boolean,\n ): void {\n if (!initialLoad) {\n request$ = request$.pipe(\n tap((v) => {\n if (v.allRecordsMatch) {\n this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.SUCCESS');\n } else {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.FAILURE');\n }\n }),\n catchError((err) => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.ERROR');\n return throwError(() => err);\n }),\n );\n }\n this.domainResult$ = request$.pipe(\n map((v) => {\n if (v.allRecordsMatch) {\n v.mismatches = [];\n }\n return v;\n }),\n delay(350), // Causes the loading spinner to render for a moment. Less jerky UX.\n );\n }\n\n openHelpArticle(): void {\n if (this.helpArticleURL) {\n window.open(this.helpArticleURL, '_blank');\n } else {\n this.dialog.open(this.helpModal);\n }\n }\n}\n","\n \n \n \n \n \n \n \n \n warning\n \n \n \n \n \n\n \n {{ domain.sendFromDomain }}\n \n ({{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ACTIVE' | translate }})\n \n \n\n
\n \n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.STATUS_BANNER.ERROR' | translate }}\n \n \n \n \n \n \n \n \n \n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DNS_RECORDS.HEADER' | translate }}

\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DNS_RECORDS.SUBTEXT' | translate }}

\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DMARC_RECORDS.HEADER' | translate }}

\n\n \n\n \n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.A_RECORDS.HEADER' | translate }}

\n \n
\n\n \n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.CNAME_RECORDS.HEADER' | translate }}

\n \n
\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.SPF_RECORDS.HEADER' | translate }}

\n\n \n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DKIM_RECORDS.HEADER' | translate }}

\n\n \n
\n\n
\n
\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.USE_AS_DEFAULT_DOMAIN' | translate }}\n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n
\n\n\n \n
\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ERROR_NOTICE.HEADER' | translate }}\n - {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ERROR_NOTICE.HINT' | translate }}\n
\n \n
\n\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.TITLE' | translate }}

\n\n \n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_1' | translate }}\n

\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_1' | translate }}

\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_2' | translate }}\n

\n
    \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_1' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_2' | translate }}\n
  • \n
\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_2' | translate }}

\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_3' | translate }}\n

\n
    \n
  1. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_1' | translate }}\n
  2. \n
  3. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_2' | translate }}\n
  4. \n\n
  5. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_3' | translate }}\n
  6. \n
  7. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_4' | translate }}\n
  8. \n
  9. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_5' | translate }}\n
  10. \n
\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_1' | translate }}

\n
    \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_3' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_4' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_5' | translate }}\n
  • \n
\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_4' | translate }}\n

\n
\n \n \n \n
\n","import { Injectable } from '@angular/core';\nimport { DomainService, SenderType } from '@vendasta/email';\nimport { Observable, of } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\n// Remove these once the backend returns the correct default domain [MAEL-1319](https://vendasta.jira.com/browse/MAEL-1319)\nconst LEGACY_DEFAULT_DOMAIN = 'smblogin.com';\nconst DEFAULT_DOMAIN = 'businessmail.io';\n\nexport function repairDefaultDomain(domain: string): string {\n if (domain.toLowerCase() === DEFAULT_DOMAIN) {\n return LEGACY_DEFAULT_DOMAIN;\n }\n return domain;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DefaultDomainService {\n defaultDomainCache: Map = new Map();\n\n constructor(private domainService: DomainService) {}\n\n getDefaultDomain$(senderType: SenderType): Observable {\n if (this.defaultDomainCache.has(senderType)) {\n return of(this.defaultDomainCache.get(senderType));\n }\n\n return this.domainService.getDefaultDomain(senderType).pipe(\n tap((response) =>\n this.defaultDomainCache.set(\n senderType,\n response.domain === LEGACY_DEFAULT_DOMAIN ? DEFAULT_DOMAIN : response.domain,\n ),\n ),\n map((response) => (response.domain === LEGACY_DEFAULT_DOMAIN ? DEFAULT_DOMAIN : response.domain)),\n );\n }\n\n isDefaultDomain$(domain: string, senderType: SenderType): Observable {\n if (domain === DEFAULT_DOMAIN || domain === LEGACY_DEFAULT_DOMAIN) {\n return of(true);\n } else {\n return this.getDefaultDomain$(senderType).pipe(map((defaultDomain) => domain === defaultDomain));\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SenderDomain, SenderType } from '@vendasta/email';\nimport { Observable, of } from 'rxjs';\nimport { DefaultDomainService } from '../default-domain.service';\nimport { map } from 'rxjs/operators';\n\n@Pipe({\n name: 'canAddDomain',\n standalone: false,\n})\nexport class CanAddDomainPipe implements PipeTransform {\n constructor(private defaultDomainService: DefaultDomainService) {}\n\n transform(value: SenderDomain[], senderType: SenderType): Observable {\n if (!value) {\n return of(true);\n }\n return this.defaultDomainService.getDefaultDomain$(senderType).pipe(\n map((defaultDomain) => {\n const nonDefault = value.filter((d) => d.sendFromDomain !== defaultDomain);\n const hasPending = nonDefault.map((d) => !d.isPrimary).some((isPending) => isPending);\n return hasPending === false;\n }),\n );\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';\nimport { SenderID, ExtendedDomain } from '../shared-types';\nimport { DomainInfoCardComponent } from '../domain-info-card/domain-info-card.component';\n\n@Component({\n selector: 'email-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n standalone: false,\n})\nexport class DomainsComponent {\n @Input() readonly senderId: SenderID;\n @Input() readonly domains: ExtendedDomain[] = [];\n @Input() readonly deleteInProgress = false;\n @Input() readonly showEmpty = true;\n\n @Output() readonly deleteRequested = new EventEmitter();\n @Output() readonly authorizeRequested = new EventEmitter();\n @Output() readonly useAsDefaultRequested = new EventEmitter();\n\n @ViewChildren(DomainInfoCardComponent) domainInfoCards: DomainInfoCardComponent[];\n\n async handleAuthorizeClick(): Promise {\n this.authorizeRequested.emit(null);\n }\n\n scrollToDomain(domain: string): void {\n this.domainInfoCards\n .filter((c) => c.domain?.sendFromDomain === domain)\n .forEach((card) => {\n card.expanded = true;\n });\n // WARNING: if an error happens and the domain is not found, this would break the page\n // We need to handle if the element is not found. Refer to UB-397\n // Consider if the element is not found to debounce until it is found. For now we will just not scroll.\n window.setTimeout(\n () => document.getElementById(`domain_card_${domain}`)?.scrollIntoView({ behavior: 'smooth' }),\n 500,\n );\n }\n}\n"," 0; else empty\">\n \n \n \n
\n \n
\n
\n\n\n \n \n domain_disabled\n \n {{ 'DOMAIN_AUTHORIZATION.DOMAINS.NO_DOMAINS' | translate }}\n

{{ 'DOMAIN_AUTHORIZATION.DOMAINS.NEW_DOMAIN' | translate }}

\n \n \n \n
\n
\n","import { Component, Inject } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { GetPendingEmailDomainResponseInterface } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of } from 'rxjs';\nimport { catchError, shareReplay, tap } from 'rxjs/operators';\nimport { DomainCacheService } from '../domain-cache.service';\nimport { SenderID } from '../shared-types';\n\nexport interface NewDomainDialogData {\n senderID: SenderID;\n}\n\nexport interface Result {\n newPendingDomain?: string;\n}\n\n@Component({\n selector: 'email-new-domain-dialog',\n templateUrl: './new-domain-dialog.component.html',\n styleUrls: ['./new-domain-dialog.component.scss'],\n standalone: false,\n})\nexport class NewDomainDialogComponent {\n readonly senderForm = new UntypedFormGroup({\n senderDomain: new UntypedFormControl('', [Validators.required, Validators.pattern('[^(@\\\\s)]+\\\\.[^(@\\\\s)]+')]),\n });\n authorizedDomain$: Observable = of(null);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) readonly data: NewDomainDialogData,\n @Inject(MatDialogRef) private readonly dialog: MatDialogRef,\n private readonly domainService: DomainCacheService,\n private readonly alerts: SnackbarService,\n ) {}\n\n private authorize(): void {\n const domain = this.senderForm.get('senderDomain').value;\n this.authorizedDomain$ = this.domainService\n .createPendingDomain(this.data.senderID.senderType, this.data.senderID.senderID, domain)\n .pipe(\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.AUTH_ERROR');\n return of(null);\n }),\n tap(() =>\n this.dialog.close({\n newPendingDomain: domain,\n } as Result),\n ),\n );\n }\n\n close(): void {\n this.dialog.close({ newPendingDomain: undefined } as Result);\n }\n\n submitForm(): void {\n this.senderForm.markAsDirty();\n if (this.senderForm.valid) {\n this.authorize();\n } else {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.INVALID_ERROR');\n }\n }\n}\n","\n

{{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.NOT_PROVIDED' | translate }}

\n
\n\n

\n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.TITLE' | translate }}\n

\n\n\n

\n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.HEADER' | translate }}\n

\n\n
\n
\n \n {{ 'COMMON.DOMAIN' | translate }}\n \n \n
\n
\n
\n\n \n\n \n \n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.START' | translate }}\n \n \n\n","export const UNSAVED_DATA_HANDLER_TOKEN = 'com.vendasta.email-ui.unsaved_data_handler';\n\nexport enum SavedState {\n SAFE_TO_NAVIGATE_AWAY = 'safe',\n HAS_UNSAVED_CHANGES = 'unsaved',\n}\n\nexport interface UnsavedDataHandler {\n notifyStateChanged(newState: SavedState): void;\n}\n","import { Validators } from '@angular/forms';\n\nexport class EmailValidators {\n static readonly emailUsername = () => Validators.pattern('[^@]+');\n static readonly emailDomain = () => Validators.pattern('[^(@\\\\s)]+\\\\.[^(@\\\\s)]+');\n static readonly fullEmailAddress = () => Validators.pattern('[^@]+@[^(@\\\\s)]+\\\\.[^(@\\\\s)]+');\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n DomainService,\n Sender,\n SenderDomain,\n VerifyDefaultDomainResponse,\n VerifyDefaultDomainResponseInterface,\n} from '@vendasta/email';\nimport { EMPTY, Observable } from 'rxjs';\nimport { MatDialog } from '@angular/material/dialog';\n\nexport interface Data {\n sender: Sender;\n domain: SenderDomain;\n}\n\n@Component({\n selector: 'email-domain-status-and-name',\n templateUrl: './domain-status-and-name.component.html',\n styleUrls: ['./domain-status-and-name.component.scss'],\n standalone: false,\n})\nexport class DomainStatusAndNameComponent {\n verifyResult$: Observable = EMPTY;\n domain: SenderDomain;\n private sender: Sender;\n\n @Output() public readonly domainChangeRequested = new EventEmitter();\n @Output() public readonly invalidDomainChangeRequested = new EventEmitter();\n @Output() public readonly clicked = new EventEmitter();\n\n @Input()\n public set data(value: Data) {\n this.domain = value.domain;\n this.sender = value.sender;\n if (value.domain.isPrimary) {\n this.verifyResult$ = this.sdk.verifyDefaultDomain(value.sender.type, value.sender.id);\n } else {\n this.verifyResult$ = this.sdk.verifyPendingDomain(value.sender.type, value.sender.id);\n }\n }\n\n constructor(\n private readonly sdk: DomainService,\n private readonly dialog: MatDialog,\n ) {}\n\n public handleClick(result: VerifyDefaultDomainResponseInterface): void {\n this.clicked.emit();\n if (result.allRecordsMatch) {\n this.domainChangeRequested.emit(this.domain.sendFromDomain);\n } else {\n this.invalidDomainChangeRequested.emit(this.domain.sendFromDomain);\n }\n }\n}\n","\n \n \n \n \n \n warning\n \n \n
\n \n {{ domain.sendFromDomain }}\n
\n
\n
\n
\n","import { Component, Inject } from '@angular/core';\nimport { ListAllDomainsResponseInterface, Sender, SenderType } from '@vendasta/email';\nimport { EMPTY, Observable } from 'rxjs';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { map } from 'rxjs/operators';\nimport { Data as ButtonData } from './domain-status-and-name/domain-status-and-name.component';\nimport { DomainCacheService } from '../domain-cache.service';\n\nexport type ChoiceType = 'new' | 'valid' | 'invalid';\n\nexport interface Result {\n newDomain: string | undefined;\n choiceType: ChoiceType;\n}\n\n@Component({\n selector: 'email-domains-dialog',\n templateUrl: './domains-dialog.component.html',\n styleUrls: ['./domains-dialog.component.scss'],\n standalone: false,\n})\nexport class DomainsDialogComponent {\n allDomains$: Observable = EMPTY;\n\n constructor(\n private readonly domainService: DomainCacheService, //\n @Inject(MAT_DIALOG_DATA) sender: Sender,\n readonly self: MatDialogRef,\n ) {\n this.refreshDomains(sender);\n }\n\n private refreshDomains(sender: Sender): void {\n if (!sender.id || sender.type === SenderType.SENDER_TYPE_INVALID) {\n return;\n }\n // We replace the entire observable because errors cause the original observable to complete\n this.allDomains$ = this.domainService\n .listAllDomains(sender.type, sender.id)\n .pipe(map((v) => convertListResponseToButtonData(sender, v)));\n }\n\n handleDomainChangeRequested(domain: string, isValidDomain: boolean): void {\n this.self.close({\n newDomain: domain,\n choiceType: isValidDomain ? 'valid' : 'invalid',\n } as Result);\n }\n\n handleNewDomainRequested(): void {\n this.self.close({\n newDomain: '',\n choiceType: 'new',\n } as Result);\n }\n}\n\nfunction convertListResponseToButtonData(sender: Sender, response: ListAllDomainsResponseInterface): ButtonData[] {\n return response.domains.map(\n (v) =>\n ({\n domain: v,\n sender: sender,\n }) as ButtonData,\n );\n}\n","

{{ 'DOMAIN_AUTHORIZATION.DOMAINS_DIALOG.HEADER' | translate }}

\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 error\n \n {{ 'DOMAIN_AUTHORIZATION.DOMAINS_DIALOG.ERROR' | translate }}\n

{{ data.error }}

\n
\n
\n
\n
\n\n \n
\n \n
\n \n
\n","import { GetSenderInfoResponseInterface } from '@vendasta/email';\n\nexport class SelectedDomain {\n readonly canUse: boolean;\n\n private static decideCanUse(\n domain: string,\n senderInfo: GetSenderInfoResponseInterface,\n useDefault: boolean,\n ): boolean {\n if (useDefault) {\n return true;\n }\n if (!domain) {\n return false;\n }\n return domain === senderInfo.domain && senderInfo.isPlatformAuthorized;\n }\n\n constructor(\n public readonly domain: string,\n senderInfo: GetSenderInfoResponseInterface,\n useDefault: boolean,\n ) {\n this.canUse = SelectedDomain.decideCanUse(domain, senderInfo, useDefault);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DefaultDomainService } from '../../default-domain.service';\nimport { GetSenderInfoResponseInterface, SenderType } from '@vendasta/email';\nimport { SelectedDomain } from './selected-domain';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SelectedDomainFactoryService {\n constructor(private readonly defaultDomainService: DefaultDomainService) {}\n\n public fromSenderInfo(\n senderType: SenderType,\n senderInfo: GetSenderInfoResponseInterface,\n useOwnDomain: boolean,\n ): Observable {\n return this.computeSelectedDomain(senderType, senderInfo, useOwnDomain).pipe(\n switchMap((domainToUse) => {\n return this.defaultDomainService.isDefaultDomain$(domainToUse, senderType).pipe(\n map((isDefault) => {\n return new SelectedDomain(domainToUse, senderInfo, isDefault);\n }),\n );\n }),\n );\n }\n\n public default(senderType: SenderType): Observable {\n return this.defaultDomainService\n .getDefaultDomain$(senderType)\n .pipe(map((defaultDomain) => new SelectedDomain(defaultDomain, {}, true)));\n }\n\n private computeSelectedDomain(\n senderType: SenderType,\n senderInfo: GetSenderInfoResponseInterface,\n useOwnDomain: boolean,\n ): Observable {\n return combineLatest([\n this.defaultDomainService.getDefaultDomain$(senderType),\n this.defaultDomainService.isDefaultDomain$(senderInfo.domain, senderType),\n ]).pipe(\n take(1),\n map(([defaultDomain, isOwnDomainDefault]) => {\n if (!useOwnDomain) {\n return defaultDomain;\n }\n if (isOwnDomainDefault) {\n return undefined;\n }\n return senderInfo.domain;\n }),\n );\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';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\n templateUrl: './email-forwarding-info.component.html',\n styleUrl: './email-forwarding-info.component.scss',\n})\nexport class EmailForwardingInfoComponent {}\n","

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS_INFO_TITLE' | translate }}

\n\n
\n
\n\n \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Sender } from '@vendasta/email';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport {\n Result as DialogResult,\n DomainsDialogComponent,\n} from '../domain-authorization/src/domains-dialog/domains-dialog.component';\nimport { DefaultDomainService } from '../domain-authorization/src/default-domain.service';\nimport { switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'email-username-input',\n templateUrl: './email-username-input.component.html',\n styleUrls: ['./email-username-input.component.scss'],\n standalone: false,\n})\nexport class EmailUsernameInputComponent implements OnInit {\n public isDefaultDomain$: Observable;\n\n @Output() readonly authorizeRequested = new EventEmitter();\n @Output() readonly domainChangeRequested = new EventEmitter();\n @Output() readonly invalidDomainChangeRequested = new EventEmitter();\n\n @Input() readonly form: UntypedFormGroup;\n @Input() readonly formControlNameString: string;\n @Input() readonly sender: Sender;\n @Input() readonly domain$: Observable;\n\n constructor(\n private readonly dialog: MatDialog,\n private defaultDomainService: DefaultDomainService,\n ) {}\n\n ngOnInit(): void {\n this.isDefaultDomain$ = this.domain$.pipe(\n switchMap((domain) => this.defaultDomainService.isDefaultDomain$(domain, this.sender.type)),\n );\n }\n\n async changeDomain(): Promise {\n const dialog = this.dialog.open(DomainsDialogComponent, {\n data: this.sender,\n });\n const result: DialogResult = await firstValueFrom(dialog.afterClosed());\n switch (result.choiceType) {\n case 'new':\n this.authorizeRequested.emit();\n break;\n case 'valid':\n this.domainChangeRequested.emit(result.newDomain);\n break;\n case 'invalid':\n this.invalidDomainChangeRequested.emit(result.newDomain);\n break;\n }\n }\n}\n","
\n
\n \n {{ 'COMMON.EMAIL_ADDRESS' | translate }}\n \n \n {{ 'EMAIL_USERNAME_INPUT.EMAIL_REQUIRED' | translate }}\n \n \n \n edit\n \n
\n
\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n DomainService,\n GetSenderInfoResponse,\n GetSenderInfoResponseInterface,\n Sender,\n SenderDomain,\n SenderType,\n} from '@vendasta/email';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { combineLatest, firstValueFrom, Observable, of, Subscription, throwError } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { EmailValidators } from '../../../../email-form-validators';\nimport { DomainCacheService } from '../../domain-cache.service';\nimport { DomainsDialogComponent, Result as DialogResult } from '../../domains-dialog/domains-dialog.component';\nimport { SavedState, UNSAVED_DATA_HANDLER_TOKEN, UnsavedDataHandler } from '../dependencies';\nimport { SelectedDomain } from './selected-domain';\nimport { DefaultDomainService, repairDefaultDomain } from '../../../src/default-domain.service';\nimport { SelectedDomainFactoryService } from './selected-domain-factory.service';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EmailApiService, GlobalParticipantType } from '@vendasta/conversation';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { EmailForwardingInfoComponent } from './email-forwarding-info/email-forwarding-info.component';\n\nexport interface SaveData {\n domain: string;\n preferredDisplayName: string;\n preferredEmailUsername: string;\n senderName: string;\n replyTo: string;\n}\n\n@Component({\n selector: 'email-sender-info-form',\n templateUrl: './sender-info-form.component.html',\n styleUrls: ['./sender-info-form.component.scss'],\n standalone: false,\n})\nexport class SenderInfoFormComponent implements OnInit, OnChanges {\n @Output() readonly domainChangeRequested = new EventEmitter();\n @Output() readonly invalidDomainChangeRequested = new EventEmitter();\n @Output() readonly authorizeRequested = new EventEmitter();\n\n @Input() readonly sender: Sender;\n\n @Input() readonly senderInfo: GetSenderInfoResponse;\n\n /**\n * domainOverride sets the domain that is displayed in this component. It\n * is displayed INSTEAD OF the sender's actual domain. (e.g. prior to saving)\n */\n @Input() domainOverride: string;\n\n domains$: Observable;\n\n senderInfoForm: UntypedFormGroup = new UntypedFormGroup({\n senderName: new UntypedFormControl('', [Validators.required]),\n useOwn: new UntypedFormControl(''),\n senderEmailUsername: new UntypedFormControl('', [Validators.required, EmailValidators.emailUsername()]),\n replyTo: new UntypedFormControl('', [EmailValidators.fullEmailAddress()]),\n });\n\n forwardingAddress: Promise;\n protected isCopied = false;\n private readonly emailApiService = inject(EmailApiService);\n\n selectedDomain$: Observable;\n selectedDomainName$: Observable;\n saveSenderInfoRequest$: Observable = of(null);\n saveDomainRequest$: Observable = of(null);\n\n useOwn: boolean;\n showAlertBanner = true;\n\n showForwardingAddress: boolean;\n\n private readonly subs = SubscriptionList.new();\n private notifier: Subscription | null = null;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(UNSAVED_DATA_HANDLER_TOKEN) private readonly unsavedHandler: UnsavedDataHandler,\n private readonly dialog: MatDialog,\n private readonly domainService: DomainCacheService,\n private defaultDomainService: DefaultDomainService,\n private readonly selectedDomainFactory: SelectedDomainFactoryService,\n private readonly domains: DomainService,\n private readonly alerts: SnackbarService,\n private clipboard: Clipboard,\n ) {\n this.subs.add(this.senderInfoForm.get('useOwn').valueChanges, (value) => this.handleUseOwnChanged(value));\n }\n\n ngOnChanges(): void {\n this.updateFormValuesIfUnset(this.senderInfo);\n if (this.domainOverride) {\n this.senderInfoForm.get('useOwn').setValue(true);\n const senderInfo: GetSenderInfoResponseInterface = {\n domain: this.domainOverride,\n isPlatformAuthorized: true,\n };\n this.selectedDomain$ = this.selectedDomainFactory.fromSenderInfo(this.sender.type, senderInfo, true);\n this.selectedDomainName$ = this.selectedDomain$.pipe(map((d) => d.domain));\n }\n }\n\n ngOnInit(): void {\n this.showForwardingAddress = this.sender.type === SenderType.SENDER_TYPE_BUSINESS;\n this.domains$ = this.domainService.listAllDomains(this.sender.type, this.sender.id).pipe(map((r) => r.domains));\n this.forwardingAddress = this.getForwardingAddress();\n }\n\n private handleUseOwnChanged(useOwnDomain: boolean): void {\n this.useOwn = useOwnDomain;\n this.selectedDomain$ = this.selectedDomainFactory.fromSenderInfo(this.sender.type, this.senderInfo, useOwnDomain);\n this.selectedDomainName$ = this.selectedDomain$.pipe(map((d) => d.domain));\n this.cdr.detectChanges();\n }\n\n public handleAuthorizeDomain(): void {\n this.authorizeRequested.emit();\n }\n\n private updateFormValuesIfUnset(info: GetSenderInfoResponseInterface): void {\n this.notifier?.unsubscribe();\n this.senderInfoForm.get('useOwn').setValue(!info.isDefaultForSenderType);\n const senderName = this.senderInfoForm.get('senderName');\n if (!senderName.value) {\n senderName.setValue(info.preferredEmailDisplayName);\n }\n const senderEmailUsername = this.senderInfoForm.get('senderEmailUsername');\n if (!senderEmailUsername.value) {\n senderEmailUsername.setValue(info.preferredEmailUsername);\n }\n const replyTo = this.senderInfoForm.get('replyTo');\n if (!replyTo.value) {\n replyTo.setValue(info.preferredReplyToEmailAddress);\n }\n this.notifier = this.senderInfoForm.valueChanges.subscribe(() =>\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES),\n );\n }\n\n handleSaveRequested($event: Observable, isDomainSave: boolean): void {\n const saveRequest = $event.pipe(\n switchMap((saveData) =>\n this.domains.changeForSender(\n this.sender.type,\n this.sender.id,\n repairDefaultDomain(saveData.domain),\n saveData.preferredEmailUsername,\n saveData.replyTo,\n saveData.senderName,\n ),\n ),\n tap(() => this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.UPDATE_SUCCESS')),\n catchError((err) => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.UPDATE_FAILURE');\n return throwError(() => err);\n }),\n tap(() => this.unsavedHandler.notifyStateChanged(SavedState.SAFE_TO_NAVIGATE_AWAY)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n if (isDomainSave) {\n this.saveDomainRequest$ = saveRequest;\n } else {\n this.saveSenderInfoRequest$ = saveRequest;\n }\n }\n\n getSaveData(): Observable {\n // TODO: Prevent saving if form is not valid?\n const useOwnDomain = this.senderInfoForm.get('useOwn').value;\n return combineLatest([this.defaultDomainService.getDefaultDomain$(this.sender.type), this.selectedDomain$]).pipe(\n map(([defaultDomain, selectedDomain]) => {\n return {\n domain: useOwnDomain ? selectedDomain.domain : defaultDomain,\n preferredDisplayName: this.senderInfoForm.get('senderName').value,\n preferredEmailUsername: this.senderInfoForm.get('senderEmailUsername').value,\n senderName: this.senderInfoForm.get('senderName').value,\n replyTo: this.senderInfoForm.get('replyTo').value,\n } as SaveData;\n }),\n );\n }\n\n async openChooseDomainDialog(): Promise {\n const dialog = this.dialog.open(DomainsDialogComponent, {\n data: this.sender,\n maxHeight: '600px',\n });\n const result: DialogResult = await firstValueFrom(dialog.afterClosed());\n switch (result.choiceType) {\n case 'new':\n this.authorizeRequested.emit();\n break;\n case 'valid':\n this.domainChangeRequested.emit(result.newDomain);\n break;\n case 'invalid':\n this.invalidDomainChangeRequested.emit(result.newDomain);\n break;\n }\n }\n\n closeAlert() {\n this.showAlertBanner = false;\n }\n\n async copyClicked() {\n this.isCopied = true;\n this.clipboard.copy(await this.forwardingAddress);\n setTimeout(() => {\n this.isCopied = false;\n }, 5000);\n }\n\n async getForwardingAddress(): Promise {\n return await firstValueFrom(\n this.emailApiService\n .getOwnerEmail({\n subjectParticipant: {\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP,\n internalParticipantId: this.sender?.id ?? '',\n },\n })\n .pipe(\n map((emailRes) => {\n return emailRes.forwardingEmail ?? '';\n }),\n catchError(() => of('')),\n ),\n );\n }\n\n openLearnMoreModal(): void {\n this.dialog.open(EmailForwardingInfoComponent, { width: '600px' });\n }\n}\n","\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.GENERAL' | translate }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.CONFIGURATION_ALERT_MESSAGE' | translate }}\n \n
\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.NAME' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.NAME_REQUIRED' | translate }}\n \n \n\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.REPLY_ADDRESS' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.REPLY_ADDRESS_NOT_VALID' | translate }}\n \n \n
\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.SAVE' | translate }}\n \n \n
\n
\n\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.TITLE' | translate }}\n \n \n
\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.SENDER_DOMAIN' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.USE_DEFAULT' | translate }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.USE_OWN' | translate }}\n \n \n \n \n\n \n \n

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.EMPTY_DOMAIN' | translate }}

\n \n \n \n \n
\n
\n\n \n
\n \n \n \n
\n
\n
\n @if (showForwardingAddress) {\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS' | translate }}\n \n \n content_copy\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS_DESCRIPTION' | translate }}\n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.LEARN_MORE' | translate }}\n \n \n }\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.SAVE' | translate }}\n \n \n
\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n DomainService,\n GetSenderInfoResponse,\n GetSenderInfoResponseInterface,\n Sender,\n SendersService,\n} from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { SavedState, UNSAVED_DATA_HANDLER_TOKEN, UnsavedDataHandler } from './dependencies';\nimport { SenderInfoFormComponent } from './sender-info-form/sender-info-form.component';\n\n@Component({\n selector: 'email-sender-info-card',\n templateUrl: './sender-info-card.component.html',\n styleUrls: ['./sender-info-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false,\n})\nexport class SenderInfoCardComponent implements OnChanges {\n @Output() authorizeRequested: EventEmitter = new EventEmitter();\n @Output() invalidDomainChangeRequested = new EventEmitter();\n @Input() sender: Sender;\n @ViewChild(SenderInfoFormComponent) form: SenderInfoFormComponent;\n\n senderInfo$: Observable;\n domainOverride: string | null = null;\n\n constructor(\n private readonly api: SendersService,\n private readonly domains: DomainService,\n private readonly alerts: SnackbarService,\n @Inject(UNSAVED_DATA_HANDLER_TOKEN) private readonly unsavedHandler: UnsavedDataHandler,\n ) {}\n\n ngOnChanges(): void {\n this.reInitializeObservables();\n }\n\n reInitializeObservables(): void {\n this.domainOverride = null;\n this.senderInfo$ = this.api.getEmailSendingInfo(this.sender.type, this.sender.id).pipe(\n tap((v) => this.auditDomain(v)),\n map((res) => {\n if (Object.keys(res).length === 0) {\n return {\n isDefaultForSenderType: true,\n } as GetSenderInfoResponseInterface;\n }\n return res;\n }),\n catchError((e) => {\n if (e.status === 404) {\n return of({\n isDefaultForSenderType: true,\n } as GetSenderInfoResponseInterface);\n }\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.LOADING_ERROR');\n return EMPTY;\n }),\n );\n this.unsavedHandler.notifyStateChanged(SavedState.SAFE_TO_NAVIGATE_AWAY);\n }\n\n handleAuthorizeRequested(): void {\n this.authorizeRequested.emit();\n }\n\n setDomain(domain: string): void {\n if (this.domainOverride !== domain) {\n this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.DOMAIN_SELECT_SUCCESS');\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES);\n }\n this.domainOverride = domain;\n }\n\n private auditDomain(v: GetSenderInfoResponse): void {\n if (!v.domain) {\n // Partner has an empty sender domain. Try to keep user on page to fix it.\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES);\n }\n }\n}\n","\n

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.INPUT_NOT_PROVIDED' | translate }}

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

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.LOADING_ERROR' | translate }}

\n \n \n \n
\n
\n
\n
\n","import { AfterViewInit, Component, Input, OnChanges, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ListAllDomainsResponse, SenderDomain, SenderType } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { map, skipWhile, tap } from 'rxjs/operators';\nimport { DomainCacheService } from './domain-cache.service';\nimport { DomainsComponent } from './domains/domains.component';\nimport {\n NewDomainDialogComponent,\n NewDomainDialogData,\n Result as NewDomainDialogResult,\n} from './new-domain-dialog/new-domain-dialog.component';\n@Component({\n selector: 'email-domain-authorization',\n templateUrl: './domain-authorization.component.html',\n styleUrls: ['./domain-authorization.component.scss'],\n standalone: false,\n})\nexport class DomainAuthorizationComponent implements AfterViewInit, OnChanges {\n @Input() senderType: SenderType;\n @Input() senderID: string;\n\n @ViewChild(DomainsComponent) domainsComponent: DomainsComponent;\n\n allDomains$: Observable;\n deleting: boolean;\n\n constructor(\n private readonly domainService: DomainCacheService,\n private readonly dialog: MatDialog,\n private readonly snack: SnackbarService,\n ) {}\n\n ngAfterViewInit(): void {\n this.refreshDomains();\n }\n\n ngOnChanges(): void {\n this.refreshDomains();\n }\n\n private refreshDomains(andScrollToDomain?: string): void {\n if (!this.senderID || this.senderType === SenderType.SENDER_TYPE_INVALID) {\n return;\n }\n // We replace the entire observable because errors cause the original observable to complete\n this.allDomains$ = this.domainService.listAllDomains(this.senderType, this.senderID).pipe(\n skipWhile((v) => !v),\n map((v: ListAllDomainsResponse) => v.domains),\n tap((domains) => {\n const chmln = window['chmln'];\n if (Array.isArray(domains) && domains.length > 0) {\n chmln?.track('Completed Customize Email Domain');\n }\n }),\n tap(() => window.setTimeout(() => (andScrollToDomain ? this.scrollToDomain(andScrollToDomain) : undefined), 0)),\n );\n }\n\n async handleAuthorizationRequested(): Promise {\n const data: NewDomainDialogData = {\n senderID: {\n senderType: this.senderType,\n senderID: this.senderID,\n },\n };\n const dialog = this.dialog.open(NewDomainDialogComponent, { data: data });\n const result: NewDomainDialogResult = await firstValueFrom(dialog.afterClosed());\n\n if (result.newPendingDomain) {\n this.refreshDomains(result.newPendingDomain);\n }\n }\n\n scrollToDomain(domain: string): void {\n this.domainsComponent.scrollToDomain(domain);\n }\n\n async handleDeleteRequested(domain: string): Promise {\n const delete$ = this.domainService.deletePendingDomain(this.senderType, this.senderID, domain);\n this.deleting = true;\n await firstValueFrom(delete$)\n .then(() => {\n this.snack.openSuccessSnack('Domain deleted');\n this.refreshDomains();\n })\n .catch(() => this.snack.openErrorSnack('There was a problem deleting the domain. Try again.'))\n .finally(() => (this.deleting = false));\n }\n}\n","\n\n
\n

{{ 'DOMAIN_AUTHORIZATION.GENERAL.HEADER' | translate }}

\n
\n {{ 'DOMAIN_AUTHORIZATION.GENERAL.PURPOSE' | translate }}\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 error\n \n {{ 'DOMAIN_AUTHORIZATION.GENERAL.ERROR' | translate }}\n

{{ domains.error }}

\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainStatusIconComponent } from './domain-status-icon.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [DomainStatusIconComponent],\n imports: [CommonModule, MatIconModule],\n exports: [DomainStatusIconComponent],\n})\nexport class DomainStatusIconModule {}\n","{\n \"COMMON\": {\n \"DOMAIN\": \"Domain\",\n \"EMAIL_ADDRESS\": \"Email address\",\n \"ACTION_LABELS\": {\n \"ADD_EMAIL\": \"Add email\",\n \"EDIT\": \"Edit\",\n \"DUPLICATE\": \"Duplicate\",\n \"DELETE\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"PREVIEW\": \"Preview\"\n }\n },\n \"ADVANCED_SECTION_TITLE\": \"Advanced\",\n \"DOMAIN_DELETE\": {\n \"BUTTON_TEXT\": \"Delete Email Configuration\",\n \"DIALOG\": {\n \"WARNING_TITLE\": \"Warning\",\n \"DELETING_INVALIDATES_DOMAIN\": \"Deleting your Email Configuration will render your domain records invalid and reset your sender address to the default.\",\n \"MUST_REGISTER_DOMAIN_RECORDS\": \"This means: if you want to customize your sender address in the future, you will need to repeat the process of configuring domain records and waiting for DNS propagation to occur.\",\n \"CANCEL_BUTTON_TEXT\": \"No, keep my Configuration\",\n \"DELETE_BUTTON_TEXT\": \"Yes, delete my Email Configuration\",\n \"DELETE_SUCCESS_ALERT\": \"Deleted Successfully\",\n \"DELETE_FAILURE_ALERT\": \"Failed to delete Email Configuration\"\n }\n },\n \"SENDER_CHOOSER\": {\n \"SENDER\": {\n \"PLACEHOLDER\": \"What kind of sender?\"\n }\n },\n \"SENDER_INFO_RESET\": {\n \"INSTRUCTION_PROMPT\": {\n \"PROVIDE_DETAILS\": \"Provide sender details for emails sent from the platform\"\n },\n \"INPUT_CHECK\": {\n \"PROVIDE_SENDER_TYPE\": \"Select a sender type\",\n \"PROVIDE_SENDER_ID\": \"Enter a sender ID\"\n },\n \"WHAT_IS_SMBLOGIN_DOT_COM\": {\n \"PLACEHOLDER\": \"Email Username\",\n \"TOOLTIP\": {\n \"TITLE\": \"What is smblogin.com?\",\n \"TEXT\": \"This domain is already authorized to send emails from the platform. Using this domain is an easy way to ensure successful email delivery.\"\n }\n },\n \"REPLY_TO_ADDRESS\": {\n \"PLACEHOLDER\": \"Reply-To Address (Optional)\",\n \"TOOLTIP\": {\n \"TITLE\": \"What is Reply-To?\",\n \"TEXT\": \"You may provide any email address here. Setting this allows your customers to reply directly to platform emails using an address that you own.\"\n }\n },\n \"UPDATE_BUTTON\": {\n \"TEXT\": \"Update sender info\"\n },\n \"ALERTS\": {\n \"UPDATE_FAILURE\": \"Something went wrong. Please try again.\",\n \"UPDATE_SUCCESS\": \"Sender info updated.\"\n }\n },\n \"IMAGE_UPLOAD_FAILURE\": \"Image upload failed\",\n \"UNSAVED_CHANGES_CONFIRM\": \"Are you sure you want to leave? You will lose any unsaved changes.\",\n \"ADD_SOMETHING_HINT\": \"Add something and see what happens\",\n \"PLACEHOLDER_OPTIONAL\": \"Optional\",\n \"EMAIL_LIBRARY\": {\n \"PAGE_TITLE\": \"Emails\",\n \"PAGE_DESCRIPTION\": \"Create and customize templates and pre-built content that can be used to build Campaigns.\",\n \"BROWSER\": {\n \"NO_RESULTS_PLACEHOLDER\": {\n \"TITLE\": \"No results found\",\n \"SUGGESTION\": \"Create an email template so it can be reused elsewhere\",\n \"CREATE_NEW_BUTTON_TEXT\": \"Create new template\"\n },\n \"END_OF_RESULTS\": \"End of search results\"\n },\n \"FEATURED_TEMPLATES\": \"Featured templates\",\n \"MY_TEMPLATES\": \"My templates\",\n \"CARD\": {\n \"CREATED\": \"Created\",\n \"UPDATED\": \"Updated\"\n },\n \"CREATE_EMAIL_BUTTON_TEXT\": \"Create email\",\n \"EMPTY_LIBRARY_PAGE\": {\n \"TITLE\": \"Create your first email\",\n \"DESCRIPTION\": \"You haven't created any emails yet.\",\n \"SUGGESTION\": \"When you create an email, it'll show up here for you to edit, add to automations and campaigns, or send.\"\n },\n \"NO_RESULTS\": \"No results found\",\n \"SEARCH_PLACEHOLDER\": \"Search for an email\",\n \"TOTAL_RESULTS_PLURAL\": \"{{ totalResults }} emails\",\n \"TOTAL_RESULTS_SINGULAR\": \"{{ totalResults }} email\",\n \"DUPLICATE\": {\n \"SUCCESS\": \"Duplicate {{ duplicateName }} has been created. You may edit and save it.\",\n \"FAIL\": \"Failed to duplicate template. Please try again later.\",\n \"ERROR\": {\n \"SUBJECT\": \"An error occurred. Subject is required\"\n }\n },\n \"DELETE\": {\n \"CONFIRMATION_MESSAGE\": \"Deleting this template will permanently remove it.\",\n \"SUCCESS\": \"Email template deleted successfully!\",\n \"FAIL\": \"Failed to delete template. Please try again later.\"\n },\n \"EDITOR\": {\n \"TITLE\": \"Edit template\",\n \"SAVE_AND_CLOSE\": \"Save and close\",\n \"SEND_PREVIEW\": \"Send preview\",\n \"ERROR_LOADING_TEMPLATE\": \"Error loading content\"\n }\n },\n \"EMAIL_BUILDER\": {\n \"VALIDATION_ERRORS\": {\n \"COLOR\": \"Invalid color. Colors must follow the #XXXXXX format where X is a hexadecimal character.\",\n \"LINK\": \"Invalid link. Links must start with 'https://' or 'http://'\",\n \"DYNAMIC_CONTENT\": \"Invalid dynamic content. Dynamic content must be in the format {{ dynamicContent }}\"\n },\n \"MAT_LABELS\": {\n \"EDIT_EMAIL\": \"Edit Email\",\n \"PREVIEW\": \"Preview\",\n \"ADVANCED\": \"Advanced\"\n },\n \"SUBJECT_CONTROLS_TAB\": {\n \"TEMPLATE_NAME\": \"Name\",\n \"SUBJECT_LINE\": \"Subject line\",\n \"INBOX_PREVIEW\": \"Inbox preview text\",\n \"INBOX_PREVIEW_HINT\": \"Shown beside or below the email title in the inbox\"\n },\n \"BUTTON_BLOCK\": {\n \"TEXT\": \"Button text\",\n \"STYLE\": \"Button style\",\n \"COLOR\": \"Button color\",\n \"LINK\": \"Button link\"\n },\n \"CONTACT_CARD\": {\n \"IMAGE\": \"Image\",\n \"IMAGE_SIZE\": {\n \"SIZE\": \"Size\",\n \"SMALL\": \"Small\",\n \"MEDIUM\": \"Medium\",\n \"LARGE\": \"Large\"\n },\n \"CLOSE\": \"Close\",\n \"CLEAR_IMAGE\": \"Clear\",\n \"NAME\": \"Name\",\n \"JOB\": \"Job Title\",\n \"ADDITIONAL_INFO\": \"Additional Info\",\n \"REMOVE_ROW\": \"Remove Row\",\n \"ADD_ROW\": \"Add Row\"\n },\n \"DIVIDER_BLOCK\": {\n \"HEIGHT\": \"Divider Height\",\n \"COLOR\": \"Divider Color\",\n \"COLOR_HINT\": \"Optional. Defaults to the page background color.\",\n \"PLACEHOLDER_DEFAULT\": \"Optional. Defaults to 1.\"\n },\n \"HEADING_BLOCK\": {\n \"TITLE\": \"Title\",\n \"SUBTITLE\": \"Subtitle\",\n \"TEXT_ALIGN\": \"Text Align\"\n },\n \"HTML_BLOCK\": {\n \"RAW\": \"Raw Html\"\n },\n \"IMAGE_AND_TEXT_BLOCK\": {\n \"LEARN_MORE\": \"Learn More\",\n \"LAYOUT\": {\n \"TEXT\": \"Layout\",\n \"VERTICAL\": \"Vertical\",\n \"HORIZONTAL_LARGE\": \"Horizontal large\",\n \"HORIZONTAL_MEDIUM\": \"Horizontal medium\",\n \"HORIZONTAL_SMALL\": \"Horizontal small\"\n },\n \"ADD_NEW_BUTTON_1\": \"Add a new \\\"Image and Text\\\" \",\n \"ADD_NEW_BUTTON_2\": \" using the button below\",\n \"ADD_ABOVE\": \"Add new above\",\n \"DUPLICATE\": \"Duplicate\",\n \"COLLAPSE\": \"Collapse\",\n \"EXPAND\": \"Expand\",\n \"ORDER\": \"Order\",\n \"REMOVE\": \"Remove\",\n \"MOVE_UP\": \"Move up\",\n \"MOVE_TO_TOP\": \"Move to top\",\n \"MOVE_DOWN\": \"Move down\",\n \"MOVE_TO_BOTTOM\": \"Move to bottom\",\n \"IMAGE\": \"Image\",\n \"VIEW\": \"View\",\n \"HEADING\": \"Heading\",\n \"SUBHEADING\": \"Subheading\",\n \"BODY_TEXT\": \"Body Text\",\n \"LINK\": \"Link\",\n \"LINK_TEXT\": \"Link Text\",\n \"CLEAR\": \"Clear\",\n \"TIPS\": {\n \"EXPAND\": \"Expand this item\",\n \"COLLAPSE\": \"Collapse this item\",\n \"REMOVE\": \"Remove this item\"\n }\n },\n \"IMAGE_BLOCK\": {\n \"IMAGE\": \"Image\",\n \"CLEAR\": \"Clear\",\n \"VIEW\": \"View\",\n \"IMAGE_STYLE\": {\n \"TEXT\": \"Image Style\",\n \"FULL_WIDTH\": \"Full Width\",\n \"CENTER\": \"Center\",\n \"LEFT\": \"Left\",\n \"RIGHT\": \"Right\"\n },\n \"WIDTH\": \"Image Width\",\n \"LINK\": \"Image Link\"\n },\n \"RICH_TEXT_BLOCK\": {\n \"RICH_TEXT\": \"Rich Text\"\n },\n \"CONTEXT_SELECTOR\": {\n \"CONTACT\": \"Contact\",\n \"BUSINESS\": \"Business\",\n \"X_FOR_PREVIEW\": \"{{context}} for preview\",\n \"SELECT_ANOTHER_X\": \"Select another {{context}}\",\n \"CONTACT_SELECTOR\": {\n \"TITLE\": \"Select contact\",\n \"SEARCH\": \"Contact\",\n \"SEARCH_PLACEHOLDER\": \"Search for a contact\",\n \"CANCEL_BUTTON\": \"Cancel\"\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 \"PRIMARY_COMPANY_DETAILS\": \"Primary company 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 \"SELECT_A_CATEGORY\": \"Select a category\",\n \"SELECT_A_FIELD\": \"Select a field\",\n \"SELECT_ONE\": \"Select one\"\n },\n \"BUSINESS_CONTACT_SELECTOR\": {\n \"CONTACT\": \"Contact\",\n \"ACCOUNT\": \"Account\",\n \"PREVIEW_AS\": \"Preview email as\",\n \"NO_CONTACTS_FOUND\": \"No contacts found\",\n \"NO_ACCOUNTS_FOUND\": \"No accounts found\",\n \"CREATE_ACCOUNT\": \"Create account\",\n \"SEARCH\": \"Search\"\n },\n \"SIMPLE_TABLE_BLOCK\": {\n \"TABLE_CONTENT\": \"Table Content\",\n \"ADD_ROW\": \"Add Row\",\n \"REMOVE_ROW\": \"Remove Row\",\n \"LABEL\": \"Label\",\n \"VALUE\": \"Value\"\n },\n \"SPACER_BLOCK\": {\n \"HEIGHT\": \"Spacer Height\"\n },\n \"REVIEW_REQUEST_LINKS_BLOCK\": {\n \"REVIEW_REQUEST_SITES\": \"Review request sites\",\n \"CONNECT_PAGES\": \"For best results, connect your Google and Facebook pages.\",\n \"MODES\": {\n \"CONFIGURE_MANUALLY\": {\n \"MAX_SELECTIONS\": \"Max {{ maxSelections }}\"\n }\n },\n \"SOURCE_SELECTION_MODAL\": {\n \"HEADER\": \"Request reviews on\"\n },\n \"SOURCES\": {\n \"GOOGLE\": \"Google\",\n \"FACEBOOK\": \"Facebook\"\n }\n },\n \"NET_PROMOTER_SCORE_BLOCK\": {\n \"DISPLAY_AS\": \"Display as\",\n \"BUTTON\": \"Button\",\n \"INLINE\": \"Inline\",\n \"REQUEST_REVIEW\": \"Request review\",\n \"YES\": \"Yes\",\n \"REQUEST_REVIEW_CONTEXT\": \"Redirect customers who leave an NPS score higher than 7 to leave review directly on Google\"\n },\n\n \"ADVANCED_SETTINGS\": {\n \"PLACEHOLDER_OPTIONAL_DEFAULT_ANNOUNCEMENT\": \"Optional. Defaults to Announcement.\",\n \"COLORS\": {\n \"COLORS\": \"Colors\",\n \"TEXT\": \"Text\",\n \"TITLE\": \"Title\",\n \"SUBTITLE\": \"Subtitle\",\n \"LINKS\": \"Links\",\n \"FOOTER_TEXT\": \"Footer Text\",\n \"CONTENT_BACKGROUND\": \"Content Background\",\n \"PAGE_BACKGROUND\": \"Page Background\"\n },\n \"SIZING_AND_SPACING\": {\n \"SIZING_SPACING\": \"Sizing and Spacing\",\n \"TOP_PADDING\": {\n \"TEXT\": \"Top Padding\",\n \"DEFAULT\": \"Defaults to 32, 0 on Mobile\"\n },\n \"OUTER_WIDTH\": {\n \"TEXT\": \"Outer Width\",\n \"DEFAULT\": \"Defaults to 600\"\n },\n \"INNER_WIDTH\": {\n \"TEXT\": \"Inner Width\",\n \"DEFAULT\": \"Defaults to 464\"\n },\n \"INNER_HORIZONTAL_PADDING\": {\n \"TEXT\": \"Inner Horizontal Padding\",\n \"DEFAULT\": \"Defaults to 25\"\n },\n \"BOTTOM_CONTENT_PADDING\": {\n \"TEXT\": \"Bottom Content Padding\",\n \"DEFAULT\": \"Defaults to 48\"\n }\n },\n \"TOP_LOGO\": {\n \"TEXT\": \"Top Logo\",\n \"DEFAULT\": \"Default\",\n \"CUSTOM\": \"Custom\",\n \"HIDE\": \"Hide\",\n \"CUSTOM_LOGO\": \"Custom Logo\",\n \"VIEW\": \"View\",\n \"CLEAR\": \"Clear\",\n \"LOGO_WIDTH\": {\n \"TEXT\": \"Logo Width\",\n \"DEFAULT\": \"Defaults to 228\"\n },\n \"LOGO_ALIGNMENT\": {\n \"TEXT\": \"Logo Alignment\",\n \"CENTER\": \"Center\",\n \"LEFT\": \"Left\",\n \"RIGHT\": \"Right\"\n },\n \"TOP_PADDING\": {\n \"TEXT\": \"Top Padding\",\n \"DEFAULT\": \"Defaults to 32, 0 on Mobile\",\n \"BOTTOM_PADDING\": {\n \"TEXT\": \"Bottom Padding\",\n \"DEFAULT\": \"Defaults to 8\"\n }\n },\n \"LINK\": \"Link\"\n },\n \"FOOTER\": {\n \"TEXT\": \"Footer\",\n \"DISCLAIMER\": \"Footer Disclaimer\"\n },\n \"GOOGLE_ANALYTICS\": {\n \"TEXT\": \"Google Analytics\",\n \"NAME\": \"Campaign Name\",\n \"SOURCE\": \"Campaign Source\",\n \"MEDIUM\": \"Campaign Medium\"\n }\n },\n \"BLOCK_PADDING\": {\n \"TOP_PADDING\": \"Top Padding\",\n \"BOTTOM_PADDING\": \"Bottom Padding\"\n },\n \"BLOCKS_LIST\": {\n \"HEADER\": \"Emails are built with blocks, which can contain text, images, buttons, and more.\",\n \"ADD_NEW_BLOCK_HEADER\": \"Add a new block to start composing your email\",\n \"ADD_NEW\": \"Add new block\",\n \"PADDING\": \"Padding\",\n \"TOP\": \"Top\",\n \"BOTTOM\": \"Bottom\",\n \"BETWEEN\": \"Between\",\n \"SPACE_BETWEEN_ITEMS\": \"Space between items\",\n \"DUPLICATE\": \"Duplicate\",\n \"ADD_NEW_ABOVE\": \"Add New Above\",\n \"COLLAPSE\": \"Collapse\",\n \"COLLAPSE_TIP\": \"Collapse this block\",\n \"EXPAND\": \"Expand\",\n \"EXPAND_TIP\": \"Expand this block\",\n \"ORDER\": \"Order\",\n \"DELETE\": \"Delete\",\n \"MOVE_TO_TOP\": \"Move to top\",\n \"MOVE_UP\": \"Move up\",\n \"MOVE_DOWN\": \"Move down\",\n \"MOVE_TO_BOTTOM\": \"Move to bottom\",\n \"NEW_BADGE\": \"New\"\n },\n \"CONTENT_BLOCK_NAMES\": {\n \"IMAGE\": \"Image\",\n \"HEADING\": \"Heading\",\n \"RICH_TEXT\": \"Rich Text\",\n \"BUTTON\": \"Button\",\n \"IMAGE_AND_TEXT\": \"Image and Text\",\n \"CONTACT_CARD\": \"Contact Card\",\n \"SIMPLE_TABLE\": \"Simple Table\",\n \"DIVIDER\": \"Divider\",\n \"SPACER\": \"Spacer\",\n \"HTML\": \"Raw Html\",\n \"REVIEW_REQUEST_LINKS\": \"Review Request Links\",\n \"NET_PROMOTER_SCORE\": \"NPS\",\n \"SUGGEST_CONTENT\": \"Suggest Content\"\n },\n \"CONTENT_SUGGESTION\": {\n \"PROMPT\": \"Content Generation\",\n \"PROMPT_PLACEHOLDER\": \"Generate a paragraph about your business for a marketing email.\",\n \"INSTRUCTIONS\": \"Enter a prompt used to generate content for your email\",\n \"ERROR_MESSAGE\": \"An error occurred. Please try again.\",\n \"GENERATE_CONTENT\": \"Generate content\",\n \"GENERATED_CONTENT\": \"Generated content\",\n \"GENERATED_CONTENT_PLACEHOLDER\": \"Are you looking to make your business stand out from the competition? Our innovative solutions can help you do just that! Our team of experts has years of experience in crafting effective strategies that will help you build a solid foundation for success. With our help, you'll be able to maximize your potential and reach new heights. Get in touch with us today to see how we can help your business stand out!\",\n \"USE_CONTENT\": \"Use content\",\n \"INSERT_GENERATED_CONTENT\": \"Insert AI generated content\",\n \"CANCEL\": \"Cancel\",\n \"GENERATE_IMAGE\": \"Generate image\"\n },\n \"SAVING\": {\n \"GENERIC_ERROR\": \"An error occurred when trying to save your template, please ensure all required fields are filled out and try again.\",\n \"TEMPLATE_INVALID_ERROR\": \"There are invalid entries in your template, please check your template and try again.\"\n }\n },\n \"EMAIL_BUILDER_VINTAGE\": {\n \"EDIT\": \"Edit Email\",\n \"SAVE\": \"Save\",\n \"COPY_SOURCE\": \"Copy Email Source\",\n \"COPY_JSON\": \"Copy Email Json\",\n \"NOT_VISIBLE_TO_RECIPIENTS\": \"Not visible to your recipients\",\n \"SUBJECT_LINE\": \"Email Subject Line\",\n \"SIMPLE\": \"Simple\",\n \"ADVANCED\": \"Advanced\",\n \"DYNAMIC_CONTENT\": \"Dynamic Content\",\n \"TEMPLATE_EDITOR\": {\n \"TEMPLATE_LOAD_FAILURE\": \"Failed to load template\",\n \"MISSING_BODY_TAGS\": \"Can not switch editor modes. Missing body tags: \",\n \"SWITCH_TO_ADVANCED_FAILURE\": \"Failed to switch to advanced mode\",\n \"EMAIL_REQUIRED\": \"Email addresses are required\",\n \"SEND_SUCCESS\": \"Email sent to \",\n \"SEND_FAILURE\": \"Failed to send email to \"\n },\n \"PREVIOUS_PAGE\": \"Previous Page\"\n },\n \"EMAIL_EDITOR_PREVIEW\": {\n \"DESKTOP\": \"Desktop\",\n \"TABLET\": \"Tablet\",\n \"MOBILE\": \"Mobile\"\n },\n \"EMAIL_USERNAME_INPUT\": {\n \"EMAIL_REQUIRED\": \"Sender email is required and cannot contain \\\"@\\\"\",\n \"USE_DIFFERENT_DOMAIN\": \"Use a different domain\"\n },\n \"DOMAIN_AUTHORIZATION\": {\n \"DOMAIN_INFO_CARD\": {\n \"LEARN_MORE\": \"Learn more\",\n \"GENERIC_HELP_PANEL\": {\n \"TITLE\": \"General domain authentication instruction\",\n \"HEADING_1\": \"Updating your DNS records for email authentication\",\n \"HEADING_2\": \"General instructions:\",\n \"HEADING_3\": \"Remember:\",\n \"PAR_1\": \"Spam laws and regulations are increasing in complexity, and precautions are needed to prevent emails from being flagged as spam. Authenticating your domain ensures your email campaigns pass spam regulations and reach your prospects successfully.\",\n \"PAR_2\": \"Before you get started, it’s a good idea to back up your existing DNS settings. Take a screenshot or download them in case you need to revert back to your original settings.\",\n \"PAR_3\": \"While specific instructions may vary slightly depending on your provider, these general steps will help you navigate the process:\",\n \"PAR_4\": \"By following these clear steps and referring to your email provider's specific instructions, you'll successfully update your DNS records for email authentication and ensure your business emails reach their intended recipients!\",\n \"BULLET_LIST\": {\n \"ITEM_1\": \"Double-check your nameservers: Make sure they point to your current DNS provider. If unsure, your IT department or the provider's support can assist.\",\n \"ITEM_2\": \"Need help? Don't hesitate to reach out to your DNS provider's support team. They're there to guide you through the process.\",\n \"ITEM_3\": \"These are general guidelines. Consult your specific email service provider's support articles for detailed instructions tailored to their platform.\",\n \"ITEM_4\": \"Field names may vary. Don't worry if you see slight differences in field names; the overall steps remain similar.\",\n \"ITEM_5\": \"Take your time and be careful. Double-check entries to avoid errors that could impact email delivery.\"\n },\n \"NUMBERED_LIST\": {\n \"ITEM_1\": \"Log in to your DNS provider's account: Familiar platforms like GoDaddy or Namecheap often make this easy.\",\n \"ITEM_2\": \"Find the CNAME record: Look for the existing CNAME record for your chosen subdomain or create a new one. Field names like \\\"host,\\\" \\\"name,\\\" or \\\"alias\\\" might describe the same field depending on your provider.\",\n \"ITEM_3\": \"Fill in the details: In the appropriate field (host, name, alias), enter the prefix for your subdomain (e.g., \\\"mail\\\").\",\n \"ITEM_4\": \"Paste the CNAME value: In the \\\"target\\\" or \\\"points to\\\" field, paste the CNAME record provided by your email service provider. It typically looks similar to: ___.domainkey.______.sendgrid.net.\",\n \"ITEM_5\": \"Redirect your non-www domain (optional): If your provider allows forwarding, set up a redirect in your DNS settings. This ensures your non-www domain (e.g., yourdomain.com) forwards to your www domain (e.g., www.yourdomain.com).\"\n },\n \"CLOSE\": \"Close\"\n },\n \"TRY_AGAIN\": \"Try again\",\n \"USE_AS_DEFAULT_DOMAIN\": \"Use as default domain\",\n \"ACTIVE\": \"Active\",\n \"GENERIC_VALIDATION\": {\n \"SUCCESS\": \"All records match. This domain is ready to use.\",\n \"FAILURE\": \"Some domain records are missing or incorrect.\",\n \"ERROR\": \"Unable to check domain records. Try again.\"\n },\n \"STATUS_BANNER\": {\n \"ERROR\": \"There was a problem validating this domain\"\n },\n \"DNS_RECORDS\": {\n \"HEADER\": \"DNS Records\",\n \"SUBTEXT\": \"Changes to DNS records may take up to 72 hours to update\",\n \"HELP_MESSAGE\": \"Need help updating your records?\",\n \"HELP_BUTTON\": \"View help article\"\n },\n \"DMARC_RECORDS\": {\n \"HEADER\": \"DMARC Records\",\n \"DESCRIPTION\": \"DMARC records control what happens to emails that fail SPF and DKIM checks. Make sure to set up an email address to receive DMARC reports or change the address used in the record to one you can access\"\n },\n \"SPF_RECORDS\": {\n \"HEADER\": \"SPF Records\"\n },\n \"DKIM_RECORDS\": {\n \"HEADER\": \"DKIM Records\"\n },\n \"A_RECORDS\": {\n \"HEADER\": \"A Records\"\n },\n \"CNAME_RECORDS\": {\n \"HEADER\": \"CNAME Records\"\n },\n \"ACTIONS\": {\n \"CHECK_RECORDS\": \"Check domain records\"\n },\n \"ERROR_NOTICE\": {\n \"HEADER\": \"Domain authorization required\",\n \"HINT\": \"Install records on your domain to use it in your sender address\"\n }\n },\n \"DOMAIN_RECORDS_TABLE\": {\n \"TYPE\": \"Record type\",\n \"HOST\": \"Host (Name)\",\n \"VALUE\": \"Value\",\n \"FOUND\": \"Current value\",\n \"NOT_FOUND\": \"Not found\",\n \"NOT_FOUND_LONG\": \"We could not find this record on your domain. DNS propagation can take up to 72 hours.\",\n \"MISMATCH_LONG\": \"We found a record on your domain. But the highlighted value is incorrect.\",\n \"COPY_SUCCESS\": \"Copied to clipboard\",\n \"CLICK_TO_COPY\": \"Click to copy\"\n },\n \"DOMAINS\": {\n \"AUTH_DOMAIN_BUTTON\": \"Authorize a domain\",\n \"NEW_DOMAIN\": \"Authorize a domain to start using it for emails\",\n \"ADDITIONAL_DOMAIN\": \"Authorize another domain\",\n \"NO_DOMAINS\": \"No usable domains\"\n },\n \"DOMAINS_DIALOG\": {\n \"HEADER\": \"Select a domain for your email sender address\",\n \"HINT\": \"You can only use a domain if the platform has been authorized to use that domain.\",\n \"INFO\": \"More Info\",\n \"ERROR\": \"Something went wrong\"\n },\n \"NEW_DOMAIN_DIALOG\": {\n \"ADD_DOMAIN\": \"Add domain\",\n \"AUTH_ERROR\": \"There was a problem. Try again.\",\n \"STARTED\": \"Domain authorization started.\",\n \"INVALID_ERROR\": \"Some of the provided form values are not valid\",\n \"NOT_PROVIDED\": \"ERROR: Dialog input data was not provided\",\n \"TITLE\": \"Add email domain\",\n \"HEADER\": \"Enter a domain to use for sending emails\",\n \"START\": \"Authorize domain\",\n \"CANCEL\": \"Cancel\"\n },\n \"SENDER_INFO_FORM\": {\n \"TITLE\": \"Advanced email settings\",\n \"NAME\": \"Sender name\",\n \"NAME_REQUIRED\": \"Sender name is required\",\n \"SENDER_DOMAIN\": \"Sender domain\",\n \"USE_DEFAULT\": \"Use default authenticated email domain\",\n \"USE_OWN\": \"Use my own email domain\",\n \"EMPTY_DOMAIN\": \"You must first choose an authorized domain\",\n \"CHOOSE_DOMAIN\": \"Choose a domain to use\",\n \"ADD_DOMAIN\": \"Add domain\",\n \"REPLY_ADDRESS\": \"Reply Address\",\n \"REPLY_ADDRESS_NOT_VALID\": \"Reply address is not valid\",\n \"FORWARDING_ADDRESS\": \"Forwarding address\",\n \"FORWARDING_ADDRESS_DESCRIPTION\": \"Set up email forwarding to Inbox on an external email account.\",\n \"LEARN_MORE\": \"Learn more\",\n \"FORWARDING_ADDRESS_INFO\": \"Forwarding into Inbox from other email addresses

By setting up email forwarding in your email client, you can receive emails from leads and customers in your centralized Inbox, so your team can collaborate on replying.

For example, you might use a general business email address for customer inquiries, like team@yourcompany.com. With forwarding, any time someone sends an email to that address, it will also appear in Inbox.

WARNING: If you wish to forward emails from an address that's associated with a user of your account, make sure you either a) filter out app notification emails from forwarding, or b) turn off Inbox email notifications for that user, otherwise you will experience a noisy email feedback loop as Inbox notification emails appear back inside Inbox.

How to set up forwarding from Gmail:
  1. In gmail.com, go to Settings > See all settings.
  2. Select Forwarding and POP/IMAP tab
  3. Click “Add a forwarding address” and paste in your unique email address from Inbox Settings, click Next, sign in again if required, and confirm.
  4. In Inbox, you will receive a confirmation message. Click the link to confirm the request to forward email.
  5. After confirming, you will need to return to Gmail Forwarding settings one more time, to ENABLE forwarding, then save your changes. You can also optionally use filtering to forward only some of the messages.
How to set up forwarding from Outlook:
  1. In outlook.com, select Settings
  2. Select Mail > Forwarding.
  3. To turn on forwarding, select Enable forwarding, enter the forwarding email address, and select Save.
\",\n \"FORWARDING_ADDRESS_INFO_TITLE\": \"Understanding Forwarding Email Addresses\",\n \"CLOSE_BUTTON\": \"Close\",\n \"CONFIGURATION_ALERT_MESSAGE\": \"Sender name and reply address are used by Campaigns and other integrated services. Emails sent via inbox will not be affected by these settings.\"\n },\n \"SENDER_INFO_CARD\": {\n \"INPUT_NOT_PROVIDED\": \"ERROR: SenderInfoCard input data was not provided\",\n \"GENERAL\": \"Sender and reply settings\",\n \"SAVE\": \"Save\",\n \"LOADING_ERROR\": \"There was a problem loading sender info\",\n \"TRY_AGAIN\": \"Try Again\",\n \"UPDATE_SUCCESS\": \"Updated sender info successfully\",\n \"UPDATE_FAILURE\": \"There was a problem updating sender info\",\n \"DOMAIN_SELECT_SUCCESS\": \"Domain selected. Review sender info before saving changes.\"\n },\n \"GENERAL\": {\n \"HEADER\": \"My Email domains\",\n \"PURPOSE\": \"An email domain's DNS records (SPF, DKIM, and DMARC) help with deliverability, ensuring your emails pass spam filters and reach your recipients successfully.\",\n \"ERROR\": \"Something went wrong\"\n }\n },\n \"EMAIL_STATS\": {\n \"EMAIL_PERFORMANCE\": \"Email Performance\",\n \"DELIVERY_STATUS\": \"Delivery Status\",\n \"LINK_ACTIVITY\": \"Link Activity\",\n \"TOTAL_CLICKS\": \"Total Clicks\",\n \"UNIQUE_CLICKS\": \"Unique Clicks\",\n \"SEE_WHO_CLICKED\": \"See contacts who clicked\",\n \"CLICK_RATIO\": \"Click Ratio\",\n \"LINK_CLICK_RATE_TOOLTIP\": \"Percent of email recipients that clicked on this link\",\n \"OPEN_RATE\": \"Opens\",\n \"OPEN_RATE_TOOLTIP_SINGLE\": \"1 of the delivered emails was opened.\",\n \"OPEN_RATE_TOOLTIP\": \"{{ opened }} of the delivered emails were opened\",\n \"CTOR\": \"CTOR\",\n \"CLICK_RATE_TOOLTIP_SINGLE\": \"Click-to-open rate. 1 of the opened emails was clicked through.\",\n \"CLICK_RATE_TOOLTIP\": \"Click-to-open rate. {{ clickedThrough }} of the opened emails were clicked through.\",\n \"OPENED\": \"Opened\",\n \"OPENED_TOOLTIP_SINGLE\": \"1 email was opened by recipients on this campaign.\",\n \"OPENED_TOOLTIP\": \"{{ opened }} emails were opened by recipients on this campaign.\",\n \"CLICKED\": \"Clicks\",\n \"CLICKED_TOOLTIP_SINGLE\": \"Links in this email were clicked 1 time.\",\n \"CLICKED_TOOLTIP\": \"Links in this email were clicked {{ clicked }} times.\",\n \"DELIVERED\": \"Delivered\",\n \"DELIVERED_TOOLTIP_SINGLE\": \"1 email has been delivered.\",\n \"DELIVERED_TOOLTIP\": \"{{ delivered }} emails have been delivered.\",\n \"BOUNCED\": \"Bounced\",\n \"BOUNCED_TOOLTIP_SINGLE\": \"1 email failed to deliver. This is often caused by an incorrect email address.\",\n \"BOUNCED_TOOLTIP\": \"{{ bounced }} emails failed to deliver. This is often caused by an incorrect email address.\",\n \"UNSUBSCRIBED\": \"Unsubscribed\",\n \"UNSUBSCRIBED_TOOLTIP_SINGLE\": \"1 recipient unsubscribed from this email.\",\n \"UNSUBSCRIBED_TOOLTIP\": \"{{ unsubscribed }} recipients unsubscribed from this email.\",\n \"SPAM\": \"Spam\",\n \"SPAM_REPORT_TOOLTIP_SINGLE\": \"1 recipient marked this email as spam.\",\n \"SPAM_REPORT_TOOLTIP\": \"{{ spamReport }} recipients marked this email as spam.\",\n \"DROPPED\": \"Dropped\",\n \"DROPPED_TOOLTIP_SINGLE\": \"1 email can’t be delivered. This occurs when a recipient has unsubscribed from a previous email in your campaign or marked a previous email as spam.\",\n \"DROPPED_TOOLTIP\": \"{{ dropped }} emails can’t be delivered. This occurs when a recipient has unsubscribed from a previous email in your campaign or marked a previous email as spam.\"\n },\n \"CONTACT_TABLE\": {\n \"TABLE_HEADERS\": {\n \"NAME\": \"Name\",\n \"RECIPIENT_EMAIL\": \" Recipient Email\",\n \"CLICKS\": \"Clicks\",\n \"DATE_CLICKED\": \"Date Clicked\"\n },\n \"EMPTY_STATE\": {\n \"DESCRIPTION\": \"There is no link activity to display\"\n },\n \"DOWNLOAD_DIALOG\": {\n \"TITLE\": \"Download link activity\",\n \"DESCRIPTION\": \"This action will download the data that's been filtered on your screen.\",\n \"NOTIFICATION\": \"You'll receive a notification when the file is ready to download. You can access the file by clicking that notification.\",\n \"DOWNLOAD\": \"Download\",\n \"SUCCESS\": \"Generating CSV file. You will be notified when it is ready. \\uD83D\\uDD14\",\n \"ERROR\": \"There was a problem downloading data. Please try again.\"\n }\n },\n \"EMAIL_ACTIVITY\": {\n \"TITLE\": \"Email Activity\",\n \"EVENT_TYPE\": \"Event type\",\n \"EVENT_TIME\": \"Event time\",\n \"NO_EVENTS\": \"There are no events for this attribute.\"\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './assets/en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/email-ui',\n baseTranslation: En,\n }),\n ],\n})\nexport class EmailUII18nModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainRecordsTableComponent, ToTableRowClassPipe } from './domain-records-table.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainRecordsTableComponent, ToTableRowClassPipe],\n imports: [CommonModule, MatButtonModule, MatIconModule, GalaxyTooltipModule, EmailUII18nModule, TranslateModule],\n exports: [DomainRecordsTableComponent],\n providers: [ToTableRowClassPipe],\n})\nexport class DomainRecordsTableModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainInfoCardComponent } from './domain-info-card.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { DomainStatusIconModule } from '../domain-status-icon/domain-status-icon.module';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { DomainRecordsTableModule } from '../domain-records-table/domain-records-table.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [DomainInfoCardComponent],\n imports: [\n CommonModule,\n MatExpansionModule,\n DomainStatusIconModule,\n DomainRecordsTableModule,\n GalaxyLoadingSpinnerModule,\n GalaxyTooltipModule,\n MatIconModule,\n GalaxyPipesModule,\n GalaxyAlertModule,\n MatButtonModule,\n GalaxyButtonLoadingIndicatorModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n ],\n exports: [DomainInfoCardComponent],\n})\nexport class DomainInfoCardModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NewDomainDialogComponent } from './new-domain-dialog.component';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\n@NgModule({\n declarations: [NewDomainDialogComponent],\n imports: [\n CommonModule,\n GalaxyWrapModule,\n FormsModule,\n MatFormFieldModule,\n TranslateModule,\n MatInputModule,\n ReactiveFormsModule,\n MatButtonModule,\n GalaxyButtonLoadingIndicatorModule,\n GalaxyPipesModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n GalaxyFormFieldModule,\n ],\n exports: [NewDomainDialogComponent],\n})\nexport class NewDomainDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainsComponent } from './domains.component';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DomainInfoCardModule } from '../domain-info-card/domain-info-card.module';\nimport { NewDomainDialogModule } from '../new-domain-dialog/new-domain-dialog.module';\nimport { CanAddDomainPipe } from './can-add-domain.pipe';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainsComponent, CanAddDomainPipe],\n imports: [\n CommonModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n MatButtonModule,\n DomainInfoCardModule,\n NewDomainDialogModule,\n EmailUII18nModule,\n TranslateModule,\n ],\n exports: [DomainsComponent],\n})\nexport class DomainsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmailUsernameInputComponent } from './email-username-input.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EmailUII18nModule } from '../src/lib/i18n/email-ui-i18n.module';\n\n@NgModule({\n declarations: [EmailUsernameInputComponent],\n imports: [\n CommonModule, //\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatIconModule,\n GalaxyTooltipModule,\n TranslateModule,\n EmailUII18nModule,\n ],\n exports: [EmailUsernameInputComponent],\n})\nexport class EmailUsernameInputModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainInfoDialogComponent } from './domain-info-dialog.component';\nimport { DomainInfoCardModule } from '../domain-info-card/domain-info-card.module';\n\n@NgModule({\n declarations: [DomainInfoDialogComponent],\n imports: [CommonModule, DomainInfoCardModule],\n})\nexport class DomainInfoDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { DomainsDialogComponent } from './domains-dialog.component';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { CommonModule } from '@angular/common';\nimport { DomainStatusAndNameComponent } from './domain-status-and-name/domain-status-and-name.component';\nimport { DomainStatusIconModule } from '../domain-status-icon/domain-status-icon.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DomainInfoDialogModule } from '../domain-info-dialog/domain-info-dialog.module';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\n\n@NgModule({\n declarations: [DomainStatusAndNameComponent, DomainsDialogComponent],\n imports: [\n CommonModule,\n GalaxyPipesModule,\n GalaxyEmptyStateModule,\n GalaxyLoadingSpinnerModule,\n MatIconModule,\n DomainStatusIconModule,\n DomainInfoDialogModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n MatListModule,\n MatButtonModule,\n ],\n})\nexport class DomainsDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SenderInfoCardComponent } from './sender-info-card.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EmailUsernameInputModule } from '../../../email-username-input/email-username-input.module';\nimport { SendersService } from '@vendasta/email';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { SenderInfoFormComponent } from './sender-info-form/sender-info-form.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { DomainsDialogModule } from '../domains-dialog/domains-dialog.module';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { EmailForwardingInfoComponent } from './sender-info-form/email-forwarding-info/email-forwarding-info.component';\n\n@NgModule({\n declarations: [SenderInfoCardComponent, SenderInfoFormComponent],\n imports: [\n CommonModule,\n MatExpansionModule,\n MatCardModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyWrapModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n GalaxyInputModule,\n MatIconModule,\n EmailUsernameInputModule,\n GalaxyPipesModule,\n GalaxyLoadingSpinnerModule,\n GalaxyEmptyStateModule,\n MatButtonModule,\n GalaxyTooltipModule,\n GalaxyButtonLoadingIndicatorModule,\n DomainsDialogModule,\n EmailUII18nModule,\n TranslateModule,\n GalaxyAlertModule,\n EmailForwardingInfoComponent,\n ],\n exports: [SenderInfoCardComponent],\n providers: [SendersService],\n})\nexport class SenderInfoCardModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainAuthorizationComponent } from './domain-authorization.component';\nimport { DomainCacheService } from './domain-cache.service';\n\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { DomainsModule } from './domains/domains.module';\nimport { SenderInfoCardModule } from './sender-info-card/sender-info-card.module';\nimport { EmailUII18nModule } from '../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainAuthorizationComponent],\n imports: [\n CommonModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyPipesModule,\n GalaxyLoadingSpinnerModule,\n DomainsModule,\n SenderInfoCardModule,\n EmailUII18nModule,\n TranslateModule,\n ],\n providers: [DomainCacheService],\n exports: [DomainAuthorizationComponent],\n})\nexport class DomainAuthorizationModule {}\n","import { Component, Injectable, Input } from '@angular/core';\nimport { SavedState, UNSAVED_DATA_HANDLER_TOKEN, UnsavedDataHandler } from '@galaxy/email-ui/domain-authorization';\nimport { FormPayload } from '@galaxy/email-ui/sender-chooser';\nimport { SenderType } from '@vendasta/email';\nimport { ComponentCanDeactivate } from '../../../../core/pending-changes.guard';\n\n@Injectable()\nclass UnsavedChanges implements UnsavedDataHandler {\n private hasUnsavedChanges = false;\n\n canDeactivate(): boolean {\n return !this.hasUnsavedChanges;\n }\n\n notifyStateChanged(newState: SavedState): void {\n switch (newState) {\n case SavedState.SAFE_TO_NAVIGATE_AWAY:\n this.hasUnsavedChanges = false;\n return;\n case SavedState.HAS_UNSAVED_CHANGES:\n this.hasUnsavedChanges = true;\n return;\n default:\n throw new Error(`Unexpected SavedState: ${newState}`);\n }\n }\n}\n\n@Component({\n selector: 'app-domain-records',\n templateUrl: './domain-records.component.html',\n styleUrls: ['./domain-records.component.scss'],\n providers: [UnsavedChanges, { provide: UNSAVED_DATA_HANDLER_TOKEN, useExisting: UnsavedChanges }],\n standalone: false,\n})\nexport class DomainRecordsComponent extends ComponentCanDeactivate {\n _selectorSelection: FormPayload;\n\n @Input()\n set selection(v: { senderType: SenderType; senderId: string }) {\n this._selectorSelection = v;\n }\n\n constructor(private readonly unsavedChanges: UnsavedChanges) {\n super();\n }\n\n canDeactivate(): boolean {\n return this.unsavedChanges.canDeactivate();\n }\n}\n","\n \n\n\n\n \n \n search\n \n Choose a sender ID above\n

The domain records for that sender will load here

\n
\n
\n","import { Component, inject, Input, OnChanges } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButton } from '@angular/material/button';\nimport { BlockService, SenderType } from '@vendasta/email';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\ninterface Block {\n blockType: string;\n id: string;\n message: string;\n conditions: string;\n}\n\nconst blockType = 'Sender';\n\n@Component({\n selector: 'app-sender-status',\n templateUrl: './sender-status.component.html',\n styleUrls: ['./sender-status.component.scss'],\n imports: [\n CommonModule,\n MatCardModule,\n MatTabsModule,\n MatButton,\n AsyncPipe,\n MatInput,\n MatFormFieldModule,\n FormsModule,\n ],\n})\nexport class SenderStatusComponent implements OnChanges {\n confirmationModal = inject(OpenConfirmationModalService);\n blockService = inject(BlockService);\n snack = inject(SnackbarService);\n\n @Input() senderId: string;\n @Input() senderType: SenderType;\n\n block$: Observable;\n inputtedBlockMessage = '';\n\n ngOnChanges() {\n this.block$ = this.blockService.getBlock(blockType, this.formatSenderID(this.senderType, this.senderId)).pipe(\n catchError((_) => {\n this.inputtedBlockMessage = '';\n return of(null);\n }),\n );\n }\n\n formatSenderID(typ: SenderType, id: string): string {\n return `SENDER_TYPE:${this.valueFromSenderType(typ)},SENDER_ID:${id}`;\n }\n\n valueFromSenderType(senderType: SenderType): string {\n switch (senderType) {\n case SenderType.SENDER_TYPE_BUSINESS:\n return 'business';\n case SenderType.SENDER_TYPE_PARTNER:\n return 'partner';\n default:\n return '';\n }\n }\n\n blockSender() {\n this.confirmationModal\n .openModal({\n title: 'Are you sure you want to block this sender?',\n message: 'This sender will not be able to send any emails through our platform.',\n type: 'warn',\n })\n .pipe(\n switchMap((userDidAction) => {\n if (userDidAction === true) {\n return this.blockService.createBlock(\n blockType,\n this.inputtedBlockMessage,\n `{\"sender_id\": \"${this.senderId}\",\"sender_type\": ${this.senderType}}`,\n );\n }\n return of(EMPTY);\n }),\n )\n .subscribe((r) => {\n if (r != EMPTY) {\n this.snack.openSuccessSnack('Sender blocked successfully.');\n }\n });\n }\n\n unblockSender() {\n this.confirmationModal\n .openModal({\n title: 'Are you sure you want to unblock this sender?',\n message: 'This sender will be able to send emails through our platform.',\n type: 'confirm',\n })\n .pipe(\n switchMap((userDidAction) => {\n if (userDidAction === true) {\n return this.blockService.deleteBlock(blockType, this.formatSenderID(this.senderType, this.senderId));\n }\n return of(EMPTY);\n }),\n )\n .subscribe((r) => {\n if (r != EMPTY) {\n this.snack.openSuccessSnack('Sender unblocked successfully.');\n }\n });\n }\n}\n","
\n \n \n
\n This Sender is currently blocked.\n
Blocked message:  {{ block.message }}
\n
\n\n \n \n \n
\n\n \n
\n This sender is not currently blocked.\n
\n Would you like to block this sender?\n \n \n \n
\n
\n \n \n \n
\n
\n
\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { SenderType } from '@vendasta/email';\nimport { distinctUntilChanged, filter, map, shareReplay } from 'rxjs/operators';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { SubscriptionList } from '@vendasta/rx-utils';\n\nexport interface FormPayload {\n senderType: SenderType;\n senderId: string;\n}\n\n@Component({\n selector: 'email-sender-chooser',\n templateUrl: './sender-chooser.component.html',\n styleUrls: ['./sender-chooser.component.scss'],\n standalone: false,\n})\nexport class SenderChooserComponent implements OnInit, OnDestroy {\n @Input()\n set initialSelection(v: FormPayload) {\n if (!v) {\n return;\n }\n this.initialSelection$$.next(v);\n }\n\n private initialSelection$$ = new BehaviorSubject({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n senderId: '',\n });\n\n @Output()\n public readonly selection = new EventEmitter();\n\n private readonly subs = SubscriptionList.new();\n\n readonly partnerSenderType = SenderType.SENDER_TYPE_PARTNER;\n readonly businessSenderType = SenderType.SENDER_TYPE_BUSINESS;\n\n readonly searchForm = new UntypedFormGroup({\n senderType: new UntypedFormControl(SenderType.SENDER_TYPE_PARTNER, [Validators.required]),\n senderId: new UntypedFormControl('', [Validators.required]),\n });\n\n private readonly valueChanges$ = merge(\n this.initialSelection$$,\n this.searchForm.valueChanges.pipe(distinctUntilChanged(), shareReplay(1)),\n );\n\n readonly idLabel$ = this.valueChanges$.pipe(\n filter((v) => !!v),\n map((v: FormPayload) => {\n if (v.senderType === SenderType.SENDER_TYPE_PARTNER) {\n return 'Partner ID'; // Not translating to preserve integrity with data model\n }\n if (v.senderType === SenderType.SENDER_TYPE_BUSINESS) {\n return 'Business ID'; // Not translating to preserve integrity with data model\n }\n return 'Sender ID'; // Not translating to preserve integrity with data model\n }),\n );\n\n ngOnDestroy(): void {\n this.subs.destroy();\n }\n\n ngOnInit(): void {\n this.subs.add(this.initialSelection$$, (f: FormPayload) => {\n this.searchForm.setValue(f);\n });\n this.subs.add(this.valueChanges$, (f: FormPayload) => {\n this.selection.emit(f);\n });\n }\n}\n","
\n \n \n \n {{ 'SENDER_CHOOSER.SENDER.PLACEHOLDER' | translate }}\n \n \n \n Partner\n Business\n \n \n \n\n \n \n {{ idLabel$ | async }}\n \n \n \n
\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ComponentCanDeactivate } from '../../../core/pending-changes.guard';\nimport { DomainRecordsComponent } from './domain-records/domain-records.component';\nimport { FormPayload } from '@galaxy/email-ui/sender-chooser';\nimport { Location } from '@angular/common';\n\n@Component({\n templateUrl: './email-senders.component.html',\n styleUrls: ['./email-senders.component.scss'],\n standalone: false,\n})\nexport class EmailSendersComponent extends ComponentCanDeactivate implements OnInit {\n inputSelection: FormPayload;\n selectorSelection: FormPayload;\n\n @ViewChild(DomainRecordsComponent) domainRecords: DomainRecordsComponent;\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private readonly location: Location,\n private readonly cd: ChangeDetectorRef,\n ) {\n super();\n }\n\n handleSenderSelection(event: FormPayload): void {\n if (!event) {\n return;\n }\n this.selectorSelection = event;\n this.cd.detectChanges();\n const tree = this.router.createUrlTree([`email`, `senders`, event.senderType, event.senderId]);\n this.location.go(tree.toString());\n }\n\n canDeactivate(): boolean {\n if (this.domainRecords) {\n return this.domainRecords.canDeactivate();\n }\n return true;\n }\n\n ngOnInit(): void {\n const senderTypeFromURL = parseInt(this.activatedRoute.snapshot.params['senderType'], 10);\n const senderIdFromURL = this.activatedRoute.snapshot.params['senderId'];\n if (!!senderTypeFromURL && !!senderIdFromURL) {\n this.inputSelection = { senderType: senderTypeFromURL, senderId: senderIdFromURL };\n }\n }\n}\n","\n \n Users\n \n \n Here you can find tools for working with senders from the email microservice\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { EmailComponent } from './email.component';\nimport { EmailAdminComponent } from './admin/email-admin.component';\nimport { SendgridAdminsComponent } from './sendgrid-admins/sendgrid-admins/sendgrid-admins.component';\nimport { SendGridIndexComponent } from './send-grid-index/send-grid-index.component';\nimport { SendGridReputationComponent } from './send-grid-reputation/send-grid-reputation.component';\nimport { EmailUsersComponent } from './email-users/email-users.component';\nimport { EmailSendersComponent } from './email-senders/email-senders.component';\nimport { PendingChangesGuard } from '../../core/pending-changes.guard';\n\nconst routes: Routes = [\n {\n path: '',\n component: EmailComponent,\n },\n {\n path: 'message/:emailId',\n component: EmailComponent,\n },\n {\n path: 'admin',\n component: EmailAdminComponent,\n },\n {\n path: 'sendgrid',\n component: SendGridIndexComponent,\n },\n {\n path: 'sendgrid/admins',\n component: SendgridAdminsComponent,\n },\n {\n path: 'sendgrid/reputation',\n component: SendGridReputationComponent,\n },\n {\n path: 'users',\n component: EmailUsersComponent,\n },\n {\n path: 'senders',\n component: EmailSendersComponent,\n canDeactivate: [PendingChangesGuard],\n },\n {\n path: 'senders/:senderType',\n component: EmailSendersComponent,\n canDeactivate: [PendingChangesGuard],\n },\n {\n path: 'senders/:senderType/:senderId',\n component: EmailSendersComponent,\n canDeactivate: [PendingChangesGuard],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ResubscribeComponent } from './resubscribe.component';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatCheckboxModule,\n MatProgressSpinnerModule,\n GalaxyAlertModule,\n GalaxyPopoverModule,\n GalaxyInputModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n MatSelectModule,\n MatCardModule,\n ],\n declarations: [ResubscribeComponent],\n exports: [ResubscribeComponent],\n})\nexport class ResubscribeModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { UnbounceComponent } from './unbounce.component';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n GalaxyInputModule,\n MatCardModule,\n MatProgressSpinnerModule,\n FormsModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n MatSelectModule,\n MatButtonModule,\n GalaxyAlertModule,\n GalaxyButtonLoadingIndicatorModule,\n ],\n declarations: [UnbounceComponent],\n exports: [UnbounceComponent],\n})\nexport class UnbounceModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTableModule } from '@angular/material/table';\nimport { AdminService } from '@vendasta/email';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { AsyncUiModule, VaMaterialTableModule } from '@vendasta/uikit';\nimport { ResubscribeModule } from '../send-grid-index/resubscribe/resubscribe.module';\nimport { SendGridIndexComponent } from '../send-grid-index/send-grid-index.component';\nimport { UnbounceModule } from '../send-grid-index/unbounce/unbounce.module';\nimport { SendGridReputationComponent } from '../send-grid-reputation/send-grid-reputation.component';\nimport { SendgridAdminsTableComponent } from './sendgrid-admins/sendgrid-admins-table/sendgrid-admins-table.component';\nimport { SendgridAdminsComponent } from './sendgrid-admins/sendgrid-admins.component';\n\n@NgModule({\n declarations: [\n SendgridAdminsComponent,\n SendgridAdminsTableComponent,\n SendGridReputationComponent,\n SendGridIndexComponent,\n ],\n imports: [\n CommonModule,\n GalaxyPageModule,\n MatTableModule,\n VaMaterialTableModule,\n GalaxyAlertModule,\n AsyncUiModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n MatButtonModule,\n MatCardModule,\n MatProgressBarModule,\n GalaxyInputModule,\n GalaxyFormFieldModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n GalaxyPopoverModule,\n MatProgressSpinnerModule,\n ResubscribeModule,\n UnbounceModule,\n MatDividerModule,\n ],\n providers: [AdminService],\n})\nexport class SendgridAdminsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PreferencesComponent } from './preferences.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { AsyncUiModule } from '@vendasta/uikit';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { TruncatePipe } from './truncate.pipe';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [TruncatePipe, PreferencesComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n MatButtonModule,\n AsyncUiModule,\n GalaxyWrapModule,\n GalaxyTooltipModule,\n ],\n exports: [PreferencesComponent],\n})\nexport class PreferencesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { PreferencesModule } from '@galaxy/email-ui/preferences';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { AsyncUiModule, EmptyStateModule } from '@vendasta/uikit';\nimport { DataProvidersModule } from '../../../data-providers';\nimport { EmailUsersComponent } from './email-users.component';\nimport { RecipientStatusComponent } from './recipient-status/recipient-status.component';\n\n@NgModule({\n declarations: [EmailUsersComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n MatOptionModule,\n GalaxyWrapModule,\n MatCardModule,\n MatInputModule,\n GalaxyPageModule,\n GalaxyAlertModule,\n PreferencesModule,\n AsyncUiModule,\n EmptyStateModule,\n GalaxyEmptyStateModule,\n DataProvidersModule,\n RecipientStatusComponent,\n ],\n exports: [EmailUsersComponent],\n providers: [],\n})\nexport class EmailUsersModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SenderChooserComponent } from './sender-chooser.component';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EmailUII18nModule } from '../../src/lib/i18n/email-ui-i18n.module';\n\n@NgModule({\n declarations: [SenderChooserComponent],\n exports: [SenderChooserComponent],\n imports: [\n CommonModule,\n TranslateModule,\n EmailUII18nModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatSelectModule,\n MatInputModule,\n ],\n})\nexport class SenderChooserModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainRecordsComponent } from './domain-records.component';\nimport { SenderChooserModule } from '@galaxy/email-ui/sender-chooser';\nimport { DomainAuthorizationModule } from '@galaxy/email-ui/domain-authorization';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [DomainRecordsComponent],\n imports: [CommonModule, SenderChooserModule, DomainAuthorizationModule, GalaxyEmptyStateModule, MatIconModule],\n exports: [DomainRecordsComponent],\n})\nexport class DomainRecordsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmailSendersComponent } from './email-senders.component';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DomainRecordsModule } from './domain-records/domain-records.module';\nimport { PendingChangesGuard } from '../../../core/pending-changes.guard';\nimport { SenderStatusComponent } from './sender-status.component';\nimport { SenderChooserModule } from '@galaxy/email-ui/sender-chooser';\n\n@NgModule({\n declarations: [EmailSendersComponent],\n imports: [\n CommonModule,\n GalaxyPageModule,\n GalaxyAlertModule,\n MatCardModule,\n MatTabsModule,\n DomainRecordsModule,\n SenderStatusComponent,\n SenderChooserModule,\n ],\n providers: [PendingChangesGuard],\n})\nexport class EmailSendersModule {}\n","import { NgModule } from '@angular/core';\nimport { AsyncUiModule, FilterService, VaFilterModule } from '@vendasta/uikit';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { EmailModule as EmailSDKModule } from '@vendasta/email';\n\nimport { EmailPreviewDialogComponent } from './preview/email-preview.component';\nimport { EmailAdminComponent } from './admin/email-admin.component';\nimport { EmailComponent } from './email.component';\nimport { RoutingModule } from './email.routing';\nimport { SendgridAdminsModule } from './sendgrid-admins/sendgrid-admins.module';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { CopyToClipboardDirective } from '../../shared/directives/copy-to-clipboard.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EmailUsersModule } from './email-users/email-users.module';\nimport { EmailSendersModule } from './email-senders/email-senders.module';\nimport { GalaxySnackbarModule } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\n\n@NgModule({\n declarations: [EmailComponent, EmailAdminComponent, EmailPreviewDialogComponent, CopyToClipboardDirective],\n imports: [\n RoutingModule,\n MatTableModule,\n MatCardModule,\n MatPaginatorModule,\n MatButtonModule,\n MatIconModule,\n MatDialogModule,\n VaFilterModule,\n MatListModule,\n MatTabsModule,\n MatButtonToggleModule,\n MatMenuModule,\n MatTooltipModule,\n MatSlideToggleModule,\n GalaxyPageModule,\n GalaxyAlertModule,\n GalaxyEmptyStateModule,\n MatProgressSpinnerModule,\n GalaxySnackbarModule,\n SendgridAdminsModule,\n AsyncUiModule,\n CommonModule,\n MatIconModule,\n TranslateModule,\n EmailSDKModule,\n EmailUsersModule,\n EmailSendersModule,\n GalaxyPipesModule,\n ],\n providers: [FilterService],\n exports: [],\n})\nexport class EmailModule {}\n"],"mappings":"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","names":["DateRange","_DateRange","proto","m","kwargs","toReturn","EmailDomain","_EmailDomain","proto","m","Record","kwargs","toReturn","_Record","EventType","NotificationType","ContentContentType","BounceSenderType","ChangeEmailDomainStatus","EmailQueueStatus","Namespace","RecipientStatusEnum","SenderType","enumStringToValue$5","enumRef","value","EmailEvent","_EmailEvent","enumStringToValue$4","Attribute","_Attribute","Bucket","_Bucket","Content","_Content","proto","m","enumStringToValue$4","ContentContentType","kwargs","toReturn","EmailMessage","_EmailMessage","Participant","Attribute","Header","GCSAttachment","URLAttachment","ServiceProviderInfo","Links","EmailMessageV2","_EmailMessageV2","UserParticipant","EmailWithCustomDomainMessage","_EmailWithCustomDomainMessage","_GCSAttachment","_Header","_Links","_Participant","_ServiceProviderInfo","_URLAttachment","_UserParticipant","enumStringToValue","enumRef","value","AdminSetEmailQueuesStatusRequest","_AdminSetEmailQueuesStatusRequest","proto","m","EmailQueueStatus","kwargs","toReturn","BatchSearchRecipientStatusRequest","_BatchSearchRecipientStatusRequest","Sender","BatchSearchRecipientStatusResponse","_BatchSearchRecipientStatusResponse","Status","BounceSender","_BounceSender","BounceSenderType","Category","_Category","proto","m","enumStringToValue","Namespace","kwargs","toReturn","ChangeEmailDomainRequest","_ChangeEmailDomainRequest","SenderType","ChangeEmailDomainResponse","_ChangeEmailDomainResponse","ChangeEmailDomainStatus","CreateBlockRequest","_CreateBlockRequest","CreateBlockResponse","_CreateBlockResponse","CreateEmailDomainRequest","_CreateEmailDomainRequest","CreateEmailDomainWithSendAsRequest","_CreateEmailDomainWithSendAsRequest","CreatePendingDomainRequest","_CreatePendingDomainRequest","proto","m","Sender","kwargs","toReturn","DeleteBlockRequest","_DeleteBlockRequest","proto","m","kwargs","toReturn","DeleteEmailDomainRequest","_DeleteEmailDomainRequest","DeletePendingEmailDomainRequest","_DeletePendingEmailDomainRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","EmailEventBucket","_EmailEventBucket","proto","m","EmailEventBucketEventRollup","kwargs","toReturn","EmailEventFilter","_EmailEventFilter","v","enumStringToValue","NotificationType","EventType","DateRange","_EmailEventBucketEventRollup","GetAttributeEventStatsResponseEventStats","_GetAttributeEventStatsResponseEventStats","ExportAttributeEventClickStatsRequest","_ExportAttributeEventClickStatsRequest","Sender","Attribute","GetAttributeEventLinkStatsRequest","_GetAttributeEventLinkStatsRequest","GetAttributeEventLinkStatsResponse","_GetAttributeEventLinkStatsResponse","LinkStats","GetAttributeEventStatsRequest","_GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","_GetAttributeEventStatsResponse","GetBlockRequest","_GetBlockRequest","GetBlockResponse","_GetBlockResponse","GetBouncedRecipientRequest","_GetBouncedRecipientRequest","BounceSender","GetBouncedRecipientResponse","_GetBouncedRecipientResponse","GetCategoriesRequest","_GetCategoriesRequest","SenderType","GetCategoriesResponse","_GetCategoriesResponse","Category","GetCategoryPreferencesRequest","_GetCategoryPreferencesRequest","GetCategoryPreferencesResponse","_GetCategoryPreferencesResponse","GetDefaultDomainRequest","_GetDefaultDomainRequest","GetDefaultDomainResponse","_GetDefaultDomainResponse","GetEmailDomainRequest","_GetEmailDomainRequest","GetEmailDomainResponse","_GetEmailDomainResponse","EmailDomain","GetEmailQueuesStatusRequest","_GetEmailQueuesStatusRequest","GetEmailQueuesStatusResponse","_GetEmailQueuesStatusResponse","GetMessageRequest","_GetMessageRequest","proto","m","kwargs","toReturn","GetMessageResponse","_GetMessageResponse","EmailMessage","GetMultiEmailRollupsRequest","_GetMultiEmailRollupsRequest","Bucket","EmailEventFilter","GetMultiEmailRollupsResponse","_GetMultiEmailRollupsResponse","EmailEventBucket","GetMultiMessageRequest","_GetMultiMessageRequest","GetMultiMessageResponse","_GetMultiMessageResponse","GetPendingEmailDomainRequest","_GetPendingEmailDomainRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","GetPendingEmailDomainResponse","_GetPendingEmailDomainResponse","GetPendingEmailDomainTargetCNameRecords","_GetPendingEmailDomainTargetCNameRecords","GetSenderInfoRequest","_GetSenderInfoRequest","proto","m","Sender","kwargs","toReturn","GetSenderInfoResponse","_GetSenderInfoResponse","GetUnsubscribeLinkRequest","_GetUnsubscribeLinkRequest","GetUnsubscribeLinkResponse","_GetUnsubscribeLinkResponse","enumStringToValue","SenderType","GetUnsubscribedRecipientRequest","_GetUnsubscribedRecipientRequest","GetUnsubscribedRecipientResponse","_GetUnsubscribedRecipientResponse","InitiateEmailDomainRectifyRequest","_InitiateEmailDomainRectifyRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","InitiateEmailDomainRollbackRequest","_InitiateEmailDomainRollbackRequest","LinkClickStats","_LinkClickStats","LinkClickStatsRecipient","LinkStats","_LinkStats","ListAllDomainsRequest","_ListAllDomainsRequest","Sender","ListAllDomainsResponse","_ListAllDomainsResponse","SenderDomain","ListEmailEventsRequestListEmailEventsFilters","_ListEmailEventsRequestListEmailEventsFilters","ListEmailEventsRequest","_ListEmailEventsRequest","PagedRequestOptions","ListEmailEventsResponse","_ListEmailEventsResponse","EmailEvent","PagedResponseMetadata","ListEmailsRequestListEmailsFilters","_ListEmailsRequestListEmailsFilters","DateRange","ListEmailsRequest","_ListEmailsRequest","ListEmailsResponse","_ListEmailsResponse","EmailMessage","ListEventsForAttributesRequest","_ListEventsForAttributesRequest","Attribute","v","EventType","ListEventsForAttributesResponse","_ListEventsForAttributesResponse","ListLinkClickActivityForAttributeRequest","_ListLinkClickActivityForAttributeRequest","ListLinkClickActivityForAttributeRequestPagedRequestOptions","ListLinkClickActivityForAttributeResponse","_ListLinkClickActivityForAttributeResponse","ListSendGridSubUserReputationsRequest","_ListSendGridSubUserReputationsRequest","ListSendGridSubUserReputationsResponse","_ListSendGridSubUserReputationsResponse","SendGridSubUserReputation","ListSendGridTeammatesRequest","_ListSendGridTeammatesRequest","ListSendGridTeammatesResponse","_ListSendGridTeammatesResponse","SendGridTeammate","_PagedRequestOptions","_ListLinkClickActivityForAttributeRequestPagedRequestOptions","_PagedResponseMetadata","QuarantineSenderRequest","_QuarantineSenderRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","LinkClickStatsRecipient","_LinkClickStatsRecipient","RedirectEmailRequest","_RedirectEmailRequest","EmailMessage","Sender","RedirectEmailResponse","_RedirectEmailResponse","ResetRecipientStatusRequest","_ResetRecipientStatusRequest","ResubscribeRecipientFromUnsubscribeLinkRequest","_ResubscribeRecipientFromUnsubscribeLinkRequest","ResubscribeRecipientRequest","_ResubscribeRecipientRequest","SaveCategoryPreferencesRequest","_SaveCategoryPreferencesRequest","SendGridSubUserReputation","_SendGridSubUserReputation","proto","m","kwargs","toReturn","SendGridTeammate","_SendGridTeammate","SendRequest","_SendRequest","EmailMessage","SendResponse","_SendResponse","SendV2Request","_SendV2Request","EmailMessageV2","SendV2Response","_SendV2Response","SendWithCustomDomainRequest","_SendWithCustomDomainRequest","proto","m","EmailWithCustomDomainMessage","kwargs","toReturn","SendWithCustomDomainResponse","_SendWithCustomDomainResponse","Sender","_Sender","enumStringToValue","SenderType","SenderDomain","_SenderDomain","GetPendingEmailDomainTargetCNameRecords","SetEmailQueuesStatusRequest","_SetEmailQueuesStatusRequest","Status","_Status","RecipientStatusEnum","UnbounceRecipientRequest","_UnbounceRecipientRequest","BounceSender","VerifyDefaultDomainMismatch","_VerifyDefaultDomainMismatch","proto","m","kwargs","toReturn","VerifyDefaultDomainRequest","_VerifyDefaultDomainRequest","Sender","VerifyDefaultDomainResponse","_VerifyDefaultDomainResponse","VerifyEmailDomainDMARCRequest","_VerifyEmailDomainDMARCRequest","VerifyEmailDomainDMARCResponse","_VerifyEmailDomainDMARCResponse","VerifyEmailDomainRequest","_VerifyEmailDomainRequest","VerifyPendingEmailDomainMismatch","_VerifyPendingEmailDomainMismatch","VerifyPendingEmailDomainRequest","_VerifyPendingEmailDomainRequest","enumStringToValue","SenderType","VerifyPendingEmailDomainResponse","_VerifyPendingEmailDomainResponse","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","EmailApiService","inject","HttpClient","HttpHeaders","r","request","SendRequest","map","resp","SendResponse","SendWithCustomDomainRequest","SendWithCustomDomainResponse","SendV2Request","SendV2Response","ListEmailsRequest","ListEmailsResponse","GetEmailQueuesStatusRequest","GetEmailQueuesStatusResponse","SetEmailQueuesStatusRequest","__spreadProps","__spreadValues","GetEmailDomainRequest","GetEmailDomainResponse","CreateEmailDomainRequest","CreateEmailDomainWithSendAsRequest","DeleteEmailDomainRequest","ChangeEmailDomainRequest","ChangeEmailDomainResponse","GetPendingEmailDomainRequest","GetPendingEmailDomainResponse","DeletePendingEmailDomainRequest","AdminApiService","AdminSetEmailQueuesStatusRequest","RedirectEmailRequest","RedirectEmailResponse","ResubscribeRecipientRequest","GetUnsubscribedRecipientRequest","GetUnsubscribedRecipientResponse","InitiateEmailDomainRollbackRequest","InitiateEmailDomainRectifyRequest","GetBouncedRecipientRequest","GetBouncedRecipientResponse","UnbounceRecipientRequest","AdminService","api","running","statusEnum","EmailQueueStatus","req","partnerID","recipientEmail","sender","emailID","newRecipientEmailAddress","authCheckOnly","includeContent","includeAttributes","ɵɵinject","EmailService","admin","partnerId","applicationId","businessId","domain","userId","sendAsEmail","sendAsName","searchTerm","filters","pagingOptions","EmailEventApiService","ListEmailEventsRequest","ListEmailEventsResponse","GetMultiEmailRollupsRequest","GetMultiEmailRollupsResponse","ListEventsForAttributesRequest","ListEventsForAttributesResponse","GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","GetAttributeEventLinkStatsRequest","GetAttributeEventLinkStatsResponse","ListLinkClickActivityForAttributeRequest","ListLinkClickActivityForAttributeResponse","ExportAttributeEventClickStatsRequest","BlocksApiService","CreateBlockRequest","CreateBlockResponse","GetBlockRequest","GetBlockResponse","DeleteBlockRequest","DomainApiService","inject","HostService","HttpClient","HttpHeaders","r","request","CreatePendingDomainRequest","map","resp","GetPendingEmailDomainResponse","ListAllDomainsRequest","ListAllDomainsResponse","GetDefaultDomainRequest","GetDefaultDomainResponse","VerifyDefaultDomainRequest","VerifyDefaultDomainResponse","VerifyEmailDomainDMARCRequest","VerifyEmailDomainDMARCResponse","__ngFactoryType__","ɵɵdefineInjectable","EmailClientApiService","ResubscribeRecipientFromUnsubscribeLinkRequest","__spreadProps","__spreadValues","MessageApiService","inject","HostService","HttpClient","HttpHeaders","r","request","GetMessageRequest","map","resp","GetMessageResponse","GetMultiMessageRequest","GetMultiMessageResponse","__ngFactoryType__","ɵɵdefineInjectable","PreferencesApiService","inject","HostService","HttpClient","HttpHeaders","r","request","GetCategoriesRequest","map","resp","GetCategoriesResponse","GetCategoryPreferencesRequest","GetCategoryPreferencesResponse","SaveCategoryPreferencesRequest","__spreadProps","__spreadValues","GetUnsubscribeLinkRequest","GetUnsubscribeLinkResponse","__ngFactoryType__","ɵɵdefineInjectable","RecipientStatusApiService","ResetRecipientStatusRequest","BatchSearchRecipientStatusRequest","BatchSearchRecipientStatusResponse","SendGridApiService","inject","HostService","HttpClient","HttpHeaders","r","request","ListSendGridTeammatesRequest","map","resp","ListSendGridTeammatesResponse","ListSendGridSubUserReputationsRequest","ListSendGridSubUserReputationsResponse","__ngFactoryType__","ɵɵdefineInjectable","SendersApiService","GetSenderInfoRequest","GetSenderInfoResponse","QuarantineSenderRequest","__spreadProps","__spreadValues","EmailEventService","api","buckets","dateRange","partnerId","marketId","notificationTypes","eventTypes","HttpErrorResponse","req","GetMultiEmailRollupsRequest","EmailEventFilter","map","resp","emailId","pagingOptions","businessId","filters","ListEmailEventsRequestListEmailEventsFilters","sender","attribute","cursor","pageSize","normalizedURL","normalizedUrl","userId","__ngFactoryType__","ɵɵinject","EmailEventApiService","ɵɵdefineInjectable","SendgridSubUsersService","SendGridApiService","SendgridTeammatesService","DomainService","domain","appId","observable","mapTo","shareReplay","partnerID","newDomain","newEmailUsername","replyTo","newSendFromName","SenderType","senderType","senderID","ChangeEmailDomainRequest","v","senderId","Sender","GetPendingEmailDomainRequest","VerifyPendingEmailDomainRequest","VerifyDefaultDomainRequest","ListAllDomainsRequest","GetDefaultDomainRequest","VerifyEmailDomainDMARCRequest","EmailApiService","DomainApiService","MessageService","delegate","emailID","MessageApiService","PreferencesService","GetCategoriesRequest","recipientUserID","optedInEmailCategoryIDs","SaveCategoryPreferencesRequest","recipientID","GetCategoryPreferencesRequest","linkID","PreferencesApiService","EmailClientService","unsubscribeLinkId","ResubscribeRecipientFromUnsubscribeLinkRequest","EmailClientApiService","RecipientStatusService","recipientEmails","RecipientStatusApiService","EmailModule","ɵɵdefineNgModule","ɵɵdefineInjector","EmailService","AdminService","SendersService","senders","SendersApiService","BlockService","api","blockType","message","conditions","req","CreateBlockRequest","id","GetBlockRequest","DeleteBlockRequest","__ngFactoryType__","ɵɵinject","BlocksApiService","ɵɵdefineInjectable","devPyMappings","devGoMappings","BulkGetSpamScoreRequest","_BulkGetSpamScoreRequest","proto","m","Message","kwargs","toReturn","BulkGetSpamScoreResponse","_BulkGetSpamScoreResponse","SpamScore","GetSpamScoreRequest","_GetSpamScoreRequest","GetSpamScoreResponse","_GetSpamScoreResponse","_Message","_SpamScore","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","SpamDetectionApiService","http","hostService","HttpHeaders","r","request","map","resp","ɵɵinject","HttpClient","ScoringService","api","subject","content","fromAddress","toAddress","timestamp","messageId","req","CopyToClipboardDirective","constructor","snackbarService","translateService","copyToClipboardOnClick","listener","e","clipboardData","setData","fieldText","preventDefault","document","addEventListener","execCommand","removeEventListener","errorSnack","instant","successSnack","ɵɵdirectiveInject","SnackbarService","TranslateService","selectors","hostBindings","rf","ctx","ɵɵlistener","_CopyToClipboardDirective","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","to_r2","name","emailAddress","ctx_r2","email","replyTo","ɵɵelementContainerStart","ɵɵproperty","vStoreLocation","ɵɵsanitizeUrl","codeLocation","e_r4","urlClicked","reason","ɵɵtemplate","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_2_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_3_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_4_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_5_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_6_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_7_Template","EmailPreviewDialogComponent_ng_container_58_li_2_mat_icon_8_Template","EmailPreviewDialogComponent_ng_container_58_li_2_p_13_Template","EmailPreviewDialogComponent_ng_container_58_li_2_h4_17_Template","eventTypeToString","eventType","ɵɵpipeBind1","ɵɵtextInterpolate","ɵɵpipeBind2","eventTime","EmailPreviewDialogComponent_ng_container_58_li_2_Template","events_r5","inf_r6","key","value","ɵɵpropertyInterpolate","EmailPreviewDialogComponent_mat_tab_66_ng_template_1_div_4_div_1_Template","spamScore","isSpam","spamFailed_r7","EmailPreviewDialogComponent_mat_tab_66_ng_template_1_div_4_Template","is_loading$","loading_r8","score","EmailPreviewDialogComponent_mat_tab_66_ng_template_1_Template","EmailPreviewDialogComponent_mat_tab_66_div_8_Template","EmailPreviewDialogComponent_mat_tab_66_div_18_Template","toString","ɵɵelement","EmailPreviewDialogComponent","htmlContent","msg","content","htmlContents","filter","c","type","ContentContentType","TEXT_HTML","length","sensitive","constructor","router","location","_eventService","dialogRef","_email","environment","spamBamService","route","info","_events$$","BehaviorSubject","selectedTab","baseScore","is_loading$$","asObservable","showSpamScore","push","emailId","attributes","serviceProviderInfo","subUserId","initializeSharableURL","extractCodeLocation","env","getEnvironmentString","tree","createUrlTree","go","shareableURL","window","protocol","host","afterClosed","pipe","take","subscribe","mainTree","changePreviewWidth","newWidth","preview","document","getElementById","style","width","sourceCode","display","toggleSourceCode","activeTab","currentTab","storedTab","sessionStorage","getItem","setItem","index","ngOnInit","po","PagedRequestOptions","cursor","pageSize","events$","listEvents","res","next","events","snapshot","queryParamMap","get","undefined","getSpamScore","subject","map","join","from","to","timestamp","e","EventType","find","a","ghStart","devGoMappings","originUserId","startsWith","locWithLineNo","split","filePath","lineNumber","regex","devPyMappings","match","restOfText","repoUrl","ɵɵdirectiveInject","Router","Location","EmailEventService","MatDialogRef","MAT_DIALOG_DATA","EnvironmentService","ScoringService","ActivatedRoute","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","EmailPreviewDialogComponent_div_44_Template","EmailPreviewDialogComponent_div_52_Template","EmailPreviewDialogComponent_ng_container_54_Template","EmailPreviewDialogComponent_ng_container_55_Template","$event","EmailPreviewDialogComponent_ng_container_58_Template","EmailPreviewDialogComponent_ng_template_60_Template","ɵɵtemplateRefExtractor","EmailPreviewDialogComponent_li_65_Template","EmailPreviewDialogComponent_mat_tab_66_Template","EmailPreviewDialogComponent_ng_template_67_Template","EmailPreviewDialogComponent_ng_template_69_Template","ɵɵsanitizeHtml","noEvents_r9","_EmailPreviewDialogComponent","EmailAdminComponent","setStatus","a","emailService","setEmailQueuesStatus","checked","subscribe","constructor","dialog","envService","queueStatus$","getEmailQueuesStatus","pipe","startWith","ngOnInit","getEnvironment","Environment","PROD","env","ɵɵdirectiveInject","EmailService","MatDialog","EnvironmentService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","ɵɵpropertyInterpolate1","ɵɵsanitizeUrl","_EmailAdminComponent","EmailDataSource","DataSource","constructor","_api","snackBarService","_emails$$","ReplaySubject","_searchTerm$$","BehaviorSubject","_pageOptions$$","index","size","_toFilter$$","_fromFilter$$","_startFilter$$","_endFilter$$","_espFilter$$","_partnerIDFilter$$","_applicationIDFilter$$","_businessIDFilter$$","emails$","asObservable","searchTerm$","totalResults","pageSize$","pipe","map","p","_getFilter","to","from","start","end","espId","partnerId","applicationId","businessId","ListEmailsRequestListEmailsFilters","dateRange","pageOptionsChanged","event","next","pageIndex","pageSize","_getCursor","offset","window","btoa","toString","_getPagingRequestOptions","pagingOptions","PagedRequestOptions","cursor","updateSearchTerm","term","updateFilter","field","id","value","connect","combineLatest","switchMap","searchTerm","pageOptions","partnerID","applicationID","businessID","listEmails","catchError","openErrorSnack","of","subscribe","r","emails","pagingMetadata","disconnect","import_moment","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","row_r1","timestamp","ɵɵtextInterpolate","ctx_r2","getPartnerID","row_r2","ɵɵtemplate","EmailComponent_td_7_span_1_Template","EmailComponent_td_7_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵproperty","elseBlock_r4","ɵɵpropertyInterpolate","t_r5","name","emailAddress","EmailComponent_td_10_div_1_Template","row_r6","to","row_r7","from","row_r8","subject","ɵɵlistener","row_r10","ɵɵrestoreView","_r9","$implicit","ɵɵnextContext","ɵɵresetView","openEmailDialog","EmailComponent","item","attributes","partnerId","find","e","key","partner_id","value","email","filters","filterService","dialog","open","EmailPreviewDialogComponent","data","panelClass","afterClosed","subscribe","setFilters","searchTerm","s","searchTerm$$","next","getValue","constructor","activatedRoute","messageService","alerts","emailService","snackBarService","router","subscriptions","displayedColumns","BehaviorSubject","searchAfterField","DatePickerFilterField","Filters","FilterSection","title","type","fields","TextFilterField","RadioFilterField","options","id","ngOnInit","emailDataSource","EmailDataSource","push","fieldValueChanges","forEach","f","updateFilter","changeValue","moment","subtract","emailIdFromURL","snapshot","params","loadMessageAndOpenInDialog","catch","err","console","error","errorSnack","queryParams","pipe","take","p","search_term","updateSearchTerm","navigate","relativeTo","queryParamsHandling","ngOnDestroy","unsubscribe","emailID","__async","firstValueFrom","getMessage","then","result","ɵɵdirectiveInject","ActivatedRoute","MessageService","SnackbarService","EmailService","MatDialog","Router","FilterService","selectors","standalone","decls","vars","consts","template","rf","ctx","$event","ɵɵelementContainerStart","EmailComponent_th_3_Template","EmailComponent_td_4_Template","EmailComponent_th_6_Template","EmailComponent_td_7_Template","EmailComponent_th_9_Template","EmailComponent_td_10_Template","EmailComponent_th_12_Template","EmailComponent_td_13_Template","EmailComponent_th_15_Template","EmailComponent_td_16_Template","EmailComponent_tr_17_Template","EmailComponent_tr_18_Template","pageOptionsChanged","ɵɵpipeBind1","pageSize$","ɵɵpureFunction0","_c0","totalResults","_EmailComponent","GLOBAL_INPUT","KeyedDataProvider","constructor","config","stateMap","ObservableWorkStateMap","state","updateStateMap","getCachedOrFetch$","param","loadDataFn","getWorkFn","key","convert","inputsToStringKey","scheduler","testing","undefined","startWorkIfNeededForSubscriber","requestRefresh","work","startWork","externalSource","fetchFn","pipe","switchMap","v","apiDataToAppData","store","i","data","uploadFn","shareReplay","applyFinishedWork","storeStateSuccess$","isSuccess$","isLoading$","isFailed$","map","SendgridAdminsSource","KeyedDataProvider","constructor","svc","cfg","externalSource","fetchFn","i","list","uploadFn","throwError","convert","apiDataToAppData","emailResponseToUIObject","inputsToStringKey","ɵɵinject","SendgridTeammatesService","factory","ɵfac","providedIn","_SendgridAdminsSource","a","sga","teammates","map","v","name","fullName","email","role","slackName","slackUserName","slackUrl","of","SendgridReputationsSource","KeyedDataProvider","constructor","svc","cfg","externalSource","fetchFn","i","listSubUserReputations","uploadFn","throwError","convert","apiDataToAppData","responseToUIObject","inputsToStringKey","ɵɵinject","SendgridSubUsersService","factory","ɵfac","providedIn","_SendgridReputationsSource","computeColor","reputationPercent","r","of","reputations","map","v","username","color","EmailPreferencesSource","KeyedDataProvider","constructor","svc","cfg","externalSource","fetchFn","i","getCategoryPreferences","senderType","senderId","userId","uploadFn","preference","saveCategoryPreferencesForUser","optedInEmailCategoryIds","pipe","mapTo","convert","apiDataToAppData","of","inputsToStringKey","toString","join","ɵɵinject","PreferencesService","factory","ɵfac","_EmailPreferencesSource","EmailCategoriesSource","KeyedDataProvider","constructor","svc","cfg","externalSource","fetchFn","i","getCategories","senderType","senderId","uploadFn","throwError","convert","apiDataToAppData","r","of","categories","inputsToStringKey","ɵɵinject","PreferencesService","factory","ɵfac","_EmailCategoriesSource","DataSourcesModule","EmailPreferencesSource","EmailCategoriesSource","imports","CommonModule","_DataSourcesModule","DataProvidersModule","SendgridAdminsSource","SendgridReputationsSource","EmailCategoriesSource","EmailPreferencesSource","imports","CommonModule","DataSourcesModule","_DataProvidersModule","nicerLoading","loading$","pipe","switchMap","isSending","of","delay","buildReloadVis$","id","data","showWhenDataLoads","state","getWorkResults$","mapTo","hideOnError","isSuccess$","filter","v","merge","startWith","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","element_r1","name","element_r2","email","element_r3","role","ɵɵpropertyInterpolate","element_r4","slackUrl","ɵɵsanitizeUrl","ɵɵtextInterpolate1","slackName","ɵɵelement","SendgridAdminsTableComponent","constructor","displayedColumns","selectors","inputs","dataSource","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementContainerStart","ɵɵtemplate","SendgridAdminsTableComponent_th_3_Template","SendgridAdminsTableComponent_td_4_Template","SendgridAdminsTableComponent_th_6_Template","SendgridAdminsTableComponent_td_7_Template","SendgridAdminsTableComponent_th_9_Template","SendgridAdminsTableComponent_td_10_Template","SendgridAdminsTableComponent_th_12_Template","SendgridAdminsTableComponent_td_13_Template","SendgridAdminsTableComponent_tr_14_Template","SendgridAdminsTableComponent_tr_15_Template","ɵɵproperty","_SendgridAdminsTableComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","data_r2","ɵɵelementContainer","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","ɵɵresetView","handleTryAgain","SendgridAdminsComponent","constructor","data","loading$","nicerLoading","state","isLoading$","GLOBAL_INPUT","failed$","isSuccess$","pipe","map","v","data$","getCachedOrFetch$","reloadVis$","buildReloadVis$","ngOnInit","requestRefresh","ɵɵdirectiveInject","SendgridAdminsSource","selectors","standalone","decls","vars","consts","template","rf","ctx","i0","_r1","ɵɵtemplate","SendgridAdminsComponent_ng_container_14_Template","SendgridAdminsComponent_ng_container_15_Template","SendgridAdminsComponent_ng_template_16_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","errorTemplate_r5","_SendgridAdminsComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r1","ɵɵnextContext","ɵɵresetView","openHelpNote","ɵɵelementEnd","ɵɵproperty","helpPopover_r5","ɵɵelementContainerStart","ɵɵtext","ɵɵelement","ɵɵtemplate","ResubscribeComponent_ng_container_0_ng_container_16_glxy_input_3_Template","_r3","closeHelpNote","searchForUnsubscribed","ResubscribeComponent_ng_container_0_ng_container_16_ng_container_11_Template","ɵɵadvance","searchForm","senderType","isHelpPopoverOpen","ɵɵpureFunction1","_c0","pos","ɵɵpipeBind1","loading$$","loadingSpinner_r6","ɵɵtwoWayListener","$event","_r1","i0","ɵɵtwoWayBindingSet","ResubscribeComponent_ng_container_0_ng_container_16_Template","ɵɵtwoWayProperty","ɵɵtextInterpolate1","result_r8","partnerID","ResubscribeComponent_ng_template_2_div_0_div_8_Template","_r7","goBack","ngIf","resubscribeRecipient","ResubscribeComponent_ng_template_2_div_0_ng_container_16_Template","email","get","value","ResubscribeComponent_ng_template_2_div_0_Template","searchResult$$","ResubscribeComponent","constructor","formBuilder","adminService","alertService","BehaviorSubject","PopoverPositions","group","Validators","required","partnerId","consent","next","setValue","recipientEmail","get$","Error","getUnsubscribedRecipientForBusiness","getUnsubscribedRecipientForPartner","getUnsubscribedRecipientForProduct","subscribe","response","error","status","errorSnack","console","message","recipient","resub$","resubscribeRecipientForBusiness","resubscribeRecipientForPartner","resubscribeRecipientForProduct","successSnack","ɵɵdirectiveInject","UntypedFormBuilder","AdminService","SnackbarService","selectors","standalone","decls","vars","consts","template","rf","ctx","ResubscribeComponent_ng_container_0_Template","ResubscribeComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","ResubscribeComponent_ng_template_4_Template","resultComponent_r9","_ResubscribeComponent","ɵɵelement","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","senderType","ɵɵresetView","ɵɵlistener","typeChanged","ɵɵtemplate","UnbounceComponent_ng_container_3_glxy_input_14_Template","UnbounceComponent_ng_container_3_glxy_input_15_Template","searchForBounced","ɵɵadvance","ɵɵtwoWayProperty","ɵɵproperty","searchForm","ɵɵpipeBind1","loading$$","ɵɵtextInterpolate1","result_r4","senderId","UnbounceComponent_ng_template_5_ng_container_0_div_5_Template","_r3","goBack","ngIf","unbounceRecipient","email","UnbounceComponent_ng_template_5_ng_container_0_Template","searchResult$$","UnbounceComponent","constructor","formBuilder","alertService","adminService","BehaviorSubject","group","Validators","required","get","value","recipientEmail","openErrorSnack","length","next","sender","getSender","getBouncedRecipient","subscribe","response","error","status","console","message","recipient","openSuccessSnack","setValue","typ","senderID","type","BounceSenderType","UNBOUNCE_SENDER_TYPE_PARTNER","UNBOUNCE_SENDER_TYPE_BUSINESS","UNBOUNCE_SENDER_TYPE_YESWARE","BounceSender","id","ɵɵdirectiveInject","UntypedFormBuilder","SnackbarService","AdminService","selectors","standalone","decls","vars","consts","template","rf","ctx","UnbounceComponent_ng_container_3_Template","UnbounceComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","resultComponent_r5","_UnbounceComponent","SendGridIndexComponent","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","_SendGridIndexComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","rep_r1","reputationPercent","color","ɵɵtextInterpolate","username","ɵɵtemplate","SendGridReputationComponent_ng_container_14_ng_container_1_Template","reputations_r2","ɵɵelementContainer","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","ɵɵresetView","handleTryAgain","sort","v","v1","v2","SendGridReputationComponent","constructor","data","loading$","nicerLoading","state","isLoading$","GLOBAL_INPUT","failed$","isSuccess$","pipe","map","data$","getCachedOrFetch$","ngOnInit","requestRefresh","ɵɵdirectiveInject","SendgridReputationsSource","selectors","standalone","decls","vars","consts","template","rf","ctx","SendGridReputationComponent_ng_container_14_Template","SendGridReputationComponent_ng_container_15_Template","SendGridReputationComponent_ng_template_16_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","errorTemplate_r5","_SendGridReputationComponent","TruncatePipe","transform","value","limit","completeWords","ellipsis","substr","lastIndexOf","length","pure","standalone","_TruncatePipe","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r2","data","i_r2","categoryName","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵlistener","ɵɵrestoreView","_r1","index","ɵɵnextContext","ɵɵresetView","toggleSelection","ɵɵtemplate","PreferencesComponent_ng_container_1_ng_container_3_Template","PreferencesComponent_ng_container_1_ng_template_4_Template","ɵɵtemplateRefExtractor","p_r4","value","allowEditing","length","short_r5","PreferencesComponent","constructor","formBuilder","categories","preferenceIDs","selectedCategoryIDs","EventEmitter","formGroup","UntypedFormGroup","preferences","UntypedFormArray","prefFields","controls","ngOnInit","p","control","push","handleInputChanges","ngOnChanges","combined","applyPreferencesToCategories","clear","forEach","isOptedIn","emit","getOptedInCategoryIDs","filter","c","map","categoryId","i","optedIn","ɵɵdirectiveInject","UntypedFormBuilder","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","PreferencesComponent_ng_container_1_Template","_PreferencesComponent","recipientPreferenceIDs","senderCategories","repo","cats","id","cat","unknownPrefs","name","concat","v","import_dayjs","import_utc","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","search","ɵɵtext","ɵɵelementEnd","results_r3","ngIf","downloadCSV","ɵɵadvance","ɵɵproperty","tmp_2_0","ɵɵpipeBind1","statuses$","length","tmp_4_0","ɵɵtextInterpolate1","s_r4","infractionCount","ɵɵpipeBind2","bounceExpiry","ɵɵtemplate","RecipientStatusComponent_ng_container_20_div_6_span_2_Template","RecipientStatusComponent_ng_container_20_div_6_span_3_Template","ɵɵtextInterpolate3","sender","email","status","ɵɵelementContainerStart","RecipientStatusComponent_ng_container_20_div_6_Template","dayjs","extend","utc","PAGE_SIZE","RecipientStatusComponent","constructor","recipientStatusService","BehaviorSubject","ngOnInit","senderType","resultsCSVString$","pipe","startWith","map","statuses","join","emailList","emails","split","line","trim","reduce","acc","val","concat","filter","senderTypeProto","SenderType","SENDER_TYPE_PARTNER","SENDER_TYPE_BUSINESS","SENDER_TYPE_INVALID","resultStreams","i","emailListSlice","slice","push","searchRecipientStatus","senderID","take","response","recipientStatuses","recipientStatus","statusString","RecipientStatusEnum","RECIPIENT_STATUS_INVALID","RECIPIENT_STATUS_HARD","RECIPIENT_STATUS_SOFT","RECIPIENT_STATUS_UNKNOWN","RECIPIENT_STATUS_RESET","RECIPIENT_STATUS_NOT_BLOCKED","id","recipientEmail","combineLatest","subscribe","results","next","content","currentDate","a","document","createElement","mimeType","href","URL","createObjectURL","Blob","type","setAttribute","format","body","appendChild","click","removeChild","ɵɵdirectiveInject","RecipientStatusService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","RecipientStatusComponent_mat_card_actions_17_Template","ɵɵelement","RecipientStatusComponent_ng_container_20_Template","ɵɵtwoWayProperty","tmp_7_0","CommonModule","NgForOf","NgIf","AsyncPipe","DatePipe","EmailModule","GalaxyFormFieldModule","FormFieldComponent","FormsModule","DefaultValueAccessor","NgControlStatus","RequiredValidator","NgModel","MatSelectModule","MatSelect","MatOption","MatOptionModule","MatDividerModule","MatDivider","ClipboardModule","CdkCopyToClipboard","MatButtonModule","MatButton","MatCardModule","MatCard","MatCardActions","MatCardContent","MatCardHeader","MatCardTitle","styles","_RecipientStatusComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","data_r1","preferenceIds","categories","ɵɵtemplate","EmailUsersComponent_ng_template_36_ng_container_5_Template","ɵɵpipeBind1","ctx_r1","loading$","failed$","data$","loadStyle$","EmailUsersComponent","forSelection","fn","selection$","pipe","switchMap","constructor","preferences","partnerSenderType","SenderType","SENDER_TYPE_PARTNER","searchForm","UntypedFormGroup","senderType","UntypedFormControl","Validators","required","senderId","userId","valueChanges","filter","v","SENDER_TYPE_INVALID","map","debounceTime","shareReplay","bufferSize","refCount","preferences$","getCachedOrFetch$","prefsLoading$","isLoading$","prefsFailed$","isFailed$","categories$","catsLoading$","catsFailed$","combineLatest","l1","l2","startWith","f1","f2","prefs","cats","emailPreferenceInitialized","optedInEmailCategoryIds","noPreferences$","p","showEmptyState$","loading","data","failed","length","ɵɵdirectiveInject","EmailPreferencesSource","EmailCategoriesSource","selectors","standalone","decls","vars","consts","template","rf","ctx","EmailUsersComponent_ng_container_33_Template","EmailUsersComponent_ng_template_36_Template","ɵɵtemplateRefExtractor","preferences_r3","_EmailUsersComponent","displayPendingChangesDialog","confirm","ComponentCanDeactivate","unloadNotification","$event","canDeactivate","returnValue","pendingChangesDialog","hostBindings","rf","ctx","ɵɵlistener","ɵɵresolveWindow","_ComponentCanDeactivate","PendingChangesGuard","component","factory","ɵfac","_PendingChangesGuard","DomainCacheService","constructor","sdk","responses","Map","listAllDomains","senderType","senderID","key","buildCacheKey","cachedResponse","get","b","BehaviorSubject","set","pipe","shareReplay","subscribe","r","next","asObservable","skipWhile","a","refreshDomains","take","createPendingDomain","domain","tap","deletePendingDomain","toString","ɵɵinject","DomainService","factory","ɵfac","_DomainCacheService","SETUP_HELP_INFO_URL_INJECTION_TOKEN","InjectionToken","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","DomainStatusIconComponent","selectors","inputs","result","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DomainStatusIconComponent_ng_container_1_Template","DomainStatusIconComponent_ng_container_2_Template","ɵɵproperty","allRecordsMatch","ɵɵadvance","_DomainStatusIconComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelementContainer","ɵɵproperty","highlight_r2","ɵɵpureFunction1","_c1","row_r1","ɵɵelementContainerStart","ɵɵtemplate","DomainRecordsTableComponent_ng_container_0_ng_container_13_td_5_Template","td_r4","_c0","recordType","recordHost","recordValue","ctx_r2","showMismatches","DomainRecordsTableComponent_ng_container_0_td_12_Template","DomainRecordsTableComponent_ng_container_0_ng_container_13_Template","expectedRecords","ɵɵclassMap","row_r5","DomainRecordsTableComponent_ng_container_2_ng_container_1_tr_18_Template","DomainRecordsTableComponent_ng_container_2_ng_container_1_Template","ɵɵlistener","cellText_r7","ɵɵrestoreView","_r6","cellText","ɵɵnextContext","ɵɵresetView","copyValue","row_r8","recordValueMatchPrefix","ɵɵtextInterpolate1","recordValueMismatchPortion","recordValueMatchSuffix","DomainRecordsTableComponent_ng_template_6_ng_container_0_Template","DomainRecordsTableComponent_ng_template_6_ng_container_1_Template","ToTableRowClassPipe","transform","value","row","length","pure","standalone","_ToTableRowClassPipe","splitOnce","s","on","first","rest","split","join","DomainRecordsTableComponent","mismatchedRecords","v","undefined","map","er","mismatch","find","vr","url","__spreadProps","__spreadValues","matchedPrefix","findMismatchedPortion","matchedSuffix","cd","markForCheck","withPrefixRemoved","actualValue","constructor","element","clipboard","snackbar","mobileMaxWidth","isContainerLarge$$","ReplaySubject","isContainerLarge$","asObservable","pipe","distinctUntilChanged","tap","detectChanges","ResizeObserver","entries","entry","target","nativeElement","isLarge","contentRect","width","next","observe","copy","openSuccessSnack","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","Clipboard","SnackbarService","selectors","inputs","decls","vars","consts","template","rf","ctx","DomainRecordsTableComponent_ng_container_0_Template","DomainRecordsTableComponent_ng_container_2_Template","DomainRecordsTableComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","DomainRecordsTableComponent_ng_template_6_Template","styles","_DomainRecordsTableComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","result_r1","value","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","runValidation","ɵɵelementContainer","errorNotice_r4","ɵɵtemplate","DomainInfoCardComponent_ng_container_0_ng_container_14_ng_container_1_Template","allRecordsMatch","ɵɵtextInterpolate","ɵɵpureFunction1","_c1","targetA","mismatches","targetCNAME","_r5","useAsDefaultRequested","emit","domain","sendFromDomain","status","_r6","_r7","deleteRequested","deleteInProgress","DomainInfoCardComponent_ng_container_0_ng_container_4_Template","DomainInfoCardComponent_ng_container_0_ng_container_5_Template","DomainInfoCardComponent_ng_container_0_ng_container_6_Template","DomainInfoCardComponent_ng_container_0_ng_container_9_Template","DomainInfoCardComponent_ng_container_0_ng_container_12_Template","DomainInfoCardComponent_ng_container_0_ng_container_13_Template","DomainInfoCardComponent_ng_container_0_ng_container_14_Template","DomainInfoCardComponent_ng_container_0_ng_container_25_Template","DomainInfoCardComponent_ng_container_0_ng_container_26_Template","DomainInfoCardComponent_ng_container_0_ng_container_37_Template","DomainInfoCardComponent_ng_container_0_ng_container_38_Template","DomainInfoCardComponent_ng_container_0_ng_container_39_Template","expanded","isPrimary","targetDmarc","targetSpf","targetDKIMs","_c2","showShadow","showDeleteButton","_r8","openHelpArticle","DomainInfoCardComponent","senderId","v","inputs$$","next","_senderId","_domain","recordType","recordHost","recordValue","targets","dmarcSubdomain","dmarcValue","mailSubdomain","mailValue","dkim1Subdomain","dkim1Value","dkim2Subdomain","dkim2Value","constructor","sdk","alerts","helpArticleURL","ReplaySubject","domainResult$","EMPTY","EventEmitter","dialog","inject","MatDialog","ngOnInit","initialLoad","runPrimaryDomainValidation","runPendingDomainValidation","request$","verifyDefaultDomain","senderType","senderID","runGenericValidation","verifyPendingDomain","pipe","tap","openSuccessSnack","openErrorSnack","catchError","err","throwError","map","delay","window","open","helpModal","ɵɵdirectiveInject","DomainService","SnackbarService","SETUP_HELP_INFO_URL_INJECTION_TOKEN","selectors","viewQuery","rf","ctx","DomainInfoCardComponent_ng_container_0_Template","DomainInfoCardComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","DomainInfoCardComponent_ng_template_5_Template","_DomainInfoCardComponent","LEGACY_DEFAULT_DOMAIN","DEFAULT_DOMAIN","repairDefaultDomain","domain","toLowerCase","DefaultDomainService","constructor","domainService","defaultDomainCache","Map","getDefaultDomain$","senderType","has","of","get","getDefaultDomain","pipe","tap","response","set","map","isDefaultDomain$","defaultDomain","ɵɵinject","DomainService","factory","ɵfac","providedIn","_DefaultDomainService","CanAddDomainPipe","constructor","defaultDomainService","transform","value","senderType","getDefaultDomain$","pipe","map","defaultDomain","filter","d","sendFromDomain","isPrimary","some","isPending","of","ɵɵdirectiveInject","DefaultDomainService","pure","standalone","_CanAddDomainPipe","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","useAsDefaultRequested","emit","deleteRequested","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","senderId","domain_r3","deleteInProgress","_r4","handleAuthorizeClick","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtemplate","DomainsComponent_ng_container_0_ng_container_1_Template","DomainsComponent_ng_container_0_div_2_Template","domains","ɵɵpipeBind2","senderType","_r5","ɵɵtextInterpolate1","DomainsComponent_ng_template_1_glxy_empty_state_0_Template","showEmpty","DomainsComponent","constructor","EventEmitter","authorizeRequested","__async","scrollToDomain","domain","domainInfoCards","filter","c","sendFromDomain","forEach","card","expanded","window","setTimeout","document","getElementById","scrollIntoView","behavior","selectors","viewQuery","rf","ctx","DomainInfoCardComponent","DomainsComponent_ng_container_0_Template","DomainsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","length","empty_r6","_DomainsComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","NewDomainDialogComponent","constructor","data","dialog","domainService","alerts","senderForm","UntypedFormGroup","senderDomain","UntypedFormControl","Validators","required","pattern","authorizedDomain$","of","authorize","domain","get","value","createPendingDomain","senderID","senderType","pipe","shareReplay","refCount","bufferSize","catchError","openErrorSnack","tap","close","newPendingDomain","undefined","submitForm","markAsDirty","valid","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DomainCacheService","SnackbarService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","NewDomainDialogComponent_ng_container_0_Template","ɵɵlistener","ɵɵelement","ɵɵproperty","ɵɵtextInterpolate1","status","_NewDomainDialogComponent","UNSAVED_DATA_HANDLER_TOKEN","SavedState","EmailValidators","_EmailValidators","emailUsername","Validators","pattern","emailDomain","fullEmailAddress","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","result_r2","ɵɵnextContext","ngIf","ctx_r2","ɵɵresetView","handleClick","value","ɵɵtextInterpolate1","domain","sendFromDomain","ɵɵtemplate","DomainStatusAndNameComponent_ng_container_0_ng_container_2_Template","DomainStatusAndNameComponent_ng_container_0_ng_container_3_Template","DomainStatusAndNameComponent_ng_container_0_ng_container_4_Template","status","DomainStatusAndNameComponent","data","sender","isPrimary","verifyResult$","sdk","verifyDefaultDomain","type","id","verifyPendingDomain","constructor","dialog","EMPTY","domainChangeRequested","EventEmitter","invalidDomainChangeRequested","clicked","result","emit","allRecordsMatch","ɵɵdirectiveInject","DomainService","MatDialog","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","DomainStatusAndNameComponent_ng_container_0_Template","ɵɵpipeBind1","_DomainStatusAndNameComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","self","close","$event","handleDomainChangeRequested","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c0","data_r3","domain","sender","ɵɵtemplate","DomainsDialogComponent_ng_container_4_ng_container_1_ng_container_2_Template","data_r4","value","ɵɵelement","ɵɵelementContainer","DomainsDialogComponent_ng_container_4_ng_container_3_ng_container_1_Template","error_r5","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","error","DomainsDialogComponent_ng_container_4_ng_container_1_Template","DomainsDialogComponent_ng_container_4_ng_container_2_Template","DomainsDialogComponent_ng_container_4_ng_container_3_Template","DomainsDialogComponent_ng_container_4_ng_template_4_Template","ɵɵtemplateRefExtractor","status","_r6","handleNewDomainRequested","ɵɵtextInterpolate1","DomainsDialogComponent","constructor","domainService","allDomains$","EMPTY","refreshDomains","id","type","SenderType","SENDER_TYPE_INVALID","listAllDomains","pipe","map","v","convertListResponseToButtonData","isValidDomain","newDomain","choiceType","ɵɵdirectiveInject","DomainCacheService","MAT_DIALOG_DATA","MatDialogRef","selectors","standalone","decls","vars","consts","template","rf","ctx","DomainsDialogComponent_ng_container_4_Template","DomainsDialogComponent_div_8_Template","tmp_2_0","length","_DomainsDialogComponent","response","domains","SelectedDomain","decideCanUse","domain","senderInfo","useDefault","isPlatformAuthorized","constructor","canUse","SelectedDomainFactoryService","constructor","defaultDomainService","fromSenderInfo","senderType","senderInfo","useOwnDomain","computeSelectedDomain","pipe","switchMap","domainToUse","isDefaultDomain$","map","isDefault","SelectedDomain","default","getDefaultDomain$","defaultDomain","combineLatest","domain","take","isOwnDomainDefault","ɵɵinject","DefaultDomainService","factory","ɵfac","providedIn","_SelectedDomainFactoryService","EmailForwardingInfoComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵsanitizeHtml","ɵɵtextInterpolate1","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","TranslateModule","TranslatePipe","styles","_EmailForwardingInfoComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","changeDomain","ɵɵproperty","EmailUsernameInputComponent","constructor","dialog","defaultDomainService","authorizeRequested","EventEmitter","domainChangeRequested","invalidDomainChangeRequested","ngOnInit","isDefaultDomain$","domain$","pipe","switchMap","domain","sender","type","__async","open","DomainsDialogComponent","data","result","firstValueFrom","afterClosed","choiceType","emit","newDomain","ɵɵdirectiveInject","MatDialog","DefaultDomainService","selectors","inputs","form","formControlNameString","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","EmailUsernameInputComponent_glxy_error_8_Template","EmailUsernameInputComponent_mat_icon_9_Template","ɵɵtextInterpolate","get","invalid","touched","_EmailUsernameInputComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","closeAlert","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainer","_r4","openChooseDomainDialog","ɵɵtextInterpolate","_r5","handleAuthorizeDomain","ɵɵtemplate","SenderInfoFormComponent_ng_template_48_button_5_Template","SenderInfoFormComponent_ng_template_48_button_7_Template","tmp_4_0","domains$","length","tmp_5_0","_r6","$event","domainChangeRequested","emit","invalidDomainChangeRequested","selectedDomainName$","sender","senderInfoForm","SenderInfoFormComponent_ng_template_50_div_0_Template","tmp_3_0","selectedDomain$","canUse","cta_r7","ɵɵelement","_r8","copyClicked","openLearnMoreModal","ɵɵpropertyInterpolate","forwardingAddress","isCopied","SenderInfoFormComponent","constructor","cdr","unsavedHandler","dialog","domainService","defaultDomainService","selectedDomainFactory","domains","alerts","clipboard","EventEmitter","authorizeRequested","UntypedFormGroup","senderName","UntypedFormControl","Validators","required","useOwn","senderEmailUsername","EmailValidators","emailUsername","replyTo","fullEmailAddress","emailApiService","inject","EmailApiService","saveSenderInfoRequest$","of","saveDomainRequest$","showAlertBanner","subs","SubscriptionList","new","notifier","add","get","valueChanges","value","handleUseOwnChanged","ngOnChanges","updateFormValuesIfUnset","senderInfo","domainOverride","setValue","domain","isPlatformAuthorized","fromSenderInfo","type","pipe","map","d","ngOnInit","showForwardingAddress","SenderType","SENDER_TYPE_BUSINESS","listAllDomains","id","r","getForwardingAddress","useOwnDomain","detectChanges","info","unsubscribe","isDefaultForSenderType","preferredEmailDisplayName","preferredEmailUsername","preferredReplyToEmailAddress","subscribe","notifyStateChanged","SavedState","HAS_UNSAVED_CHANGES","handleSaveRequested","isDomainSave","saveRequest","switchMap","saveData","changeForSender","repairDefaultDomain","tap","openSuccessSnack","catchError","err","openErrorSnack","throwError","SAFE_TO_NAVIGATE_AWAY","shareReplay","bufferSize","refCount","getSaveData","combineLatest","getDefaultDomain$","defaultDomain","selectedDomain","preferredDisplayName","__async","open","DomainsDialogComponent","data","maxHeight","result","firstValueFrom","afterClosed","choiceType","newDomain","copy","setTimeout","getOwnerEmail","subjectParticipant","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","internalParticipantId","emailRes","forwardingEmail","EmailForwardingInfoComponent","width","ɵɵdirectiveInject","ChangeDetectorRef","UNSAVED_DATA_HANDLER_TOKEN","MatDialog","DomainCacheService","DefaultDomainService","SelectedDomainFactoryService","DomainService","SnackbarService","Clipboard","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","SenderInfoFormComponent_glxy_alert_6_Template","SenderInfoFormComponent_glxy_error_13_Template","SenderInfoFormComponent_glxy_error_19_Template","i0","_r1","SenderInfoFormComponent_ng_container_43_Template","SenderInfoFormComponent_ng_container_47_Template","SenderInfoFormComponent_ng_template_48_Template","ɵɵtemplateRefExtractor","SenderInfoFormComponent_ng_template_50_Template","SenderInfoFormComponent_Conditional_52_Template","invalid","touched","status","usernameinput_r9","ɵɵconditional","_SenderInfoFormComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","setDomain","invalidDomainChangeRequested","emit","handleAuthorizeRequested","ɵɵproperty","sender","senderInfo_r3","value","domainOverride","ɵɵelement","_r4","reInitializeObservables","ɵɵtextInterpolate1","ɵɵtemplate","SenderInfoCardComponent_ng_container_1_ng_container_2_Template","SenderInfoCardComponent_ng_container_1_ng_container_3_Template","SenderInfoCardComponent_ng_container_1_ng_container_4_Template","status","SenderInfoCardComponent","constructor","api","domains","alerts","unsavedHandler","authorizeRequested","EventEmitter","ngOnChanges","senderInfo$","getEmailSendingInfo","type","id","pipe","tap","v","auditDomain","map","res","Object","keys","length","isDefaultForSenderType","catchError","e","of","openErrorSnack","EMPTY","notifyStateChanged","SavedState","SAFE_TO_NAVIGATE_AWAY","domain","openSuccessSnack","HAS_UNSAVED_CHANGES","ɵɵdirectiveInject","SendersService","DomainService","SnackbarService","UNSAVED_DATA_HANDLER_TOKEN","selectors","viewQuery","rf","ctx","SenderInfoFormComponent","SenderInfoCardComponent_ng_container_0_Template","SenderInfoCardComponent_ng_container_1_Template","_SenderInfoCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","handleDeleteRequested","handleAuthorizationRequested","infocard_r4","ɵɵreference","setDomain","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c1","senderType","senderID","domains_r5","value","deleting","_r6","ɵɵpureFunction0","_c2","ɵɵelement","ɵɵelementContainer","ɵɵtemplate","DomainAuthorizationComponent_ng_container_9_ng_container_4_ng_container_1_Template","error_r7","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","error","DomainAuthorizationComponent_ng_container_9_ng_container_1_Template","DomainAuthorizationComponent_ng_container_9_ng_container_2_Template","DomainAuthorizationComponent_ng_container_9_ng_container_3_Template","DomainAuthorizationComponent_ng_container_9_ng_container_4_Template","DomainAuthorizationComponent_ng_container_9_ng_template_5_Template","ɵɵtemplateRefExtractor","status","DomainAuthorizationComponent","constructor","domainService","dialog","snack","ngAfterViewInit","refreshDomains","ngOnChanges","andScrollToDomain","SenderType","SENDER_TYPE_INVALID","allDomains$","listAllDomains","pipe","skipWhile","v","map","domains","tap","chmln","window","Array","isArray","length","track","setTimeout","scrollToDomain","undefined","__async","data","open","NewDomainDialogComponent","result","firstValueFrom","afterClosed","newPendingDomain","domain","domainsComponent","delete$","deletePendingDomain","then","openSuccessSnack","catch","openErrorSnack","finally","ɵɵdirectiveInject","DomainCacheService","MatDialog","SnackbarService","selectors","viewQuery","rf","ctx","DomainsComponent","i0","_r1","DomainAuthorizationComponent_ng_container_9_Template","_c0","ɵɵtextInterpolate1","_DomainAuthorizationComponent","DomainStatusIconModule","CommonModule","MatIconModule","_DomainStatusIconModule","en_devel_default","EmailUII18nModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_EmailUII18nModule","DomainRecordsTableModule","ToTableRowClassPipe","imports","CommonModule","MatButtonModule","MatIconModule","GalaxyTooltipModule","EmailUII18nModule","TranslateModule","_DomainRecordsTableModule","DomainInfoCardModule","CommonModule","MatExpansionModule","DomainStatusIconModule","DomainRecordsTableModule","GalaxyLoadingSpinnerModule","GalaxyTooltipModule","MatIconModule","GalaxyPipesModule","GalaxyAlertModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","EmailUII18nModule","TranslateModule","MatDialogModule","_DomainInfoCardModule","NewDomainDialogModule","CommonModule","GalaxyWrapModule","FormsModule","MatFormFieldModule","TranslateModule","MatInputModule","ReactiveFormsModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","GalaxyPipesModule","EmailUII18nModule","MatDialogModule","GalaxyFormFieldModule","_NewDomainDialogModule","DomainsModule","CommonModule","GalaxyEmptyStateModule","MatIconModule","MatButtonModule","DomainInfoCardModule","NewDomainDialogModule","EmailUII18nModule","TranslateModule","_DomainsModule","EmailUsernameInputModule","CommonModule","GalaxyFormFieldModule","MatInputModule","ReactiveFormsModule","MatIconModule","GalaxyTooltipModule","TranslateModule","EmailUII18nModule","_EmailUsernameInputModule","DomainInfoDialogModule","CommonModule","DomainInfoCardModule","_DomainInfoDialogModule","DomainsDialogModule","CommonModule","GalaxyPipesModule","GalaxyEmptyStateModule","GalaxyLoadingSpinnerModule","MatIconModule","DomainStatusIconModule","DomainInfoDialogModule","EmailUII18nModule","TranslateModule","MatDialogModule","MatListModule","MatButtonModule","_DomainsDialogModule","SenderInfoCardModule","SendersService","imports","CommonModule","MatExpansionModule","MatCardModule","ReactiveFormsModule","MatInputModule","GalaxyWrapModule","GalaxyFormFieldModule","MatRadioModule","FormsModule","GalaxyInputModule","MatIconModule","EmailUsernameInputModule","GalaxyPipesModule","GalaxyLoadingSpinnerModule","GalaxyEmptyStateModule","MatButtonModule","GalaxyTooltipModule","GalaxyButtonLoadingIndicatorModule","DomainsDialogModule","EmailUII18nModule","TranslateModule","GalaxyAlertModule","EmailForwardingInfoComponent","_SenderInfoCardModule","DomainAuthorizationModule","DomainCacheService","imports","CommonModule","GalaxyEmptyStateModule","MatIconModule","GalaxyPipesModule","GalaxyLoadingSpinnerModule","DomainsModule","SenderInfoCardModule","EmailUII18nModule","TranslateModule","_DomainAuthorizationModule","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","_selectorSelection","senderType","senderId","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","UnsavedChanges","constructor","hasUnsavedChanges","canDeactivate","notifyStateChanged","newState","SavedState","SAFE_TO_NAVIGATE_AWAY","HAS_UNSAVED_CHANGES","Error","factory","ɵfac","_UnsavedChanges","DomainRecordsComponent","ComponentCanDeactivate","selection","v","unsavedChanges","ɵɵdirectiveInject","selectors","inputs","standalone","features","ɵɵProvidersFeature","provide","UNSAVED_DATA_HANDLER_TOKEN","useExisting","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DomainRecordsComponent_ng_container_0_Template","DomainRecordsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","enterSelection_r2","_DomainRecordsComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","unblockSender","ɵɵadvance","ɵɵtextInterpolate","block_r3","message","ɵɵtwoWayListener","$event","_r4","i0","ɵɵtwoWayBindingSet","inputtedBlockMessage","blockSender","ɵɵtwoWayProperty","blockType","SenderStatusComponent","constructor","confirmationModal","inject","OpenConfirmationModalService","blockService","BlockService","snack","SnackbarService","ngOnChanges","block$","getBlock","formatSenderID","senderType","senderId","pipe","catchError","_","of","typ","id","valueFromSenderType","SenderType","SENDER_TYPE_BUSINESS","SENDER_TYPE_PARTNER","openModal","title","type","switchMap","userDidAction","createBlock","EMPTY","subscribe","r","openSuccessSnack","deleteBlock","selectors","inputs","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SenderStatusComponent_ng_container_2_Template","SenderStatusComponent_ng_container_4_Template","ɵɵproperty","ɵɵpipeBind1","CommonModule","NgIf","AsyncPipe","MatCardModule","MatCard","MatCardActions","MatTabsModule","MatButton","MatInput","MatFormFieldModule","MatFormField","FormsModule","DefaultValueAccessor","NgControlStatus","MaxLengthValidator","NgModel","styles","_SenderStatusComponent","SenderChooserComponent","constructor","initialSelection$$","BehaviorSubject","senderType","SenderType","SENDER_TYPE_PARTNER","senderId","selection","EventEmitter","subs","SubscriptionList","new","partnerSenderType","businessSenderType","SENDER_TYPE_BUSINESS","searchForm","UntypedFormGroup","UntypedFormControl","Validators","required","valueChanges$","merge","valueChanges","pipe","distinctUntilChanged","shareReplay","idLabel$","filter","v","map","initialSelection","next","ngOnDestroy","destroy","ngOnInit","add","f","setValue","emit","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtextInterpolate","_SenderChooserComponent","ɵɵelement","ɵɵproperty","ctx_r0","selectorSelection","senderId","senderType","EmailSendersComponent","ComponentCanDeactivate","constructor","activatedRoute","router","location","cd","handleSenderSelection","event","detectChanges","tree","createUrlTree","go","toString","canDeactivate","domainRecords","ngOnInit","senderTypeFromURL","parseInt","snapshot","params","senderIdFromURL","inputSelection","ɵɵdirectiveInject","ActivatedRoute","Router","Location","ChangeDetectorRef","selectors","viewQuery","rf","ctx","DomainRecordsComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","ɵɵtemplate","EmailSendersComponent_ng_template_11_Template","EmailSendersComponent_ng_template_13_Template","ɵɵadvance","_EmailSendersComponent","routes","path","component","EmailComponent","EmailAdminComponent","SendGridIndexComponent","SendgridAdminsComponent","SendGridReputationComponent","EmailUsersComponent","EmailSendersComponent","canDeactivate","PendingChangesGuard","RoutingModule","RouterModule","forChild","_RoutingModule","ResubscribeModule","CommonModule","ReactiveFormsModule","MatButtonModule","MatCheckboxModule","MatProgressSpinnerModule","GalaxyAlertModule","GalaxyPopoverModule","GalaxyInputModule","GalaxyWrapModule","MatFormFieldModule","MatSelectModule","MatCardModule","_ResubscribeModule","UnbounceModule","CommonModule","ReactiveFormsModule","GalaxyInputModule","MatCardModule","MatProgressSpinnerModule","FormsModule","GalaxyWrapModule","MatFormFieldModule","MatSelectModule","MatButtonModule","GalaxyAlertModule","GalaxyButtonLoadingIndicatorModule","_UnbounceModule","SendgridAdminsModule","AdminService","imports","CommonModule","GalaxyPageModule","MatTableModule","VaMaterialTableModule","GalaxyAlertModule","AsyncUiModule","GalaxyEmptyStateModule","MatIconModule","MatButtonModule","MatCardModule","MatProgressBarModule","GalaxyInputModule","GalaxyFormFieldModule","FormsModule","ReactiveFormsModule","MatCheckboxModule","GalaxyPopoverModule","MatProgressSpinnerModule","ResubscribeModule","UnbounceModule","MatDividerModule","_SendgridAdminsModule","PreferencesModule","CommonModule","ReactiveFormsModule","MatCheckboxModule","MatButtonModule","AsyncUiModule","GalaxyWrapModule","GalaxyTooltipModule","_PreferencesModule","EmailUsersModule","CommonModule","ReactiveFormsModule","MatFormFieldModule","MatSelectModule","MatOptionModule","GalaxyWrapModule","MatCardModule","MatInputModule","GalaxyPageModule","GalaxyAlertModule","PreferencesModule","AsyncUiModule","EmptyStateModule","GalaxyEmptyStateModule","DataProvidersModule","RecipientStatusComponent","_EmailUsersModule","SenderChooserModule","CommonModule","TranslateModule","EmailUII18nModule","GalaxyWrapModule","MatFormFieldModule","ReactiveFormsModule","MatSelectModule","MatInputModule","_SenderChooserModule","DomainRecordsModule","CommonModule","SenderChooserModule","DomainAuthorizationModule","GalaxyEmptyStateModule","MatIconModule","_DomainRecordsModule","EmailSendersModule","PendingChangesGuard","imports","CommonModule","GalaxyPageModule","GalaxyAlertModule","MatCardModule","MatTabsModule","DomainRecordsModule","SenderStatusComponent","SenderChooserModule","_EmailSendersModule","EmailModule","FilterService","imports","RoutingModule","MatTableModule","MatCardModule","MatPaginatorModule","MatButtonModule","MatIconModule","MatDialogModule","VaFilterModule","MatListModule","MatTabsModule","MatButtonToggleModule","MatMenuModule","MatTooltipModule","MatSlideToggleModule","GalaxyPageModule","GalaxyAlertModule","GalaxyEmptyStateModule","MatProgressSpinnerModule","GalaxySnackbarModule","SendgridAdminsModule","AsyncUiModule","CommonModule","TranslateModule","EmailSDKModule","EmailUsersModule","EmailSendersModule","GalaxyPipesModule","_EmailModule"],"x_google_ignoreList":[0,2]}