{"version":3,"sources":["libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.ts","libs/sms/src/lib/info-banner/learn-more-modal/learn-more-modal.component.html","libs/sms/src/lib/progress-tracker/progress-tracker.component.ts","libs/sms/src/lib/progress-tracker/progress-tracker.component.html","node_modules/@vendasta/smsv2/fesm2020/vendasta-smsv2.mjs","libs/sms/src/lib/sms-registration-form/types.ts","libs/sms/src/lib/sms.constants.ts","libs/sms/src/lib/token.ts","libs/sms/src/lib/service/sms.service.ts","libs/sms/src/lib/info-banner/info-banner.component.ts","libs/sms/src/lib/info-banner/info-banner.component.html","libs/sms/src/lib/sms-registration-alert/sms-registration-alert.component.ts","libs/sms/src/lib/sms-registration-alert/sms-registration-alert.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/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/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"],"sourcesContent":["import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './learn-more-modal.component.html',\n styleUrls: ['./learn-more-modal.component.scss'],\n})\nexport class LearnMoreModalComponent {}\n","
Required registration for SMS
\n\n SMS Registration Requirements\n

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

\n How long does registration take?\n

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

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

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

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

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

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

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

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

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

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

Submit business information?

\n\n

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

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

{{ 'DYNAMIC_COMPONENT_DIALOG.ADD_HEADING' | translate }}

\n \n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.CATEGORY' | translate }}\n \n \n {{ mainItem.textKey | translate }}\n \n \n \n \n \n \n \n \n {{ chosenCategory.textKey | translate }}\n \n \n \n {{ subParam.displayName | translate }}\n \n \n \n \n \n \n \n \n \n \n {{ chosenParam.displayName | translate }}\n \n \n \n {{ v.title | translate }}\n \n \n \n \n \n \n
\n
\n
\n \n
\n\n
\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.ADD_BUTTON' | translate }}\n \n
\n
\n\n\n \n \n {{ 'DYNAMIC_COMPONENT_DIALOG.NO_OPTIONS' | translate }}\n \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { take } from 'rxjs/operators';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorService } from './dynamic-component-selector.service';\n\n@Component({\n selector: 'templates-dynamic-component-selector',\n templateUrl: 'dynamic-component-selector.component.html',\n styleUrls: ['dynamic-component-selector.component.scss'],\n})\nexport class DynamicComponentSelectorComponent {\n @Input() marketId: string;\n @Input() target: HTMLTextAreaElement;\n @Input() model: string;\n\n @Output() modelChange: EventEmitter = new EventEmitter();\n\n public variablesReady = this.variableService.hasComponentsToDisplay();\n\n constructor(\n private dialog: MatDialog,\n private variableService: DynamicComponentSelectorService,\n ) {}\n\n openDialog(): void {\n const dialogRef = this.dialog.open(DynamicComponentDialogComponent, {\n width: '450px',\n height: '450px',\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res: string | null) => {\n if (res) {\n this.selectVariable(res);\n }\n });\n }\n\n selectVariable(replacementTag: string): void {\n const startPos = this.target.selectionStart;\n const endPos = this.target.selectionEnd ?? startPos;\n\n const contentBefore = this.target.value.substr(0, startPos);\n const contentAfter = this.target.value.substr(endPos, this.target.value.length);\n\n const newValue = contentBefore + replacementTag + contentAfter;\n this.target.value = newValue;\n this.target.selectionStart = startPos;\n\n this.modelChange.emit(newValue);\n\n // Using setTimeout fix bug where input does not focus\n window.setTimeout(() => {\n this.target.focus();\n this.target.setSelectionRange(startPos, replacementTag.length + startPos);\n }, 0);\n }\n}\n","\n data_object\n\n","{\n \"DYNAMIC_COMPONENT_SELECTOR\": {\n \"INSERT_DYNAMIC_CONTENT\": \"Insert dynamic content\",\n \"SNAPSHOT_REPORT\": \"Snapshot report\",\n \"BUSINESS_APP_DETAILS\": \"Business app details\",\n \"SALESPERSON_DETAILS\": \"Salesperson details\",\n \"PARTNER_DETAILS\": \"Partner details\",\n \"ACCOUNT_DETAILS\": \"Account details\",\n \"PRODUCT_DETAILS\": \"Product details\",\n \"CONTACT_DETAILS\": \"Contact details\"\n },\n \"DYNAMIC_COMPONENT_DIALOG\": {\n \"ADD_HEADING\": \"Add dynamic content\",\n \"CATEGORY\": \"Category\",\n \"CANCEL_BUTTON\": \"Cancel\",\n \"ADD_BUTTON\": \"Add\",\n \"NO_OPTIONS\": \"No options found\"\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/templates',\n baseTranslation: En,\n }),\n ],\n})\nexport class TemplatesI18nModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { DynamicComponentDialogComponent } from './dynamic-component-dialog/dynamic-component-dialog.component';\nimport { DynamicComponentSelectorComponent } from './dynamic-component-selector.component';\nimport {\n DynamicComponentSelectorService,\n VariableMenuItemOptions,\n VariableMenuItem,\n Option,\n} from './dynamic-component-selector.service';\nimport { TemplatesI18nModule } from '../assets/i18n/templates-i18n.module';\n\n@NgModule({\n providers: [DynamicComponentSelectorService],\n declarations: [DynamicComponentSelectorComponent, DynamicComponentDialogComponent],\n imports: [\n CommonModule,\n GalaxyTooltipModule,\n GalaxyWrapModule,\n MatFormFieldModule,\n MatButtonModule,\n MatDialogModule,\n MatInputModule,\n MatListModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatOptionModule,\n TranslateModule,\n MatSelectModule,\n GalaxyEmptyStateModule,\n TemplatesI18nModule,\n ],\n exports: [DynamicComponentSelectorComponent],\n})\nexport class DynamicComponentSelectorModule {}\n\nexport { DynamicComponentSelectorService, VariableMenuItemOptions, VariableMenuItem, Option };\n","import { Component, ElementRef, EventEmitter, Inject, Input, OnInit, Optional, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, 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';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SmsTextLimitToken } from '../../token';\nimport { BehaviorSubject } from 'rxjs';\n\nconst regex = new RegExp(`{{\\\\s*([^}]+)\\\\s*}}`, 'g');\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: [\n CommonModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n DynamicComponentSelectorModule,\n TranslateModule,\n ],\n})\nexport class TextMessageBuilderFormComponent implements OnInit {\n smsForm = new FormGroup({\n name: new FormControl(''),\n message: new FormControl(''),\n });\n calculatedTextLength$$: BehaviorSubject = new BehaviorSubject(0);\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 constructor(@Inject(SmsTextLimitToken) @Optional() public readonly textLimit: number) {\n if (this.textLimit !== undefined) {\n this.smsForm.controls.message.setValidators((control: AbstractControl) => {\n if (this.textLimit > 0) {\n const res = control.value.replaceAll(regex, '').length;\n if (res > this.textLimit) {\n return { textTooLong: true };\n }\n }\n return null;\n });\n }\n }\n\n ngOnInit() {\n this.smsForm.valueChanges.subscribe((value) => {\n this.calculatedTextLength$$.next(value?.message?.replaceAll(regex, '').length ?? 0);\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 0\"\n align=\"end\"\n [ngStyle]=\"{\n color: smsForm?.controls?.message?.errors?.textTooLong ? 'red' : null\n }\"\n >\n {{ calculatedTextLength$$ | async }}/{{ textLimit }}\n \n
\n
\n
\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"],"mappings":"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","names":["LearnMoreModalComponent","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_LearnMoreModalComponent","ɵɵelement","ɵɵproperty","ctx_r1","getClassForStatus","stage_r1","status","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵtemplate","ProgressTrackerComponent_ng_container_1_div_1_Template","ProgressTrackerComponent_ng_container_1_div_4_Template","ProgressTrackerComponent_ng_container_1_mat_icon_5_Template","ProgressTrackerComponent_ng_container_1_mat_icon_6_Template","ɵɵadvance","isFirst_r3","ɵɵtextInterpolate","name","Status","ProgressTrackerComponent","constructor","stages","cssClasses","Map","NotStarted","InProgress","Completed","Failed","get","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ProgressTrackerComponent_ng_container_1_Template","CommonModule","NgClass","NgForOf","NgIf","MatIcon","styles","_ProgressTrackerComponent","ParticipantType","OwnerType","DataField","BrandStatus","MessagingCampaignStatus","ValidationStatus","StatusType","LimitType","enumStringToValue$5","enumRef","value","Participant","_Participant","proto","m","kwargs","toReturn","enumStringToValue$4","A2PRegistrationInfo","_A2PRegistrationInfo","Business","AuthorizedRepresentative","A2PRegistrationStatus","_A2PRegistrationStatus","SecondaryBusinessProfile","TrustBundle","Brand","MessagingCampaign","_AuthorizedRepresentative","_Brand","_Business","RegistrationIdentifier","_MessagingCampaign","_RegistrationIdentifier","_SecondaryBusinessProfile","v","_TrustBundle","Attribute","_Attribute","proto","m","kwargs","toReturn","enumStringToValue","enumRef","value","CreateA2PRegistrationInfoRequest","_CreateA2PRegistrationInfoRequest","proto","m","enumStringToValue","OwnerType","Business","AuthorizedRepresentative","kwargs","toReturn","CreateSmsClickedEventRequest","_CreateSmsClickedEventRequest","proto","m","kwargs","toReturn","DeleteA2PRegistrationInfoRequest","_DeleteA2PRegistrationInfoRequest","GetA2PRegistrationInfoRequest","_GetA2PRegistrationInfoRequest","GetA2PRegistrationInfoResponse","_GetA2PRegistrationInfoResponse","A2PRegistrationInfo","GetAccountInfoRequest","_GetAccountInfoRequest","Participant","GetAccountInfoResponse","_GetAccountInfoResponse","GetAttributeEventStatsRequest","_GetAttributeEventStatsRequest","Sender","Attribute","GetAttributeEventStatsResponse","_GetAttributeEventStatsResponse","StatusStat","GetLatestA2PRegistrationStatusRequest","_GetLatestA2PRegistrationStatusRequest","GetLatestA2PRegistrationStatusResponse","_GetLatestA2PRegistrationStatusResponse","A2PRegistrationStatus","GetLimitRequest","_GetLimitRequest","enumStringToValue","LimitType","GetLimitResponse","_GetLimitResponse","Recipient","_Recipient","proto","m","kwargs","toReturn","SendMessageV2Request","_SendMessageV2Request","proto","m","Sender","Recipient","Attribute","kwargs","toReturn","SendMessageV2Response","_SendMessageV2Response","_Sender","enumStringToValue","OwnerType","StatusStat","_StatusStat","StatusType","TriggerA2PRegistrationRequest","_TriggerA2PRegistrationRequest","UpsertA2PRegistrationInfoRequest","_UpsertA2PRegistrationInfoRequest","Business","AuthorizedRepresentative","environment","hostMap","HostService","t","ɵɵdefineInjectable","A2PRegistrationApiService","http","hostService","HttpHeaders","r","request","CreateA2PRegistrationInfoRequest","__spreadProps","__spreadValues","GetA2PRegistrationInfoRequest","map","resp","GetA2PRegistrationInfoResponse","DeleteA2PRegistrationInfoRequest","GetLatestA2PRegistrationStatusRequest","GetLatestA2PRegistrationStatusResponse","ɵɵinject","HttpClient","EventApiService","http","hostService","HttpHeaders","r","request","GetAttributeEventStatsRequest","map","resp","GetAttributeEventStatsResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","SmsApiService","http","hostService","HttpHeaders","r","request","CreateSmsClickedEventRequest","__spreadProps","__spreadValues","GetAccountInfoRequest","map","resp","GetAccountInfoResponse","SendMessageV2Request","SendMessageV2Response","GetLimitRequest","GetLimitResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","SmsService","smsApiService","sender","EventService","eventService","attribute","EventApiService","BusinessType","BusinessCategory","businessCategoryLabels","Map","automotiveIndustry","agriculture","banking","consumer","education","engineering","energy","oilAndGas","fastMovingConsumerGoods","financial","fintech","foodAndBeverage","government","healthcare","hospitality","insurance","legal","manufacturing","media","online","rawMaterials","realEstate","religion","retail","jewelry","technology","telecommunications","transportation","travel","electronics","notForProfit","businessCategoryToLabel","businessCategory","get","Region","regionLabels","africa","asia","europe","latinAmerica","usaAndCanada","regionToLabel","region","Position","NORTH_AMERICA_COUNTRIES","RegistrationStage","RegistrationTitle","RegistrationContent","SmsInjectionToken","InjectionToken","SmsTextLimitToken","SmsRegistrationService","constructor","a2pRegistrationApiService","accountGroupService","config","A2PRegistrationState$$","BehaviorSubject","a2pRegistrationInfo","a2pRegistrationStatus","RegistrationStage","NotSubmitted","A2PRegistrationState$","asObservable","registrationStage$","pipe","map","state","a2PRegistrationInfo$","a2pRegistrationStatus$","showExternalBanner$","stage","DataError","shareReplay","ownerType","ownerId$","distinctUntilChanged","existingA2PRegistrationInfo$","switchMap","ownerId","request","getA2pRegistrationInfo","catchError","console","error","of","existingA2PRegistrationStatus$","combineLatest","subaccountID$","subaccountId","getLatestA2pRegistrationStatus","e","response","status","subscribe","a2pInfo","isSubmitted","submitted","Date","next","getRegistrationStage","secondaryBusinessProfileStatus","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_UNSPECIFIED","trustBundleStatus","trustBundle","brandStatus","brand","BrandStatus","BRAND_STATUS_UNSPECIFIED","messagingCampaignStatus","messagingCampaign","MessagingCampaignStatus","MESSAGING_CAMPAIGN_STATUS_UNSPECIFIED","VALIDATION_STATUS_NON_COMPLIANT","BRAND_STATUS_FAILED","MESSAGING_CAMPAIGN_STATUS_FAILED","CampaignError","MESSAGING_CAMPAIGN_STATUS_VERIFIED","RegistrationComplete","ReviewingInfo","upsertA2pRegistration","upsertA2pRegistrationInfo","updateA2pRegistrationInfo","currentState","getValue","__spreadProps","__spreadValues","getAccountGroupInfo$","get","ProjectionFilter","napData","getPrefillA2PFormInfo","a2PRegistrationInfo","Object","keys","length","OwnerType","OWNER_TYPE_ACCOUNT_GROUP","accountGroupInfo","business","regionOfOperation","NORTH_AMERICA_COUNTRIES","includes","country","Region","usaAndCanada","streetAddress","address","streetAddressSecondary","address2","city","postalCode","zip","websiteUrl","website","ɵɵinject","A2PRegistrationApiService","AccountGroupService","SmsInjectionToken","factory","ɵfac","providedIn","_SmsRegistrationService","InfoBannerComponent","constructor","dialog","smsRegistrationService","stages$","A2PRegistrationState$","pipe","map","state","RegistrationStage","NotSubmitted","name","status","Status","NotStarted","Completed","getInformationStageStatus","a2pRegistrationStatus","getMessagingCampaignStageStatus","openLearnMoreModal","open","LearnMoreModalComponent","width","registrationStatus","informationStatus","InProgress","secondaryBusinessProfileStatus","secondaryBusinessProfile","trustBundleStatus","trustBundle","brandStatus","brand","BrandStatus","BRAND_STATUS_APPROVED","ValidationStatus","VALIDATION_STATUS_NON_COMPLIANT","BRAND_STATUS_FAILED","Failed","campaignStatus","messagingCampaignStatus","messagingCampaign","MessagingCampaignStatus","MESSAGING_CAMPAIGN_STATUS_VERIFIED","MESSAGING_CAMPAIGN_STATUS_FAILED","MESSAGING_CAMPAIGN_STATUS_PENDING","ɵɵdirectiveInject","MatDialog","SmsRegistrationService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","ɵɵtextInterpolate1","CommonModule","AsyncPipe","MatCardModule","MatCard","MatCardActions","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyBadgeModule","MatButtonModule","MatButton","TranslateModule","TranslatePipe","ProgressTrackerComponent","styles","_InfoBannerComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","actionClicked","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate1","ɵɵpipeBind1","ɵɵproperty","alertType","ɵɵadvance","ɵɵtextInterpolate1","_r3","ɵɵpropertyInterpolate","SmsRegistrationAlertComponent","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","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r1","ɵɵnextContext","ɵɵresetView","redirectToSMSRegistration","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","smsCardData_r5","buttonType","ɵɵtextInterpolate1","buttonText","ɵɵelementContainerStart","_r3","openLearnMoreModal","ɵɵtemplate","SmsRegistrationCardComponent_ng_container_0_ng_container_30_div_8_Template","ɵɵtextInterpolate","title","content","ɵɵproperty","statusBadgeText","ɵɵelement","_r1","toggleInfoPopover","closeInfoPopover","SmsRegistrationCardComponent_ng_container_0_ng_container_30_Template","getLogoImage","ɵɵsanitizeUrl","ɵɵpipeBind1","statusBadgeColor","smsNumber$","showPopover","popoverOrigin_r6","country$","RegistrationStageToCardData","RegistrationStage","NotSubmitted","RegistrationTitle","NotApproved","RegistrationContent","ReviewingInfo","DataError","CampaignError","RegistrationComplete","ApprovedStatus","SMSNumberToCardData","SmsRegistrationCardComponent","constructor","smsRegistrationService","dialog","router","route","smsService","environmentService","ownerId$","pipe","switchMap","internalId","from","getAccountInfo","type","ParticipantType","PARTICIPANT_TYPE_ACCOUNT_GROUP","catchError","error","console","log","of","map","res","phoneNumber","filter","accountGroupInfo$","getAccountGroupInfo$","shareReplay","bufferSize","refCount","info","napData","country","smsCardData$","registrationStage$","stage","open","LearnMoreModalComponent","width","navigate","relativeTo","getEnvironment","Environment","PROD","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","Router","ActivatedRoute","SmsService","EnvironmentService","selectors","decls","vars","consts","template","rf","ctx","SmsRegistrationCardComponent_ng_container_0_Template","_SmsRegistrationCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openLearnMoreModal","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","ɵɵpipeBind1","SmsRegistrationErrorBannerComponent","constructor","smsRegistrationService","dialog","RegistrationStage","ngOnInit","registrationStage$","open","LearnMoreModalComponent","width","ɵɵdirectiveInject","SmsRegistrationService","MatDialog","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationErrorBannerComponent_ng_container_0_Template","DataError","_SmsRegistrationErrorBannerComponent","BusinessCategoryToLabelPipe","transform","businessCategory","businessCategoryToLabel","pure","standalone","_BusinessCategoryToLabelPipe","RegionToLabelPipe","transform","region","regionToLabel","pure","standalone","_RegionToLabelPipe","ConfirmationModalComponent","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_ConfirmationModalComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","businessCategory_r1","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","businessType_r2","region_r3","ɵɵtextInterpolate","jobPosition_r4","EIN_REGEX","PHONE_NUMBER_REGEX","ZIP_CODE_REGEX","IdentifierTypeEIN","additionalAddressLine","businessRegistrationNumber","businessName","SmsRegistrationFormComponent","constructor","formBuilder","smsRegistrationService","snackbarService","modal","destroyRef","BusinessCategories","Object","values","BusinessCategory","BusinessTypes","BusinessType","Regions","Region","JobPositions","Position","formLocked","registrationStage","RegistrationStage","NotSubmitted","initialRegistrationFormInfo","Map","fieldsWithIssues","groupOfSomeValuesNeedToChange","customValidatorsMap","subscriptions","fieldWithIssuesToFormFieldsMapping","DataField","DATA_FIELD_LEGAL_BUSINESS_NAME","DATA_FIELD_BUSINESS_CATEGORY","DATA_FIELD_BUSINESS_TYPE","DATA_FIELD_REGION_OF_OPERATION","DATA_FIELD_BUSINESS_REGISTRATION_NUMBER","DATA_FIELD_STREET_ADDRESS","DATA_FIELD_STREET_ADDRESS_SECONDARY","DATA_FIELD_CITY","DATA_FIELD_STATE","DATA_FIELD_POSTAL_CODE","DATA_FIELD_WEBSITE_URL","DATA_FIELD_COUNTRY","DATA_FIELD_FIRST_NAME","DATA_FIELD_LAST_NAME","DATA_FIELD_JOB_POSITION","DATA_FIELD_BUSINESS_TITLE","DATA_FIELD_EMAIL","DATA_FIELD_PHONE_NUMBER","smsForm","group","Validators","maxLength","businessCategory","businessType","regionOfOperation","pattern","address","state","city","zipCode","website","firstName","lastName","jobPosition","businessTitle","email","phoneNumber","ngOnInit","getRegistration","sub","controls","valueChanges","subscribe","value","businessTitleInJobPositions","some","p","otherPosition","patchValue","push","keys","forEach","key","includes","fieldName","updateValueAndValidity","emitEvent","ngOnDestroy","s","unsubscribe","submitRegistrationForm","toggleSubmitValidators","invalid","openErrorSnack","open","ConfirmationModalComponent","width","afterClosed","pipe","take","result","upsertData","saveChanges","errors","errorKey","isSubmitted","form","request","business","legalName","industry","registrationIdentifier","identifierType","identifier","websiteUrl","socialMediaProfileUrls","streetAddress","streetAddressSecondary","postalCode","country","authorizedRepresentative","submitted","upsertA2pRegistration","openWithOptions","panelClass","lockForm","combineLatest","a2PRegistrationInfo$","registrationStage$","a2pRegistrationStatus$","getPrefillA2PFormInfo","takeUntilDestroyed","a2pRegistrationInfo","registrationStatus","a2PFormInfo","prefillFormWithA2PFormInfo","DataError","unlockForm","getInitialRegistrationFormInfo","getFormFieldsWithIssues","getGroupOfSomeValuesNeedToChange","control","get","markAsTouched","error","status","disable","enable","on","addValidators","required","val","undefined","sameValueValidatorFn","sameValueValidator","set","someValueNeedsToChange","someValueNeedsToChangeValidator","removeValidators","customValidatorFn","delete","a2PRegistrationInfo","originalFormFieldValue","sameValueError","groupOfFields","originalValuesMap","passed","originalValue","entries","c","groupValueError","secondaryBusinessProfile","ValidationStatus","VALIDATION_STATUS_NON_COMPLIANT","length","field","trustBundle","brand","BrandStatus","BRAND_STATUS_FAILED","ɵɵdirectiveInject","FormBuilder","SmsRegistrationService","SnackbarService","MatDialog","DestroyRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SmsRegistrationFormComponent_mat_icon_7_Template","ɵɵelement","SmsRegistrationFormComponent_glxy_hint_14_Template","SmsRegistrationFormComponent_glxy_error_15_Template","SmsRegistrationFormComponent_mat_option_21_Template","SmsRegistrationFormComponent_mat_option_27_Template","SmsRegistrationFormComponent_mat_option_33_Template","SmsRegistrationFormComponent_glxy_hint_39_Template","SmsRegistrationFormComponent_glxy_error_40_Template","SmsRegistrationFormComponent_glxy_error_67_Template","SmsRegistrationFormComponent_mat_icon_80_Template","SmsRegistrationFormComponent_mat_option_98_Template","SmsRegistrationFormComponent_glxy_error_113_Template","SmsRegistrationFormComponent_glxy_hint_119_Template","SmsRegistrationFormComponent_glxy_error_120_Template","ɵɵlistener","hasError","touched","_SmsRegistrationFormComponent","SmsRegistrationComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","_SmsRegistrationComponent","en_devel_default","SMSI18NModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_SMSI18NModule","SmsModule","SmsRegistrationService","imports","CommonModule","MatCardModule","GalaxyFormFieldModule","MatInputModule","MatSelectModule","MatButtonModule","ReactiveFormsModule","MatIconModule","InfoBannerComponent","GalaxyAlertModule","MatChipsModule","GalaxyBadgeModule","GalaxyPopoverModule","TranslateModule","SMSI18NModule","ProgressTrackerComponent","_SmsModule","defaultDynamicComponents","textKey","replacementTags","DynamicComponentSelectorService","constructor","templatesService","appListingService","parentVariableCategories","overrideParentVariableCategories","hasComponentsToDisplay","length","getVariables","filters","listSubstitutionParameters","pipe","map","params","filterSubstitutionParameters","v","options","subItems","filter","p","some","t","replacementTag","sort","a","b","indexOf","getProductSubstitutionVariables","listAllActivatableApps","take","variableCategories","ɵɵinject","TemplatesService","EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN","factory","ɵfac","_DynamicComponentSelectorService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","mainItem_r4","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","textKey","subParam_r6","displayName","ɵɵelementContainerStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r5","ctx_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","chosenParam","ɵɵresetView","ɵɵlistener","handleParamChange","ɵɵtemplate","DynamicComponentDialogComponent_ng_container_4_ng_container_8_mat_option_7_Template","chosenCategory","ɵɵtwoWayProperty","subItems","v_r8","value","title","_r7","chosenParamDetails","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_mat_option_7_Template","dynamicValues_r9","ɵɵelement","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_container_1_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_ng_template_3_Template","ɵɵtemplateRefExtractor","chosenDynamicParam$","loading_r10","_r2","handleCategoryChange","DynamicComponentDialogComponent_ng_container_4_mat_option_7_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_8_Template","DynamicComponentDialogComponent_ng_container_4_ng_container_9_Template","ɵɵtextInterpolate","variables_r11","options","nestedDynamicSelector","DynamicComponentDialogComponent","constructor","dynamicComponentSelectorService","dialogRef","formResult","EventEmitter","allowedEntryApps","variables$","getVariables","includeHtml","pipe","map","vars","filter","v","requiredParams","reduce","prev","curr","i","arr","shareReplay","chosenDynamicParam$$","ReplaySubject","ngOnInit","asObservable","switchMap","chosenDynamicParam","getProductSubstitutionVariables","apps","a","includes","appId","app","name","replacementTag","next","add","close","ɵɵdirectiveInject","DynamicComponentSelectorService","MatDialogRef","selectors","outputs","decls","consts","template","rf","ctx","DynamicComponentDialogComponent_ng_container_4_Template","_r1","DynamicComponentDialogComponent_ng_template_14_Template","empty_r12","_DynamicComponentDialogComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openDialog","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","DynamicComponentSelectorComponent","constructor","dialog","variableService","modelChange","EventEmitter","variablesReady","hasComponentsToDisplay","open","DynamicComponentDialogComponent","width","height","afterClosed","pipe","take","subscribe","res","selectVariable","replacementTag","startPos","target","selectionStart","endPos","selectionEnd","contentBefore","value","substr","contentAfter","length","newValue","emit","window","setTimeout","focus","setSelectionRange","ɵɵdirectiveInject","MatDialog","DynamicComponentSelectorService","selectors","inputs","marketId","model","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DynamicComponentSelectorComponent_mat_icon_0_Template","_DynamicComponentSelectorComponent","en_devel_default","TemplatesI18nModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_TemplatesI18nModule","DynamicComponentSelectorModule","DynamicComponentSelectorService","imports","CommonModule","GalaxyTooltipModule","GalaxyWrapModule","MatFormFieldModule","MatButtonModule","MatDialogModule","MatInputModule","MatListModule","MatIconModule","MatTooltipModule","MatCardModule","MatOptionModule","TranslateModule","MatSelectModule","GalaxyEmptyStateModule","TemplatesI18nModule","_DynamicComponentSelectorModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c1","ctx_r1","smsForm","controls","message","errors","textTooLong","ɵɵtextInterpolate2","ɵɵpipeBind1","calculatedTextLength$$","textLimit","ɵɵlistener","$event","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","emitNewTemplateValue","ɵɵtemplate","TextMessageBuilderFormComponent_ng_template_6_glxy_hint_8_Template","smsText_r3","regex","RegExp","TextMessageBuilderFormComponent","setInitialInputText","inputText","patchValue","constructor","FormGroup","name","FormControl","BehaviorSubject","template","EventEmitter","valid","undefined","setValidators","control","value","replaceAll","length","ngOnInit","valueChanges","subscribe","next","emit","statusChanges","status","ɵɵdirectiveInject","SmsTextLimitToken","selectors","viewQuery","rf","ctx","TextMessageBuilderFormComponent_ng_container_5_Template","TextMessageBuilderFormComponent_ng_template_6_Template","ɵɵtemplateRefExtractor","allowDynamic","hasDynamic_r4","CommonModule","NgIf","NgStyle","AsyncPipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","HintDirective","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","RequiredValidator","FormGroupDirective","FormControlName","MatInputModule","MatInput","DynamicComponentSelectorModule","DynamicComponentSelectorComponent","TranslateModule","styles","_TextMessageBuilderFormComponent","TextMessageBuilderPreviewComponent","constructor","templates","loading","ngOnChanges","changes","allowDynamic","rendered$","render","currentValue","account_group_id","partner_id","contact_id","TemplateType","TEMPLATE_TYPE_GOLANG_TEXT","accountGroupId","partnerId","contactId","undefined","pipe","tap","_","ɵɵdirectiveInject","TemplatesService","selectors","inputs","messageText","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","AsyncPipe","ChatMessageGroupComponent","ChatMessageComponent","MatCardModule","styles","_TextMessageBuilderPreviewComponent","TextMessageBuilderComponent","constructor","initialInputText","message","name","sms$$","BehaviorSubject","sms$","asObservable","valid$$","valid$","sms","EventEmitter","valid","setMessageBuilderText","messageBuilderText","ngOnInit","subscribe","value","emit","status","updateSMS","m","next","updateValid","selectors","inputs","allowDynamic","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","MatCardModule","MatCard","MatCardContent","CommonModule","AsyncPipe","TextMessageBuilderFormComponent","TextMessageBuilderPreviewComponent","styles","_TextMessageBuilderComponent"],"x_google_ignoreList":[4]}