{"version":3,"sources":["node_modules/@vendasta/smsv2/fesm2020/vendasta-smsv2.mjs","libs/sms/src/lib/token.ts","libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.ts","libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.html","libs/sms/src/lib/info-banner/info-banner.component.ts","libs/sms/src/lib/info-banner/info-banner.component.html","libs/sms/src/lib/sms-registration-form/types.ts","libs/sms/src/lib/sms.constants.ts","libs/sms/src/lib/service/sms.service.ts","libs/sms/src/lib/sms-registration-alert/sms-registration-alert.component.ts","libs/sms/src/lib/sms-registration-alert/sms-registration-alert.component.html","libs/sms/src/lib/common/utils.ts","libs/sms/src/lib/sms-registration-banner/sms-registration-banner.component.ts","libs/sms/src/lib/sms-registration-banner/sms-registration-banner.component.html","libs/sms/src/lib/sms-registration-card/sms-registration-card.component.ts","libs/sms/src/lib/sms-registration-card/sms-registration-card.component.html","libs/sms/src/lib/sms-registration-error-banner/sms-registration-error-banner.component.ts","libs/sms/src/lib/sms-registration-error-banner/sms-registration-error-banner.component.html","libs/sms/src/lib/sms-registration-form/pipes/business-category-to-label.pipe.ts","libs/sms/src/lib/sms-registration-form/pipes/region-to-label.pipe.ts","libs/sms/src/lib/sms-registration-form/comfirmation-dialog/confirmation-modal.component.ts","libs/sms/src/lib/sms-registration-form/comfirmation-dialog/confirmation-modal.component.html","libs/sms/src/lib/sms-registration-form/sms-registration-form.component.ts","libs/sms/src/lib/sms-registration-form/sms-registration-form.component.html","libs/sms/src/lib/sms-registration/sms-registration.component.ts","libs/sms/src/lib/sms-registration/sms-registration.component.html","libs/sms/src/lib/assets/i18n/en_devel.json","libs/sms/src/lib/assets/i18n/sms-i18n.module.ts","libs/sms/src/lib/sms.module.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.service.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-dialog/dynamic-component-dialog.component.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-dialog/dynamic-component-dialog.component.html","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.component.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.component.html","libs/templates/src/lib/assets/i18n/en_devel.json","libs/templates/src/lib/assets/i18n/templates-i18n.module.ts","libs/templates/src/lib/dynamic-component-selector/dynamic-component-selector.module.ts","libs/templates/src/index.ts","libs/sms/src/lib/text-message-builder/text-message-builder-form/text-message-builder-form.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder-form/text-message-builder-form.component.html","libs/galaxy/chat/src/chat-bubble/chat-bubble.component.ts","libs/galaxy/chat/src/chat-bubble/chat-bubble.component.html","libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.ts","libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.html","libs/galaxy/chat/src/chat-event/chat-event.component.ts","libs/galaxy/chat/src/chat-event/chat-event.component.html","libs/galaxy/chat/src/chat-container/chat-container.component.ts","libs/galaxy/chat/src/chat-container/chat-container.component.html","libs/galaxy/chat/src/chat-message/chat-message.component.ts","libs/galaxy/chat/src/chat-message/chat-message.component.html","libs/galaxy/chat/src/chat-message-group/chat-message-group.component.ts","libs/galaxy/chat/src/chat-message-group/chat-message-group.component.html","libs/galaxy/chat/src/directives/additional-metadata.ts","libs/galaxy/chat/src/chat.module.ts","libs/galaxy/chat/public_api.ts","libs/galaxy/chat/index.ts","libs/sms/src/lib/text-message-builder/text-message-builder-preview/text-message-builder-preview.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder-preview/text-message-builder-preview.component.html","libs/sms/src/lib/text-message-builder/text-message-builder.component.ts","libs/sms/src/lib/text-message-builder/text-message-builder.component.html","libs/sms/src/index.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ParticipantType = /*#__PURE__*/function (ParticipantType) {\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_UNKNOWN\"] = 0] = \"PARTICIPANT_TYPE_UNKNOWN\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_ACCOUNT_GROUP\"] = 1] = \"PARTICIPANT_TYPE_ACCOUNT_GROUP\";\n ParticipantType[ParticipantType[\"PARTICIPANT_TYPE_CUSTOMER\"] = 2] = \"PARTICIPANT_TYPE_CUSTOMER\";\n return ParticipantType;\n}(ParticipantType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar OwnerType = /*#__PURE__*/function (OwnerType) {\n OwnerType[OwnerType[\"OWNER_TYPE_UNSPECIFIED\"] = 0] = \"OWNER_TYPE_UNSPECIFIED\";\n OwnerType[OwnerType[\"OWNER_TYPE_PARTNER\"] = 1] = \"OWNER_TYPE_PARTNER\";\n OwnerType[OwnerType[\"OWNER_TYPE_ACCOUNT_GROUP\"] = 2] = \"OWNER_TYPE_ACCOUNT_GROUP\";\n return OwnerType;\n}(OwnerType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DataField = /*#__PURE__*/function (DataField) {\n DataField[DataField[\"DATA_FIELD_UNSPECIFIED\"] = 0] = \"DATA_FIELD_UNSPECIFIED\";\n DataField[DataField[\"DATA_FIELD_LEGAL_BUSINESS_NAME\"] = 1] = \"DATA_FIELD_LEGAL_BUSINESS_NAME\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_CATEGORY\"] = 2] = \"DATA_FIELD_BUSINESS_CATEGORY\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_TYPE\"] = 3] = \"DATA_FIELD_BUSINESS_TYPE\";\n DataField[DataField[\"DATA_FIELD_REGION_OF_OPERATION\"] = 4] = \"DATA_FIELD_REGION_OF_OPERATION\";\n DataField[DataField[\"DATA_FIELD_REGISTRATION_IDENTIFIER\"] = 5] = \"DATA_FIELD_REGISTRATION_IDENTIFIER\";\n DataField[DataField[\"DATA_FIELD_STREET_ADDRESS\"] = 6] = \"DATA_FIELD_STREET_ADDRESS\";\n DataField[DataField[\"DATA_FIELD_STREET_ADDRESS_SECONDARY\"] = 7] = \"DATA_FIELD_STREET_ADDRESS_SECONDARY\";\n DataField[DataField[\"DATA_FIELD_CITY\"] = 8] = \"DATA_FIELD_CITY\";\n DataField[DataField[\"DATA_FIELD_STATE\"] = 9] = \"DATA_FIELD_STATE\";\n DataField[DataField[\"DATA_FIELD_POSTAL_CODE\"] = 10] = \"DATA_FIELD_POSTAL_CODE\";\n DataField[DataField[\"DATA_FIELD_WEBSITE_URL\"] = 11] = \"DATA_FIELD_WEBSITE_URL\";\n DataField[DataField[\"DATA_FIELD_COUNTRY\"] = 12] = \"DATA_FIELD_COUNTRY\";\n DataField[DataField[\"DATA_FIELD_FIRST_NAME\"] = 13] = \"DATA_FIELD_FIRST_NAME\";\n DataField[DataField[\"DATA_FIELD_LAST_NAME\"] = 14] = \"DATA_FIELD_LAST_NAME\";\n DataField[DataField[\"DATA_FIELD_JOB_POSITION\"] = 15] = \"DATA_FIELD_JOB_POSITION\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_TITLE\"] = 16] = \"DATA_FIELD_BUSINESS_TITLE\";\n DataField[DataField[\"DATA_FIELD_EMAIL\"] = 17] = \"DATA_FIELD_EMAIL\";\n DataField[DataField[\"DATA_FIELD_PHONE_NUMBER\"] = 18] = \"DATA_FIELD_PHONE_NUMBER\";\n DataField[DataField[\"DATA_FIELD_BUSINESS_REGISTRATION_NUMBER\"] = 19] = \"DATA_FIELD_BUSINESS_REGISTRATION_NUMBER\";\n return DataField;\n}(DataField || {});\nvar BrandStatus = /*#__PURE__*/function (BrandStatus) {\n BrandStatus[BrandStatus[\"BRAND_STATUS_UNSPECIFIED\"] = 0] = \"BRAND_STATUS_UNSPECIFIED\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_PENDING\"] = 1] = \"BRAND_STATUS_PENDING\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_IN_REVIEW\"] = 2] = \"BRAND_STATUS_IN_REVIEW\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_FAILED\"] = 3] = \"BRAND_STATUS_FAILED\";\n BrandStatus[BrandStatus[\"BRAND_STATUS_APPROVED\"] = 4] = \"BRAND_STATUS_APPROVED\";\n return BrandStatus;\n}(BrandStatus || {});\nvar MessagingCampaignStatus = /*#__PURE__*/function (MessagingCampaignStatus) {\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED\"] = 0] = \"MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_PENDING\"] = 1] = \"MESSAGING_CAMPAIGN_STATUS_PENDING\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_FAILED\"] = 2] = \"MESSAGING_CAMPAIGN_STATUS_FAILED\";\n MessagingCampaignStatus[MessagingCampaignStatus[\"MESSAGING_CAMPAIGN_STATUS_VERIFIED\"] = 3] = \"MESSAGING_CAMPAIGN_STATUS_VERIFIED\";\n return MessagingCampaignStatus;\n}(MessagingCampaignStatus || {});\nvar ValidationStatus = /*#__PURE__*/function (ValidationStatus) {\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_UNSPECIFIED\"] = 0] = \"VALIDATION_STATUS_UNSPECIFIED\";\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_COMPLIANT\"] = 1] = \"VALIDATION_STATUS_COMPLIANT\";\n ValidationStatus[ValidationStatus[\"VALIDATION_STATUS_NON_COMPLIANT\"] = 2] = \"VALIDATION_STATUS_NON_COMPLIANT\";\n return ValidationStatus;\n}(ValidationStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar StatusType = /*#__PURE__*/function (StatusType) {\n StatusType[StatusType[\"STATUS_TYPE_UNSPECIFIED\"] = 0] = \"STATUS_TYPE_UNSPECIFIED\";\n StatusType[StatusType[\"STATUS_TYPE_QUEUED\"] = 1] = \"STATUS_TYPE_QUEUED\";\n StatusType[StatusType[\"STATUS_TYPE_SENDING\"] = 2] = \"STATUS_TYPE_SENDING\";\n StatusType[StatusType[\"STATUS_TYPE_SENT\"] = 3] = \"STATUS_TYPE_SENT\";\n StatusType[StatusType[\"STATUS_TYPE_FAILED\"] = 4] = \"STATUS_TYPE_FAILED\";\n StatusType[StatusType[\"STATUS_TYPE_DELIVERED\"] = 5] = \"STATUS_TYPE_DELIVERED\";\n StatusType[StatusType[\"STATUS_TYPE_UNDELIVERED\"] = 6] = \"STATUS_TYPE_UNDELIVERED\";\n StatusType[StatusType[\"STATUS_TYPE_RECEIVING\"] = 7] = \"STATUS_TYPE_RECEIVING\";\n StatusType[StatusType[\"STATUS_TYPE_RECEIVED\"] = 8] = \"STATUS_TYPE_RECEIVED\";\n StatusType[StatusType[\"STATUS_TYPE_ACCEPTED\"] = 9] = \"STATUS_TYPE_ACCEPTED\";\n StatusType[StatusType[\"STATUS_TYPE_SCHEDULED\"] = 10] = \"STATUS_TYPE_SCHEDULED\";\n StatusType[StatusType[\"STATUS_TYPE_CANCELED\"] = 11] = \"STATUS_TYPE_CANCELED\";\n return StatusType;\n}(StatusType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar LimitType = /*#__PURE__*/function (LimitType) {\n LimitType[LimitType[\"LIMIT_TYPE_UNSPECIFIED\"] = 0] = \"LIMIT_TYPE_UNSPECIFIED\";\n LimitType[LimitType[\"LIMIT_TYPE_DAILY\"] = 1] = \"LIMIT_TYPE_DAILY\";\n return LimitType;\n}(LimitType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$5(ParticipantType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.internalId !== 'undefined') {\n toReturn['internalId'] = this.internalId;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass A2PRegistrationInfo {\n static fromProto(proto) {\n let m = new A2PRegistrationInfo();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue$4(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.submitted) {\n m.submitted = new Date(proto.submitted);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.friendlyName !== 'undefined') {\n toReturn['friendlyName'] = this.friendlyName;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.submitted !== 'undefined' && this.submitted !== null) {\n toReturn['submitted'] = 'toApiJson' in this.submitted ? this.submitted.toApiJson() : this.submitted;\n }\n return toReturn;\n }\n}\nclass A2PRegistrationStatus {\n static fromProto(proto) {\n let m = new A2PRegistrationStatus();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue$4(OwnerType, proto.ownerType);\n }\n if (proto.secondaryBusinessProfile) {\n m.secondaryBusinessProfile = SecondaryBusinessProfile.fromProto(proto.secondaryBusinessProfile);\n }\n if (proto.trustBundle) {\n m.trustBundle = TrustBundle.fromProto(proto.trustBundle);\n }\n if (proto.brand) {\n m.brand = Brand.fromProto(proto.brand);\n }\n if (proto.messagingCampaign) {\n m.messagingCampaign = MessagingCampaign.fromProto(proto.messagingCampaign);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n if (typeof this.messagingServiceId !== 'undefined') {\n toReturn['messagingServiceId'] = this.messagingServiceId;\n }\n if (typeof this.secondaryBusinessProfile !== 'undefined' && this.secondaryBusinessProfile !== null) {\n toReturn['secondaryBusinessProfile'] = 'toApiJson' in this.secondaryBusinessProfile ? this.secondaryBusinessProfile.toApiJson() : this.secondaryBusinessProfile;\n }\n if (typeof this.trustBundle !== 'undefined' && this.trustBundle !== null) {\n toReturn['trustBundle'] = 'toApiJson' in this.trustBundle ? this.trustBundle.toApiJson() : this.trustBundle;\n }\n if (typeof this.brand !== 'undefined' && this.brand !== null) {\n toReturn['brand'] = 'toApiJson' in this.brand ? this.brand.toApiJson() : this.brand;\n }\n if (typeof this.messagingCampaign !== 'undefined' && this.messagingCampaign !== null) {\n toReturn['messagingCampaign'] = 'toApiJson' in this.messagingCampaign ? this.messagingCampaign.toApiJson() : this.messagingCampaign;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass AuthorizedRepresentative {\n static fromProto(proto) {\n let m = new AuthorizedRepresentative();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.businessTitle !== 'undefined') {\n toReturn['businessTitle'] = this.businessTitle;\n }\n if (typeof this.jobPosition !== 'undefined') {\n toReturn['jobPosition'] = this.jobPosition;\n }\n return toReturn;\n }\n}\nclass Brand {\n static fromProto(proto) {\n let m = new Brand();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(BrandStatus, proto.status);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass Business {\n static fromProto(proto) {\n let m = new Business();\n m = Object.assign(m, proto);\n if (proto.registrationIdentifier) {\n m.registrationIdentifier = RegistrationIdentifier.fromProto(proto.registrationIdentifier);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.legalName !== 'undefined') {\n toReturn['legalName'] = this.legalName;\n }\n if (typeof this.businessType !== 'undefined') {\n toReturn['businessType'] = this.businessType;\n }\n if (typeof this.industry !== 'undefined') {\n toReturn['industry'] = this.industry;\n }\n if (typeof this.registrationIdentifier !== 'undefined' && this.registrationIdentifier !== null) {\n toReturn['registrationIdentifier'] = 'toApiJson' in this.registrationIdentifier ? this.registrationIdentifier.toApiJson() : this.registrationIdentifier;\n }\n if (typeof this.regionOfOperation !== 'undefined') {\n toReturn['regionOfOperation'] = this.regionOfOperation;\n }\n if (typeof this.websiteUrl !== 'undefined') {\n toReturn['websiteUrl'] = this.websiteUrl;\n }\n if (typeof this.socialMediaProfileUrls !== 'undefined') {\n toReturn['socialMediaProfileUrls'] = this.socialMediaProfileUrls;\n }\n if (typeof this.streetAddress !== 'undefined') {\n toReturn['streetAddress'] = this.streetAddress;\n }\n if (typeof this.streetAddressSecondary !== 'undefined') {\n toReturn['streetAddressSecondary'] = this.streetAddressSecondary;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.postalCode !== 'undefined') {\n toReturn['postalCode'] = this.postalCode;\n }\n if (typeof this.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n return toReturn;\n }\n}\nclass MessagingCampaign {\n static fromProto(proto) {\n let m = new MessagingCampaign();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(MessagingCampaignStatus, proto.status);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass RegistrationIdentifier {\n static fromProto(proto) {\n let m = new RegistrationIdentifier();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identifierType !== 'undefined') {\n toReturn['identifierType'] = this.identifierType;\n }\n if (typeof this.identifier !== 'undefined') {\n toReturn['identifier'] = this.identifier;\n }\n return toReturn;\n }\n}\nclass SecondaryBusinessProfile {\n static fromProto(proto) {\n let m = new SecondaryBusinessProfile();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(ValidationStatus, proto.status);\n }\n if (proto.fieldsWithIssues) {\n m.fieldsWithIssues = proto.fieldsWithIssues.map(v => enumStringToValue$4(DataField, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.authorizedRepresentativeId !== 'undefined') {\n toReturn['authorizedRepresentativeId'] = this.authorizedRepresentativeId;\n }\n if (typeof this.addressResourceId !== 'undefined') {\n toReturn['addressResourceId'] = this.addressResourceId;\n }\n if (typeof this.addressSupportingDocumentId !== 'undefined') {\n toReturn['addressSupportingDocumentId'] = this.addressSupportingDocumentId;\n }\n if (typeof this.secondaryBusinessInformationId !== 'undefined') {\n toReturn['secondaryBusinessInformationId'] = this.secondaryBusinessInformationId;\n }\n if (typeof this.fieldsWithIssues !== 'undefined') {\n toReturn['fieldsWithIssues'] = this.fieldsWithIssues;\n }\n return toReturn;\n }\n}\nclass TrustBundle {\n static fromProto(proto) {\n let m = new TrustBundle();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$4(ValidationStatus, proto.status);\n }\n if (proto.fieldsWithIssues) {\n m.fieldsWithIssues = proto.fieldsWithIssues.map(v => enumStringToValue$4(DataField, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n if (typeof this.fieldsWithIssues !== 'undefined') {\n toReturn['fieldsWithIssues'] = this.fieldsWithIssues;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Attribute {\n static fromProto(proto) {\n let m = new Attribute();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass SupportingDocumentInfo {\n static fromProto(proto) {\n let m = new SupportingDocumentInfo();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.documentType !== 'undefined') {\n toReturn['documentType'] = this.documentType;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.processAddress !== 'undefined') {\n toReturn['processAddress'] = this.processAddress;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ClaimPhoneNumberRequest {\n static fromProto(proto) {\n let m = new ClaimPhoneNumberRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass CreateA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new CreateA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\n }\n if (typeof this.submitted !== 'undefined') {\n toReturn['submitted'] = this.submitted;\n }\n return toReturn;\n }\n}\nclass CreateRegulationInfoRequest {\n static fromProto(proto) {\n let m = new CreateRegulationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.businessAttributes) {\n m.businessAttributes = proto.businessAttributes.map(Attribute.fromProto);\n }\n if (proto.supportingDocuments) {\n m.supportingDocuments = proto.supportingDocuments.map(SupportingDocumentInfo.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.countryCode !== 'undefined') {\n toReturn['countryCode'] = this.countryCode;\n }\n if (typeof this.businessAttributes !== 'undefined' && this.businessAttributes !== null) {\n toReturn['businessAttributes'] = 'toApiJson' in this.businessAttributes ? this.businessAttributes.toApiJson() : this.businessAttributes;\n }\n if (typeof this.supportingDocuments !== 'undefined' && this.supportingDocuments !== null) {\n toReturn['supportingDocuments'] = 'toApiJson' in this.supportingDocuments ? this.supportingDocuments.toApiJson() : this.supportingDocuments;\n }\n return toReturn;\n }\n}\nclass CreateRegulationInfoResponse {\n static fromProto(proto) {\n let m = new CreateRegulationInfoResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.regulationInfoId !== 'undefined') {\n toReturn['regulationInfoId'] = this.regulationInfoId;\n }\n return toReturn;\n }\n}\nclass CreateSmsClickedEventRequest {\n static fromProto(proto) {\n let m = new CreateSmsClickedEventRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageUuid !== 'undefined') {\n toReturn['messageUuid'] = this.messageUuid;\n }\n return toReturn;\n }\n}\nclass DeleteA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new DeleteA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass GetA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new GetA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass GetA2PRegistrationInfoResponse {\n static fromProto(proto) {\n let m = new GetA2PRegistrationInfoResponse();\n m = Object.assign(m, proto);\n if (proto.a2pRegistrationInfo) {\n m.a2pRegistrationInfo = A2PRegistrationInfo.fromProto(proto.a2pRegistrationInfo);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.a2pRegistrationInfo !== 'undefined' && this.a2pRegistrationInfo !== null) {\n toReturn['a2pRegistrationInfo'] = 'toApiJson' in this.a2pRegistrationInfo ? this.a2pRegistrationInfo.toApiJson() : this.a2pRegistrationInfo;\n }\n return toReturn;\n }\n}\nclass GetAccountInfoRequest {\n static fromProto(proto) {\n let m = new GetAccountInfoRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Participant.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAccountInfoResponse {\n static fromProto(proto) {\n let m = new GetAccountInfoResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(StatusStat.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n return toReturn;\n }\n}\nclass GetLatestA2PRegistrationStatusRequest {\n static fromProto(proto) {\n let m = new GetLatestA2PRegistrationStatusRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.subaccountId !== 'undefined') {\n toReturn['subaccountId'] = this.subaccountId;\n }\n return toReturn;\n }\n}\nclass GetLatestA2PRegistrationStatusResponse {\n static fromProto(proto) {\n let m = new GetLatestA2PRegistrationStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = A2PRegistrationStatus.fromProto(proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined' && this.status !== null) {\n toReturn['status'] = 'toApiJson' in this.status ? this.status.toApiJson() : this.status;\n }\n return toReturn;\n }\n}\nclass GetLimitRequest {\n static fromProto(proto) {\n let m = new GetLimitRequest();\n m = Object.assign(m, proto);\n if (proto.limitType) {\n m.limitType = enumStringToValue(LimitType, proto.limitType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.limitType !== 'undefined') {\n toReturn['limitType'] = this.limitType;\n }\n return toReturn;\n }\n}\nclass GetLimitResponse {\n static fromProto(proto) {\n let m = new GetLimitResponse();\n m = Object.assign(m, proto);\n if (proto.limitType) {\n m.limitType = enumStringToValue(LimitType, proto.limitType);\n }\n if (proto.usage) {\n m.usage = parseInt(proto.usage, 10);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.limitType !== 'undefined') {\n toReturn['limitType'] = this.limitType;\n }\n if (typeof this.usage !== 'undefined') {\n toReturn['usage'] = this.usage;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass Media {\n static fromProto(proto) {\n let m = new Media();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.locationPath !== 'undefined') {\n toReturn['locationPath'] = this.locationPath;\n }\n if (typeof this.fileName !== 'undefined') {\n toReturn['fileName'] = this.fileName;\n }\n return toReturn;\n }\n}\nclass Recipient {\n static fromProto(proto) {\n let m = new Recipient();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n return toReturn;\n }\n}\nclass SendMessageRequest {\n static fromProto(proto) {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.media) {\n m.media = proto.media.map(Media.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n if (typeof this.recipientPhoneNumber !== 'undefined') {\n toReturn['recipientPhoneNumber'] = this.recipientPhoneNumber;\n }\n if (typeof this.messageBody !== 'undefined') {\n toReturn['messageBody'] = this.messageBody;\n }\n if (typeof this.media !== 'undefined' && this.media !== null) {\n toReturn['media'] = 'toApiJson' in this.media ? this.media.toApiJson() : this.media;\n }\n return toReturn;\n }\n}\nclass SendMessageResponse {\n static fromProto(proto) {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n if (typeof this.conversationId !== 'undefined') {\n toReturn['conversationId'] = this.conversationId;\n }\n return toReturn;\n }\n}\nclass SendMessageV2Request {\n static fromProto(proto) {\n let m = new SendMessageV2Request();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = Recipient.fromProto(proto.recipient);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.messageBody !== 'undefined') {\n toReturn['messageBody'] = this.messageBody;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass SendMessageV2Response {\n static fromProto(proto) {\n let m = new SendMessageV2Response();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass Sender {\n static fromProto(proto) {\n let m = new Sender();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass StatusStat {\n static fromProto(proto) {\n let m = new StatusStat();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(StatusType, proto.status);\n }\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass TriggerA2PRegistrationRequest {\n static fromProto(proto) {\n let m = new TriggerA2PRegistrationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n return toReturn;\n }\n}\nclass UpsertA2PRegistrationInfoRequest {\n static fromProto(proto) {\n let m = new UpsertA2PRegistrationInfoRequest();\n m = Object.assign(m, proto);\n if (proto.ownerType) {\n m.ownerType = enumStringToValue(OwnerType, proto.ownerType);\n }\n if (proto.business) {\n m.business = Business.fromProto(proto.business);\n }\n if (proto.authorizedRepresentative) {\n m.authorizedRepresentative = AuthorizedRepresentative.fromProto(proto.authorizedRepresentative);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.ownerType !== 'undefined') {\n toReturn['ownerType'] = this.ownerType;\n }\n if (typeof this.business !== 'undefined' && this.business !== null) {\n toReturn['business'] = 'toApiJson' in this.business ? this.business.toApiJson() : this.business;\n }\n if (typeof this.authorizedRepresentative !== 'undefined' && this.authorizedRepresentative !== null) {\n toReturn['authorizedRepresentative'] = 'toApiJson' in this.authorizedRepresentative ? this.authorizedRepresentative.toApiJson() : this.authorizedRepresentative;\n }\n if (typeof this.submitted !== 'undefined') {\n toReturn['submitted'] = this.submitted;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'sms-api.vendasta-local.com',\n 'test': '',\n 'demo': 'sms-demo.apigateway.co',\n 'prod': 'sms-prod.apigateway.co',\n 'production': 'sms-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet A2PRegistrationApiService = /*#__PURE__*/(() => {\n class A2PRegistrationApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new CreateA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/CreateA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new GetA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/GetA2PRegistrationInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetA2PRegistrationInfoResponse.fromProto(resp)));\n }\n deleteA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new DeleteA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/DeleteA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertA2pRegistrationInfo(r) {\n const request = r.toApiJson ? r : new UpsertA2PRegistrationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/UpsertA2PRegistrationInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getLatestA2pRegistrationStatus(r) {\n const request = r.toApiJson ? r : new GetLatestA2PRegistrationStatusRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/GetLatestA2PRegistrationStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLatestA2PRegistrationStatusResponse.fromProto(resp)));\n }\n triggerA2pRegistration(r) {\n const request = r.toApiJson ? r : new TriggerA2PRegistrationRequest(r);\n return this.http.post(this._host + \"/sms.v2.A2PRegistration/TriggerA2PRegistration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n A2PRegistrationApiService.ɵfac = function A2PRegistrationApiService_Factory(t) {\n return new (t || A2PRegistrationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n A2PRegistrationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: A2PRegistrationApiService,\n factory: A2PRegistrationApiService.ɵfac,\n providedIn: 'root'\n });\n return A2PRegistrationApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet ConversationApiService = /*#__PURE__*/(() => {\n class ConversationApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n sendMessage(r) {\n const request = r.toApiJson ? r : new SendMessageRequest(r);\n return this.http.post(this._host + \"/sms.v2.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageResponse.fromProto(resp)));\n }\n claimPhoneNumber(r) {\n const request = r.toApiJson ? r : new ClaimPhoneNumberRequest(r);\n return this.http.post(this._host + \"/sms.v2.ConversationService/ClaimPhoneNumber\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n ConversationApiService.ɵfac = function ConversationApiService_Factory(t) {\n return new (t || ConversationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ConversationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConversationApiService,\n factory: ConversationApiService.ɵfac,\n providedIn: 'root'\n });\n return ConversationApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EventApiService = /*#__PURE__*/(() => {\n class EventApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getAttributeEventStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventStatsRequest(r);\n return this.http.post(this._host + \"/sms.v2.EventService/GetAttributeEventStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventStatsResponse.fromProto(resp)));\n }\n }\n EventApiService.ɵfac = function EventApiService_Factory(t) {\n return new (t || EventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EventApiService,\n factory: EventApiService.ɵfac,\n providedIn: 'root'\n });\n return EventApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RegulationApiService = /*#__PURE__*/(() => {\n class RegulationApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createRegulationInfo(r) {\n const request = r.toApiJson ? r : new CreateRegulationInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.RegulationService/CreateRegulationInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateRegulationInfoResponse.fromProto(resp)));\n }\n }\n RegulationApiService.ɵfac = function RegulationApiService_Factory(t) {\n return new (t || RegulationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RegulationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RegulationApiService,\n factory: RegulationApiService.ɵfac,\n providedIn: 'root'\n });\n return RegulationApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SmsApiService = /*#__PURE__*/(() => {\n class SmsApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createSmsClickedEvent(r) {\n const request = r.toApiJson ? r : new CreateSmsClickedEventRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/CreateSmsClickedEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAccountInfo(r) {\n const request = r.toApiJson ? r : new GetAccountInfoRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/GetAccountInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAccountInfoResponse.fromProto(resp)));\n }\n sendMessageV2(r) {\n const request = r.toApiJson ? r : new SendMessageV2Request(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/SendMessageV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageV2Response.fromProto(resp)));\n }\n getLimit(r) {\n const request = r.toApiJson ? r : new GetLimitRequest(r);\n return this.http.post(this._host + \"/sms.v2.SmsService/GetLimit\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLimitResponse.fromProto(resp)));\n }\n }\n SmsApiService.ɵfac = function SmsApiService_Factory(t) {\n return new (t || SmsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SmsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SmsApiService,\n factory: SmsApiService.ɵfac,\n providedIn: 'root'\n });\n return SmsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\nlet SmsService = /*#__PURE__*/(() => {\n class SmsService {\n constructor(smsApiService) {\n this.smsApiService = smsApiService;\n }\n getAccountInfo(sender) {\n return this.smsApiService.getAccountInfo({\n sender: sender\n });\n }\n }\n SmsService.ɵfac = function SmsService_Factory(t) {\n return new (t || SmsService)(i0.ɵɵinject(SmsApiService));\n };\n SmsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SmsService,\n factory: SmsService.ɵfac,\n providedIn: 'root'\n });\n return SmsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EventService = /*#__PURE__*/(() => {\n class EventService {\n constructor(eventService) {\n this.eventService = eventService;\n }\n getAttributeEventStats(sender, attribute) {\n return this.eventService.getAttributeEventStats({\n sender: sender,\n attribute: attribute\n });\n }\n }\n EventService.ɵfac = function EventService_Factory(t) {\n return new (t || EventService)(i0.ɵɵinject(EventApiService));\n };\n EventService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EventService,\n factory: EventService.ɵfac,\n providedIn: 'root'\n });\n return EventService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A2PRegistrationApiService, A2PRegistrationInfo, A2PRegistrationStatus, Access, Attribute, AuthorizedRepresentative, Brand, BrandStatus, Business, ClaimPhoneNumberRequest, ConversationApiService, CreateA2PRegistrationInfoRequest, CreateRegulationInfoRequest, CreateRegulationInfoResponse, CreateSmsClickedEventRequest, DataField, DeleteA2PRegistrationInfoRequest, EventApiService, EventService, GetA2PRegistrationInfoRequest, GetA2PRegistrationInfoResponse, GetAccountInfoRequest, GetAccountInfoResponse, GetAttributeEventStatsRequest, GetAttributeEventStatsResponse, GetLatestA2PRegistrationStatusRequest, GetLatestA2PRegistrationStatusResponse, GetLimitRequest, GetLimitResponse, LimitType, Media, MessagingCampaign, MessagingCampaignStatus, OwnerType, Participant, ParticipantType, Recipient, RegistrationIdentifier, RegulationApiService, SecondaryBusinessProfile, SendMessageRequest, SendMessageResponse, SendMessageV2Request, SendMessageV2Response, Sender, SmsApiService, SmsService, StatusStat, StatusType, SupportingDocumentInfo, TriggerA2PRegistrationRequest, TrustBundle, UpsertA2PRegistrationInfoRequest, ValidationStatus };\n","import { InjectionToken } from '@angular/core';\nimport { SmsRegistrationDependencies } from './interface';\n\nexport const SmsInjectionToken = new InjectionToken(\n 'dependencies for the sms registration',\n);\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './learn-more-modal.component.html',\n styleUrls: ['./learn-more-modal.component.scss'],\n})\nexport class LearnMoreModalComponent {}\n","
Required registration for SMS
\n\n SMS Registration Requirements\n

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

\n How long does registration take?\n

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

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

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

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

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

\n
\n\n \n\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { LearnMoreModalComponent } from './learn-more-modal/learn-more-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'sms-info-banner',\n standalone: true,\n imports: [CommonModule, MatCardModule, GalaxyBadgeModule, MatButtonModule, TranslateModule],\n templateUrl: './info-banner.component.html',\n styleUrls: ['./info-banner.component.scss'],\n})\nexport class InfoBannerComponent {\n @Input() title: string;\n @Input() imageURL: string;\n @Input() description: string;\n @Input() badgeText: string;\n @Input() badgeColor: 'red' | 'yellow' | 'green';\n\n constructor(private dialog: MatDialog) {}\n\n openLearnMoreModal(): void {\n this.dialog.open(LearnMoreModalComponent, { width: '600px' });\n }\n}\n","
\n \n \n
\n \n \n \n
\n
\n {{ title }}\n \n {{ badgeText }}\n \n
\n
{{ description }}
\n
\n \n
\n
\n
\n
\n
\n
\n","export enum BusinessType {\n soleProprietorship = 'Sole Proprietorship',\n partnerShip = 'Partnership',\n limitedLiabilityCorporation = 'Limited Liability Corporation',\n coOperative = 'Co-operative',\n nonProfit = 'Non-profit Corporation',\n corporation = 'Corporation',\n}\n\n// aka Industry\nexport enum BusinessCategory {\n automotiveIndustry = 'AUTOMOTIVE',\n agriculture = 'AGRICULTURE',\n banking = 'BANKING',\n consumer = 'CONSUMER',\n education = 'EDUCATION',\n engineering = 'ENGINEERING',\n energy = 'ENERGY',\n oilAndGas = 'OIL_AND_GAS',\n fastMovingConsumerGoods = 'FAST_MOVING_CONSUMER_GOODS',\n financial = 'FINANCIAL',\n fintech = 'FINTECH',\n foodAndBeverage = 'FOOD_AND_BEVERAGE',\n government = 'GOVERNMENT',\n healthcare = 'HEALTHCARE',\n hospitality = 'HOSPITALITY',\n insurance = 'INSURANCE',\n legal = 'LEGAL',\n manufacturing = 'MANUFACTURING',\n media = 'MEDIA',\n online = 'ONLINE',\n rawMaterials = 'RAW_MATERIALS',\n realEstate = 'REAL_ESTATE',\n religion = 'RELIGION',\n retail = 'RETAIL',\n jewelry = 'JEWELRY',\n technology = 'TECHNOLOGY',\n telecommunications = 'TELECOMMUNICATIONS',\n transportation = 'TRANSPORTATION',\n travel = 'TRAVEL',\n electronics = 'ELECTRONICS',\n notForProfit = 'NOT_FOR_PROFIT',\n}\n\nconst businessCategoryLabels = new Map([\n [BusinessCategory.automotiveIndustry, 'Automotive Industry'],\n [BusinessCategory.agriculture, 'Agriculture'],\n [BusinessCategory.banking, 'Banking'],\n [BusinessCategory.consumer, 'Consumer'],\n [BusinessCategory.education, 'Education'],\n [BusinessCategory.engineering, 'Engineering'],\n [BusinessCategory.energy, 'Energy'],\n [BusinessCategory.oilAndGas, 'Oil and Gas'],\n [BusinessCategory.fastMovingConsumerGoods, 'Fast Moving Consumer Goods'],\n [BusinessCategory.financial, 'Financial'],\n [BusinessCategory.fintech, 'Fintech'],\n [BusinessCategory.foodAndBeverage, 'Food and Beverage'],\n [BusinessCategory.government, 'Government'],\n [BusinessCategory.healthcare, 'Healthcare'],\n [BusinessCategory.hospitality, 'Hospitality'],\n [BusinessCategory.insurance, 'Insurance'],\n [BusinessCategory.legal, 'Legal'],\n [BusinessCategory.manufacturing, 'Manufacturing'],\n [BusinessCategory.media, 'Media'],\n [BusinessCategory.online, 'Online'],\n [BusinessCategory.rawMaterials, 'Raw Materials'],\n [BusinessCategory.realEstate, 'Real Estate'],\n [BusinessCategory.religion, 'Religion'],\n [BusinessCategory.retail, 'Retail'],\n [BusinessCategory.jewelry, 'Jewelry'],\n [BusinessCategory.technology, 'Technology'],\n [BusinessCategory.telecommunications, 'Telecommunications'],\n [BusinessCategory.transportation, 'Transportation'],\n [BusinessCategory.travel, 'Travel'],\n [BusinessCategory.electronics, 'Electronics'],\n [BusinessCategory.notForProfit, 'Not for Profit'],\n]);\n\nexport const businessCategoryToLabel = (businessCategory: BusinessCategory): string => {\n return businessCategoryLabels.get(businessCategory);\n};\n\nexport enum Region {\n africa = 'AFRICA',\n asia = 'ASIA',\n europe = 'EUROPE',\n latinAmerica = 'LATIN_AMERICA',\n usaAndCanada = 'USA_AND_CANADA',\n}\n\nconst regionLabels = new Map([\n [Region.africa, 'Africa'],\n [Region.asia, 'Asia'],\n [Region.europe, 'Europe'],\n [Region.latinAmerica, 'Latin America'],\n [Region.usaAndCanada, 'USA and Canada'],\n]);\n\nexport const regionToLabel = (region: Region): string => {\n return regionLabels.get(region);\n};\n\nexport enum Position {\n director = 'Director',\n gm = 'GM',\n vp = 'VP',\n ceo = 'CEO',\n cfo = 'CFO',\n generalCounsel = 'General Counsel',\n otherPosition = 'Other',\n}\n","export const NORTH_AMERICA_COUNTRIES = ['US', 'CA'];\n\nexport enum RegistrationStage {\n NotSubmitted = 0,\n ReviewingInfo = 1,\n RegistrationComplete = 2,\n DataError = 3,\n}\n\nexport enum RegistrationTitle {\n NotApproved = 'Required information for US-based businesses',\n ApprovedStatus = 'Businesses registered for SMS',\n}\nexport enum RegistrationContent {\n NotApproved = 'To send SMS messages to customers, more details about your business are required. Update your business info to send SMS messages.',\n ApprovedStatus = 'You can now access SMS features. Contact support if you need to make changes to your authorized business representative information.',\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport {\n A2PRegistrationApiService,\n A2PRegistrationInfoInterface,\n A2PRegistrationStatusInterface,\n BrandStatus,\n CreateA2PRegistrationInfoRequestInterface,\n GetA2PRegistrationInfoRequestInterface,\n GetA2PRegistrationInfoResponseInterface,\n GetLatestA2PRegistrationStatusRequestInterface,\n MessagingCampaignStatus,\n OwnerType,\n ValidationStatus,\n} from '@vendasta/smsv2';\nimport { UpsertA2PRegistrationInfoRequestInterface } from '@vendasta/smsv2/lib/_internal/interfaces/api.interface';\nimport { GetLatestA2PRegistrationStatusResponse } from '@vendasta/smsv2/lib/_internal/objects';\nimport {\n Observable,\n ReplaySubject,\n catchError,\n combineLatest,\n distinctUntilChanged,\n map,\n of,\n shareReplay,\n take,\n} from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { SmsRegistrationDependencies } from '../interface';\nimport { Region } from '../sms-registration-form/types';\nimport { NORTH_AMERICA_COUNTRIES, RegistrationStage } from '../sms.constants';\nimport { SmsInjectionToken } from '../token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SmsRegistrationService {\n private isSubmitted$: Observable;\n ownerId$: Observable;\n public ownerType: OwnerType = this.config.ownerType;\n\n private registrationStage$$ = new ReplaySubject(1);\n public readonly registrationStage$ = this.registrationStage$$.asObservable();\n\n private a2pRegistrationInfo$$ = new ReplaySubject(1);\n private a2pRegistrationStatus$$ = new ReplaySubject(1);\n\n public readonly a2PRegistrationInfo$ = this.a2pRegistrationInfo$$.asObservable();\n public readonly a2pRegistrationStatus$ = this.a2pRegistrationStatus$$.asObservable();\n\n public readonly showExternalBanner$: Observable;\n\n constructor(\n private a2pRegistrationApiService: A2PRegistrationApiService,\n private accountGroupService: AccountGroupService,\n @Inject(SmsInjectionToken) private readonly config: SmsRegistrationDependencies,\n ) {\n this.ownerId$ = this.config.ownerId$.pipe(distinctUntilChanged(), shareReplay(1));\n this.getA2pRegistration()\n .pipe(\n map((response) => response.a2pRegistrationInfo ?? ({} as A2PRegistrationInfoInterface)),\n catchError(() => of({} as A2PRegistrationInfoInterface)),\n )\n .subscribe((a2pRegistrationInfo) => this.a2pRegistrationInfo$$.next(a2pRegistrationInfo));\n\n this.a2PRegistrationInfo$ = this.a2pRegistrationInfo$$.asObservable();\n\n this.getA2PRegistrationStatus().subscribe((a2pRegistrationStatus) => {\n this.a2pRegistrationStatus$$.next(a2pRegistrationStatus);\n });\n\n this.isSubmitted$ = this.a2PRegistrationInfo$.pipe(\n map((a2pRegistrationInfo) =>\n Boolean(a2pRegistrationInfo?.submitted && a2pRegistrationInfo?.submitted > new Date(2023, 1, 1)),\n ),\n );\n\n combineLatest([this.a2pRegistrationStatus$, this.isSubmitted$]).subscribe(\n ([a2pRegistrationStatus, isSubmitted]) => {\n this.setRegistrationStage(this.getRegistrationStage(a2pRegistrationStatus, isSubmitted));\n },\n );\n\n this.showExternalBanner$ = this.registrationStage$.pipe(\n map((stage) => {\n return stage === RegistrationStage.NotSubmitted || stage === RegistrationStage.DataError;\n }),\n shareReplay(1),\n );\n }\n\n private getRegistrationStage(\n a2pRegistrationStatus: A2PRegistrationStatusInterface,\n isSubmitted: boolean,\n ): RegistrationStage {\n const brandStatus = a2pRegistrationStatus?.brand?.status ?? BrandStatus.BRAND_STATUS_UNSPECIFIED;\n const messagingCampaignStatus =\n a2pRegistrationStatus?.messagingCampaign?.status ?? MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED;\n const secondaryBusinessProfileStatus =\n a2pRegistrationStatus?.secondaryBusinessProfile?.status ?? ValidationStatus.VALIDATION_STATUS_UNSPECIFIED;\n const trustBundleStatus =\n a2pRegistrationStatus?.trustBundle?.status ?? ValidationStatus.VALIDATION_STATUS_UNSPECIFIED;\n\n if (!isSubmitted) {\n return RegistrationStage.NotSubmitted;\n }\n if (\n secondaryBusinessProfileStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n trustBundleStatus === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT ||\n brandStatus === BrandStatus.BRAND_STATUS_FAILED\n ) {\n return RegistrationStage.DataError;\n }\n if (messagingCampaignStatus === MessagingCampaignStatus.MESSAGING_CAMPAIGN_STATUS_VERIFIED) {\n return RegistrationStage.RegistrationComplete;\n }\n if (isSubmitted) {\n return RegistrationStage.ReviewingInfo;\n }\n return RegistrationStage.NotSubmitted;\n }\n\n setRegistrationStage(stage: RegistrationStage): void {\n this.registrationStage$$.next(stage);\n }\n\n public createA2pRegistration(request: CreateA2PRegistrationInfoRequestInterface): Observable> {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n request.ownerId = ownerId;\n request.ownerType = this.config.ownerType;\n return this.a2pRegistrationApiService.createA2pRegistrationInfo(request).pipe(\n map((response) => {\n this.updateA2pRegistrationInfo(request);\n return response;\n }),\n );\n }),\n );\n }\n\n public upsertA2pRegistration(request: UpsertA2PRegistrationInfoRequestInterface): Observable> {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n request.ownerId = ownerId;\n request.ownerType = this.config.ownerType;\n return this.a2pRegistrationApiService.upsertA2pRegistrationInfo(request).pipe(\n map((response) => {\n this.updateA2pRegistrationInfo(request);\n return response;\n }),\n );\n }),\n );\n }\n\n private getA2pRegistration(): Observable {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n const request = {\n ownerId: ownerId,\n } as GetA2PRegistrationInfoRequestInterface;\n return this.a2pRegistrationApiService.getA2pRegistrationInfo(request).pipe(\n catchError(() => {\n console.error('Error getting A2P registration info');\n return of({} as GetA2PRegistrationInfoResponseInterface);\n }),\n );\n }),\n );\n }\n\n private updateA2pRegistrationInfo(\n a2pRegistrationInfo: CreateA2PRegistrationInfoRequestInterface | UpsertA2PRegistrationInfoRequestInterface,\n ): void {\n this.a2pRegistrationInfo$$.pipe(take(1)).subscribe((currentA2PRegistrationInfo) => {\n // combine current a2p registration info with provided a2p registration info\n const updatedA2PRegistrationInfo: A2PRegistrationInfoInterface = {\n ...currentA2PRegistrationInfo,\n ...a2pRegistrationInfo,\n submitted: a2pRegistrationInfo.submitted ? new Date() : currentA2PRegistrationInfo.submitted,\n };\n\n this.a2pRegistrationInfo$$.next(updatedA2PRegistrationInfo);\n });\n }\n\n private getA2PRegistrationStatus(): Observable {\n return combineLatest([this.config.ownerId$, this.config.subaccountID$]).pipe(\n switchMap(([ownerId, subaccountId]) => {\n if (!ownerId || !subaccountId) {\n return of({} as GetLatestA2PRegistrationStatusResponse);\n }\n const request = {\n ownerId: ownerId,\n subaccountId: subaccountId,\n } as GetLatestA2PRegistrationStatusRequestInterface;\n return this.a2pRegistrationApiService.getLatestA2pRegistrationStatus(request).pipe(\n catchError((e) => {\n console.error('getLatestA2pRegistrationStatus error:', e);\n return of({} as GetLatestA2PRegistrationStatusResponse);\n }),\n );\n }),\n map((response) => response.status),\n catchError(() => of({} as A2PRegistrationStatusInterface)),\n );\n }\n\n getAccountGroupInfo$(): Observable {\n return this.ownerId$.pipe(\n switchMap((ownerId) => {\n return this.accountGroupService\n .get(ownerId, new ProjectionFilter({ napData: true }))\n .pipe(catchError(() => of({} as AccountGroup)));\n }),\n );\n }\n\n getPrefillA2PFormInfo(): Observable {\n return this.a2PRegistrationInfo$.pipe(\n switchMap((a2PRegistrationInfo) => {\n //If there is submitted A2P form data from different app\n if (a2PRegistrationInfo && Object.keys(a2PRegistrationInfo).length > 0) {\n return of(a2PRegistrationInfo);\n }\n\n if (this.ownerType === OwnerType.OWNER_TYPE_ACCOUNT_GROUP) {\n return this.getAccountGroupInfo$().pipe(\n map((accountGroupInfo) => {\n return {\n business: {\n regionOfOperation: NORTH_AMERICA_COUNTRIES.includes(accountGroupInfo?.napData?.country)\n ? Region.usaAndCanada\n : '',\n streetAddress: accountGroupInfo?.napData?.address,\n streetAddressSecondary: accountGroupInfo?.napData?.address2,\n state: accountGroupInfo?.napData?.state,\n city: accountGroupInfo?.napData?.city,\n postalCode: accountGroupInfo?.napData?.zip,\n websiteUrl: accountGroupInfo?.napData?.website,\n },\n } as A2PRegistrationInfoInterface;\n }),\n );\n }\n\n return of({} as A2PRegistrationInfoInterface);\n }),\n );\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AlertTypes } from '@vendasta/galaxy/alert';\nimport { Observable } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { RegistrationStage } from '../sms.constants';\n\n@Component({\n selector: 'sms-registration-alert',\n templateUrl: './sms-registration-alert.component.html',\n styleUrls: ['./sms-registration-alert.component.scss'],\n})\nexport class SmsRegistrationAlertComponent {\n @Input() alertType: AlertTypes = 'important';\n @Output() actionClick: EventEmitter = new EventEmitter();\n registrationStage$: Observable;\n\n protected readonly RegistrationStage = RegistrationStage;\n\n constructor(private smsRegistrationService: SmsRegistrationService) {\n this.registrationStage$ = smsRegistrationService.registrationStage$;\n }\n\n actionClicked(): void {\n this.actionClick.emit();\n }\n}\n","\n {{ 'SMS_REGISTRATION.ALERT.BUSINESS_INFO_REQUIRED_TITLE' | translate }} -\n {{ 'SMS_REGISTRATION.ALERT.MORE_DETAILS_SUGGESTION' | translate }}\n\n\n {{ 'SMS_REGISTRATION.ALERT.REJECTED_TITLE' | translate }} -\n {{ 'SMS_REGISTRATION.ALERT.REJECTED_SUGGESTION' | translate }}\n\n","/**\n * Generate the route of an image based on if it is being hosted locally or not\n * @param imageName: filepath of image\n */\nexport function getImageSrc(imageName: string): string {\n if (window.location.hostname === 'localhost') {\n return `/assets/sms/${imageName}`;\n }\n return `https://vstatic-prod.apigateway.co/customer-voice-client/assets/sms/${imageName}`;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { getImageSrc } from '../common/utils';\nimport { map, Observable } from 'rxjs';\nimport { RegistrationStage } from '../sms.constants';\n\ninterface SmsRegistrationBannerData {\n title: string;\n description: string;\n imagePath: string;\n badgeText: string;\n badgeColor: 'red' | 'yellow' | 'green';\n}\n\n@Component({\n selector: 'sms-registration-banner',\n templateUrl: './sms-registration-banner.component.html',\n})\nexport class SmsRegistrationBannerComponent implements OnInit {\n registrationStage$: Observable;\n bannerData$: Observable;\n\n notSubmittedImagePath = getImageSrc('collect-info-graphic.svg');\n notSubmittedTitle = 'Required information for US-based businesses';\n notSubmittedDescription =\n 'To send SMS messages to customers, more details about your business are required. Fill out the form below to send SMS messages.';\n notSubmittedBadgeText = 'Status: Not submitted';\n\n processingImagePath = getImageSrc('reviewing-info-graphic.svg');\n processingTitle = 'Data submitted and under review';\n processingDescription =\n 'Your business data is being reviewed. This process typically takes a few weeks, but in some cases may take longer.';\n processingBadgeText = 'Status: In progress';\n\n approvedImagePath = getImageSrc('registration-complete-graphic.svg');\n approvedTitle = 'Business registered for SMS';\n approvedDescription =\n 'You can now access SMS features. Contact us if you need to make changes to your authorized business representative information.';\n approvedBadgeText = 'Status: Approved';\n\n protected readonly RegistrationStage = RegistrationStage;\n\n constructor(private smsRegistrationService: SmsRegistrationService) {}\n\n ngOnInit(): void {\n this.registrationStage$ = this.smsRegistrationService.registrationStage$;\n\n this.bannerData$ = this.registrationStage$.pipe(\n map((stage) => {\n switch (stage) {\n case RegistrationStage.NotSubmitted:\n return {\n title: this.notSubmittedTitle,\n description: this.notSubmittedDescription,\n imagePath: this.notSubmittedImagePath,\n badgeText: this.notSubmittedBadgeText,\n badgeColor: 'red',\n } as SmsRegistrationBannerData;\n case RegistrationStage.ReviewingInfo:\n return {\n title: this.processingTitle,\n description: this.processingDescription,\n imagePath: this.processingImagePath,\n badgeText: this.processingBadgeText,\n badgeColor: 'yellow',\n } as SmsRegistrationBannerData;\n case RegistrationStage.RegistrationComplete:\n return {\n title: this.approvedTitle,\n description: this.approvedDescription,\n imagePath: this.approvedImagePath,\n badgeText: this.approvedBadgeText,\n badgeColor: 'green',\n } as SmsRegistrationBannerData;\n default: // Should never happen\n return {\n title: '',\n description: '',\n imagePath: '',\n badgeText: '',\n } as SmsRegistrationBannerData;\n }\n }),\n );\n }\n}\n","\n \n\n","import { Component } from '@angular/core';\nimport { map, Observable, of, from, filter } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LearnMoreModalComponent } from '../info-banner/learn-more-modal/learn-more-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { RegistrationContent, RegistrationStage, RegistrationTitle } from '../sms.constants';\nimport { ParticipantType, SmsService } from '@vendasta/smsv2';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { switchMap, catchError, shareReplay } from 'rxjs/operators';\n\ntype SmsRegistrationCardData = {\n statusBadgeText: 'Setup required' | 'Rejected' | 'In progress' | 'Active';\n statusBadgeColor: 'red' | 'blue' | 'green';\n buttonText: 'Register now' | 'Business info' | 'Update business info' | '';\n buttonType: 'primary' | 'basic' | '';\n title: RegistrationTitle.ApprovedStatus | RegistrationTitle.NotApproved;\n content: RegistrationContent.ApprovedStatus | RegistrationContent.NotApproved;\n};\n\ntype SMSNumberCardData = {\n statusBadgeText: 'Active';\n statusBadgeColor: 'green';\n};\n\nconst RegistrationStageToCardData: Record = {\n [RegistrationStage.NotSubmitted]: {\n statusBadgeText: 'Setup required',\n statusBadgeColor: 'red',\n buttonText: 'Register now',\n buttonType: 'primary',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n [RegistrationStage.ReviewingInfo]: {\n statusBadgeText: 'In progress',\n statusBadgeColor: 'blue',\n buttonText: 'Business info',\n buttonType: 'basic',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n [RegistrationStage.DataError]: {\n statusBadgeText: 'Rejected',\n statusBadgeColor: 'red',\n buttonText: 'Update business info',\n buttonType: 'primary',\n title: RegistrationTitle.NotApproved,\n content: RegistrationContent.NotApproved,\n },\n // message campaign registration approved\n [RegistrationStage.RegistrationComplete]: {\n statusBadgeText: 'Active',\n statusBadgeColor: 'green',\n buttonText: '',\n buttonType: '',\n title: RegistrationTitle.ApprovedStatus,\n content: RegistrationContent.ApprovedStatus,\n },\n};\n\nconst SMSNumberToCardData: SMSNumberCardData = {\n statusBadgeText: 'Active',\n statusBadgeColor: 'green',\n};\n\n@Component({\n selector: 'sms-registration-card',\n templateUrl: './sms-registration-card.component.html',\n styleUrls: ['./sms-registration-card.component.scss'],\n})\nexport class SmsRegistrationCardComponent {\n constructor(\n private smsRegistrationService: SmsRegistrationService,\n private dialog: MatDialog,\n private router: Router,\n private route: ActivatedRoute,\n private smsService: SmsService,\n private environmentService: EnvironmentService,\n ) {}\n\n smsNumber$: Observable = this.smsRegistrationService.ownerId$.pipe(\n switchMap((internalId) => {\n return from(\n this.smsService.getAccountInfo({\n internalId,\n type: ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n }),\n );\n }),\n catchError((error) => {\n console.log('Error while getting SMS number:', error);\n return of(null);\n }),\n map((res) => res?.phoneNumber || null),\n filter((phoneNumber) => phoneNumber !== null),\n );\n\n accountGroupInfo$ = this.smsRegistrationService\n .getAccountGroupInfo$()\n .pipe(shareReplay({ bufferSize: 1, refCount: false }));\n\n country$: Observable = this.accountGroupInfo$.pipe(map((info) => info.napData.country));\n\n smsCardData$: Observable = this.country$.pipe(\n switchMap((country) => {\n if (country === 'CA') {\n return of(SMSNumberToCardData);\n }\n return this.smsRegistrationService.registrationStage$.pipe(map((stage) => RegistrationStageToCardData[stage]));\n }),\n );\n\n showPopover = false;\n\n openLearnMoreModal(): void {\n this.dialog.open(LearnMoreModalComponent, { width: '600px' });\n }\n\n closeInfoPopover(): void {\n this.showPopover = false;\n }\n\n toggleInfoPopover(): void {\n this.showPopover = !this.showPopover;\n }\n\n redirectToSMSRegistration(): void {\n this.router.navigate(['./sms-registration'], { relativeTo: this.route });\n }\n\n getLogoImage(): string {\n const env = this.environmentService.getEnvironment();\n if (env === Environment.PROD) {\n return 'https://vbc-prod.appspot.com/static/images/file-upload.png';\n }\n return 'https://vbc-demo.appspot.com/static/images/file-upload.png';\n }\n}\n","\n \n \n \"avatar\"\n {{ 'SMS_REGISTRATION.CARD.YOUR_SMS_NUMBER' | translate }}\n
\n \n {{ smsCardData.statusBadgeText }}\n \n
\n
\n \n
\n
\n

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

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

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

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

Submit business information?

\n\n

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

\n
\n\n \n \n\n","import { Component, DestroyRef, OnDestroy, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n A2PRegistrationInfoInterface,\n A2PRegistrationStatusInterface,\n AuthorizedRepresentativeInterface,\n BrandStatus,\n BusinessInterface,\n DataField,\n RegistrationIdentifierInterface,\n UpsertA2PRegistrationInfoRequestInterface,\n ValidationStatus,\n} from '@vendasta/smsv2';\nimport { Subscription, combineLatest, take } from 'rxjs';\nimport { SmsRegistrationService } from '../service/sms.service';\nimport { RegistrationStage } from '../sms.constants';\nimport { ConfirmationModalComponent } from './comfirmation-dialog/confirmation-modal.component';\nimport { BusinessCategory, BusinessType, Position, Region } from './types';\n\n// The format for american EINsn(Employer Identification Number) is XX-XXXXXXX\nconst EIN_REGEX = /^\\d{2}-\\d{7}$/;\n\n// The format of the phone number is +1 (XXX) XXX-XXXX\nconst PHONE_NUMBER_REGEX = /^\\+\\d{1,3}-\\d{3}-\\d{3}-\\d{4}$/;\n\n// The format of zip codes is either XXXXX or XXXXX-XXXX\nconst ZIP_CODE_REGEX = /^\\d{5}(?:-\\d{4})?$/;\n\n// IdentifierTypeEIN USA: Employer Identification Number.\nconst IdentifierTypeEIN = 'EIN';\n\nconst additionalAddressLine = 'additionalAddressLine';\nconst businessRegistrationNumber = 'businessRegistrationNumber';\nconst businessName = 'businessName';\n\n@Component({\n selector: 'sms-registration-form',\n templateUrl: './sms-registration-form.component.html',\n styleUrls: ['./sms-registration-form.component.scss'],\n})\nexport class SmsRegistrationFormComponent implements OnInit, OnDestroy {\n BusinessCategories = Object.values(BusinessCategory);\n BusinessTypes = Object.values(BusinessType);\n Regions = Object.values(Region);\n JobPositions = Object.values(Position);\n\n smsForm: FormGroup;\n formLocked = false;\n registrationStage: RegistrationStage = RegistrationStage.NotSubmitted;\n initialRegistrationFormInfo: Map = new Map();\n fieldsWithIssues: string[] = [];\n groupOfSomeValuesNeedToChange: string[] = [];\n customValidatorsMap = new Map();\n\n subscriptions: Subscription[] = [];\n\n fieldWithIssuesToFormFieldsMapping = new Map([\n [DataField.DATA_FIELD_LEGAL_BUSINESS_NAME, 'businessName'],\n [DataField.DATA_FIELD_BUSINESS_CATEGORY, 'businessCategory'],\n [DataField.DATA_FIELD_BUSINESS_TYPE, 'businessType'],\n [DataField.DATA_FIELD_REGION_OF_OPERATION, 'regionOfOperation'],\n [DataField.DATA_FIELD_BUSINESS_REGISTRATION_NUMBER, 'businessRegistrationNumber'],\n [DataField.DATA_FIELD_STREET_ADDRESS, 'address'],\n [DataField.DATA_FIELD_STREET_ADDRESS_SECONDARY, 'additionalAddressLine'],\n [DataField.DATA_FIELD_CITY, 'city'],\n [DataField.DATA_FIELD_STATE, 'state'],\n [DataField.DATA_FIELD_POSTAL_CODE, 'zipCode'],\n [DataField.DATA_FIELD_WEBSITE_URL, 'website'],\n [DataField.DATA_FIELD_COUNTRY, 'country'],\n [DataField.DATA_FIELD_FIRST_NAME, 'firstName'],\n [DataField.DATA_FIELD_LAST_NAME, 'lastName'],\n [DataField.DATA_FIELD_JOB_POSITION, 'jobPosition'],\n [DataField.DATA_FIELD_BUSINESS_TITLE, 'businessTitle'],\n [DataField.DATA_FIELD_EMAIL, 'email'],\n [DataField.DATA_FIELD_PHONE_NUMBER, 'phoneNumber'],\n ]);\n\n constructor(\n private formBuilder: FormBuilder,\n private smsRegistrationService: SmsRegistrationService,\n private snackbarService: SnackbarService,\n private modal: MatDialog,\n private destroyRef: DestroyRef,\n ) {\n this.smsForm = this.formBuilder.group({\n businessName: ['', Validators.maxLength(64)],\n businessCategory: [''],\n businessType: [''],\n regionOfOperation: [''],\n businessRegistrationNumber: ['', Validators.pattern(EIN_REGEX)],\n address: [''],\n additionalAddressLine: [''],\n state: [''],\n city: [''],\n zipCode: ['', Validators.pattern(ZIP_CODE_REGEX)],\n website: [''],\n firstName: [''],\n lastName: [''],\n jobPosition: [''],\n businessTitle: [''],\n email: ['', Validators.email],\n phoneNumber: ['', Validators.pattern(PHONE_NUMBER_REGEX)],\n });\n }\n\n ngOnInit(): void {\n this.getRegistration();\n const sub = this.smsForm.controls['jobPosition'].valueChanges.subscribe((value: string) => {\n const businessTitle = this.smsForm.value.businessTitle;\n const businessTitleInJobPositions = this.JobPositions.some((p) => p === businessTitle);\n\n if (value !== Position.otherPosition && (businessTitle === '' || businessTitleInJobPositions)) {\n this.smsForm.controls['businessTitle'].patchValue(value);\n } else if (value === Position.otherPosition && businessTitleInJobPositions) {\n this.smsForm.controls['businessTitle'].patchValue('');\n }\n });\n this.subscriptions.push(sub);\n\n Object.keys(this.smsForm.controls).forEach((key) => {\n this.subscriptions.push(\n this.smsForm.controls[key].valueChanges.subscribe(() => {\n if (this.groupOfSomeValuesNeedToChange.includes(key)) {\n this.groupOfSomeValuesNeedToChange.forEach((fieldName) => {\n this.smsForm.controls[fieldName].updateValueAndValidity({ emitEvent: false });\n });\n }\n }),\n );\n });\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n submitRegistrationForm(): void {\n this.toggleSubmitValidators(true);\n if (this.smsForm.invalid) {\n this.snackbarService.openErrorSnack('Invalid data for submission');\n return;\n }\n\n this.modal\n .open(ConfirmationModalComponent, { width: '420px' })\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result) {\n this.upsertData(true);\n }\n });\n }\n\n saveChanges(): void {\n // Don't show errors for empty required fields & unchanged error fields, when doing partial save\n this.toggleSubmitValidators(false);\n\n // Check for formatting errors\n const hasFormatErrors = Object.keys(this.smsForm.controls).some((key) => {\n const errors = this.smsForm.controls[key].errors;\n if (errors === null) {\n return;\n }\n\n return Object.keys(errors).some((errorKey) => errorKey !== 'required');\n });\n\n // If there are formatting errors don't save the form\n if (hasFormatErrors) {\n this.snackbarService.openErrorSnack('Invalid format for some fields');\n\n return;\n }\n\n this.upsertData(false);\n }\n\n upsertData(isSubmitted: boolean): void {\n const form = this.smsForm.value;\n // TODO: get country from form\n const country = 'US';\n\n const request = {\n business: {\n legalName: form.businessName,\n businessType: form.businessType,\n industry: form.businessCategory,\n registrationIdentifier: {\n identifierType: IdentifierTypeEIN,\n identifier: form.businessRegistrationNumber,\n } as RegistrationIdentifierInterface,\n regionOfOperation: form.regionOfOperation,\n websiteUrl: form.website,\n socialMediaProfileUrls: [],\n streetAddress: form.address,\n streetAddressSecondary: form.additionalAddressLine,\n city: form.city,\n state: form.state,\n postalCode: form.zipCode,\n country: country,\n } as BusinessInterface,\n authorizedRepresentative: {\n firstName: form.firstName,\n lastName: form.lastName,\n email: form.email,\n phoneNumber: form.phoneNumber,\n businessTitle: form.businessTitle,\n jobPosition: form.jobPosition,\n } as AuthorizedRepresentativeInterface,\n submitted: isSubmitted,\n } as UpsertA2PRegistrationInfoRequestInterface;\n\n this.smsRegistrationService.upsertA2pRegistration(request).subscribe(\n () => {\n this.snackbarService.openWithOptions('Registration Saved Successfully', {\n panelClass: ['success-snackbar'],\n });\n if (isSubmitted) {\n this.lockForm();\n this.smsRegistrationService.setRegistrationStage(RegistrationStage.ReviewingInfo);\n }\n },\n () => {\n this.snackbarService.openErrorSnack('Error Saving Registration');\n },\n );\n }\n\n getRegistration(): void {\n combineLatest([\n this.smsRegistrationService.a2PRegistrationInfo$,\n this.smsRegistrationService.registrationStage$,\n this.smsRegistrationService.a2pRegistrationStatus$,\n this.smsRegistrationService.getPrefillA2PFormInfo(),\n ])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(\n ([a2pRegistrationInfo, registrationStage, registrationStatus, a2PFormInfo]) => {\n this.registrationStage = registrationStage;\n this.prefillFormWithA2PFormInfo(a2PFormInfo as A2PRegistrationInfoInterface);\n\n if (\n registrationStage !== RegistrationStage.NotSubmitted &&\n registrationStage !== RegistrationStage.DataError\n ) {\n this.lockForm();\n } else {\n this.unlockForm();\n }\n\n if (registrationStage === RegistrationStage.DataError) {\n this.initialRegistrationFormInfo = this.getInitialRegistrationFormInfo(a2pRegistrationInfo);\n this.fieldsWithIssues = this.getFormFieldsWithIssues(registrationStatus);\n this.groupOfSomeValuesNeedToChange = this.getGroupOfSomeValuesNeedToChange(registrationStatus);\n this.fieldsWithIssues.forEach((fieldName) => {\n const control = this.smsForm.get(fieldName);\n if (control) {\n control.markAsTouched();\n }\n });\n this.groupOfSomeValuesNeedToChange.forEach((fieldName) => {\n const control = this.smsForm.get(fieldName);\n if (control) {\n control.markAsTouched();\n }\n });\n this.toggleSubmitValidators(true);\n }\n },\n (error) => {\n if (error.status !== 404) {\n this.snackbarService.openErrorSnack('Error Fetching Registration');\n }\n },\n );\n }\n\n lockForm(): void {\n this.formLocked = true;\n this.smsForm.disable();\n }\n\n unlockForm(): void {\n this.formLocked = false;\n this.smsForm.enable();\n }\n\n toggleSubmitValidators(on: boolean): void {\n Object.keys(this.smsForm.controls).forEach((key) => {\n const control = this.smsForm.controls[key];\n if (on) {\n if (key !== additionalAddressLine) {\n control.addValidators(Validators.required);\n }\n if (this.fieldsWithIssues.includes(key) && this.registrationStage === RegistrationStage.DataError) {\n const val = this.initialRegistrationFormInfo.get(key);\n if (val !== undefined) {\n const sameValueValidatorFn = this.sameValueValidator(val);\n control.addValidators(sameValueValidatorFn);\n this.customValidatorsMap.set(key, sameValueValidatorFn);\n }\n } else if (\n this.groupOfSomeValuesNeedToChange.includes(key) &&\n this.registrationStage === RegistrationStage.DataError\n ) {\n const someValueNeedsToChange = this.someValueNeedsToChangeValidator(this.groupOfSomeValuesNeedToChange);\n\n control.addValidators(someValueNeedsToChange);\n this.customValidatorsMap.set(key, someValueNeedsToChange);\n }\n } else {\n control.removeValidators(Validators.required);\n const customValidatorFn = this.customValidatorsMap.get(key);\n if (customValidatorFn) {\n control.removeValidators(customValidatorFn);\n this.customValidatorsMap.delete(key);\n }\n }\n\n control.updateValueAndValidity();\n });\n }\n\n getInitialRegistrationFormInfo(a2PRegistrationInfo: A2PRegistrationInfoInterface): Map {\n const result = new Map();\n result.set('businessName', a2PRegistrationInfo?.business?.legalName || '');\n result.set('businessCategory', a2PRegistrationInfo?.business?.industry || '');\n result.set('businessType', a2PRegistrationInfo?.business?.businessType || '');\n result.set('regionOfOperation', a2PRegistrationInfo?.business?.regionOfOperation || '');\n result.set('businessRegistrationNumber', a2PRegistrationInfo?.business?.registrationIdentifier?.identifier || '');\n result.set('address', a2PRegistrationInfo?.business?.streetAddress || '');\n result.set('additionalAddressLine', a2PRegistrationInfo?.business?.streetAddressSecondary || '');\n result.set('state', a2PRegistrationInfo?.business?.state || '');\n result.set('city', a2PRegistrationInfo?.business?.city || '');\n result.set('zipCode', a2PRegistrationInfo?.business?.postalCode || '');\n result.set('website', a2PRegistrationInfo?.business?.websiteUrl || '');\n result.set('firstName', a2PRegistrationInfo?.authorizedRepresentative?.firstName || '');\n result.set('lastName', a2PRegistrationInfo?.authorizedRepresentative?.lastName || '');\n result.set('jobPosition', a2PRegistrationInfo?.authorizedRepresentative?.jobPosition || '');\n result.set('businessTitle', a2PRegistrationInfo?.authorizedRepresentative?.businessTitle || '');\n result.set('email', a2PRegistrationInfo?.authorizedRepresentative?.email || '');\n result.set('phoneNumber', a2PRegistrationInfo?.authorizedRepresentative?.phoneNumber || '');\n return result;\n }\n\n sameValueValidator(originalFormFieldValue: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (originalFormFieldValue === control.value) {\n return { sameValueError: true };\n }\n return null;\n };\n }\n\n someValueNeedsToChangeValidator(groupOfFields: string[]) {\n const originalValuesMap: Map = new Map();\n groupOfFields.forEach((fieldName) => {\n const val = this.initialRegistrationFormInfo.get(fieldName);\n if (val === undefined) {\n return;\n }\n originalValuesMap.set(fieldName, val);\n });\n\n return (): ValidationErrors | null => {\n let passed = false;\n for (const [fieldName, originalValue] of originalValuesMap.entries()) {\n const c = this.smsForm.get(fieldName);\n if (c !== null && c.value !== originalValue) {\n passed = true;\n break;\n }\n }\n if (!passed) {\n return { groupValueError: true };\n }\n return null;\n };\n }\n\n getFormFieldsWithIssues(registrationStatus: A2PRegistrationStatusInterface): string[] {\n const result: string[] = [];\n if (registrationStatus === null || registrationStatus === undefined) {\n return [];\n }\n if (\n !!registrationStatus.secondaryBusinessProfile &&\n registrationStatus.secondaryBusinessProfile.status === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT &&\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues &&\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues.length > 0\n ) {\n registrationStatus.secondaryBusinessProfile.fieldsWithIssues.forEach((field) => {\n const val = this.fieldWithIssuesToFormFieldsMapping.get(field);\n if (val !== undefined) {\n result.push(val);\n }\n });\n }\n if (\n !!registrationStatus.trustBundle &&\n registrationStatus.trustBundle.status === ValidationStatus.VALIDATION_STATUS_NON_COMPLIANT &&\n !!registrationStatus.trustBundle.fieldsWithIssues &&\n registrationStatus.trustBundle.fieldsWithIssues.length > 0\n ) {\n registrationStatus.trustBundle.fieldsWithIssues.forEach((field) => {\n const val = this.fieldWithIssuesToFormFieldsMapping.get(field);\n if (val !== undefined) {\n result.push(val);\n }\n });\n }\n\n return result;\n }\n\n getGroupOfSomeValuesNeedToChange(registrationStatus: A2PRegistrationStatusInterface): string[] {\n const result: string[] = [];\n if (registrationStatus === null || registrationStatus === undefined) {\n return [];\n }\n\n if (!!registrationStatus.brand && registrationStatus.brand.status === BrandStatus.BRAND_STATUS_FAILED) {\n result.push(businessRegistrationNumber);\n result.push(businessName);\n }\n\n return result;\n }\n\n prefillFormWithA2PFormInfo(a2pRegistrationInfo: A2PRegistrationInfoInterface): void {\n this.smsForm.patchValue({\n businessName: a2pRegistrationInfo?.business?.legalName,\n businessCategory: a2pRegistrationInfo?.business?.industry,\n businessType: a2pRegistrationInfo?.business?.businessType,\n regionOfOperation: a2pRegistrationInfo?.business?.regionOfOperation,\n businessRegistrationNumber: a2pRegistrationInfo?.business?.registrationIdentifier?.identifier,\n address: a2pRegistrationInfo?.business?.streetAddress,\n additionalAddressLine: a2pRegistrationInfo?.business?.streetAddressSecondary,\n state: a2pRegistrationInfo?.business?.state,\n city: a2pRegistrationInfo?.business?.city,\n zipCode: a2pRegistrationInfo?.business?.postalCode,\n website: a2pRegistrationInfo?.business?.websiteUrl,\n firstName: a2pRegistrationInfo?.authorizedRepresentative?.firstName,\n lastName: a2pRegistrationInfo?.authorizedRepresentative?.lastName,\n jobPosition: a2pRegistrationInfo?.authorizedRepresentative?.jobPosition,\n businessTitle: a2pRegistrationInfo?.authorizedRepresentative?.businessTitle,\n email: a2pRegistrationInfo?.authorizedRepresentative?.email,\n phoneNumber: a2pRegistrationInfo?.authorizedRepresentative?.phoneNumber,\n });\n }\n}\n","
\n
\n \n \n
\n Business information\n lock\n
\n
\n\n \n \n \n \n Legal business name\n \n \n \n This must be the same name your business uses for tax purposes. For example: Roadside Coffee Inc.\n \n \n Business name should be maximum of 64 characters.\n \n \n\n \n \n \n Business category\n \n \n \n {{ businessCategory | businessCategoryToLabel }}\n \n \n \n\n \n \n \n Business type\n \n \n \n {{ businessType }}\n \n \n \n\n \n \n \n Country/region\n \n \n {{ region | regionToLabel }}\n \n \n\n \n \n \n Business registration number\n \n \n \n For US-based companies, this must be your business EIN number\n \n \n For US-based companies, this must be your business EIN number\n \n \n\n \n \n \n Address\n \n \n \n\n \n \n \n Additional address line\n \n \n \n\n \n \n \n \n State\n \n \n \n\n \n \n \n City\n \n \n \n \n\n \n \n \n Zip Code\n \n \n \n Not a valid zip code\n \n \n\n \n \n \n Website\n \n \n If you don't have a business website, provide an online listing\n \n \n
\n\n \n \n
\n Authorized business representative\n lock\n
\n
\n \n \n \n \n \n First name\n \n \n \n\n \n \n \n Last name\n \n \n \n \n\n \n \n \n Job position\n \n \n \n {{ jobPosition }}\n \n \n \n\n \n \n \n Title\n \n \n For example CEO, CTO, Manager\n \n\n \n \n \n Email\n \n \n Email of Authorized Business Representative\n \n Not a valid email\n \n \n\n \n \n \n Phone number\n \n \n \n Best way to contact the authorized business representative. Required format +1-123-456-7890\n \n \n Required format +1-123-456-7890\n \n \n \n
\n
\n\n
\n \n\n \n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sms-registration',\n templateUrl: './sms-registration.component.html',\n styleUrls: ['./sms-registration.component.scss'],\n})\nexport class SmsRegistrationComponent {}\n","
\n \n \n \n
\n","{\n \"SMS_REGISTRATION\": {\n \"ALERT\": {\n \"BUSINESS_INFO_REQUIRED_TITLE\": \"Business information required\",\n \"MORE_DETAILS_SUGGESTION\": \"More details are needed about your business to send SMS messages to customers.\",\n \"UPDATE_INFO_ACTION_TITLE\": \"Update business info\",\n \"REJECTED_TITLE\": \"SMS registration rejected\",\n \"REJECTED_SUGGESTION\": \"update your information and try submitting again to access SMS features.\"\n },\n \"CARD\": {\n \"YOUR_SMS_NUMBER\": \"Your SMS number\",\n \"ASSIGNED_NUMBER_TITLE\": \"Assigned Number\",\n \"ASSIGNED_NUMBER_DESCRIPTION\": \"Your number is automatically assigned based on available options in your area.\"\n },\n \"INFO_BANNER\": {\n \"LEARN_MORE\": \"Learn more\"\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/sms',\n baseTranslation: En,\n }),\n ],\n})\nexport class SMSI18NModule {}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { InfoBannerComponent } from './info-banner/info-banner.component';\nimport { SmsRegistrationService } from './service/sms.service';\nimport { SmsRegistrationAlertComponent } from './sms-registration-alert/sms-registration-alert.component';\nimport { SmsRegistrationBannerComponent } from './sms-registration-banner/sms-registration-banner.component';\nimport { SmsRegistrationCardComponent } from './sms-registration-card/sms-registration-card.component';\nimport { SmsRegistrationErrorBannerComponent } from './sms-registration-error-banner/sms-registration-error-banner.component';\nimport { BusinessCategoryToLabelPipe } from './sms-registration-form/pipes/business-category-to-label.pipe';\nimport { RegionToLabelPipe } from './sms-registration-form/pipes/region-to-label.pipe';\nimport { SmsRegistrationFormComponent } from './sms-registration-form/sms-registration-form.component';\nimport { SmsRegistrationComponent } from './sms-registration/sms-registration.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SMSI18NModule } from './assets/i18n/sms-i18n.module';\n\n@NgModule({\n declarations: [\n SmsRegistrationFormComponent,\n SmsRegistrationComponent,\n SmsRegistrationBannerComponent,\n SmsRegistrationAlertComponent,\n SmsRegistrationErrorBannerComponent,\n SmsRegistrationCardComponent,\n ],\n exports: [SmsRegistrationComponent, SmsRegistrationAlertComponent, SmsRegistrationCardComponent],\n imports: [\n CommonModule,\n MatCardModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n ReactiveFormsModule,\n BusinessCategoryToLabelPipe,\n RegionToLabelPipe,\n MatIconModule,\n InfoBannerComponent,\n GalaxyAlertModule,\n MatChipsModule,\n GalaxyBadgeModule,\n GalaxyPopoverModule,\n CdkOverlayOrigin,\n TranslateModule,\n SMSI18NModule,\n ],\n providers: [SmsRegistrationService],\n})\nexport class SmsModule {}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatableApp } from '@vendasta/marketplace-packages';\nimport {\n ListSubstitutionParametersRequestFiltersInterface,\n SubstitutionParameter,\n TemplatesService,\n} from '@vendasta/templates';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport {\n AppListingServiceInterface,\n EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN,\n} from '@galaxy/email-ui/email-builder/src/services/app-listing-service.interface';\n\nexport interface Option {\n title: string;\n value: string;\n}\n\nexport interface VariableMenuItemOptions {\n requiredParams: string[];\n nestedDynamicSelector: boolean;\n}\n\nexport interface VariableMenuItem {\n textKey: string;\n replacementTags: string[];\n template?: string;\n subItems?: SubstitutionParameter[];\n options?: VariableMenuItemOptions;\n}\n\nconst defaultDynamicComponents = [\n {\n textKey: 'DYNAMIC_COMPONENT_SELECTOR.CONTACT_DETAILS',\n replacementTags: ['crmContactFirstName', 'crmContactLastName'],\n },\n];\n\n@Injectable()\nexport class DynamicComponentSelectorService {\n private parentVariableCategories: VariableMenuItem[] = [];\n\n constructor(\n private readonly templatesService: TemplatesService,\n @Inject(EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN) @Optional() private appListingService: AppListingServiceInterface,\n ) {\n this.overrideParentVariableCategories(defaultDynamicComponents);\n }\n\n public hasComponentsToDisplay(): boolean {\n return this.parentVariableCategories.length > 0;\n }\n\n public getVariables(filters: ListSubstitutionParametersRequestFiltersInterface): Observable {\n return this.templatesService\n .listSubstitutionParameters(filters)\n .pipe(map((params) => this.filterSubstitutionParameters(params)));\n }\n\n private filterSubstitutionParameters(params: SubstitutionParameter[]): VariableMenuItem[] {\n return this.parentVariableCategories.map((v) => ({\n textKey: v.textKey,\n replacementTags: v.replacementTags,\n options: v.options,\n subItems: params\n .filter((p) => v.replacementTags.some((t) => t === p.replacementTag))\n .sort(function (a, b): number {\n return v.replacementTags.indexOf(a.replacementTag) - v.replacementTags.indexOf(b.replacementTag);\n }),\n }));\n }\n\n public getProductSubstitutionVariables(): Observable {\n return this.appListingService.listAllActivatableApps().pipe(take(1));\n }\n\n public overrideParentVariableCategories(variableCategories: VariableMenuItem[]): VariableMenuItem[] {\n return (this.parentVariableCategories = variableCategories);\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Option, VariableMenuItem, DynamicComponentSelectorService } from '../dynamic-component-selector.service';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { SubstitutionParameter } from '@vendasta/templates';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'templates-dynamic-component-dialog',\n templateUrl: './dynamic-component-dialog.component.html',\n styleUrls: ['./dynamic-component-dialog.component.scss'],\n})\nexport class DynamicComponentDialogComponent implements OnInit {\n @Output() formResult: EventEmitter = new EventEmitter();\n readonly allowedEntryApps = ['RM', 'SM'];\n\n variables$: Observable = this.dynamicComponentSelectorService\n .getVariables({ includeHtml: true })\n .pipe(\n map((vars) => {\n return vars.filter((v) => {\n return (v?.options?.requiredParams || []).reduce((prev, curr, i, arr) => {\n return prev && !!this[arr[i]];\n }, true);\n });\n }),\n shareReplay(1),\n );\n\n chosenCategory: VariableMenuItem = null;\n chosenParam: SubstitutionParameter = null;\n chosenParamDetails: string = null;\n chosenDynamicParam$$ = new ReplaySubject(1);\n chosenDynamicParam$: Observable;\n\n constructor(\n private readonly dynamicComponentSelectorService: DynamicComponentSelectorService,\n public dialogRef: MatDialogRef,\n ) {}\n\n ngOnInit(): void {\n this.chosenDynamicParam$ = this.chosenDynamicParam$$.asObservable().pipe(\n switchMap((chosenDynamicParam) => {\n if (\n chosenDynamicParam === 'productName' ||\n chosenDynamicParam === 'productPreviewUrl' ||\n chosenDynamicParam === 'productUrl'\n ) {\n return this.dynamicComponentSelectorService.getProductSubstitutionVariables().pipe(\n map((apps) => {\n if (chosenDynamicParam === 'productUrl') {\n apps = apps.filter((a) => this.allowedEntryApps.includes(a.appId));\n }\n return apps.map((app) => {\n return {\n title: app.name,\n value: app.appId,\n };\n });\n }),\n );\n }\n }),\n );\n }\n\n handleCategoryChange(): void {\n this.chosenParam = null;\n this.chosenParamDetails = null;\n }\n\n handleParamChange(): void {\n this.chosenParamDetails = null;\n if (\n this.chosenParam.replacementTag === 'productName' ||\n this.chosenParam.replacementTag === 'productPreviewUrl' ||\n this.chosenParam.replacementTag === 'productUrl'\n ) {\n this.chosenDynamicParam$$.next(this.chosenParam.replacementTag);\n }\n }\n\n add(): void {\n let replacementTag = this.chosenParam.replacementTag;\n if (this.chosenParamDetails) {\n replacementTag = `${replacementTag}['${this.chosenParamDetails}']`;\n }\n this.dialogRef.close('{{ ' + replacementTag + ' }}');\n }\n\n close(): void {\n this.dialogRef.close(null);\n }\n}\n","\n

{{ 'DYNAMIC_COMPONENT_DIALOG.ADD_HEADING' | translate }}

\n \n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.CATEGORY' | translate }}\n \n \n {{ mainItem.textKey | translate }}\n \n \n \n \n \n \n \n \n {{ chosenCategory.textKey | translate }}\n \n \n \n {{ subParam.displayName | translate }}\n \n \n \n \n \n \n \n \n \n \n {{ chosenParam.displayName | translate }}\n \n \n \n {{ v.title | translate }}\n \n \n \n \n \n \n
\n
\n
\n \n
\n\n
\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.ADD_BUTTON' | translate }}\n \n
\n
\n\n\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.NO_OPTIONS' | translate }}\n \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { take } from 'rxjs/operators';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorService } from './dynamic-component-selector.service';\n\n@Component({\n selector: 'templates-dynamic-component-selector',\n templateUrl: 'dynamic-component-selector.component.html',\n styleUrls: ['dynamic-component-selector.component.scss'],\n})\nexport class DynamicComponentSelectorComponent {\n @Input() marketId: string;\n @Input() target: HTMLTextAreaElement;\n @Input() model: string;\n\n @Output() modelChange: EventEmitter = new EventEmitter();\n\n public variablesReady = this.variableService.hasComponentsToDisplay();\n\n constructor(\n private dialog: MatDialog,\n private variableService: DynamicComponentSelectorService,\n ) {}\n\n openDialog(): void {\n const dialogRef = this.dialog.open(DynamicComponentDialogComponent, {\n width: '450px',\n height: '450px',\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res: string | null) => {\n if (res) {\n this.selectVariable(res);\n }\n });\n }\n\n selectVariable(replacementTag: string): void {\n const startPos = this.target.selectionStart;\n const endPos = this.target.selectionEnd ?? startPos;\n\n const contentBefore = this.target.value.substr(0, startPos);\n const contentAfter = this.target.value.substr(endPos, this.target.value.length);\n\n const newValue = contentBefore + replacementTag + contentAfter;\n this.target.value = newValue;\n this.target.selectionStart = startPos;\n\n this.modelChange.emit(newValue);\n\n // Using setTimeout fix bug where input does not focus\n window.setTimeout(() => {\n this.target.focus();\n this.target.setSelectionRange(startPos, replacementTag.length + startPos);\n }, 0);\n }\n}\n","\n data_object\n\n","{\n \"DYNAMIC_COMPONENT_SELECTOR\": {\n \"INSERT_DYNAMIC_CONTENT\": \"Insert dynamic content\",\n \"SNAPSHOT_REPORT\": \"Snapshot report\",\n \"BUSINESS_APP_DETAILS\": \"Business app details\",\n \"SALESPERSON_DETAILS\": \"Salesperson details\",\n \"PARTNER_DETAILS\": \"Partner details\",\n \"ACCOUNT_DETAILS\": \"Account details\",\n \"PRODUCT_DETAILS\": \"Product details\",\n \"CONTACT_DETAILS\": \"Contact details\"\n },\n \"DYNAMIC_COMPONENT_DIALOG\": {\n \"ADD_HEADING\": \"Add dynamic content\",\n \"CATEGORY\": \"Category\",\n \"CANCEL_BUTTON\": \"Cancel\",\n \"ADD_BUTTON\": \"Add\",\n \"NO_OPTIONS\": \"No options found\"\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/templates',\n baseTranslation: En,\n }),\n ],\n})\nexport class TemplatesI18nModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorComponent } from './dynamic-component-selector.component';\nimport {\n DynamicComponentSelectorService,\n VariableMenuItemOptions,\n VariableMenuItem,\n Option,\n} from './dynamic-component-selector.service';\nimport { TemplatesI18nModule } from '../assets/i18n/templates-i18n.module';\n\n@NgModule({\n providers: [DynamicComponentSelectorService],\n declarations: [DynamicComponentSelectorComponent, DynamicComponentDialogComponent],\n imports: [\n CommonModule,\n GalaxyTooltipModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n MatButtonModule,\n MatDialogModule,\n MatInputModule,\n MatListModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatOptionModule,\n TranslateModule,\n MatSelectModule,\n GalaxyEmptyStateModule,\n TemplatesI18nModule,\n ],\n exports: [DynamicComponentSelectorComponent],\n})\nexport class DynamicComponentSelectorModule {}\n\nexport { DynamicComponentSelectorService, VariableMenuItemOptions, VariableMenuItem, Option };\n","export * from './lib/dynamic-component-selector/dynamic-component-selector.module';\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { TextMessageBuilderForm } from '../interfaces';\nimport { MatInputModule } from '@angular/material/input';\nimport { DynamicComponentSelectorModule } from '@galaxy/templates';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'sms-builder-form',\n templateUrl: 'text-message-builder-form.component.html',\n styleUrls: ['./text-message-builder-form.component.scss'],\n imports: [CommonModule, GalaxyFormFieldModule, ReactiveFormsModule, MatInputModule, DynamicComponentSelectorModule],\n})\nexport class TextMessageBuilderFormComponent implements OnInit {\n smsForm = new FormGroup({\n name: new FormControl(''),\n message: new FormControl(''),\n });\n\n @ViewChild('smsText') smsText?: ElementRef;\n\n @Input()\n set setInitialInputText(inputText: TextMessageBuilderForm) {\n this.smsForm.patchValue(inputText);\n }\n\n @Input() allowDynamic: boolean;\n\n @Output() template: EventEmitter = new EventEmitter();\n @Output() valid: EventEmitter = new EventEmitter();\n\n ngOnInit() {\n this.smsForm.valueChanges.subscribe((value) => {\n this.template.emit(value as TextMessageBuilderForm);\n });\n this.smsForm.statusChanges.subscribe((status) => {\n this.valid.emit(status === 'VALID');\n });\n }\n\n emitNewTemplateValue(value: string) {\n this.template.emit({ message: value } as TextMessageBuilderForm);\n }\n}\n","
\n \n Template Name\n \n \n \n \n Message\n \n \n \n \n \n \n \n
Message
\n \n \n
\n
\n \n
\n
\n
\n","import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @deprecated Use the new `glxy-chat-message-group` component instead\n */\n@Component({\n selector: 'glxy-chat-bubble',\n templateUrl: './chat-bubble.component.html',\n styleUrls: ['./chat-bubble.component.scss'],\n})\nexport class ChatBubbleComponent {\n @HostBinding('class') class = 'glxy-chat-bubble';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageText?: string;\n\n @Input() messageFrom?: string;\n\n @Input() messageMetadata?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconUrl?: string;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = true;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n\n get profilePicCSS(): string {\n return this.profilePicUrl ? 'url(' + this.profilePicUrl + ')' : '';\n }\n\n get profileSourceIconCSS(): string {\n return this.profileSourceIconUrl ? 'url(' + this.profileSourceIconUrl + ')' : '';\n }\n}\n","\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-divider-text',\n templateUrl: './chat-divider-text.component.html',\n styleUrls: ['./chat-divider-text.component.scss'],\n})\nexport class ChatDividerTextComponent {}\n","
\n \n
\n","import { Component, ElementRef, HostListener, Input, inject } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-event',\n templateUrl: './chat-event.component.html',\n styleUrls: ['./chat-event.component.scss'],\n})\nexport class ChatEventComponent {\n @Input() messageMetadata?: string | null;\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n private clickTimeout = 0;\n\n @HostListener('document:mousedown', ['$event'])\n onMouseDown(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Start a new click timeout with a delay of 300 milliseconds\n this.clickTimeout = window.setTimeout(() => {\n // Check if the target is outside of the .bubble element\n if (!this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = false;\n }\n }, 300);\n }\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Check if the target is inside the .pill element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n if (!isLink && this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n this.isMetadataPresented = false;\n }\n }\n}\n","
\n \n
\n
\n {{ messageMetadata }}\n
\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-container',\n templateUrl: './chat-container.component.html',\n styleUrls: ['./chat-container.component.scss'],\n})\nexport class ChatContainerComponent implements AfterViewInit, OnChanges, OnDestroy {\n @HostBinding('class') class = 'glxy-chat-container';\n\n @ViewChild('chatContent') chatContent?: ElementRef;\n\n @Input() chatId = '';\n\n showNewMessageIndicator = false;\n\n get scrollable(): HTMLDivElement | undefined {\n return this.chatContent?.nativeElement;\n }\n\n get scrollTop(): number {\n return this.scrollable?.scrollTop ?? 0;\n }\n\n scrollTo({ top = 0, behavior = 'smooth' }: ScrollToOptions = {}): void {\n this.scrollable?.scrollTo({ top, behavior });\n }\n\n onNewMessageReceived(): void {\n if (this.scrollTop < 0) {\n this.showNewMessageIndicator = true;\n } else {\n this.mobileSafariScrollFix();\n }\n }\n\n onNewMessageSent(): void {\n // jump to bottom instantly so new message can animate into view\n this.scrollToBottom({ behavior: 'instant' });\n this.mobileSafariScrollFix();\n }\n\n scrollToBottom({ behavior }: ScrollToOptions = {}): void {\n // column-reverse means top: 0 is bottom\n // on iOS, always scroll to bottom instantly\n if (this.isIOS) {\n this.scrollTo({ top: 0, behavior: 'instant' });\n } else {\n this.scrollTo({ top: 0, behavior });\n }\n }\n\n onScroll(): void {\n if (this.scrollTop >= 0) {\n this.showNewMessageIndicator = false;\n }\n }\n\n mobileSafariScrollFix(): void {\n if (!this.isIOS) return;\n\n this.scrollTo({ top: this.scrollTop - 1 });\n window.setTimeout(() => {\n this.scrollToBottom();\n }, this.animationDuration * 2);\n }\n isIOS = /iPad|iPhone|iPod/.test(window.navigator.userAgent);\n\n ngAfterViewInit(): void {\n this.resetAnimationDuration();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.chatId) {\n const isDifferentConversation = changes?.chatId.currentValue != changes?.chatId.previousValue;\n if (isDifferentConversation) {\n this.resetAnimationDuration();\n }\n }\n }\n\n private animationTimer = 0;\n @Input() animationDuration = 0; // TODO(pascal): set this to 150 once µConversation updates are done\n currentAnimationDuration = 0;\n\n @HostBinding('style.--animation-duration')\n get getAnimationDurationStyle() {\n return `${this.currentAnimationDuration}ms`;\n }\n\n resetAnimationDuration(): void {\n window.clearTimeout(this.animationTimer);\n this.currentAnimationDuration = 0;\n this.animationTimer = window.setTimeout(() => {\n // always use 0 duration on iOS, so we don't have animation on the initial content\n const animationDuration = this.isIOS ? 0 : this.animationDuration;\n this.currentAnimationDuration = animationDuration;\n }, this.animationDuration * 2);\n // timeout delay must be greater than the animation duration, so we don't\n // have animation on the initial content\n }\n\n ngOnDestroy(): void {\n window.clearTimeout(this.animationTimer);\n }\n}\n","
\n \n
\n\n
\n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport DOMPurify from 'dompurify';\n\nexport type ChatMessageStatus = 'sending' | 'sent' | 'failed' | 'delivered' | 'undelivered' | undefined;\n\n@Component({\n selector: 'glxy-chat-message',\n standalone: true,\n imports: [CommonModule, MatIconModule, TranslateModule],\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageComponent implements AfterViewInit {\n @HostBinding('class')\n get class() {\n return ['glxy-chat-message', this.messageStatusClass];\n }\n\n @Input() itemContent: 'message' | 'attachment' = 'message';\n\n @Input() isTyping = false;\n\n @Input() messageText?: string;\n\n @Input() messageStatus?: ChatMessageStatus;\n\n @Input() messageTime?: string | null;\n\n get messageStatusText(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.DELIVERED';\n case 'failed':\n case 'undelivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.UNDELIVERED';\n case 'sent':\n return 'GALAXY.CHAT.MESSAGE_STATUS.SENT';\n case 'sending':\n default:\n return '';\n }\n }\n\n get messageStatusClass(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'delivered';\n case 'failed':\n case 'undelivered':\n return 'failed';\n case 'sent':\n return 'sent';\n case 'sending':\n return 'sending';\n default:\n return '';\n }\n }\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n\n @ViewChild('bubbleElement') bubbleElement!: ElementRef;\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Check if metadata is being clicked\n if (this.eRef.nativeElement.querySelector('.metadata')?.contains(event.target)) {\n return;\n }\n\n // Check if the target is inside the element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n const isInElement = this.eRef.nativeElement.contains(event.target);\n if (!isLink && isInElement) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n if (this.itemContent === 'message') {\n this.isMetadataPresented = false;\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.messageText && !this.isTyping) {\n this.bubbleElement.nativeElement.innerHTML = DOMPurify.sanitize(this.messageText);\n }\n }\n}\n","
\n error\n
\n \n \n \n\n \n\n \n \n \n \n\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n \n \n {{ messageStatusText | translate }}\n {{ messageTime }}\n \n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ChatSourceId } from '@vendasta/galaxy/chat-composer';\nimport { ChatMessageComponent } from '../chat-message/chat-message.component';\n\n@Component({\n selector: 'glxy-chat-message-group',\n standalone: true,\n imports: [CommonModule, GalaxyAvatarModule, ChatMessageComponent, TranslateModule],\n templateUrl: './chat-message-group.component.html',\n styleUrls: ['./chat-message-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageGroupComponent {\n @HostBinding('class') class = 'glxy-chat-message-group';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageFrom = '';\n\n @Input() messageMetadata?: string;\n\n @Input() profileIcon?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconName?: ChatSourceId;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = false;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n}\n","\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n {{ sentFromYou ? ('GALAXY.CHAT.YOU' | translate) : messageFrom }}\n  \n {{ messageMetadata }}\n
\n\n \n\n \n \n \n
\n\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'glxy-additional-metadata, [glxyAdditionalMetadata]',\n})\nexport class AdditionalMetadataDirective {\n @HostBinding('class') class = 'glxy-additional-metadata';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { ChatBubbleComponent } from './chat-bubble/chat-bubble.component';\nexport { ChatBubbleComponent };\n\nimport { ChatDividerTextComponent } from './chat-divider-text/chat-divider-text.component';\nexport { ChatDividerTextComponent };\n\nimport { ChatEventComponent } from './chat-event/chat-event.component';\nexport { ChatEventComponent };\n\nimport { ChatContainerComponent } from './chat-container/chat-container.component';\nexport { ChatContainerComponent };\n\nimport { ChatMessageGroupComponent } from './chat-message-group/chat-message-group.component';\nexport { ChatMessageGroupComponent };\n\nimport { ChatMessageComponent } from './chat-message/chat-message.component';\nexport { ChatMessageComponent };\n\nimport { ChatMessageStatus } from './chat-message/chat-message.component';\nexport { ChatMessageStatus };\n\nimport { AdditionalMetadataDirective } from './directives/additional-metadata';\n\nexport const MODULE_IMPORTS = [\n CommonModule,\n MatTooltipModule,\n CdkScrollableModule,\n GalaxyAvatarModule,\n ChatMessageGroupComponent,\n ChatMessageComponent,\n MatButtonModule,\n MatIconModule,\n];\n\nexport const MODULE_DECLARATIONS = [\n ChatBubbleComponent,\n ChatDividerTextComponent,\n ChatEventComponent,\n ChatContainerComponent,\n AdditionalMetadataDirective,\n];\n\nexport const MODULE_EXPORTS = [...MODULE_DECLARATIONS, ChatMessageGroupComponent, ChatMessageComponent];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyChatModule {}\n","export * from './src/chat.module';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ChatMessageComponent, ChatMessageGroupComponent } from '@vendasta/galaxy/chat';\nimport { MatCardModule } from '@angular/material/card';\nimport { TemplatesService, TemplateType } from '@vendasta/templates';\nimport { Observable, tap } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'sms-builder-preview',\n templateUrl: 'text-message-builder-preview.component.html',\n styleUrls: ['./text-message-builder-preview.component.scss'],\n imports: [CommonModule, ChatMessageGroupComponent, ChatMessageComponent, MatCardModule],\n})\nexport class TextMessageBuilderPreviewComponent implements OnChanges {\n @Input() messageText?: string;\n @Input() allowDynamic: boolean;\n rendered$: Observable;\n loading = false;\n\n constructor(private readonly templates: TemplatesService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.allowDynamic) {\n this.loading = true;\n this.rendered$ = this.templates\n .render(\n changes['messageText'].currentValue,\n {\n account_group_id: 'want-fake-value-displayed',\n partner_id: 'want-fake-value-displayed',\n contact_id: 'want-fake-value-displayed',\n },\n TemplateType.TEMPLATE_TYPE_GOLANG_TEXT,\n {\n accountGroupId: 'account_group_id',\n partnerId: 'partner_id',\n contactId: 'contact_id',\n },\n undefined,\n undefined,\n undefined,\n true,\n )\n .pipe(tap((_) => (this.loading = false)));\n }\n }\n}\n","\n {{ rendered$ | async }}\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TextMessageBuilderFormComponent } from './text-message-builder-form/text-message-builder-form.component';\nimport { TextMessageBuilderPreviewComponent } from './text-message-builder-preview/text-message-builder-preview.component';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { TextMessageBuilderForm } from './interfaces';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\n\n@Component({\n standalone: true,\n selector: 'sms-builder',\n templateUrl: 'text-message-builder.component.html',\n styleUrls: ['./text-message-builder.component.scss'],\n imports: [MatCardModule, CommonModule, TextMessageBuilderFormComponent, TextMessageBuilderPreviewComponent],\n})\nexport class TextMessageBuilderComponent implements OnInit {\n initialInputText: TextMessageBuilderForm = { message: '', name: '' };\n private sms$$: BehaviorSubject = new BehaviorSubject({\n name: '',\n message: '',\n });\n sms$: Observable = this.sms$$.asObservable();\n\n private valid$$: BehaviorSubject = new BehaviorSubject(false);\n valid$: Observable = this.valid$$.asObservable();\n\n @Input() allowDynamic: boolean;\n\n @Input()\n set setMessageBuilderText(messageBuilderText: TextMessageBuilderForm) {\n if (messageBuilderText) {\n this.initialInputText = messageBuilderText;\n }\n }\n\n @Output() sms: EventEmitter = new EventEmitter();\n @Output() valid: EventEmitter = new EventEmitter();\n\n ngOnInit() {\n this.sms$.subscribe((value) => {\n this.sms.emit(value as TextMessageBuilderForm);\n });\n this.valid$.subscribe((status) => {\n this.valid.emit(status);\n });\n }\n\n updateSMS(m: TextMessageBuilderForm) {\n this.sms$$.next(m);\n }\n\n updateValid(m: boolean) {\n this.valid$$.next(m);\n }\n}\n","
\n \n \n \n \n \n
\n \n
\n
\n","export * from './lib/sms.module';\nexport { SmsRegistrationService } from './lib/service/sms.service';\nexport { RegistrationStage } from './lib/sms.constants';\nexport { TextMessageBuilderComponent } from './lib/text-message-builder/text-message-builder.component';\nexport { TextMessageBuilderForm } from './lib/text-message-builder/interfaces';\nexport { SmsInjectionToken } from './lib/token';\n"],"mappings":"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","names":["enumStringToValue$5","enumRef","value","enumStringToValue$4","enumStringToValue","ParticipantType","OwnerType","DataField","BrandStatus","MessagingCampaignStatus","ValidationStatus","StatusType","LimitType","Participant","A2PRegistrationInfo","A2PRegistrationStatus","AuthorizedRepresentative","Brand","Business","MessagingCampaign","RegistrationIdentifier","SecondaryBusinessProfile","TrustBundle","Attribute","CreateA2PRegistrationInfoRequest","CreateSmsClickedEventRequest","DeleteA2PRegistrationInfoRequest","GetA2PRegistrationInfoRequest","GetA2PRegistrationInfoResponse","GetAccountInfoRequest","GetAccountInfoResponse","GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","GetLatestA2PRegistrationStatusRequest","GetLatestA2PRegistrationStatusResponse","GetLimitRequest","GetLimitResponse","Recipient","SendMessageV2Request","SendMessageV2Response","Sender","StatusStat","TriggerA2PRegistrationRequest","UpsertA2PRegistrationInfoRequest","environment","hostMap","HostService","A2PRegistrationApiService","EventApiService","SmsApiService","SmsService","EventService","init_vendasta_smsv2","__esmMin","init_core","init_http","init_operators","_Participant","proto","m","kwargs","toReturn","_A2PRegistrationInfo","_A2PRegistrationStatus","_AuthorizedRepresentative","_Brand","_Business","_MessagingCampaign","_RegistrationIdentifier","_SecondaryBusinessProfile","v","_TrustBundle","_Attribute","_CreateA2PRegistrationInfoRequest","_CreateSmsClickedEventRequest","_DeleteA2PRegistrationInfoRequest","_GetA2PRegistrationInfoRequest","_GetA2PRegistrationInfoResponse","_GetAccountInfoRequest","_GetAccountInfoResponse","_GetAttributeEventStatsRequest","_GetAttributeEventStatsResponse","_GetLatestA2PRegistrationStatusRequest","_GetLatestA2PRegistrationStatusResponse","_GetLimitRequest","_GetLimitResponse","_Recipient","_SendMessageV2Request","_SendMessageV2Response","_Sender","_StatusStat","_TriggerA2PRegistrationRequest","_UpsertA2PRegistrationInfoRequest","t","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","__spreadProps","__spreadValues","map","resp","ɵɵinject","HttpClient","smsApiService","sender","eventService","attribute","SmsInjectionToken","init_token","__esmMin","init_core","InjectionToken","LearnMoreModalComponent","init_learn_more_modal_component","__esmMin","init_common","init_dialog","init_button","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_LearnMoreModalComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","imageURL","ɵɵsanitizeUrl","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","badgeColor","ɵɵtextInterpolate1","badgeText","InfoBannerComponent","init_info_banner_component","__esmMin","init_common","init_card","init_badge","init_button","init_learn_more_modal_component","init_ngx_translate_core","constructor","dialog","openLearnMoreModal","open","LearnMoreModalComponent","width","ɵɵdirectiveInject","MatDialog","selectors","inputs","title","description","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","InfoBannerComponent_ng_container_4_Template","InfoBannerComponent_glxy_badge_8_Template","ɵɵlistener","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","NgIf","MatCardModule","MatCard","MatCardContent","GalaxyBadgeModule","BadgeComponent","MatButtonModule","MatButton","TranslateModule","TranslatePipe","styles","_InfoBannerComponent","BusinessType","BusinessCategory","businessCategoryLabels","businessCategoryToLabel","Region","regionLabels","regionToLabel","Position","init_types","__esmMin","Map","automotiveIndustry","agriculture","banking","consumer","education","engineering","energy","oilAndGas","fastMovingConsumerGoods","financial","fintech","foodAndBeverage","government","healthcare","hospitality","insurance","legal","manufacturing","media","online","rawMaterials","realEstate","religion","retail","jewelry","technology","telecommunications","transportation","travel","electronics","notForProfit","businessCategory","get","africa","asia","europe","latinAmerica","usaAndCanada","region","NORTH_AMERICA_COUNTRIES","RegistrationStage","RegistrationTitle","RegistrationContent","init_sms_constants","__esmMin","SmsRegistrationService","init_sms_service","__esmMin","init_src","init_vendasta_smsv2","init_esm","init_operators","init_types","init_sms_constants","init_token","constructor","a2pRegistrationApiService","accountGroupService","config","ownerType","registrationStage$$","ReplaySubject","registrationStage$","asObservable","a2pRegistrationInfo$$","a2pRegistrationStatus$$","a2PRegistrationInfo$","a2pRegistrationStatus$","ownerId$","pipe","distinctUntilChanged","shareReplay","getA2pRegistration","map","response","a2pRegistrationInfo","catchError","of","subscribe","next","getA2PRegistrationStatus","a2pRegistrationStatus","isSubmitted$","Boolean","submitted","Date","combineLatest","isSubmitted","setRegistrationStage","getRegistrationStage","showExternalBanner$","stage","RegistrationStage","NotSubmitted","DataError","brandStatus","brand","status","BrandStatus","BRAND_STATUS_UNSPECIFIED","messagingCampaignStatus","messagingCampaign","MessagingCampaignStatus","MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED","secondaryBusinessProfileStatus","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_UNSPECIFIED","trustBundleStatus","trustBundle","VALIDATION_STATUS_NON_COMPLIANT","BRAND_STATUS_FAILED","MESSAGING_CAMPAIGN_STATUS_VERIFIED","RegistrationComplete","ReviewingInfo","createA2pRegistration","request","switchMap","ownerId","createA2pRegistrationInfo","updateA2pRegistrationInfo","upsertA2pRegistration","upsertA2pRegistrationInfo","getA2pRegistrationInfo","console","error","take","currentA2PRegistrationInfo","updatedA2PRegistrationInfo","__spreadProps","__spreadValues","subaccountID$","subaccountId","getLatestA2pRegistrationStatus","e","getAccountGroupInfo$","get","ProjectionFilter","napData","getPrefillA2PFormInfo","a2PRegistrationInfo","Object","keys","length","OwnerType","OWNER_TYPE_ACCOUNT_GROUP","accountGroupInfo","business","regionOfOperation","NORTH_AMERICA_COUNTRIES","includes","country","Region","usaAndCanada","streetAddress","address","streetAddressSecondary","address2","state","city","postalCode","zip","websiteUrl","website","ɵɵinject","A2PRegistrationApiService","AccountGroupService","SmsInjectionToken","factory","ɵfac","providedIn","_SmsRegistrationService","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","actionClicked","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate1","ɵɵpipeBind1","ɵɵproperty","alertType","ɵɵadvance","ɵɵtextInterpolate1","_r3","ɵɵpropertyInterpolate","SmsRegistrationAlertComponent","init_sms_registration_alert_component","__esmMin","init_core","init_sms_constants","constructor","smsRegistrationService","actionClick","EventEmitter","RegistrationStage","registrationStage$","emit","ɵɵdirectiveInject","SmsRegistrationService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationAlertComponent_glxy_alert_0_Template","SmsRegistrationAlertComponent_glxy_alert_2_Template","NotSubmitted","DataError","_SmsRegistrationAlertComponent","getImageSrc","imageName","window","location","hostname","init_utils","__esmMin","ɵɵelement","ɵɵproperty","bannerData_r1","badgeText","imagePath","description","title","badgeColor","ɵɵelementContainerStart","ɵɵtemplate","SmsRegistrationBannerComponent_ng_container_0_sms_info_banner_1_Template","ɵɵadvance","ɵɵpipeBind1","ctx_r1","registrationStage$","RegistrationStage","DataError","SmsRegistrationBannerComponent","init_sms_registration_banner_component","__esmMin","init_utils","init_esm","init_sms_constants","constructor","smsRegistrationService","notSubmittedImagePath","getImageSrc","notSubmittedTitle","notSubmittedDescription","notSubmittedBadgeText","processingImagePath","processingTitle","processingDescription","processingBadgeText","approvedImagePath","approvedTitle","approvedDescription","approvedBadgeText","ngOnInit","bannerData$","pipe","map","stage","NotSubmitted","ReviewingInfo","RegistrationComplete","ɵɵdirectiveInject","SmsRegistrationService","selectors","decls","vars","consts","template","rf","ctx","SmsRegistrationBannerComponent_ng_container_0_Template","_SmsRegistrationBannerComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r1","ɵɵnextContext","ɵɵresetView","redirectToSMSRegistration","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","smsCardData_r5","buttonType","ɵɵtextInterpolate1","buttonText","ɵɵelementContainerStart","_r3","openLearnMoreModal","ɵɵtemplate","SmsRegistrationCardComponent_ng_container_0_ng_container_30_div_8_Template","ɵɵtextInterpolate","title","content","ɵɵproperty","statusBadgeText","ɵɵelement","_r1","toggleInfoPopover","closeInfoPopover","SmsRegistrationCardComponent_ng_container_0_ng_container_30_Template","getLogoImage","ɵɵsanitizeUrl","ɵɵpipeBind1","statusBadgeColor","smsNumber$","showPopover","popoverOrigin_r6","country$","RegistrationStageToCardData","SMSNumberToCardData","SmsRegistrationCardComponent","init_sms_registration_card_component","__esmMin","init_esm","init_learn_more_modal_component","init_sms_constants","init_vendasta_smsv2","init_src","init_operators","RegistrationStage","NotSubmitted","RegistrationTitle","NotApproved","RegistrationContent","ReviewingInfo","DataError","RegistrationComplete","ApprovedStatus","constructor","smsRegistrationService","dialog","router","route","smsService","environmentService","ownerId$","pipe","switchMap","internalId","from","getAccountInfo","type","ParticipantType","PARTICIPANT_TYPE_ACCOUNT_GROUP","catchError","error","console","log","of","map","res","phoneNumber","filter","accountGroupInfo$","getAccountGroupInfo$","shareReplay","bufferSize","refCount","info","napData","country","smsCardData$","registrationStage$","stage","open","LearnMoreModalComponent","width","navigate","relativeTo","getEnvironment","Environment","PROD","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","Router","ActivatedRoute","SmsService","EnvironmentService","selectors","decls","vars","consts","template","rf","ctx","SmsRegistrationCardComponent_ng_container_0_Template","_SmsRegistrationCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openLearnMoreModal","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","ɵɵpipeBind1","SmsRegistrationErrorBannerComponent","init_sms_registration_error_banner_component","__esmMin","init_sms_constants","init_learn_more_modal_component","constructor","smsRegistrationService","dialog","RegistrationStage","ngOnInit","registrationStage$","open","LearnMoreModalComponent","width","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationErrorBannerComponent_ng_container_0_Template","DataError","_SmsRegistrationErrorBannerComponent","BusinessCategoryToLabelPipe","init_business_category_to_label_pipe","__esmMin","init_types","transform","businessCategory","businessCategoryToLabel","pure","standalone","_BusinessCategoryToLabelPipe","RegionToLabelPipe","init_region_to_label_pipe","__esmMin","init_types","transform","region","regionToLabel","pure","standalone","_RegionToLabelPipe","ConfirmationModalComponent","init_confirmation_modal_component","__esmMin","init_common","init_dialog","init_button","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_ConfirmationModalComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","businessCategory_r1","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","businessType_r2","region_r3","ɵɵtextInterpolate","jobPosition_r4","EIN_REGEX","PHONE_NUMBER_REGEX","ZIP_CODE_REGEX","IdentifierTypeEIN","additionalAddressLine","businessRegistrationNumber","businessName","SmsRegistrationFormComponent","init_sms_registration_form_component","__esmMin","init_rxjs_interop","init_forms","init_vendasta_smsv2","init_esm","init_sms_constants","init_confirmation_modal_component","init_types","constructor","formBuilder","smsRegistrationService","snackbarService","modal","destroyRef","BusinessCategories","Object","values","BusinessCategory","BusinessTypes","BusinessType","Regions","Region","JobPositions","Position","formLocked","registrationStage","RegistrationStage","NotSubmitted","initialRegistrationFormInfo","Map","fieldsWithIssues","groupOfSomeValuesNeedToChange","customValidatorsMap","subscriptions","fieldWithIssuesToFormFieldsMapping","DataField","DATA_FIELD_LEGAL_BUSINESS_NAME","DATA_FIELD_BUSINESS_CATEGORY","DATA_FIELD_BUSINESS_TYPE","DATA_FIELD_REGION_OF_OPERATION","DATA_FIELD_BUSINESS_REGISTRATION_NUMBER","DATA_FIELD_STREET_ADDRESS","DATA_FIELD_STREET_ADDRESS_SECONDARY","DATA_FIELD_CITY","DATA_FIELD_STATE","DATA_FIELD_POSTAL_CODE","DATA_FIELD_WEBSITE_URL","DATA_FIELD_COUNTRY","DATA_FIELD_FIRST_NAME","DATA_FIELD_LAST_NAME","DATA_FIELD_JOB_POSITION","DATA_FIELD_BUSINESS_TITLE","DATA_FIELD_EMAIL","DATA_FIELD_PHONE_NUMBER","smsForm","group","Validators","maxLength","businessCategory","businessType","regionOfOperation","pattern","address","state","city","zipCode","website","firstName","lastName","jobPosition","businessTitle","email","phoneNumber","ngOnInit","getRegistration","sub","controls","valueChanges","subscribe","value","businessTitleInJobPositions","some","p","otherPosition","patchValue","push","keys","forEach","key","includes","fieldName","updateValueAndValidity","emitEvent","ngOnDestroy","s","unsubscribe","submitRegistrationForm","toggleSubmitValidators","invalid","openErrorSnack","open","ConfirmationModalComponent","width","afterClosed","pipe","take","result","upsertData","saveChanges","errors","errorKey","isSubmitted","form","request","business","legalName","industry","registrationIdentifier","identifierType","identifier","websiteUrl","socialMediaProfileUrls","streetAddress","streetAddressSecondary","postalCode","country","authorizedRepresentative","submitted","upsertA2pRegistration","openWithOptions","panelClass","lockForm","setRegistrationStage","ReviewingInfo","combineLatest","a2PRegistrationInfo$","registrationStage$","a2pRegistrationStatus$","getPrefillA2PFormInfo","takeUntilDestroyed","a2pRegistrationInfo","registrationStatus","a2PFormInfo","prefillFormWithA2PFormInfo","DataError","unlockForm","getInitialRegistrationFormInfo","getFormFieldsWithIssues","getGroupOfSomeValuesNeedToChange","control","get","markAsTouched","error","status","disable","enable","on","addValidators","required","val","undefined","sameValueValidatorFn","sameValueValidator","set","someValueNeedsToChange","someValueNeedsToChangeValidator","removeValidators","customValidatorFn","delete","a2PRegistrationInfo","originalFormFieldValue","sameValueError","groupOfFields","originalValuesMap","passed","originalValue","entries","c","groupValueError","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_NON_COMPLIANT","length","field","trustBundle","brand","BrandStatus","BRAND_STATUS_FAILED","ɵɵdirectiveInject","FormBuilder","SmsRegistrationService","SnackbarService","MatDialog","DestroyRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationFormComponent_mat_icon_7_Template","ɵɵelement","SmsRegistrationFormComponent_glxy_hint_14_Template","SmsRegistrationFormComponent_glxy_error_15_Template","SmsRegistrationFormComponent_mat_option_21_Template","SmsRegistrationFormComponent_mat_option_27_Template","SmsRegistrationFormComponent_mat_option_33_Template","SmsRegistrationFormComponent_glxy_hint_39_Template","SmsRegistrationFormComponent_glxy_error_40_Template","SmsRegistrationFormComponent_glxy_error_67_Template","SmsRegistrationFormComponent_mat_icon_80_Template","SmsRegistrationFormComponent_mat_option_98_Template","SmsRegistrationFormComponent_glxy_error_113_Template","SmsRegistrationFormComponent_glxy_hint_119_Template","SmsRegistrationFormComponent_glxy_error_120_Template","ɵɵlistener","hasError","touched","_SmsRegistrationFormComponent","SmsRegistrationComponent","init_sms_registration_component","__esmMin","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","_SmsRegistrationComponent","en_devel_default","init_en_devel","__esmMin","SMSI18NModule","init_sms_i18n_module","__esmMin","init_ngx_translate_core","init_src","init_en_devel","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_SMSI18NModule","SmsModule","init_sms_module","__esmMin","init_common","init_forms","init_button","init_card","init_chips","init_icon","init_input","init_select","init_alert","init_badge","init_form_field","init_popover","init_info_banner_component","init_sms_service","init_ngx_translate_core","init_sms_i18n_module","SmsRegistrationService","imports","CommonModule","MatCardModule","GalaxyFormFieldModule","MatInputModule","MatSelectModule","MatButtonModule","ReactiveFormsModule","MatIconModule","InfoBannerComponent","GalaxyAlertModule","MatChipsModule","GalaxyBadgeModule","GalaxyPopoverModule","TranslateModule","SMSI18NModule","_SmsModule","defaultDynamicComponents","DynamicComponentSelectorService","init_dynamic_component_selector_service","__esmMin","init_operators","init_app_listing_service_interface","textKey","replacementTags","constructor","templatesService","appListingService","parentVariableCategories","overrideParentVariableCategories","hasComponentsToDisplay","length","getVariables","filters","listSubstitutionParameters","pipe","map","params","filterSubstitutionParameters","v","options","subItems","filter","p","some","t","replacementTag","sort","a","b","indexOf","getProductSubstitutionVariables","listAllActivatableApps","take","variableCategories","ɵɵinject","TemplatesService","EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN","factory","ɵfac","_DynamicComponentSelectorService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","mainItem_r4","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","textKey","subParam_r6","displayName","ɵɵelementContainerStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r5","ctx_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","chosenParam","ɵɵresetView","ɵɵlistener","handleParamChange","ɵɵtemplate","DynamicComponentDialogComponent_ng_container_4_ng_container_8_mat_option_7_Template","chosenCategory","ɵɵtwoWayProperty","subItems","v_r8","value","title","_r7","chosenParamDetails","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_mat_option_7_Template","dynamicValues_r9","ɵɵelement","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_template_3_Template","ɵɵtemplateRefExtractor","chosenDynamicParam$","loading_r10","_r2","handleCategoryChange","DynamicComponentDialogComponent_ng_container_4_mat_option_7_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_8_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_Template","ɵɵtextInterpolate","variables_r11","options","nestedDynamicSelector","DynamicComponentDialogComponent","init_dynamic_component_dialog_component","__esmMin","init_core","init_esm","init_operators","constructor","dynamicComponentSelectorService","dialogRef","formResult","EventEmitter","allowedEntryApps","variables$","getVariables","includeHtml","pipe","map","vars","filter","v","requiredParams","reduce","prev","curr","i","arr","shareReplay","chosenDynamicParam$$","ReplaySubject","ngOnInit","asObservable","switchMap","chosenDynamicParam","getProductSubstitutionVariables","apps","a","includes","appId","app","name","replacementTag","next","add","close","ɵɵdirectiveInject","DynamicComponentSelectorService","MatDialogRef","selectors","outputs","decls","consts","template","rf","ctx","DynamicComponentDialogComponent_ng_container_4_Template","_r1","DynamicComponentDialogComponent_ng_template_14_Template","empty_r12","_DynamicComponentDialogComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openDialog","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","DynamicComponentSelectorComponent","init_dynamic_component_selector_component","__esmMin","init_core","init_operators","init_dynamic_component_dialog_component","constructor","dialog","variableService","modelChange","EventEmitter","variablesReady","hasComponentsToDisplay","open","DynamicComponentDialogComponent","width","height","afterClosed","pipe","take","subscribe","res","selectVariable","replacementTag","startPos","target","selectionStart","endPos","selectionEnd","contentBefore","value","substr","contentAfter","length","newValue","emit","window","setTimeout","focus","setSelectionRange","ɵɵdirectiveInject","MatDialog","DynamicComponentSelectorService","selectors","inputs","marketId","model","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DynamicComponentSelectorComponent_mat_icon_0_Template","_DynamicComponentSelectorComponent","en_devel_default","init_en_devel","__esmMin","TemplatesI18nModule","init_templates_i18n_module","__esmMin","init_ngx_translate_core","init_src","init_en_devel","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_TemplatesI18nModule","DynamicComponentSelectorModule","init_dynamic_component_selector_module","__esmMin","init_common","init_button","init_card","init_core","init_dialog","init_form_field","init_icon","init_input","init_list","init_select","init_tooltip","init_ngx_translate_core","init_empty_state","init_galaxy_wrap","init_dynamic_component_selector_service","init_templates_i18n_module","DynamicComponentSelectorService","imports","CommonModule","GalaxyTooltipModule","GalaxyWrapModule","MatFormFieldModule","MatButtonModule","MatDialogModule","MatInputModule","MatListModule","MatIconModule","MatTooltipModule","MatCardModule","MatOptionModule","TranslateModule","MatSelectModule","GalaxyEmptyStateModule","TemplatesI18nModule","_DynamicComponentSelectorModule","init_src","__esmMin","init_dynamic_component_selector_module","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","emitNewTemplateValue","smsText_r3","TextMessageBuilderFormComponent","init_text_message_builder_form_component","__esmMin","init_core","init_forms","init_form_field","init_input","init_src","init_common","constructor","smsForm","FormGroup","name","FormControl","message","template","EventEmitter","valid","setInitialInputText","inputText","patchValue","ngOnInit","valueChanges","subscribe","value","emit","statusChanges","status","selectors","viewQuery","rf","ctx","ɵɵtemplate","TextMessageBuilderFormComponent_ng_container_5_Template","TextMessageBuilderFormComponent_ng_template_6_Template","ɵɵtemplateRefExtractor","allowDynamic","hasDynamic_r4","CommonModule","NgIf","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","RequiredValidator","FormGroupDirective","FormControlName","MatInputModule","MatInput","DynamicComponentSelectorModule","DynamicComponentSelectorComponent","styles","_TextMessageBuilderFormComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵstyleProp","ctx_r0","profileSourceIconCSS","ɵɵelementStart","ɵɵtemplate","ChatBubbleComponent_ng_container_1_ng_container_4_Template","ɵɵelementEnd","ɵɵproperty","profilePicUrl","profileSVGIcon","messageFrom","profileBackgroundColor","profileSourceIconUrl","ɵɵprojection","messageText","ɵɵsanitizeHtml","messageMetadata","ChatBubbleComponent","init_chat_bubble_component","__esmMin","constructor","class","type","showProfilePic","sentFromYou","isTyping","shouldShowProfilePic","profilePicCSS","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ChatBubbleComponent_ng_container_1_Template","ChatBubbleComponent_ng_container_4_Template","ChatBubbleComponent_ng_container_5_Template","ɵɵclassProp","_ChatBubbleComponent","ChatDividerTextComponent","init_chat_divider_text_component","__esmMin","selectors","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","_ChatDividerTextComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","ctx_r0","isMetadataPresented","ɵɵadvance","ɵɵtextInterpolate1","messageMetadata","ChatEventComponent","init_chat_event_component","__esmMin","init_core","constructor","eRef","inject","ElementRef","clickTimeout","onMouseDown","event","window","getSelection","toString","clearTimeout","setTimeout","nativeElement","querySelector","contains","target","onClick","HTMLAnchorElement","selectors","hostBindings","rf","ctx","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵprojection","ɵɵtemplate","ChatEventComponent_div_2_Template","ɵɵproperty","_ChatEventComponent","ChatContainerComponent","init_chat_container_component","__esmMin","constructor","class","chatId","showNewMessageIndicator","isIOS","test","window","navigator","userAgent","animationTimer","animationDuration","currentAnimationDuration","scrollable","chatContent","nativeElement","scrollTop","scrollTo","top","behavior","onNewMessageReceived","mobileSafariScrollFix","onNewMessageSent","scrollToBottom","onScroll","setTimeout","ngAfterViewInit","resetAnimationDuration","ngOnChanges","changes","currentValue","previousValue","getAnimationDurationStyle","clearTimeout","ngOnDestroy","selectors","viewQuery","rf","ctx","ɵɵclassMap","ɵɵstyleProp","ɵɵelementStart","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵprojection","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵclassProp","_ChatContainerComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵprojection","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r0","messageStatusText","messageTime","import_dompurify","ChatMessageComponent","init_chat_message_component","__esmMin","init_common","init_core","init_icon","init_ngx_translate_core","constructor","itemContent","isTyping","isMetadataPresented","eRef","inject","ElementRef","class","messageStatusClass","messageStatus","onClick","event","window","getSelection","toString","nativeElement","querySelector","contains","target","isLink","HTMLAnchorElement","isInElement","ngAfterViewInit","messageText","bubbleElement","innerHTML","DOMPurify","sanitize","selectors","viewQuery","rf","ctx","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵclassMap","ɵɵtemplate","ChatMessageComponent_mat_icon_1_Template","ChatMessageComponent_ng_container_5_Template","ChatMessageComponent_ng_container_6_Template","ChatMessageComponent_span_10_Template","ChatMessageComponent_span_11_Template","ɵɵproperty","ɵɵpureFunction0","_c3","includes","ɵɵclassProp","CommonModule","NgClass","NgIf","NgSwitch","NgSwitchCase","NgSwitchDefault","MatIconModule","MatIcon","TranslateModule","TranslatePipe","styles","changeDetection","_ChatMessageComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c1","ctx_r0","profileSourceIconName","ɵɵelementStart","ɵɵtemplate","ChatMessageGroupComponent_ng_container_1_ng_container_4_Template","ɵɵelementEnd","profilePicUrl","profileIcon","profileSVGIcon","messageFrom","profileBackgroundColor","ɵɵtext","ɵɵtextInterpolate","messageMetadata","ChatMessageGroupComponent","init_chat_message_group_component","__esmMin","init_common","init_avatar","init_ngx_translate_core","init_chat_message_component","constructor","class","type","showProfilePic","sentFromYou","isTyping","shouldShowProfilePic","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ChatMessageGroupComponent_ng_container_1_Template","ChatMessageGroupComponent_span_7_Template","ChatMessageGroupComponent_span_8_Template","ɵɵprojection","ChatMessageGroupComponent_ng_container_10_Template","ɵɵclassProp","ɵɵpipeBind1","CommonModule","NgClass","NgIf","GalaxyAvatarModule","AvatarComponent","ChatMessageComponent","TranslateModule","TranslatePipe","styles","changeDetection","_ChatMessageGroupComponent","AdditionalMetadataDirective","init_additional_metadata","__esmMin","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_AdditionalMetadataDirective","MODULE_IMPORTS","MODULE_DECLARATIONS","MODULE_EXPORTS","GalaxyChatModule","init_chat_module","__esmMin","init_common","init_tooltip","init_scrolling","init_button","init_icon","init_avatar","init_chat_bubble_component","init_chat_divider_text_component","init_chat_event_component","init_chat_container_component","init_chat_message_group_component","init_chat_message_component","init_additional_metadata","CommonModule","MatTooltipModule","CdkScrollableModule","GalaxyAvatarModule","ChatMessageGroupComponent","ChatMessageComponent","MatButtonModule","MatIconModule","ChatBubbleComponent","ChatDividerTextComponent","ChatEventComponent","ChatContainerComponent","AdditionalMetadataDirective","_GalaxyChatModule","init_public_api","__esmMin","init_chat_module","init_chat","__esmMin","init_public_api","TextMessageBuilderPreviewComponent","init_text_message_builder_preview_component","__esmMin","init_chat","init_card","init_vendasta_templates","init_esm","init_common","constructor","templates","loading","ngOnChanges","changes","allowDynamic","rendered$","render","currentValue","account_group_id","partner_id","contact_id","TemplateType","TEMPLATE_TYPE_GOLANG_TEXT","accountGroupId","partnerId","contactId","undefined","pipe","tap","_","ɵɵdirectiveInject","TemplatesService","selectors","inputs","messageText","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","AsyncPipe","ChatMessageGroupComponent","ChatMessageComponent","MatCardModule","styles","_TextMessageBuilderPreviewComponent","TextMessageBuilderComponent","init_text_message_builder_component","__esmMin","init_core","init_text_message_builder_form_component","init_text_message_builder_preview_component","init_esm","init_common","init_card","constructor","initialInputText","message","name","sms$$","BehaviorSubject","sms$","asObservable","valid$$","valid$","sms","EventEmitter","valid","setMessageBuilderText","messageBuilderText","ngOnInit","subscribe","value","emit","status","updateSMS","m","next","updateValid","selectors","inputs","allowDynamic","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","MatCardModule","MatCard","MatCardContent","CommonModule","AsyncPipe","TextMessageBuilderFormComponent","TextMessageBuilderPreviewComponent","styles","_TextMessageBuilderComponent","init_src","__esmMin","init_sms_module","init_sms_service","init_sms_constants","init_text_message_builder_component","init_token"],"x_google_ignoreList":[0]}