{ "version": 3, "sources": ["libs/account-group/src/lib/projection-filter.ts", "libs/account-group/src/lib/account-group-helpers.ts", "libs/account-group/src/lib/utils/proto-utils.ts", "libs/account-group/src/lib/account-group.ts", "libs/account-group/src/lib/account-group.api.service.ts", "libs/account-group/src/lib/lookup-filters.ts", "libs/account-group/src/lib/sort-options.ts", "libs/account-group/src/lib/account-group.service.ts", "libs/account-group/src/lib/update-operations.ts", "libs/account-group/src/lib/read-filter.ts", "libs/account-group/src/lib/index.ts", "libs/account-group/src/index.ts"], "sourcesContent": ["import { ProjectionFilter as sdkProjectionFilter } from '@vendasta/account-group';\n\nexport class ProjectionFilter extends sdkProjectionFilter {\n public enableAll(): ProjectionFilter {\n this.accounts = true;\n this.listingDistribution = true;\n this.listingSyncPro = true;\n this.associations = true;\n this.accountGroupExternalIdentifiers = true;\n this.socialUrls = true;\n this.hoursOfOperation = true;\n this.contactDetails = true;\n this.snapshotReports = true;\n this.legacyProductDetails = true;\n this.richData = true;\n this.status = true;\n this.napData = true;\n this.health = true;\n this.additionalCompanyInfo = true;\n this.marketingInfo = true;\n return this;\n }\n}\n", "export function errorCanBeHandled(error): boolean {\n if (error.status !== 403) {\n return false;\n }\n return !!(error.status === 403 && error.error?.details[0]?.failures[0]);\n}\n\nexport function findAccessibleAccountGroupIds(error: any, allAccountGroups: string[]): string[] {\n const failedAccountGroupIds = [];\n error.error.details[0].failures.forEach((ag) => {\n if (ag.identifiers?.account_group_id?.values) {\n failedAccountGroupIds.push(ag.identifiers.account_group_id.values[0]);\n } else {\n return [];\n }\n });\n\n const validAccountGroupIds = [];\n allAccountGroups.filter((ag) => {\n if (failedAccountGroupIds.find((a) => a === ag) === undefined) {\n validAccountGroupIds.push(ag);\n }\n });\n\n return validAccountGroupIds;\n}\n", "export function enumStringToValue(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n", "import {\n AdditionalCompanyInfo,\n ClosedStatus,\n GooglePlaceInterface,\n HealthCareProfessionalInformationGender,\n IsAvailable,\n LifecycleStage,\n ListingSyncProBillingFrequency,\n ListingSyncProServiceProviders,\n MarketingInfo,\n RichDataPaymentMethods,\n ServiceAreaBusinessType,\n ServiceAreaInterface,\n} from '@vendasta/account-group';\nimport { enumStringToValue } from './utils/proto-utils';\nexport { AdditionalCompanyInfo, MarketingInfo } from '@vendasta/account-group';\n\nexport class GooglePlace implements GooglePlaceInterface {\n placeId: string;\n placeName: string;\n city: string;\n\n static fromProto(proto: any): GooglePlace {\n let m = new GooglePlace();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: GooglePlaceInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.placeId !== 'undefined') {\n toReturn['placeId'] = this.placeId;\n }\n if (typeof this.placeName !== 'undefined') {\n toReturn['placeName'] = this.placeName;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n return toReturn;\n }\n}\n\nexport class ServiceArea implements ServiceAreaInterface {\n businessType: ServiceAreaBusinessType;\n places: GooglePlace[];\n\n static fromProto(proto: any): ServiceArea {\n let m = new ServiceArea();\n m = Object.assign(m, proto);\n if (proto?.businessType) {\n m.businessType = enumStringToValue(ServiceAreaBusinessType, proto?.businessType);\n }\n if (proto?.places) {\n m.places = proto?.places.map(GooglePlace.fromProto);\n }\n return m;\n }\n\n constructor(kwargs?: ServiceAreaInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.businessType !== 'undefined') {\n toReturn['businessType'] = this.businessType;\n }\n if (typeof this.places !== 'undefined' && this.places !== null) {\n toReturn['places'] = 'toApiJson' in this.places ? (this.places as any).toApiJson() : this.places;\n }\n return toReturn;\n }\n}\n\nexport class GeoPoint {\n latitude: number;\n longitude: number;\n\n static fromProto(proto: any): GeoPoint {\n if (!proto) {\n return null;\n }\n const model = new GeoPoint();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.latitude === 'undefined' && typeof this.longitude === 'undefined') {\n return null;\n }\n return {\n latitude: typeof this.latitude !== 'undefined' ? this.latitude : null,\n longitude: typeof this.longitude !== 'undefined' ? this.longitude : null,\n };\n }\n}\n\nexport class Account {\n isTrial: boolean;\n tags: string[];\n accountId: string;\n marketplaceAppId: string;\n expiry: Date;\n editionId: string;\n\n static fromProto(proto: any): Account {\n if (!proto) {\n return null;\n }\n const model = new Account();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.expiry = proto.expiry ? new Date(proto.expiry) : null;\n if (typeof model.isTrial === 'undefined') {\n model.isTrial = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n expired(): boolean {\n if (this.expiry) {\n return this.expiry < new Date();\n }\n return false;\n }\n\n toApiJson(): object {\n if (\n typeof this.isTrial === 'undefined' &&\n typeof this.tags === 'undefined' &&\n typeof this.accountId === 'undefined' &&\n typeof this.marketplaceAppId === 'undefined' &&\n typeof this.expiry === 'undefined'\n ) {\n return null;\n }\n\n return {\n isTrial: typeof this.isTrial !== 'undefined' ? this.isTrial : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n accountId: typeof this.accountId !== 'undefined' ? this.accountId : null,\n marketplaceAppId: typeof this.marketplaceAppId !== 'undefined' ? this.marketplaceAppId : null,\n expiry: typeof this.expiry !== 'undefined' ? this.expiry.toISOString() : null,\n editionId: typeof this.marketplaceAppId !== 'undefined' ? this.editionId : null,\n };\n }\n}\n\nexport class ListingDistributionDetails {\n orderId: string;\n purchaseId: string;\n fromDate: Date;\n thruDate: Date;\n autoRenew: boolean;\n\n static fromProto(proto: any): ListingDistributionDetails {\n if (!proto) {\n return null;\n }\n const model = new ListingDistributionDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.fromDate = new Date(proto.fromDate);\n model.thruDate = new Date(proto.thruDate);\n if (typeof model.autoRenew === 'undefined') {\n model.autoRenew = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.orderId === 'undefined' &&\n typeof this.purchaseId === 'undefined' &&\n typeof this.fromDate === 'undefined' &&\n typeof this.thruDate === 'undefined' &&\n typeof this.autoRenew === 'undefined'\n ) {\n return null;\n }\n\n return {\n orderId: typeof this.orderId !== 'undefined' ? this.orderId : null,\n purchaseId: typeof this.purchaseId !== 'undefined' ? this.purchaseId : null,\n fromDate: typeof this.fromDate !== 'undefined' ? this.fromDate.toISOString() : null,\n thruDate: typeof this.thruDate !== 'undefined' ? this.thruDate.toISOString() : null,\n autoRenew: typeof this.autoRenew !== 'undefined' ? this.autoRenew : null,\n };\n }\n\n isActive(): boolean {\n if (!this.thruDate) {\n return false;\n }\n return this.thruDate >= new Date();\n }\n}\n\nexport class ListingSyncProDetails {\n purchaseDate: Date;\n billingFrequency: ListingSyncProBillingFrequency;\n expiryDate: Date;\n country: string;\n discountFlag: boolean;\n serviceProviders: ListingSyncProServiceProviders;\n\n static fromProto(proto: any): ListingSyncProDetails {\n if (!proto) {\n return null;\n }\n const model = new ListingSyncProDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.purchaseDate = proto.purchaseDate ? new Date(proto.purchaseDate) : null;\n model.expiryDate = proto.expiryDate ? new Date(proto.expiryDate) : null;\n if (typeof model.discountFlag === 'undefined') {\n model.discountFlag = false;\n }\n if (proto.billingFrequency) {\n model.billingFrequency = enumStringToValue(\n ListingSyncProBillingFrequency,\n proto.billingFrequency,\n );\n }\n if (proto.serviceProviders) {\n model.serviceProviders = enumStringToValue(\n ListingSyncProServiceProviders,\n proto.serviceProviders,\n );\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.purchaseDate === 'undefined' &&\n typeof this.billingFrequency === 'undefined' &&\n typeof this.expiryDate === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.discountFlag === 'undefined' &&\n typeof this.serviceProviders === 'undefined'\n ) {\n return null;\n }\n\n return {\n purchaseDate: typeof this.purchaseDate !== 'undefined' ? this.purchaseDate.toISOString() : null,\n billingFrequency: typeof this.billingFrequency !== 'undefined' ? this.billingFrequency : null,\n expiryDate: typeof this.expiryDate !== 'undefined' ? this.expiryDate.toISOString() : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n discountFlag: typeof this.discountFlag !== 'undefined' ? this.discountFlag : null,\n serviceProviders: typeof this.serviceProviders !== 'undefined' ? this.serviceProviders : null,\n };\n }\n}\n\nexport class Association {\n label: string;\n productId: string;\n productUserId: string;\n vbcUserId: string;\n defaultLocation: boolean;\n\n static fromProto(proto: any): Association {\n if (!proto) {\n return null;\n }\n const model = new Association();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.defaultLocation === 'undefined') {\n model.defaultLocation = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.label === 'undefined' &&\n typeof this.productId === 'undefined' &&\n typeof this.productUserId === 'undefined' &&\n typeof this.vbcUserId === 'undefined' &&\n typeof this.defaultLocation === 'undefined'\n ) {\n return null;\n }\n\n return {\n label: typeof this.label !== 'undefined' ? this.label : null,\n productId: typeof this.productId !== 'undefined' ? this.productId : null,\n productUserId: typeof this.productUserId !== 'undefined' ? this.productUserId : null,\n vbcUserId: typeof this.vbcUserId !== 'undefined' ? this.vbcUserId : null,\n defaultLocation: typeof this.defaultLocation !== 'undefined' ? this.defaultLocation : null,\n };\n }\n}\n\nexport class AccountGroupExternalIdentifiers {\n origin: string;\n jobId: string[];\n customerIdentifier: string;\n tags: string[];\n actionLists: string[];\n socialProfileId: string;\n partnerId: string;\n marketId: string;\n taxIds: string[];\n vCategoryIds: string[];\n salesPersonId: string;\n additionalSalesPersonIds: string[];\n\n static fromProto(proto: any): AccountGroupExternalIdentifiers {\n if (!proto) {\n return null;\n }\n const model = new AccountGroupExternalIdentifiers();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.origin === 'undefined' &&\n typeof this.jobId === 'undefined' &&\n typeof this.customerIdentifier === 'undefined' &&\n typeof this.tags === 'undefined' &&\n typeof this.actionLists === 'undefined' &&\n typeof this.socialProfileId === 'undefined' &&\n typeof this.partnerId === 'undefined' &&\n typeof this.marketId === 'undefined' &&\n typeof this.taxIds === 'undefined' &&\n typeof this.vCategoryIds === 'undefined' &&\n typeof this.salesPersonId === 'undefined' &&\n typeof this.additionalSalesPersonIds === 'undefined'\n ) {\n return null;\n }\n\n return {\n origin: typeof this.origin !== 'undefined' ? this.origin : null,\n jobId: typeof this.jobId !== 'undefined' ? this.jobId : null,\n customerIdentifier: typeof this.customerIdentifier !== 'undefined' ? this.customerIdentifier : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n actionLists: typeof this.actionLists !== 'undefined' ? this.actionLists : null,\n socialProfileId: typeof this.socialProfileId !== 'undefined' ? this.socialProfileId : null,\n partnerId: typeof this.partnerId !== 'undefined' ? this.partnerId : null,\n marketId: typeof this.marketId !== 'undefined' ? this.marketId : null,\n taxIds: typeof this.taxIds !== 'undefined' ? this.taxIds : null,\n vCategoryIds: typeof this.vCategoryIds !== 'undefined' ? this.vCategoryIds : null,\n salesPersonId: typeof this.salesPersonId !== 'undefined' ? this.salesPersonId : null,\n additionalSalesPersonIds:\n typeof this.additionalSalesPersonIds !== 'undefined' ? this.additionalSalesPersonIds : null,\n };\n }\n}\n\nexport class SocialURLs {\n googleplusUrl: string;\n linkedinUrl: string;\n foursquareUrl: string;\n twitterUrl: string;\n facebookUrl: string;\n rssUrl: string;\n youtubeUrl: string;\n instagramUrl: string;\n pinterestUrl: string;\n\n static fromProto(proto: any): SocialURLs {\n if (!proto) {\n return null;\n }\n const model = new SocialURLs();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.googleplusUrl === 'undefined' &&\n typeof this.linkedinUrl === 'undefined' &&\n typeof this.foursquareUrl === 'undefined' &&\n typeof this.twitterUrl === 'undefined' &&\n typeof this.facebookUrl === 'undefined' &&\n typeof this.rssUrl === 'undefined' &&\n typeof this.youtubeUrl === 'undefined' &&\n typeof this.instagramUrl === 'undefined' &&\n typeof this.pinterestUrl === 'undefined'\n ) {\n return null;\n }\n\n return {\n googleplusUrl: typeof this.googleplusUrl !== 'undefined' ? this.googleplusUrl : null,\n linkedinUrl: typeof this.linkedinUrl !== 'undefined' ? this.linkedinUrl : null,\n foursquareUrl: typeof this.foursquareUrl !== 'undefined' ? this.foursquareUrl : null,\n twitterUrl: typeof this.twitterUrl !== 'undefined' ? this.twitterUrl : null,\n facebookUrl: typeof this.facebookUrl !== 'undefined' ? this.facebookUrl : null,\n rssUrl: typeof this.rssUrl !== 'undefined' ? this.rssUrl : null,\n youtubeUrl: typeof this.youtubeUrl !== 'undefined' ? this.youtubeUrl : null,\n instagramUrl: typeof this.instagramUrl !== 'undefined' ? this.instagramUrl : null,\n pinterestUrl: typeof this.pinterestUrl !== 'undefined' ? this.pinterestUrl : null,\n };\n }\n}\n\nexport class HoursOfOperation {\n dayOfWeek: string[];\n opens: string;\n closes: string;\n description: string;\n\n static fromProto(proto: any): HoursOfOperation {\n if (!proto) {\n return null;\n }\n const model = new HoursOfOperation();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.dayOfWeek === 'undefined' &&\n typeof this.opens === 'undefined' &&\n typeof this.closes === 'undefined' &&\n typeof this.description === 'undefined'\n ) {\n return null;\n }\n\n return {\n dayOfWeek: typeof this.dayOfWeek !== 'undefined' ? this.dayOfWeek : null,\n opens: typeof this.opens !== 'undefined' ? this.opens : null,\n closes: typeof this.closes !== 'undefined' ? this.closes : null,\n description: typeof this.description !== 'undefined' ? this.description : null,\n };\n }\n}\n\nexport class ContactDetails {\n firstName: string;\n lastName: string;\n email: string;\n phoneNumber: string;\n\n static fromProto(proto: any): ContactDetails {\n if (!proto) {\n return null;\n }\n const model = new ContactDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.firstName === 'undefined' &&\n typeof this.lastName === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.phoneNumber === 'undefined'\n ) {\n return null;\n }\n\n return {\n firstName: typeof this.firstName !== 'undefined' ? this.firstName : null,\n lastName: typeof this.lastName !== 'undefined' ? this.lastName : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n phoneNumber: typeof this.phoneNumber !== 'undefined' ? this.phoneNumber : null,\n };\n }\n}\n\nexport class Snapshot {\n snapshotId: string;\n created: Date;\n expiry: Date;\n address: string;\n\n static fromProto(proto: any): Snapshot {\n if (!proto) {\n return null;\n }\n const model = new Snapshot();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.created = proto.created ? new Date(proto.created) : null;\n model.expiry = proto.expiry ? new Date(proto.expiry) : null;\n model.address = proto.address ? proto.address : '';\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n expired(): boolean {\n return this.expiry < new Date();\n }\n\n toApiJson(): object {\n if (\n typeof this.snapshotId === 'undefined' &&\n typeof this.created === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.expiry === 'undefined'\n ) {\n return null;\n }\n\n return {\n snapshotId: typeof this.snapshotId !== 'undefined' ? this.snapshotId : null,\n created: typeof this.created !== 'undefined' ? this.created.toISOString() : null,\n expiry: typeof this.expiry !== 'undefined' ? this.expiry.toISOString() : null,\n address: typeof this.address !== 'undefined' ? this.address : '',\n };\n }\n}\n\nexport class LegacyProductDetails {\n keyPerson: string[];\n shareOfVoiceService: string[];\n faxNumber: string;\n commonName: string[];\n cellNumber: string;\n competitor: string[];\n adminNotes: string;\n seoCategory: string[];\n email: string;\n place: string;\n tagline: string;\n subscribedToCampaigns: boolean;\n\n static fromProto(proto: any): LegacyProductDetails {\n if (!proto) {\n return null;\n }\n const model = new LegacyProductDetails();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.subscribedToCampaigns === 'undefined') {\n model.subscribedToCampaigns = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.keyPerson === 'undefined' &&\n typeof this.shareOfVoiceService === 'undefined' &&\n typeof this.faxNumber === 'undefined' &&\n typeof this.commonName === 'undefined' &&\n typeof this.cellNumber === 'undefined' &&\n typeof this.competitor === 'undefined' &&\n typeof this.adminNotes === 'undefined' &&\n typeof this.seoCategory === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.place === 'undefined' &&\n typeof this.tagline === 'undefined' &&\n typeof this.subscribedToCampaigns === 'undefined'\n ) {\n return null;\n }\n\n return {\n keyPerson: typeof this.keyPerson !== 'undefined' ? this.keyPerson : null,\n shareOfVoiceService: typeof this.shareOfVoiceService !== 'undefined' ? this.shareOfVoiceService : null,\n faxNumber: typeof this.faxNumber !== 'undefined' ? this.faxNumber : null,\n commonName: typeof this.commonName !== 'undefined' ? this.commonName : null,\n cellNumber: typeof this.cellNumber !== 'undefined' ? this.cellNumber : null,\n competitor: typeof this.competitor !== 'undefined' ? this.competitor : null,\n adminNotes: typeof this.adminNotes !== 'undefined' ? this.adminNotes : null,\n seoCategory: typeof this.seoCategory !== 'undefined' ? this.seoCategory : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n place: typeof this.place !== 'undefined' ? this.place : null,\n tagline: typeof this.tagline !== 'undefined' ? this.tagline : null,\n subscribedToCampaigns: typeof this.subscribedToCampaigns !== 'undefined' ? this.subscribedToCampaigns : null,\n };\n }\n}\n\nexport class CustomField {\n name: string;\n value: string;\n\n static fromProto(proto: any): CustomField {\n if (!proto) {\n return null;\n }\n const model = new CustomField();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.name === 'undefined' && typeof this.value === 'undefined') {\n return null;\n }\n\n return {\n name: typeof this.name !== 'undefined' ? this.name : null,\n value: typeof this.value !== 'undefined' ? this.value : null,\n };\n }\n}\n\nexport class HealthCareProfessionalInformation {\n dateOfBirth: Date;\n email: string;\n fellowship: string[];\n firstName: string;\n gender: HealthCareProfessionalInformationGender;\n initials: string;\n insurancesAccepted: string[];\n isTakingPatients: boolean;\n lastName: string;\n medicalLicenseNumber: string;\n nationalProviderIdentifier: string;\n office: string;\n professionalCredential: string[];\n residency: string[];\n school: string[];\n specialty: string[];\n standardizedTitle: string;\n stateLicense: string;\n\n static fromProto(proto: any): HealthCareProfessionalInformation {\n if (!proto) {\n return null;\n }\n const model = new HealthCareProfessionalInformation();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (proto.gender) {\n model.gender = enumStringToValue(\n HealthCareProfessionalInformationGender,\n proto.gender,\n );\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.dateOfBirth === 'undefined' &&\n typeof this.email === 'undefined' &&\n typeof this.fellowship === 'undefined' &&\n typeof this.firstName === 'undefined' &&\n typeof this.gender === 'undefined' &&\n typeof this.initials === 'undefined' &&\n typeof this.insurancesAccepted === 'undefined' &&\n typeof this.isTakingPatients === 'undefined' &&\n typeof this.lastName === 'undefined' &&\n typeof this.medicalLicenseNumber === 'undefined' &&\n typeof this.nationalProviderIdentifier === 'undefined' &&\n typeof this.office === 'undefined' &&\n typeof this.professionalCredential === 'undefined' &&\n typeof this.residency === 'undefined' &&\n typeof this.school === 'undefined' &&\n typeof this.specialty === 'undefined' &&\n typeof this.standardizedTitle === 'undefined' &&\n typeof this.stateLicense === 'undefined'\n ) {\n return null;\n }\n\n return {\n dateOfBirth: typeof this.dateOfBirth !== 'undefined' ? this.dateOfBirth.toISOString() : null,\n email: typeof this.email !== 'undefined' ? this.email : null,\n fellowship: typeof this.fellowship !== 'undefined' ? this.fellowship : null,\n firstName: typeof this.firstName !== 'undefined' ? this.firstName : null,\n gender: typeof this.gender !== 'undefined' ? this.gender : null,\n initials: typeof this.initials !== 'undefined' ? this.initials : null,\n insurancesAccepted: typeof this.insurancesAccepted !== 'undefined' ? this.insurancesAccepted : null,\n isTakingPatients: typeof this.isTakingPatients !== 'undefined' ? this.isTakingPatients : null,\n lastName: typeof this.lastName !== 'undefined' ? this.lastName : null,\n medicalLicenseNumber: typeof this.medicalLicenseNumber !== 'undefined' ? this.medicalLicenseNumber : null,\n nationalProviderIdentifier:\n typeof this.nationalProviderIdentifier !== 'undefined' ? this.nationalProviderIdentifier : null,\n office: typeof this.office !== 'undefined' ? this.office : null,\n professionalCredential: typeof this.professionalCredential !== 'undefined' ? this.professionalCredential : null,\n residency: typeof this.residency !== 'undefined' ? this.residency : null,\n school: typeof this.school !== 'undefined' ? this.school : null,\n specialty: typeof this.specialty !== 'undefined' ? this.specialty : null,\n standardizedTitle: typeof this.standardizedTitle !== 'undefined' ? this.standardizedTitle : null,\n stateLicense: typeof this.stateLicense !== 'undefined' ? this.stateLicense : null,\n };\n }\n}\n\nexport class RichData {\n tollFreeNumber: string;\n description: string;\n shortDescription: string;\n servicesOffered: string[];\n brandsCarried: string[];\n landmark: string;\n paymentMethods: RichDataPaymentMethods[];\n customFields: CustomField[];\n healthCareProfessionalInformation: HealthCareProfessionalInformation;\n inferredAttributes: string[];\n serviceAvailability?: ServiceAvailability;\n\n static fromProto(proto: any): RichData {\n if (!proto) {\n return null;\n }\n const model = new RichData();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n model.healthCareProfessionalInformation = HealthCareProfessionalInformation.fromProto(\n proto.healthCareProfessionalInformation,\n );\n if (proto.paymentMethods && proto.paymentMethods.length) {\n model.paymentMethods = proto.paymentMethods.map((v: string) =>\n enumStringToValue(RichDataPaymentMethods, v),\n );\n }\n model.serviceAvailability = ServiceAvailability.fromProto(proto.serviceAvailability);\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.tollFreeNumber === 'undefined' &&\n typeof this.description === 'undefined' &&\n typeof this.shortDescription === 'undefined' &&\n typeof this.servicesOffered === 'undefined' &&\n typeof this.brandsCarried === 'undefined' &&\n typeof this.landmark === 'undefined' &&\n typeof this.paymentMethods === 'undefined' &&\n typeof this.customFields === 'undefined' &&\n typeof this.healthCareProfessionalInformation === 'undefined' &&\n typeof this.inferredAttributes === 'undefined' &&\n typeof this.inferredAttributes === 'undefined' &&\n typeof this.serviceAvailability === 'undefined'\n ) {\n return null;\n }\n\n return {\n tollFreeNumber: typeof this.tollFreeNumber !== 'undefined' ? this.tollFreeNumber : null,\n description: typeof this.description !== 'undefined' ? this.description : null,\n shortDescription: typeof this.shortDescription !== 'undefined' ? this.shortDescription : null,\n servicesOffered: typeof this.servicesOffered !== 'undefined' ? this.servicesOffered : null,\n brandsCarried: typeof this.brandsCarried !== 'undefined' ? this.brandsCarried : null,\n landmark: typeof this.landmark !== 'undefined' ? this.landmark : null,\n paymentMethods: typeof this.paymentMethods !== 'undefined' ? this.paymentMethods : null,\n customFields:\n typeof this.customFields !== 'undefined'\n ? this.customFields.map((customField: CustomField) => customField.toApiJson())\n : null,\n healthCareProfessionalInformation:\n typeof this.healthCareProfessionalInformation !== 'undefined'\n ? this.healthCareProfessionalInformation.toApiJson()\n : null,\n inferredAttributes: typeof this.inferredAttributes !== 'undefined' ? this.inferredAttributes : null,\n serviceAvailability: typeof this.serviceAvailability !== 'undefined' ? this.serviceAvailability : null,\n };\n }\n}\n\nexport class ServiceAvailability {\n delivery?: IsAvailable;\n noContactDelivery?: IsAvailable;\n inStorePickup?: IsAvailable;\n curbsidePickup?: IsAvailable;\n appointmentsOnly?: IsAvailable;\n ecommerceOnly?: IsAvailable;\n closedStatus?: ClosedStatus;\n closedStatusDate?: Date;\n servesDineIn?: IsAvailable;\n reopeningDate?: Date;\n\n static fromProto(proto: any): ServiceAvailability {\n if (!proto) {\n return null;\n }\n let m = new ServiceAvailability();\n m = Object.assign(m, proto);\n if (proto.delivery) {\n m.delivery = enumStringToValue(IsAvailable, proto.delivery);\n }\n if (proto.noContactDelivery) {\n m.noContactDelivery = enumStringToValue(IsAvailable, proto.noContactDelivery);\n }\n if (proto.inStorePickup) {\n m.inStorePickup = enumStringToValue(IsAvailable, proto.inStorePickup);\n }\n if (proto.curbsidePickup) {\n m.curbsidePickup = enumStringToValue(IsAvailable, proto.curbsidePickup);\n }\n if (proto.appointmentsOnly) {\n m.appointmentsOnly = enumStringToValue(IsAvailable, proto.appointmentsOnly);\n }\n if (proto.ecommerceOnly) {\n m.ecommerceOnly = enumStringToValue(IsAvailable, proto.ecommerceOnly);\n }\n if (proto.closedStatus) {\n m.closedStatus = enumStringToValue(ClosedStatus, proto.closedStatus);\n }\n if (proto.closedStatusDate) {\n m.closedStatusDate = new Date(proto.closedStatusDate);\n }\n if (proto.servesDineIn) {\n m.servesDineIn = enumStringToValue(IsAvailable, proto.servesDineIn);\n }\n if (proto.reopeningDate) {\n m.reopeningDate = new Date(proto.reopeningDate);\n }\n return m;\n }\n\n constructor(kwargs?: Partial) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.delivery === 'undefined' &&\n typeof this.noContactDelivery === 'undefined' &&\n typeof this.inStorePickup === 'undefined' &&\n typeof this.curbsidePickup === 'undefined' &&\n typeof this.appointmentsOnly === 'undefined' &&\n typeof this.ecommerceOnly === 'undefined' &&\n typeof this.closedStatus === 'undefined' &&\n typeof this.closedStatusDate === 'undefined' &&\n typeof this.servesDineIn === 'undefined' &&\n typeof this.reopeningDate === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.delivery !== 'undefined') {\n toReturn['delivery'] = this.delivery;\n }\n if (typeof this.noContactDelivery !== 'undefined') {\n toReturn['noContactDelivery'] = this.noContactDelivery;\n }\n if (typeof this.inStorePickup !== 'undefined') {\n toReturn['inStorePickup'] = this.inStorePickup;\n }\n if (typeof this.curbsidePickup !== 'undefined') {\n toReturn['curbsidePickup'] = this.curbsidePickup;\n }\n if (typeof this.appointmentsOnly !== 'undefined') {\n toReturn['appointmentsOnly'] = this.appointmentsOnly;\n }\n if (typeof this.ecommerceOnly !== 'undefined') {\n toReturn['ecommerceOnly'] = this.ecommerceOnly;\n }\n if (typeof this.closedStatus !== 'undefined') {\n toReturn['closedStatus'] = this.closedStatus;\n }\n if (typeof this.closedStatusDate !== 'undefined' && this.closedStatusDate !== null) {\n toReturn['closedStatusDate'] =\n 'toApiJson' in this.closedStatusDate ? (this.closedStatusDate as any).toApiJson() : this.closedStatusDate;\n }\n if (typeof this.servesDineIn !== 'undefined') {\n toReturn['servesDineIn'] = this.servesDineIn;\n }\n if (typeof this.reopeningDate !== 'undefined' && this.reopeningDate !== null) {\n toReturn['reopeningDate'] =\n 'toApiJson' in this.reopeningDate ? (this.reopeningDate as any).toApiJson() : this.reopeningDate;\n }\n return toReturn;\n }\n}\n\nexport class Status {\n suspended: boolean;\n hasAlert: boolean;\n\n static fromProto(proto: any): Status {\n if (!proto) {\n return null;\n }\n const model = new Status();\n for (const key in proto) {\n if (key in proto) {\n model[key] = proto[key];\n }\n }\n if (typeof model.suspended === 'undefined') {\n model.suspended = false;\n }\n if (typeof model.hasAlert === 'undefined') {\n model.hasAlert = false;\n }\n return model;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.suspended === 'undefined' || typeof this.hasAlert === 'undefined') {\n return null;\n }\n\n return {\n suspended: typeof this.suspended !== 'undefined' ? this.suspended : null,\n hasAlert: typeof this.hasAlert !== 'undefined' ? this.hasAlert : null,\n };\n }\n}\n\nexport class AccountGroupLocation {\n companyName: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n serviceAreaBusiness: boolean;\n serviceArea: ServiceArea;\n website: string;\n workNumber: string[];\n callTrackingNumber: string[];\n location: GeoPoint;\n timezone: string;\n\n static fromProto(proto: any): AccountGroupLocation {\n if (!proto) {\n return null;\n }\n const napData = new AccountGroupLocation();\n for (const key in proto) {\n if (key in proto) {\n napData[key] = proto[key];\n }\n }\n\n napData.location = GeoPoint.fromProto(proto.location);\n napData.serviceArea = proto.serviceArea ? ServiceArea.fromProto(proto.serviceArea) : undefined;\n return napData;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.companyName === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.address2 === 'undefined' &&\n typeof this.city === 'undefined' &&\n typeof this.state === 'undefined' &&\n typeof this.zip === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.website === 'undefined' &&\n typeof this.workNumber === 'undefined' &&\n typeof this.callTrackingNumber === 'undefined' &&\n typeof this.location === 'undefined' &&\n typeof this.timezone === 'undefined' &&\n typeof this.serviceAreaBusiness === 'undefined' &&\n typeof this.serviceArea === 'undefined'\n ) {\n return null;\n }\n\n return {\n companyName: typeof this.companyName !== 'undefined' ? this.companyName : null,\n address: typeof this.address !== 'undefined' ? this.address : null,\n address2: typeof this.address2 !== 'undefined' ? this.address2 : null,\n city: typeof this.city !== 'undefined' ? this.city : null,\n state: typeof this.state !== 'undefined' ? this.state : null,\n zip: typeof this.zip !== 'undefined' ? this.zip : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n serviceAreaBusiness: typeof this.serviceAreaBusiness !== 'undefined' ? this.serviceAreaBusiness : null,\n serviceArea: typeof this.serviceArea !== 'undefined' ? this.serviceArea?.toApiJson() : null,\n website: typeof this.website !== 'undefined' ? this.website : null,\n workNumber: typeof this.workNumber !== 'undefined' ? this.workNumber : null,\n callTrackingNumber: typeof this.callTrackingNumber !== 'undefined' ? this.callTrackingNumber : null,\n timezone: typeof this.timezone !== 'undefined' ? this.timezone : null,\n location: typeof this.location !== 'undefined' ? this.location.toApiJson() : null,\n };\n }\n}\n\nexport class AccountGroupHealth {\n rating: number;\n reason: string;\n updatedBy: string;\n updatedOn: Date;\n\n static fromProto(proto: any): AccountGroupHealth {\n let m = new AccountGroupHealth();\n m = Object.assign(m, proto);\n if (proto.updatedOn) {\n m.updatedOn = new Date(proto.updatedOn);\n }\n return m;\n }\n\n constructor(kwargs?: Partial) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.rating === 'undefined' &&\n typeof this.reason === 'undefined' &&\n typeof this.updatedBy === 'undefined' &&\n typeof this.updatedOn === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.rating !== 'undefined') {\n toReturn['rating'] = this.rating;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.updatedBy !== 'undefined') {\n toReturn['updatedBy'] = this.updatedBy;\n }\n if (typeof this.updatedOn !== 'undefined' && this.updatedOn !== null) {\n toReturn['updatedOn'] = 'toApiJson' in this.updatedOn ? (this.updatedOn as any).toApiJson() : this.updatedOn;\n }\n return toReturn;\n }\n}\n\nexport class AccountGroup {\n accountGroupId: string;\n\n deleted: Date;\n created: Date;\n updated: Date;\n\n subscribedToCampaigns: boolean;\n\n accounts: Account[];\n listingDistribution: ListingDistributionDetails;\n listingSyncPro: ListingSyncProDetails;\n associations: Association[];\n externalIdentifiers: AccountGroupExternalIdentifiers;\n socialUrls: SocialURLs;\n hoursOfOperation: HoursOfOperation[];\n contactDetails: ContactDetails;\n snapshotReports: Snapshot[];\n legacyProductDetails: LegacyProductDetails;\n richData: RichData;\n napData: AccountGroupLocation;\n status: Status;\n health: AccountGroupHealth;\n additionalCompanyInfo: AdditionalCompanyInfo;\n marketingInfo: MarketingInfo;\n\n static fromProto(proto: any): AccountGroup {\n if (!proto) {\n return null;\n }\n\n const accountGroup = new AccountGroup();\n for (const key in proto) {\n if (key in proto) {\n accountGroup[key] = proto[key];\n }\n }\n if (typeof accountGroup.subscribedToCampaigns === 'undefined') {\n accountGroup.subscribedToCampaigns = false;\n }\n\n accountGroup.created = proto.created ? new Date(proto.created) : null;\n accountGroup.updated = proto.updated ? new Date(proto.updated) : null;\n accountGroup.deleted = proto.deleted ? new Date(proto.deleted) : null;\n\n accountGroup.napData = AccountGroupLocation.fromProto(proto.napData);\n accountGroup.listingDistribution = ListingDistributionDetails.fromProto(proto.listingDistribution);\n accountGroup.listingSyncPro = ListingSyncProDetails.fromProto(proto.listingSyncPro);\n accountGroup.externalIdentifiers = AccountGroupExternalIdentifiers.fromProto(proto.accountGroupExternalIdentifiers);\n accountGroup.socialUrls = SocialURLs.fromProto(proto.socialUrls);\n accountGroup.contactDetails = ContactDetails.fromProto(proto.contactDetails);\n accountGroup.legacyProductDetails = LegacyProductDetails.fromProto(proto.legacyProductDetails);\n accountGroup.richData = RichData.fromProto(proto.richData);\n accountGroup.status = Status.fromProto(proto.status);\n\n accountGroup.accounts =\n proto.accounts && proto.accounts.accounts ? proto.accounts.accounts.map(Account.fromProto) : [];\n accountGroup.associations = proto.associations ? proto.associations.map(Association.fromProto) : [];\n accountGroup.hoursOfOperation =\n proto.hoursOfOperation && proto.hoursOfOperation.hoursOfOperation\n ? proto.hoursOfOperation.hoursOfOperation.map(HoursOfOperation.fromProto)\n : [];\n accountGroup.snapshotReports =\n proto.snapshotReports && proto.snapshotReports.snapshots\n ? proto.snapshotReports.snapshots.map(Snapshot.fromProto)\n : [];\n if (proto.health) {\n accountGroup.health = AccountGroupHealth.fromProto(proto.health);\n }\n if (proto.additionalCompanyInfo) {\n accountGroup.additionalCompanyInfo = AdditionalCompanyInfo.fromProto(proto.additionalCompanyInfo);\n }\n if (proto.marketingInfo) {\n accountGroup.marketingInfo = MarketingInfo.fromProto(proto.marketingInfo);\n }\n\n return accountGroup;\n }\n\n constructor(kwargs?: Partial) {\n return Object.assign(this, kwargs);\n }\n\n hasAccount(marketplaceAppId: string): boolean {\n return !!this.getAccount(marketplaceAppId);\n }\n\n getAccount(marketplaceAppId: string): Account {\n return this.accounts.find((account) => account.marketplaceAppId === marketplaceAppId);\n }\n\n getLatestSnapshotReport(): Snapshot {\n if (!this.snapshotReports) {\n return null;\n }\n return this.snapshotReports[this.snapshotReports.length - 1];\n }\n\n getLifeCycleStage(): LifecycleStage {\n if (typeof this.marketingInfo === 'undefined' || typeof this.marketingInfo.lifecycleStage === 'undefined') {\n return LifecycleStage.LIFECYCLE_STAGE_UNSET;\n }\n\n return (this.marketingInfo.lifecycleStage);\n }\n\n toApiJson(): object {\n if (\n typeof this.accountGroupId === 'undefined' &&\n typeof this.napData === 'undefined' &&\n typeof this.deleted === 'undefined' &&\n typeof this.created === 'undefined' &&\n typeof this.updated === 'undefined' &&\n typeof this.subscribedToCampaigns === 'undefined' &&\n typeof this.accounts === 'undefined' &&\n typeof this.listingDistribution === 'undefined' &&\n typeof this.listingSyncPro === 'undefined' &&\n typeof this.associations === 'undefined' &&\n typeof this.externalIdentifiers === 'undefined' &&\n typeof this.socialUrls === 'undefined' &&\n typeof this.hoursOfOperation === 'undefined' &&\n typeof this.contactDetails === 'undefined' &&\n typeof this.snapshotReports === 'undefined' &&\n typeof this.legacyProductDetails === 'undefined' &&\n typeof this.richData === 'undefined' &&\n typeof this.status === 'undefined' &&\n typeof this.health === 'undefined' &&\n typeof this.additionalCompanyInfo === 'undefined' &&\n typeof this.marketingInfo === 'undefined'\n ) {\n return null;\n }\n\n return {\n accountGroupId: typeof this.accountGroupId !== 'undefined' ? this.accountGroupId : null,\n deleted: typeof this.deleted !== 'undefined' ? this.deleted.toISOString() : null,\n created: typeof this.created !== 'undefined' ? this.created.toISOString() : null,\n updated: typeof this.updated !== 'undefined' ? this.updated.toISOString() : null,\n subscribedToCampaigns: typeof this.subscribedToCampaigns !== 'undefined' ? this.subscribedToCampaigns : null,\n napData: typeof this.napData !== 'undefined' ? this.napData.toApiJson() : null,\n accounts: typeof this.accounts !== 'undefined' ? this.accounts.map((account) => account.toApiJson()) : null,\n listingDistribution:\n typeof this.listingDistribution !== 'undefined' ? this.listingDistribution.toApiJson() : null,\n listingSyncPro: typeof this.listingSyncPro !== 'undefined' ? this.listingSyncPro.toApiJson() : null,\n associations:\n typeof this.associations !== 'undefined'\n ? this.associations.map((association) => association.toApiJson())\n : null,\n accountGroupExternalIdentifiers:\n typeof this.externalIdentifiers !== 'undefined' ? this.externalIdentifiers.toApiJson() : null,\n socialUrls: typeof this.socialUrls !== 'undefined' ? this.socialUrls.toApiJson() : null,\n hoursOfOperation:\n typeof this.hoursOfOperation !== 'undefined'\n ? this.hoursOfOperation.map((hoursOfOperation) => hoursOfOperation.toApiJson())\n : null,\n contactDetails: typeof this.contactDetails !== 'undefined' ? this.contactDetails.toApiJson() : null,\n snapshotReports:\n typeof this.snapshotReports !== 'undefined'\n ? this.snapshotReports.map((snapshotReport) => snapshotReport.toApiJson())\n : null,\n legacyProductDetails:\n typeof this.legacyProductDetails !== 'undefined' ? this.legacyProductDetails.toApiJson() : null,\n richData: typeof this.richData !== 'undefined' ? this.richData.toApiJson() : null,\n status: typeof this.status !== 'undefined' ? this.status.toApiJson() : null,\n health: typeof this.health !== 'undefined' && this.health !== null ? this.health.toApiJson() : null,\n additionalCompanyInfo:\n typeof this.additionalCompanyInfo !== 'undefined' && this.additionalCompanyInfo !== null\n ? this.additionalCompanyInfo.toApiJson()\n : null,\n marketingInfo:\n typeof this.marketingInfo !== 'undefined' && this.marketingInfo !== null\n ? this.marketingInfo.toApiJson()\n : null,\n };\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { share, map } from 'rxjs/operators';\n\nimport { EnvironmentService } from '@galaxy/core';\nimport { Environment } from '@galaxy/core';\nimport { SessionService } from '@galaxy/core';\nimport { ProjectionFilter } from './projection-filter';\nimport { ReadFilter } from './read-filter';\nimport { ApiLookupFilter } from './lookup-filters';\nimport { PagedResponse } from './account-group.api.service.response';\nimport { AccountGroup } from './account-group';\nimport { UpdateOperations } from './update-operations';\nimport { SortOptions } from './sort-options';\nimport { SearchOptions } from './search-options';\n\n@Injectable({ providedIn: 'root' })\nexport class AccountGroupApiService {\n private host: string;\n private lookupUrl = `${this.accountGroupHost}/v1/account-group/lookup`;\n private getMultiUrl = `${this.accountGroupHost}/v1/account-group/get-multi`;\n private bulkUpdateUrl = `${this.accountGroupHost}/v1/account-group/bulk-update`;\n private sessionId = '';\n\n constructor(\n private http: HttpClient,\n private environmentService: EnvironmentService,\n private sessionService: SessionService,\n ) {\n this.sessionService.getSessionId().subscribe((sessionId) => {\n this.sessionId = sessionId;\n });\n }\n\n private apiOptions(): { headers: HttpHeaders; withCredentials: boolean } {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n withCredentials: true,\n };\n }\n\n get(accountGroupId: string, projectionFilter: ProjectionFilter): Observable {\n return this.getMulti([accountGroupId], projectionFilter).pipe(\n map((accountGroups) => accountGroups[0]),\n share(),\n );\n }\n\n getMulti(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter?: ReadFilter,\n ): Observable {\n return this.http\n .post(\n this.getMultiUrl,\n {\n accountGroupIds: accountGroupIds,\n projectionFilter: projectionFilter,\n readFilter: readFilter,\n },\n this.apiOptions(),\n )\n .pipe(\n map((body: any): AccountGroup[] =>\n body.accountGroups.map((accountGroupContainer: any) =>\n AccountGroup.fromProto(accountGroupContainer.accountGroup),\n ),\n ),\n share(),\n );\n }\n\n lookup(\n projectionFilter: ProjectionFilter,\n filters: ApiLookupFilter,\n cursor: string,\n pageSize: number,\n searchTerm: string,\n sortOptions: SortOptions,\n searchOptions?: SearchOptions,\n ): Observable {\n return this.http\n .post(\n this.lookupUrl,\n {\n filters: filters.toApiJson(),\n pageSize: pageSize,\n projectionFilter: projectionFilter,\n cursor: cursor,\n searchTerm: searchTerm,\n sortOptions: sortOptions,\n searchOptions,\n },\n this.apiOptions(),\n )\n .pipe(map(this.handlePagedResponse), share());\n }\n\n bulkUpdate(accountGroupId: string, updateOperations: UpdateOperations): Observable> {\n return this.http.post(\n this.bulkUpdateUrl,\n {\n accountGroupId: accountGroupId,\n updateOperations: updateOperations.toApiJson(),\n },\n this.apiOptions(),\n );\n }\n\n private handlePagedResponse(body: any): PagedResponse {\n if (!body.accountGroups) {\n return {\n accountGroups: [],\n nextCursor: '',\n hasMore: false,\n totalResults: 0,\n };\n }\n return {\n accountGroups: body.accountGroups.map(AccountGroup.fromProto),\n nextCursor: body.nextCursor || '',\n hasMore: body.hasMore || false,\n totalResults: Number(body.totalResults) || 0,\n };\n }\n\n private get accountGroupHost(): string {\n if (this.host) {\n return this.host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this.host = 'http://localhost:22003';\n break;\n case Environment.TEST:\n this.host = 'https://account-group-api-test.apigateway.co';\n break;\n case Environment.DEMO:\n this.host = 'https://account-group-api-demo.apigateway.co';\n break;\n case Environment.PROD:\n this.host = 'https://account-group-api-prod.apigateway.co';\n break;\n }\n return this.host;\n }\n}\n", "import {\n LifecycleStage,\n LookupRequestAccountStatus,\n LookupRequestListingDistributionFilterActivationStatus,\n LookupRequestListingDistributionFilterAutoRenew,\n LookupRequestPresence,\n} from '@vendasta/account-group';\n\nexport class AccountFilter {\n productId: string;\n status: LookupRequestAccountStatus;\n editionId: string;\n\n constructor(productId: string, status: LookupRequestAccountStatus, editionId: string) {\n this.productId = productId;\n this.status = status;\n this.editionId = editionId;\n }\n}\n\nexport class ApiLookupFilter {\n partnerId: string;\n marketIds: string[];\n salesPersonId: string;\n tags: string[];\n accountFilters?: AccountFilters;\n listingDistributionFilter?: ListingDistributionFilter;\n listingSyncProFilter?: ListingSyncProFilter;\n createdDateFilter?: CreatedDateFilter;\n trialFilter?: ApiTrialFilter;\n taxonomyIds?: string[];\n presenceFilter?: PresenceFilter;\n locationFilter?: LocationFilter;\n snapshotFilter?: SnapshotFilter;\n statusFilter?: StatusFilter;\n accountGroupIds?: string[];\n lifecycleStageFilter?: LifecycleStage;\n\n constructor(\n partnerId: string,\n marketIds: string[],\n salesPersonId: string,\n tags: string[],\n accountFilters?: AccountFilters,\n listingDistributionFilter?: ListingDistributionFilter,\n listingSyncProFilter?: ListingSyncProFilter,\n createdDateFilter?: CreatedDateFilter,\n trialFilter?: ApiTrialFilter,\n taxonomyIds?: string[],\n presenceFilter?: PresenceFilter,\n locationFilter?: LocationFilter,\n snapshotFilter?: SnapshotFilter,\n statusFilter?: StatusFilter,\n accountGroupIds?: string[],\n lifecycleStageFilter?: LifecycleStage,\n ) {\n this.partnerId = partnerId;\n this.marketIds = marketIds;\n this.salesPersonId = salesPersonId;\n this.tags = tags;\n this.accountFilters = accountFilters;\n this.listingDistributionFilter = listingDistributionFilter;\n this.listingSyncProFilter = listingSyncProFilter;\n this.createdDateFilter = createdDateFilter;\n this.trialFilter = trialFilter;\n this.taxonomyIds = taxonomyIds;\n this.presenceFilter = presenceFilter;\n this.locationFilter = locationFilter;\n this.snapshotFilter = snapshotFilter;\n this.statusFilter = statusFilter;\n this.accountGroupIds = accountGroupIds;\n this.lifecycleStageFilter = lifecycleStageFilter;\n }\n\n toApiJson(): object {\n let lifecycleFilter: LifecycleStage[];\n if (\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_CUSTOMER ||\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_LEAD ||\n this.lifecycleStageFilter === LifecycleStage.LIFECYCLE_STAGE_PROSPECT\n ) {\n lifecycleFilter = [this.lifecycleStageFilter];\n } else {\n lifecycleFilter = null;\n }\n\n return {\n partnerId: this.partnerId,\n marketIds: typeof this.marketIds !== 'undefined' ? this.marketIds : null,\n salesPersonId: typeof this.salesPersonId !== 'undefined' ? this.salesPersonId : null,\n tags: typeof this.tags !== 'undefined' ? this.tags : null,\n accountFilters: this.accountFilters.toApiJson(),\n listingDistributionFilter: this.listingDistributionFilter.toApiJson(),\n createdDateFilter: this.createdDateFilter.toApiJson(),\n listingSyncProFilter: this.listingSyncProFilter.toApiJson(),\n trialFilter: this.trialFilter.toApiJson(),\n taxonomyIds: typeof this.taxonomyIds !== 'undefined' ? this.taxonomyIds : null,\n presenceFilter: this.presenceFilter ? this.presenceFilter.toApiJson() : null,\n locationFilter: this.locationFilter ? this.locationFilter.toApiJson() : null,\n snapshotFilter: this.snapshotFilter ? this.snapshotFilter.toApiJson() : null,\n statusFilter: this.statusFilter ? this.statusFilter.toApiJson() : null,\n accountGroupIds: this.accountGroupIds ? this.accountGroupIds : null,\n lifecycleStage: lifecycleFilter,\n };\n }\n}\n\nexport class AccountFilters {\n private filters: AccountFilter[] = [];\n\n public addFilter(productId: string, status?: LookupRequestAccountStatus, editionId?: string): void {\n this.filters.push(new AccountFilter(productId, status, editionId));\n }\n\n public removeFilter(productId: string): void {\n const index = this.filters.findIndex((filter: AccountFilter) => filter.productId === productId);\n if (index === -1) {\n return;\n }\n this.filters.splice(index, 1);\n }\n\n public changeStatus(productId: string, status: LookupRequestAccountStatus): void {\n this.filters.find((filter: AccountFilter) => filter.productId === productId).status = status;\n }\n\n public clearFilters(): void {\n this.filters = [];\n }\n\n public getFilters(): AccountFilter[] {\n return this.filters;\n }\n\n public toApiJson(): object[] {\n const result = this.filters.map((filter) => {\n return {\n marketplaceAppId: filter.productId,\n accountStatus: filter.status,\n editionId: filter.editionId,\n };\n });\n\n return result.length > 0 ? result : null;\n }\n}\n\nexport class ListingDistributionFilter {\n activationStatus: LookupRequestListingDistributionFilterActivationStatus;\n autoRenew: LookupRequestListingDistributionFilterAutoRenew;\n expiresInDays: number;\n expiredInDays: number;\n renewsInDays: number;\n\n constructor(\n activationStatus?: LookupRequestListingDistributionFilterActivationStatus,\n autoRenew?: LookupRequestListingDistributionFilterAutoRenew,\n expiresInDays?: number,\n expiredInDays?: number,\n renewsInDays?: number,\n ) {\n this.activationStatus = activationStatus;\n this.autoRenew = autoRenew;\n this.expiresInDays = expiresInDays;\n this.expiredInDays = expiredInDays;\n this.renewsInDays = renewsInDays;\n }\n\n toApiJson(): object {\n if (\n typeof this.activationStatus === 'undefined' &&\n typeof this.autoRenew === 'undefined' &&\n typeof this.expiresInDays === 'undefined' &&\n typeof this.expiredInDays === 'undefined' &&\n typeof this.renewsInDays === 'undefined'\n ) {\n return null;\n }\n return {\n activationStatus: this.activationStatus,\n autoRenew: this.autoRenew,\n expiresInDays: this.expiresInDays,\n expiredInDays: this.expiredInDays,\n renewsInDays: this.renewsInDays,\n };\n }\n}\n\nexport class ListingSyncProFilter {\n active: boolean;\n autoRenew: boolean;\n autoRenewDisabled: boolean;\n inactive: boolean;\n expired: boolean;\n expiresInDays: number;\n expiredInDays: number;\n\n constructor(\n active?: boolean,\n autoRenew?: boolean,\n autoRenewDisabled?: boolean,\n inactive?: boolean,\n expired?: boolean,\n expiresInDays?: number,\n expiredInDays?: number,\n ) {\n this.active = active;\n this.autoRenew = autoRenew;\n this.autoRenewDisabled = autoRenewDisabled;\n this.inactive = inactive;\n this.expired = expired;\n this.expiresInDays = expiresInDays;\n this.expiredInDays = expiredInDays;\n }\n\n toApiJson(): object {\n if (\n typeof this.active === 'undefined' &&\n typeof this.autoRenew === 'undefined' &&\n typeof this.autoRenewDisabled === 'undefined' &&\n typeof this.inactive === 'undefined' &&\n typeof this.expired === 'undefined' &&\n typeof this.expiresInDays === 'undefined' &&\n typeof this.expiredInDays === 'undefined'\n ) {\n return null;\n }\n return {\n active: this.active,\n autoRenew: this.autoRenew,\n autoRenewDisabled: this.autoRenewDisabled,\n inactive: this.inactive,\n expired: this.expired,\n expiresInDays: this.expiresInDays,\n expiredInDays: this.expiredInDays,\n };\n }\n}\n\nexport class CreatedDateFilter {\n beginRange: Date;\n endRange: Date;\n\n constructor(beginRange?: Date, endRange?: Date) {\n this.beginRange = beginRange;\n this.endRange = endRange;\n }\n\n toApiJson(): object {\n if (typeof this.beginRange === 'undefined' && typeof this.endRange === 'undefined') {\n return null;\n }\n return {\n beginRange: typeof this.beginRange !== 'undefined' ? this.beginRange.toISOString() : null,\n endRange: typeof this.endRange !== 'undefined' ? this.endRange.toISOString() : null,\n };\n }\n}\n\nexport class ApiTrialFilter {\n isSuspended: boolean;\n\n constructor(isSuspended?: boolean) {\n this.isSuspended = isSuspended;\n }\n\n toApiJson(): object {\n if (typeof this.isSuspended === 'undefined') {\n return null;\n }\n return {\n isSuspended: this.isSuspended,\n };\n }\n}\n\nexport class TrialFilter {\n active: boolean;\n overLimit: boolean;\n\n constructor(active?: boolean, overLimit?: boolean) {\n this.active = active;\n this.overLimit = overLimit;\n }\n}\n\nexport class PresenceFilter {\n constructor(\n public facebook?: LookupRequestPresence,\n public foursquare?: LookupRequestPresence,\n public googleplus?: LookupRequestPresence,\n public linkedin?: LookupRequestPresence,\n public twitter?: LookupRequestPresence,\n public pinterest?: LookupRequestPresence,\n public instagram?: LookupRequestPresence,\n public youtube?: LookupRequestPresence,\n public website?: LookupRequestPresence,\n ) {}\n\n toApiJson(): object {\n if (\n this.facebook === undefined &&\n this.foursquare === undefined &&\n this.googleplus === undefined &&\n this.linkedin === undefined &&\n this.twitter === undefined &&\n this.pinterest === undefined &&\n this.instagram === undefined &&\n this.youtube === undefined &&\n this.website === undefined\n ) {\n return null;\n }\n return {\n facebook: this.facebook,\n foursquare: this.foursquare,\n googleplus: this.googleplus,\n linkedin: this.linkedin,\n twitter: this.twitter,\n pinterest: this.pinterest,\n instagram: this.instagram,\n youtube: this.youtube,\n website: this.website,\n };\n }\n}\n\nexport class LocationFilter {\n constructor(\n public country?: string,\n public state?: string,\n ) {}\n\n toApiJson(): object {\n if (this.country === undefined && this.state === undefined) {\n return null;\n }\n return {\n country: this.country,\n state: this.state,\n };\n }\n}\n\nexport class SnapshotFilter {\n active: boolean;\n expired: boolean;\n noSnapshotsCreated: boolean;\n\n constructor(active?: boolean, expired?: boolean, noSnapshotsCreated?: boolean) {\n this.active = active;\n this.expired = expired;\n this.noSnapshotsCreated = noSnapshotsCreated;\n }\n\n toApiJson(): object {\n if (\n typeof this.active === 'undefined' &&\n typeof this.expired === 'undefined' &&\n typeof this.noSnapshotsCreated === 'undefined'\n ) {\n return null;\n }\n return {\n active: this.active,\n expired: this.expired,\n noSnapshotsCreated: this.noSnapshotsCreated,\n };\n }\n}\n\nexport class StatusFilter {\n hasAlert: boolean;\n\n constructor(hasAlert?: boolean) {\n this.hasAlert = hasAlert;\n }\n\n toApiJson(): object {\n if (typeof this.hasAlert === 'undefined') {\n return null;\n }\n return {\n hasAlert: this.hasAlert,\n };\n }\n}\n\nexport class LookupFilter {\n salesPersonId: string;\n tags: string[];\n accountFilters?: AccountFilters;\n listingDistributionFilter?: ListingDistributionFilter;\n listingSyncProFilter?: ListingSyncProFilter;\n createdDateFilter?: CreatedDateFilter;\n trialFilter?: TrialFilter;\n taxonomyIds?: string[];\n presenceFilter?: PresenceFilter;\n locationFilter?: LocationFilter;\n snapshotFilter?: SnapshotFilter;\n statusFilter?: StatusFilter;\n accountGroupIds?: string[];\n lifecycleStageFilter?: LifecycleStage;\n\n constructor(\n salesPersonId?: string,\n tags?: string[],\n accountFilters?: AccountFilters,\n listingDistributionFilter?: ListingDistributionFilter,\n listingSyncProFilter?: ListingSyncProFilter,\n createdDateFilter?: CreatedDateFilter,\n trialFilter?: TrialFilter,\n taxonomyIds?: string[],\n presenceFilter?: PresenceFilter,\n locationFilter?: LocationFilter,\n snapshotFilter?: SnapshotFilter,\n statusFilter?: StatusFilter,\n accountGroupIds?: string[],\n lifecycleStageFilter?: LifecycleStage,\n ) {\n this.salesPersonId = salesPersonId;\n this.tags = tags;\n this.accountFilters = accountFilters || new AccountFilters();\n this.listingDistributionFilter = listingDistributionFilter || new ListingDistributionFilter();\n this.listingSyncProFilter = listingSyncProFilter || new ListingSyncProFilter();\n this.createdDateFilter = createdDateFilter || new CreatedDateFilter();\n this.trialFilter = trialFilter || new TrialFilter();\n this.taxonomyIds = taxonomyIds;\n this.presenceFilter = presenceFilter || new PresenceFilter();\n this.locationFilter = locationFilter || new LocationFilter();\n this.snapshotFilter = snapshotFilter || new SnapshotFilter();\n this.statusFilter = statusFilter || new StatusFilter();\n this.accountGroupIds = accountGroupIds;\n this.lifecycleStageFilter = lifecycleStageFilter;\n }\n}\n", "import { SortDirection, SortField } from '@vendasta/account-group';\nexport { SortDirection, SortField };\n\nexport interface SortOptions {\n direction: SortDirection;\n field: SortField;\n}\n\nconst sortFieldsByName = {\n Created: SortField.Created,\n Modified: SortField.Modified,\n CompanyName: SortField.CompanyName,\n};\n\nexport function fieldNameToSortField(fieldName: string): SortField {\n return sortFieldsByName[fieldName];\n}\n", "import { HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription, throwError as observableThrowError } from 'rxjs';\nimport { catchError, map, share, take } from 'rxjs/operators';\n\nimport { PartnerService } from '@galaxy/partner';\nimport { AccountGroup } from './account-group';\nimport { errorCanBeHandled, findAccessibleAccountGroupIds } from './account-group-helpers';\nimport { AccountGroupApiService } from './account-group.api.service';\nimport { PagedResponse } from './account-group.api.service.response';\nimport { ApiLookupFilter, ApiTrialFilter, LookupFilter } from './lookup-filters';\nimport { ProjectionFilter } from './projection-filter';\nimport { ReadFilter } from './read-filter';\nimport { SearchOptions } from './search-options';\nimport { fieldNameToSortField, SortDirection, SortField, SortOptions } from './sort-options';\nimport { UpdateOperations } from './update-operations';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountGroupService implements OnDestroy {\n private cursor: string = null;\n private hasMoreSubject$$: BehaviorSubject = new BehaviorSubject(false);\n private hasMore$: Observable = this.hasMoreSubject$$.asObservable();\n private accountGroupSubject$$: BehaviorSubject = new BehaviorSubject([]);\n private accountGroup$: Observable = this.accountGroupSubject$$.asObservable();\n private totalResultsSubject$$: BehaviorSubject = new BehaviorSubject(0);\n private totalResults$: Observable = this.totalResultsSubject$$.asObservable();\n private loadingSubject$$: BehaviorSubject = new BehaviorSubject(false);\n private loading$: Observable = this.loadingSubject$$.asObservable();\n private partnerId: string;\n private subscriptions: Subscription[] = [];\n\n private latestResponse: BehaviorSubject = new BehaviorSubject(null);\n\n private sortOptions: SortOptions = {\n field: SortField.Created,\n direction: SortDirection.Descending,\n };\n\n constructor(private accountGroupApiService: AccountGroupApiService, private partnerService: PartnerService) {\n this.subscriptions.push(\n this.partnerService.getPartnerId().subscribe((partnerId) => {\n this.partnerId = partnerId;\n }),\n );\n }\n\n get hasMore(): Observable {\n return this.hasMore$;\n }\n\n get accountGroups(): Observable {\n return this.accountGroup$;\n }\n\n get totalResults(): Observable {\n return this.totalResults$;\n }\n\n get loading(): Observable {\n return this.loading$;\n }\n\n lookup(\n projectionFilter: ProjectionFilter,\n marketIds: string[] = null,\n searchTerm: string = null,\n filters: LookupFilter = null,\n pageSize = 10,\n searchOptions?: SearchOptions,\n ): Observable {\n return this.lookupAccountGroups(marketIds, projectionFilter, searchTerm, filters, '', pageSize, searchOptions);\n }\n\n get(accountGroupId: string, projectionFilter: ProjectionFilter): Observable {\n return this.accountGroupApiService.get(accountGroupId, projectionFilter);\n }\n\n getMulti(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter?: ReadFilter,\n returnOnlyAccessibleAccountGroups = false,\n ): Observable {\n if (returnOnlyAccessibleAccountGroups === false) {\n return this.accountGroupApiService.getMulti(accountGroupIds, projectionFilter, readFilter);\n } else {\n return this.accountGroupApiService\n .getMulti(accountGroupIds, projectionFilter, readFilter)\n .pipe(catchError((error) => this.handleError(error, accountGroupIds, projectionFilter, readFilter)));\n }\n }\n\n private handleError(\n error: any,\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter: ReadFilter,\n ): Observable {\n if (errorCanBeHandled(error)) {\n const validAccountGroups: string[] = findAccessibleAccountGroupIds(error, accountGroupIds);\n\n if ((validAccountGroups.length ?? 0) === 0) {\n throw error;\n }\n\n return this.getValidAccountGroups(validAccountGroups, projectionFilter, readFilter);\n }\n throw error;\n }\n\n getValidAccountGroups(\n accountGroupIds: string[],\n projectionFilter: ProjectionFilter,\n readFilter: ReadFilter,\n ): Observable {\n return this.accountGroupApiService.getMulti(accountGroupIds, projectionFilter, readFilter);\n }\n\n bulkUpdate(accountGroupId: string, updateOperations: UpdateOperations): Observable> {\n const call = this.accountGroupApiService.bulkUpdate(accountGroupId, updateOperations).pipe(\n catchError((err: HttpErrorResponse) => {\n let message;\n if (err.status === 401) {\n message = 'Invalid Session. Please try again.';\n } else if (err.status === 400) {\n message = (err.error && err.error.message) || 'Invalid submission';\n } else {\n message = 'Failed to update';\n }\n return observableThrowError({ message: message, retryable: err.status === 401 });\n }),\n share(),\n );\n call.subscribe(null, () => {\n // Only handling errors so that later subscribers will also receive them https://github.com/ReactiveX/rxjs/issues/2145\n });\n return call;\n }\n\n loadMore(\n projectionFilter: ProjectionFilter,\n marketIds: string[],\n searchTerm: string,\n filters: LookupFilter,\n pageSize = 10,\n searchOptions?: SearchOptions,\n ): Observable {\n if (this.hasMoreSubject$$.getValue()) {\n return this.lookupAccountGroups(\n marketIds,\n projectionFilter,\n searchTerm,\n filters,\n this.cursor,\n pageSize,\n searchOptions,\n );\n }\n return observableThrowError(new Error('No more results'));\n }\n\n removeAccountGroupFromList(accountGroupId: string): void {\n const newAccountGroups: AccountGroup[] = this.accountGroupSubject$$\n .getValue()\n .filter((accountGroup) => accountGroup.accountGroupId !== accountGroupId);\n\n if (newAccountGroups.length < this.accountGroupSubject$$.getValue().length) {\n this.accountGroupSubject$$.next(newAccountGroups);\n this.totalResultsSubject$$.next(this.totalResultsSubject$$.getValue() - 1);\n }\n }\n\n setSortOptions(fieldName: string, ascending = true): void {\n this.sortOptions = {\n field: fieldNameToSortField(fieldName),\n direction: ascending ? SortDirection.Ascending : SortDirection.Descending,\n };\n }\n\n private lookupAccountGroups(\n marketIds: string[],\n projectionFilter: ProjectionFilter,\n searchTerm: string,\n filters: LookupFilter,\n cursor: string,\n pageSize: number,\n searchOptions?: SearchOptions,\n ): Observable {\n if (!filters) {\n filters = new LookupFilter();\n }\n\n this.cursor = null;\n if (!cursor) {\n this.accountGroupSubject$$.next(null);\n }\n this.hasMoreSubject$$.next(false);\n this.loadingSubject$$.next(true);\n return this.lookupApi(\n filters,\n projectionFilter,\n marketIds,\n cursor,\n pageSize,\n searchTerm,\n this.sortOptions,\n searchOptions,\n );\n }\n\n private lookupApi(\n filters: LookupFilter,\n projectionFilter: ProjectionFilter,\n marketIds: string[],\n cursor: string,\n pageSize: number,\n searchTerm: string,\n sortOptions: SortOptions,\n searchOptions?: SearchOptions,\n ): Observable {\n let isSuspended: boolean;\n // If overLimit and active are either both true, or both falsy, we don't care about the filter - it has the same result\n if (\n (filters.trialFilter.overLimit && !filters.trialFilter.active) ||\n (!filters.trialFilter.overLimit && filters.trialFilter.active)\n ) {\n // Otherwise one of the filters is true; set isSuspended to the filter that has a value\n isSuspended = filters.trialFilter.overLimit ? filters.trialFilter.overLimit : !filters.trialFilter.active;\n }\n\n const apiTrialFilter = new ApiTrialFilter(isSuspended);\n const apiFilters: ApiLookupFilter = new ApiLookupFilter(\n this.partnerId,\n marketIds,\n filters.salesPersonId,\n filters.tags,\n filters.accountFilters,\n filters.listingDistributionFilter,\n filters.listingSyncProFilter,\n filters.createdDateFilter,\n apiTrialFilter,\n filters.taxonomyIds,\n filters.presenceFilter,\n filters.locationFilter,\n filters.snapshotFilter,\n filters.statusFilter,\n filters.accountGroupIds,\n filters.lifecycleStageFilter,\n );\n\n this.accountGroupApiService\n .lookup(projectionFilter, apiFilters, cursor, pageSize, searchTerm, sortOptions, searchOptions)\n .pipe(map(this.handleResponse(!!cursor)), take(1))\n .subscribe(this.loadNextPagedResponse.bind(this));\n\n return this.accountGroups;\n }\n\n private handleResponse(appendResults: boolean): (pagedResponse: PagedResponse) => PagedResponse {\n return (pagedResponse: PagedResponse) => {\n if (appendResults && this.latestResponse.getValue()) {\n return {\n accountGroups: this.latestResponse.getValue().accountGroups.concat(pagedResponse.accountGroups),\n nextCursor: pagedResponse.nextCursor,\n hasMore: pagedResponse.hasMore,\n totalResults: pagedResponse.totalResults,\n };\n }\n return pagedResponse;\n };\n }\n\n private loadNextPagedResponse(pagedResponse: PagedResponse): void {\n this.latestResponse.next(pagedResponse);\n this.cursor = pagedResponse.nextCursor;\n this.hasMoreSubject$$.next(pagedResponse.hasMore);\n this.totalResultsSubject$$.next(pagedResponse.totalResults);\n this.accountGroupSubject$$.next(pagedResponse.accountGroups);\n this.loadingSubject$$.next(false);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.accountGroupSubject$$.complete();\n this.hasMoreSubject$$.complete();\n this.totalResultsSubject$$.complete();\n this.loadingSubject$$.complete();\n this.latestResponse.complete();\n }\n}\n", "import {\n AccountGroupExternalIdentifiers,\n AdditionalCompanyInfo,\n ContactDetails,\n GeoPoint,\n HoursOfOperation,\n LegacyProductDetails,\n ListingDistributionDetails,\n ListingSyncProDetails,\n MarketingInfo,\n RichData,\n ServiceArea,\n Snapshot,\n SocialURLs,\n Status,\n} from './account-group';\n// tslint:disable-next-line:import-blacklist\nimport { EstimatedAnnualRevenue, LifecycleStage, MarketingClassification } from '@vendasta/account-group';\n\n/**\n * This is a copy of internal rxjs implementation details. This function used to be exported, but is now unexported as\n * it wasn't intended to be used outside the library itself. We copied this as a low effort way to migrate to rxjs 7.\n * We should remove this and use the public API.\n *\n * Ultimately, this is based off the alternative implementation of the `applyMixins` function from the TypeScript handbook:\n * https://www.typescriptlang.org/docs/handbook/mixins.html#alternative-pattern\n *\n * @param derivedCtor The class that will be extended\n * @param baseCtors The mixins that will be applied to the derived class\n * @returns void\n *\n * It may make sense to move this to a shared lib, or look at the current typescript handbook implementation to see if\n * there is a better way to do this. I.e. without using `any` types.\n */\n\nfunction applyMixins(derivedCtor: any, baseCtors: any[]): void {\n for (let i = 0, len = baseCtors.length; i < len; i++) {\n const baseCtor = baseCtors[i];\n const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (let j = 0, len2 = propertyKeys.length; j < len2; j++) {\n const name = propertyKeys[j];\n derivedCtor.prototype[name] = baseCtor.prototype[name];\n }\n }\n}\n\nexport class UpdateOperations {\n private operations: AbstractUpdateOperation[] = [];\n\n addUpdateOperation(updateOperation: AbstractUpdateOperation): void {\n this.operations.push(updateOperation);\n }\n\n toApiJson(): object[] {\n if (this.operations.length === 0) {\n return null;\n }\n\n return this.operations\n .map((operation: AbstractUpdateOperation) => {\n const op: any = {};\n const json = operation.toApiJson();\n\n if (json === null) {\n return null;\n }\n\n const mask = operation.getMask();\n\n op[operation.OPERATION_ID] = this.cleanNonFieldMaskProperties(json, mask);\n op.fieldMask = {\n paths: mask,\n };\n return op;\n })\n .filter((op) => !!op);\n }\n\n cleanNonFieldMaskProperties(json: Record, paths: string[]): object {\n for (const key in json) {\n if (key in json && paths.indexOf(key) === -1) {\n delete json[key];\n }\n }\n return json;\n }\n}\n\nexport abstract class AbstractUpdateOperation {\n OPERATION_ID: string;\n\n abstract toApiJson(): object;\n\n getMask(): string[] {\n const mask: string[] = [];\n for (const key in this) {\n if (key in this && typeof this[key] !== 'undefined' && key !== 'OPERATION_ID') {\n mask.push(key);\n }\n }\n\n return mask;\n }\n}\n\nexport class NapUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'accountGroupNap';\n companyName: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n serviceAreaBusiness: boolean;\n serviceArea: ServiceArea;\n website: string;\n workNumber: string[];\n callTrackingNumber: string[];\n location: GeoPoint;\n timezone: string;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.companyName === 'undefined' &&\n typeof this.address === 'undefined' &&\n typeof this.address2 === 'undefined' &&\n typeof this.city === 'undefined' &&\n typeof this.state === 'undefined' &&\n typeof this.zip === 'undefined' &&\n typeof this.country === 'undefined' &&\n typeof this.website === 'undefined' &&\n typeof this.workNumber === 'undefined' &&\n typeof this.callTrackingNumber === 'undefined' &&\n typeof this.location === 'undefined' &&\n typeof this.timezone === 'undefined' &&\n typeof this.serviceAreaBusiness === 'undefined' &&\n typeof this.serviceArea === 'undefined'\n ) {\n return null;\n }\n return {\n companyName: typeof this.companyName !== 'undefined' ? this.companyName : null,\n address: typeof this.address !== 'undefined' ? this.address : null,\n address2: typeof this.address2 !== 'undefined' ? this.address2 : null,\n city: typeof this.city !== 'undefined' ? this.city : null,\n state: typeof this.state !== 'undefined' ? this.state : null,\n zip: typeof this.zip !== 'undefined' ? this.zip : null,\n country: typeof this.country !== 'undefined' ? this.country : null,\n serviceAreaBusiness: typeof this.serviceAreaBusiness !== 'undefined' ? this.serviceAreaBusiness : null,\n website: typeof this.website !== 'undefined' ? this.website : null,\n workNumber: typeof this.workNumber !== 'undefined' ? this.workNumber : null,\n callTrackingNumber: typeof this.callTrackingNumber !== 'undefined' ? this.callTrackingNumber : null,\n location: typeof this.location !== 'undefined' ? this.location.toApiJson() : null,\n timezone: typeof this.timezone !== 'undefined' ? this.timezone : null,\n serviceArea: typeof this.serviceArea !== 'undefined' ? this.serviceArea?.toApiJson() : null,\n };\n }\n}\n\nexport class SnapshotsUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'snapshots';\n snapshots: Snapshot[];\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.snapshots === 'undefined') {\n return null;\n }\n return {\n snapshots: typeof this.snapshots !== 'undefined' ? this.snapshots.map((snapshot) => snapshot.toApiJson()) : null,\n };\n }\n}\n\nexport class HealthUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'health';\n rating?: number;\n reason?: string;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.rating === 'undefined' && typeof this.reason === 'undefined') {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.rating !== 'undefined') {\n toReturn['rating'] = this.rating;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\n\nexport class HoursOfOperationUpdateOperation extends AbstractUpdateOperation {\n OPERATION_ID = 'hoursOfOperation';\n hoursOfOperation: HoursOfOperation[];\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.hoursOfOperation === 'undefined') {\n return null;\n }\n\n return {\n hoursOfOperation:\n typeof this.hoursOfOperation !== 'undefined' ? this.hoursOfOperation.map((span) => span.toApiJson()) : null,\n };\n }\n}\napplyMixins(HoursOfOperationUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ListingDistributionDetailsUpdateOperation\n extends ListingDistributionDetails\n implements AbstractUpdateOperation\n{\n OPERATION_ID = 'listingDistribution';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ListingDistributionDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ListingSyncProUpdateOperation extends ListingSyncProDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'listingSyncProto';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ListingSyncProUpdateOperation, [AbstractUpdateOperation]);\n\nexport class AccountGroupExternalIdentifiersUpdateOperation\n extends AccountGroupExternalIdentifiers\n implements AbstractUpdateOperation\n{\n OPERATION_ID = 'accountGroupExternalIdentifiers';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(AccountGroupExternalIdentifiersUpdateOperation, [AbstractUpdateOperation]);\n\nexport class SocialURLsUpdateOperation extends SocialURLs implements AbstractUpdateOperation {\n OPERATION_ID = 'socialUrls';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(SocialURLsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class ContactDetailsUpdateOperation extends ContactDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'contactDetails';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(ContactDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class LegacyProductDetailsUpdateOperation extends LegacyProductDetails implements AbstractUpdateOperation {\n OPERATION_ID = 'legacyProductDetails';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(LegacyProductDetailsUpdateOperation, [AbstractUpdateOperation]);\n\nexport class RichDataUpdateOperation extends RichData implements AbstractUpdateOperation {\n OPERATION_ID = 'richData';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(RichDataUpdateOperation, [AbstractUpdateOperation]);\n\nexport class StatusUpdateOperation extends Status implements AbstractUpdateOperation {\n OPERATION_ID = 'status';\n getMask: () => string[];\n toApiJsonWithMask: () => object;\n}\napplyMixins(StatusUpdateOperation, [AbstractUpdateOperation]);\n\nexport class AdditionalCompanyInfoOperation extends AdditionalCompanyInfo implements AbstractUpdateOperation {\n OPERATION_ID = 'additionalCompanyInfo';\n\n getMask: () => string[];\n numEmployees: number;\n estimatedAnnualRevenue: EstimatedAnnualRevenue;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (typeof this.numEmployees === 'undefined' && typeof this.estimatedAnnualRevenue === 'undefined') {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.numEmployees !== 'undefined') {\n toReturn['numEmployees'] = this.numEmployees;\n }\n if (typeof this.estimatedAnnualRevenue !== 'undefined') {\n toReturn['estimatedAnnualRevenue'] = this.estimatedAnnualRevenue;\n }\n return toReturn;\n }\n}\napplyMixins(AdditionalCompanyInfoOperation, [AbstractUpdateOperation]);\n\nexport class MarketingInfoOperation extends MarketingInfo implements AbstractUpdateOperation {\n OPERATION_ID = 'marketingInfo';\n getMask: () => string[];\n\n conversionPoint: string;\n marketingClassification: MarketingClassification;\n lifecycleStage: LifecycleStage;\n\n constructor(kwargs?: Partial) {\n super();\n return Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n if (\n typeof this.conversionPoint === 'undefined' &&\n typeof this.marketingClassification === 'undefined' &&\n typeof this.lifecycleStage === 'undefined'\n ) {\n return {};\n }\n\n const toReturn: {\n [key: string]: any;\n } = {};\n\n if (typeof this.conversionPoint !== 'undefined') {\n toReturn['conversionPoint'] = this.conversionPoint;\n }\n if (typeof this.marketingClassification !== 'undefined') {\n toReturn['marketingClassification'] = this.marketingClassification;\n }\n if (typeof this.lifecycleStage !== 'undefined') {\n toReturn['lifecycleStage'] = this.lifecycleStage;\n }\n\n return toReturn;\n }\n}\napplyMixins(MarketingInfoOperation, [AbstractUpdateOperation]);\n", "export { ReadFilter } from '@vendasta/account-group';\n", "export {\n Account,\n AccountGroup,\n AccountGroupExternalIdentifiers,\n AccountGroupHealth,\n AccountGroupLocation,\n Association,\n ContactDetails,\n CustomField,\n GeoPoint,\n HealthCareProfessionalInformation,\n HoursOfOperation,\n LegacyProductDetails,\n ListingDistributionDetails,\n ListingSyncProDetails,\n RichData,\n ServiceAvailability,\n SocialURLs,\n Snapshot,\n AdditionalCompanyInfo,\n MarketingInfo,\n} from './account-group';\nexport {\n UpdateOperations,\n AbstractUpdateOperation,\n NapUpdateOperation,\n SnapshotsUpdateOperation,\n ListingDistributionDetailsUpdateOperation,\n ListingSyncProUpdateOperation,\n AccountGroupExternalIdentifiersUpdateOperation,\n SocialURLsUpdateOperation,\n HoursOfOperationUpdateOperation,\n ContactDetailsUpdateOperation,\n LegacyProductDetailsUpdateOperation,\n RichDataUpdateOperation,\n HealthUpdateOperation,\n MarketingInfoOperation,\n} from './update-operations';\nexport { ProjectionFilter } from './projection-filter';\nexport { ReadFilter } from './read-filter';\nexport { PagedResponse } from './account-group.api.service.response';\nexport * from './lookup-filters';\nexport { AccountGroupService } from './account-group.service';\nexport { SortDirection, SortField } from './sort-options';\nexport { AccountGroupApiService } from './account-group.api.service';\nexport { SearchOptions, SearchableField } from './search-options';\n", "export * from './lib/index';\n"], "mappings": "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", "names": ["ProjectionFilter", "init_projection_filter", "__esmMin", "init_vendasta_account_group", "sdkProjectionFilter", "enableAll", "accounts", "listingDistribution", "listingSyncPro", "associations", "accountGroupExternalIdentifiers", "socialUrls", "hoursOfOperation", "contactDetails", "snapshotReports", "legacyProductDetails", "richData", "status", "napData", "health", "additionalCompanyInfo", "marketingInfo", "errorCanBeHandled", "error", "status", "details", "failures", "findAccessibleAccountGroupIds", "allAccountGroups", "failedAccountGroupIds", "forEach", "ag", "identifiers", "account_group_id", "values", "push", "validAccountGroupIds", "filter", "find", "a", "undefined", "init_account_group_helpers", "__esmMin", "enumStringToValue", "enumRef", "value", "init_proto_utils", "__esmMin", "GooglePlace", "ServiceArea", "GeoPoint", "Account", "ListingDistributionDetails", "ListingSyncProDetails", "Association", "AccountGroupExternalIdentifiers", "SocialURLs", "HoursOfOperation", "ContactDetails", "Snapshot", "LegacyProductDetails", "HealthCareProfessionalInformation", "RichData", "ServiceAvailability", "Status", "AccountGroupLocation", "AccountGroupHealth", "AccountGroup", "init_account_group", "__esmMin", "init_vendasta_account_group", "init_proto_utils", "fromProto", "proto", "m", "Object", "assign", "constructor", "kwargs", "toApiJson", "toReturn", "placeId", "placeName", "city", "businessType", "enumStringToValue", "ServiceAreaBusinessType", "places", "map", "model", "key", "latitude", "longitude", "expiry", "Date", "isTrial", "expired", "tags", "accountId", "marketplaceAppId", "toISOString", "editionId", "fromDate", "thruDate", "autoRenew", "orderId", "purchaseId", "isActive", "purchaseDate", "expiryDate", "discountFlag", "billingFrequency", "ListingSyncProBillingFrequency", "serviceProviders", "ListingSyncProServiceProviders", "country", "defaultLocation", "label", "productId", "productUserId", "vbcUserId", "origin", "jobId", "customerIdentifier", "actionLists", "socialProfileId", "partnerId", "marketId", "taxIds", "vCategoryIds", "salesPersonId", "additionalSalesPersonIds", "googleplusUrl", "linkedinUrl", "foursquareUrl", "twitterUrl", "facebookUrl", "rssUrl", "youtubeUrl", "instagramUrl", "pinterestUrl", "dayOfWeek", "opens", "closes", "description", "firstName", "lastName", "email", "phoneNumber", "created", "address", "snapshotId", "subscribedToCampaigns", "keyPerson", "shareOfVoiceService", "faxNumber", "commonName", "cellNumber", "competitor", "adminNotes", "seoCategory", "place", "tagline", "gender", "HealthCareProfessionalInformationGender", "dateOfBirth", "fellowship", "initials", "insurancesAccepted", "isTakingPatients", "medicalLicenseNumber", "nationalProviderIdentifier", "office", "professionalCredential", "residency", "school", "specialty", "standardizedTitle", "stateLicense", "healthCareProfessionalInformation", "paymentMethods", "length", "v", "RichDataPaymentMethods", "serviceAvailability", "tollFreeNumber", "shortDescription", "servicesOffered", "brandsCarried", "landmark", "customFields", "inferredAttributes", "customField", "delivery", "IsAvailable", "noContactDelivery", "inStorePickup", "curbsidePickup", "appointmentsOnly", "ecommerceOnly", "closedStatus", "ClosedStatus", "closedStatusDate", "servesDineIn", "reopeningDate", "suspended", "hasAlert", "napData", "location", "serviceArea", "undefined", "companyName", "address2", "state", "zip", "website", "workNumber", "callTrackingNumber", "timezone", "serviceAreaBusiness", "updatedOn", "rating", "reason", "updatedBy", "accountGroup", "updated", "deleted", "listingDistribution", "listingSyncPro", "externalIdentifiers", "accountGroupExternalIdentifiers", "socialUrls", "contactDetails", "legacyProductDetails", "richData", "status", "accounts", "associations", "hoursOfOperation", "snapshotReports", "snapshots", "health", "additionalCompanyInfo", "AdditionalCompanyInfo", "marketingInfo", "MarketingInfo", "hasAccount", "getAccount", "find", "account", "getLatestSnapshotReport", "getLifeCycleStage", "lifecycleStage", "LifecycleStage", "LIFECYCLE_STAGE_UNSET", "accountGroupId", "association", "snapshotReport", "AccountGroupApiService", "init_account_group_api_service", "__esmMin", "init_http", "init_operators", "init_src", "init_account_group", "constructor", "http", "environmentService", "sessionService", "lookupUrl", "accountGroupHost", "getMultiUrl", "bulkUpdateUrl", "sessionId", "getSessionId", "subscribe", "apiOptions", "headers", "HttpHeaders", "withCredentials", "get", "accountGroupId", "projectionFilter", "getMulti", "pipe", "map", "accountGroups", "share", "accountGroupIds", "readFilter", "post", "body", "accountGroupContainer", "AccountGroup", "fromProto", "accountGroup", "lookup", "filters", "cursor", "pageSize", "searchTerm", "sortOptions", "searchOptions", "toApiJson", "handlePagedResponse", "bulkUpdate", "updateOperations", "nextCursor", "hasMore", "totalResults", "Number", "host", "getEnvironment", "Environment", "LOCAL", "TEST", "DEMO", "PROD", "\u0275\u0275inject", "HttpClient", "EnvironmentService", "SessionService", "factory", "\u0275fac", "providedIn", "_AccountGroupApiService", "AccountFilter", "ApiLookupFilter", "AccountFilters", "ListingDistributionFilter", "ListingSyncProFilter", "CreatedDateFilter", "ApiTrialFilter", "TrialFilter", "PresenceFilter", "LocationFilter", "SnapshotFilter", "StatusFilter", "LookupFilter", "init_lookup_filters", "__esmMin", "init_vendasta_account_group", "constructor", "productId", "status", "editionId", "partnerId", "marketIds", "salesPersonId", "tags", "accountFilters", "listingDistributionFilter", "listingSyncProFilter", "createdDateFilter", "trialFilter", "taxonomyIds", "presenceFilter", "locationFilter", "snapshotFilter", "statusFilter", "accountGroupIds", "lifecycleStageFilter", "toApiJson", "lifecycleFilter", "LifecycleStage", "LIFECYCLE_STAGE_CUSTOMER", "LIFECYCLE_STAGE_LEAD", "LIFECYCLE_STAGE_PROSPECT", "lifecycleStage", "filters", "addFilter", "push", "removeFilter", "index", "findIndex", "filter", "splice", "changeStatus", "find", "clearFilters", "getFilters", "result", "map", "marketplaceAppId", "accountStatus", "length", "activationStatus", "autoRenew", "expiresInDays", "expiredInDays", "renewsInDays", "active", "autoRenewDisabled", "inactive", "expired", "beginRange", "endRange", "toISOString", "isSuspended", "overLimit", "facebook", "foursquare", "googleplus", "linkedin", "twitter", "pinterest", "instagram", "youtube", "website", "undefined", "country", "state", "noSnapshotsCreated", "hasAlert", "fieldNameToSortField", "fieldName", "sortFieldsByName", "init_sort_options", "__esmMin", "init_vendasta_account_group", "Created", "SortField", "Modified", "CompanyName", "AccountGroupService", "init_account_group_service", "__esmMin", "init_esm", "init_operators", "init_account_group_helpers", "init_lookup_filters", "init_sort_options", "constructor", "accountGroupApiService", "partnerService", "cursor", "hasMoreSubject$$", "BehaviorSubject", "hasMore$", "asObservable", "accountGroupSubject$$", "accountGroup$", "totalResultsSubject$$", "totalResults$", "loadingSubject$$", "loading$", "subscriptions", "latestResponse", "sortOptions", "field", "SortField", "Created", "direction", "SortDirection", "Descending", "push", "getPartnerId", "subscribe", "partnerId", "hasMore", "accountGroups", "totalResults", "loading", "lookup", "projectionFilter", "marketIds", "searchTerm", "filters", "pageSize", "searchOptions", "lookupAccountGroups", "get", "accountGroupId", "getMulti", "accountGroupIds", "readFilter", "returnOnlyAccessibleAccountGroups", "pipe", "catchError", "error", "handleError", "errorCanBeHandled", "validAccountGroups", "findAccessibleAccountGroupIds", "length", "getValidAccountGroups", "bulkUpdate", "updateOperations", "call", "err", "message", "status", "observableThrowError", "retryable", "share", "loadMore", "getValue", "Error", "removeAccountGroupFromList", "newAccountGroups", "filter", "accountGroup", "next", "setSortOptions", "fieldName", "ascending", "fieldNameToSortField", "Ascending", "LookupFilter", "lookupApi", "isSuspended", "trialFilter", "overLimit", "active", "apiTrialFilter", "ApiTrialFilter", "apiFilters", "ApiLookupFilter", "salesPersonId", "tags", "accountFilters", "listingDistributionFilter", "listingSyncProFilter", "createdDateFilter", "taxonomyIds", "presenceFilter", "locationFilter", "snapshotFilter", "statusFilter", "lifecycleStageFilter", "map", "handleResponse", "take", "loadNextPagedResponse", "bind", "appendResults", "pagedResponse", "concat", "nextCursor", "ngOnDestroy", "forEach", "s", "unsubscribe", "complete", "\u0275\u0275inject", "AccountGroupApiService", "PartnerService", "factory", "\u0275fac", "providedIn", "_AccountGroupService", "applyMixins", "derivedCtor", "baseCtors", "i", "len", "length", "baseCtor", "propertyKeys", "Object", "getOwnPropertyNames", "prototype", "j", "len2", "name", "UpdateOperations", "AbstractUpdateOperation", "NapUpdateOperation", "HoursOfOperationUpdateOperation", "ListingDistributionDetailsUpdateOperation", "ListingSyncProUpdateOperation", "AccountGroupExternalIdentifiersUpdateOperation", "SocialURLsUpdateOperation", "ContactDetailsUpdateOperation", "LegacyProductDetailsUpdateOperation", "RichDataUpdateOperation", "StatusUpdateOperation", "AdditionalCompanyInfoOperation", "MarketingInfoOperation", "init_update_operations", "__esmMin", "init_account_group", "constructor", "operations", "addUpdateOperation", "updateOperation", "push", "toApiJson", "map", "operation", "op", "json", "mask", "getMask", "OPERATION_ID", "cleanNonFieldMaskProperties", "fieldMask", "paths", "filter", "key", "indexOf", "kwargs", "assign", "companyName", "address", "address2", "city", "state", "zip", "country", "website", "workNumber", "callTrackingNumber", "location", "timezone", "serviceAreaBusiness", "serviceArea", "hoursOfOperation", "span", "ListingDistributionDetails", "ListingSyncProDetails", "AccountGroupExternalIdentifiers", "SocialURLs", "ContactDetails", "LegacyProductDetails", "RichData", "Status", "AdditionalCompanyInfo", "numEmployees", "estimatedAnnualRevenue", "toReturn", "MarketingInfo", "conversionPoint", "marketingClassification", "lifecycleStage", "init_read_filter", "__esmMin", "init_vendasta_account_group", "init_lib", "__esmMin", "init_account_group", "init_update_operations", "init_projection_filter", "init_read_filter", "init_lookup_filters", "init_account_group_service", "init_sort_options", "init_account_group_api_service", "init_src", "__esmMin", "init_lib"] }