{ "version": 3, "sources": ["libs/crm/static/src/lib/shared-components/association-panel-components/association-card/tags/tags.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/association-card/tags/tags.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/linkedin-icon.svg.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/common-association-card-content.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/common-association-card-content.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/company-campaigns-associations-card/company-campaigns-card.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/company-campaigns-associations-card/company-campaigns-card.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/start-campaign-dialog.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/start-campaign-dialog.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/contact-campaigns-card.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/contact-campaigns-card.component.html", "libs/crm/static/src/lib/shared-components/select-object-type-modal/select-object-type-modal.component.ts", "libs/crm/static/src/lib/shared-components/select-object-type-modal/select-object-type-modal.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/remove-association-dialog/remove-association-dialog.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/remove-association-dialog/remove-association-dialog.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/parent-child-company-associations-card/parent-child-company-associations-card.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/parent-child-company-associations-card/parent-child-company-associations-card.component.html", "libs/crm/static/src/lib/shared-components/association-panel-components/select-associations-modal/select-associations-modal.component.ts", "libs/crm/static/src/lib/shared-components/association-panel-components/select-associations-modal/select-associations-modal.component.html", "libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-modal.component.ts", "libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-modal.component.html", "libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-crm-contact-modal.component.ts", "libs/crm/static/src/lib/shared-components/custom-table-cells/user/user.component.ts", "libs/crm/static/src/lib/shared-components/custom-table-cells/due-date/due-date.component.ts", "libs/crm/static/src/lib/shared-components/custom-filters/company-custom-filter/company-custom-filter-chip.component.ts", "libs/crm/static/src/lib/shared-components/custom-filters/company-custom-filter/company-custom-filter-input.component.ts", "libs/crm/static/src/lib/shared-components/abstract-custom-filters/abstract-assignee/abstract-assignee-filter-chip.component.ts", "libs/crm/static/src/lib/shared-components/custom-filters/user/user-filter-chip.component.ts", "libs/crm/static/src/lib/shared-components/abstract-custom-filters/abstract-assignee/abstract-assignee-filter-input.component.ts", "libs/crm/static/src/lib/shared-components/custom-filters/user/user-filter-input.component.ts", "libs/crm/static/src/lib/crm-core.module.ts", "apps/partner-center-client/src/app/crm/business-info.service.ts", "apps/partner-center-client/src/app/crm/company-account.service.ts", "apps/partner-center-client/src/app/crm/company-table/snapshot-sidepanel/snapshot-sidepanel.component.ts", "apps/partner-center-client/src/app/crm/company-table/snapshot-sidepanel/snapshot-sidepanel.component.html", "apps/partner-center-client/src/app/crm/company-table/snapshot-sidepanel/snapshot-sidepanel.service.ts", "apps/partner-center-client/src/app/crm/feature-access.service.ts", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/remove-modal/remove-modal.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/remove-modal/remove-modal.component.html", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/access-business-app.service.ts", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/invite-to-business-app/invite-to-business-app.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/invite-to-business-app/invite-to-business-app.component.html", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/access-business-app.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/association-cards/access-business-app/access-business-app.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/association-panel.module.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/associated-account/associated-account.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/associated-account/associated-account.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/opportunities/opportunities.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/opportunities/opportunities.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/reports/reports.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/reports/reports.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/sales-orders/sales-orders.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/sales-orders/sales-orders.component.html", "apps/partner-center-client/src/app/crm/salesperson.service.ts", "apps/partner-center-client/src/app/crm/custom-cells/additional-salespeople/additional-salespeople.component.ts", "apps/partner-center-client/src/app/crm/custom-cells/salesperson/salesperson.component.ts", "apps/partner-center-client/src/app/crm/custom-filters/additional-salespeople/additional-salespeople-filter-input.component.ts", "apps/partner-center-client/src/app/crm/custom-filters/salesperson/salesperson-filter-chip.component.ts", "apps/partner-center-client/src/app/crm/custom-filters/salesperson/salesperson-filter-input.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/pcc-company-to-contact-associations-card/pcc-company-to-contact-associations-card.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/pcc-company-to-contact-associations-card/pcc-company-to-contact-associations-card.component.html", "apps/partner-center-client/src/app/crm/profile-cards/pcc-contact-to-company-associations-card/pcc-contact-to-company-associations-card.component.ts", "apps/partner-center-client/src/app/crm/profile-cards/pcc-contact-to-company-associations-card/pcc-contact-to-company-associations-card.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/automations/automations.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/automations/automations.component.html", "apps/partner-center-client/src/app/crm/company-details/association-panel/partner-info/partner-info.component.ts", "apps/partner-center-client/src/app/crm/company-details/association-panel/partner-info/partner-info.component.html", "apps/partner-center-client/src/app/crm/company-details/open-business-app/open-business-app.component.ts", "apps/partner-center-client/src/app/crm/custom-form-inputs/additional-salespeople/additional-salespeople-form-input.component.ts", "apps/partner-center-client/src/app/crm/custom-form-inputs/additional-salespeople/additional-salespeople-form-input.component.html", "apps/partner-center-client/src/app/crm/custom-form-inputs/salesperson/salesperson-form-input.component.ts", "apps/partner-center-client/src/app/crm/custom-form-inputs/salesperson/salesperson-form-input.component.html", "apps/partner-center-client/src/app/crm/opportunity.service.ts", "apps/partner-center-client/src/app/crm/user.service.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/fulfillment-projects/interfaces.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/fulfillment-projects/fulfillment-projects.service.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/fulfillment-projects/fulfillment-projects.component.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/fulfillment-projects/fulfillment-projects.component.html", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/marketplace-products/interfaces.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/marketplace-products/marketplace-products.service.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/marketplace-products/marketplace-products.component.ts", "libs/crm/dynamic/src/lib/crm-components/profile/profile-cards-panel/marketplace-products/marketplace-products.component.html", "libs/crm/dynamic/src/lib/permissions-guard.service.ts", "libs/crm/dynamic/src/lib/crm.module.ts", "apps/partner-center-client/src/app/crm/custom-filters/market/market-filter.service.ts", "apps/partner-center-client/src/app/crm/custom-filters/market/market-filter-input.component.ts", "apps/partner-center-client/src/app/crm/custom-filters/market/market-filter-chip.component.ts", "apps/partner-center-client/src/app/crm/providers.ts", "apps/partner-center-client/src/app/crm/partner-crm.module.ts"], "sourcesContent": ["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\n\n@Component({\n selector: 'crm-tags',\n templateUrl: './tags.component.html',\n styleUrls: ['./tags.component.scss'],\n imports: [CommonModule, MatIconModule, GalaxyBadgeModule, GalaxyTooltipModule],\n standalone: true,\n})\nexport class TagsComponent {\n @Input() tags: string[] = [];\n}\n", "\n {{ tags[0] }}\n 1\">\n {{ tags[1] }}\n \n\n\n\n \n\n\n \n\n\n\n = 1\">\n {{ tags[0] }}\n \n = 2\">\n {{ tags[1] }}\n \n\n\n\n = 3\" [glxyTooltip]=\"tags.slice(2).join(', ')\">+{{ tags.length - 2 }}\n\n\n\n = 3\" [glxyTooltip]=\"tags.slice(2).join(', ')\">+{{ tags.length - 2 }}\n\n", "export const LinkedinIconSVG =\n ' ';\n", "import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { LinkedinIconSVG } from './linkedin-icon.svg';\n\n@Component({\n selector: 'crm-common-association-card-content',\n templateUrl: './common-association-card-content.component.html',\n styleUrls: ['./common-association-card-content.component.scss'],\n imports: [CommonModule, MatIconModule],\n standalone: true,\n})\nexport class CommonAssociationCardContentComponent {\n @Input() iconName = '';\n @Input() isSvgIcon?: boolean;\n\n constructor(private matIconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) {\n this.matIconRegistry.addSvgIconLiteral('linkedin', this.sanitizer.bypassSecurityTrustHtml(LinkedinIconSVG));\n }\n}\n", "
\n \n
\n \n
\n
\n \n
\n {{ iconName }}\n
\n
\n
\n \n
\n
\n", "import { Component, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { take } from 'rxjs';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN } from '../../../tokens-and-interfaces';\nimport { businessAccountLink, SNACKBAR_DURATION } from '../../../constants';\nimport { CompanyProfileCardsPanelService } from '../../../shared-services/company-profile-cards-panel.service';\n\n@Component({\n selector: 'crm-campaigns-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n ],\n templateUrl: './company-campaigns-card.component.html',\n styleUrls: ['./company-campaigns-card.component.scss', '../../../shared-styles/association-panel-shared.scss'],\n})\nexport class CompanyCampaignsCardComponent {\n loadingAccountGroup = signal(false);\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n\n constructor(\n private router: Router,\n private snackbarService: SnackbarService,\n private companyProfileCardService: CompanyProfileCardsPanelService,\n ) {}\n\n viewCampaigns() {\n if (this.data.account_group_id) {\n this.navigateToCampaigns(this.data.account_group_id);\n return;\n }\n this.loadingAccountGroup.set(true);\n this.companyProfileCardService\n .createAccountGroupForCompany(this.data.company_id)\n .pipe(take(1))\n .subscribe({\n next: (accountGroupId) => {\n if (accountGroupId.length > 0) {\n this.navigateToCampaigns(accountGroupId);\n }\n this.loadingAccountGroup.set(false);\n },\n error: () => {\n this.snackbarService.openErrorSnack('ASSOCIATIONS.COMPANY.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n this.loadingAccountGroup.set(false);\n },\n });\n }\n\n navigateToCampaigns(accountGroupId: string) {\n this.router.navigateByUrl(businessAccountLink.replace('%s', accountGroupId));\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.TITLE' | translate }}\n \n \n {{ 'ASSOCIATIONS.PANEL_IN_PROGRESS.BUTTON' | translate : { category: 'campaigns' } }}\n \n

\n {{ 'ASSOCIATIONS.PANEL_IN_PROGRESS.DESCRIPTION' | translate : { category: 'campaigns' } }}\n

\n \n \n \n
\n", "import { Component, DestroyRef, Inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { ContactType, RecipientCampaignService, RecipientType, Sender, SenderType } from '@vendasta/campaigns';\nimport { CrmFieldService, StandardExternalIds } from '../../../../shared-services/crm-services/field.service';\nimport { CrmObjectService } from '../../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport {\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../../../tokens-and-interfaces';\nimport { GalaxyDatepickerModule } from '@vendasta/galaxy/datepicker';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { RecipientV2Interface } from '@vendasta/campaigns';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { AddCampaignDialogComponent, Campaign } from './add-campaign-dialog.component';\nimport { format as formatDate } from 'date-fns-tz';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport interface dialogData {\n campaign: Campaign;\n id: string;\n}\n@Component({\n selector: 'crm-start-campaign-modal',\n templateUrl: './start-campaign-dialog.component.html',\n styleUrls: ['./start-campaign-dialog.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatDialogModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n VaFormsModule,\n MatInputModule,\n GalaxyButtonLoadingIndicatorModule,\n MatProgressSpinnerModule,\n VaFilterModule,\n GalaxyInfiniteScrollTriggerModule,\n ReactiveFormsModule,\n GalaxyTooltipModule,\n GalaxyAlertModule,\n GalaxyDatepickerModule,\n MatDatepickerModule,\n ],\n providers: [\n RecipientCampaignService,\n CrmFieldService,\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n\n standalone: true,\n})\nexport class StartCampaignDialogComponent implements OnInit {\n formGroup = new FormBuilder().nonNullable.group({\n selectFormControl: '',\n dateFormControl: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n\n campaignStartTime: Date;\n nowDate = new Date(Date.now());\n crmObject$: Observable;\n selectedCampaign: Campaign;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private readonly destroyRef: DestroyRef,\n @Inject(MAT_DIALOG_DATA) readonly modalData: dialogData,\n private dialog: MatDialog,\n private readonly translate: TranslateService,\n private readonly objectService: CrmObjectService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n readonly ref: MatDialogRef,\n private snackbarService: SnackbarService,\n private readonly recipientCampaignService: RecipientCampaignService,\n\n private crmFieldService: CrmFieldService,\n ) {\n this.crmObject$ = objectService.getMultiObject('Contact', [this.modalData.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return {};\n }\n return object;\n }),\n );\n }\n\n ngOnInit() {\n this.selectedCampaign = this.modalData.campaign;\n }\n\n sendCampaign() {\n if (this.selectedCampaign === undefined) {\n this.snackbarService.openErrorSnack('CAMPAIGNS.CONTACTS.MODAL.ERRORS.NO_CAMPAIGN_SELECTED');\n return;\n }\n let sender: Sender;\n combineLatest([this.config.namespace$, this.config.parentNamespace$])\n .pipe(take(1))\n .subscribe(([namespace, parentNamespace]) => {\n let senderType = SenderType.SENDER_TYPE_PARTNER;\n if (parentNamespace) {\n senderType = SenderType.SENDER_TYPE_BUSINESS;\n }\n sender = {\n type: senderType,\n id: namespace,\n } as Sender;\n });\n\n const recipient: Observable = this.crmObject$.pipe(\n map((object) => {\n return {\n id: object.crmObjectId,\n type: RecipientType.RECIPIENT_TYPE_CRM_CONTACT,\n contact: {\n type: ContactType.CONTACT_TYPE_EMAIL,\n value: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.Email)?.stringValue,\n },\n emailAddress: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.Email)?.stringValue,\n phoneNumber: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.PhoneNumber)\n ?.stringValue,\n };\n }),\n );\n\n this.loading$$.next(true);\n recipient\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap((rec) => {\n const formValues = this.formGroup.getRawValue();\n\n this.campaignStartTime = formValues.dateFormControl\n ? new Date(formValues.dateFormControl)\n : new Date(Date.now());\n\n return this.recipientCampaignService\n .addToCampaign(this.selectedCampaign.id, sender, rec, this.campaignStartTime)\n .pipe(\n map(() => ''),\n catchError(() => {\n return of(rec.contact?.value || rec.emailAddress);\n }),\n );\n }),\n )\n .subscribe((resp) => {\n const failedAddresses = resp !== '' ? [resp] : [];\n if (failedAddresses.length > 0) {\n this.snackbarService.openErrorSnack(this.translate.instant('ASSOCIATIONS.CAMPAIGNS.MODAL.ERROR'));\n } else {\n this.loading$$.next(false);\n this.snackbarService.openSuccessSnack(\n this.translate.instant('ASSOCIATIONS.CAMPAIGNS.MODAL.SUCCESS') + ' ' + this.selectedCampaign.title,\n );\n }\n this.close();\n });\n }\n\n close() {\n this.ref.close();\n }\n\n back() {\n this.ref.close();\n this.dialog.open(AddCampaignDialogComponent, {\n width: '500px',\n data: {\n id: this.modalData.id,\n },\n });\n }\n}\n", "

{{ 'ASSOCIATIONS.CAMPAIGNS.ADD_ASSOCIATION' | translate }}

\n\n

{{ 'ASSOCIATIONS.CAMPAIGNS.START' | translate }}

\n
\n
\n \n \n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_CAMPAIGN.NOW' | translate }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_NOW' | translate }} {{ nowDate | date: 'long' }}\n \n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_CAMPAIGN.LATER' | translate }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_LATER' | translate }}\n \n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CrmFieldService } from '../../../../shared-services/crm-services/field.service';\nimport { CrmObjectService } from '../../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport {\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../../../tokens-and-interfaces';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport {\n CampaignService,\n RecipientCampaignService,\n SenderType,\n SortDirection,\n SortField,\n SortOptions,\n Statuses,\n} from '@vendasta/campaigns';\nimport { SenderInterface } from '@vendasta/email';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Scrollable } from '@vendasta/rx-utils';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, map, startWith, take } from 'rxjs/operators';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { StartCampaignDialogComponent } from './start-campaign-dialog.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nexport interface Campaign {\n id: string;\n title: string;\n updated: string;\n}\n\nexport interface contactCard {\n id: string;\n}\n\n@Component({\n selector: 'crm-add-campaign-modal',\n templateUrl: './add-campaign-dialog.component.html',\n styleUrls: ['./add-campaign-dialog.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatDialogModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n VaFormsModule,\n MatInputModule,\n GalaxyButtonLoadingIndicatorModule,\n MatProgressSpinnerModule,\n VaFilterModule,\n GalaxyInfiniteScrollTriggerModule,\n ReactiveFormsModule,\n GalaxyTooltipModule,\n GalaxyAlertModule,\n MatExpansionModule,\n ],\n providers: [\n RecipientCampaignService,\n CrmFieldService,\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n\n standalone: true,\n})\nexport class AddCampaignDialogComponent implements OnInit {\n crmObject$: Observable;\n searchControl = new UntypedFormControl();\n campaigns$$ = new BehaviorSubject([] as Campaign[]);\n campaigns$ = this.campaigns$$.asObservable();\n criteria$ = this.searchControl.valueChanges.pipe(startWith(''), distinctUntilChanged(), debounceTime(300));\n selectedCampaign: Campaign;\n scrollable: Scrollable;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n placeholder = '';\n\n constructor(\n private readonly translate: TranslateService,\n private readonly objectService: CrmObjectService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n readonly ref: MatDialogRef,\n private readonly campaignService: CampaignService,\n private dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) readonly modalData: contactCard,\n ) {\n this.crmObject$ = objectService.getMultiObject('Contact', [this.modalData.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return {};\n }\n return object;\n }),\n );\n }\n\n ngOnInit() {\n combineLatest([this.config.namespace$, this.config.parentNamespace$])\n .pipe(take(1))\n .subscribe(([namespace, parentNamespace]) => {\n let senderType = SenderType.SENDER_TYPE_PARTNER;\n if (parentNamespace) {\n senderType = SenderType.SENDER_TYPE_BUSINESS;\n }\n this.scrollable = this.getScrollableList(namespace, senderType);\n this.campaigns$ = this.scrollable.items$;\n this.placeholder = this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.SEARCH_PLACEHOLDER');\n });\n }\n\n close() {\n this.ref.close();\n }\n\n loadNext() {\n this.scrollable.loadMore();\n }\n\n onItemChange(campaign: Campaign) {\n this.selectedCampaign = campaign;\n }\n\n getScrollableList(senderId: string, senderType: SenderType) {\n return new Scrollable(this.criteria$, (criteria, cursor) => {\n return this.loadMore(criteria, cursor, senderId, senderType);\n });\n }\n\n loadMore(criteria: string, cursor: string, senderId: string, senderType: SenderType) {\n this.loading$$.next(true);\n return this.campaignService\n .listCampaignsV2(\n { type: senderType, id: senderId } as SenderInterface,\n [Statuses.STATUSES_ACTIVE, Statuses.STATUSES_PUBLISHED],\n criteria,\n { cursor: cursor, pageSize: 10 },\n { field: SortField.SORT_FIELDS_UPDATED_AT, direction: SortDirection.SORT_ORDER_DESCENDING } as SortOptions,\n )\n .pipe(\n map((response) => {\n this.loading$$.next(false);\n return {\n items: response.campaigns.map((campaign) => {\n return {\n id: campaign.campaignId,\n title: campaign.name,\n updated: campaign.updated.toISOString(),\n } as Campaign;\n }),\n cursor: response.metadata?.nextCursor ?? null,\n hasMore: response.metadata?.hasMore ?? false,\n };\n }),\n catchError(() => of({ items: [] as Array, cursor: '', hasMore: false })),\n );\n }\n\n openStartCampaignDialog() {\n this.ref.close();\n this.dialog.open(StartCampaignDialogComponent, {\n data: {\n campaign: this.selectedCampaign,\n id: this.modalData.id,\n },\n width: '500px',\n });\n }\n}\n", "

{{ 'ASSOCIATIONS.CAMPAIGNS.ADD_ASSOCIATION' | translate }}

\n\n \n \n \n \n
\n \n \n
\n
\n \n {{ campaign.title }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.MODAL.UPDATED' | translate }}\n {{ campaign.updated | date: 'mediumDate' }}\n \n \n
\n
\n
\n
\n \n \n account_circle\n \n

{{ 'ASSOCIATIONS.CAMPAIGNS.MODAL.NO_CAMPAIGNS' | translate }}

\n
\n
\n \n \n \n
\n
\n
\n
\n\n \n \n \n \n {{ 'ACTIONS.NEXT' | translate }}\n \n \n \n\n", "import { Component, Inject, inject, Injector, Signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { AddCampaignDialogComponent } from './add-campaign-dialog/add-campaign-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AssociationCardComponent, CommonAssociationCardContentComponent, TagsComponent } from '../association-card';\nimport { MatCardModule } from '@angular/material/card';\nimport { CONTACT_PROFILE_CARD_DATA_TOKEN, CrmDependencies, CrmInjectionToken } from '../../../tokens-and-interfaces';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CampaignService, RecipientCampaignService, RecipientCampaignStruct, Statuses } from '@vendasta/campaigns';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { Router, RouterLink } from '@angular/router';\nimport { toSignal } from '@angular/core/rxjs-interop';\nexport interface CampaignCardData {\n id: string;\n title: string;\n status: string;\n link: string;\n}\n@Component({\n selector: 'crm-campaigns-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatIconModule,\n AssociationCardComponent,\n CommonAssociationCardContentComponent,\n MatCardModule,\n TagsComponent,\n GalaxyAvatarModule,\n MatMenuModule,\n MatTooltipModule,\n GalaxyBadgeModule,\n RouterLink,\n ],\n templateUrl: './contact-campaigns-card.component.html',\n styleUrls: ['./contact-campaigns-card.component.scss', '../../../shared-styles/association-panel-shared.scss'],\n})\nexport class ContactCampaignsCardComponent {\n private readonly injector = inject(Injector);\n data = inject(CONTACT_PROFILE_CARD_DATA_TOKEN);\n campaigns$$ = new BehaviorSubject([] as CampaignCardData[]);\n campaigns$ = this.campaigns$$.asObservable();\n useBusinessCenterCampaignLink: Signal;\n\n constructor(\n private dialog: MatDialog,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly campaignService: CampaignService,\n private readonly recipientCampaignService: RecipientCampaignService,\n private router: Router,\n ) {\n this.campaigns$ = this.listRecipientCampaigns(this.data.id);\n this.useBusinessCenterCampaignLink = toSignal(\n config.parentNamespace$.pipe(\n map((parentNamespace) => {\n return parentNamespace !== '';\n }),\n ),\n );\n }\n\n addCampaigns() {\n this.dialog.open(AddCampaignDialogComponent, {\n width: '500px',\n data: {\n id: this.data.id,\n },\n });\n }\n\n listRecipientCampaigns(contactId: string): Observable {\n const recipientCampaigns$ = this.recipientCampaignService.list(contactId).pipe(\n map((recipientCampaigns: RecipientCampaignStruct[]) => {\n return recipientCampaigns.map((recipientCampaign) => recipientCampaign.campaignId);\n }),\n );\n\n return recipientCampaigns$.pipe(\n switchMap((campaignIds) => {\n return this.campaignService.getMulti(campaignIds).pipe(\n map((campaigns) => {\n return campaigns.map((campaign) => {\n let statusAsString = Statuses[campaign.status];\n switch (campaign.status) {\n case Statuses.STATUSES_DRAFT:\n statusAsString = 'Draft';\n break;\n case Statuses.STATUSES_PUBLISHED:\n statusAsString = 'Published';\n break;\n case Statuses.STATUSES_ARCHIVED:\n statusAsString = 'Archived';\n break;\n case Statuses.STATUSES_ACTIVE:\n statusAsString = 'Active';\n break;\n case Statuses.STATUSES_UNSPECIFIED:\n statusAsString = 'Unspecified';\n break;\n }\n const campaignLink = this.getCampaignLink(campaign.campaignId, campaign.partnerId);\n return {\n id: campaign.campaignId,\n title: campaign.name,\n status: statusAsString,\n link: campaignLink,\n } as CampaignCardData;\n });\n }),\n );\n }),\n );\n }\n\n getCampaignLink(campaignId: string, namespace: string): string {\n if (this.useBusinessCenterCampaignLink()) {\n return `/account/location/${namespace}/campaigns/${campaignId}/details`;\n } else {\n return `/marketing/campaign/details/${campaignId}`;\n }\n }\n\n viewAll() {\n if (this.useBusinessCenterCampaignLink()) {\n this.config.namespace$.pipe(take(1)).subscribe((namespace) => {\n this.router.navigate([`/account/location/${namespace}/campaigns/list`]);\n });\n }\n this.router.navigate(['/marketing/campaigns/all']);\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.TITLE' | translate }}\n \n \n \n \n \n \n {{ campaign.title }}\n \n \n \n {{ campaign.status }}\n \n \n \n \n\n", "import { BreakpointObserver, BreakpointState, Breakpoints } from '@angular/cdk/layout';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFilterChipsModule, GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyDataSource, GalaxyTableModule, Row } from '@vendasta/galaxy/table';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table/src/table.interface';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { Association } from '../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { LIST_OBJECTS_DEFAULT_PAGE_SIZE, LIST_OBJECTS_PAGE_SIZE_OPTIONS, SNACKBAR_DURATION } from '../../constants';\nimport { ObjectType } from '../../tokens-and-interfaces';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { ListObjectsTableComponent } from '../list-objects/list-objects-table.component';\nimport { ListObjectsTableService } from '../list-objects/list-objects-table.service';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\n\nexport interface ListObjectTypeDialogData {\n baseColumnIds: string[];\n modalTitle: string;\n objectType: ObjectType;\n associations: Association[];\n associationType: string;\n newSelection: string;\n enableMultiplePreSelectedRows?: boolean;\n newSelectionIDs?: string[];\n hideCreateButton: boolean;\n singleSelection?: boolean;\n}\nexport interface ListObjectTypeDialogResult {\n selectedRows: Row[];\n clickedCreate?: boolean;\n}\n\n@Component({\n selector: 'crm-select-object-type-modal',\n templateUrl: './select-object-type-modal.component.html',\n styleUrls: ['./select-object-type-modal.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslationModule,\n MatDialogModule,\n AsyncPipe,\n ListObjectsTableComponent,\n GalaxyLoadingSpinnerModule,\n GalaxyEmptyStateModule,\n GalaxyTableModule,\n MatTableModule,\n GalaxyFilterChipsModule,\n TranslateByObjectTypePipe,\n ],\n providers: [ListObjectsTableService, RxState],\n standalone: true,\n})\nexport class SelectObjectTypeModalComponent {\n dataSource: GalaxyDataSource = this.service.dataSource;\n columns$: Observable = this.service.columns$;\n initialLoading$: Observable = this.service.initialLoading$;\n showObjects$: Observable = this.service.showObjects$;\n showEmptyState$: Observable = this.service.showEmptyState$;\n objectType: ObjectType;\n selectedRows: Row[] = [];\n showFiltersApplied$: Observable = this.dataSource.filtersApplied$;\n isMobile$: Observable;\n\n newSelectedRow: Row[] = [\n {\n id: this.data?.newSelection,\n data: {},\n } as Row,\n ];\n enablePreselectedRows: boolean = this.data?.enableMultiplePreSelectedRows ?? false;\n preSelectedRows?: Row[] = this.data?.newSelectionIDs?.map((id) => {\n return {\n id,\n data: {},\n } as Row;\n });\n newSelection: Row[] = this.enablePreselectedRows ? this.preSelectedRows ?? [] : this.newSelectedRow;\n\n shouldOpenSelectModal = false;\n\n pageSizeOptions: number[] = LIST_OBJECTS_PAGE_SIZE_OPTIONS;\n pageSize: number = LIST_OBJECTS_DEFAULT_PAGE_SIZE;\n\n hasAssociations: boolean = this.data.associations.length > 0 ? true : false;\n preSelectedLockedRow: Row[] = this.data.associations.map((association) => {\n return {\n id: association?.associatedObject?.crmObjectId,\n data: {},\n } as Row;\n });\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: ListObjectTypeDialogData,\n private readonly service: ListObjectsTableService,\n private dialogRef: MatDialogRef,\n private readonly snackService: SnackbarService,\n private readonly translateService: TranslateService,\n private readonly breakpointObserver: BreakpointObserver,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {\n this.service.setObjectType(this.data.objectType);\n this.service.setShowActions(false);\n this.service.setBaseColumns(this.data.baseColumnIds);\n this.objectType = this.data.objectType;\n this.isMobile$ = this.breakpointObserver.observe(Breakpoints.XSmall).pipe(\n startWith({\n matches: false,\n breakpoints: {\n [Breakpoints.XSmall]: false,\n },\n } as BreakpointState),\n map((breakpoint: BreakpointState) => breakpoint.matches),\n );\n }\n\n updateFilters(filters: GalaxyFilterInterface[]): void {\n this.service.filters = filters;\n this.dataSource.setFilters(filters);\n }\n\n selectionChanged(rows: Row[]): void {\n if (this.preSelectedLockedRow.length > 0) {\n const filteredData = rows.filter((data) => !this.preSelectedLockedRow.some((item) => item.id === data.id));\n this.selectedRows = filteredData;\n return;\n }\n this.selectedRows = rows;\n }\n\n cancel(): void {\n this.dialogRef.close();\n }\n\n selectContacts(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n\n saveCompanies(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n\n createContactModal(): void {\n this.shouldOpenSelectModal = true;\n\n this.dialogRef.close({ selectedRows: this.selectedRows, clickedCreate: true } as ListObjectTypeDialogResult);\n }\n\n save(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n}\n", "

{{ data.modalTitle }}

\n\n \n\n \n \n \n \n \n {{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HEADER' | translateByObjectType: objectType }}\n \n

{{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HINT' | translateByObjectType: objectType }}

\n \n\n \n \n \n \n\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n
\n\n \n
\n \n
\n \n\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n {{ 'SELECT_MODAL.ONE_SELECTED' | translateByObjectType: objectType }}\n
\n
\n \n
\n {{ 'SELECT_MODAL.MORE_SELECTED' | translateByObjectType: objectType : { totalSelected: selectedRows.length } }}\n
\n
\n
\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { CrmAssociationService } from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { SNACKBAR_DURATION } from '../../../constants';\n\nexport interface RemoveAssociationData {\n associationID: string;\n fromName: string;\n removeName: string;\n}\n\n@Component({\n selector: 'crm-remove-association-dialog',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule],\n templateUrl: './remove-association-dialog.component.html',\n styleUrls: ['./remove-association-dialog.component.scss'],\n})\nexport class RemoveAssociationDialogComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: RemoveAssociationData,\n private readonly crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n ) {}\n\n remove(): void {\n this.crmAssociationService.removeAssociation(this.data.associationID).subscribe({\n next: () => {\n this.snackService.openSuccessSnack('ASSOCIATIONS.REMOVE_DIALOG.SUCCESS', {\n duration: SNACKBAR_DURATION,\n });\n this.dialogRef.close(true);\n },\n error: () => {\n this.snackService.openErrorSnack('ASSOCIATIONS.REMOVE_DIALOG.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n },\n });\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}\n", "

\n {{ 'ASSOCIATIONS.REMOVE_DIALOG.TITLE' | translate }}\n

\n\n

\n {{ 'ASSOCIATIONS.REMOVE_DIALOG.MESSAGE' | translate : { fromName: data.fromName, removeName: data.removeName } }}\n

\n
\n\n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, mergeMap, switchMap, take, tap } from 'rxjs/operators';\nimport {\n Association,\n CrmAssociationService,\n SelectedObjects,\n} from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { CrmObjectService } from '../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport { CrmFieldService, StandardIds } from '../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { AssociationCardComponent } from '../association-card/association-card.component';\nimport { CommonAssociationCardContentComponent } from '../association-card/common-associaon-card-content/common-association-card-content.component';\nimport { TagsComponent } from '../association-card/tags/tags.component';\nimport { AssociationsDialogData } from '../select-associations-modal/select-associations-modal.component';\nimport {\n ListObjectTypeDialogData,\n SelectObjectTypeModalComponent,\n} from '../../select-object-type-modal/select-object-type-modal.component';\nimport {\n RemoveAssociationData,\n RemoveAssociationDialogComponent,\n} from '../remove-association-dialog/remove-association-dialog.component';\nimport { MatCardModule } from '@angular/material/card';\nimport {\n combineAssociationsWithChanges,\n DefaultAssociationActionsService,\n} from '../../../shared-services/default-association-actions.service';\nimport { CrmObjectInterface } from '@vendasta/crm/lib/_internal/interfaces/crm-objects.interface';\nimport {\n CardData,\n COMPANY_PROFILE_CARD_DATA_TOKEN,\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n tableFiltersInjectionTokenGenerator,\n} from '../../../tokens-and-interfaces';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../../constants';\nimport { CompanyTableCustomizationService } from '../../../shared-services';\n\ninterface ChildCompanyAssociationsCardData extends CardData {\n associationId: string;\n parentCompanyName: string;\n}\n\ninterface ParentCompanyAssociationsCardData extends CardData {\n associationId: string;\n childCompanyName: string;\n}\n\n@Component({\n selector: 'crm-parent-child-company-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n AssociationCardComponent,\n CommonAssociationCardContentComponent,\n TagsComponent,\n GalaxyAlertModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n RouterLink,\n MatMenuModule,\n MatDialogModule,\n MatCardModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n ],\n templateUrl: './parent-child-company-associations-card.component.html',\n styleUrls: [\n './parent-child-company-associations-card.component.scss',\n '../../../shared-styles/association-panel-shared.scss',\n ],\n})\nexport class ParentChildCompanyAssociationsCardComponent {\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n childCompanies$: Observable;\n parentCompany$: Observable;\n\n getAssociations$: Observable;\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n removedAssociationIds$$ = new BehaviorSubject([]);\n removedParentAssociationIds$$ = new BehaviorSubject([]);\n setParentAssociation$$ = new BehaviorSubject(undefined);\n\n newCompany$$ = new BehaviorSubject('');\n changedAssociations$$ = new BehaviorSubject([]);\n\n private readonly injector = inject(Injector);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.company_id || '');\n this.fullName$ = objectService.getMultiObject('Company', [this.data.company_id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.companyCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.getAssociations$ = this.associationService.getChildCompanyAssociationsForCompany$(this.data.company_id || '');\n\n const latestCompanies$ = this.loadAssociations$$.pipe(\n switchMap(() =>\n combineLatest([\n this.getAssociations$,\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.changedAssociations$$,\n this.fullName$,\n ]),\n ),\n tap(() => {\n this.removedAssociationIds$$.next([]);\n }),\n map(([associations, routePrefix, copyCrmObject, changed, fullName]) => {\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Company-Company',\n tags: [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n if (!association.associatedObject) {\n return {} as ChildCompanyAssociationsCardData;\n }\n\n const data = {\n associationId: association.associationId,\n parentCompanyName: fullName,\n businessName: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyName,\n )?.stringValue,\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n type: 'business',\n tags: (association.tags || []).filter((tag) => tag !== 'Parent'),\n id: association.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n } as ChildCompanyAssociationsCardData;\n return data;\n });\n }),\n );\n\n this.childCompanies$ = combineLatest([latestCompanies$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([companies, removed]) => {\n return companies.filter((company) => {\n return !removed.includes(company.associationId);\n });\n }),\n );\n\n const latestParentCompany$ = this.associationService.getParentCompanyAssociationsForCompany$(\n this.data.company_id || '',\n );\n this.parentCompany$ = combineLatest([\n latestParentCompany$,\n this.removedParentAssociationIds$$.asObservable(),\n this.config.routePrefix$,\n this.fullName$,\n this.setParentAssociation$$.asObservable(),\n ]).pipe(\n map(([parentCompany, removed, routePrefix, fullName, setParentAssociation]) => {\n if (setParentAssociation) {\n parentCompany.splice(0, 0, {\n associationId: setParentAssociation.associationId,\n associationType: 'Company-Company',\n tags: [],\n associatedObject: setParentAssociation,\n } as Association);\n }\n return parentCompany\n .filter((company) => {\n return !removed.includes(company.associationId);\n })\n .map((company) => {\n return {\n associationId: company.associationId,\n childCompanyName: fullName,\n businessName: this.fieldService.getFieldValueFromCrmObject(\n company.associatedObject,\n StandardIds.CompanyName,\n )?.stringValue,\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n company.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n type: 'business',\n tags: (company.tags || []).filter((tag) => tag !== 'Parent'),\n id: company.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n company.associatedObject.crmObjectId || '',\n ),\n } as ParentCompanyAssociationsCardData;\n })[0];\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$, this.newCompany$$]).pipe(\n map(([objectIdAndName, associations, newContact]) => ({\n modalTitle: objectIdAndName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n selectedCompanyNames: [],\n fromId: '',\n copyCrmObjects: [],\n associationType: '',\n associations: associations,\n newSelection: newContact,\n })),\n );\n }\n\n openAddChildModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant(\n 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.ADD_CHILD_COMPANY_MODAL.TITLE',\n {\n companyName: data.modalTitle,\n },\n ),\n associations: data.associations,\n associationType: 'Company-Company',\n newSelection: data.newSelection,\n hideCreateButton: true,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedIDs).pipe(\n map((resp) => {\n const copyCrmObjects: CrmObjectInterface[] = resp.crmObjects?.map((object) => object) || [];\n return {\n crmObjects: copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n } as SelectedObjects;\n }),\n );\n }),\n tap((selectedObjects: SelectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.crmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((): Observable => {\n return this.crmAssociationService.createAssociation$('Company-Company', ['Parent'], false);\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n openSetParentModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant(\n 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.SET_PARENT_COMPANY_MODAL.TITLE',\n {\n companyName: data.modalTitle,\n },\n ),\n associations: data.associations,\n associationType: 'Company-Company',\n newSelection: data.newSelection,\n hideCreateButton: true,\n singleSelection: true,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedIDs).pipe(\n map((resp) => {\n const copyCrmObjects: CrmObjectInterface[] = resp.crmObjects?.map((object) => object) || [];\n return {\n crmObjects: copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n } as SelectedObjects;\n }),\n );\n }),\n tap((selectedObjects: SelectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.crmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((): Observable => {\n return this.crmAssociationService.createAssociation$('Company-Company', ['Parent'], false, 'to');\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.setParentAssociation$$.next(copyCrmObjects.copyCrmObjectsUpdated[0]);\n });\n }\n\n removeChildAssociation(cardData: ChildCompanyAssociationsCardData): void {\n this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.parentCompanyName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n removeParentAssociation(cardData: ParentCompanyAssociationsCardData): void {\n this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.childCompanyName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedParentAssociationIds$$.next([\n ...this.removedParentAssociationIds$$.value,\n cardData.associationId,\n ]);\n this.setParentAssociation$$.next(undefined);\n }\n }),\n )\n .subscribe();\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.TITLE' | translate }}\n \n
{{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.PARENT_SECTION_TITLE' | translate }}
\n \n \n \n \n \n \n
{{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.CHILD_SECTION_TITLE' | translate }}
\n \n \n \n \n
\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n UntypedFormControl,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subject, take, takeUntil } from 'rxjs';\nimport {\n Association,\n CrmAssociationService,\n} from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { PRIMARY_TAG } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { EditAssociationTagsComponent } from '../edit-association-tags/edit-association-tags.component';\nimport { CompanyTableCustomizationService } from '../../../shared-services';\n\nexport interface SelectedRows {\n id: string;\n name: string;\n}\n\nexport interface AssociationsDialogData {\n newSelection: string;\n modalTitle: string;\n primarySelect: string;\n description: string;\n selectedRows: SelectedRows[];\n associationType: string;\n associations: Association[];\n}\n\n@Component({\n selector: 'crm-select-associations-modal',\n templateUrl: './select-associations-modal.component.html',\n styleUrls: ['./select-associations-modal.component.scss'],\n imports: [\n CommonModule,\n TranslationModule,\n MatDialogModule,\n MatButtonModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n ReactiveFormsModule,\n EditAssociationTagsComponent,\n ],\n providers: [{ provide: CompanyTableCustomizationService }],\n standalone: true,\n})\nexport class SelectAssociationsModalComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: AssociationsDialogData,\n private dialogRef: MatDialogRef,\n private dialog: MatDialog,\n private readonly crmAssociationService: CrmAssociationService,\n private fb: FormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.data.selectedRows.forEach((row, index) => {\n const association = this.fb.group({\n id: new FormControl(row.id || ''),\n tags: new FormControl([]) as UntypedFormControl,\n name: new FormControl(row.name || ''),\n isPrimary: new FormControl(index === 0),\n });\n\n this.associationFormArray.push(association);\n\n association\n .get('tags')\n ?.valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((tags: string[]) => {\n if (tags?.includes(PRIMARY_TAG)) {\n this.setPrimaryAssociation(index);\n const updatedTags = tags.filter((tag: string) => tag !== PRIMARY_TAG);\n association.get('tags')?.setValue(updatedTags, { emitEvent: false });\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n associationsFormGroup: FormGroup = this.fb.group({\n associations: this.fb.array([]),\n });\n\n get associationFormArray(): FormArray {\n return this.associationsFormGroup.get('associations') as FormArray;\n }\n\n private get associationTags(): Map {\n const tagsMap = new Map();\n this.associationFormArray.controls.forEach((control) => {\n const association = control as FormGroup;\n const tagsArray = association?.get('tags')?.value;\n if (tagsArray && tagsArray.length > 0) {\n tagsMap.set(association.get('id')?.value, tagsArray);\n }\n });\n return tagsMap;\n }\n\n private get primaryAssociation(): string {\n return this.associationFormArray.controls.find((control) => control.get('isPrimary')?.value)?.get('id')?.value;\n }\n\n cancel(): void {\n this.dialogRef?.close([]);\n }\n\n save(): void {\n this.crmAssociationService\n .createContactCompanyAssociation$(this.data.associationType, this.primaryAssociation, this.associationTags)\n .pipe(take(1))\n .subscribe((copyCrmObjects) => {\n return this.dialogRef.close(copyCrmObjects);\n });\n }\n\n setPrimaryAssociation(selectedIndex: number): void {\n this.associationFormArray.controls.forEach((control: AbstractControl, index: number) => {\n const association = control as FormGroup;\n association?.get('isPrimary')?.setValue(index === selectedIndex);\n });\n }\n\n tagsChanged(selectedIndex: number, tags: string[]): void {\n this.associationFormArray.controls[selectedIndex].get('tags')?.setValue(tags);\n }\n}\n", "

{{ data.modalTitle }}

\n\n \n \n \n {{ association?.get('name')?.value }}\n
\n \n {{ data.primarySelect }}\n {{ data.description }}\n \n \n
\n
\n
\n
\n
\n\n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Params, RouterModule } from '@angular/router';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, forkJoin, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { CrmModelDrivenFormComponent } from '../model-driven-form/form/model-driven-form.component';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n FieldInterface,\n ObjectType,\n FieldConfigInterface,\n SavingStatus,\n LoadingStatus,\n} from '../../tokens-and-interfaces';\nimport { CRMTrackingService } from '../../shared-services/page-analytics.service';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../constants';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { PreviewObjectService } from '../../shared-services/preview-object.service';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport { CrmFormService } from '../../shared-services/crm-services/crm-form.service';\n\n@Component({\n selector: 'crm-contact-modal',\n templateUrl: './create-modal.component.html',\n\n imports: [\n CommonModule,\n GalaxyPageModule,\n MatButtonModule,\n MatIconModule,\n RouterModule,\n TranslationModule,\n TranslateByObjectTypePipe,\n CrmModelDrivenFormComponent,\n MatDialogModule,\n ],\n standalone: true,\n})\nexport class CreateContactModalComponent implements OnInit {\n @Input({ required: true }) objectType!: ObjectType;\n LoadingStatus = LoadingStatus;\n SavingStatus = SavingStatus;\n loadingStatus$$ = new BehaviorSubject(LoadingStatus.LOADING);\n savingStatus$$ = new BehaviorSubject(SavingStatus.NOT_SAVING);\n routePrefix$ = this.config.routePrefix$;\n fieldConfig$: Observable = of({});\n PAGE_ROUTES = PAGE_ROUTES;\n\n crmObjectId$ = this.route.params.pipe(\n map((params: Params) => params['crmObjectId']),\n shareReplay(1),\n );\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmFormService: CrmFormService,\n private readonly snackService: SnackbarService,\n private readonly route: ActivatedRoute,\n private readonly previewObjectService: PreviewObjectService,\n private readonly trackingService: CRMTrackingService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {}\n\n ngOnInit(): void {\n const fieldSchemas$ = this.crmFormService.listAllFormFields$(this.objectType);\n const fieldGroups$ = this.crmFormService.listAllObjectFormFieldGroups$(this.objectType);\n\n this.fieldConfig$ = of(null).pipe(\n tap(() => this.loadingStatus$$.next(LoadingStatus.LOADING)),\n switchMap(() => forkJoin([fieldSchemas$, fieldGroups$])),\n tap(([fieldSchemas, fieldGroups]) => {\n const empty = fieldSchemas.length === 0 || fieldGroups.length === 0;\n this.loadingStatus$$.next(empty ? LoadingStatus.EMPTY : LoadingStatus.OK);\n }),\n map(([fieldSchemas, fieldGroups]) => {\n return {\n fieldSchemas: fieldSchemas,\n fieldGroups: fieldGroups,\n };\n }),\n catchError((error) => {\n this.loadingStatus$$.next(LoadingStatus.ERROR);\n this.errorSnackbar(error, 'ERRORS.GENERIC_MESSAGE');\n return of({} as FieldConfigInterface);\n }),\n shareReplay(1),\n );\n }\n\n onSave(fields: FieldInterface[]): void {\n of(null)\n .pipe(\n take(1),\n tap(() => this.savingStatus$$.next(SavingStatus.SAVING)),\n switchMap(() => this.crmFormService.validateAndCreateCrmObject$(this.objectType, fields)),\n catchError((err) => {\n this.savingStatus$$.next(SavingStatus.ERROR);\n throw err;\n }),\n tap(() => this.savingStatus$$.next(SavingStatus.OK)),\n tap((previewCrmObject) => {\n this.previewObjectService.setPreviewCrmObject(previewCrmObject, this.objectType);\n }),\n\n tap((previewCrmObject) => this.dialogRef.close(previewCrmObject)),\n\n switchMap(() => this.config.routePrefix$),\n )\n .subscribe({\n next: () => {\n this.trackingService.trackEvent(this.objectType, 'added-crm-object');\n },\n error: (error) => {\n this.trackingService.trackEvent(this.objectType, 'failed-add-crm-object');\n this.errorSnackbar(error, 'ERRORS.GENERIC_MESSAGE');\n },\n });\n }\n\n private errorSnackbar(error: any | null, defaultMessage: string) {\n let message: string | null = null;\n if (error && error.message) {\n message = error.message;\n }\n const translatedDefaultMessage = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n defaultMessage,\n );\n this.snackService.openErrorSnack(message ?? translatedDefaultMessage, {\n duration: SNACKBAR_DURATION,\n });\n }\n\n onCancel(): void {\n this.trackingService.trackEvent(this.objectType, 'cancelled-crm-add');\n this.dialogRef.close();\n }\n}\n", "\n", "import { Component } from '@angular/core';\nimport { CreateContactModalComponent } from './create-modal.component';\nimport {\n FieldOptionsInjectionToken as ModelDrivenFormFieldOptionsInjectionToken,\n modelDrivenFormFieldOptionsInjectionTokenGenerator,\n ObjectType,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../tokens-and-interfaces';\n\n@Component({\n // requires selector to prevent ID collision\n selector: 'crm-create-modal',\n template: ` `,\n imports: [CreateContactModalComponent],\n standalone: true,\n providers: [\n {\n provide: ModelDrivenFormFieldOptionsInjectionToken,\n useFactory: modelDrivenFormFieldOptionsInjectionTokenGenerator('Contact'),\n },\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n})\nexport class CrmCreateModalContactComponent {\n objectType: ObjectType = 'Contact';\n}\n", "import { Component, signal, computed, WritableSignal } from '@angular/core';\nimport { switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SystemFieldIds } from '../../../shared-services';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\nimport { ActivityAssigneeService } from '../../../shared-services';\n\nconst NO_VALUE_FOR_USER = '';\n\n@Component({\n template: `\n \n
\n {{ userName() }}\n
\n
\n \n
\n
\n \n \n \n `,\n standalone: true,\n imports: [CommonModule, BlankValueComponent],\n})\nexport class UserCellComponent extends CustomCellComponent {\n NO_VALUE_FOR_USER = NO_VALUE_FOR_USER;\n private fieldValues = signal([]);\n\n set value(newValues: FieldValueInterface[]) {\n this.fieldValues.set(newValues);\n }\n\n user: WritableSignal' | null> = signal(null);\n userName = computed(() => {\n const user = this.user();\n if (user === NO_VALUE_FOR_USER) {\n return '';\n }\n return user?.displayName ?? '';\n });\n\n constructor(private readonly userService: ActivityAssigneeService) {\n super();\n toObservable(this.fieldValues)\n .pipe(\n switchMap((fieldValues) => {\n const userId =\n fieldValues.find((fieldValue) => fieldValue?.fieldId === SystemFieldIds.ActivityOwnerID) ?? null;\n if (!userId || !userId?.stringValue) {\n return of(NO_VALUE_FOR_USER);\n }\n return this.userService.getMultiUsers([userId.stringValue]);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n if (result === NO_VALUE_FOR_USER || !result.length) {\n this.user.set(NO_VALUE_FOR_USER);\n return;\n }\n const user = result[0] as UserWithDisplayName;\n if (!user?.userId) {\n this.user.set(NO_VALUE_FOR_USER);\n return;\n }\n this.user.set(user);\n });\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { StandardIds } from '../../../shared-services';\nimport { ActivityTaskStatus } from '../../../tokens-and-interfaces';\n\n@Component({\n template: `\n \n
\n {{ date | glxyDate: dateFormat }}\n 0; else showInHours\">\n ({{ 'TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.DAYS_OVERDUE' | translate: { amount: daysOverdue } }})\n \n ({{\n 'TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.HOURS_OVERDUE' | translate: { amount: hoursOverdue }\n }})\n
\n \n {{ date | glxyDate: dateFormat }}\n \n
\n\n \n \n \n `,\n standalone: true,\n imports: [CommonModule, BlankValueComponent, GalaxyPipesModule, TranslateModule],\n styleUrls: ['./due-date.component.scss'],\n})\nexport class DueDateCellComponent extends CustomCellComponent {\n protected date: Date | undefined;\n protected isOverdue = false;\n protected daysOverdue = 0;\n protected hoursOverdue = 0;\n protected dateFormat = DateFormat.medium;\n private readonly milisecToHours = 3600000;\n\n set value(newValues: FieldValueInterface[]) {\n const dueDateField = newValues.filter(Boolean).find((field) => field?.fieldId === StandardIds.ActivityTaskDueDate);\n this.date = dueDateField?.dateValue || undefined;\n\n const statusField = newValues.filter(Boolean).find((field) => field?.fieldId === StandardIds.ActivityTaskStatus);\n const timeOverdue = this.getTimeOverdue(this.date);\n this.isOverdue = timeOverdue.isOverdue && statusField?.stringValue === ActivityTaskStatus.Open;\n this.daysOverdue = timeOverdue.days;\n this.hoursOverdue = timeOverdue.hours;\n }\n\n /*\n Check if a dueDate has passed and calculate the days and hours it is overdue by\n Something is overdue if the current time is at least an hour past the due date\n */\n private getTimeOverdue(dueDate?: Date): { days: number; hours: number; isOverdue: boolean } {\n if (!dueDate) {\n return { days: 0, hours: 0, isOverdue: false };\n }\n const todayHours = Date.now() / this.milisecToHours || 0;\n const dueDateHours = dueDate?.getTime() / this.milisecToHours || 0;\n if (todayHours === 0 || dueDateHours === 0) {\n return { days: 0, hours: 0, isOverdue: false };\n }\n const hoursOverdue = todayHours - dueDateHours;\n return {\n days: Math.floor(hoursOverdue / 24),\n hours: Math.floor(hoursOverdue),\n isOverdue: Math.floor(hoursOverdue) > 0,\n };\n }\n\n constructor() {\n super();\n }\n}\n", "import { Component, computed, Input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs/operators';\nimport { CompanyDisplayName, CompanyFiltersService } from '../../../shared-services';\n\n@Component({\n template: `\n \n {{ selectedCompanyText() }}\n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['./company-custom-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class CompanyCustomFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedCompanyId = signal('');\n selectedCompany = signal([]);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.selectedCompanyId.set(value[0].string);\n }\n }\n\n selectedCompanyText = computed(() => {\n if (this.selectedCompany().length === 0) {\n return '';\n }\n return this.selectedCompany()[0]?.displayName || this.selectedCompanyId();\n });\n\n constructor(private readonly companyFiltersService: CompanyFiltersService) {\n toObservable(this.selectedCompanyId)\n .pipe(\n switchMap((companyIds) => {\n return this.companyFiltersService.getMultiCompany([companyIds]);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedCompany.set(result);\n });\n }\n}\n", "import { Component, effect, EventEmitter, forwardRef, Input, Output, signal } from '@angular/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { CompanyDisplayName, CompanyFiltersService } from '../../../shared-services';\n\n@Component({\n template: `\n \n \n \n \n {{ option?.displayName }}\n \n \n \n \n
\n \n \n \n
\n
\n `,\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => CompanyCustomFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport class CompanyCustomFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', {\n nonNullable: true,\n });\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n\n _fieldId = signal('');\n availableOptions$ = toObservable(this.searchTerm).pipe(\n takeUntilDestroyed(),\n switchMap((searchTerm) => {\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.crmObjectId;\n\n return this.companyFiltersService.listReadableCompanies(filterTerm || '');\n }),\n );\n\n availableOptions = toSignal(this.availableOptions$);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n clearValue(): void {\n this.formControl.setValue('');\n }\n\n companyDetails$ = toObservable(this.searchTerm).pipe(\n switchMap((value) => {\n let crmObjectId = '';\n if (typeof value === 'string') {\n crmObjectId = value;\n } else {\n crmObjectId = value.crmObjectId ?? '';\n }\n if (!crmObjectId) {\n return of({} as CompanyDisplayName[]);\n }\n return this.companyFiltersService.getMultiCompany([crmObjectId]);\n }),\n );\n\n constructor(private companyFiltersService: CompanyFiltersService) {\n effect(\n () => {\n const value = this.searchTerm();\n\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: value?.crmObjectId }]);\n },\n { allowSignalWrites: true },\n );\n }\n\n displayFn(availableOptions: CompanyDisplayName[]): (company: CompanyDisplayName | string) => string {\n return (company: CompanyDisplayName | string): string => {\n if (!company || !availableOptions) {\n return '';\n }\n if (typeof company === 'string') {\n const foundCompany = availableOptions.find((displayName) => displayName.crmObjectId === company);\n return foundCompany?.displayName || company;\n }\n return company?.displayName;\n };\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, Input, signal, computed } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\n\n@Component({\n template: ``,\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport abstract class AbstractAssigneeFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedAssigneeIds = signal([]);\n selectedAssignees = signal([]);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this.selectedAssigneeIds.set(value?.map((v) => v.string ?? '').filter(Boolean) || []);\n }\n\n selectedAssigneesText = computed(() => {\n if (this.selectedAssignees().length === 0) {\n return '';\n }\n const firstAssigneeName = this.getDisplayName(this.selectedAssignees()[0]) || this.selectedAssigneeIds()[0];\n if (this.selectedAssignees().length === 1) {\n return firstAssigneeName;\n }\n return `${firstAssigneeName} +${this.selectedAssignees().length - 1}`;\n });\n\n abstract getDisplayName(assignee: T): string;\n}\n", "import { Component, inject } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AbstractAssigneeFilterChipComponent } from '../../abstract-custom-filters/abstract-assignee/abstract-assignee-filter-chip.component';\nimport { ActivityAssigneeService } from '../../../shared-services/activity-assignee.service';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\n\n@Component({\n template: `\n \n \n {{ selectedAssigneesText() }}\n \n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['../common-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class UserFilterChipComponent extends AbstractAssigneeFilterChipComponent {\n private readonly userService = inject(ActivityAssigneeService);\n getDisplayName(user: UserWithDisplayName): string {\n return user.displayName;\n }\n\n constructor() {\n super();\n toObservable(this.selectedAssigneeIds)\n .pipe(\n switchMap((userIds) => {\n return this.userService.getMultiUsers(userIds);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedAssignees.set(result);\n });\n }\n}\n", "import { Component, computed, effect, EventEmitter, forwardRef, Input, Output, Signal, signal } from '@angular/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n template: '',\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => AbstractAssigneeFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport abstract class AbstractAssigneeFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', {\n nonNullable: true,\n });\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n _fieldId = signal('');\n availableOptions = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = this.extractFilterTerm(searchTerm);\n return availableOptions.filter((assignee) => this.filterFn(assignee, filterTerm));\n });\n\n protected constructor() {\n effect(\n () => {\n const value = this.searchTerm();\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: this.getId(value) }]);\n },\n { allowSignalWrites: true },\n );\n }\n\n clearValue() {\n this.formControl.setValue('');\n }\n\n displayFn(availableOptions: T[]): (assignee: T | string) => string {\n return (assignee: T | string): string => {\n if (!assignee) {\n return '';\n }\n if (typeof assignee === 'string') {\n const foundOption = availableOptions.find((o) => this.getId(o) === assignee);\n return foundOption ? this.getDisplayName(foundOption) : assignee;\n }\n return this.getDisplayName(assignee);\n };\n }\n\n abstract filterFn(assignee: T, searchTerm: string): boolean;\n abstract extractFilterTerm(assignee: T | string): string;\n abstract getId(assignee: T): string;\n abstract getDisplayName(assignee: T): string;\n abstract setAvailableOptions(): void;\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivityAssigneeService } from '../../../shared-services/activity-assignee.service';\nimport { AbstractAssigneeFilterInputComponent } from '../../abstract-custom-filters/abstract-assignee/abstract-assignee-filter-input.component';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\nimport { userFilterFn } from '../../../utils';\n\n@Component({\n template: `\n \n \n \n \n {{ option?.displayName }}\n \n \n \n `,\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport class UserFilterInputComponent extends AbstractAssigneeFilterInputComponent {\n filterFn(user: UserWithDisplayName, searchTerm: string): boolean {\n return userFilterFn(user, searchTerm);\n }\n extractFilterTerm(user: string | UserWithDisplayName): string {\n return typeof user === 'string' ? user : user?.userId;\n }\n getId(user: UserWithDisplayName): string {\n return user.userId;\n }\n getDisplayName(user: UserWithDisplayName): string {\n return user.displayName;\n }\n setAvailableOptions(): void {\n this.userService.allUsers$.pipe(takeUntilDestroyed()).subscribe((allUsers) => this.availableOptions.set(allUsers));\n }\n\n constructor(private readonly userService: ActivityAssigneeService) {\n super();\n this.setAvailableOptions();\n }\n}\n", "import { InjectionToken, NgModule } from '@angular/core';\nimport { CrmDependencies, CrmInjectionToken } from './tokens-and-interfaces';\n\n@NgModule({\n imports: [],\n})\nexport class CrmCoreModule {\n static forRoot(config: InjectionToken) {\n return {\n ngModule: CrmCoreModule,\n providers: [\n {\n provide: CrmInjectionToken,\n useExisting: config,\n deps: [],\n },\n ],\n };\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { AccountGroup, AccountGroupApiService, ProjectionFilter } from '@galaxy/account-group';\nimport { BrandingV2Service } from '@galaxy/partner';\nimport { AccountTag, GeneralBusinessInfo } from '@vendasta/sales-ui';\nimport { EMPTY, map, Observable, of } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\nconst ACCOUNT_INFO = (businessId: string) => `/businesses/accounts/${businessId}/details`;\nconst ACCOUNT_INFO_EDIT = (businessId: string) => `/businesses/accounts/${businessId}/edit`;\n\n@Injectable()\nexport class BusinessInfoService {\n constructor(\n private readonly branding: BrandingV2Service,\n private accountGroupSdk: AccountGroupApiService,\n ) {}\n\n public getBusinessData(businessId: string): Observable {\n if (!businessId) {\n return EMPTY;\n }\n return this.accountGroupSdk\n .get(\n businessId,\n new ProjectionFilter({\n napData: true,\n contactDetails: true,\n accountGroupExternalIdentifiers: true,\n legacyProductDetails: true,\n socialUrls: true,\n }),\n )\n .pipe(\n map((ag: AccountGroup) => ({\n businessId: ag?.accountGroupId,\n name: ag?.napData?.companyName,\n partnerId: ag?.externalIdentifiers?.partnerId,\n marketId: ag?.externalIdentifiers?.marketId,\n streetAddress: ag?.napData?.address,\n city: ag?.napData?.city,\n state: ag?.napData?.state,\n countryCode: ag?.napData?.country,\n zip: ag?.napData?.zip,\n phoneNumber: ag?.contactDetails?.phoneNumber,\n website: ag?.napData?.website,\n serviceCategories: ag?.legacyProductDetails?.shareOfVoiceService || [],\n socialUrls: ag?.socialUrls,\n vCategories: ag?.externalIdentifiers?.vCategoryIds || [],\n })),\n );\n }\n\n public getBusinessDataUrl(businessId: string, isEdit: boolean): string {\n return isEdit ? ACCOUNT_INFO_EDIT(businessId) : ACCOUNT_INFO(businessId);\n }\n\n public getAccountTags(businessId: string): Observable {\n return this.accountGroupSdk\n .get(\n businessId,\n new ProjectionFilter({\n accountGroupExternalIdentifiers: true,\n }),\n )\n .pipe(\n map((ag: AccountGroup) => {\n return ag?.externalIdentifiers?.tags.map((t) => { value: t, name: t }) || [];\n }),\n shareReplay(1),\n );\n }\n\n public getMarketName(partnerId: string, marketId: string): Observable {\n return this.branding.getBranding(partnerId, marketId).pipe(\n map((branding) => {\n return branding?.name || '';\n }),\n );\n }\n\n canEditCustomerIdentifier(): Observable {\n return of(true);\n }\n\n canEditCustomFields(): Observable {\n return of(true);\n }\n}\n", "import { Inject, inject, Injectable } from '@angular/core';\nimport { CrmFieldService, PlatformExtensionFieldIds } from '@galaxy/crm/static';\nimport { CRMCompanyApiService, CrmObject, GetMultiCrmObjectRequest } from '@vendasta/crm';\nimport { CreateAccountGroupForCompanyStatus, PlatformApiService } from '@vendasta/crm-integrations';\nimport { switchWhenFalsy } from '@vendasta/rx-utils';\nimport { ObservableWorkStateMap } from '@vendasta/rx-utils/work-state';\nimport { Observable, of, ReplaySubject } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, map, retry, switchMap, take, tap } from 'rxjs/operators';\n\nexport interface CreateAccountGroupResponse {\n accountGroupId: string;\n}\n\n@Injectable()\nexport class CompanyAccountService {\n private readonly companyAPIService = inject(CRMCompanyApiService);\n private readonly platformApiService = inject(PlatformApiService);\n private readonly crmFieldService = inject(CrmFieldService);\n\n private readonly createAccountGroupState = new ObservableWorkStateMap();\n private readonly accountGroupId$$ = new ReplaySubject(1);\n accountGroupId$ = this.accountGroupId$$.asObservable().pipe(distinctUntilChanged());\n\n constructor(@Inject('PARTNER_ID') private readonly partnerId$: Observable) {}\n\n setAccountGroupId(accountGroupId: string): void {\n this.accountGroupId$$.next(accountGroupId);\n }\n\n getCompany$(companyId: string): Observable {\n if (!companyId) {\n console.error('No company ID provided.');\n return of(null);\n }\n\n return this.partnerId$.pipe(\n switchMap((id) => {\n const req = {\n namespace: id,\n crmObjectIds: [companyId],\n };\n return this.companyAPIService.getMultiCompany(req);\n }),\n catchError((err) => {\n console.error('Error fetching company', err);\n return of(null);\n }),\n map((resp) => {\n return resp?.crmObjects?.[0];\n }),\n );\n }\n\n /**\n * Returns the AccountGroupID for the company.\n * If the company does not have an AccountGroup, one will be created and the AccountGroupID will be emitted to `accountGroupID$$`.\n */\n fetchAccountGroupId$(companyId: string): Observable {\n const companyAccountGroupId$ = this.getCompany$(companyId).pipe(\n map((company) => {\n return this.crmFieldService.getFieldValueFromCrmObject(company, PlatformExtensionFieldIds.AccountGroupID)\n ?.stringValue;\n }),\n );\n const createAccountGroup$ = this.partnerId$.pipe(\n switchMap((partnerId) => this.doCreateAccountGroup(companyId, partnerId)),\n map((res) => res?.accountGroupId),\n );\n return this.accountGroupId$$.pipe(\n switchWhenFalsy(companyAccountGroupId$),\n take(1),\n switchMap((accountGroupId) => {\n return accountGroupId ? of(accountGroupId) : createAccountGroup$;\n }),\n tap((id) => (id ? this.accountGroupId$$.next(id) : null)),\n );\n }\n\n createAccountGroupSuccess$(companyId: string): Observable {\n return this.createAccountGroupState.isSuccess$(companyId);\n }\n\n createAccountGroupLoading$(companyId: string): Observable {\n return this.createAccountGroupState.isLoading$(companyId);\n }\n\n createAccountGroupResult$(companyId: string): Observable {\n return this.createAccountGroupLoading$(companyId).pipe(\n filter((loading) => !loading),\n switchMap(() => this.createAccountGroupSuccess$(companyId)),\n switchMap((success) => (success ? this.createAccountGroupState.getWorkResults$(companyId) : of(null))),\n );\n }\n\n doCreateAccountGroup(companyId: string, namespace: string): Observable {\n const work$ = this.createAccountGroupForCompany(companyId, namespace);\n this.createAccountGroupState.startWork(companyId, work$);\n return this.createAccountGroupResult$(companyId);\n }\n\n private createAccountGroupForCompany(companyId: string, namespace: string): Observable {\n const create$ = this.platformApiService\n .createAccountGroupForCompany({ companyId, namespace })\n .pipe(map((res) => res.ok));\n const watch$ = this.platformApiService.getCreateAccountGroupForCompanyStatus({ companyId, namespace }).pipe(\n map((accountStatus) => {\n switch (accountStatus?.status) {\n case CreateAccountGroupForCompanyStatus.CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED:\n return { accountGroupId: accountStatus.accountGroupId } as CreateAccountGroupResponse;\n case CreateAccountGroupForCompanyStatus.CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED:\n return null as CreateAccountGroupResponse;\n default:\n throw null;\n }\n }),\n retry({ delay: 1000, count: 30 }),\n );\n return create$.pipe(\n take(1),\n switchMap((res) => (res ? watch$ : of(null))),\n );\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { ScorecardModule } from '@galaxy/snapshot';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { ObservableWorkStateMap } from '@vendasta/rx-utils/work-state';\nimport { BehaviorSubject, firstValueFrom, interval, Observable, retry, take } from 'rxjs';\nimport { getImageSrc } from '../../../core/images';\nimport { CurrentSnapshot, SnapshotService } from '../../../core/snapshot.service';\nimport { SnapshotSidepanelComponentInputs, SnapshotSidepanelService } from './snapshot-sidepanel.service';\n\nexport interface CreateSnapshotParams {\n partnerId: string;\n origin: string;\n accountGroupId: string;\n companyId: string;\n}\n\n@Component({\n selector: 'app-snapshot-sidepanel',\n imports: [\n GalaxyEmptyStateModule,\n MatToolbarModule,\n MatButtonModule,\n CommonModule,\n TranslateModule,\n ScorecardModule,\n GalaxyLoadingSpinnerModule,\n ],\n standalone: true,\n templateUrl: './snapshot-sidepanel.component.html',\n styleUrls: ['./snapshot-sidepanel.component.scss'],\n})\nexport class SnapshotSidepanelComponent implements OnDestroy {\n companyId: string;\n partnerId?: string;\n trackingCategory?: string;\n snapshotName?: string;\n emptyStateImage = getImageSrc('images/empty-state/crm-snapshot-empty-state.svg');\n\n accountGroupId$: Observable;\n private readonly snapshotId$$ = new BehaviorSubject(null);\n snapshotId$ = this.snapshotId$$.asObservable();\n public loading$: Observable;\n private readonly currentSnapshot = new ObservableWorkStateMap();\n\n private readonly createButtonLoading$$ = new BehaviorSubject(false);\n public createButtonLoading$ = this.createButtonLoading$$.asObservable();\n\n private readonly subscriptions = SubscriptionList.new();\n hasEditAccess$: Observable;\n\n constructor(\n private readonly snapshotSidepanelService: SnapshotSidepanelService,\n private readonly snapshotService: SnapshotService,\n ) {\n this.accountGroupId$ = this.snapshotSidepanelService.accountGroupId$;\n this.hasEditAccess$ = this.snapshotService.partnerHasAccessToSnapshotEditing();\n }\n\n public setInputs(inputs: SnapshotSidepanelComponentInputs) {\n this.companyId = inputs.companyID;\n this.partnerId = inputs.partnerID;\n this.trackingCategory = inputs.trackingCategory;\n this.snapshotName = inputs.snapshotName;\n this.getCurrentSnapshot();\n }\n\n public getCurrentSnapshot() {\n const currentSnapshot$ = this.snapshotSidepanelService.getCurrentSnapshot$(this.partnerId, this.companyId);\n this.currentSnapshot.startWork(this.companyId, currentSnapshot$);\n this.loading$ = this.currentSnapshot.isLoading$(this.companyId);\n this.currentSnapshot\n .getWorkResults$(this.companyId)\n .pipe(take(1))\n .subscribe({\n next: (snapshot) => {\n if (snapshot) {\n this.snapshotId$$.next(snapshot.snapshotID);\n }\n },\n });\n }\n\n public async createSnapshotClicked() {\n this.createButtonLoading$$.next(true);\n const accountGroupId = await firstValueFrom(this.accountGroupId$);\n const createSnapshotRequest: CreateSnapshotParams = {\n partnerId: this.partnerId,\n origin: this.trackingCategory,\n accountGroupId: accountGroupId,\n companyId: this.companyId,\n };\n\n const work$ = this.snapshotSidepanelService.createSnapshot(createSnapshotRequest);\n work$.pipe(take(1)).subscribe({\n next: (snapshotId) => {\n if (snapshotId) {\n this.getCurrentSnapshotWithRetry();\n this.snapshotService.showCreateSnapshotSuccessMessage();\n } else {\n this.createButtonLoading$$.next(false);\n }\n },\n error: () => {\n this.snapshotService.showCreateSnapshotErrorMessage();\n this.createButtonLoading$$.next(false);\n },\n });\n }\n\n private getCurrentSnapshotWithRetry() {\n const notifier$ = interval(2000);\n const currentSnapshot$ = this.snapshotSidepanelService.getCurrentSnapshot$(this.partnerId, this.companyId);\n this.subscriptions.add(currentSnapshot$.pipe(retry({ delay: () => notifier$, count: 30 })), (snapshot) => {\n if (snapshot) {\n this.snapshotId$$.next(snapshot.snapshotID);\n this.createButtonLoading$$.next(false);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.subscriptions.destroy();\n }\n}\n", "
\n \n
\n\n\n
\n \n
\n
\n\n\n
\n \n \n \n \n \n {{ 'SNAPSHOT_REPORT.EMPTY_STATE.TITLE' | translate : { snapshotName } }}\n \n

{{ 'SNAPSHOT_REPORT.EMPTY_STATE.DESCRIPTION' | translate }}

\n \n
\n \n \n \n
\n
\n
\n
\n
\n\n\n \n\n", "import { Injectable } from '@angular/core';\nimport { PlatformExtensionFieldIds, SidepanelService } from '@galaxy/crm/static';\nimport { CRMCompanyApiService, GetMultiCrmObjectRequest } from '@vendasta/crm';\nimport { BehaviorSubject, filter, map, Observable, of, switchMap, take } from 'rxjs';\nimport { CurrentSnapshot, SnapshotService } from '../../../core/snapshot.service';\nimport { CompanyAccountService } from '../../company-account.service';\nimport { CreateSnapshotParams, SnapshotSidepanelComponent } from './snapshot-sidepanel.component';\n\nexport interface SnapshotSidepanelInputs {\n serviceInputs: SnapshotSidepanelServiceInputs;\n componentInputs: SnapshotSidepanelComponentInputs;\n}\n\nexport interface SnapshotSidepanelServiceInputs {\n accountGroupID: string;\n}\n\nexport interface SnapshotSidepanelComponentInputs {\n companyID: string;\n partnerID: string;\n snapshotName: string;\n trackingCategory: string;\n}\n\n@Injectable()\nexport class SnapshotSidepanelService {\n private readonly accountGroupId$$ = new BehaviorSubject(null);\n accountGroupId$ = this.accountGroupId$$.asObservable();\n private readonly snapshotId$$ = new BehaviorSubject(null);\n snapshotId$ = this.snapshotId$$.asObservable();\n\n constructor(\n private sidepanelService: SidepanelService,\n private readonly snapshotService: SnapshotService,\n private readonly companyService: CRMCompanyApiService,\n private readonly accountCreationService: CompanyAccountService,\n ) {}\n\n openSidepanel(snapshotSidepanelInputs: SnapshotSidepanelInputs): void {\n const ref = this.sidepanelService.openSidepanel(SnapshotSidepanelComponent);\n ref?.instance?.setInputs(snapshotSidepanelInputs.componentInputs);\n this.accountGroupId$$.next(snapshotSidepanelInputs.serviceInputs.accountGroupID);\n this.sidepanelService.setHeaderTitle(snapshotSidepanelInputs.componentInputs.snapshotName);\n }\n\n closeSidepanel(): void {\n this.sidepanelService.closeSidepanel();\n }\n\n createSnapshot(req: CreateSnapshotParams): Observable {\n const upToDateAccountGroupId$ = req.accountGroupId\n ? of(req.accountGroupId)\n : this.fetchAccountGroupId$(req.companyId, req.partnerId);\n\n const work$ = upToDateAccountGroupId$.pipe(\n take(1),\n switchMap((accountGroupId) => {\n req.accountGroupId = accountGroupId;\n\n const newSnapshot$ = this.snapshotService.createCompanySnapshot(req);\n return newSnapshot$;\n }),\n );\n return work$;\n }\n\n private fetchAccountGroupId$(companyId: string, partnerId: string): Observable {\n const createAccountGroup$ = this.accountCreationService.doCreateAccountGroup(companyId, partnerId).pipe(\n map((res) => {\n const accountGroupId = res?.accountGroupId;\n if (accountGroupId) {\n this.accountGroupId$$.next(accountGroupId);\n }\n return accountGroupId;\n }),\n );\n return this.accountGroupId$$.pipe(\n take(1),\n switchMap((accountGroupId) => {\n return accountGroupId ? of(accountGroupId) : createAccountGroup$;\n }),\n );\n }\n\n getCurrentSnapshot$(partnerId: string, companyId: string): Observable {\n return this.companyService\n .getMultiCompany({\n namespace: partnerId,\n crmObjectIds: [companyId],\n } as GetMultiCrmObjectRequest)\n .pipe(\n take(1),\n switchMap((res) => {\n const currentAGID = res?.crmObjects?.[0].fields.find(\n (field) => field.fieldId === PlatformExtensionFieldIds.AccountGroupID,\n );\n\n if (!currentAGID) {\n return of(null);\n }\n this.accountGroupId$$.next(currentAGID.stringValue);\n this.snapshotService.getCurrentSnapshotV2$(currentAGID.stringValue);\n return this.snapshotService.currentSnapshotLoading$(currentAGID.stringValue).pipe(\n filter((loading) => !loading),\n switchMap(() => {\n return this.snapshotService.getCurrentSnapshotSuccess$(currentAGID.stringValue);\n }),\n switchMap((success) => {\n return success ? this.snapshotService.getCurrentSnapshotUpdates$(currentAGID.stringValue) : of(null);\n }),\n );\n }),\n );\n }\n}\n", "import { inject, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Observable, take } from 'rxjs';\nimport { AccessRestrictedDialogComponent } from '../access/access-dialog.component';\nimport { StubAccessService } from '../core/access/access.service';\nimport { Feature } from 'marketplace-ui';\n\n@Injectable()\nexport class FeatureAccessService {\n private accessService = inject(StubAccessService);\n private dialog = inject(MatDialog);\n private dialogRef = inject(MatDialogRef);\n\n public hasAccessToFeature(feature: Feature): Observable {\n return this.accessService.hasAccessToFeature(feature);\n }\n\n public openRestrictedDialog(featureId: string): void {\n this.dialog.closeAll();\n this.dialogRef = this.dialog.open(AccessRestrictedDialogComponent, {\n width: '710px', // same width used for the modal in the ManageAccountsComponent\n maxWidth: '90vw',\n data: { featureId: featureId },\n });\n\n this.dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => (this.dialogRef = null));\n }\n}\n", "import { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\nexport interface DialogData {\n title: string;\n content: string;\n}\n\n@Component({\n selector: 'app-crm-remove-access-business-app',\n templateUrl: './remove-modal.component.html',\n styleUrls: ['./remove-modal.component.scss'],\n imports: [CommonModule, TranslateModule, MatButtonModule, MatDialogModule, AsyncPipe],\n standalone: true,\n})\nexport class RemoveModalComponent {\n title: string;\n content: string;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private dialogRef: MatDialogRef,\n ) {\n this.title = data.title;\n this.content = data.content;\n }\n\n onConfirmClick() {\n this.dialogRef.close(true);\n }\n}\n", "

\n {{ title }}\n

\n\n

{{ content }}

\n
\n\n \n \n {{ 'COMMON.ACTION_LABELS.REMOVE' | translate }}\n \n\n", "import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n BrandingService,\n CardAction,\n CrmFieldService,\n CrmObjectService,\n CrmPlatformApiService,\n PlatformExtensionFieldIds,\n} from '@galaxy/crm/static';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AddContactAsIamUserForCompanyStatus } from '@vendasta/crm-integrations';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { IAMService, User, UserIdentifier } from '@vendasta/iamv2';\nimport { BehaviorSubject, Observable, Subject, combineLatest, interval, map, of, retry, take } from 'rxjs';\nimport { filter, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { RemoveModalComponent } from './remove-modal/remove-modal.component';\n\nexport interface AppAccess {\n hasBusinessAppAccess$$: Subject;\n hasBusinessAppAccess$: Observable;\n desiredBusinessAppAccess$$: Subject;\n actions$: Observable;\n}\n\n@Injectable()\nexport class AccessBusinessAppService {\n businessAppName$: Observable;\n\n constructor(\n private readonly iamService: IAMService,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly brandingService: BrandingService,\n private readonly platformService: CrmPlatformApiService,\n private readonly translateService: TranslateService,\n private readonly snackService: SnackbarService,\n ) {\n this.businessAppName$ = this.brandingService.getBusinessAppName();\n }\n\n addContactAsIAMUser(contactId: string, companyId: string): Observable {\n return this.platformService.addContactAsIamUserForCompany(contactId, companyId).pipe(\n map((response) => {\n if (!response) {\n return AddContactAsIamUserForCompanyStatus.ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_INVALID;\n } else if (\n response === AddContactAsIamUserForCompanyStatus.ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED\n ) {\n // success. Stop retrying.\n return response;\n } else if (response === AddContactAsIamUserForCompanyStatus.ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_FAILED) {\n // failure. Stop retrying.\n return response;\n }\n // throw error to poll again\n throw false;\n }),\n retry({ delay: 1000 }),\n );\n }\n\n removeContactAsIAMUser(contactId: string, companyId: string): Observable {\n return this.platformService.removeContactAsIamUserForCompany(contactId, companyId);\n }\n\n getLastLogin(contactId: string): Observable {\n const user$ = this.objectService.getMultiObject('Contact', [contactId]).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.fieldService.getFieldValueFromCrmObject(object, PlatformExtensionFieldIds.UserID)?.stringValue;\n }),\n switchMap((userId) => {\n if (!userId) {\n return of(undefined);\n }\n return this.iamService.getUser(new UserIdentifier({ userId }));\n }),\n );\n\n return user$.pipe(\n switchMap((user: User) => {\n const lastLogin = user?.lastLogin;\n if (lastLogin && lastLogin.getFullYear() > 0) {\n return of(lastLogin.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric' }));\n }\n return of(this.translateService.instant('ASSOCIATIONS.COMPANY.NEVER_LOGGED_IN'));\n }),\n );\n }\n\n hasAccess(contactId: string, companyId: string): Observable {\n return this.platformService.isContactIamUserForCompany(contactId, companyId).pipe(\n map((response) => {\n return response;\n }),\n take(1),\n );\n }\n\n getAppAccess(dialog: MatDialog, contactId: string, companyId: string, contactName, companyName): AppAccess {\n const desiredAccess$$ = new BehaviorSubject(null);\n const hasBusinessAppAccess$$ = new BehaviorSubject(null);\n const hasBusinessAppAccess$ = combineLatest([\n interval(2000),\n hasBusinessAppAccess$$.asObservable(),\n desiredAccess$$.asObservable(),\n ]).pipe(\n filter(([_, hasAccess, desired]) => {\n return hasAccess === null || hasAccess !== desired;\n }),\n switchMap(() => {\n return this.hasAccess(contactId, companyId);\n }),\n tap((hasAccess) => {\n hasBusinessAppAccess$$?.next(hasAccess);\n if (desiredAccess$$.getValue() === null) {\n desiredAccess$$?.next(hasAccess);\n }\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n const actions$ = combineLatest([hasBusinessAppAccess$, this.businessAppName$]).pipe(\n map(([hasAccess, businessAppName]) => {\n if (hasAccess) {\n return [\n {\n label: this.translateService.instant(\n 'CRM.ASSOCIATION_PANEL.CONTACTS.REMOVE_CONTACT_AS_BUSINESS_APP_USER.ACTION',\n { businessAppName: businessAppName },\n ),\n callback: () => {\n dialog\n .open(RemoveModalComponent, {\n width: '560px',\n data: {\n title: this.translateService.instant(\n 'CRM.ASSOCIATION_PANEL.CONTACTS.REMOVE_CONTACT_AS_BUSINESS_APP_USER.DIALOG_TITLE',\n { businessAppName: businessAppName },\n ),\n content: this.translateService.instant(\n 'CRM.ASSOCIATION_PANEL.CONTACTS.REMOVE_CONTACT_AS_BUSINESS_APP_USER.DIALOG_CONTENT',\n { contactName: contactName, companyName: companyName },\n ),\n },\n })\n .afterClosed()\n .subscribe((confirmed) => {\n if (confirmed) {\n this.removeContactAsIAMUser(contactId, companyId).subscribe({\n next: () => {\n const translatedString = this.translateService.instant(\n 'CRM.ASSOCIATION_PANEL.CONTACTS.REMOVE_CONTACT_AS_BUSINESS_APP_USER.SUCCESS',\n {\n contactName: contactName,\n companyName: companyName,\n },\n );\n this.snackService.openSuccessSnack(translatedString);\n desiredAccess$$.next(false);\n },\n error: (err) => {\n console.error(err);\n const translatedString = this.translateService.instant(\n 'CRM.ASSOCIATION_PANEL.CONTACTS.REMOVE_CONTACT_AS_BUSINESS_APP_USER.ERROR',\n {\n contactName: contactName,\n companyName: companyName,\n },\n );\n this.snackService.openErrorSnack(translatedString);\n },\n });\n }\n });\n },\n },\n ];\n }\n return [];\n }),\n );\n return {\n actions$: actions$,\n desiredBusinessAppAccess$$: desiredAccess$$,\n hasBusinessAppAccess$: hasBusinessAppAccess$,\n hasBusinessAppAccess$$: hasBusinessAppAccess$$,\n };\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonAssociationCardContentComponent } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\nexport interface DialogData {\n name: string;\n companyName: string;\n businessAppName$: Observable;\n}\n\n@Component({\n selector: 'app-crm-invite-to-business-app',\n templateUrl: './invite-to-business-app.component.html',\n styleUrls: ['./invite-to-business-app.component.scss'],\n imports: [\n CommonModule,\n MatIconModule,\n CommonAssociationCardContentComponent,\n MatCardModule,\n MatButtonModule,\n MatDialogModule,\n TranslateModule,\n ],\n standalone: true,\n})\nexport class InviteToBusinessAppComponent {\n contactName: string;\n companyName: string;\n businessAppName$: Observable;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n ) {\n this.contactName = data.name;\n this.companyName = data.companyName;\n this.businessAppName$ = data.businessAppName$;\n }\n\n invite(): void {\n this.dialogRef.close(true);\n }\n\n close(): void {\n this.dialogRef.close(false);\n }\n}\n", "\n \n \n {{\n 'ASSOCIATIONS.APP_ACCESS_MODAL.TITLE'\n | translate : { contactName: contactName, companyName: companyName, appName: businessAppName$ | async }\n }}\n \n \n \n
\n {{\n 'ASSOCIATIONS.APP_ACCESS_MODAL.DESCRIPTION'\n | translate : { contactName: contactName, companyName: companyName, appName: businessAppName$ | async }\n }}\n
\n \n
\n \n \n \n \n
\n", "import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit, signal } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { BrandingService, CommonAssociationCardContentComponent, CrmPlatformApiService } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AddContactAsIamUserForCompanyStatus } from '@vendasta/crm-integrations';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, Subject } from 'rxjs';\nimport { AccessBusinessAppService } from './access-business-app.service';\nimport { InviteToBusinessAppComponent } from './invite-to-business-app/invite-to-business-app.component';\n\n@Component({\n selector: 'app-crm-access-business-app',\n templateUrl: './access-business-app.component.html',\n styleUrls: ['./access-business-app.component.scss'],\n imports: [\n CommonModule,\n MatIconModule,\n CommonAssociationCardContentComponent,\n TranslateModule,\n MatProgressSpinnerModule,\n ],\n providers: [AccessBusinessAppService, BrandingService, CrmPlatformApiService],\n standalone: true,\n})\nexport class AccessBusinessAppComponent implements OnInit {\n lastLogin$: Observable;\n businessAppName$: Observable;\n loading = signal(false);\n\n @Input({ required: true }) companyId: string;\n @Input({ required: true }) contactId: string;\n @Input({ required: true }) contactName: string;\n @Input({ required: true }) companyName: string;\n @Input({ required: true }) hasAccess: boolean;\n @Input({ required: true }) desiredAccess$$: Subject;\n\n constructor(\n private readonly platformService: CrmPlatformApiService,\n private readonly snackbarService: SnackbarService,\n private readonly accessBusinessAppService: AccessBusinessAppService,\n public dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.businessAppName$ = this.accessBusinessAppService.businessAppName$;\n this.lastLogin$ = this.accessBusinessAppService.getLastLogin(this.contactId);\n }\n\n inviteUserToApp(): void {\n this.dialog\n .open(InviteToBusinessAppComponent, {\n width: '560px',\n data: {\n name: this.contactName,\n companyName: this.companyName,\n businessAppName$: this.businessAppName$,\n },\n })\n .afterClosed()\n .subscribe((confirmed) => {\n if (confirmed) {\n this.loading.set(true);\n this.accessBusinessAppService.addContactAsIAMUser(this.contactId, this.companyId).subscribe((response) => {\n if (response === AddContactAsIamUserForCompanyStatus.ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED) {\n // success. Stop retrying.\n this.loading.set(false);\n this.desiredAccess$$.next(true);\n this.snackbarService.openSuccessSnack('ASSOCIATIONS.APP_ACCESS_MODAL.SUCCESS');\n } else {\n // failure. Stop retrying.\n this.loading.set(false);\n this.snackbarService.openErrorSnack('ASSOCIATIONS.APP_ACCESS_MODAL.ERROR');\n }\n });\n }\n });\n }\n}\n\nexport { AccessBusinessAppService };\n", "\n \n \n {{ 'ASSOCIATIONS.COMPANY.INVITE' | translate : { appName: businessAppName$ | async } }}\n \n \n \n
\n {{ 'ASSOCIATIONS.COMPANY.LAST_LOGIN_DATE' | translate : { lastLoginDate: lastLogin } }}\n
\n
\n \n
\n
\n
\n\n\n \n\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from '../../../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../../constants';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n ],\n})\nexport class AssociationPanelModule {}\n", "import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport {\n AssociationCardComponent,\n BrandingService,\n CardAction,\n CardData,\n COMPANY_PROFILE_CARD_DATA_TOKEN,\n CrmPlatformApiService,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '@galaxy/crm/static';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, firstValueFrom, Observable, of, throwError } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { BusinessCenterService } from '../../../../core/business-center.service';\nimport { CompanyAccountService } from '../../../company-account.service';\nimport { AccessBusinessAppService } from '../../../profile-cards/association-cards/access-business-app/access-business-app.component';\nimport { AssociationPanelModule } from '../association-panel.module';\nimport { AppConfigService } from '../../../../../app/app-config.service';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nconst ACCOUNT_GROUP_ROUTE = (accountGroupId: string) => `/businesses/accounts/${accountGroupId}/details`;\n\n@Component({\n selector: 'app-associated-account',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatExpansionModule,\n MatCardModule,\n MatIconModule,\n GalaxyBadgeModule,\n MatMenuModule,\n GalaxyLoadingSpinnerModule,\n TranslateModule,\n AssociationPanelModule,\n AssociationCardComponent,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n AccessBusinessAppService,\n BrandingService,\n CrmPlatformApiService,\n AccountGroupService,\n TranslateService,\n ],\n templateUrl: './associated-account.component.html',\n styleUrls: ['./associated-account.component.scss'],\n})\nexport class AssociatedAccountComponent {\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n\n private companyAccountService = inject(CompanyAccountService);\n private accountGroupService = inject(AccountGroupService);\n private businessCenterService = inject(BusinessCenterService);\n private translateService = inject(TranslateService);\n private readonly snackbarService = inject(SnackbarService);\n private readonly appConfigService = inject(AppConfigService);\n\n private readonly showPanel$$ = new BehaviorSubject(false);\n protected showPanel$ = this.showPanel$$.asObservable();\n isAccountGroupLoading = toSignal(this.companyAccountService.createAccountGroupLoading$(this.data.company_id));\n accountGroupId$: Observable = this.companyAccountService.accountGroupId$;\n private accountGroup$: Observable = this.accountGroupId$.pipe(\n distinctUntilChanged(),\n switchMap((accountGroupId) => {\n if (!accountGroupId) {\n return of(null);\n }\n\n return this.accountGroupService.get(\n accountGroupId,\n new ProjectionFilter({\n napData: true,\n accountGroupExternalIdentifiers: true,\n }),\n );\n }),\n catchError((error: HttpErrorResponse) => {\n if (error.status !== 403) {\n this.showPanel$$.next(true);\n }\n return throwError(() => error);\n }),\n shareReplay(1),\n );\n accountGroupInfo$: Observable = this.accountGroup$.pipe(\n filter((accountGroup) => accountGroup !== null),\n map((accountGroup) => {\n const accountGroupId = accountGroup?.accountGroupId ?? '';\n return {\n type: 'account',\n accountGroupCompanyId: accountGroupId,\n accountGroupCompanyName: accountGroup?.napData?.companyName ?? '',\n profileButtonUrl: this.appConfigService.config?.userCanAccessAccounts\n ? ACCOUNT_GROUP_ROUTE(accountGroupId)\n : '',\n hideAvatar: true,\n };\n }),\n );\n accountGroupActions$: Observable = this.accountGroup$.pipe(\n filter((accountGroup) => accountGroup !== null),\n switchMap((accountGroup) => {\n const accountGroupId = accountGroup?.accountGroupId ?? '';\n return this.businessCenterService\n .getVBCEntryUrl(accountGroupId)\n .pipe(map((vbcEntryInfo) => ({ accountGroup, vbcEntryInfo })));\n }),\n map(({ accountGroup, vbcEntryInfo }) => {\n const accountGroupId = accountGroup?.accountGroupId ?? '';\n return [\n {\n label: this.translateService.instant('ASSOCIATIONS.ACCOUNT.OPEN_BUSINESS_APP') + ' ' + vbcEntryInfo.name,\n callback: () => {\n this.businessCenterService\n .getVBCEntryUrl(accountGroupId)\n .pipe(take(1))\n .subscribe((vbcEntryInfo) => {\n window.open(vbcEntryInfo.url, '_blank');\n });\n },\n },\n ];\n }),\n );\n\n constructor() {\n this.companyAccountService.setAccountGroupId(this.data.account_group_id ?? '');\n this.accountGroup$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.showPanel$$.next(true);\n });\n }\n\n createAccount() {\n if (this.data.account_group_id) {\n this.companyAccountService.setAccountGroupId(this.data.account_group_id);\n return;\n }\n const companyId = this.data.company_id;\n firstValueFrom(this.companyAccountService.fetchAccountGroupId$(companyId)).then((accountGroupId) => {\n if (accountGroupId) {\n this.companyAccountService.setAccountGroupId(accountGroupId);\n } else {\n this.snackbarService.openErrorSnack('CRM.ERROR.ACCOUNT_GROUP_CREATION_FAILED');\n }\n });\n }\n}\n", "@if (showPanel$ | async) {\n \n \n {{ 'ASSOCIATIONS.ACCOUNT.TITLE' | translate }}\n \n \n \n \n \n\n \n \n \n\n \n \n \n add\n {{ 'ASSOCIATIONS.ACCOUNT.CREATE_ACCOUNT' | translate }}\n \n

{{ 'ASSOCIATIONS.ACCOUNT.CREATE_DESCRIPTION' | translate }}

\n
\n
\n}\n", "import { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN, SidePanelContentService } from '@galaxy/crm/static';\nimport { WhitelabelService } from '@galaxy/partner';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { Pipeline, PreferredCurrencyModule, USER_PIPELINES_TOKEN } from '@vendasta/sales-common';\nimport {\n ListOpportunitiesFilters,\n ListOpportunitiesRequestSortField,\n ListOpportunitiesResponse,\n Opportunity,\n SalesOpportunitiesSdk,\n SalesOpportunitiesService,\n SortDirection,\n StageInterface,\n} from '@vendasta/sales-opportunities';\nimport {\n CreateOpportunityComponent,\n CreateOpportunityPageData,\n CreateOpportunityService,\n MARKET_ID_OVERRIDE_TOKEN,\n OpportunityBusinessService,\n OpportunityDetailsComponent,\n OpportunityService,\n OpportunitySidePanelEventsService,\n} from '@vendasta/sales-ui';\nimport { combineLatest, iif, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, take } from 'rxjs/operators';\nimport { CompanyAccountService } from '../../../company-account.service';\n\nexport const defaultCurrency = 'USD';\n\n@Component({\n selector: 'app-opportunities',\n standalone: true,\n imports: [\n CommonModule,\n MatExpansionModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatCardModule,\n MatButtonModule,\n PreferredCurrencyModule,\n GalaxyBadgeModule,\n GalaxyTooltipModule,\n ],\n templateUrl: './opportunities.component.html',\n styleUrls: ['../association-panel-base-styles.component.scss'],\n})\nexport class OpportunitiesComponent implements OnInit {\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n private readonly opportunitiesPerPage = 5;\n private readonly subscriptions = SubscriptionList.new();\n protected opportunities$: Observable;\n protected currency$: Observable;\n protected creatingAccountGroup$: Observable;\n protected createBtnDisabled$: Observable;\n protected accountGroupId$ = this.accountCreationService.accountGroupId$;\n private marketId$ = this.accountGroupId$.pipe(\n switchMap((id) => {\n const emptyMarket$ = of('');\n const accountGroupMarket$ = this.accountGroupService\n .get(\n id,\n new ProjectionFilter({\n napData: true,\n accountGroupExternalIdentifiers: true,\n }),\n )\n .pipe(map((ag) => ag?.externalIdentifiers?.marketId ?? 'default'));\n\n return iif(() => id === '', emptyMarket$, accountGroupMarket$);\n }),\n );\n\n constructor(\n @Inject(SalesOpportunitiesService) private readonly opportunityApi: SalesOpportunitiesSdk,\n private readonly whitelabelService: WhitelabelService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private readonly content: SidePanelContentService,\n private readonly opportunityService: OpportunityService,\n private readonly sidePanelEvents: OpportunitySidePanelEventsService,\n private readonly accountCreationService: CompanyAccountService,\n private readonly businessService: OpportunityBusinessService,\n private readonly createOpportunityService: CreateOpportunityService,\n private readonly accountGroupService: AccountGroupService,\n private translate: TranslateService,\n @Inject(USER_PIPELINES_TOKEN) protected readonly userPipelines$: Observable,\n private readonly snackbarService: SnackbarService,\n ) {\n this.accountCreationService.setAccountGroupId(this.data.account_group_id ?? '');\n }\n\n ngOnInit(): void {\n this.createBtnDisabled$ = this.opportunityService.hasSalespersonAccess$().pipe(map((sp) => !sp));\n this.setupOpportunityFetching();\n\n this.subscriptions.add(this.sidePanelEvents.sidePanelCloseEvents$, (_) => this.content.clearContent());\n this.creatingAccountGroup$ = this.accountCreationService.createAccountGroupLoading$(this.data.company_id);\n }\n\n private setupOpportunityFetching(): void {\n const sortOption = { field: ListOpportunitiesRequestSortField.LAST_ACTIVITY, direction: SortDirection.DESCENDING };\n\n this.currency$ = combineLatest([this.partnerId$, this.marketId$]).pipe(\n distinctUntilChanged(),\n switchMap(([partnerId, marketId]) => this.whitelabelService.getConfiguration(partnerId, marketId)),\n map((config) => {\n return config?.salesConfiguration?.stDefaultDisplayCurrency || defaultCurrency;\n }),\n );\n\n const listOpportunitiesResponse$ = combineLatest([\n this.partnerId$,\n this.marketId$,\n this.accountGroupId$,\n this.sidePanelEvents.opportunityCreatedEvents$,\n ]).pipe(\n distinctUntilChanged(),\n switchMap(([partnerId, marketId, accountGroupId, _]) => {\n if (!accountGroupId || !partnerId || !marketId) {\n return of(null) as Observable;\n }\n const oppFilter: ListOpportunitiesFilters = {\n accountGroupId: accountGroupId,\n };\n return this.opportunityApi.list(\n partnerId,\n marketId,\n oppFilter,\n sortOption,\n '',\n this.opportunitiesPerPage,\n null,\n ) as Observable;\n }),\n );\n\n this.opportunities$ = combineLatest([\n listOpportunitiesResponse$,\n this.sidePanelEvents.opportunityCreatedEvents$,\n this.accountGroupId$,\n this.userPipelines$,\n ]).pipe(\n map(([response, newOpp, accountGroupID, pipelines]) => {\n if (!response?.results && newOpp?.accountGroupId !== accountGroupID) return [];\n let opps = response?.results || [];\n if (newOpp && this.opportunityMissingFromList(accountGroupID, newOpp, opps)) {\n opps.unshift(newOpp);\n opps = opps.slice(0, this.opportunitiesPerPage);\n }\n return opps.map((opportunity) => this.opportunityToOpportunityDisplay(opportunity, pipelines));\n }),\n );\n\n this.subscriptions.add(this.sidePanelEvents.opportunityCreatedEvents$, (o: Opportunity) => {\n if (o) {\n this.sidePanelEvents.sidePanelCloseRequested();\n }\n });\n }\n\n private opportunityMissingFromList(accountGroupID: string, opportunity: Opportunity, list: Opportunity[]): boolean {\n return (\n opportunity.accountGroupId == accountGroupID &&\n !list.find((opp) => opp.opportunityId === opportunity.opportunityId)\n );\n }\n\n private opportunityToOpportunityDisplay(opportunity: Opportunity, pipelines: Pipeline[]): OpportunityDisplay {\n //to avoid showing default Dec 31, 0000\n const created = opportunity.created?.getUTCFullYear() > 1900 ? opportunity.created : null;\n const lastActivity = opportunity.lastActivityDate?.getUTCFullYear() > 1900 ? opportunity.lastActivityDate : created;\n const expectedClose = opportunity.expectedCloseDate?.getUTCFullYear() > 1900 ? opportunity.expectedCloseDate : null;\n\n let pipelineStage: StageInterface;\n const oppPipeline = pipelines.find((p) => p.id === opportunity.pipelineId);\n if (pipelines.length >= 1 && !oppPipeline) {\n pipelineStage = pipelines[0].findStage(opportunity.probability);\n } else {\n pipelineStage = oppPipeline.findStage(opportunity.probability);\n }\n\n return {\n accountGroupId: opportunity.accountGroupId,\n opportunityId: opportunity.opportunityId,\n name: opportunity.name,\n expectedCloseDate: expectedClose,\n lastActivity: lastActivity,\n value: opportunity.projectedFirstYearValue,\n stage: opportunity.pipelineStage,\n pipelineStage: pipelineStage,\n };\n }\n\n openOpportunityDetails(o: OpportunityDisplay): void {\n this.opportunityService.loadOpportunityAndSetSelected(o.opportunityId, o.accountGroupId);\n this.businessService.loadBusinessAndSetSelected(o.accountGroupId);\n\n const c = new ComponentPortal(OpportunityDetailsComponent);\n this.content.setContent(c);\n }\n\n openCreateOpportunity(): void {\n this.accountCreationService\n .fetchAccountGroupId$(this.data.company_id)\n .pipe(\n take(1),\n switchMap((accountGroupId) => {\n if (accountGroupId) {\n return this.businessService.loadBusinessAndSetSelected(accountGroupId);\n } else {\n throw null;\n }\n }),\n )\n .subscribe({\n next: (business) => {\n if (business) {\n const pageData = {\n sourceLocation: 'company-profile',\n navigateOnSuccess: false,\n } as CreateOpportunityPageData;\n this.createOpportunityService.setCreatePageDetails(pageData);\n const injector = Injector.create({\n providers: [{ provide: MARKET_ID_OVERRIDE_TOKEN, useValue: business.marketId }],\n });\n const c = new ComponentPortal(CreateOpportunityComponent, null, injector);\n this.content.setContent(c);\n }\n },\n error: () => {\n this.snackbarService.openErrorSnack('CRM.ERROR.UNABLE_TO_CREATE_OPPORTUNITY');\n },\n });\n }\n\n getStage(opportunity: OpportunityDisplay): string {\n switch (opportunity?.stage) {\n case 'open':\n return this.translate.instant('CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.OPEN');\n case 'closed-won':\n return this.translate.instant('CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.CLOSED_WON');\n case 'closed-lost':\n return this.translate.instant('CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.CLOSED_LOST');\n default:\n return opportunity?.stage;\n }\n }\n}\n\nclass OpportunityDisplay {\n accountGroupId: string;\n opportunityId: string;\n name: string;\n value: number;\n expectedCloseDate: Date;\n lastActivity: Date;\n stage: string;\n pipelineStage: StageInterface;\n}\n", "\n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.TITLE' | translate }}\n \n\n \n \n \n \n \n \n \n \n {{ opportunity.name }}\n \n \n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.SUBTITLE.VALUE' | translate }}:\n {{ opportunity.value || 0 | formatCurrency : (currency$ | async) }}\n
\n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.TITLE' | translate }}:\n {{ opportunity.pipelineStage.name }}\n
\n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.SUBTITLE.ACTIVITY' | translate }}:\n {{ opportunity.lastActivity !== null ? (opportunity.lastActivity | date : 'mediumDate') : '-' }}\n
\n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.SUBTITLE.CLOSEDATE' | translate }}:\n {{ opportunity.expectedCloseDate !== null ? (opportunity.expectedCloseDate | date : 'mediumDate') : '-' }}\n
\n
\n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.OPEN' | translate }}\n \n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.CLOSED_WON' | translate }}\n \n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.STAGE.CLOSED_LOST' | translate }}\n \n
\n
\n
\n
\n
\n
\n\n\n \n\n\n \n \n {{ 'CRM.ASSOCIATION_PANEL.OPPORTUNITIES.ACTIONS.CREATE' | translate }}\n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, OnDestroy, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN } from '@galaxy/crm/static';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { oneResultFrom, SubscriptionList } from '@vendasta/rx-utils';\nimport { BehaviorSubject, combineLatest, Observable, ReplaySubject, startWith } from 'rxjs';\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport {\n CreateSnapshotRequest,\n CurrentSnapshot,\n SnapshotService,\n SnapshotUrl,\n} from '../../../../core/snapshot.service';\nimport { CompanyAccountService } from '../../../company-account.service';\nimport { AssociationPanelModule } from '../association-panel.module';\n@Component({\n selector: 'app-reports',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatExpansionModule,\n MatCardModule,\n MatIconModule,\n GalaxyBadgeModule,\n MatMenuModule,\n GalaxyLoadingSpinnerModule,\n TranslateModule,\n AssociationPanelModule,\n ],\n templateUrl: './reports.component.html',\n styleUrls: ['../association-panel-base-styles.component.scss'],\n})\nexport class ReportsComponent implements OnInit, OnDestroy {\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n\n private readonly snapshotLookupId$$ = new ReplaySubject(1);\n private readonly snapshotLookupId$ = this.snapshotLookupId$$.pipe(take(1));\n\n private readonly refreshingSnapshot$$: BehaviorSubject = new BehaviorSubject(false);\n private readonly refreshingSnapshot$ = this.refreshingSnapshot$$.asObservable();\n\n private snapshotUrl$: Observable;\n\n snapshotName$: Observable;\n snapshot$: Observable;\n\n snapshotCardReady$: Observable;\n reportCardsReady$: Observable;\n creatingSnapshot$: Observable;\n snapshotLoading$: Observable;\n\n now = new Date();\n\n private readonly subscriptions = SubscriptionList.new();\n accountGroupId$ = this.accountCreationService.accountGroupId$;\n\n constructor(\n private readonly snapshotService: SnapshotService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private readonly snackbarService: SnackbarService,\n private readonly translate: TranslateService,\n private readonly accountCreationService: CompanyAccountService,\n ) {}\n\n ngOnInit(): void {\n this.setupAccountGroupIdFetching();\n this.setupSnapshotFetching();\n this.reportCardsReady$ = combineLatest([this.snapshotCardReady$]).pipe(map((_) => true));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.destroy();\n }\n\n private setupAccountGroupIdFetching(): void {\n this.accountCreationService.setAccountGroupId(this.data.account_group_id ?? '');\n this.snapshotLookupId$$.next(this.data.account_group_id ?? '');\n }\n\n private setupSnapshotFetching(): void {\n this.subscriptions.add(this.accountGroupId$, (id) => {\n this.snapshotService.getCurrentSnapshotV2$(id);\n });\n this.subscriptions.add(this.snapshotLookupId$, (id) => {\n this.snapshotService.fetchSnapshotName(id);\n });\n\n const refresh$ = combineLatest([this.partnerId$, this.accountGroupId$, this.refreshingSnapshot$]).pipe(\n filter(([partnerId, accountGroupId, refreshing]) => !!partnerId && !!accountGroupId && refreshing),\n map(\n ([partnerId, accountGroupId]) =>\n ({\n origin: 'company-profile',\n partnerId,\n accountGroupId,\n }) as CreateSnapshotRequest,\n ),\n switchMap((req) => this.snapshotService.refreshCompanySnapshot(req)),\n );\n\n this.subscriptions.add(refresh$, (refresh) => {\n if (refresh) {\n this.snapshotService.showRefreshSnapshotSuccessMessage();\n } else {\n this.snapshotService.showRefreshSnapshotErrorMessage();\n }\n });\n\n this.snapshot$ = this.accountGroupId$.pipe(switchMap((id) => this.snapshotService.getCurrentSnapshotUpdates$(id)));\n\n this.snapshotName$ = this.snapshotLookupId$.pipe(switchMap((id) => this.snapshotService.getSnapshotName$(id)));\n this.snapshotUrl$ = this.snapshot$.pipe(\n switchMap((snapshot) => this.snapshotService.getSnapshotUrl$(snapshot.snapshotID)),\n shareReplay(1),\n );\n\n const snapshotReady$ = this.accountGroupId$.pipe(\n switchMap((id) => this.snapshotService.currentSnapshotLoading$(id)),\n filter((loading) => loading === false),\n );\n\n this.snapshotLoading$ = this.accountGroupId$.pipe(\n switchMap((id) => this.snapshotService.currentSnapshotLoading$(id)),\n );\n\n this.snapshotCardReady$ = combineLatest([snapshotReady$, this.snapshotName$]).pipe(\n map(() => true),\n startWith(false),\n );\n\n const createSnapshotLoading$ = this.accountGroupId$.pipe(\n distinctUntilChanged(),\n switchMap((id) => this.snapshotService.createSnapshotLoading$(id)),\n );\n this.creatingSnapshot$ = combineLatest([\n this.accountCreationService.createAccountGroupLoading$(this.data.company_id),\n createSnapshotLoading$,\n ]).pipe(map(([accountGroup, snapshot]) => accountGroup || snapshot));\n }\n\n private openSnapshot(url: string) {\n window.open(url, '_blank', 'noopener');\n }\n\n async navToViewSnapshot(): Promise {\n await oneResultFrom(this.snapshotUrl$).then(\n (url: SnapshotUrl) => this.openSnapshot(url.view),\n (_: Error) => {\n const err = this.translate.instant(\n 'CRM.ASSOCIATION_PANEL.REPORTS.SNAPSHOT_REPORT_CARD.ERRORS.UNABLE_TO_GET_URL',\n );\n this.snackbarService.openErrorSnack(err);\n },\n );\n }\n\n async navToEditSnapshot(): Promise {\n await oneResultFrom(this.snapshotUrl$).then(\n (url: SnapshotUrl) => this.openSnapshot(url.edit),\n (_: Error) => {\n const err = this.translate.instant(\n 'CRM.ASSOCIATION_PANEL.REPORTS.SNAPSHOT_REPORT_CARD.ERRORS.UNABLE_TO_GET_URL',\n );\n this.snackbarService.openErrorSnack(err);\n },\n );\n }\n\n refreshSnapshot(): void {\n this.refreshingSnapshot$$.next(true);\n }\n\n createSnapshot(): void {\n const accountGroupId$ = this.accountCreationService.fetchAccountGroupId$(this.data.company_id);\n const work$ = combineLatest([this.partnerId$, accountGroupId$]).pipe(\n map(([partnerId, accountGroupId]) => {\n if (accountGroupId) {\n return {\n origin: 'company-profile',\n partnerId,\n accountGroupId,\n } as CreateSnapshotRequest;\n }\n throw null;\n }),\n switchMap((req) => this.snapshotService.createCompanySnapshot(req)),\n );\n work$.pipe(take(1)).subscribe({\n next: (snapshotId) => {\n if (snapshotId) {\n this.snapshotService.showCreateSnapshotSuccessMessage();\n }\n },\n error: () => this.snapshotService.showCreateSnapshotErrorMessage(),\n });\n }\n}\n", "\n \n {{ 'CRM.ASSOCIATION_PANEL.REPORTS.TITLE' | translate }}\n \n\n \n \n \n \n \n {{ snapshotName$ | async }}\n \n {{ 'CRM.ASSOCIATION_PANEL.REPORTS.SNAPSHOT_REPORT_CARD.CREATED' | translate }}:\n {{ snapshot.created | date : 'mediumDate' }}\n
\n \n \n {{ 'CRM.ASSOCIATION_PANEL.REPORTS.SNAPSHOT_REPORT_CARD.STATUS.EXPIRED' | translate }}\n \n \n \n \n {{ 'CRM.ASSOCIATION_PANEL.REPORTS.SNAPSHOT_REPORT_CARD.STATUS.ACTIVE' | translate }}\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n\n\n \n \n \n \n\n\n\n \n \n \n\n\n\n \n\n\n\n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router } from '@angular/router';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n ListSalesOrderRequestFilters,\n ListSalesOrderRequestSortDirection,\n ListSalesOrderRequestSortField,\n ListSalesOrderRequestSortOption,\n SalesOrdersService,\n Status,\n} from '@vendasta/sales-orders';\nimport { Badge, StatusToBadgeMapping } from '@vendasta/sales-ui';\nimport { BehaviorSubject, combineLatest, firstValueFrom, map, Observable, of, switchMap, take, tap } from 'rxjs';\nimport {\n ALL_SALES_ORDERS,\n buildOrdersPageForBusinessQuery,\n SALES_ORDER_CREATE,\n SALES_ORDER_DETAILS,\n} from '../../../../sales-orders/urls';\nimport { CompanyAccountService } from '../../../company-account.service';\n\ninterface DisplayOrder {\n orderId: string;\n businessId: string;\n badge: Badge;\n requestedActivation: Date;\n}\n\n@Component({\n selector: 'app-sales-orders',\n standalone: true,\n imports: [\n CommonModule,\n MatExpansionModule,\n MatButtonModule,\n GalaxyLoadingSpinnerModule,\n TranslateModule,\n MatIconModule,\n MatCardModule,\n GalaxyBadgeModule,\n ],\n templateUrl: './sales-orders.component.html',\n styleUrls: ['../association-panel-base-styles.component.scss'],\n})\nexport class SalesOrdersComponent implements OnInit {\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n\n accountGroupId$ = this.accountCreationService.accountGroupId$;\n\n protected createSalesOrderButtonLoading$ = this.accountCreationService.createAccountGroupLoading$(\n this.data.company_id,\n );\n protected hasMoreOrders$$: BehaviorSubject = new BehaviorSubject(false);\n protected orders$: Observable;\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private router: Router,\n private readonly accountCreationService: CompanyAccountService,\n private readonly snackbarService: SnackbarService,\n private readonly salesOrdersService: SalesOrdersService,\n ) {}\n\n ngOnInit(): void {\n this.accountCreationService.setAccountGroupId(this.data.account_group_id ?? '');\n this.setupOrdersFetching();\n }\n\n openOrderDetails(order: DisplayOrder): void {\n this.router.navigate([SALES_ORDER_DETAILS(order.businessId, order.orderId)]);\n }\n\n viewMoreOrders(): void {\n this.accountGroupId$.pipe(take(1)).subscribe((accountGroupId) => {\n const params = buildOrdersPageForBusinessQuery(accountGroupId);\n this.router.navigate([ALL_SALES_ORDERS], { queryParams: params });\n });\n }\n\n onCreateSalesOrderButtonClicked(): void {\n firstValueFrom(this.accountCreationService.fetchAccountGroupId$(this.data.company_id)).then((accountGroupId) => {\n if (accountGroupId) {\n this.router.navigate([SALES_ORDER_CREATE(accountGroupId)]);\n } else {\n this.snackbarService.openErrorSnack('CRM.ERROR.UNABLE_TO_CREATE_SALES_ORDER');\n }\n });\n }\n\n private setupOrdersFetching(): void {\n this.orders$ = combineLatest([this.accountGroupId$, this.partnerId$]).pipe(\n switchMap(([accountGroupId, partnerId]) => {\n if (!accountGroupId) {\n return of(null);\n }\n return this.salesOrdersService.list(\n partnerId,\n new ListSalesOrderRequestFilters({ businessId: accountGroupId }),\n new ListSalesOrderRequestSortOption({\n field: ListSalesOrderRequestSortField.CREATED,\n direction: ListSalesOrderRequestSortDirection.DESCENDING,\n }),\n '',\n 5,\n );\n }),\n tap((resp) => this.hasMoreOrders$$.next(resp?.hasMore || false)),\n map((resp) => {\n const results = resp?.results || [];\n return results.map((order) => {\n return {\n businessId: order?.businessId || '',\n orderId: order?.orderId || '',\n badge: StatusToBadgeMapping.get(order?.status || Status.SUBMITTED),\n requestedActivation: order?.requestedActivation,\n } as DisplayOrder;\n });\n }),\n );\n }\n}\n", "\n \n \n {{ 'SALES_ORDERS.ORDERS' | translate }}\n \n \n \n \n \n\n \n \n \n \n {{ order.orderId }}\n \n \n \n \n {{ 'SALES_ORDERS.CONTRACT_START' | translate }}: {{ order.requestedActivation | date }}\n
\n
\n
\n \n {{ order.badge.text | translate }}\n \n
\n
\n
\n \n {{ 'COMMON.ACTION_LABELS.VIEW_MORE' | translate }}\n \n
\n
\n\n\n \n\n\n\n \n add\n {{ 'SALES_ORDERS.CREATE_SALES_ORDER' | translate }}\n \n\n", "import { Inject, Injectable } from '@angular/core';\nimport { CrmDependencies, CrmInjectionToken } from '@galaxy/crm/static';\nimport { Salesperson, SalespersonService, SalesSdk } from '@vendasta/sales';\nimport { PagedResponse } from '@vendasta/sales/lib/salesperson/salesperson.service';\nimport {\n catchError,\n combineLatest,\n expand,\n map,\n Observable,\n of,\n reduce,\n ReplaySubject,\n switchMap,\n take,\n takeWhile,\n withLatestFrom,\n} from 'rxjs';\n\nexport interface SalespersonWithDisplayName extends Salesperson {\n displayName: string;\n}\n\ninterface CachedResult {\n salespersonId: string;\n salesperson: SalespersonWithDisplayName;\n index: number;\n}\n\nexport const salespersonFilterFn = (salesperson: SalespersonWithDisplayName, searchTerm: string): boolean => {\n const includesFullName = salesperson.displayName?.toLowerCase().includes(searchTerm?.toLowerCase());\n const includesFirstName = salesperson.firstName?.toLowerCase().includes(searchTerm?.toLowerCase());\n const includesLastName = salesperson.lastName?.toLowerCase().includes(searchTerm?.toLowerCase());\n const includesSalespersonId = salesperson.salespersonId?.toLowerCase().includes(searchTerm?.toLowerCase());\n const includesUserId = salesperson.userId?.toLowerCase().includes(searchTerm?.toLowerCase());\n const includesEmail = salesperson.email?.toLowerCase().includes(searchTerm?.toLowerCase());\n return (\n includesFullName ||\n includesFirstName ||\n includesLastName ||\n includesUserId ||\n includesSalespersonId ||\n includesEmail\n );\n};\n\nconst convertToReadableSalespeople = (salespeople: Salesperson[]): SalespersonWithDisplayName[] =>\n salespeople.map(\n (salesperson) =>\n ({\n ...salesperson,\n displayName: `${salesperson?.firstName ?? ''} ${salesperson?.lastName ?? ''}`.trim(),\n }) as SalespersonWithDisplayName,\n );\n\n@Injectable({ providedIn: 'root' })\nexport class PartnerCRMSalespersonService {\n allSalespeople$$: ReplaySubject = new ReplaySubject(1);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly crmConfig: CrmDependencies,\n @Inject(SalespersonService) private readonly salespersonService: SalesSdk,\n ) {\n this.crmConfig.namespace$\n .pipe(\n take(1),\n switchMap((namespace) => this.fetchAllSalespeople(namespace)),\n )\n .subscribe((salespeople) => {\n this.allSalespeople$$.next(salespeople);\n });\n }\n\n private fetchSalespeople(\n namespace: string,\n cursor: string,\n pageSize: number,\n ): Observable> {\n return this.salespersonService.listSalespersons({ partnerId: namespace, marketId: '' }, cursor, pageSize);\n }\n\n private fetchAllSalespeople(namespace: string): Observable {\n return this.fetchSalespeople(namespace, '', 500).pipe(\n expand((response) => this.fetchSalespeople(namespace, response.nextCursor, 500)),\n takeWhile((response) => !!response.nextCursor, true),\n reduce((all, { results }) => all.concat(results), []),\n map((salespeople) => convertToReadableSalespeople(salespeople)),\n catchError((error) => {\n console.error(error);\n return of([]);\n }),\n );\n }\n\n getMultiSalesperson(salespersonIds: string[]): Observable {\n const cachedResults$ = this.allSalespeople$$.pipe(\n map((salespeople) => {\n const mappedToCachedSalespeople = salespersonIds.map(\n (id, index) =>\n ({\n salespersonId: id,\n salesperson: salespeople.find((sp) => sp.salespersonId === id) ?? null,\n index,\n }) as CachedResult,\n );\n return mappedToCachedSalespeople;\n }),\n );\n const notFound$ = cachedResults$.pipe(\n map((mappedToCachedSalespeople) => mappedToCachedSalespeople.filter((m) => m.salesperson === null)),\n );\n const notFoundIds$ = notFound$.pipe(map((notFound) => notFound.map((m) => m.salespersonId as string)));\n const notFoundMappings$ = notFound$.pipe(\n map((notFound) => {\n const notFoundMap = new Map();\n notFound.forEach((m) => notFoundMap.set(m.salespersonId, m.index));\n return notFoundMap;\n }),\n );\n\n return combineLatest([this.crmConfig.namespace$, notFoundIds$]).pipe(\n switchMap(([namespace, idsToGet]) => {\n if (idsToGet.length === 0) return of([]);\n return this.salespersonService.getMultiSalesperson(namespace, idsToGet);\n }),\n map((salespeople) => convertToReadableSalespeople(salespeople)),\n withLatestFrom(cachedResults$, notFoundMappings$),\n map(([getMultiResults, cachedResults, notFoundMappings]) => {\n for (const notFound of cachedResults.filter((m) => m.salesperson === null)) {\n const index = notFoundMappings.get(notFound.salespersonId);\n cachedResults[index].salesperson =\n getMultiResults.find((m) => m.salespersonId === notFound.salespersonId) || null;\n }\n return cachedResults.map((m) => m.salesperson);\n }),\n catchError((error) => {\n console.error(error);\n return cachedResults$.pipe(map((cachedResults) => cachedResults.map((m) => m.salesperson)));\n }),\n );\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, signal, WritableSignal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { StandardIds } from '@galaxy/crm/static';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { PartnerCRMSalespersonService, SalespersonWithDisplayName } from '../../salesperson.service';\n\nconst NO_VALUE_FOR_SALESPERSON = '';\n\n@Component({\n template: `\n \n
\n
\n {{ salespeopleNames()[0] }}\n \n {{ salespeopleNames()[1] }}\n \n 2\" [glxyTooltip]=\"salespeopleNames().join(', ')\">\n +{{ salespeopleNames().length - 1 }}\n \n
\n
\n
\n\n \n
\n
\n \n \n \n `,\n standalone: true,\n styleUrls: ['./additional-salespeople.component.scss'],\n imports: [CommonModule, BlankValueComponent, GalaxyBadgeModule, GalaxyTooltipModule],\n})\nexport class AdditionalSalespeopleCellComponent extends CustomCellComponent {\n NO_VALUE_FOR_SALESPERSON = NO_VALUE_FOR_SALESPERSON;\n fieldValues = signal([]);\n set value(newValues: (FieldValueInterface | null)[]) {\n this.fieldValues.set(newValues);\n }\n salespeople: WritableSignal' | null> = signal(null);\n salespeopleNames = computed(() => {\n const salespeople = this.salespeople();\n if (salespeople === NO_VALUE_FOR_SALESPERSON) {\n return [];\n }\n return salespeople.map((salesperson) => salesperson.displayName);\n });\n\n constructor(private readonly salespersonService: PartnerCRMSalespersonService) {\n super();\n toObservable(this.fieldValues)\n .pipe(\n switchMap((fieldValues) => {\n const salespersonFieldValue =\n fieldValues.find(\n (fieldValue) =>\n fieldValue?.fieldId === StandardIds.CompanyAdditionalSalespersonIDs ||\n fieldValue?.fieldId === StandardIds.ContactAdditionalSalespersonIDs,\n ) ?? null;\n if (!salespersonFieldValue) {\n return of(NO_VALUE_FOR_SALESPERSON);\n }\n const salespersonIds = salespersonFieldValue.stringValues?.values ?? null;\n if (!salespersonIds.length) {\n return of(NO_VALUE_FOR_SALESPERSON);\n }\n return this.salespersonService.getMultiSalesperson(salespersonIds);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n if (result === NO_VALUE_FOR_SALESPERSON) {\n this.salespeople.set(NO_VALUE_FOR_SALESPERSON);\n return;\n }\n const salespersons = result as SalespersonWithDisplayName[];\n const filteredNonExisting = salespersons.filter((s) => !!s?.salespersonId);\n if (!filteredNonExisting.length) {\n this.salespeople.set(NO_VALUE_FOR_SALESPERSON);\n return;\n }\n this.salespeople.set(filteredNonExisting);\n });\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, signal, WritableSignal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { StandardIds } from '@galaxy/crm/static';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { PartnerCRMSalespersonService, SalespersonWithDisplayName } from '../../salesperson.service';\n\nconst NO_VALUE_FOR_SALESPERSON = '';\nconst AVATAR_WIDTH = 24;\n\n@Component({\n template: `\n \n
\n \n {{ salespersonName() }}\n
\n
\n \n
\n
\n \n \n \n `,\n standalone: true,\n styleUrls: ['./salesperson.component.scss'],\n imports: [CommonModule, BlankValueComponent, GalaxyAvatarModule],\n})\nexport class SalespersonCellComponent extends CustomCellComponent {\n AVATAR_WIDTH = AVATAR_WIDTH;\n NO_VALUE_FOR_SALESPERSON = NO_VALUE_FOR_SALESPERSON;\n fieldValues = signal([]);\n set value(newValues: (FieldValueInterface | null)[]) {\n this.fieldValues.set(newValues);\n }\n salesperson: WritableSignal' | null> = signal(null);\n salespersonName = computed(() => {\n const salesperson = this.salesperson();\n if (salesperson === NO_VALUE_FOR_SALESPERSON) {\n return '';\n }\n return salesperson?.displayName ?? '';\n });\n\n constructor(private readonly salespersonService: PartnerCRMSalespersonService) {\n super();\n toObservable(this.fieldValues)\n .pipe(\n switchMap((fieldValues) => {\n const salespersonId =\n fieldValues.find(\n (fieldValue) =>\n fieldValue?.fieldId === StandardIds.CompanyPrimarySalespersonID ||\n fieldValue?.fieldId === StandardIds.ContactPrimarySalespersonID,\n ) ?? null;\n if (!salespersonId || !salespersonId?.stringValue) {\n return of(NO_VALUE_FOR_SALESPERSON);\n }\n return this.salespersonService.getMultiSalesperson([salespersonId.stringValue]);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n if (result === NO_VALUE_FOR_SALESPERSON || !result.length) {\n this.salesperson.set(NO_VALUE_FOR_SALESPERSON);\n return;\n }\n const salesperson = result[0] as SalespersonWithDisplayName;\n if (!salesperson?.salespersonId) {\n this.salesperson.set(NO_VALUE_FOR_SALESPERSON);\n return;\n }\n this.salesperson.set(salesperson);\n });\n }\n}\n", "import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n signal,\n Signal,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent, MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport {\n PartnerCRMSalespersonService,\n salespersonFilterFn,\n SalespersonWithDisplayName,\n} from '../../salesperson.service';\n\n@Component({\n template: `\n \n \n \n \n \n \n \n {{ salesperson.displayName }}\n \n \n \n \n \n \n \n {{ option?.displayName }}\n \n \n \n `,\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => AdditionalSalespeopleFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatIconModule,\n MatProgressSpinnerModule,\n ],\n standalone: true,\n})\nexport class AdditionalSalespeopleFilterInputComponent implements GalaxyAbstractFilterInput {\n @ViewChild('salespeopleInput') salespeopleInput: ElementRef;\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', { nonNullable: true });\n separatorKeysCodes: number[] = [ENTER, COMMA];\n\n loadingInitialValues = signal(false);\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n _fieldId = signal('');\n availableOptions = signal([]);\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n return availableOptions.filter((salesperson) => salespersonFilterFn(salesperson, searchTerm));\n });\n selectedSalespeopleIDs = signal([]);\n selectedSalespeople = computed(() => {\n const selectedIds = this.selectedSalespeopleIDs();\n const availableOptions = this.availableOptions();\n const selectedSalespeople = selectedIds\n .map((id) => availableOptions.find((option) => option.salespersonId === id))\n .filter((s) => !!s);\n return selectedSalespeople;\n });\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n const salespersonIds = (value ?? []).map((v) => v.string);\n this.selectedSalespeopleIDs.set(salespersonIds);\n }\n\n constructor(private readonly salespersonService: PartnerCRMSalespersonService) {\n effect(\n () => {\n const selectedSalespeopleIDs = this.selectedSalespeopleIDs();\n this.valueChanges.emit(selectedSalespeopleIDs.map((s) => ({ string: s })));\n },\n { allowSignalWrites: true },\n );\n this.salespersonService.allSalespeople$$\n .pipe(takeUntilDestroyed())\n .subscribe((allSalespeople) => this.availableOptions.set(allSalespeople));\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n const currentSalespeople = this.selectedSalespeopleIDs();\n const hasSalesperson = currentSalespeople.some((sp) => sp === event.option.value);\n if (event.option.value && !hasSalesperson) {\n this.selectedSalespeopleIDs.set([...currentSalespeople, event.option.value]);\n }\n this.salespeopleInput.nativeElement.value = '';\n this.formControl.setValue('');\n }\n\n add(event: MatChipInputEvent) {\n const currentSalespeople = this.selectedSalespeopleIDs();\n const hasSalesperson = currentSalespeople.some((sp) => sp === event?.value);\n if (event?.value && !hasSalesperson) {\n this.selectedSalespeopleIDs.set([...currentSalespeople, event.value]);\n }\n\n // Clear the input value\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.chipInput!.clear();\n this.formControl.setValue('');\n }\n\n remove(salespersonId: string) {\n const currentSalespeople = this.selectedSalespeopleIDs();\n const listWithoutSelectedSalesperson = currentSalespeople.filter((sp) => sp !== salespersonId);\n this.selectedSalespeopleIDs.set([...listWithoutSelectedSalesperson]);\n }\n\n clearValue() {\n this.formControl.setValue('');\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, Input, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { switchMap } from 'rxjs/operators';\nimport { PartnerCRMSalespersonService, SalespersonWithDisplayName } from '../../salesperson.service';\n\n@Component({\n template: `\n \n {{ selectedSalespeopleText() }}\n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['./salesperson-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class SalespersonFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedSalespersonIds = signal([]);\n selectedSalespeople = signal([]);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this.selectedSalespersonIds.set(value?.map((v) => v.string) || []);\n }\n\n selectedSalespeopleText = computed(() => {\n if (this.selectedSalespeople().length === 0) {\n return '';\n }\n const firstSalespersonName = this.selectedSalespeople()[0].displayName || this.selectedSalespersonIds()[0];\n if (this.selectedSalespeople().length === 1) {\n return firstSalespersonName;\n }\n return `${firstSalespersonName} +${this.selectedSalespeople().length - 1}`;\n });\n\n constructor(private readonly salespersonService: PartnerCRMSalespersonService) {\n toObservable(this.selectedSalespersonIds)\n .pipe(\n switchMap((salespersonIds) => {\n return this.salespersonService.getMultiSalesperson(salespersonIds);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedSalespeople.set(result);\n });\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, EventEmitter, forwardRef, Input, Output, signal, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport {\n PartnerCRMSalespersonService,\n salespersonFilterFn,\n SalespersonWithDisplayName,\n} from '../../salesperson.service';\n\n@Component({\n template: `\n \n \n \n \n {{ option?.displayName }}\n \n \n \n `,\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => SalespersonFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport class SalespersonFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl(\n '',\n {\n nonNullable: true,\n },\n );\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n _fieldId = signal('');\n availableOptions = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.salespersonId;\n return availableOptions.filter((salesperson) => salespersonFilterFn(salesperson, filterTerm));\n });\n\n constructor(private readonly salespersonService: PartnerCRMSalespersonService) {\n effect(\n () => {\n const value = this.searchTerm();\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: value?.salespersonId }]);\n },\n { allowSignalWrites: true },\n );\n\n this.salespersonService.allSalespeople$$\n .pipe(takeUntilDestroyed())\n .subscribe((allSalespeople) => this.availableOptions.set(allSalespeople));\n }\n\n clearValue() {\n this.formControl.setValue('');\n }\n\n displayFn(\n availableOptions: SalespersonWithDisplayName[],\n ): (salesperson: SalespersonWithDisplayName | string) => string {\n return (salesperson: SalespersonWithDisplayName | string): string => {\n if (!salesperson) {\n return '';\n }\n if (typeof salesperson === 'string') {\n const foundSalesperson = availableOptions.find((sp) => sp.salespersonId === salesperson);\n return foundSalesperson?.displayName || salesperson;\n }\n return salesperson?.displayName;\n };\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport {\n Association,\n AssociationCardComponent,\n AssociationsDialogData,\n BrandingService,\n CardAction,\n CardData,\n combineAssociationsWithChanges,\n CommonAssociationCardContentComponent,\n COMPANY_PROFILE_CARD_DATA_TOKEN,\n CompanyTableCustomizationService,\n ContactTableCustomizationService,\n CrmAssociationService,\n CrmCreateModalContactComponent,\n CrmDependencies,\n CrmFieldService,\n CrmInjectionToken,\n CrmObjectService,\n CrmPlatformApiService,\n DefaultAssociationActionsService,\n formatAsReadonlyPhone,\n ListObjectTypeDialogData,\n PAGE_ROUTES,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n parsePhoneNumber,\n RemoveAssociationData,\n RemoveAssociationDialogComponent,\n SelectObjectTypeModalComponent,\n StandardExternalIds,\n StandardIds,\n tableFiltersInjectionTokenGenerator,\n TagsComponent,\n AddCampaignDialogComponent,\n} from '@galaxy/crm/static';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { ContactInfoCardComponent, GalaxyContactInfoCardModule } from '@vendasta/galaxy/contact-info-card';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable, of, ReplaySubject } from 'rxjs';\nimport { filter, map, mergeMap, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport {\n AccessBusinessAppComponent,\n AccessBusinessAppService,\n} from '../association-cards/access-business-app/access-business-app.component';\nimport { AppAccess } from '../association-cards/access-business-app/access-business-app.service';\n\ninterface CompanyToContactAssociationsCardData extends CardData {\n associationId: string;\n companyName: string;\n businessAppAccess: AppAccess;\n cardActions: CardAction[];\n}\n\n@Component({\n selector: 'app-pcc-crm-company-to-contact-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatExpansionModule,\n ContactInfoCardComponent,\n AssociationCardComponent,\n CommonAssociationCardContentComponent,\n TagsComponent,\n AccessBusinessAppComponent,\n GalaxyAlertModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n RouterLink,\n MatMenuModule,\n GalaxyContactInfoCardModule,\n MatCardModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n AccessBusinessAppService,\n BrandingService,\n CrmPlatformApiService,\n ],\n templateUrl: './pcc-company-to-contact-associations-card.component.html',\n styleUrls: ['./pcc-company-to-contact-associations-card.component.scss'],\n})\nexport class PccCompanyToContactAssociationsCardComponent implements OnInit {\n protected readonly pageSize = 5;\n\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n contacts$: Observable;\n removedAssociationIds$$ = new BehaviorSubject([]);\n existingAssociations$: Observable;\n newContact$$ = new BehaviorSubject('');\n changedAssociations$$ = new BehaviorSubject([]);\n readonly visibleContactsCount$$ = new BehaviorSubject(this.pageSize);\n readonly hasMore$: Observable;\n\n private readonly injector = inject(Injector);\n openCreateContactModal$$ = new ReplaySubject(1);\n openCreateContactModal$ = this.openCreateContactModal$$.asObservable();\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly contactCustomizationService: ContactTableCustomizationService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly accessBusinessAppService: AccessBusinessAppService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.company_id || '');\n this.fullName$ = objectService.getMultiObject('Company', [this.data.company_id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.companyCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.existingAssociations$ = this.associationService\n .getRemainingContactAssociationsForCompanies$(this.data.company_id || '')\n .pipe(shareReplay({ bufferSize: 1, refCount: true }));\n\n this.hasMore$ = combineLatest([this.existingAssociations$, this.visibleContactsCount$$]).pipe(\n map(([existing, visibleContactsCount]) => existing.length > visibleContactsCount),\n );\n\n const latestContacts$ = combineLatest([\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.existingAssociations$,\n this.changedAssociations$$,\n this.visibleContactsCount$$,\n ]).pipe(\n map(([routePrefix, copyCrmObject, existing, changed, visibleContactsCount]) => {\n const associations = existing.slice(0, visibleContactsCount);\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Contact-Company',\n tags: [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...existing, ...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n const companyName = this.data.name || this.translateService.instant('COMPANY.DEFAULT_NAME');\n if (!association.associatedObject) {\n return {} as CompanyToContactAssociationsCardData;\n }\n const contactName = this.contactCustomizationService.getRowFullName(association.associatedObject || {});\n const phoneParsed = parsePhoneNumber(\n this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardExternalIds.PhoneNumber,\n )?.stringValue || '',\n );\n\n const data = {\n associationId: association.associationId,\n companyName: companyName,\n type: 'user',\n userName: contactName,\n tags: (association.tags || []).filter((tag) => tag !== 'Primary'),\n phone: formatAsReadonlyPhone(phoneParsed),\n email: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardExternalIds.Email,\n )?.stringValue,\n jobTitle: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.ContactJobTitle,\n )?.stringValue,\n linkedInUrl: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.ContactLinkedInURL,\n )?.stringValue,\n id: association.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n businessAppAccess: this.accessBusinessAppService.getAppAccess(\n this.dialog,\n association.associatedObject.crmObjectId || '',\n this.data.company_id || '',\n contactName,\n companyName,\n ),\n cardActions: [\n {\n label: this.translateService.instant('ASSOCIATIONS.CAMPAIGNS.ADD_TO_CAMPAIGN'),\n callback: (data: CardData) => {\n this.openCampaignDialog(data.id || '');\n },\n } as CardAction,\n ],\n } as CompanyToContactAssociationsCardData;\n if (data.businessAppAccess) {\n data.businessAppAccess.actions$.pipe(take(1)).subscribe((actions) => {\n data.cardActions.concat(actions);\n });\n }\n return data;\n });\n }),\n );\n\n this.contacts$ = combineLatest([latestContacts$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([contacts, removed]) => {\n return contacts.filter((contact) => {\n return !removed.includes(contact.associationId);\n });\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$, this.newContact$$]).pipe(\n map(([objectIdAndName, associations, newContact]) => ({\n modalTitle: objectIdAndName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n selectedCompanyNames: [],\n fromId: '',\n copyCrmObjects: [],\n associationType: '',\n associations: associations,\n newSelection: newContact,\n })),\n );\n }\n\n ngOnInit() {\n this.openCreateContactModal$\n .pipe(\n switchMap((shouldOpen) => {\n if (shouldOpen) {\n return this.dialog\n .open(CrmCreateModalContactComponent, {\n width: '500px',\n })\n .afterClosed();\n }\n return of(null);\n }),\n )\n .subscribe((contact) => {\n if (contact) {\n this.newContact$$.next(contact.crmObjectId);\n }\n this.openModal();\n });\n }\n\n openModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Contact',\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_COMPANY_MODAL', {\n companyName: data.modalTitle,\n }),\n associations: data.associations,\n associationType: 'Contact-Company',\n newSelection: data.newSelection,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Contact'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n tap((modalResponse) => {\n if (modalResponse?.clickedCreate === true) {\n this.openCreateContactModal$$.next(true);\n }\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedContactsIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Contact', selectedContactsIDs).pipe(\n map((resp) => {\n const copyCrmObjects = resp.crmObjects?.map((object) => object);\n return {\n copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.contactCustomizationService.getRowFullName(object || {}),\n };\n }),\n };\n }),\n );\n }),\n tap((selectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.copyCrmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap(() => {\n return this.crmAssociationService.createAssociation$('Contact-Company', ['Primary'], true);\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: 10000,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: 10000,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n removeAssociation(cardData: CompanyToContactAssociationsCardData) {\n return this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.companyName,\n removeName: cardData.userName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n editTags(cardData: CompanyToContactAssociationsCardData) {\n return this.defaultAssociationActionsService\n .editTagsAction(cardData)\n .pipe(\n take(1),\n tap((edited) => {\n if (edited === null) {\n return;\n }\n this.changedAssociations$$.next([edited]);\n }),\n )\n .subscribe();\n }\n\n openCampaignDialog(id: string): void {\n this.dialog.open(AddCampaignDialogComponent, {\n width: '500px',\n data: {\n id: id,\n },\n });\n }\n\n showMore(): void {\n this.visibleContactsCount$$.next(this.visibleContactsCount$$.value + this.pageSize);\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.CONTACT.TITLE' | translate }}\n \n \n \n \n \n \n \n {{ contact.jobTitle }}\n \n \n \n \n \n \n \n {{ contact.phone }}\n \n \n \n \n \n \n \n \n {{ contact.linkedInUrl }}\n \n \n \n \n \n \n \n 0\">\n \n \n \n \n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ContactInfoCardComponent } from '@vendasta/galaxy/contact-info-card';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, mergeMap, switchMap, take, tap } from 'rxjs/operators';\n\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n Association,\n AssociationCardComponent,\n AssociationsDialogData,\n BrandingService,\n CardData,\n combineAssociationsWithChanges,\n CommonAssociationCardContentComponent,\n CompanyTableCustomizationService,\n CONTACT_PROFILE_CARD_DATA_TOKEN,\n ContactTableCustomizationService,\n CrmAssociationService,\n CrmDependencies,\n CrmFieldService,\n CrmInjectionToken,\n CrmObjectService,\n CrmPlatformApiService,\n DefaultAssociationActionsService,\n ListObjectTypeDialogData,\n PAGE_ROUTES,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n RemoveAssociationData,\n RemoveAssociationDialogComponent,\n SelectAssociationsModalComponent,\n SelectObjectTypeModalComponent,\n StandardIds,\n SystemFieldIds,\n tableFiltersInjectionTokenGenerator,\n TagsComponent,\n} from '@galaxy/crm/static';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n AccessBusinessAppComponent,\n AccessBusinessAppService,\n} from '../association-cards/access-business-app/access-business-app.component';\nimport { AppAccess } from '../association-cards/access-business-app/access-business-app.service';\n\ninterface ContactToCompanyAssociationsCardData extends CardData {\n associationId: string;\n contactName: string;\n businessAppAccess: AppAccess;\n}\n\n@Component({\n selector: 'app-pcc-crm-contact-to-company-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatExpansionModule,\n AssociationCardComponent,\n ContactInfoCardComponent,\n CommonAssociationCardContentComponent,\n AccessBusinessAppComponent,\n TagsComponent,\n MatButtonModule,\n MatIconModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatMenuModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n AccessBusinessAppService,\n BrandingService,\n CrmPlatformApiService,\n ],\n templateUrl: './pcc-contact-to-company-associations-card.component.html',\n styleUrls: ['./pcc-contact-to-company-associations-card.component.scss'],\n})\nexport class PccContactToCompanyAssociationsCardComponent {\n data = inject(CONTACT_PROFILE_CARD_DATA_TOKEN);\n getAssociations$: Observable;\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n companies$: Observable;\n removedAssociationIds$$ = new BehaviorSubject([]);\n hasAssociation = false;\n existingAssociations$: Observable;\n changedAssociations$$ = new BehaviorSubject([]);\n\n private readonly injector = inject(Injector);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly contactCustomizationService: ContactTableCustomizationService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private readonly crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly accessBusinessAppService: AccessBusinessAppService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.id || '');\n this.fullName$ = objectService.getMultiObject('Contact', [this.data.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.contactCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.getAssociations$ = this.associationService.getCompanyAssociationsForContact$(this.data.id || '');\n this.existingAssociations$ = this.associationService.getRemainingCompanyAssociationsForContacts$(\n this.data.id || '',\n );\n\n const latestCompanies$ = this.loadAssociations$$.pipe(\n switchMap(() =>\n combineLatest([\n this.getAssociations$,\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.existingAssociations$,\n this.changedAssociations$$,\n ]),\n ),\n tap(() => {\n this.removedAssociationIds$$.next([]);\n }),\n map(([associations, routePrefix, copyCrmObject, existing, changed]) => {\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Contact-Company',\n tags: association.tags || [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...existing, ...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n if (!association.associatedObject) {\n return {} as ContactToCompanyAssociationsCardData;\n }\n const contactName = this.data.name || '';\n const companyName =\n this.fieldService.getFieldValueFromCrmObject(association.associatedObject, StandardIds.CompanyName)\n ?.stringValue || '';\n const companyId =\n this.fieldService.getFieldValueFromCrmObject(association.associatedObject, SystemFieldIds.CompanyID)\n ?.stringValue || '';\n const data = {\n associationId: association.associationId,\n contactName: contactName,\n type: 'business',\n tags: association.tags || [],\n id: companyId,\n businessName: companyName,\n businessAddress: {\n address1: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressLine1,\n )?.stringValue,\n address2: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressLine2,\n )?.stringValue,\n city: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressCity,\n )?.stringValue,\n state: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressState,\n )?.stringValue,\n country: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressCountry,\n )?.stringValue,\n zip: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressPostalCode,\n )?.stringValue,\n },\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n phone: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPhoneNumber,\n )?.stringValue,\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n businessAppAccess: this.accessBusinessAppService.getAppAccess(\n this.dialog,\n this.data.id || '',\n companyId,\n contactName,\n companyName,\n ),\n } as ContactToCompanyAssociationsCardData;\n return data;\n });\n }),\n );\n\n this.companies$ = combineLatest([latestCompanies$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([companies, removed]) => {\n this.hasAssociation = companies.length === removed.length ? false : true;\n return companies.filter((company) => {\n return !removed.includes(company.associationId);\n });\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$]).pipe(\n map(([fullName, preSelectedRows]) => {\n return {\n modalTitle: fullName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n associationType: '',\n associations: preSelectedRows,\n newSelection: '',\n };\n }),\n );\n }\n\n openModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_CONTACT_MODAL', {\n contactFullName: data.modalTitle,\n }),\n associations: data.associations,\n associationType: 'Contact-Company',\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((result) => {\n return result?.selectedRows || new Array();\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedCompaniesIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedCompaniesIDs).pipe(\n map((resp) => {\n const copyCrmObjects = resp.crmObjects?.map((object) => object);\n return {\n copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n };\n }),\n );\n }),\n tap((selectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.copyCrmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((selectedObjects) => {\n if (this.hasAssociation) {\n return this.crmAssociationService.createContactCompanyAssociation$('Contact-Company');\n } else {\n const dialogRef = this.dialog.open(SelectAssociationsModalComponent, {\n data: {\n selectedRows: selectedObjects.objects,\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_ASSOCIATION'),\n primarySelect: this.translateService.instant('ASSOCIATIONS.COMPANY_MODAL.PRIMARY_COMPANY'),\n description: this.translateService.instant('ASSOCIATIONS.COMPANY_MODAL.PRIMARY_DESCRIPTION'),\n associationType: 'Contact-Company',\n associations: [{}],\n } as AssociationsDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }\n }),\n )\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: 10000,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: 10000,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n removeAssociation(cardData: ContactToCompanyAssociationsCardData) {\n return this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.contactName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n editTags(cardData: ContactToCompanyAssociationsCardData) {\n return this.defaultAssociationActionsService\n .editTagsAction(cardData)\n .pipe(\n take(1),\n tap((edited) => {\n if (edited === null) {\n return;\n }\n this.changedAssociations$$.next([edited]);\n }),\n )\n .subscribe();\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.COMPANY.TITLE' | translate }}\n \n \n \n \n \n \n \n 0\">\n \n \n \n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router, RouterModule } from '@angular/router';\nimport {\n AUTOMATION_IS_USER_SUPERADMIN$,\n StartManualAutomationDialogComponent,\n StartManualAutomationModule,\n} from '@galaxy/automata/shared';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Activity, AutomataService, Automation, EntityType, PagedResponse, Stage } from '@vendasta/automata';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { catchError, combineLatest, firstValueFrom, map, Observable, of, switchMap } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { MarketsService } from '../../../../core/markets/markets.service';\nimport { CompanyAccountService } from '../../../company-account.service';\n\nconst pageSize = 5;\nconst queryParamsManualTrigger = encodeURIComponent(\n '{\"trigger\":\"AUTOMATIONS.EDITOR.TRIGGERS.MANUAL_ACCOUNT_TRIGGER.TITLE\"}',\n);\nconst routeRoot = '/automations';\n\n@Component({\n selector: 'app-automations',\n standalone: true,\n imports: [\n CommonModule,\n MatExpansionModule,\n MatCardModule,\n MatTooltipModule,\n MatButtonModule,\n RouterModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatIconModule,\n StartManualAutomationModule,\n ],\n templateUrl: './automations.component.html',\n styleUrls: ['../association-panel-base-styles.component.scss', './automations.component.scss'],\n})\nexport class AutomationsComponent {\n latestAutomations$: Observable;\n protected creatingAccountGroup$: Observable;\n startAutomationButtonTooltip$ = this.isUserSuperAdmin$.pipe(\n map((isSuperAdmin) => (isSuperAdmin ? 'AUTOMATIONS.EDITOR.AUTOMATION.SUPER_ADMINS_CANT_TURN_ON_TITLE' : '')),\n );\n\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n private readonly automationService = inject(AutomataService);\n private readonly snackbarService = inject(SnackbarService);\n private readonly router = inject(Router);\n private readonly marketsService = inject(MarketsService);\n private readonly accountCreationService = inject(CompanyAccountService);\n private readonly dialog = inject(MatDialog);\n\n protected accountGroupId$ = this.accountCreationService.accountGroupId$;\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n @Inject('MARKET_ID') private readonly marketId$: Observable,\n @Inject(AUTOMATION_IS_USER_SUPERADMIN$) public readonly isUserSuperAdmin$: Observable,\n ) {\n this.setupAutomationsFetching();\n this.creatingAccountGroup$ = this.accountCreationService.createAccountGroupLoading$(this.data.company_id);\n }\n\n private setupAutomationsFetching(): void {\n this.accountCreationService.setAccountGroupId(this.data.account_group_id ?? '');\n\n const automationIDs$ = combineLatest([this.partnerId$, this.accountGroupId$]).pipe(\n switchMap(([partnerId, accountGroupID]) => {\n if (!partnerId || !accountGroupID) {\n return of(null);\n }\n const automationActivityFilter = {\n latestPerAutomation: true,\n partnerId: partnerId,\n entityId: accountGroupID,\n stage: [\n Stage.STAGE_WORKFLOW_STEP,\n Stage.STAGE_WORKFLOW_COMPLETED,\n Stage.STAGE_WORKFLOW_CANCELED,\n Stage.STAGE_WORKFLOW_COMPLETED_FROM_ERROR,\n ],\n };\n // TODO [SNP-2345]: add in page cursor parameter for when we add the ability to list more than 5 automations in the panel\n return this.automationService.listActivities(automationActivityFilter, '', pageSize);\n }),\n catchError(() => {\n this.snackbarService.openErrorSnack('CRM.ERROR.LOAD_AUTOMATIONS_FAILED');\n return null;\n }),\n map((resp: PagedResponse) => {\n if (resp?.results && resp.results.length > 0) {\n return resp.results.map((activity) => {\n return activity.automationId;\n });\n }\n return null;\n }),\n );\n\n this.latestAutomations$ = combineLatest([this.partnerId$, automationIDs$]).pipe(\n switchMap(([partnerId, automationIds]) => {\n if (!partnerId || !automationIds) {\n return of([]);\n }\n return this.automationService.getMultiAutomations(partnerId, '', automationIds);\n }),\n );\n }\n\n handleViewAllClick(): void {\n this.router.navigate([routeRoot], {\n queryParams: { automations: queryParamsManualTrigger },\n });\n }\n\n handleAutomationClick(automationId: string): void {\n firstValueFrom(this.accountGroupId$).then((accountGroupID) => {\n if (accountGroupID) {\n this.router.navigate([routeRoot, 'automation', automationId, 'activity'], {\n queryParams: { activities: `{\"accountGroup\":\"${accountGroupID}\"}` },\n });\n }\n });\n }\n\n async onTriggerAutomationButtonClicked(): Promise {\n const config = await firstValueFrom(this.getDialogConfig$());\n if (config) {\n this.dialog.open(StartManualAutomationDialogComponent, config);\n }\n }\n\n private getDialogConfig$(): Observable {\n return combineLatest([\n this.marketsService.adminCanAccessAllPartnerMarkets$,\n this.partnerId$,\n this.marketId$,\n this.accountCreationService.fetchAccountGroupId$(this.data.company_id),\n ]).pipe(\n take(1),\n map(([access, partnerId, marketId, accountGroupId]) => {\n const config = new MatDialogConfig();\n const markets: string[] = [];\n if (marketId) {\n markets.push(marketId);\n }\n if (access) {\n markets.push(''); // '' means all markets\n }\n\n config.data = {\n partnerId: partnerId,\n marketIds: markets,\n entities: new Map([\n [EntityType.ENTITY_TYPE_ACCOUNT_GROUP, [accountGroupId]],\n [EntityType.ENTITY_TYPE_COMPANY, [this.data.company_id]],\n ]),\n };\n return config;\n }),\n );\n }\n}\n", "\n {{ 'AUTOMATIONS.COMMON.AUTOMATIONS' | translate }}\n\n \n \n \n add\n {{ 'AUTOMATIONS.COMMON.START_AUTOMATION' | translate }}\n \n \n \n \n \n \n \n \n {{ automation.name }}\n \n \n {{ automation.description }}\n \n \n \n\n \n\n\n\n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router } from '@angular/router';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN } from '@galaxy/crm/static';\nimport { PartnerHealthsService } from '@galaxy/partner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PartnerHealthState, PartnerHealthSubState, PartnerModelApiService } from '@vendasta/partner';\nimport { Observable, combineLatest, firstValueFrom, of, switchMap } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport { CompanyAccountService } from '../../../company-account.service';\n\ninterface PartnerInformation {\n partnerId: string;\n subscriptionTierId: string;\n health: {\n state: PartnerHealthState;\n subState: PartnerHealthSubState;\n displayState: string;\n displaySubState: string;\n iconCss: string;\n };\n}\n\nconst companyPartnerFieldId = 'FieldID-6f2472c8-3401-4797-9db1-90fe524bd9a8';\n\n@Component({\n selector: 'app-partner-info',\n standalone: true,\n imports: [\n CommonModule,\n MatExpansionModule,\n MatButtonModule,\n MatIconModule,\n GalaxyButtonLoadingIndicatorModule,\n TranslateModule,\n ],\n templateUrl: './partner-info.component.html',\n styleUrls: ['../association-panel-base-styles.component.scss', './partner-info.component.scss'],\n})\nexport class PartnerInfoComponent {\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n protected companyPartnerInfo$: Observable;\n protected createPartnerButtonLoading$ = this.accountCreationService.createAccountGroupLoading$(this.data.company_id);\n\n constructor(\n private readonly partnerModelService: PartnerModelApiService,\n private router: Router,\n private readonly accountCreationService: CompanyAccountService,\n private readonly partnerHealthsService: PartnerHealthsService,\n private environmentService: EnvironmentService,\n private readonly snackbarService: SnackbarService,\n ) {\n this.setupCompanyInfoFetching();\n }\n\n private setupCompanyInfoFetching(): void {\n const company$ = this.accountCreationService.getCompany$(this.data.company_id);\n\n const companyPID$ = company$.pipe(\n map((company) => {\n return company.fields.find((field) => field.fieldId === companyPartnerFieldId)?.stringValue;\n }),\n );\n\n const subscriptionTierId$ = companyPID$.pipe(\n switchMap((pid) => {\n if (!pid) {\n return of(null);\n }\n return this.partnerModelService.getPartnerModel({ partnerId: pid });\n }),\n map((resp) => {\n return resp?.partner?.subscriptionTierId;\n }),\n );\n\n const financialHealth$ = companyPID$.pipe(\n switchMap((pid) => {\n if (!pid) {\n return of(null);\n }\n return this.partnerHealthsService.get(pid);\n }),\n map((resp) => {\n return resp;\n }),\n );\n\n this.companyPartnerInfo$ = combineLatest([companyPID$, subscriptionTierId$, financialHealth$]).pipe(\n filter(([pid, tierId]) => !!pid && !!tierId),\n map(([pid, tierId, health]) => {\n const display = this.displayTextAndIcon(health);\n return {\n partnerId: pid,\n subscriptionTierId: tierId,\n health: {\n state: health?.state,\n subState: health?.subState,\n displayState: display[0],\n displaySubState: display[2],\n iconCss: display[1],\n },\n };\n }),\n );\n }\n\n createPartner(): void {\n if (!this.data.company_id) {\n this.snackbarService.openErrorSnack('CRM.ERROR.NO_COMPANY_ID');\n return;\n }\n\n firstValueFrom(this.accountCreationService.fetchAccountGroupId$(this.data.company_id))\n .then((accountGroupId) => {\n if (accountGroupId) {\n this.router.navigateByUrl(`/superadmin/partner/create?fromAccountGroup=${accountGroupId}`);\n } else {\n this.snackbarService.openErrorSnack('CRM.ERROR.NAVIGATE_TO_PAGE_FAILED');\n }\n })\n .catch((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack('CRM.ERROR.NAVIGATE_TO_PAGE_FAILED');\n });\n }\n\n private displayTextAndIcon(health): string[] {\n let subStateDisplay = '';\n switch (health?.subState) {\n case 0:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.UNSPECIFIED';\n break;\n case 1:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.ACTIVE';\n break;\n case 2:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.OVERDUE';\n break;\n case 3:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.SUSPENDED';\n break;\n case 4:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.PAYMENT_PLAN';\n break;\n default:\n subStateDisplay = 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.UNSPECIFIED';\n break;\n }\n\n switch (health?.state) {\n case 0:\n return [\n 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.HEALTHY',\n 'partner-health-token-healthy',\n subStateDisplay,\n ];\n case 1:\n return [\n 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.AT_RISK',\n 'partner-health-token-risk',\n subStateDisplay,\n ];\n case 2:\n return [\n 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.RESTRICTED',\n 'partner-health-token-restricted',\n subStateDisplay,\n ];\n default:\n return [\n 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.HEALTH_STATE.HEALTHY',\n 'partner-health-token-healthy',\n subStateDisplay,\n ];\n }\n }\n\n goToPricing(): void {\n this.companyPartnerInfo$\n .pipe(\n take(1),\n map((partnerInfo) => {\n let url = '';\n if (this.environmentService.getEnvironment() === Environment.PROD) {\n url = 'https://billing-prod.apigateway.co/merchants/' + partnerInfo.partnerId;\n } else {\n url = 'https://billing-demo.apigateway.co/merchants/' + partnerInfo.partnerId;\n }\n window.open(url, '_blank');\n }),\n )\n .subscribe();\n }\n}\n", "\n \n {{ 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.TITLE' | translate }}\n \n \n
\n
\n {{ 'SUPERADMIN.CREATE_PARTNER.PARTNER_DETAILS.ID' | translate }}\n
\n {{ partnerInfo.partnerId }}\n \n person\n \n
\n
\n
\n {{ 'PARTNER_SUBSCRIPTIONS.SUBSCRIPTION_TITLE' | translate }}\n
\n {{ partnerInfo.subscriptionTierId }}\n
\n
\n
\n {{\n 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.FINANCIAL_HEALTH' | translate\n }}\n
\n \n {{ partnerInfo.health.displayState | translate }}\n {{ partnerInfo.health.displaySubState | translate }}\n
\n
\n \n \n
\n
\n
\n\n\n \n\n\n\n \n \n {{ 'CRM.ASSOCIATION_PANEL.PARTNER_INFORMATION.CREATE_PARTNER' | translate }}\n \n \n\n", "import { Component, inject, OnInit } from '@angular/core';\nimport { BrandingService, CrmPlatformApiService, PROFILE_ACTION_BUTTON_DATA_TOKEN } from '@galaxy/crm/static';\nimport { BusinessCenterService, VBCEntryInfo } from '../../../core/business-center.service';\nimport { AccessBusinessAppService } from '../../profile-cards/association-cards/access-business-app/access-business-app.service';\n\nimport { AsyncPipe, NgComponentOutlet, NgForOf, NgIf } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'app-business-app-button',\n template: `\n \n {{ this.translateService.instant('COMPANY.LIST_OBJECTS_TABLE.ACTIONS.OPEN_BUSINESS_APP') }} {{ appDetails.name }}\n open_in_new\n \n `,\n standalone: true,\n providers: [AccessBusinessAppService, BrandingService, CrmPlatformApiService, TranslateService],\n\n imports: [MatIconModule, MatButtonModule, NgComponentOutlet, NgIf, NgForOf, MatExpansionModule, AsyncPipe],\n})\nexport class ActionButtonComponent implements OnInit {\n businessAppButton$: Observable | undefined;\n data = inject(PROFILE_ACTION_BUTTON_DATA_TOKEN);\n businessCenterService = inject(BusinessCenterService);\n translateService = inject(TranslateService);\n\n ngOnInit(): void {\n this.businessAppButton$ = this.businessCenterService.getVBCEntryUrl(this.data.account_group_id);\n }\n}\n", "import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n DestroyRef,\n ElementRef,\n Signal,\n signal,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent, MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { FieldValueInterface, FormInputComponent, InlineEditService, ObjectType } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { tap } from 'rxjs';\nimport {\n PartnerCRMSalespersonService,\n salespersonFilterFn,\n SalespersonWithDisplayName,\n} from '../../salesperson.service';\n\nconst NO_VALUE_FOR_SALESPERSON = '';\n\n@Component({\n templateUrl: './additional-salespeople-form-input.component.html',\n providers: [],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatIconModule,\n MatProgressSpinnerModule,\n GalaxyBadgeModule,\n GalaxyTooltipModule,\n ],\n styleUrls: ['../shared.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AdditionalSalespeopleFormInputComponent extends FormInputComponent {\n @ViewChild('salespeopleInput') salespeopleInput: ElementRef;\n\n NO_VALUE_FOR_SALESPERSON = NO_VALUE_FOR_SALESPERSON;\n\n readOnly = false;\n objectType: ObjectType = 'Contact';\n _control: FormControl = new FormControl([], {\n nonNullable: true,\n });\n searchControl: FormControl = new FormControl<\n SalespersonWithDisplayName | string\n >('', {\n nonNullable: true,\n });\n separatorKeysCodes: number[] = [ENTER, COMMA];\n _label = '';\n searchTerm = signal('');\n selectedSalespeopleIDs = signal([]);\n set control(control: UntypedFormControl) {\n this._control = control as FormControl;\n this._control.markAsPristine();\n this._control.setValue(this._control.value || []);\n this.selectedSalespeopleIDs.set(this._control.value);\n this._control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((newValue) => this.selectedSalespeopleIDs.set(newValue || []));\n }\n get control(): UntypedFormControl {\n return this._control;\n }\n\n _fieldId = signal('');\n set fieldId(fieldId: string) {\n this._fieldId.set(fieldId);\n }\n\n get hasModification(): boolean {\n return this._control.dirty;\n }\n\n set label(label: string) {\n this._label = label;\n }\n\n get label(): string {\n return this._label;\n }\n\n get value(): FieldValueInterface {\n return {\n fieldId: this._fieldId(),\n stringValues: {\n values: this._control.value,\n },\n };\n }\n\n loadingValues = signal(true);\n availableOptions = signal([]);\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.salespersonId;\n return availableOptions.filter((salesperson) => salespersonFilterFn(salesperson, filterTerm));\n });\n salespeople = computed(() => {\n const availableOptions = this.availableOptions();\n const selectedSalespeopleIDs = this.selectedSalespeopleIDs();\n const salespeople = [];\n for (const salesperson of availableOptions) {\n if (selectedSalespeopleIDs.includes(salesperson.salespersonId)) {\n salespeople.push(salesperson);\n }\n }\n return salespeople.length ? salespeople : NO_VALUE_FOR_SALESPERSON;\n });\n salespeopleNames = computed(() => {\n const salespeople = this.salespeople();\n if (salespeople === NO_VALUE_FOR_SALESPERSON) {\n return [];\n }\n return salespeople.map((salesperson) => salesperson.displayName);\n });\n selectedSalespeople = computed(() => {\n const selectedIds = this.selectedSalespeopleIDs();\n const availableOptions = this.availableOptions();\n const selectedSalespeople = selectedIds\n .map((id) => availableOptions.find((option) => option.salespersonId === id))\n .filter((s) => !!s);\n return selectedSalespeople;\n });\n\n constructor(\n private readonly salespersonService: PartnerCRMSalespersonService,\n private readonly destroyRef: DestroyRef,\n private readonly inlineEditService: InlineEditService,\n ) {\n super();\n this.salespersonService.allSalespeople$$\n .pipe(\n takeUntilDestroyed(),\n tap(() => this.loadingValues.set(true)),\n )\n .subscribe((allSalespeople) => {\n this.availableOptions.set(allSalespeople);\n this.loadingValues.set(false);\n });\n this.searchControl.valueChanges.pipe(takeUntilDestroyed()).subscribe((newValue) => this.searchTerm.set(newValue));\n }\n\n displayFn(\n availableOptions: SalespersonWithDisplayName[],\n ): (salesperson: SalespersonWithDisplayName | string) => string {\n return (salesperson: SalespersonWithDisplayName | string): string => {\n if (!salesperson) {\n return '';\n }\n if (typeof salesperson === 'string') {\n const foundSalesperson = availableOptions.find((sp) => sp.salespersonId === salesperson);\n return foundSalesperson?.displayName || salesperson;\n }\n return salesperson?.displayName;\n };\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n const currentSalespeople = this._control.value;\n const hasSalesperson = currentSalespeople.some((sp) => sp === event.option.value);\n if (event.option.value && !hasSalesperson) {\n this._control.patchValue([...currentSalespeople, event.option.value]);\n this._control.markAsDirty();\n }\n this.salespeopleInput.nativeElement.value = '';\n this.searchControl.setValue('');\n }\n\n add(event: MatChipInputEvent) {\n const currentSalespeople = this._control.value;\n const hasSalesperson = currentSalespeople.some((sp) => sp === event?.value);\n if (event?.value && !hasSalesperson) {\n this._control.patchValue([...currentSalespeople, event.value]);\n this._control.markAsDirty();\n }\n\n // Clear the input value\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.chipInput!.clear();\n this.searchControl.setValue('');\n }\n\n remove(salespersonId: string) {\n const currentSalespeople = this._control.value;\n const listWithoutSelectedSalesperson = currentSalespeople.filter((sp) => sp !== salespersonId);\n this._control.patchValue([...listWithoutSelectedSalesperson]);\n this._control.markAsDirty();\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, this.value);\n }\n}\n", "
\n
Additional salespeople
\n
\n \n \n
\n
\n {{ salespeopleNames()[0] }}\n \n {{ salespeopleNames()[1] }}\n \n 2\" [glxyTooltip]=\"salespeopleNames().join(', ')\">\n +{{ salespeopleNames().length - 1 }}\n \n
\n
\n
\n
\n\n \n
\n
\n
\n
\n\n \n Additional salespeople\n \n \n \n \n \n \n {{ salesperson.displayName }}\n \n \n \n \n \n \n \n {{ option?.displayName }}\n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, DestroyRef, Signal, signal, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { FieldValueInterface, FormInputComponent, InlineEditService, ObjectType } from '@galaxy/crm/static';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { tap } from 'rxjs';\nimport {\n PartnerCRMSalespersonService,\n salespersonFilterFn,\n SalespersonWithDisplayName,\n} from '../../salesperson.service';\n\nconst NO_VALUE_FOR_SALESPERSON = '';\n\n@Component({\n templateUrl: './salesperson-form-input.component.html',\n providers: [],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n MatProgressSpinnerModule,\n ],\n styleUrls: ['../shared.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SalespersonFormInputComponent extends FormInputComponent {\n NO_VALUE_FOR_SALESPERSON = NO_VALUE_FOR_SALESPERSON;\n\n readOnly = false;\n objectType: ObjectType = 'Contact';\n _control: FormControl = new FormControl(\n '',\n {\n nonNullable: true,\n },\n );\n _label = '';\n searchTerm = signal('');\n set control(control: FormControl) {\n this._control = control;\n this._control.setValue(this._control.value || '');\n this.searchTerm.set(control.value);\n this._control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((newValue) => this.searchTerm.set(newValue));\n }\n get control(): UntypedFormControl {\n return this._control;\n }\n\n _fieldId = signal('');\n set fieldId(fieldId: string) {\n this._fieldId.set(fieldId);\n }\n\n get hasModification(): boolean {\n return this._control.dirty;\n }\n\n set label(label: string) {\n this._label = label;\n }\n\n get label(): string {\n return this._label;\n }\n\n get value(): FieldValueInterface {\n const controlValue: SalespersonWithDisplayName | string = this._control.value;\n if (typeof controlValue === 'string') {\n return {\n fieldId: this._fieldId(),\n stringValue: controlValue,\n };\n }\n return {\n fieldId: this._fieldId(),\n stringValue: controlValue?.salespersonId,\n };\n }\n\n loadingValues = signal(true);\n availableOptions = signal([]);\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.salespersonId;\n return availableOptions.filter((salesperson) => salespersonFilterFn(salesperson, filterTerm));\n });\n salespersonName = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.salespersonId;\n if (!searchTerm) {\n return NO_VALUE_FOR_SALESPERSON;\n }\n const foundSalesperson = availableOptions.find((salesperson) => salespersonFilterFn(salesperson, filterTerm));\n return foundSalesperson?.displayName || searchTerm;\n });\n\n constructor(\n private readonly salespersonService: PartnerCRMSalespersonService,\n private readonly destroyRef: DestroyRef,\n private readonly inlineEditService: InlineEditService,\n ) {\n super();\n this.salespersonService.allSalespeople$$\n .pipe(\n takeUntilDestroyed(),\n tap(() => this.loadingValues.set(true)),\n )\n .subscribe((allSalespeople) => {\n this.availableOptions.set(allSalespeople);\n this.loadingValues.set(false);\n });\n }\n\n displayFn(\n availableOptions: SalespersonWithDisplayName[],\n ): (salesperson: SalespersonWithDisplayName | string) => string {\n return (salesperson: SalespersonWithDisplayName | string): string => {\n if (!salesperson) {\n return '';\n }\n if (typeof salesperson === 'string') {\n const foundSalesperson = availableOptions.find((sp) => sp.salespersonId === salesperson);\n return foundSalesperson?.displayName || salesperson;\n }\n return salesperson?.displayName;\n };\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, this.value);\n }\n}\n", "
\n
Salesperson
\n
\n \n \n \n {{ salespersonName }}\n \n \n \n
\n
\n
\n
\n\n \n Salesperson\n \n \n \n {{ option?.displayName }}\n \n \n \n \n \n Salesperson\n \n \n \n \n\n", "import { Inject, Injectable } from '@angular/core';\nimport { OpportunityService, SimplifiedOpportunity } from '@galaxy/crm/static';\nimport {\n ListOpportunitiesRequestSortField,\n SalesOpportunitiesService,\n SortDirection,\n} from '@vendasta/sales-opportunities';\nimport { combineLatest, distinctUntilChanged, map, Observable, of, ReplaySubject, switchMap } from 'rxjs';\nimport { catchError, shareReplay } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class PartnerCRMOpportunityService implements OpportunityService {\n private allOpportunities$: Observable;\n private primaryAccountGroupId$$: ReplaySubject = new ReplaySubject(1);\n public primaryAccountGroupId$: Observable = this.primaryAccountGroupId$$.asObservable();\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private readonly salesOpportunityService: SalesOpportunitiesService,\n ) {\n this.allOpportunities$ = this.listOpportunities('', 1000);\n }\n\n setAccountGroupId(accountGroupId: string): void {\n this.primaryAccountGroupId$$.next(accountGroupId);\n }\n\n searchOpportunities(searchTerm: string): Observable {\n return this.listOpportunities(searchTerm, 10);\n }\n\n getMultiOpportunity(opportunityIds: string[]): Observable {\n return this.allOpportunities$.pipe(\n map((opportunities) => opportunities.filter((o) => opportunityIds.includes(o.opportunityId))),\n );\n }\n\n private listOpportunities(searchTerm: string, pageSize: number): Observable {\n return combineLatest([this.partnerId$, this.primaryAccountGroupId$]).pipe(\n distinctUntilChanged(),\n switchMap(([partnerId, accountGroupId]) => {\n const filters = {\n accountGroupId: accountGroupId,\n };\n const sortOption = {\n field: ListOpportunitiesRequestSortField.LAST_ACTIVITY,\n direction: SortDirection.DESCENDING,\n };\n return this.salesOpportunityService.list(partnerId, '', filters, sortOption, searchTerm, pageSize, '');\n }),\n map((resp) => resp?.results || []),\n map((opportunities) =>\n opportunities.map(\n (opportunity) =>\n ({\n opportunityId: opportunity.opportunityId,\n name: opportunity.name,\n }) as SimplifiedOpportunity,\n ),\n ),\n shareReplay(1),\n catchError((error) => {\n console.error(error);\n return of([]);\n }),\n );\n }\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { SimplifiedUser } from '@galaxy/crm/static';\nimport { IAMService, User } from '@vendasta/iam';\nimport { map, Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\nconst TEAM_MEMBER_TYPES = ['partner', 'sales_person', 'digital_agent'];\n\n@Injectable({ providedIn: 'root' })\nexport class CRMUserService {\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private readonly iam: IAMService,\n ) {}\n\n private buildDisplayName(user: User): string {\n return `${user.firstName ?? ''} ${user.lastName ?? ''}`.trim() || 'system';\n }\n\n searchUsers(searchTerm?: string): Observable {\n return this.partnerId$.pipe(\n switchMap((pid) => {\n if (!pid) {\n return of([]);\n }\n const search = searchTerm?.trim().replace(/\\s+/g, ' ').split(' ');\n return this.iam.listUsers(pid, '', '', 10, TEAM_MEMBER_TYPES, search?.length ? search : [], []).pipe(\n map((resp) => resp?.users || []),\n map((users) =>\n users.map(\n (user) =>\n ({\n userId: user.userId,\n firstName: user.firstName,\n lastName: user.lastName,\n displayName: this.buildDisplayName(user),\n }) as SimplifiedUser,\n ),\n ),\n );\n }),\n );\n }\n\n getMultiUsers(userIds: string[]): Observable {\n return this.iam.getMultiUsers(userIds.map((userId) => ({ userId }))).pipe(\n map((users) =>\n users.map(\n (user) =>\n ({\n userId: user.userId,\n firstName: user.firstName,\n lastName: user.lastName,\n displayName: this.buildDisplayName(user),\n }) as SimplifiedUser,\n ),\n ),\n );\n }\n}\n", "import { BadgeColor } from '@vendasta/galaxy/badge';\nimport { PersonaType } from '@vendasta/iam';\n\nexport interface CardSubtitle {\n label: string;\n date: Date;\n}\n\nexport interface StatusBadge {\n label: string;\n color: BadgeColor;\n}\n\nexport interface CardItem {\n id: string;\n title: string;\n subtitle: CardSubtitle;\n badge: StatusBadge;\n data: T;\n}\n\nexport enum TaskStatus {\n OPEN = 'Open',\n WAITING_ON_CUSTOMER = 'Waiting on Customer',\n IN_PROGRESS = 'In Progress',\n COMPLETED = 'Completed',\n}\nexport const Statuses = [TaskStatus.IN_PROGRESS, TaskStatus.OPEN, TaskStatus.WAITING_ON_CUSTOMER, TaskStatus.COMPLETED];\n\nexport const ProjectType = ['Project'];\nexport const TaskAccess = [PersonaType.digital_agent];\n", "import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { TaskSdkService } from '@vendasta/task';\nimport {\n SearchTaskRequestInterface,\n SearchTaskResponse,\n SortDirection,\n SortInterface,\n Task,\n TaskManagerApiService,\n} from '@vendasta/task-manager';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs';\nimport { CardItem, CardSubtitle, ProjectType, StatusBadge, Statuses, TaskAccess, TaskStatus } from './interfaces';\nimport { differenceInCalendarDays, isBefore } from 'date-fns';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class CrmFulfillmentProjectsAssociationCardService {\n private readonly destroyRef = inject(DestroyRef);\n private readonly taskManagerService = inject(TaskManagerApiService);\n\n private readonly partnerId$$ = new BehaviorSubject('');\n private readonly accountGroupId$$ = new BehaviorSubject('');\n private readonly currentCursor$$ = new BehaviorSubject('');\n private readonly nextCursor$$ = new BehaviorSubject('');\n private readonly hasMore$$ = new BehaviorSubject(false);\n private readonly items$$ = new BehaviorSubject([]);\n\n readonly items$ = this.items$$.pipe(map((items) => items.map((item) => this.mapTaskToCardItem(item))));\n readonly hasMore$ = this.hasMore$$.asObservable();\n readonly hasItems$ = this.items$$.pipe(map((items) => items?.length > 0));\n readonly pageSize = 5;\n\n constructor() {\n this.setupFetchers();\n }\n\n setPartnerId(partnerId: string): void {\n this.partnerId$$.next(partnerId);\n }\n\n setAccountGroupId(accountGroupId: string): void {\n this.accountGroupId$$.next(accountGroupId);\n }\n\n fetchNext(): void {\n this.currentCursor$$.next(this.nextCursor$$.getValue());\n }\n\n private setupFetchers(): void {\n const namespace$ = combineLatest([this.partnerId$$, this.accountGroupId$$]).pipe(\n distinctUntilChanged(),\n tap(() => this.resetList()),\n filter(([partnerId, accountGroupId]) => !!partnerId && !!accountGroupId),\n map(([partnerId, accountGroupId]) => TaskSdkService.buildAccountGroupNamespace(partnerId, accountGroupId)),\n );\n const fetcher$ = combineLatest([namespace$, this.currentCursor$$]).pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap(([namespace, cursor]) => this.fetchProjects(namespace, cursor, this.pageSize)),\n );\n fetcher$.subscribe((response) => {\n this.nextCursor$$.next(response?.nextCursor || '');\n this.hasMore$$.next(response?.hasMore);\n this.items$$.next([...this.items$$.getValue(), ...(response.tasks || [])]);\n });\n }\n\n private resetList(): void {\n this.nextCursor$$.next('');\n this.hasMore$$.next(false);\n this.items$$.next([]);\n }\n\n private fetchProjects(namespace: string, cursor: string, pageSize: number): Observable {\n const sortBy: SortInterface[] = [\n { field: 'due_date', direction: SortDirection.SORT_DIRECTION_DESCENDING },\n { field: 'title.raw', direction: SortDirection.SORT_DIRECTION_ASCENDING },\n ];\n const request: SearchTaskRequestInterface = {\n cursor: cursor,\n pageSize: pageSize,\n status: Statuses,\n access: TaskAccess,\n excludeHistory: true,\n types: ProjectType,\n sorts: sortBy,\n namespace,\n };\n return this.taskManagerService.search(request);\n }\n\n private mapTaskToCardItem(task: Task): CardItem {\n const subtitle: CardSubtitle =\n task.status === TaskStatus.COMPLETED\n ? { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.SUBTITLE.COMPLETED', date: task.completionDate }\n : { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.SUBTITLE.DUE', date: task.dueDate };\n\n return {\n id: task.identity.taskId,\n title: task.title,\n subtitle,\n badge: this.statusBadge(task),\n data: task,\n };\n }\n\n private statusBadge(task: Task): StatusBadge {\n switch (task.status) {\n case TaskStatus.IN_PROGRESS:\n return this.isOverdue(task)\n ? { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.OVERDUE', color: 'yellow' }\n : { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.IN_PROGRESS', color: 'blue' };\n case TaskStatus.OPEN: {\n return this.isOverdue(task)\n ? { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.OVERDUE', color: 'yellow' }\n : { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.OPEN', color: 'blue' };\n }\n case TaskStatus.WAITING_ON_CUSTOMER: {\n return this.isOverdue(task)\n ? { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.OVERDUE', color: 'yellow' }\n : { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.WAITING_ON_CUSTOMER', color: 'yellow' };\n }\n case TaskStatus.COMPLETED: {\n return { label: 'ASSOCIATIONS.FULFILLMENT_PROJECTS.STATUS.COMPLETED', color: 'green' };\n }\n default: {\n // custom status\n return { label: task.status, color: 'grey' };\n }\n }\n }\n\n private isOverdue(task: Task): boolean {\n if (isBefore(task.dueDate, Date.now())) {\n // only considered as overdue after the EOD\n const dueDays = Math.abs(differenceInCalendarDays(Date.now(), task.dueDate));\n return dueDays > 0;\n }\n return false;\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN, CrmInjectionToken } from '@galaxy/crm/static';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { CrmFulfillmentProjectsAssociationCardService } from './fulfillment-projects.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'crm-fulfillment-projects-association-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatExpansionModule,\n MatIconModule,\n MatButtonModule,\n MatMenuModule,\n MatCardModule,\n GalaxyBadgeModule,\n ],\n templateUrl: './fulfillment-projects.component.html',\n styleUrls: ['../association-panel-shared.scss', './fulfillment-projects.component.scss'],\n providers: [CrmFulfillmentProjectsAssociationCardService],\n})\nexport class CrmFulfillmentProjectsAssociationCardComponent {\n private readonly service = inject(CrmFulfillmentProjectsAssociationCardService);\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n private readonly config = inject(CrmInjectionToken);\n\n protected readonly pageSize = this.service.pageSize;\n protected readonly hasMore$ = this.service.hasMore$;\n protected readonly items$ = this.service.items$;\n protected readonly hasItems$ = this.service.hasItems$;\n protected readonly showViewAllAction: boolean;\n\n constructor() {\n this.service.setAccountGroupId(this.data.account_group_id ?? '');\n this.config.namespace$.pipe(takeUntilDestroyed()).subscribe((partnerId) => this.service.setPartnerId(partnerId));\n this.showViewAllAction = this.config?.customActions?.navigateToFulfillmentProjects instanceof Function;\n }\n\n protected handleViewAllClick(): void {\n this.config?.customActions?.navigateToFulfillmentProjects?.({\n objectType: 'Company',\n objectId: this.data.company_id,\n });\n }\n\n protected handleShowMoreClick(): void {\n this.service.fetchNext();\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.FULFILLMENT_PROJECTS.TITLE' | translate }} \n \n @if (hasItems$ | async) {\n @for (item of items$ | async; track item.id) {\n \n \n \n {{ item.title }}\n \n \n {{ item.subtitle.label | translate }}: {{ item.subtitle.date | date: 'mediumDate' }}\n \n \n \n \n {{ item.badge.label | translate }}\n \n \n \n }\n @if (hasMore$ | async) {\n \n }\n @if (showViewAllAction) {\n \n }\n } @else {\n
\n {{ 'ASSOCIATIONS.FULFILLMENT_PROJECTS.NO_PROJECTS' | translate }}\n
\n }\n
\n", "import { AccountDates } from '@vendasta/accounts/legacy';\nimport { App, AppType } from '@vendasta/marketplace-apps';\nimport { addDays, differenceInDays, isBefore, isValid, subDays } from 'date-fns';\n\nexport interface SimpleProduct {\n productId: string;\n editionId: string;\n quantity: number;\n isTrial: boolean;\n trialEnded?: boolean;\n trialExpirationDate?: Date;\n trialDaysRemaining?: number;\n name?: string;\n iconUrl?: string;\n addons?: SimpleProduct[];\n activationDate?: Date;\n commitmentDate?: Date;\n renewalDate?: Date;\n}\n\nexport class SimpleApp extends App {\n constructor(app: App) {\n super(app);\n }\n\n public isAddon(): boolean {\n return this?.appType === AppType.APP_TYPE_ADDON;\n }\n\n public getParentId(): string {\n return this?.parentRequirements?.parentDetails?.key?.appId ?? '';\n }\n\n public getFullName(): string {\n const name = this?.sharedMarketingInformation?.name ?? '';\n const editionName = this?.sharedMarketingInformation?.editionName ?? '';\n return editionName ? `${name} | ${editionName}` : name;\n }\n\n public getIconUrl(): string {\n return this?.sharedMarketingInformation?.iconUrl ?? '';\n }\n}\n\nexport class SimpleAccountDate extends AccountDates {\n trialExpiration: Date | undefined;\n\n constructor(date: AccountDates) {\n super(date);\n\n if ('trialExpiration' in date) {\n const expiration = date['trialExpiration'];\n if (typeof expiration === 'string' || expiration instanceof Date) {\n this.trialExpiration = new Date(expiration);\n }\n }\n }\n\n public getActivationDate(): Date | undefined {\n return this.activation;\n }\n\n public getRenewalDate(): Date | undefined {\n const date = this.anniversaryDate;\n if (!date || (isValid(date) && isBefore(date, new Date()))) {\n return undefined;\n }\n if (date.getUTCDate() === date.getDate() && -date.getTimezoneOffset() < 1) {\n return subDays(date, 1);\n }\n return date;\n }\n\n public getCommitmentDate(): Date | undefined {\n if (this.anniversaryDate && this.commitmentDate) {\n if (this.anniversaryDate.getTime() < this.commitmentDate.getTime()) {\n return subDays(this.commitmentDate, 1);\n }\n }\n return undefined;\n }\n\n public isTrialExpired(): boolean {\n if (this.trialExpiration) {\n return isBefore(this.trialExpiration, new Date());\n }\n return false;\n }\n\n public getTrialDaysRemaining(): number {\n if (this.trialExpiration) {\n const dayDiff = differenceInDays(addDays(this.trialExpiration, 1), new Date());\n return Math.max(0, dayDiff);\n }\n return 0;\n }\n\n public getTrialExpirationDate(): Date | undefined {\n return this.trialExpiration;\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { AccountsService, ActivationStatus } from '@vendasta/accounts';\nimport { AccountDates, AccountsService as LegacyAccountsService } from '@vendasta/accounts/legacy';\nimport { AppKey, PartnerApiService } from '@galaxy/marketplace-apps';\nimport { BehaviorSubject, Observable, Subject, catchError, combineLatest, filter, map, of, switchMap, tap } from 'rxjs';\nimport { SimpleAccountDate, SimpleApp, SimpleProduct } from './interfaces';\nimport { isBefore, isValid } from 'date-fns';\n\n@Injectable()\nexport class CrmMarketplaceProductsAssociationCardService {\n private readonly partnerId$$ = new Subject();\n private readonly accountGroupId$$ = new Subject();\n private readonly marketId$$ = new Subject();\n private readonly getProductsFailed$$ = new BehaviorSubject(false);\n\n readonly products$: Observable;\n readonly getProductsFailed$: Observable = this.getProductsFailed$$.asObservable();\n\n setPartnerId(partnerId: string): void {\n this.partnerId$$.next(partnerId);\n }\n\n setAccountGroupId(accountGroupId: string): void {\n this.accountGroupId$$.next(accountGroupId);\n }\n\n setMarketId(marketId: string): void {\n this.marketId$$.next(marketId);\n }\n\n constructor(\n private readonly accountsService: AccountsService,\n private readonly legacyAccountsService: LegacyAccountsService,\n private readonly partnerApiService: PartnerApiService,\n ) {\n const activeProducts$ = this.accountGroupId$$.pipe(\n switchMap((agid) => {\n if (!agid) {\n return of([]);\n }\n return this.accountsService.getMultiActivationStatuses([agid]);\n }),\n map((products) =>\n products\n .sort((a, b) => (a?.productId > b?.productId ? 1 : -1))\n .filter((p) => p?.productId && p.status === ActivationStatus.ACTIVATION_STATUS_ACTIVATED)\n .map((p) => ({\n productId: p.productId,\n editionId: p.editionId || '',\n isTrial: !!p.isTrial,\n quantity: p.count || 1,\n })),\n ),\n );\n\n const groupedProducts$ = combineLatest([this.partnerId$$, this.marketId$$, activeProducts$]).pipe(\n filter(([partnerId, marketId]) => !!partnerId && !!marketId),\n switchMap(([partnerId, marketId, products]) => this.fillAppDataAndGroupAddons(partnerId, marketId, products)),\n );\n\n const accountDates$ = this.accountGroupId$$.pipe(\n switchMap((agid) => {\n if (!agid) {\n return of([]);\n }\n return this.legacyAccountsService.listAccountDates(agid, '', 1000);\n }),\n catchError((err) => {\n console.error(err);\n return of([]);\n }),\n );\n\n this.products$ = combineLatest([groupedProducts$, accountDates$]).pipe(\n map(([products, dates]) => this.fillProductDates(products, dates)),\n tap(() => this.getProductsFailed$$.next(false)),\n catchError((err) => {\n console.error(err);\n this.getProductsFailed$$.next(true);\n return of([]);\n }),\n );\n }\n\n fillAppDataAndGroupAddons(\n partnerId: string,\n marketId: string,\n products: SimpleProduct[],\n ): Observable {\n if (!products?.length) {\n return of([]);\n }\n\n const productAppKeys = products.map(\n (product) => new AppKey({ appId: product.productId, editionId: product.editionId }),\n );\n return this.partnerApiService\n .getMultiApp({\n partnerId: partnerId,\n marketId: marketId,\n appKeys: productAppKeys,\n includeNotEnabled: true,\n })\n .pipe(\n map(({ apps }) => {\n const productsToAddons: Record = {};\n apps.forEach((a) => {\n const app = new SimpleApp(a);\n if (app.isAddon()) {\n productsToAddons[app.getParentId()] = [];\n }\n });\n\n return products.flatMap((product, idx) => {\n const app = new SimpleApp(apps[idx]);\n product.name = app.getFullName();\n product.iconUrl = app.getIconUrl();\n\n if (app.isAddon() && app.getParentId()) {\n productsToAddons[app.getParentId()].push(product);\n return [];\n }\n product.addons = productsToAddons[product.productId];\n return [product];\n });\n }),\n );\n }\n\n private fillProductDate(product: SimpleProduct, date: AccountDates | undefined): void {\n if (!date) {\n return;\n }\n\n const simpleDate = new SimpleAccountDate(date);\n product.activationDate = simpleDate.getActivationDate();\n product.trialEnded = simpleDate.isTrialExpired();\n product.trialExpirationDate = simpleDate.getTrialExpirationDate();\n product.trialDaysRemaining = simpleDate.getTrialDaysRemaining();\n product.renewalDate = simpleDate.getRenewalDate();\n product.commitmentDate = simpleDate.getCommitmentDate();\n }\n\n private dateIsForProduct(date: AccountDates, productId: string, addonId?: string): boolean {\n const isDeactivated = (d: AccountDates) =>\n isValid(d.deactivation) && d.deactivation.getTime() > 0 && isBefore(d.deactivation, new Date());\n\n if (addonId) {\n return date.appId === productId && date.addonId === addonId && !isDeactivated(date);\n }\n return date.appId === productId && !date.addonId && !isDeactivated(date);\n }\n\n private findDateForProduct(\n productId: string,\n addonId: string,\n quantity: number,\n dates: AccountDates[],\n ): AccountDates | undefined {\n if (quantity > 1) {\n // is a multi-activateable product find oldest date\n let foundCount = 0;\n let oldestDate = undefined;\n for (const date of dates) {\n if (this.dateIsForProduct(date, productId, addonId)) {\n if (!oldestDate || isBefore(date.activation, oldestDate.activation)) {\n oldestDate = date;\n }\n\n foundCount += 1;\n if (foundCount >= quantity) {\n break;\n }\n }\n }\n return oldestDate;\n }\n\n return dates.find((d) => this.dateIsForProduct(d, productId, addonId));\n }\n\n fillProductDates(products: SimpleProduct[], dates: AccountDates[]): SimpleProduct[] {\n if (!products?.length || !dates?.length) {\n return products;\n }\n\n for (const product of products) {\n const productDate = this.findDateForProduct(product.productId, '', product.quantity, dates);\n this.fillProductDate(product, productDate);\n\n for (const addon of product.addons || []) {\n const addonDate = this.findDateForProduct(product.productId, addon.productId, addon.quantity, dates);\n this.fillProductDate(addon, addonDate);\n }\n }\n\n return products;\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { COMPANY_PROFILE_CARD_DATA_TOKEN, CrmInjectionToken } from '@galaxy/crm/static';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { ActiveItemsModule } from '@galaxy/inventory-ui';\nimport { CrmMarketplaceProductsAssociationCardService } from './marketplace-products.service';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\n\nconst defaultMarket = 'default';\n\n@Component({\n selector: 'crm-marketplace-products-association-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatExpansionModule,\n MatIconModule,\n MatButtonModule,\n MatMenuModule,\n MatCardModule,\n GalaxyBadgeModule,\n ActiveItemsModule,\n GalaxyAvatarModule,\n GalaxyLoadingSpinnerModule,\n ],\n templateUrl: './marketplace-products.component.html',\n styleUrls: ['../association-panel-shared.scss', './marketplace-products.component.scss'],\n providers: [CrmMarketplaceProductsAssociationCardService],\n})\nexport class CrmMarketplaceProductsAssociationCardComponent {\n private readonly service = inject(CrmMarketplaceProductsAssociationCardService);\n private readonly data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n private readonly config = inject(CrmInjectionToken);\n\n protected readonly products = toSignal(this.service.products$);\n protected readonly isLoaded = computed(() => this.products() !== undefined);\n protected readonly hasProducts = computed(() => !!this.products()?.length);\n protected readonly hasFailed = toSignal(this.service.getProductsFailed$);\n\n constructor() {\n this.config.namespace$.pipe(takeUntilDestroyed()).subscribe((partnerId) => this.service.setPartnerId(partnerId));\n this.service.setAccountGroupId(this.data.account_group_id ?? '');\n this.service.setMarketId(this.data.group_id || defaultMarket);\n }\n}\n", "\n \n {{ 'ASSOCIATIONS.PRODUCTS.TITLE' | translate }}\n \n @defer (when isLoaded()) {\n @if (hasProducts()) {\n @for (product of products(); track product.productId) {\n \n \n \n @for (addon of product.addons; track addon.productId) {\n
\n \n
\n }\n
\n
\n }\n } @else if (hasFailed()) {\n
\n {{ 'ASSOCIATIONS.PRODUCTS.ERROR' | translate }}\n
\n } @else {\n
{{ 'ASSOCIATIONS.PRODUCTS.NO_PRODUCTS' | translate }}
\n }\n } @placeholder {\n \n }\n
\n\n\n
\n \n {{ product.name }}\n @if (product.quantity > 1) {\n ({{ product.quantity }})\n }\n
\n
\n @if (product.isTrial) {\n @if (product.trialEnded) {\n
\n {{ 'ASSOCIATIONS.PRODUCTS.TRIAL_UPGRADE' | translate }}\n
\n
\n {{ 'ASSOCIATIONS.PRODUCTS.STATUS.TRIAL_ENDED' | translate }}\n
\n } @else {\n
\n {{ 'ASSOCIATIONS.PRODUCTS.TRIAL_SINCE' | translate }}: {{ product.activationDate | date: 'mediumDate' }}\n
\n
\n {{ 'ASSOCIATIONS.PRODUCTS.ENDS' | translate }}: {{ product.trialExpirationDate | date: 'mediumDate' }} ({{\n 'ASSOCIATIONS.PRODUCTS.DAYS_REMAINING' | translate: { days: product.trialDaysRemaining }\n }})\n
\n
\n {{ 'ASSOCIATIONS.PRODUCTS.STATUS.TRIAL' | translate }}\n
\n }\n } @else {\n
\n {{ 'ASSOCIATIONS.PRODUCTS.ACTIVE_SINCE' | translate }}: {{ product.activationDate | date: 'mediumDate' }}\n
\n @if (product.renewalDate) {\n
{{ 'ASSOCIATIONS.PRODUCTS.RENEWS' | translate }}: {{ product.renewalDate | date: 'mediumDate' }}
\n }\n @if (product.commitmentDate) {\n
\n {{ 'ASSOCIATIONS.PRODUCTS.COMMITTED_UNTIL' | translate }}: {{ product.commitmentDate | date: 'mediumDate' }}\n
\n }\n }\n
\n
\n", "import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, UrlTree } from '@angular/router';\nimport { IAMService, UserIdentifier } from '@vendasta/iamv2';\nimport { PermissionsApiService } from '@vendasta/platform-users';\nimport { Observable, combineLatest, map, of, switchMap } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { CrmInjectionToken, PAGE_ROUTES } from '@galaxy/crm/static';\n\n@Injectable()\nexport class PermissionsGuard {\n private readonly config = inject(CrmInjectionToken);\n private readonly iamService = inject(IAMService);\n private readonly permissionsApiService = inject(PermissionsApiService);\n private readonly router = inject(Router);\n\n private checkPermissions(\n objectType: string,\n partnerId: string,\n userId: string,\n routePrefix: string,\n ): Observable {\n return this.permissionsApiService.getPermissions({ partnerId, userId }).pipe(\n map((resp) => {\n const hasAccess = objectType in resp.permissions;\n return hasAccess ? true : this.router.createUrlTree([`${routePrefix}/${PAGE_ROUTES.PERMISSION_REQUIRED}`]);\n }),\n catchError(() => {\n return of(this.router.createUrlTree([`${routePrefix}/${PAGE_ROUTES.PERMISSION_REQUIRED}`]));\n }),\n );\n }\n\n canActivate(route: ActivatedRouteSnapshot): Observable {\n const objectType = route.data['objectType'];\n const currentUser$ = this.config.currentUserId$.pipe(\n switchMap((userId) => {\n const uniqueUserIdentifiers = [new UserIdentifier({ userId: userId })];\n\n return this.iamService.getMultiUsers(uniqueUserIdentifiers);\n }),\n map((response) => response && response[0]),\n catchError(() => {\n return of(null);\n }),\n );\n return combineLatest([\n currentUser$,\n this.config.currentUserId$,\n this.config.namespace$,\n this.config.parentNamespace$,\n this.config.routePrefix$,\n ]).pipe(\n switchMap(([user, userId, namespace, parentNamespace, routePrefix]) => {\n const roles = user?.roles || [];\n const hasDeveloperRole = 'developer' in roles;\n const isSuperAdmin = roles['partner']?.attributes?.attributes['is_super_admin']?.boolAttribute === true;\n\n if (hasDeveloperRole || isSuperAdmin) {\n return of(true);\n } else {\n const targetNamespace = parentNamespace || namespace;\n return this.checkPermissions(objectType, targetNamespace as string, userId as string, routePrefix as string);\n }\n }),\n );\n }\n}\n", "import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport {\n CrmFieldOptionsService,\n CrmFiltersService,\n CrmFormService,\n ContactService,\n ActivityService,\n CompanyService,\n CrmObjectService,\n ListObjectsTableService,\n CRMTrackingService,\n TranslateByObjectTypeService,\n CrmAssociationService,\n TaskTableCustomizationService,\n CrmTableStateService,\n ActivityObjectService,\n PreviewObjectService,\n DefaultAssociationActionsService,\n CompanyProfileCardsPanelService,\n CompanyTableCustomizationService,\n ContactTableCustomizationService,\n CrmFieldService,\n PAGE_ROUTES,\n TranslationModule,\n RendererSelectorService,\n AutocompleteService,\n UpdaterService,\n ValidatorFactoryService,\n CompanyFiltersService,\n ActivityAssigneeService,\n RestrictedGroupService,\n} from '@galaxy/crm/static';\nimport { BulkImportStepperService } from './bulk-import/bulk-import-stepper.service';\nimport { FieldMappingService } from './bulk-import/field-mapping-step/field-mapping.service';\nimport { CsvParserService } from './bulk-import/file-upload-step/csv-parser.service';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { ContactProfileCardsPanelService } from './crm-components/profile/profile-cards-panel/contact-profile-cards-panel.service';\nimport { PermissionsGuard } from './permissions-guard.service';\n\nimport { CompanyAdminNotesCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-admin-notes-associations-card/company-admin-notes-card.component';\nexport { CompanyAdminNotesCardComponent };\n\nimport { CompanyOpportunitiesCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-opportunities-associations-card/company-opportunities-card.component';\nexport { CompanyOpportunitiesCardComponent };\n\nimport { CompanyOrdersCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-orders-associations-card/company-orders-card.component';\nexport { CompanyOrdersCardComponent };\n\nimport { CompanyPrioritiesCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-priorities-associations-card/company-priorities-card.component';\nexport { CompanyPrioritiesCardComponent };\n\nimport { CompanyReportsCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-reports-associations-card/company-reports-card.component';\nexport { CompanyReportsCardComponent };\n\nimport { CompanyUtmAttributesCardComponent } from './crm-components/profile/profile-cards-panel/company-to-contact-associations/company-UTM-attributes-associations-card/company-utm-attributes-card.component';\nexport { CompanyUtmAttributesCardComponent };\n\nconst CRM_ROUTES: Routes = [\n {\n path: '',\n redirectTo: `${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.LIST}`,\n pathMatch: 'full',\n },\n {\n path: PAGE_ROUTES.CONTACT.ROOT,\n loadChildren: () => import('./contact/contact.module').then((m) => m.CrmContactModule),\n canActivate: [PermissionsGuard],\n data: { objectType: 'contacts', pageId: 'crm' }, // pageId is the Atlas sidebar navigation link ID used in the business app\n },\n {\n path: PAGE_ROUTES.COMPANY.ROOT,\n loadChildren: () => import('./company/company.module').then((m) => m.CrmCompanyModule),\n canActivate: [PermissionsGuard],\n data: { objectType: 'companies', pageId: 'nav-crm-companies' }, // pageId is the Atlas sidebar navigation link ID used in the business app\n },\n {\n path: PAGE_ROUTES.TASK.ROOT,\n loadChildren: () => import('./activity/task/task.module').then((m) => m.CrmTaskModule),\n canActivate: [PermissionsGuard],\n data: { objectType: 'activities' },\n },\n {\n path: PAGE_ROUTES.PERMISSION_REQUIRED,\n loadComponent: () =>\n import('./crm-components/permission-required/permission-required.component').then(\n (m) => m.PermissionRequiredComponent,\n ),\n },\n {\n path: '**',\n loadComponent: () => import('./page-not-found.component').then((m) => m.CrmPageNotFoundComponent),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(CRM_ROUTES), TranslationModule, GoogleMapsModule],\n exports: [RouterModule],\n providers: [\n BulkImportStepperService,\n FieldMappingService,\n CsvParserService,\n CrmFieldOptionsService,\n CrmFiltersService,\n CrmFormService,\n ListObjectsTableService,\n ActivityObjectService,\n ContactService,\n CompanyService,\n CrmObjectService,\n CrmAssociationService,\n CRMTrackingService,\n CrmFieldService,\n ActivityService,\n ContactProfileCardsPanelService,\n CompanyProfileCardsPanelService,\n TranslateByObjectTypeService,\n RendererSelectorService,\n AutocompleteService,\n UpdaterService,\n ValidatorFactoryService,\n RestrictedGroupService,\n ContactTableCustomizationService,\n CompanyTableCustomizationService,\n TaskTableCustomizationService,\n CrmTableStateService,\n PreviewObjectService,\n DefaultAssociationActionsService,\n CompanyFiltersService,\n ActivityAssigneeService,\n PermissionsGuard,\n ],\n})\nexport class CrmModule {}\n", "import { Injectable } from '@angular/core';\nimport { Market } from './interface';\nimport { switchMap, of, shareReplay, Observable, map } from 'rxjs';\nimport { RestrictedGroupService } from '@galaxy/crm/static';\nimport { MarketsService } from '../../../core/markets/markets.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MarketFilterService {\n constructor(\n private readonly restrictedGroupService: RestrictedGroupService,\n private readonly marketsService: MarketsService,\n ) {}\n\n private currentMarket$ = this.getCurrentGroupId().pipe(\n switchMap((groupId) => this.marketsService.getMarket(groupId)),\n shareReplay(1),\n );\n\n getCurrentGroupId(): Observable {\n return this.restrictedGroupService.getCurrentGroupId();\n }\n\n getCurrentMarket(): Observable {\n return this.currentMarket$;\n }\n\n getAllMarkets(): Observable {\n const markets$ = this.marketsService.getMarkets() ?? of([]);\n return markets$.pipe(\n // filter out '_DEFAULT' market, which is set to be 'All Markets', and should not be shown in the CRM filter dropdown\n map((markets) => markets.filter((m) => m.market_id !== '_DEFAULT')),\n );\n }\n}\n", "import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, EventEmitter, forwardRef, Input, Output, Signal, signal } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { switchMap, map } from 'rxjs/operators';\nimport { Market } from './interface';\nimport { MarketFilterService } from './market-filter.service';\n\nfunction marketFilterFn(market: Market, searchTerm: string): boolean {\n searchTerm = searchTerm?.toLowerCase();\n const includesMarketId = market.market_id.toLowerCase().includes(searchTerm);\n const includesMarketName = market.name.toLowerCase().includes(searchTerm);\n return includesMarketId || includesMarketName;\n}\n\n@Component({\n template: `\n \n \n \n \n {{ option?.name }}\n \n \n \n `,\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => MarketFilterInputComponent),\n },\n ],\n standalone: true,\n})\nexport class MarketFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', {\n nonNullable: true,\n });\n\n restrictedGroupId = toSignal(this.marketFilterService.getCurrentGroupId());\n restrictedMarket = toSignal(this.marketFilterService.getCurrentMarket());\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n\n _fieldId = signal('');\n availableOptions$ = toObservable(this.searchTerm).pipe(\n takeUntilDestroyed(),\n switchMap((searchTerm) => {\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.market_id;\n return this.marketFilterService.getAllMarkets().pipe(\n map((markets) => {\n if (!filterTerm) {\n return markets;\n }\n return markets.filter((market) => marketFilterFn(market, filterTerm));\n }),\n );\n }),\n );\n\n availableOptions = toSignal(this.availableOptions$);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n clearValue(): void {\n this.formControl.setValue('');\n }\n\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.market_id;\n return availableOptions.filter((market) => marketFilterFn(market, filterTerm ?? ''));\n });\n\n constructor(private readonly marketFilterService: MarketFilterService) {\n effect(\n () => {\n const value = this.searchTerm();\n const restrictedGroupId = this.restrictedGroupId();\n if (restrictedGroupId) {\n this.formControl.disable();\n }\n\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: value?.market_id }]);\n },\n { allowSignalWrites: true },\n );\n }\n\n displayFn(availableOptions: Market[]): (market: Market | string) => string {\n return (market: Market | string): string => {\n if (!market || !availableOptions) {\n return '';\n }\n if (typeof market === 'string') {\n const foundMarket = availableOptions.find((o) => o.market_id === market);\n return foundMarket?.name || market;\n }\n return market?.name || '';\n };\n }\n}\n", "import { Component, computed, Input, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { combineLatest, map } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { Market } from './interface';\nimport { MarketFilterService } from './market-filter.service';\n\n@Component({\n template: `\n \n \n {{ selectedMarketText() }}\n \n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['./market-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class MarketFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedGroupId = signal('');\n selectedMarket = signal(null);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.selectedGroupId.set(value[0].string);\n }\n }\n\n selectedMarketText = computed(() => {\n if (!this.selectedMarket()) {\n return '';\n }\n return this.selectedMarket()?.name || this.selectedGroupId();\n });\n\n constructor(private readonly marketFilterService: MarketFilterService) {\n combineLatest([toObservable(this.selectedGroupId), this.marketFilterService.getAllMarkets()])\n .pipe(\n map(([groupId, allMarkets]: [string, Market[]]) => {\n return allMarkets.find((m) => m.market_id === groupId) || null;\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedMarket.set(result);\n });\n }\n}\n", "import { inject, InjectionToken } from '@angular/core';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport {\n ActionButton,\n CompanyCampaignsCardComponent,\n CompanyCustomColumns,\n CompanyCustomFilterChipComponent,\n CompanyCustomFilterInputComponent,\n CompanyService,\n ContactCampaignsCardComponent,\n ContactCustomColumns,\n CrmDependencies,\n CrmFieldService,\n CRMRowObject,\n DueDateCellComponent,\n MultiRowAction,\n ParentChildCompanyAssociationsCardComponent,\n PlatformExtensionFieldIds,\n ProfileCard,\n SingleRowAction,\n StandardExternalIds,\n StandardIds,\n SystemFieldIds,\n TaskCustomColumns,\n UserCellComponent,\n UserFilterChipComponent,\n UserFilterInputComponent,\n CRMSelectAllOptions,\n SelectAllAction,\n} from '@galaxy/crm/static';\nimport { FeatureFlagService, PartnerService, PartnerSubscriptionService, WhitelabelService } from '@galaxy/partner';\nimport { WhitelabelTranslationService } from '@galaxy/snapshot';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Row } from '@vendasta/galaxy/table';\nimport { combineLatest, firstValueFrom, Observable, of, take } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, map, shareReplay, switchMap } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { FeatureFlags } from '../core/features';\nimport { SnapshotService } from '../core/snapshot.service';\nimport { AssociatedAccountComponent } from './company-details/association-panel/associated-account/associated-account.component';\nimport { OpportunitiesComponent } from './company-details/association-panel/opportunities/opportunities.component';\nimport { ReportsComponent } from './company-details/association-panel/reports/reports.component';\nimport { SalesOrdersComponent } from './company-details/association-panel/sales-orders/sales-orders.component';\nimport {\n SnapshotSidepanelComponentInputs,\n SnapshotSidepanelInputs,\n SnapshotSidepanelService,\n SnapshotSidepanelServiceInputs,\n} from './company-table/snapshot-sidepanel/snapshot-sidepanel.service';\nimport { AdditionalSalespeopleCellComponent } from './custom-cells/additional-salespeople/additional-salespeople.component';\nimport { SalespersonCellComponent } from './custom-cells/salesperson/salesperson.component';\nimport { AdditionalSalespeopleFilterInputComponent } from './custom-filters/additional-salespeople/additional-salespeople-filter-input.component';\nimport { SalespersonFilterChipComponent } from './custom-filters/salesperson/salesperson-filter-chip.component';\nimport { SalespersonFilterInputComponent } from './custom-filters/salesperson/salesperson-filter-input.component';\nimport { PccCompanyToContactAssociationsCardComponent } from './profile-cards/pcc-company-to-contact-associations-card/pcc-company-to-contact-associations-card.component';\nimport { PccContactToCompanyAssociationsCardComponent } from './profile-cards/pcc-contact-to-company-associations-card/pcc-contact-to-company-associations-card.component';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { CrmCampaignContactsDialogService } from '@galaxy/campaign/shared';\nimport { SenderType } from '@vendasta/campaigns';\nimport { SSOService } from '@vendasta/sso';\nimport { BusinessCenterService } from '../core/business-center.service';\nimport { AutomationsComponent } from './company-details/association-panel/automations/automations.component';\nimport { PartnerInfoComponent } from './company-details/association-panel/partner-info/partner-info.component';\nimport { ActionButtonComponent } from './company-details/open-business-app/open-business-app.component';\nimport { AdditionalSalespeopleFormInputComponent } from './custom-form-inputs/additional-salespeople/additional-salespeople-form-input.component';\nimport { SalespersonFormInputComponent } from './custom-form-inputs/salesperson/salesperson-form-input.component';\nimport { PartnerCRMOpportunityService } from './opportunity.service';\nimport { CRMUserService } from './user.service';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { InboxNavigationService, SubjectParticipant } from '@galaxy/conversation/core';\nimport { Salesperson } from '@galaxy/types';\nimport { ConversationChannel, GlobalParticipantType } from '@vendasta/conversation';\nimport { SalespersonService } from '@vendasta/sales';\nimport { Opportunity as ApiOpportunity } from '@vendasta/sales-opportunities';\nimport {\n MARKET_SELECTOR_SERVICE_TOKEN,\n OrdersUrl,\n OrdersUrlFunction,\n SalesUIOpportunityConfig,\n UserPipelines,\n UserPipelinesServiceConfig,\n} from '@vendasta/sales-ui';\nimport { SalespeopleService } from '../manage_accounts/salespeople.service';\nimport { BusinessInfoService } from './business-info.service';\nimport { FeatureAccessService } from './feature-access.service';\nimport { Feature } from 'marketplace-ui';\nimport { Router } from '@angular/router';\nimport {\n CrmFulfillmentProjectsAssociationCardComponent,\n CrmMarketplaceProductsAssociationCardComponent,\n} from '@galaxy/crm/dynamic';\nimport { MarketFilterInputComponent, MarketFilterChipComponent } from './custom-filters/market';\nimport { MarketsService } from '../core/markets/markets.service';\n\ninterface FactoryServices {\n partnerService: PartnerService;\n whitelabelTranslationService: WhitelabelTranslationService;\n snapshotService: SnapshotService;\n snapshotSidepanelService: SnapshotSidepanelService;\n crmFieldService: CrmFieldService;\n businessCenterService: BusinessCenterService;\n ssoService: SSOService;\n whitelabelService: WhitelabelService;\n translationService: TranslateService;\n companyService: CompanyService;\n router: Router;\n}\n\ninterface MultiActionServices {\n campaignService: CrmCampaignContactsDialogService;\n translationSvc: TranslateService;\n partnerSvc: PartnerService;\n featureFlagService: FeatureFlagService;\n partnerSubscriptionService: PartnerSubscriptionService;\n productAnalyticsService: ProductAnalyticsService;\n}\n\nfunction buildSingleRowTableActions(services: FactoryServices): Observable {\n return services.partnerService.getPartnerId().pipe(\n switchMap((partnerId) =>\n services.businessCenterService\n .getVBCEntryUrl(partnerId)\n .pipe(map((vbcEntryInfo) => ({ partnerId, vbcEntryInfo }))),\n ),\n map(({ partnerId, vbcEntryInfo }) => {\n const actions: SingleRowAction[] = [];\n actions.push({\n label: services.whitelabelTranslationService.instant('SNAPSHOT_REPORT.COMMON.SNAPSHOT_NAME'),\n callback: (row: Row) => {\n const sidepanelInputs: SnapshotSidepanelInputs = {\n serviceInputs: {\n accountGroupID: row?.data?.[PlatformExtensionFieldIds.AccountGroupID]?.value as string,\n } as SnapshotSidepanelServiceInputs,\n componentInputs: {\n companyID: row?.data?.[SystemFieldIds.CompanyID]?.value as string,\n partnerID: partnerId,\n trackingCategory: 'list-company-table',\n snapshotName: services.whitelabelTranslationService.instant('SNAPSHOT_REPORT.COMMON.SNAPSHOT_NAME'),\n } as SnapshotSidepanelComponentInputs,\n };\n services.snapshotSidepanelService.openSidepanel(sidepanelInputs);\n },\n });\n actions.push({\n label:\n services.translationService.instant('COMPANY.LIST_OBJECTS_TABLE.ACTIONS.OPEN_BUSINESS_APP') +\n ' ' +\n vbcEntryInfo.name,\n visible: (row: Row) => {\n const accountGroupId = row?.data?.[PlatformExtensionFieldIds.AccountGroupID]?.value as string;\n return !!accountGroupId;\n },\n callback: (row: Row) => {\n services.businessCenterService\n .getVBCEntryUrl(row?.data?.[PlatformExtensionFieldIds.AccountGroupID]?.value as string)\n .pipe(take(1))\n .subscribe((vbcEntryInfo) => {\n window.open(vbcEntryInfo.url, '_blank');\n });\n },\n });\n return actions;\n }),\n );\n}\n\nfunction buildCompanyProfileCards$(\n partnerId$: Observable,\n companyCompanyAssociationFlag$: Observable,\n): Observable {\n return combineLatest([partnerId$, companyCompanyAssociationFlag$]).pipe(\n map(([partnerId, companyCompanyAssociationFlag]) => {\n const profileCards: ProfileCard[] = [];\n if (partnerId === 'VMF') {\n profileCards.push({ component: PartnerInfoComponent });\n }\n profileCards.push({ component: PccCompanyToContactAssociationsCardComponent });\n profileCards.push({ component: AssociatedAccountComponent });\n profileCards.push({ component: CrmMarketplaceProductsAssociationCardComponent });\n profileCards.push({ component: OpportunitiesComponent });\n profileCards.push({ component: AutomationsComponent });\n profileCards.push({ component: ReportsComponent });\n profileCards.push({ component: SalesOrdersComponent });\n profileCards.push({ component: CompanyCampaignsCardComponent });\n profileCards.push({ component: CrmFulfillmentProjectsAssociationCardComponent });\n if (companyCompanyAssociationFlag) {\n profileCards.push({ component: ParentChildCompanyAssociationsCardComponent });\n }\n return profileCards;\n }),\n );\n}\n\nfunction buildContactProfileCards$(): Observable {\n const profileCards = [\n { component: PccContactToCompanyAssociationsCardComponent },\n { component: ContactCampaignsCardComponent },\n ] as ProfileCard[];\n return of(profileCards);\n}\n\nexport const CrmInjectionToken = new InjectionToken('dependencies given to crm library', {\n factory: (): CrmDependencies => {\n const inboxNavigationService = inject(InboxNavigationService);\n const partnerService = inject(PartnerService);\n const configService = inject(AppConfigService);\n const marketsService = inject(MarketsService);\n const featureFlagService = inject(FeatureFlagService);\n const whitelabelTranslationService = inject(WhitelabelTranslationService);\n const snapshotService = inject(SnapshotService);\n const snapshotSidepanelService = inject(SnapshotSidepanelService);\n const crmCampaignContactsDialogService = inject(CrmCampaignContactsDialogService);\n const translationService = inject(TranslateService);\n const whitelabelService = inject(WhitelabelService);\n const crmFieldService = inject(CrmFieldService);\n const businessCenterService = inject(BusinessCenterService);\n const ssoService = inject(SSOService);\n const userService = inject(CRMUserService);\n const opportunityService = inject(PartnerCRMOpportunityService);\n const featureAccessService = inject(FeatureAccessService);\n const companyService = inject(CompanyService);\n const router = inject(Router);\n const salespersonService = inject(SalespersonService);\n const factoryServices: FactoryServices = {\n partnerService,\n whitelabelTranslationService,\n snapshotService,\n snapshotSidepanelService,\n ssoService,\n whitelabelService,\n crmFieldService,\n businessCenterService,\n translationService,\n companyService,\n router,\n };\n const multiActionServices: MultiActionServices = {\n campaignService: crmCampaignContactsDialogService,\n translationSvc: translationService,\n partnerSvc: partnerService,\n featureFlagService: featureFlagService,\n partnerSubscriptionService: inject(PartnerSubscriptionService),\n productAnalyticsService: inject(ProductAnalyticsService),\n };\n const translate = inject(TranslateService);\n const partnerId$ = partnerService.getPartnerId();\n const companyCompanyAssociationFlag$ = partnerId$.pipe(\n switchMap((partnerID) =>\n featureFlagService.batchGetStatus(partnerID, '', [FeatureFlags.CRM_COMPANY_COMPANY_ASSOCIATION]),\n ),\n map((featureFlags) => featureFlags[FeatureFlags.CRM_COMPANY_COMPANY_ASSOCIATION]),\n );\n const contactPhoneFieldID = crmFieldService.getFieldId(StandardExternalIds.PhoneNumber);\n const emailFieldID = crmFieldService.getFieldId(StandardExternalIds.Email);\n const tagsFieldID = crmFieldService.getFieldId(StandardExternalIds.Tags);\n\n const currentUserId$ = configService.config$.pipe(\n map((config) => config.unifiedUserId),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n const salespersonId$ = combineLatest([partnerId$, currentUserId$]).pipe(\n switchMap(([partnerId, userId]) => salespersonService.getSalespersonByUserId(partnerId, userId)),\n map((salesperson) => salesperson.salespersonId),\n shareReplay({ bufferSize: 1, refCount: true }),\n catchError((_) => of('')),\n );\n\n return {\n appID: 'partner-center-client',\n routePrefix$: of('/crm'),\n namespace$: partnerId$,\n parentNamespace$: of(''),\n viewProfileFlag$: partnerId$.pipe(\n switchMap((partnerId) =>\n featureFlagService.batchGetStatus(partnerId, 'default', [FeatureFlags.CRM_PROFILE_PAGE]),\n ),\n map((featureFlags) => featureFlags[FeatureFlags.CRM_PROFILE_PAGE]),\n ),\n viewProspectorFlag$: partnerId$.pipe(\n switchMap((partnerId) =>\n featureFlagService.batchGetStatus(partnerId, 'default', [FeatureFlags.CRM_LEAD_PROSPECTOR]),\n ),\n map((featureFlags) => featureFlags[FeatureFlags.CRM_LEAD_PROSPECTOR]),\n ),\n currentUserId$: currentUserId$,\n contact: {\n selectAllTableActions$: buildSelectAllTableActions(multiActionServices),\n multiRowTableActions$: buildMultiRowTableActions(multiActionServices),\n profileCards$: buildContactProfileCards$(),\n filterInputOverrides$: of([\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.PRIMARY_COMPANY'),\n fieldId: StandardIds.ContactPrimaryCompanyID,\n filterInput: CompanyCustomFilterInputComponent,\n filterChip: CompanyCustomFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.SALESPERSON'),\n fieldId: StandardIds.ContactPrimarySalespersonID,\n filterInput: SalespersonFilterInputComponent,\n filterChip: SalespersonFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.ADDITIONAL_SALESPEOPLE'),\n fieldId: StandardIds.ContactAdditionalSalespersonIDs,\n filterInput: AdditionalSalespeopleFilterInputComponent,\n filterChip: SalespersonFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.GROUP'),\n fieldId: SystemFieldIds.ContactGroupID,\n filterInput: MarketFilterInputComponent,\n filterChip: MarketFilterChipComponent,\n },\n ]),\n tableCustomCells: [\n {\n fieldIds: [StandardIds.ContactPrimarySalespersonID],\n columnDefinition: {\n id: 'customSalespersonColumn',\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.SALESPERSON'),\n },\n customCellComponent: SalespersonCellComponent,\n },\n {\n fieldIds: [StandardIds.ContactAdditionalSalespersonIDs],\n columnDefinition: {\n id: 'customAdditionalSalespeopleColumn',\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.ADDITIONAL_SALESPEOPLE'),\n },\n customCellComponent: AdditionalSalespeopleCellComponent,\n },\n ],\n formCustomInputs: [\n {\n fieldId: StandardIds.ContactPrimarySalespersonID,\n component: SalespersonFormInputComponent,\n },\n {\n fieldId: StandardIds.ContactAdditionalSalespersonIDs,\n component: AdditionalSalespeopleFormInputComponent,\n },\n ],\n formDefaultOnCreateInputValues$: combineLatest([\n salespersonId$,\n configService.config$,\n marketsService.currentMarket$,\n ]).pipe(\n map(([salespersonId, appConfig, currentMarket]) => {\n const defaults = [\n {\n fieldId: StandardIds.ContactLifecycleStage,\n value: 'Lead',\n },\n {\n fieldId: SystemFieldIds.ContactOwnerID,\n value: appConfig.unifiedUserId,\n },\n ];\n if (!!currentMarket && !!currentMarket.market_id) {\n defaults.push({\n fieldId: SystemFieldIds.ContactGroupID,\n value: currentMarket.market_id,\n });\n }\n if (salespersonId) {\n defaults.push({\n fieldId: StandardIds.ContactPrimarySalespersonID,\n value: salespersonId,\n });\n }\n return defaults;\n }),\n ),\n baseColumnIds: [\n ContactCustomColumns.FullName,\n ContactCustomColumns.PrimaryCompanyName,\n contactPhoneFieldID,\n emailFieldID,\n tagsFieldID,\n StandardIds.ContactSourceName,\n SystemFieldIds.ContactCreated,\n ],\n },\n company: {\n singleRowTableActions$: buildSingleRowTableActions(factoryServices),\n actionButtons$: of([{ component: ActionButtonComponent }] as ActionButton[]),\n profileCards$: buildCompanyProfileCards$(partnerId$, companyCompanyAssociationFlag$),\n filterInputOverrides$: of([\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.PARENT_COMPANY'),\n fieldId: StandardIds.CompanyParentCompanyID,\n filterInput: CompanyCustomFilterInputComponent,\n filterChip: CompanyCustomFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.SALESPERSON'),\n fieldId: StandardIds.CompanyPrimarySalespersonID,\n filterInput: SalespersonFilterInputComponent,\n filterChip: SalespersonFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.ADDITIONAL_SALESPEOPLE'),\n fieldId: StandardIds.CompanyAdditionalSalespersonIDs,\n filterInput: AdditionalSalespeopleFilterInputComponent,\n filterChip: SalespersonFilterChipComponent,\n },\n {\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.GROUP'),\n fieldId: SystemFieldIds.CompanyGroupID,\n filterInput: MarketFilterInputComponent,\n filterChip: MarketFilterChipComponent,\n },\n ]),\n tableCustomCells: [\n {\n fieldIds: [StandardIds.CompanyPrimarySalespersonID],\n columnDefinition: {\n id: 'customSalespersonColumn',\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.SALESPERSON'),\n },\n customCellComponent: SalespersonCellComponent,\n },\n {\n fieldIds: [StandardIds.CompanyAdditionalSalespersonIDs],\n columnDefinition: {\n id: 'customAdditionalSalespeopleColumn',\n title: translate.instant('CRM.TABLE.CUSTOM_COLUMNS.ADDITIONAL_SALESPEOPLE'),\n },\n customCellComponent: AdditionalSalespeopleCellComponent,\n },\n ],\n formCustomInputs: [\n {\n fieldId: StandardIds.CompanyPrimarySalespersonID,\n component: SalespersonFormInputComponent,\n },\n {\n fieldId: StandardIds.CompanyAdditionalSalespersonIDs,\n component: AdditionalSalespeopleFormInputComponent,\n },\n ],\n formDefaultOnCreateInputValues$: combineLatest([\n salespersonId$,\n configService.config$,\n marketsService.currentMarket$,\n ]).pipe(\n map(([salespersonId, appConfig, currentMarket]) => {\n const defaults = [\n {\n fieldId: StandardIds.CompanyLifecycleStage,\n value: 'Lead',\n },\n {\n fieldId: SystemFieldIds.CompanyOwnerID,\n value: appConfig.unifiedUserId,\n },\n ];\n if (!!currentMarket && !!currentMarket.market_id) {\n defaults.push({\n fieldId: SystemFieldIds.CompanyGroupID,\n value: currentMarket?.market_id,\n });\n }\n if (salespersonId) {\n defaults.push({\n fieldId: StandardIds.CompanyPrimarySalespersonID,\n value: salespersonId,\n });\n }\n return defaults;\n }),\n ),\n baseColumnIds: [\n StandardIds.CompanyName,\n StandardIds.CompanyPhoneNumber,\n StandardIds.CompanyPhoneNumber,\n StandardExternalIds.Email,\n CompanyCustomColumns.FullAddress,\n 'customSalespersonColumn',\n StandardIds.CompanyTags,\n ],\n },\n task: {\n filterInputOverrides$: of([\n {\n title: translate.instant('CRM.TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.ASSIGNED_TO'),\n fieldId: SystemFieldIds.ActivityOwnerID,\n filterInput: UserFilterInputComponent,\n filterChip: UserFilterChipComponent,\n },\n ]),\n tableCustomCells: [\n {\n fieldIds: [SystemFieldIds.ActivityOwnerID],\n columnDefinition: {\n id: TaskCustomColumns.AssignedTo,\n title: translate.instant('CRM.TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.ASSIGNED_TO'),\n },\n customCellComponent: UserCellComponent,\n },\n {\n fieldIds: [StandardIds.ActivityTaskDueDate, StandardIds.ActivityTaskStatus],\n columnDefinition: {\n id: StandardIds.ActivityTaskDueDate,\n },\n customCellComponent: DueDateCellComponent,\n },\n ],\n },\n showBackToAccountsButton: true,\n services: {\n userService: userService,\n opportunityService: opportunityService,\n },\n openAccountGroupConversation: async (accountGroupId: string) => {\n const partnerId = await firstValueFrom(partnerId$);\n inboxNavigationService.gotoConversationChannel(\n [\n new SubjectParticipant({\n internalParticipantId: partnerId,\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n }),\n new SubjectParticipant({\n internalParticipantId: accountGroupId,\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP,\n }),\n ],\n ConversationChannel.CONVERSATION_CHANNEL_INTERNAL,\n );\n },\n hasAccessToFeature$: (featureString: string) => {\n const feature = featureString as Feature;\n return featureAccessService.hasAccessToFeature(feature);\n },\n openRestrictedDialog: (featureId) => {\n featureAccessService.openRestrictedDialog(featureId);\n },\n customActions: {\n navigateToFulfillmentProjects: navigateToFulfillmentProjects(factoryServices),\n },\n };\n },\n});\n\nfunction buildMultiRowTableActions(MultiActionServices: MultiActionServices): Observable {\n return MultiActionServices.partnerSvc.getPartnerId().pipe(\n switchMap((partnerId) => {\n return MultiActionServices.partnerSubscriptionService.canAccessFeature('marketing-automation', partnerId).pipe(\n map((canAccess) => {\n if (canAccess) {\n return [\n {\n label: MultiActionServices.translationSvc.instant('CONTACT_TABLE_ADD_TO_CAMPAIGN'),\n callback: (rows: Row[]) => {\n MultiActionServices.productAnalyticsService.trackEvent(\n 'user-clicked-crm-table-add-multi-contacts',\n 'send-campaign-workflow',\n 'click',\n null,\n );\n MultiActionServices.campaignService.openCampaignDialog(\n partnerId,\n SenderType.SENDER_TYPE_PARTNER,\n rows,\n );\n },\n },\n ];\n } else {\n return [];\n }\n }),\n );\n }),\n );\n}\n\nfunction buildSelectAllTableActions(MultiActionServices: MultiActionServices): Observable {\n return MultiActionServices.partnerSvc.getPartnerId().pipe(\n switchMap((partnerId) => {\n return MultiActionServices.featureFlagService.batchGetStatus(partnerId, '', ['select_all_contacts_option']).pipe(\n switchMap((showSelectAllObjects) => {\n if (showSelectAllObjects['select_all_contacts_option']) {\n return MultiActionServices.partnerSubscriptionService\n .canAccessFeature('marketing-automation', partnerId)\n .pipe(\n map((canAccess) => {\n if (canAccess) {\n return [\n {\n label: MultiActionServices.translationSvc.instant('CONTACT_TABLE_ADD_TO_CAMPAIGN'),\n callback: (rows: Row[], selectOptions?: CRMSelectAllOptions) => {\n MultiActionServices.productAnalyticsService.trackEvent(\n 'user-clicked-crm-table-select-all-contacts',\n 'send-campaign-workflow',\n 'click',\n null,\n );\n MultiActionServices.campaignService.openCampaignDialog(\n partnerId,\n SenderType.SENDER_TYPE_PARTNER,\n rows,\n selectOptions.filters,\n selectOptions.search,\n selectOptions.useSelectAll,\n selectOptions.totalObjects,\n );\n },\n selectAllVisible: true,\n },\n ];\n } else {\n return [];\n }\n }),\n );\n } else {\n return [];\n }\n }),\n );\n }),\n );\n}\n\nexport function userPipelinesFactory(): UserPipelinesServiceConfig {\n const partnerAAConfigService = inject(AppConfigService);\n\n const partnerId$ = partnerAAConfigService.config$.pipe(\n map((config) => config.partnerId),\n filter((partnerId) => !!partnerId),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n return { partnerId$: partnerId$ };\n}\n\nexport function opportunityServiceConfigFactory(): SalesUIOpportunityConfig {\n const partnerAAConfigService = inject(AppConfigService);\n const userPipelines = inject(UserPipelines);\n const salespersonService = inject(SalespersonService);\n const featureFlagService = inject(FeatureFlagService);\n const salespeopleService = inject(SalespeopleService);\n const businessInfoService = inject(BusinessInfoService);\n const partnerConfigService = inject(WhitelabelService);\n const marketSelectorService = inject(MARKET_SELECTOR_SERVICE_TOKEN);\n\n const partnerId$ = partnerAAConfigService.config$.pipe(\n map((config) => config.partnerId),\n filter((partnerId) => !!partnerId),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const userId$ = partnerAAConfigService.config$.pipe(\n map((config) => config.unifiedUserId),\n filter((userId) => !!userId),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const salesperson$ = combineLatest([partnerId$, userId$]).pipe(\n switchMap(([partnerId, userId]) => salespersonService.getSalespersonByUserId(partnerId, userId)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const salespersonId$ = salesperson$.pipe(\n map((salesperson) => salesperson.salespersonId),\n catchError((_) => of('')),\n );\n\n const canCreateOrders$ = partnerId$.pipe(\n switchMap((partnerId) => {\n return featureFlagService.batchGetStatus(partnerId, '', [FeatureFlags.ADMINS_CREATE_ORDERS]);\n }),\n map((featureFlagStatus) => featureFlagStatus[FeatureFlags.ADMINS_CREATE_ORDERS]),\n shareReplay(1),\n );\n\n const getOrdersUrlFn: OrdersUrlFunction = (opportunity: ApiOpportunity): OrdersUrl => {\n return {\n route: `/order-management/${opportunity.accountGroupId}/sales-order/create/${opportunity.opportunityId}`,\n };\n };\n\n const marketId$ = marketSelectorService.selectedMarketId$;\n\n const partnerMarket$ = combineLatest([partnerId$, marketId$]).pipe(\n map(([partnerId, marketId]) => ({\n partnerId,\n marketId,\n })),\n distinctUntilChanged(isPartnerMarketSame),\n );\n\n partnerMarket$.subscribe((pm) => salespeopleService.loadSalespeople(pm.partnerId, pm.marketId, ''));\n\n const bypassQuantityRestrictionsPartnerIds = ['VMF'];\n const bypassQuantityRestrictions$ = partnerId$.pipe(\n map((partnerId) => bypassQuantityRestrictionsPartnerIds.includes(partnerId)),\n );\n\n const salesCenterCurrency$ = partnerMarket$.pipe(\n switchMap((pm) => {\n return partnerConfigService.getConfiguration(pm.partnerId, pm.marketId);\n }),\n map((config) => {\n return config?.salesConfiguration?.stDefaultDisplayCurrency || 'USD';\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const showActivities$ = partnerId$.pipe(\n switchMap((partnerId) => {\n return featureFlagService.batchGetStatus(partnerId, '', [FeatureFlags.OPPORTUNITY_CRM_ACTIVITY]);\n }),\n map((featureFlagStatus) => featureFlagStatus[FeatureFlags.OPPORTUNITY_CRM_ACTIVITY]),\n shareReplay(1),\n );\n\n const cfg: SalesUIOpportunityConfig = {\n salespersonId$: salespersonId$,\n pipelines$: userPipelines.partnerPipelines$,\n currentPipeline$: userPipelines.getCurrentPipeline(),\n canCreateOrders$: canCreateOrders$,\n getOrdersUrl: getOrdersUrlFn,\n partnerId$: partnerId$,\n salespeople$: salespeopleService.salespeople$.pipe(\n map((salespeople) => Salesperson.convertSalespeopleFromSalesResponse(salespeople)),\n ),\n marketId$: marketId$,\n bypassQuantityRestrictions$: bypassQuantityRestrictions$,\n businessInfoService: businessInfoService,\n hasAccessToAllAccountsInMarket$: of(true),\n defaultCurrency$: salesCenterCurrency$,\n showActivities$,\n };\n\n return cfg;\n}\n\ninterface PartnerMarket {\n partnerId: string;\n marketId: string;\n}\n\nconst isPartnerMarketSame = (prev: PartnerMarket, curr: PartnerMarket): boolean => {\n return prev?.partnerId === curr?.partnerId && prev?.marketId === curr?.marketId;\n};\n\nfunction navigateToFulfillmentProjects(services: FactoryServices): (row: CRMRowObject) => void {\n return (row: CRMRowObject): void => {\n const pid$ = services.partnerService.getPartnerId();\n const crmObject$ = pid$.pipe(\n switchMap((pid) => services.companyService.getMultiObject({ namespace: pid, crmObjectIds: [row.objectId] })),\n map((companies) => companies?.crmObjects?.[0]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n const agid$ = crmObject$.pipe(\n map((o) => o?.fields?.find((f) => f.fieldId === PlatformExtensionFieldIds.AccountGroupID)?.stringValue || ''),\n );\n const name$ = crmObject$.pipe(\n map((o) => o?.fields?.find((f) => f.fieldId === StandardIds.CompanyName)?.stringValue || ''),\n );\n const companyInfo = firstValueFrom(combineLatest([agid$, name$]));\n companyInfo.then(([accountGroupId, name]) => {\n const url = 'task-manager/reporting';\n const queryParams = { 'project-report': JSON.stringify({ account: { accountGroupId, name } }) };\n services.router.navigate([url], { queryParams });\n });\n };\n}\n", "import { NgModule } from '@angular/core';\nimport { ActivitiesTimelineService, ActivityService, CrmCoreModule, CrmObjectService } from '@galaxy/crm/static';\nimport {\n ACCOUNT_SELECTOR_SERVICE_TOKEN,\n CreateOpportunityModule,\n MARKET_SELECTOR_SERVICE_TOKEN,\n OpportunityDetailsModule,\n OpportunityModule,\n OpportunitySidePanelEventsService,\n SALES_UI_OPPORTUNITY_CONFIG_TOKEN,\n UserPipelines,\n USER_PIPELINES_SERVICE_CONFIG_TOKEN,\n USER_PIPELINES_TOKEN,\n} from '@vendasta/sales-ui';\nimport { MarketSelectorService } from '../pipeline/market-selector.service';\nimport { BusinessInfoService } from './business-info.service';\nimport { CompanyAccountService } from './company-account.service';\nimport { SnapshotSidepanelService } from './company-table/snapshot-sidepanel/snapshot-sidepanel.service';\nimport { FeatureAccessService } from './feature-access.service';\nimport { CrmInjectionToken, opportunityServiceConfigFactory, userPipelinesFactory } from './providers';\nimport { PartnerCRMSalespersonService } from './salesperson.service';\nimport { CrmModule } from '@galaxy/crm/dynamic';\n\nconst CRM_PROVIDERS = [\n ActivityService,\n ActivitiesTimelineService,\n CrmObjectService,\n OpportunitySidePanelEventsService,\n SnapshotSidepanelService,\n BusinessInfoService,\n CompanyAccountService,\n PartnerCRMSalespersonService,\n FeatureAccessService,\n { provide: SALES_UI_OPPORTUNITY_CONFIG_TOKEN, useFactory: opportunityServiceConfigFactory },\n { provide: USER_PIPELINES_SERVICE_CONFIG_TOKEN, useFactory: userPipelinesFactory },\n { provide: MARKET_SELECTOR_SERVICE_TOKEN, useExisting: MarketSelectorService },\n { provide: ACCOUNT_SELECTOR_SERVICE_TOKEN, useExisting: SALES_UI_OPPORTUNITY_CONFIG_TOKEN },\n { provide: USER_PIPELINES_TOKEN, useFactory: UserPipelines.getPipelines, deps: [UserPipelines] },\n];\n\n@NgModule({\n imports: [\n CrmCoreModule.forRoot(CrmInjectionToken),\n CrmModule,\n OpportunityModule,\n OpportunityDetailsModule,\n CreateOpportunityModule,\n ],\n providers: [...CRM_PROVIDERS],\n})\nexport class PartnerCrmModule {}\n"], "mappings": "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", "names": ["\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275textInterpolate", "ctx_r0", "tags", "\u0275\u0275template", "TagsComponent_ng_container_0_ng_container_3_Template", "length", "\u0275\u0275elementContainer", "TagsComponent_ng_container_1_ng_container_1_Template", "noPrimaryTagsAlt_r2", "TagsComponent_ng_container_2_ng_container_1_Template", "hasPrimaryTag_r3", "TagsComponent_ng_template_3_ng_container_0_Template", "TagsComponent_ng_template_3_ng_container_1_Template", "slice", "join", "\u0275\u0275textInterpolate1", "TagsComponent_ng_template_5_glxy_badge_0_Template", "TagsComponent_ng_template_7_glxy_badge_0_Template", "TagsComponent", "constructor", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "TagsComponent_ng_container_0_Template", "TagsComponent_ng_container_1_Template", "TagsComponent_ng_container_2_Template", "TagsComponent_ng_template_3_Template", "\u0275\u0275templateRefExtractor", "TagsComponent_ng_template_5_Template", "TagsComponent_ng_template_7_Template", "includes", "noPrimaryTags_r4", "CommonModule", "NgIf", "NgTemplateOutlet", "MatIconModule", "GalaxyBadgeModule", "BadgeComponent", "GalaxyTooltipModule", "GalaxyTooltipDirective", "styles", "_TagsComponent", "LinkedinIconSVG", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275propertyInterpolate", "ctx_r0", "iconName", "\u0275\u0275text", "\u0275\u0275textInterpolate", "CommonAssociationCardContentComponent", "constructor", "matIconRegistry", "sanitizer", "addSvgIconLiteral", "bypassSecurityTrustHtml", "LinkedinIconSVG", "\u0275\u0275directiveInject", "MatIconRegistry", "DomSanitizer", "selectors", "inputs", "isSvgIcon", "standalone", "features", "\u0275\u0275StandaloneFeature", "ngContentSelectors", "_c0", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "CommonAssociationCardContentComponent_ng_container_1_Template", "CommonAssociationCardContentComponent_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275projection", "\u0275\u0275property", "normalIcon_r2", "CommonModule", "NgIf", "MatIconModule", "MatIcon", "styles", "_CommonAssociationCardContentComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "viewCampaigns", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction0", "_c0", "\u0275\u0275element", "CompanyCampaignsCardComponent", "constructor", "router", "snackbarService", "companyProfileCardService", "loadingAccountGroup", "signal", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "account_group_id", "navigateToCampaigns", "set", "createAccountGroupForCompany", "company_id", "pipe", "take", "subscribe", "next", "accountGroupId", "length", "error", "openErrorSnack", "duration", "SNACKBAR_DURATION", "navigateByUrl", "businessAccountLink", "replace", "\u0275\u0275directiveInject", "Router", "SnackbarService", "CompanyProfileCardsPanelService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "CompanyCampaignsCardComponent_button_5_Template", "CompanyCampaignsCardComponent_ng_template_9_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275property", "loading_r3", "CommonModule", "NgIf", "TranslationModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatInputModule", "GalaxyFormFieldModule", "MatButtonModule", "MatButton", "MatProgressSpinnerModule", "MatProgressSpinner", "styles", "_CompanyCampaignsCardComponent", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "StartCampaignDialogComponent", "constructor", "destroyRef", "modalData", "dialog", "translate", "objectService", "config", "ref", "snackbarService", "recipientCampaignService", "crmFieldService", "formGroup", "FormBuilder", "nonNullable", "group", "selectFormControl", "dateFormControl", "formatDate", "Date", "nowDate", "now", "loading$$", "BehaviorSubject", "crmObject$", "getMultiObject", "id", "pipe", "map", "resp", "object", "crmObjects", "length", "ngOnInit", "selectedCampaign", "campaign", "sendCampaign", "undefined", "openErrorSnack", "sender", "combineLatest", "namespace$", "parentNamespace$", "take", "subscribe", "namespace", "parentNamespace", "senderType", "SenderType", "SENDER_TYPE_PARTNER", "SENDER_TYPE_BUSINESS", "type", "recipient", "crmObjectId", "RecipientType", "RECIPIENT_TYPE_CRM_CONTACT", "contact", "ContactType", "CONTACT_TYPE_EMAIL", "value", "getFieldValueFromCrmObject", "StandardExternalIds", "Email", "stringValue", "emailAddress", "phoneNumber", "PhoneNumber", "next", "takeUntilDestroyed", "switchMap", "rec", "formValues", "getRawValue", "campaignStartTime", "addToCampaign", "catchError", "of", "instant", "openSuccessSnack", "title", "close", "back", "open", "AddCampaignDialogComponent", "width", "data", "\u0275\u0275directiveInject", "DestroyRef", "MAT_DIALOG_DATA", "MatDialog", "TranslateService", "CrmObjectService", "CrmInjectionToken", "MatDialogRef", "SnackbarService", "RecipientCampaignService", "CrmFieldService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275text", "\u0275\u0275template", "StartCampaignDialogComponent_glxy_form_field_24_Template", "\u0275\u0275elementContainerStart", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind2", "controls", "CommonModule", "NgIf", "DatePipe", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "GalaxyLoadingSpinnerModule", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "GalaxyEmptyStateModule", "MatIconModule", "GalaxyFormFieldModule", "FormFieldComponent", "ExtendedDirective", "MatRadioModule", "MatRadioGroup", "MatRadioButton", "FormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "VaFormsModule", "MatInputModule", "MatInput", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "MatProgressSpinnerModule", "VaFilterModule", "GalaxyInfiniteScrollTriggerModule", "ReactiveFormsModule", "FormGroupDirective", "FormControlName", "GalaxyTooltipModule", "GalaxyAlertModule", "GalaxyDatepickerModule", "MatDatepickerModule", "MatDatepicker", "styles", "_StartCampaignDialogComponent", "\u0275\u0275elementStart", "\u0275\u0275listener", "campaign_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onItemChange", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "id", "\u0275\u0275textInterpolate1", "title", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind1", "\u0275\u0275pipeBind2", "updated", "\u0275\u0275textInterpolate", "AddCampaignDialogComponent", "constructor", "translate", "objectService", "config", "ref", "campaignService", "dialog", "modalData", "searchControl", "UntypedFormControl", "campaigns$$", "BehaviorSubject", "campaigns$", "asObservable", "criteria$", "valueChanges", "pipe", "startWith", "distinctUntilChanged", "debounceTime", "loading$$", "placeholder", "crmObject$", "getMultiObject", "map", "resp", "object", "crmObjects", "length", "ngOnInit", "combineLatest", "namespace$", "parentNamespace$", "take", "subscribe", "namespace", "parentNamespace", "senderType", "SenderType", "SENDER_TYPE_PARTNER", "SENDER_TYPE_BUSINESS", "scrollable", "getScrollableList", "items$", "instant", "close", "loadNext", "loadMore", "campaign", "selectedCampaign", "senderId", "Scrollable", "criteria", "cursor", "next", "listCampaignsV2", "type", "Statuses", "STATUSES_ACTIVE", "STATUSES_PUBLISHED", "pageSize", "field", "SortField", "SORT_FIELDS_UPDATED_AT", "direction", "SortDirection", "SORT_ORDER_DESCENDING", "response", "items", "campaigns", "campaignId", "name", "toISOString", "metadata", "nextCursor", "hasMore", "catchError", "of", "openStartCampaignDialog", "open", "StartCampaignDialogComponent", "data", "width", "\u0275\u0275directiveInject", "TranslateService", "CrmObjectService", "CrmInjectionToken", "MatDialogRef", "CampaignService", "MatDialog", "MAT_DIALOG_DATA", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "RecipientCampaignService", "CrmFieldService", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275template", "AddCampaignDialogComponent_div_11_Template", "AddCampaignDialogComponent_glxy_empty_state_13_Template", "\u0275\u0275propertyInterpolate", "tmp_5_0", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "DatePipe", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "GalaxyLoadingSpinnerModule", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "GalaxyEmptyStateModule", "EmptyStateComponent", "EmptyStateHeroDirective", "MatIconModule", "MatIcon", "GalaxyFormFieldModule", "FormFieldComponent", "ExtendedDirective", "MatRadioModule", "MatRadioGroup", "MatRadioButton", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "VaFormsModule", "MatInputModule", "MatInput", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "MatProgressSpinnerModule", "VaFilterModule", "GalaxyInfiniteScrollTriggerModule", "InfiniteScrollTriggerComponent", "ReactiveFormsModule", "FormControlDirective", "GalaxyTooltipModule", "GalaxyAlertModule", "MatExpansionModule", "styles", "_AddCampaignDialogComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "campaign_r1", "link", "\u0275\u0275textInterpolate", "title", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "ContactCampaignsCardComponent_ng_container_10_mat_card_title_3_Template", "status", "ContactCampaignsCardComponent", "constructor", "dialog", "config", "campaignService", "recipientCampaignService", "router", "injector", "inject", "Injector", "data", "CONTACT_PROFILE_CARD_DATA_TOKEN", "campaigns$$", "BehaviorSubject", "campaigns$", "asObservable", "listRecipientCampaigns", "id", "useBusinessCenterCampaignLink", "toSignal", "parentNamespace$", "pipe", "map", "parentNamespace", "addCampaigns", "open", "AddCampaignDialogComponent", "width", "contactId", "list", "recipientCampaigns", "recipientCampaign", "campaignId", "switchMap", "campaignIds", "getMulti", "campaigns", "campaign", "statusAsString", "Statuses", "STATUSES_DRAFT", "STATUSES_PUBLISHED", "STATUSES_ARCHIVED", "STATUSES_ACTIVE", "STATUSES_UNSPECIFIED", "campaignLink", "getCampaignLink", "partnerId", "name", "namespace", "viewAll", "namespace$", "take", "subscribe", "navigate", "\u0275\u0275directiveInject", "MatDialog", "CrmInjectionToken", "CampaignService", "RecipientCampaignService", "Router", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "ContactCampaignsCardComponent_ng_container_10_Template", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "TranslationModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatInputModule", "GalaxyFormFieldModule", "MatButtonModule", "MatButton", "MatProgressSpinnerModule", "MatIconModule", "MatIcon", "MatCardModule", "MatCard", "MatCardContent", "MatCardHeader", "MatCardTitle", "GalaxyAvatarModule", "MatMenuModule", "MatTooltipModule", "GalaxyBadgeModule", "BadgeComponent", "RouterLink", "styles", "_ContactCampaignsCardComponent", "\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275pipeBind2", "ctx_r0", "objectType", "\u0275\u0275textInterpolate1", "\u0275\u0275textInterpolate", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SelectObjectTypeModalComponent_glxy_table_container_7_th_10_ng_container_1_Template", "data", "singleSelection", "row_r3", "preSelectedLockedRow", "newSelection", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "selectionChanged", "updateFilters", "SelectObjectTypeModalComponent_glxy_table_container_7_tr_8_Template", "SelectObjectTypeModalComponent_glxy_table_container_7_th_10_Template", "SelectObjectTypeModalComponent_glxy_table_container_7_td_11_Template", "SelectObjectTypeModalComponent_glxy_table_container_7_tr_12_Template", "\u0275\u0275pipeBind1", "columns$", "dataSource", "pageSizeOptions", "pageSize", "isMobile$", "tmp_15_0", "showFiltersApplied$", "undefined", "\u0275\u0275pureFunction0", "_c0", "_r6", "createContactModal", "SelectObjectTypeModalComponent_ng_container_10_ng_template_8_div_0_Template", "selectedRows", "length", "selectMultiple_r7", "\u0275\u0275pipeBind3", "\u0275\u0275pureFunction1", "_c1", "SelectObjectTypeModalComponent_ng_container_10_button_2_Template", "_r5", "cancel", "saveCompanies", "SelectObjectTypeModalComponent_ng_container_10_ng_container_7_Template", "SelectObjectTypeModalComponent_ng_container_10_ng_template_8_Template", "\u0275\u0275templateRefExtractor", "SelectObjectTypeModalComponent_ng_container_10_ng_template_10_Template", "hideCreateButton", "selectedRecipients_r8", "_r10", "selectContacts", "SelectObjectTypeModalComponent_ng_container_11_ng_container_4_ng_container_2_Template", "selectedRecipients_r11", "_r12", "save", "SelectObjectTypeModalComponent_ng_container_11_ng_template_5_ng_container_1_Template", "_r9", "SelectObjectTypeModalComponent_ng_container_11_ng_container_4_Template", "SelectObjectTypeModalComponent_ng_container_11_ng_template_5_Template", "hasAssociations", "saveAction_r13", "SelectObjectTypeModalComponent_ng_template_12_div_0_Template", "selectMultiple_r14", "SelectObjectTypeModalComponent", "constructor", "service", "dialogRef", "snackService", "translateService", "breakpointObserver", "translateByObjectTypeService", "initialLoading$", "showObjects$", "showEmptyState$", "filtersApplied$", "newSelectedRow", "id", "enablePreselectedRows", "enableMultiplePreSelectedRows", "preSelectedRows", "newSelectionIDs", "map", "shouldOpenSelectModal", "LIST_OBJECTS_PAGE_SIZE_OPTIONS", "LIST_OBJECTS_DEFAULT_PAGE_SIZE", "associations", "association", "associatedObject", "crmObjectId", "setObjectType", "setShowActions", "setBaseColumns", "baseColumnIds", "observe", "Breakpoints", "XSmall", "pipe", "startWith", "matches", "breakpoints", "breakpoint", "filters", "setFilters", "rows", "filteredData", "filter", "some", "item", "close", "translatedString", "getTranslationByObjectType", "openWithOptions", "instant", "duration", "SNACKBAR_DURATION", "clickedCreate", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "ListObjectsTableService", "MatDialogRef", "SnackbarService", "TranslateService", "BreakpointObserver", "TranslateByObjectTypeService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "RxState", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SelectObjectTypeModalComponent_glxy_loading_spinner_3_Template", "SelectObjectTypeModalComponent_glxy_empty_state_5_Template", "SelectObjectTypeModalComponent_glxy_table_container_7_Template", "SelectObjectTypeModalComponent_ng_container_10_Template", "SelectObjectTypeModalComponent_ng_container_11_Template", "SelectObjectTypeModalComponent_ng_template_12_Template", "SelectObjectTypeModalComponent_ng_template_14_Template", "modalTitle", "CommonModule", "NgIf", "AsyncPipe", "MatButtonModule", "MatButton", "TranslationModule", "TranslatePipe", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "GalaxyEmptyStateModule", "EmptyStateComponent", "EmptyStateHeroDirective", "EmptyStateTitleDirective", "GalaxyTableModule", "TableContainerComponent", "TableContentHeaderComponent", "GalaxySelectionComponent", "MatTableModule", "MatTable", "MatHeaderCellDef", "MatHeaderRowDef", "MatColumnDef", "MatCellDef", "MatRowDef", "MatHeaderCell", "MatCell", "MatHeaderRow", "MatRow", "GalaxyFilterChipsModule", "GalaxyFilterChipsComponent", "TranslateByObjectTypePipe", "styles", "_SelectObjectTypeModalComponent", "RemoveAssociationDialogComponent", "constructor", "dialogRef", "data", "crmAssociationService", "snackService", "remove", "removeAssociation", "associationID", "subscribe", "next", "openSuccessSnack", "duration", "SNACKBAR_DURATION", "close", "error", "openErrorSnack", "cancel", "\u0275\u0275directiveInject", "MatDialogRef", "MAT_DIALOG_DATA", "CrmAssociationService", "SnackbarService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction2", "_c0", "fromName", "removeName", "CommonModule", "TranslateModule", "TranslatePipe", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatButtonModule", "MatButton", "styles", "_RemoveAssociationDialogComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "parent_r3", "\u0275\u0275restoreView", "_r2", "ngIf", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "removeParentAssociation", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "_r5", "openSetParentModal", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "_r6", "child_r7", "$implicit", "removeChildAssociation", "\u0275\u0275template", "ParentChildCompanyAssociationsCardComponent_ng_container_15_crm_association_card_1_Template", "businessName", "ParentChildCompanyAssociationsCardComponent", "constructor", "config", "objectService", "fieldService", "associationService", "dialog", "translateService", "companyCustomizationService", "crmAssociationService", "snackService", "defaultAssociationActionsService", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "loadAssociations$$", "BehaviorSubject", "preSelectedRows$$", "canOpenModal", "removedAssociationIds$$", "removedParentAssociationIds$$", "setParentAssociation$$", "undefined", "newCompany$$", "changedAssociations$$", "injector", "Injector", "setCrmObjectIdToAssociate", "company_id", "fullName$", "getMultiObject", "pipe", "map", "resp", "object", "crmObjects", "length", "getRowFullName", "getAssociations$", "getChildCompanyAssociationsForCompany$", "latestCompanies$", "switchMap", "combineLatest", "routePrefix$", "tap", "next", "associations", "routePrefix", "copyCrmObject", "changed", "fullName", "associatedObjects", "association", "associationId", "associationType", "tags", "associatedObject", "combinedData", "existingAssociationsCombined", "combineAssociationsWithChanges", "filter", "index", "array", "findIndex", "a", "parentCompanyName", "getFieldValueFromCrmObject", "StandardIds", "CompanyName", "stringValue", "businessWebsite", "CompanyWebsite", "type", "tag", "id", "crmObjectId", "profileButtonUrl", "PAGE_ROUTES", "COMPANY", "ROOT", "SUBROUTES", "PROFILE", "replace", "childCompanies$", "asObservable", "companies", "removed", "company", "includes", "latestParentCompany$", "getParentCompanyAssociationsForCompany$", "parentCompany$", "parentCompany", "setParentAssociation", "splice", "childCompanyName", "modalData$", "objectIdAndName", "newContact", "modalTitle", "primarySelect", "description", "selectedRows", "selectedCompanyNames", "fromId", "copyCrmObjects", "newSelection", "openAddChildModal", "take", "open", "SelectObjectTypeModalComponent", "baseColumnIds", "objectType", "instant", "companyName", "hideCreateButton", "create", "providers", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "GalaxyFilterChipInjectionToken", "tableFiltersInjectionTokenGenerator", "parent", "afterClosed", "modalResponse", "clickedCreate", "Array", "selectedIDs", "row", "objects", "name", "selectedObjects", "updatedObjects", "setCopyCrmObjects", "mergeMap", "createAssociation$", "subscribe", "respCount", "error", "openSuccessSnack", "duration", "SNACKBAR_DURATION", "interpolateTranslateParams", "createdCount", "totalCount", "copyCrmObjectsUpdated", "singleSelection", "cardData", "RemoveAssociationDialogComponent", "width", "associationID", "fromName", "removeName", "success", "removeAssociation", "value", "getValue", "\u0275\u0275directiveInject", "CrmInjectionToken", "CrmObjectService", "CrmFieldService", "CrmAssociationService", "MatDialog", "TranslateService", "CompanyTableCustomizationService", "SnackbarService", "DefaultAssociationActionsService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "ParentChildCompanyAssociationsCardComponent_ng_container_8_Template", "ParentChildCompanyAssociationsCardComponent_ng_template_10_Template", "\u0275\u0275templateRefExtractor", "ParentChildCompanyAssociationsCardComponent_ng_container_15_Template", "i0", "_r1", "\u0275\u0275textInterpolate", "setParentButton_r8", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "TranslationModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "AssociationCardComponent", "GalaxyAlertModule", "MatIconModule", "MatIcon", "MatButtonModule", "MatButton", "MatTooltipModule", "MatMenuModule", "MatDialogModule", "MatCardModule", "styles", "_ParentChildCompanyAssociationsCardComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "i_r2", "\u0275\u0275restoreView", "_r1", "index", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "setPrimaryAssociation", "$event", "tagsChanged", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "association_r4", "tmp_3_0", "get", "value", "\u0275\u0275property", "tmp_4_0", "tmp_5_0", "\u0275\u0275textInterpolate1", "data", "primarySelect", "description", "tmp_8_0", "undefined", "\u0275\u0275pureFunction0", "_c0", "associationType", "SelectAssociationsModalComponent", "constructor", "dialogRef", "dialog", "crmAssociationService", "fb", "destroy$", "Subject", "associationsFormGroup", "group", "associations", "array", "ngOnInit", "selectedRows", "forEach", "row", "association", "id", "FormControl", "tags", "name", "isPrimary", "associationFormArray", "push", "valueChanges", "pipe", "takeUntil", "subscribe", "includes", "PRIMARY_TAG", "updatedTags", "filter", "tag", "setValue", "emitEvent", "ngOnDestroy", "next", "complete", "associationTags", "tagsMap", "Map", "controls", "control", "tagsArray", "length", "set", "primaryAssociation", "find", "cancel", "close", "save", "createContactCompanyAssociation$", "take", "copyCrmObjects", "selectedIndex", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "MatDialog", "CrmAssociationService", "FormBuilder", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "CompanyTableCustomizationService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "SelectAssociationsModalComponent_ng_container_5_Template", "modalTitle", "\u0275\u0275pipeBind1", "CommonModule", "NgForOf", "TranslationModule", "TranslatePipe", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatButtonModule", "MatButton", "GalaxyFormFieldModule", "FormFieldComponent", "LabelDirective", "ExtendedDirective", "MatRadioModule", "MatRadioGroup", "MatRadioButton", "ReactiveFormsModule", "EditAssociationTagsComponent", "styles", "_SelectAssociationsModalComponent", "CreateContactModalComponent", "constructor", "dialogRef", "config", "crmFormService", "snackService", "route", "previewObjectService", "trackingService", "translateByObjectTypeService", "LoadingStatus", "SavingStatus", "loadingStatus$$", "BehaviorSubject", "LOADING", "savingStatus$$", "NOT_SAVING", "routePrefix$", "fieldConfig$", "of", "PAGE_ROUTES", "crmObjectId$", "params", "pipe", "map", "shareReplay", "ngOnInit", "fieldSchemas$", "listAllFormFields$", "objectType", "fieldGroups$", "listAllObjectFormFieldGroups$", "tap", "next", "switchMap", "forkJoin", "fieldSchemas", "fieldGroups", "empty", "length", "EMPTY", "OK", "catchError", "error", "ERROR", "errorSnackbar", "onSave", "fields", "take", "SAVING", "validateAndCreateCrmObject$", "err", "previewCrmObject", "setPreviewCrmObject", "close", "subscribe", "trackEvent", "defaultMessage", "message", "translatedDefaultMessage", "getTranslationByObjectType", "openErrorSnack", "duration", "SNACKBAR_DURATION", "onCancel", "\u0275\u0275directiveInject", "MatDialogRef", "CrmInjectionToken", "CrmFormService", "SnackbarService", "ActivatedRoute", "PreviewObjectService", "CRMTrackingService", "TranslateByObjectTypeService", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275pipeBind1", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "AsyncPipe", "GalaxyPageModule", "MatButtonModule", "MatIconModule", "RouterModule", "TranslationModule", "TranslatePipe", "CrmModelDrivenFormComponent", "MatDialogModule", "encapsulation", "_CreateContactModalComponent", "CrmCreateModalContactComponent", "constructor", "objectType", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "ModelDrivenFormFieldOptionsInjectionToken", "useFactory", "modelDrivenFormFieldOptionsInjectionTokenGenerator", "PageAnalyticsInjectionToken", "pageAnalyticsInjectionTokenGenerator", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275property", "CreateContactModalComponent", "encapsulation", "_CrmCreateModalContactComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "ctx_r0", "userName", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "UserCellComponent_ng_container_0_div_1_Template", "\u0275\u0275property", "user_r2", "NO_VALUE_FOR_USER", "blank_r3", "\u0275\u0275element", "UserCellComponent", "CustomCellComponent", "value", "newValues", "fieldValues", "set", "constructor", "userService", "signal", "user", "computed", "displayName", "toObservable", "pipe", "switchMap", "userId", "find", "fieldValue", "fieldId", "SystemFieldIds", "ActivityOwnerID", "stringValue", "of", "getMultiUsers", "takeUntilDestroyed", "subscribe", "result", "length", "\u0275\u0275directiveInject", "ActivityAssigneeService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "UserCellComponent_ng_container_0_Template", "UserCellComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "UserCellComponent_ng_template_3_Template", "loading_r4", "CommonModule", "NgIf", "BlankValueComponent", "encapsulation", "_UserCellComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "ctx_r0", "daysOverdue", "hoursOverdue", "\u0275\u0275template", "DueDateCellComponent_ng_container_0_div_1_span_4_Template", "DueDateCellComponent_ng_container_0_div_1_ng_template_5_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275textInterpolate", "date", "dateFormat", "\u0275\u0275property", "showInHours_r2", "\u0275\u0275elementContainerStart", "DueDateCellComponent_ng_container_0_div_1_Template", "DueDateCellComponent_ng_container_0_ng_template_2_Template", "isOverdue", "notOverdue_r3", "\u0275\u0275element", "DueDateCellComponent", "CustomCellComponent", "value", "newValues", "dueDateField", "filter", "Boolean", "find", "field", "fieldId", "StandardIds", "ActivityTaskDueDate", "dateValue", "undefined", "statusField", "ActivityTaskStatus", "timeOverdue", "getTimeOverdue", "stringValue", "Open", "days", "hours", "dueDate", "todayHours", "Date", "now", "milisecToHours", "dueDateHours", "getTime", "Math", "floor", "constructor", "DateFormat", "medium", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "DueDateCellComponent_ng_container_0_Template", "DueDateCellComponent_ng_template_1_Template", "blank_r4", "CommonModule", "NgIf", "BlankValueComponent", "GalaxyPipesModule", "GalaxyDatePipe", "TranslateModule", "TranslatePipe", "styles", "_DueDateCellComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "selectedCompanyText", "\u0275\u0275element", "CompanyCustomFilterChipComponent", "initialValue", "value", "length", "string", "selectedCompanyId", "set", "constructor", "companyFiltersService", "signal", "selectedCompany", "computed", "displayName", "toObservable", "pipe", "switchMap", "companyIds", "getMultiCompany", "takeUntilDestroyed", "subscribe", "result", "\u0275\u0275directiveInject", "CompanyFiltersService", "selectors", "inputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "CompanyCustomFilterChipComponent_ng_container_0_Template", "CompanyCustomFilterChipComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275property", "loading_r2", "CommonModule", "NgIf", "TranslateModule", "styles", "_CompanyCustomFilterChipComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "option_r1", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "displayName", "\u0275\u0275element", "\u0275\u0275template", "CompanyCustomFilterInputComponent_glxy_form_field_0_mat_option_5_Template", "\u0275\u0275pipeBind1", "ctx_r3", "formControl", "auto_r3", "displayFn", "companyDetails_r2", "availableOptions", "CompanyCustomFilterInputComponent", "fieldId", "value", "_fieldId", "set", "initialValue", "length", "string", "setValue", "clearValue", "constructor", "companyFiltersService", "valueChanges", "EventEmitter", "FormControl", "nonNullable", "searchTerm", "toSignal", "signal", "availableOptions$", "toObservable", "pipe", "takeUntilDestroyed", "switchMap", "filterTerm", "crmObjectId", "listReadableCompanies", "companyDetails$", "getMultiCompany", "of", "effect", "emit", "allowSignalWrites", "company", "find", "\u0275\u0275directiveInject", "CompanyFiltersService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "GalaxyAbstractFilterInput", "useExisting", "forwardRef", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "CompanyCustomFilterInputComponent_glxy_form_field_0_Template", "CompanyCustomFilterInputComponent_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "loading_r5", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "TranslateModule", "TranslatePipe", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "GalaxyFormFieldModule", "FormFieldComponent", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "encapsulation", "_CompanyCustomFilterInputComponent", "AbstractAssigneeFilterChipComponent", "constructor", "selectedAssigneeIds", "signal", "selectedAssignees", "selectedAssigneesText", "computed", "length", "firstAssigneeName", "getDisplayName", "initialValue", "value", "set", "map", "v", "string", "filter", "Boolean", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "template", "rf", "ctx", "dependencies", "CommonModule", "TranslateModule", "encapsulation", "_AbstractAssigneeFilterChipComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "selectedAssigneesText", "\u0275\u0275element", "UserFilterChipComponent", "AbstractAssigneeFilterChipComponent", "getDisplayName", "user", "displayName", "constructor", "userService", "inject", "ActivityAssigneeService", "toObservable", "selectedAssigneeIds", "pipe", "switchMap", "userIds", "getMultiUsers", "takeUntilDestroyed", "subscribe", "result", "selectedAssignees", "set", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "UserFilterChipComponent_ng_container_0_Template", "UserFilterChipComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275property", "loading_r2", "CommonModule", "NgIf", "TranslateModule", "styles", "_UserFilterChipComponent", "AbstractAssigneeFilterInputComponent", "fieldId", "value", "_fieldId", "set", "initialValue", "length", "string", "formControl", "setValue", "constructor", "valueChanges", "EventEmitter", "FormControl", "nonNullable", "searchTerm", "toSignal", "signal", "availableOptions", "filteredOptions", "computed", "filterTerm", "extractFilterTerm", "filter", "assignee", "filterFn", "effect", "emit", "getId", "allowSignalWrites", "clearValue", "displayFn", "foundOption", "find", "o", "getDisplayName", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "GalaxyAbstractFilterInput", "useExisting", "forwardRef", "\u0275\u0275StandaloneFeature", "decls", "vars", "template", "rf", "ctx", "dependencies", "CommonModule", "TranslateModule", "ReactiveFormsModule", "MatInputModule", "GalaxyFormFieldModule", "MatAutocompleteModule", "encapsulation", "_AbstractAssigneeFilterInputComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "option_r1", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "displayName", "UserFilterInputComponent", "AbstractAssigneeFilterInputComponent", "filterFn", "user", "searchTerm", "userFilterFn", "extractFilterTerm", "userId", "getId", "getDisplayName", "setAvailableOptions", "userService", "allUsers$", "pipe", "takeUntilDestroyed", "subscribe", "allUsers", "availableOptions", "set", "constructor", "\u0275\u0275directiveInject", "ActivityAssigneeService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275template", "UserFilterInputComponent_mat_option_5_Template", "\u0275\u0275pipeBind1", "formControl", "auto_r2", "displayFn", "filteredOptions", "CommonModule", "NgForOf", "TranslateModule", "TranslatePipe", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "GalaxyFormFieldModule", "FormFieldComponent", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "encapsulation", "_UserFilterInputComponent", "CrmCoreModule", "forRoot", "config", "ngModule", "providers", "provide", "CrmInjectionToken", "useExisting", "deps", "_CrmCoreModule", "ACCOUNT_INFO", "businessId", "ACCOUNT_INFO_EDIT", "BusinessInfoService", "constructor", "branding", "accountGroupSdk", "getBusinessData", "get", "ProjectionFilter", "napData", "contactDetails", "accountGroupExternalIdentifiers", "legacyProductDetails", "socialUrls", "pipe", "map", "ag", "accountGroupId", "name", "companyName", "partnerId", "externalIdentifiers", "marketId", "streetAddress", "address", "city", "state", "countryCode", "country", "zip", "phoneNumber", "website", "serviceCategories", "shareOfVoiceService", "vCategories", "vCategoryIds", "EMPTY", "getBusinessDataUrl", "isEdit", "getAccountTags", "tags", "t", "value", "shareReplay", "getMarketName", "getBranding", "canEditCustomerIdentifier", "of", "canEditCustomFields", "\u0275\u0275inject", "BrandingV2Service", "AccountGroupApiService", "factory", "\u0275fac", "_BusinessInfoService", "CompanyAccountService", "constructor", "partnerId$", "companyAPIService", "inject", "CRMCompanyApiService", "platformApiService", "PlatformApiService", "crmFieldService", "CrmFieldService", "createAccountGroupState", "ObservableWorkStateMap", "accountGroupId$$", "ReplaySubject", "accountGroupId$", "asObservable", "pipe", "distinctUntilChanged", "setAccountGroupId", "accountGroupId", "next", "getCompany$", "companyId", "switchMap", "id", "req", "namespace", "crmObjectIds", "getMultiCompany", "catchError", "err", "console", "error", "of", "map", "resp", "crmObjects", "fetchAccountGroupId$", "companyAccountGroupId$", "company", "getFieldValueFromCrmObject", "PlatformExtensionFieldIds", "AccountGroupID", "stringValue", "createAccountGroup$", "partnerId", "doCreateAccountGroup", "res", "switchWhenFalsy", "take", "tap", "createAccountGroupSuccess$", "isSuccess$", "createAccountGroupLoading$", "isLoading$", "createAccountGroupResult$", "filter", "loading", "success", "getWorkResults$", "work$", "createAccountGroupForCompany", "startWork", "create$", "ok", "watch$", "getCreateAccountGroupForCompanyStatus", "accountStatus", "status", "CreateAccountGroupForCompanyStatus", "CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED", "CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED", "retry", "delay", "count", "\u0275\u0275inject", "factory", "\u0275fac", "_CompanyAccountService", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "ctx_r0", "accountGroupId$", "partnerId", "trackingCategory", "snapshotName", "hasEditAccess$", "\u0275\u0275template", "SnapshotSidepanelComponent_ng_template_2_div_0_Template", "snapshotId$", "emptyState_r2", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "SnapshotSidepanelComponent_ng_template_4_ng_container_12_Template", "emptyStateImage", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275textInterpolate", "createButtonLoading$", "createSnapshotEnabledButton_r3", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "createSnapshotClicked", "SnapshotSidepanelComponent", "constructor", "snapshotSidepanelService", "snapshotService", "getImageSrc", "snapshotId$$", "BehaviorSubject", "asObservable", "currentSnapshot", "ObservableWorkStateMap", "createButtonLoading$$", "subscriptions", "SubscriptionList", "new", "partnerHasAccessToSnapshotEditing", "setInputs", "inputs", "companyId", "companyID", "partnerID", "getCurrentSnapshot", "currentSnapshot$", "getCurrentSnapshot$", "startWork", "loading$", "isLoading$", "getWorkResults$", "pipe", "take", "subscribe", "next", "snapshot", "snapshotID", "__async", "accountGroupId", "firstValueFrom", "createSnapshotRequest", "origin", "createSnapshot", "snapshotId", "getCurrentSnapshotWithRetry", "showCreateSnapshotSuccessMessage", "error", "showCreateSnapshotErrorMessage", "notifier$", "interval", "add", "retry", "delay", "count", "ngOnDestroy", "destroy", "\u0275\u0275directiveInject", "SnapshotSidepanelService", "SnapshotService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SnapshotSidepanelComponent_div_0_Template", "SnapshotSidepanelComponent_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "SnapshotSidepanelComponent_ng_template_4_Template", "SnapshotSidepanelComponent_ng_template_6_Template", "scorecard_r5", "GalaxyEmptyStateModule", "EmptyStateComponent", "EmptyStateHeroDirective", "EmptyStateTitleDirective", "EmptyStateActionsDirective", "MatToolbarModule", "MatButtonModule", "MatButton", "CommonModule", "NgIf", "AsyncPipe", "TranslateModule", "TranslatePipe", "ScorecardModule", "ScorecardComponent", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "styles", "_SnapshotSidepanelComponent", "SnapshotSidepanelService", "constructor", "sidepanelService", "snapshotService", "companyService", "accountCreationService", "accountGroupId$$", "BehaviorSubject", "accountGroupId$", "asObservable", "snapshotId$$", "snapshotId$", "openSidepanel", "snapshotSidepanelInputs", "SnapshotSidepanelComponent", "instance", "setInputs", "componentInputs", "next", "serviceInputs", "accountGroupID", "setHeaderTitle", "snapshotName", "closeSidepanel", "createSnapshot", "req", "accountGroupId", "of", "fetchAccountGroupId$", "companyId", "partnerId", "pipe", "take", "switchMap", "createCompanySnapshot", "createAccountGroup$", "doCreateAccountGroup", "map", "res", "getCurrentSnapshot$", "getMultiCompany", "namespace", "crmObjectIds", "currentAGID", "crmObjects", "fields", "find", "field", "fieldId", "PlatformExtensionFieldIds", "AccountGroupID", "stringValue", "getCurrentSnapshotV2$", "currentSnapshotLoading$", "filter", "loading", "getCurrentSnapshotSuccess$", "success", "getCurrentSnapshotUpdates$", "\u0275\u0275inject", "SidepanelService", "SnapshotService", "CRMCompanyApiService", "CompanyAccountService", "factory", "\u0275fac", "_SnapshotSidepanelService", "FeatureAccessService", "constructor", "accessService", "inject", "StubAccessService", "dialog", "MatDialog", "dialogRef", "MatDialogRef", "hasAccessToFeature", "feature", "openRestrictedDialog", "featureId", "closeAll", "open", "AccessRestrictedDialogComponent", "width", "maxWidth", "data", "afterClosed", "pipe", "take", "subscribe", "factory", "\u0275fac", "_FeatureAccessService", "RemoveModalComponent", "constructor", "data", "dialogRef", "title", "content", "onConfirmClick", "close", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "CommonModule", "TranslateModule", "TranslatePipe", "MatButtonModule", "MatButton", "MatDialogModule", "MatDialogClose", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "styles", "_RemoveModalComponent", "AccessBusinessAppService", "constructor", "iamService", "objectService", "fieldService", "brandingService", "platformService", "translateService", "snackService", "businessAppName$", "getBusinessAppName", "addContactAsIAMUser", "contactId", "companyId", "addContactAsIamUserForCompany", "pipe", "map", "response", "AddContactAsIamUserForCompanyStatus", "ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED", "ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_FAILED", "ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_INVALID", "retry", "delay", "removeContactAsIAMUser", "removeContactAsIamUserForCompany", "getLastLogin", "getMultiObject", "resp", "object", "crmObjects", "length", "getFieldValueFromCrmObject", "PlatformExtensionFieldIds", "UserID", "stringValue", "switchMap", "userId", "getUser", "UserIdentifier", "of", "undefined", "user", "lastLogin", "getFullYear", "toLocaleDateString", "year", "month", "day", "instant", "hasAccess", "isContactIamUserForCompany", "take", "getAppAccess", "dialog", "contactName", "companyName", "desiredAccess$$", "BehaviorSubject", "hasBusinessAppAccess$$", "hasBusinessAppAccess$", "combineLatest", "interval", "asObservable", "filter", "_", "desired", "tap", "next", "getValue", "shareReplay", "refCount", "bufferSize", "actions$", "businessAppName", "label", "callback", "open", "RemoveModalComponent", "width", "data", "title", "content", "afterClosed", "subscribe", "confirmed", "translatedString", "openSuccessSnack", "error", "err", "console", "openErrorSnack", "desiredBusinessAppAccess$$", "\u0275\u0275inject", "IAMService", "CrmObjectService", "CrmFieldService", "BrandingService", "CrmPlatformApiService", "TranslateService", "SnackbarService", "factory", "\u0275fac", "_AccessBusinessAppService", "InviteToBusinessAppComponent", "constructor", "dialogRef", "data", "contactName", "name", "companyName", "businessAppName$", "invite", "close", "\u0275\u0275directiveInject", "MatDialogRef", "MAT_DIALOG_DATA", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction3", "_c0", "\u0275\u0275pipeBind1", "\u0275\u0275property", "\u0275\u0275sanitizeHtml", "\u0275\u0275textInterpolate", "CommonModule", "AsyncPipe", "MatIconModule", "MatCardModule", "MatCard", "MatCardActions", "MatCardContent", "MatCardHeader", "MatCardTitle", "MatButtonModule", "MatButton", "MatDialogModule", "TranslateModule", "TranslatePipe", "styles", "_InviteToBusinessAppComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "inviteUserToApp", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275pipeBind1", "businessAppName$", "\u0275\u0275textInterpolate", "_c1", "lastLogin_r3", "\u0275\u0275template", "AccessBusinessAppComponent_ng_container_0_ng_template_2_div_0_Template", "\u0275\u0275property", "lastLogin$", "shimmer_r4", "\u0275\u0275element", "AccessBusinessAppComponent_ng_container_0_ng_container_1_Template", "AccessBusinessAppComponent_ng_container_0_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "AccessBusinessAppComponent_ng_container_0_ng_template_4_Template", "hasAccess", "showLastLogin_r5", "AccessBusinessAppComponent", "constructor", "platformService", "snackbarService", "accessBusinessAppService", "dialog", "loading", "signal", "ngOnInit", "getLastLogin", "contactId", "open", "InviteToBusinessAppComponent", "width", "data", "name", "contactName", "companyName", "afterClosed", "subscribe", "confirmed", "set", "addContactAsIAMUser", "companyId", "response", "AddContactAsIamUserForCompanyStatus", "ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED", "desiredAccess$$", "next", "openSuccessSnack", "openErrorSnack", "\u0275\u0275directiveInject", "CrmPlatformApiService", "SnackbarService", "AccessBusinessAppService", "MatDialog", "selectors", "inputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "BrandingService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AccessBusinessAppComponent_ng_container_0_Template", "AccessBusinessAppComponent_ng_template_1_Template", "showLoading_r6", "CommonModule", "NgIf", "AsyncPipe", "MatIconModule", "TranslateModule", "TranslatePipe", "MatProgressSpinnerModule", "MatProgressSpinner", "styles", "_AccessBusinessAppComponent", "AssociationPanelModule", "CommonModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "_AssociationPanelModule", "\u0275\u0275element", "\u0275\u0275property", "accountGroupInfo_r1", "\u0275\u0275pipeBind1", "ctx_r1", "accountGroupActions$", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "AssociatedAccountComponent_Conditional_0_ng_container_5_crm_association_card_1_Template", "\u0275\u0275advance", "id", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "createAccount", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "AssociatedAccountComponent_Conditional_0_ng_template_9_button_1_Template", "isAccountGroupLoading", "loadingButton_r4", "\u0275\u0275textInterpolate", "AssociatedAccountComponent_Conditional_0_ng_container_5_Template", "AssociatedAccountComponent_Conditional_0_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "AssociatedAccountComponent_Conditional_0_ng_template_9_Template", "accountGroupInfo$", "emptyState_r5", "ACCOUNT_GROUP_ROUTE", "accountGroupId", "AssociatedAccountComponent", "constructor", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "companyAccountService", "CompanyAccountService", "accountGroupService", "AccountGroupService", "businessCenterService", "BusinessCenterService", "translateService", "TranslateService", "snackbarService", "SnackbarService", "appConfigService", "AppConfigService", "showPanel$$", "BehaviorSubject", "showPanel$", "asObservable", "toSignal", "createAccountGroupLoading$", "company_id", "accountGroupId$", "accountGroup$", "pipe", "distinctUntilChanged", "switchMap", "get", "ProjectionFilter", "napData", "accountGroupExternalIdentifiers", "of", "catchError", "error", "status", "next", "throwError", "shareReplay", "filter", "accountGroup", "map", "type", "accountGroupCompanyId", "accountGroupCompanyName", "companyName", "profileButtonUrl", "config", "userCanAccessAccounts", "hideAvatar", "getVBCEntryUrl", "vbcEntryInfo", "label", "instant", "name", "callback", "take", "subscribe", "window", "open", "url", "setAccountGroupId", "account_group_id", "takeUntilDestroyed", "companyId", "firstValueFrom", "fetchAccountGroupId$", "then", "openErrorSnack", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "AccessBusinessAppService", "BrandingService", "CrmPlatformApiService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AssociatedAccountComponent_Conditional_0_Template", "\u0275\u0275conditional", "CommonModule", "NgIf", "AsyncPipe", "MatButtonModule", "MatButton", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatCardModule", "MatIconModule", "MatIcon", "GalaxyBadgeModule", "MatMenuModule", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "TranslateModule", "TranslatePipe", "AssociationPanelModule", "AssociationCardComponent", "styles", "_AssociatedAccountComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275listener", "opportunity_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openOpportunityDetails", "\u0275\u0275template", "OpportunitiesComponent_ng_container_8_mat_card_1_glxy_badge_22_Template", "OpportunitiesComponent_ng_container_8_mat_card_1_glxy_badge_23_Template", "OpportunitiesComponent_ng_container_8_mat_card_1_glxy_badge_24_Template", "name", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind2", "value", "currency$", "pipelineStage", "lastActivity", "expectedCloseDate", "\u0275\u0275property", "stage", "OpportunitiesComponent_ng_container_8_mat_card_1_Template", "opportunities_r4", "_r5", "openCreateOpportunity", "createBtnDisabled$", "defaultCurrency", "OpportunitiesComponent", "constructor", "opportunityApi", "whitelabelService", "partnerId$", "content", "opportunityService", "sidePanelEvents", "accountCreationService", "businessService", "createOpportunityService", "accountGroupService", "translate", "userPipelines$", "snackbarService", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "opportunitiesPerPage", "subscriptions", "SubscriptionList", "new", "accountGroupId$", "marketId$", "pipe", "switchMap", "id", "emptyMarket$", "of", "accountGroupMarket$", "get", "ProjectionFilter", "napData", "accountGroupExternalIdentifiers", "map", "ag", "externalIdentifiers", "marketId", "iif", "setAccountGroupId", "account_group_id", "ngOnInit", "hasSalespersonAccess$", "sp", "setupOpportunityFetching", "add", "sidePanelCloseEvents$", "_", "clearContent", "creatingAccountGroup$", "createAccountGroupLoading$", "company_id", "sortOption", "field", "ListOpportunitiesRequestSortField", "LAST_ACTIVITY", "direction", "SortDirection", "DESCENDING", "combineLatest", "distinctUntilChanged", "partnerId", "getConfiguration", "config", "salesConfiguration", "stDefaultDisplayCurrency", "listOpportunitiesResponse$", "opportunityCreatedEvents$", "accountGroupId", "oppFilter", "list", "opportunities$", "response", "newOpp", "accountGroupID", "pipelines", "results", "opps", "opportunityMissingFromList", "unshift", "slice", "opportunity", "opportunityToOpportunityDisplay", "o", "sidePanelCloseRequested", "find", "opp", "opportunityId", "created", "getUTCFullYear", "lastActivityDate", "expectedClose", "oppPipeline", "p", "pipelineId", "length", "findStage", "probability", "projectedFirstYearValue", "loadOpportunityAndSetSelected", "loadBusinessAndSetSelected", "c", "ComponentPortal", "OpportunityDetailsComponent", "setContent", "fetchAccountGroupId$", "take", "subscribe", "next", "business", "pageData", "sourceLocation", "navigateOnSuccess", "setCreatePageDetails", "injector", "Injector", "create", "providers", "provide", "MARKET_ID_OVERRIDE_TOKEN", "useValue", "CreateOpportunityComponent", "error", "openErrorSnack", "getStage", "instant", "\u0275\u0275directiveInject", "SalesOpportunitiesService", "WhitelabelService", "SidePanelContentService", "OpportunityService", "OpportunitySidePanelEventsService", "CompanyAccountService", "OpportunityBusinessService", "CreateOpportunityService", "AccountGroupService", "TranslateService", "USER_PIPELINES_TOKEN", "SnackbarService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "OpportunitiesComponent_ng_container_6_Template", "OpportunitiesComponent_ng_container_8_Template", "OpportunitiesComponent_ng_template_10_Template", "\u0275\u0275templateRefExtractor", "OpportunitiesComponent_ng_template_12_Template", "\u0275\u0275textInterpolate", "createOpportunityButton_r7", "loadingSpinner_r6", "CommonModule", "NgForOf", "NgIf", "NgSwitch", "NgSwitchCase", "AsyncPipe", "DatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "TranslateModule", "TranslatePipe", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "MatCardModule", "MatCard", "MatCardSubtitle", "MatCardTitle", "MatButtonModule", "MatButton", "PreferredCurrencyModule", "FormatCurrencyPipe", "GalaxyBadgeModule", "BadgeComponent", "GalaxyTooltipModule", "GalaxyTooltipDirective", "styles", "_OpportunitiesComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "refreshSnapshot", "_r1", "navToViewSnapshot", "\u0275\u0275template", "ReportsComponent_ng_container_5_ng_container_1_ng_container_1_ng_container_11_Template", "ReportsComponent_ng_container_5_ng_container_1_ng_container_1_ng_template_12_Template", "\u0275\u0275templateRefExtractor", "navToEditSnapshot", "ReportsComponent_ng_container_5_ng_container_1_ng_container_1_ng_container_25_Template", "\u0275\u0275textInterpolate", "snapshotName$", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind2", "snapshot_r6", "created", "expired", "now", "activeSnapshot_r4", "actions_r5", "ReportsComponent_ng_container_5_ng_container_1_ng_container_1_Template", "snapshotLoading$", "loadingSpinner_r7", "ReportsComponent_ng_container_5_ng_container_1_Template", "snapshot$", "createSnapshotButton_r8", "\u0275\u0275elementContainer", "createSnapshotDisabledButton_r9", "createSnapshotEnabledButton_r10", "ReportsComponent_ng_template_7_ng_container_2_Template", "ReportsComponent_ng_template_7_ng_container_3_Template", "creatingSnapshot$", "_r11", "createSnapshot", "\u0275\u0275pureFunction1", "_c0", "snapshotName_r12", "ReportsComponent_ng_template_9_ng_container_0_Template", "\u0275\u0275element", "ReportsComponent", "constructor", "snapshotService", "partnerId$", "snackbarService", "translate", "accountCreationService", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "snapshotLookupId$$", "ReplaySubject", "snapshotLookupId$", "pipe", "take", "refreshingSnapshot$$", "BehaviorSubject", "refreshingSnapshot$", "asObservable", "Date", "subscriptions", "SubscriptionList", "new", "accountGroupId$", "ngOnInit", "setupAccountGroupIdFetching", "setupSnapshotFetching", "reportCardsReady$", "combineLatest", "snapshotCardReady$", "map", "_", "ngOnDestroy", "destroy", "setAccountGroupId", "account_group_id", "next", "add", "id", "getCurrentSnapshotV2$", "fetchSnapshotName", "refresh$", "filter", "partnerId", "accountGroupId", "refreshing", "origin", "switchMap", "req", "refreshCompanySnapshot", "refresh", "showRefreshSnapshotSuccessMessage", "showRefreshSnapshotErrorMessage", "getCurrentSnapshotUpdates$", "getSnapshotName$", "snapshotUrl$", "snapshot", "getSnapshotUrl$", "snapshotID", "shareReplay", "snapshotReady$", "currentSnapshotLoading$", "loading", "startWith", "createSnapshotLoading$", "distinctUntilChanged", "createAccountGroupLoading$", "company_id", "accountGroup", "openSnapshot", "url", "window", "open", "__async", "oneResultFrom", "then", "view", "err", "instant", "openErrorSnack", "edit", "fetchAccountGroupId$", "createCompanySnapshot", "subscribe", "snapshotId", "showCreateSnapshotSuccessMessage", "error", "showCreateSnapshotErrorMessage", "\u0275\u0275directiveInject", "SnapshotService", "SnackbarService", "TranslateService", "CompanyAccountService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "ReportsComponent_ng_container_5_Template", "ReportsComponent_ng_template_7_Template", "ReportsComponent_ng_template_9_Template", "ReportsComponent_ng_template_11_Template", "ReportsComponent_ng_template_13_Template", "CommonModule", "NgIf", "NgTemplateOutlet", "NgSwitch", "NgSwitchCase", "AsyncPipe", "DatePipe", "MatButtonModule", "MatButton", "MatIconButton", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatCardModule", "MatCard", "MatCardSubtitle", "MatCardTitle", "MatIconModule", "MatIcon", "GalaxyBadgeModule", "BadgeComponent", "MatMenuModule", "MatMenu", "MatMenuItem", "MatMenuTrigger", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "TranslateModule", "TranslatePipe", "AssociationPanelModule", "styles", "_ReportsComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275text", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind1", "order_r2", "requestedActivation", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openOrderDetails", "\u0275\u0275template", "SalesOrdersComponent_ng_container_7_mat_card_1_span_5_Template", "\u0275\u0275textInterpolate1", "orderId", "badge", "color", "text", "_r4", "viewMoreOrders", "SalesOrdersComponent_ng_container_7_mat_card_1_Template", "SalesOrdersComponent_ng_container_7_button_2_Template", "orders_r5", "hasMoreOrders$$", "_r6", "onCreateSalesOrderButtonClicked", "SalesOrdersComponent", "constructor", "partnerId$", "router", "accountCreationService", "snackbarService", "salesOrdersService", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "accountGroupId$", "createSalesOrderButtonLoading$", "createAccountGroupLoading$", "company_id", "BehaviorSubject", "ngOnInit", "setAccountGroupId", "account_group_id", "setupOrdersFetching", "order", "navigate", "SALES_ORDER_DETAILS", "businessId", "pipe", "take", "subscribe", "accountGroupId", "params", "buildOrdersPageForBusinessQuery", "ALL_SALES_ORDERS", "queryParams", "firstValueFrom", "fetchAccountGroupId$", "then", "SALES_ORDER_CREATE", "openErrorSnack", "orders$", "combineLatest", "switchMap", "partnerId", "list", "ListSalesOrderRequestFilters", "ListSalesOrderRequestSortOption", "field", "ListSalesOrderRequestSortField", "CREATED", "direction", "ListSalesOrderRequestSortDirection", "DESCENDING", "of", "tap", "resp", "next", "hasMore", "map", "results", "StatusToBadgeMapping", "get", "status", "Status", "SUBMITTED", "\u0275\u0275directiveInject", "Router", "CompanyAccountService", "SnackbarService", "SalesOrdersService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrdersComponent_ng_container_5_Template", "SalesOrdersComponent_ng_container_7_Template", "SalesOrdersComponent_ng_template_9_Template", "\u0275\u0275templateRefExtractor", "SalesOrdersComponent_ng_template_11_Template", "createSalesOrderButtonActive_r8", "loadingSpinner_r7", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "DatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatButtonModule", "MatButton", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "TranslateModule", "TranslatePipe", "MatIconModule", "MatIcon", "MatCardModule", "MatCard", "MatCardSubtitle", "MatCardTitle", "GalaxyBadgeModule", "BadgeComponent", "styles", "_SalesOrdersComponent", "salespersonFilterFn", "salesperson", "searchTerm", "includesFullName", "displayName", "toLowerCase", "includes", "includesFirstName", "firstName", "includesLastName", "lastName", "includesSalespersonId", "salespersonId", "includesUserId", "userId", "includesEmail", "email", "convertToReadableSalespeople", "salespeople", "map", "__spreadProps", "__spreadValues", "trim", "PartnerCRMSalespersonService", "constructor", "crmConfig", "salespersonService", "allSalespeople$$", "ReplaySubject", "namespace$", "pipe", "take", "switchMap", "namespace", "fetchAllSalespeople", "subscribe", "next", "fetchSalespeople", "cursor", "pageSize", "listSalespersons", "partnerId", "marketId", "expand", "response", "nextCursor", "takeWhile", "reduce", "all", "results", "concat", "catchError", "error", "console", "of", "getMultiSalesperson", "salespersonIds", "cachedResults$", "id", "index", "find", "sp", "notFound$", "mappedToCachedSalespeople", "filter", "m", "notFoundIds$", "notFound", "notFoundMappings$", "notFoundMap", "Map", "forEach", "set", "combineLatest", "idsToGet", "length", "withLatestFrom", "getMultiResults", "cachedResults", "notFoundMappings", "get", "\u0275\u0275inject", "CrmInjectionToken", "SalespersonService", "factory", "\u0275fac", "providedIn", "_PartnerCRMSalespersonService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "salespeopleNames", "join", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "length", "\u0275\u0275template", "AdditionalSalespeopleCellComponent_ng_container_0_div_1_glxy_badge_4_Template", "AdditionalSalespeopleCellComponent_ng_container_0_div_1_glxy_badge_5_Template", "\u0275\u0275textInterpolate", "\u0275\u0275elementContainerStart", "AdditionalSalespeopleCellComponent_ng_container_0_div_1_Template", "salespeople_r2", "NO_VALUE_FOR_SALESPERSON", "blank_r3", "\u0275\u0275element", "AdditionalSalespeopleCellComponent", "CustomCellComponent", "value", "newValues", "fieldValues", "set", "constructor", "salespersonService", "signal", "salespeople", "computed", "map", "salesperson", "displayName", "toObservable", "pipe", "switchMap", "salespersonFieldValue", "find", "fieldValue", "fieldId", "StandardIds", "CompanyAdditionalSalespersonIDs", "ContactAdditionalSalespersonIDs", "of", "salespersonIds", "stringValues", "values", "getMultiSalesperson", "takeUntilDestroyed", "subscribe", "result", "filteredNonExisting", "filter", "s", "salespersonId", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AdditionalSalespeopleCellComponent_ng_container_0_Template", "AdditionalSalespeopleCellComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "AdditionalSalespeopleCellComponent_ng_template_3_Template", "loading_r4", "CommonModule", "NgIf", "BlankValueComponent", "GalaxyBadgeModule", "BadgeComponent", "GalaxyTooltipModule", "GalaxyTooltipDirective", "styles", "_AdditionalSalespeopleCellComponent", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r1", "salespersonName", "AVATAR_WIDTH", "tmp_7_0", "salesperson_r1", "photoUrlHttps", "undefined", "\u0275\u0275textInterpolate", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SalespersonCellComponent_ng_container_0_div_1_Template", "NO_VALUE_FOR_SALESPERSON", "blank_r3", "SalespersonCellComponent", "CustomCellComponent", "value", "newValues", "fieldValues", "set", "constructor", "salespersonService", "signal", "salesperson", "computed", "displayName", "toObservable", "pipe", "switchMap", "salespersonId", "find", "fieldValue", "fieldId", "StandardIds", "CompanyPrimarySalespersonID", "ContactPrimarySalespersonID", "stringValue", "of", "getMultiSalesperson", "takeUntilDestroyed", "subscribe", "result", "length", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalespersonCellComponent_ng_container_0_Template", "SalespersonCellComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "SalespersonCellComponent_ng_template_3_Template", "loading_r4", "CommonModule", "NgIf", "BlankValueComponent", "GalaxyAvatarModule", "AvatarComponent", "styles", "_SalespersonCellComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275elementStart", "\u0275\u0275listener", "salesperson_r3", "\u0275\u0275restoreView", "_r2", "$implicit", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "remove", "salespersonId", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275textInterpolate1", "displayName", "\u0275\u0275template", "AdditionalSalespeopleFilterInputComponent_ng_template_4_mat_chip_row_0_Template", "selectedSalespeople", "option_r5", "AdditionalSalespeopleFilterInputComponent", "fieldId", "value", "_fieldId", "set", "initialValue", "salespersonIds", "map", "v", "string", "selectedSalespeopleIDs", "constructor", "salespersonService", "valueChanges", "EventEmitter", "formControl", "FormControl", "nonNullable", "separatorKeysCodes", "ENTER", "COMMA", "loadingInitialValues", "signal", "searchTerm", "toSignal", "availableOptions", "filteredOptions", "computed", "filter", "salesperson", "salespersonFilterFn", "selectedIds", "id", "find", "option", "s", "effect", "emit", "allowSignalWrites", "allSalespeople$$", "pipe", "takeUntilDestroyed", "subscribe", "allSalespeople", "selected", "event", "currentSalespeople", "hasSalesperson", "some", "sp", "salespeopleInput", "nativeElement", "setValue", "add", "chipInput", "clear", "listWithoutSelectedSalesperson", "clearValue", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "selectors", "viewQuery", "rf", "ctx", "provide", "GalaxyAbstractFilterInput", "useExisting", "forwardRef", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "AdditionalSalespeopleFilterInputComponent_ng_container_3_Template", "AdditionalSalespeopleFilterInputComponent_ng_template_4_Template", "\u0275\u0275templateRefExtractor", "$event", "i0", "_r1", "AdditionalSalespeopleFilterInputComponent_mat_option_11_Template", "loadedChips_r7", "\u0275\u0275pipeBind1", "salespersonGrid_r6", "auto_r8", "CommonModule", "NgForOf", "NgIf", "TranslateModule", "TranslatePipe", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "GalaxyFormFieldModule", "FormFieldComponent", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "MatChipsModule", "MatChipGrid", "MatChipInput", "MatChipRemove", "MatChipRow", "MatIconModule", "MatIcon", "MatProgressSpinnerModule", "MatProgressSpinner", "encapsulation", "_AdditionalSalespeopleFilterInputComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "selectedSalespeopleText", "\u0275\u0275element", "SalespersonFilterChipComponent", "initialValue", "value", "selectedSalespersonIds", "set", "map", "v", "string", "constructor", "salespersonService", "signal", "selectedSalespeople", "computed", "length", "firstSalespersonName", "displayName", "toObservable", "pipe", "switchMap", "salespersonIds", "getMultiSalesperson", "takeUntilDestroyed", "subscribe", "result", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "selectors", "inputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "SalespersonFilterChipComponent_ng_container_0_Template", "SalespersonFilterChipComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275property", "loading_r2", "CommonModule", "NgIf", "TranslateModule", "styles", "_SalespersonFilterChipComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "option_r1", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "displayName", "SalespersonFilterInputComponent", "fieldId", "value", "_fieldId", "set", "initialValue", "length", "string", "formControl", "setValue", "constructor", "salespersonService", "valueChanges", "EventEmitter", "FormControl", "nonNullable", "searchTerm", "toSignal", "signal", "availableOptions", "filteredOptions", "computed", "filterTerm", "salespersonId", "filter", "salesperson", "salespersonFilterFn", "effect", "emit", "allowSignalWrites", "allSalespeople$$", "pipe", "takeUntilDestroyed", "subscribe", "allSalespeople", "clearValue", "displayFn", "find", "sp", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "GalaxyAbstractFilterInput", "useExisting", "forwardRef", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275template", "SalespersonFilterInputComponent_mat_option_5_Template", "\u0275\u0275pipeBind1", "auto_r2", "CommonModule", "NgForOf", "TranslateModule", "TranslatePipe", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "GalaxyFormFieldModule", "FormFieldComponent", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "encapsulation", "_SalespersonFilterInputComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "contact_r2", "jobTitle", "\u0275\u0275propertyInterpolate1", "phone", "\u0275\u0275sanitizeUrl", "\u0275\u0275propertyInterpolate", "linkedInUrl", "\u0275\u0275element", "tags", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "$implicit", "ctx_r2", "\u0275\u0275resetView", "removeAssociation", "editTags", "\u0275\u0275template", "PccCompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_1_Template", "PccCompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_2_Template", "PccCompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_3_Template", "PccCompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_7_Template", "cardActions", "data", "company_id", "id", "userName", "companyName", "\u0275\u0275pipeBind1", "businessAppAccess", "hasBusinessAppAccess$", "desiredBusinessAppAccess$$", "length", "PccCompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_Template", "_r4", "showMore", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "pageSize", "PccCompanyToContactAssociationsCardComponent", "constructor", "config", "objectService", "fieldService", "associationService", "dialog", "translateService", "contactCustomizationService", "companyCustomizationService", "crmAssociationService", "snackService", "accessBusinessAppService", "defaultAssociationActionsService", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "loadAssociations$$", "BehaviorSubject", "preSelectedRows$$", "canOpenModal", "removedAssociationIds$$", "newContact$$", "changedAssociations$$", "visibleContactsCount$$", "injector", "Injector", "openCreateContactModal$$", "ReplaySubject", "openCreateContactModal$", "asObservable", "setCrmObjectIdToAssociate", "fullName$", "getMultiObject", "pipe", "map", "resp", "object", "crmObjects", "getRowFullName", "existingAssociations$", "getRemainingContactAssociationsForCompanies$", "shareReplay", "bufferSize", "refCount", "hasMore$", "combineLatest", "existing", "visibleContactsCount", "latestContacts$", "routePrefix$", "routePrefix", "copyCrmObject", "changed", "associations", "slice", "associatedObjects", "association", "associationId", "associationType", "associatedObject", "combinedData", "existingAssociationsCombined", "next", "combineAssociationsWithChanges", "filter", "index", "array", "findIndex", "a", "name", "instant", "contactName", "phoneParsed", "parsePhoneNumber", "getFieldValueFromCrmObject", "StandardExternalIds", "PhoneNumber", "stringValue", "type", "tag", "formatAsReadonlyPhone", "email", "Email", "StandardIds", "ContactJobTitle", "ContactLinkedInURL", "crmObjectId", "profileButtonUrl", "PAGE_ROUTES", "CONTACT", "ROOT", "SUBROUTES", "PROFILE", "replace", "getAppAccess", "label", "callback", "openCampaignDialog", "actions$", "take", "subscribe", "actions", "concat", "contacts$", "contacts", "removed", "contact", "includes", "modalData$", "objectIdAndName", "newContact", "modalTitle", "primarySelect", "description", "selectedRows", "selectedCompanyNames", "fromId", "copyCrmObjects", "newSelection", "ngOnInit", "switchMap", "shouldOpen", "open", "CrmCreateModalContactComponent", "width", "afterClosed", "of", "openModal", "tap", "SelectObjectTypeModalComponent", "baseColumnIds", "objectType", "create", "providers", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "GalaxyFilterChipInjectionToken", "tableFiltersInjectionTokenGenerator", "parent", "modalResponse", "clickedCreate", "Array", "selectedContactsIDs", "row", "objects", "selectedObjects", "updatedObjects", "setCopyCrmObjects", "mergeMap", "createAssociation$", "respCount", "error", "openSuccessSnack", "duration", "interpolateTranslateParams", "createdCount", "totalCount", "copyCrmObjectsUpdated", "cardData", "RemoveAssociationDialogComponent", "associationID", "fromName", "removeName", "success", "value", "getValue", "editTagsAction", "edited", "AddCampaignDialogComponent", "\u0275\u0275directiveInject", "CrmInjectionToken", "CrmObjectService", "CrmFieldService", "CrmAssociationService", "MatDialog", "TranslateService", "ContactTableCustomizationService", "CompanyTableCustomizationService", "SnackbarService", "AccessBusinessAppService", "DefaultAssociationActionsService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "BrandingService", "CrmPlatformApiService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PccCompanyToContactAssociationsCardComponent_ng_container_10_Template", "PccCompanyToContactAssociationsCardComponent_button_12_Template", "\u0275\u0275textInterpolate", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "TranslateModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "AssociationCardComponent", "CommonAssociationCardContentComponent", "TagsComponent", "AccessBusinessAppComponent", "GalaxyAlertModule", "MatIconModule", "MatIcon", "MatButtonModule", "MatButton", "MatTooltipModule", "MatMenuModule", "GalaxyContactInfoCardModule", "MatCardModule", "MatCardSubtitle", "styles", "_PccCompanyToContactAssociationsCardComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "company_r2", "tags", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "$implicit", "ctx_r2", "\u0275\u0275resetView", "removeAssociation", "editTags", "\u0275\u0275template", "PccContactToCompanyAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_5_Template", "\u0275\u0275pipeBind1", "businessAppAccess", "actions$", "id", "data", "name", "businessName", "hasBusinessAppAccess$", "desiredBusinessAppAccess$$", "length", "PccContactToCompanyAssociationsCardComponent_ng_container_10_crm_association_card_1_Template", "PccContactToCompanyAssociationsCardComponent", "constructor", "config", "objectService", "fieldService", "associationService", "dialog", "translateService", "contactCustomizationService", "companyCustomizationService", "crmAssociationService", "snackService", "accessBusinessAppService", "defaultAssociationActionsService", "inject", "CONTACT_PROFILE_CARD_DATA_TOKEN", "loadAssociations$$", "BehaviorSubject", "preSelectedRows$$", "canOpenModal", "removedAssociationIds$$", "hasAssociation", "changedAssociations$$", "injector", "Injector", "setCrmObjectIdToAssociate", "fullName$", "getMultiObject", "pipe", "map", "resp", "object", "crmObjects", "getRowFullName", "getAssociations$", "getCompanyAssociationsForContact$", "existingAssociations$", "getRemainingCompanyAssociationsForContacts$", "latestCompanies$", "switchMap", "combineLatest", "routePrefix$", "tap", "next", "associations", "routePrefix", "copyCrmObject", "existing", "changed", "associatedObjects", "association", "associationId", "associationType", "associatedObject", "combinedData", "existingAssociationsCombined", "combineAssociationsWithChanges", "filter", "index", "array", "findIndex", "a", "contactName", "companyName", "getFieldValueFromCrmObject", "StandardIds", "CompanyName", "stringValue", "companyId", "SystemFieldIds", "CompanyID", "type", "businessAddress", "address1", "CompanyPrimaryAddressLine1", "address2", "CompanyPrimaryAddressLine2", "city", "CompanyPrimaryAddressCity", "state", "CompanyPrimaryAddressState", "country", "CompanyPrimaryAddressCountry", "zip", "CompanyPrimaryAddressPostalCode", "businessWebsite", "CompanyWebsite", "phone", "CompanyPhoneNumber", "profileButtonUrl", "PAGE_ROUTES", "COMPANY", "ROOT", "SUBROUTES", "PROFILE", "replace", "crmObjectId", "getAppAccess", "companies$", "asObservable", "companies", "removed", "company", "includes", "modalData$", "fullName", "preSelectedRows", "modalTitle", "primarySelect", "description", "selectedRows", "newSelection", "openModal", "take", "open", "SelectObjectTypeModalComponent", "baseColumnIds", "objectType", "instant", "contactFullName", "create", "providers", "provide", "PageAnalyticsInjectionToken", "useFactory", "pageAnalyticsInjectionTokenGenerator", "GalaxyFilterChipInjectionToken", "tableFiltersInjectionTokenGenerator", "parent", "afterClosed", "result", "Array", "selectedCompaniesIDs", "row", "copyCrmObjects", "objects", "selectedObjects", "updatedObjects", "setCopyCrmObjects", "mergeMap", "createContactCompanyAssociation$", "SelectAssociationsModalComponent", "subscribe", "respCount", "error", "openSuccessSnack", "duration", "interpolateTranslateParams", "createdCount", "totalCount", "copyCrmObjectsUpdated", "cardData", "RemoveAssociationDialogComponent", "width", "associationID", "fromName", "removeName", "success", "value", "getValue", "editTagsAction", "edited", "\u0275\u0275directiveInject", "CrmInjectionToken", "CrmObjectService", "CrmFieldService", "CrmAssociationService", "MatDialog", "TranslateService", "ContactTableCustomizationService", "CompanyTableCustomizationService", "SnackbarService", "AccessBusinessAppService", "DefaultAssociationActionsService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "BrandingService", "CrmPlatformApiService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275text", "PccContactToCompanyAssociationsCardComponent_ng_container_10_Template", "\u0275\u0275textInterpolate", "\u0275\u0275textInterpolate1", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "TranslateModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "AssociationCardComponent", "CommonAssociationCardContentComponent", "AccessBusinessAppComponent", "TagsComponent", "MatButtonModule", "MatButton", "MatIconModule", "MatIcon", "MatTooltipModule", "MatMenuModule", "styles", "_PccContactToCompanyAssociationsCardComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onTriggerAutomationButtonClicked", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "startAutomationButtonTooltip$", "isUserSuperAdmin$", "\u0275\u0275textInterpolate1", "\u0275\u0275textInterpolate", "automation_r5", "description", "_r4", "$implicit", "handleAutomationClick", "id", "\u0275\u0275template", "AutomationsComponent_ng_container_6_ng_container_1_mat_card_subtitle_5_Template", "name", "AutomationsComponent_ng_container_6_ng_container_1_Template", "automations_r6", "\u0275\u0275element", "pageSize", "queryParamsManualTrigger", "encodeURIComponent", "routeRoot", "AutomationsComponent", "constructor", "partnerId$", "marketId$", "pipe", "map", "isSuperAdmin", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "automationService", "AutomataService", "snackbarService", "SnackbarService", "router", "Router", "marketsService", "MarketsService", "accountCreationService", "CompanyAccountService", "dialog", "MatDialog", "accountGroupId$", "setupAutomationsFetching", "creatingAccountGroup$", "createAccountGroupLoading$", "company_id", "setAccountGroupId", "account_group_id", "automationIDs$", "combineLatest", "switchMap", "partnerId", "accountGroupID", "of", "automationActivityFilter", "latestPerAutomation", "entityId", "stage", "Stage", "STAGE_WORKFLOW_STEP", "STAGE_WORKFLOW_COMPLETED", "STAGE_WORKFLOW_CANCELED", "STAGE_WORKFLOW_COMPLETED_FROM_ERROR", "listActivities", "catchError", "openErrorSnack", "resp", "results", "length", "activity", "automationId", "latestAutomations$", "automationIds", "getMultiAutomations", "handleViewAllClick", "navigate", "queryParams", "automations", "firstValueFrom", "then", "activities", "__async", "config", "getDialogConfig$", "open", "StartManualAutomationDialogComponent", "adminCanAccessAllPartnerMarkets$", "fetchAccountGroupId$", "take", "access", "marketId", "accountGroupId", "MatDialogConfig", "markets", "push", "marketIds", "entities", "Map", "EntityType", "ENTITY_TYPE_ACCOUNT_GROUP", "ENTITY_TYPE_COMPANY", "\u0275\u0275directiveInject", "AUTOMATION_IS_USER_SUPERADMIN$", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "AutomationsComponent_ng_container_4_Template", "AutomationsComponent_ng_container_6_Template", "i0", "_r1", "AutomationsComponent_ng_template_11_Template", "\u0275\u0275templateRefExtractor", "loadingSpinner_r7", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatCardModule", "MatCard", "MatCardSubtitle", "MatCardTitle", "MatTooltipModule", "MatTooltip", "MatButtonModule", "MatButton", "RouterModule", "TranslateModule", "TranslatePipe", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "MatIconModule", "MatIcon", "StartManualAutomationModule", "styles", "_AutomationsComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate1", "partnerInfo_r1", "partnerId", "\u0275\u0275propertyInterpolate1", "\u0275\u0275sanitizeUrl", "subscriptionTierId", "\u0275\u0275element", "\u0275\u0275classMap", "health", "iconCss", "\u0275\u0275textInterpolate2", "displayState", "displaySubState", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "goToPricing", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "PartnerInfoComponent_ng_container_4_div_2_Template", "PartnerInfoComponent_ng_container_4_div_3_Template", "PartnerInfoComponent_ng_container_4_div_4_Template", "PartnerInfoComponent_ng_container_4_div_5_Template", "PartnerInfoComponent_ng_container_4_div_6_Template", "\u0275\u0275property", "\u0275\u0275elementContainer", "PartnerInfoComponent_ng_template_6_ng_container_0_Template", "createPartnerButtonTemplate_r4", "\u0275\u0275pureFunction1", "_c0", "createPartnerButtonLoading$", "_r5", "createPartner", "loading_r6", "companyPartnerFieldId", "PartnerInfoComponent", "constructor", "partnerModelService", "router", "accountCreationService", "partnerHealthsService", "environmentService", "snackbarService", "data", "inject", "COMPANY_PROFILE_CARD_DATA_TOKEN", "createAccountGroupLoading$", "company_id", "setupCompanyInfoFetching", "companyPID$", "getCompany$", "pipe", "map", "company", "fields", "find", "field", "fieldId", "stringValue", "subscriptionTierId$", "switchMap", "pid", "getPartnerModel", "of", "resp", "partner", "financialHealth$", "get", "companyPartnerInfo$", "combineLatest", "filter", "tierId", "display", "displayTextAndIcon", "state", "subState", "openErrorSnack", "firstValueFrom", "fetchAccountGroupId$", "then", "accountGroupId", "navigateByUrl", "catch", "err", "console", "error", "subStateDisplay", "take", "partnerInfo", "url", "getEnvironment", "Environment", "PROD", "window", "open", "subscribe", "\u0275\u0275directiveInject", "PartnerModelApiService", "Router", "CompanyAccountService", "PartnerHealthsService", "EnvironmentService", "SnackbarService", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PartnerInfoComponent_ng_container_4_Template", "PartnerInfoComponent_ng_template_6_Template", "\u0275\u0275templateRefExtractor", "PartnerInfoComponent_ng_template_8_Template", "createPartnerButton_r7", "CommonModule", "NgIf", "NgTemplateOutlet", "AsyncPipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatButtonModule", "MatButton", "MatIconAnchor", "MatIconModule", "MatIcon", "GalaxyButtonLoadingIndicatorModule", "ButtonLoadingIndicatorComponent", "TranslateModule", "TranslatePipe", "styles", "_PartnerInfoComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "appDetails_r1", "url", "\u0275\u0275sanitizeUrl", "\u0275\u0275advance", "\u0275\u0275textInterpolate2", "ctx_r1", "translateService", "instant", "name", "ActionButtonComponent", "constructor", "data", "inject", "PROFILE_ACTION_BUTTON_DATA_TOKEN", "businessCenterService", "BusinessCenterService", "TranslateService", "ngOnInit", "businessAppButton$", "getVBCEntryUrl", "account_group_id", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "AccessBusinessAppService", "BrandingService", "CrmPlatformApiService", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "ActionButtonComponent_a_0_Template", "\u0275\u0275pipeBind1", "MatIconModule", "MatIcon", "MatButtonModule", "MatAnchor", "NgIf", "MatExpansionModule", "AsyncPipe", "encapsulation", "_ActionButtonComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "salespeopleNames", "join", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "length", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "AdditionalSalespeopleFormInputComponent_div_0_ng_container_4_ng_container_1_glxy_badge_5_Template", "AdditionalSalespeopleFormInputComponent_div_0_ng_container_4_ng_container_1_glxy_badge_6_Template", "\u0275\u0275textInterpolate", "AdditionalSalespeopleFormInputComponent_div_0_ng_container_4_ng_container_1_Template", "salespeople_r2", "NO_VALUE_FOR_SALESPERSON", "\u0275\u0275element", "AdditionalSalespeopleFormInputComponent_div_0_ng_container_4_Template", "AdditionalSalespeopleFormInputComponent_div_0_ng_template_5_Template", "\u0275\u0275templateRefExtractor", "salespeople", "loading_r3", "\u0275\u0275listener", "salesperson_r6", "\u0275\u0275restoreView", "_r5", "$implicit", "\u0275\u0275nextContext", "remove", "salespersonId", "\u0275\u0275resetView", "saveField", "displayName", "AdditionalSalespeopleFormInputComponent_ng_template_1_ng_template_6_mat_chip_row_0_Template", "selectedSalespeople", "$event", "i0", "_r7", "preventDefault", "option_r8", "AdditionalSalespeopleFormInputComponent_ng_template_1_ng_container_5_Template", "AdditionalSalespeopleFormInputComponent_ng_template_1_ng_template_6_Template", "_r4", "add", "selected", "AdditionalSalespeopleFormInputComponent_ng_template_1_mat_option_12_Template", "loadingValues", "loadedChips_r10", "searchControl", "salespersonGrid_r9", "auto_r11", "separatorKeysCodes", "filteredOptions", "AdditionalSalespeopleFormInputComponent", "FormInputComponent", "control", "_control", "markAsPristine", "setValue", "value", "selectedSalespeopleIDs", "set", "valueChanges", "pipe", "takeUntilDestroyed", "destroyRef", "subscribe", "newValue", "fieldId", "_fieldId", "hasModification", "dirty", "label", "_label", "stringValues", "values", "constructor", "salespersonService", "inlineEditService", "readOnly", "objectType", "FormControl", "nonNullable", "ENTER", "COMMA", "searchTerm", "signal", "availableOptions", "computed", "filterTerm", "filter", "salesperson", "salespersonFilterFn", "includes", "push", "map", "selectedIds", "id", "find", "option", "s", "allSalespeople$$", "tap", "allSalespeople", "displayFn", "sp", "event", "currentSalespeople", "hasSalesperson", "some", "patchValue", "markAsDirty", "salespeopleInput", "nativeElement", "chipInput", "clear", "listWithoutSelectedSalesperson", "saveInlineEdit", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "DestroyRef", "InlineEditService", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "AdditionalSalespeopleFormInputComponent_div_0_Template", "AdditionalSalespeopleFormInputComponent_ng_template_1_Template", "formField_r12", "CommonModule", "NgForOf", "NgIf", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "TranslateModule", "GalaxyFormFieldModule", "FormFieldComponent", "LabelDirective", "MatInputModule", "MatInput", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "MatChipsModule", "MatChipGrid", "MatChipInput", "MatChipRemove", "MatChipRow", "MatIconModule", "MatIcon", "MatProgressSpinnerModule", "MatProgressSpinner", "GalaxyBadgeModule", "BadgeComponent", "GalaxyTooltipModule", "GalaxyTooltipDirective", "styles", "encapsulation", "_AdditionalSalespeopleFormInputComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "salespersonName_r1", "\u0275\u0275template", "SalespersonFormInputComponent_div_0_ng_container_4_ng_container_1_Template", "\u0275\u0275property", "ctx_r1", "NO_VALUE_FOR_SALESPERSON", "\u0275\u0275element", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "SalespersonFormInputComponent_div_0_ng_container_4_Template", "SalespersonFormInputComponent_div_0_ng_template_5_Template", "\u0275\u0275templateRefExtractor", "salespersonName", "loading_r3", "\u0275\u0275listener", "$event", "i0", "\u0275\u0275restoreView", "_r5", "\u0275\u0275resetView", "preventDefault", "option_r6", "displayName", "_r4", "\u0275\u0275nextContext", "saveField", "SalespersonFormInputComponent_ng_template_1_glxy_form_field_0_mat_option_6_Template", "control", "auto_r7", "displayFn", "availableOptions", "filteredOptions", "SalespersonFormInputComponent_ng_template_1_glxy_form_field_0_Template", "SalespersonFormInputComponent_ng_template_1_ng_template_1_Template", "loadingValues", "loadingField_r8", "SalespersonFormInputComponent", "FormInputComponent", "_control", "setValue", "value", "searchTerm", "set", "valueChanges", "pipe", "takeUntilDestroyed", "destroyRef", "subscribe", "newValue", "fieldId", "_fieldId", "hasModification", "dirty", "label", "_label", "controlValue", "stringValue", "salespersonId", "constructor", "salespersonService", "inlineEditService", "readOnly", "objectType", "FormControl", "nonNullable", "signal", "computed", "filterTerm", "filter", "salesperson", "salespersonFilterFn", "find", "allSalespeople$$", "tap", "allSalespeople", "sp", "saveInlineEdit", "\u0275\u0275directiveInject", "PartnerCRMSalespersonService", "DestroyRef", "InlineEditService", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalespersonFormInputComponent_div_0_Template", "SalespersonFormInputComponent_ng_template_1_Template", "formField_r9", "CommonModule", "NgForOf", "NgIf", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "TranslateModule", "GalaxyFormFieldModule", "FormFieldComponent", "LabelDirective", "MatInputModule", "MatInput", "MatPrefix", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "MatProgressSpinnerModule", "MatProgressSpinner", "styles", "encapsulation", "_SalespersonFormInputComponent", "PartnerCRMOpportunityService", "constructor", "partnerId$", "salesOpportunityService", "primaryAccountGroupId$$", "ReplaySubject", "primaryAccountGroupId$", "asObservable", "allOpportunities$", "listOpportunities", "setAccountGroupId", "accountGroupId", "next", "searchOpportunities", "searchTerm", "getMultiOpportunity", "opportunityIds", "pipe", "map", "opportunities", "filter", "o", "includes", "opportunityId", "pageSize", "combineLatest", "distinctUntilChanged", "switchMap", "partnerId", "filters", "sortOption", "field", "ListOpportunitiesRequestSortField", "LAST_ACTIVITY", "direction", "SortDirection", "DESCENDING", "list", "resp", "results", "opportunity", "name", "shareReplay", "catchError", "error", "console", "of", "\u0275\u0275inject", "SalesOpportunitiesService", "factory", "\u0275fac", "providedIn", "_PartnerCRMOpportunityService", "TEAM_MEMBER_TYPES", "CRMUserService", "constructor", "partnerId$", "iam", "buildDisplayName", "user", "firstName", "lastName", "trim", "searchUsers", "searchTerm", "pipe", "switchMap", "pid", "of", "search", "replace", "split", "listUsers", "length", "map", "resp", "users", "userId", "displayName", "getMultiUsers", "userIds", "\u0275\u0275inject", "IAMService", "factory", "\u0275fac", "providedIn", "_CRMUserService", "TaskStatus", "Statuses", "IN_PROGRESS", "OPEN", "WAITING_ON_CUSTOMER", "COMPLETED", "ProjectType", "TaskAccess", "PersonaType", "digital_agent", "CrmFulfillmentProjectsAssociationCardService", "constructor", "destroyRef", "inject", "DestroyRef", "taskManagerService", "TaskManagerApiService", "partnerId$$", "BehaviorSubject", "accountGroupId$$", "currentCursor$$", "nextCursor$$", "hasMore$$", "items$$", "items$", "pipe", "map", "items", "item", "mapTaskToCardItem", "hasMore$", "asObservable", "hasItems$", "length", "pageSize", "setupFetchers", "setPartnerId", "partnerId", "next", "setAccountGroupId", "accountGroupId", "fetchNext", "getValue", "namespace$", "combineLatest", "distinctUntilChanged", "tap", "resetList", "filter", "TaskSdkService", "buildAccountGroupNamespace", "takeUntilDestroyed", "switchMap", "namespace", "cursor", "fetchProjects", "subscribe", "response", "nextCursor", "hasMore", "tasks", "sortBy", "field", "direction", "SortDirection", "SORT_DIRECTION_DESCENDING", "SORT_DIRECTION_ASCENDING", "request", "status", "Statuses", "access", "TaskAccess", "excludeHistory", "types", "ProjectType", "sorts", "search", "task", "subtitle", "TaskStatus", "COMPLETED", "label", "date", "completionDate", "dueDate", "id", "identity", "taskId", "title", "badge", "statusBadge", "data", "IN_PROGRESS", "isOverdue", "color", "OPEN", "WAITING_ON_CUSTOMER", "isBefore", "Date", "now", "Math", "abs", "differenceInCalendarDays", "factory", "\u0275fac", "_CrmFulfillmentProjectsAssociationCardService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "item_r1", "title", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind1", "subtitle", "label", "\u0275\u0275pipeBind2", "date", "\u0275\u0275property", "badge", "color", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleShowMoreClick", "\u0275\u0275pureFunction1", "_c0", "pageSize", "_r4", "handleViewAllClick", "\u0275\u0275repeaterCreate", "CrmFulfillmentProjectsAssociationCardComponent_Conditional_5_For_1_Template", "_forTrack0", "\u0275\u0275template", "CrmFulfillmentProjectsAssociationCardComponent_Conditional_5_Conditional_3_Template", "CrmFulfillmentProjectsAssociationCardComponent_Conditional_5_Conditional_5_Template", "\u0275\u0275repeater", "items$", "\u0275\u0275conditional", "hasMore$", "showViewAllAction", "CrmFulfillmentProjectsAssociationCardComponent", "constructor", "service", "inject", "CrmFulfillmentProjectsAssociationCardService", "data", "COMPANY_PROFILE_CARD_DATA_TOKEN", "config", "CrmInjectionToken", "hasItems$", "setAccountGroupId", "account_group_id", "namespace$", "pipe", "takeUntilDestroyed", "subscribe", "partnerId", "setPartnerId", "customActions", "navigateToFulfillmentProjects", "Function", "objectType", "objectId", "company_id", "fetchNext", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "CrmFulfillmentProjectsAssociationCardComponent_Conditional_5_Template", "CrmFulfillmentProjectsAssociationCardComponent_Conditional_7_Template", "CommonModule", "AsyncPipe", "DatePipe", "TranslateModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatIconModule", "MatIcon", "MatButtonModule", "MatButton", "MatMenuModule", "MatCardModule", "MatCard", "MatCardContent", "MatCardHeader", "MatCardSubtitle", "MatCardTitle", "GalaxyBadgeModule", "BadgeComponent", "styles", "_CrmFulfillmentProjectsAssociationCardComponent", "SimpleApp", "App", "constructor", "app", "isAddon", "appType", "AppType", "APP_TYPE_ADDON", "getParentId", "parentRequirements", "parentDetails", "key", "appId", "getFullName", "name", "sharedMarketingInformation", "editionName", "getIconUrl", "iconUrl", "SimpleAccountDate", "AccountDates", "date", "expiration", "Date", "trialExpiration", "getActivationDate", "activation", "getRenewalDate", "anniversaryDate", "isValid", "isBefore", "getUTCDate", "getDate", "getTimezoneOffset", "subDays", "getCommitmentDate", "commitmentDate", "getTime", "isTrialExpired", "getTrialDaysRemaining", "dayDiff", "differenceInDays", "addDays", "Math", "max", "getTrialExpirationDate", "CrmMarketplaceProductsAssociationCardService", "setPartnerId", "partnerId", "partnerId$$", "next", "setAccountGroupId", "accountGroupId", "accountGroupId$$", "setMarketId", "marketId", "marketId$$", "constructor", "accountsService", "legacyAccountsService", "partnerApiService", "Subject", "getProductsFailed$$", "BehaviorSubject", "getProductsFailed$", "asObservable", "activeProducts$", "pipe", "switchMap", "agid", "getMultiActivationStatuses", "of", "map", "products", "sort", "a", "b", "productId", "filter", "p", "status", "ActivationStatus", "ACTIVATION_STATUS_ACTIVATED", "editionId", "isTrial", "quantity", "count", "groupedProducts$", "combineLatest", "fillAppDataAndGroupAddons", "accountDates$", "listAccountDates", "catchError", "err", "console", "error", "products$", "dates", "fillProductDates", "tap", "length", "productAppKeys", "product", "AppKey", "appId", "getMultiApp", "appKeys", "includeNotEnabled", "apps", "productsToAddons", "forEach", "app", "SimpleApp", "isAddon", "getParentId", "flatMap", "idx", "name", "getFullName", "iconUrl", "getIconUrl", "push", "addons", "fillProductDate", "date", "simpleDate", "SimpleAccountDate", "activationDate", "getActivationDate", "trialEnded", "isTrialExpired", "trialExpirationDate", "getTrialExpirationDate", "trialDaysRemaining", "getTrialDaysRemaining", "renewalDate", "getRenewalDate", "commitmentDate", "getCommitmentDate", "dateIsForProduct", "addonId", "isDeactivated", "d", "isValid", "deactivation", "getTime", "isBefore", "Date", "findDateForProduct", "foundCount", "oldestDate", "activation", "find", "productDate", "addon", "addonDate", "\u0275\u0275inject", "AccountsService", "PartnerApiService", "factory", "\u0275fac", "_CrmMarketplaceProductsAssociationCardService", "\u0275\u0275elementContainer", "\u0275\u0275elementStart", "\u0275\u0275template", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_0_For_1_For_4_ng_container_1_Template", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "productView_r2", "\u0275\u0275pureFunction1", "_c0", "addon_r1", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_0_For_1_ng_container_2_Template", "\u0275\u0275repeaterCreate", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_0_For_1_For_4_Template", "_forTrack0", "product_r3", "\u0275\u0275repeater", "addons", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_0_For_1_Template", "ctx_r3", "products", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_0_Template", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_1_Template", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Conditional_2_Template", "\u0275\u0275conditional", "hasProducts", "hasFailed", "\u0275\u0275element", "product_r5", "quantity", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind2", "activationDate", "\u0275\u0275textInterpolate3", "trialExpirationDate", "_c1", "trialDaysRemaining", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_5_Conditional_0_Template", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_5_Conditional_1_Template", "trialEnded", "renewalDate", "commitmentDate", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_6_Conditional_4_Template", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_6_Conditional_5_Template", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_3_Template", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_5_Template", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Conditional_6_Template", "name", "iconUrl", "isTrial", "defaultMarket", "CrmMarketplaceProductsAssociationCardComponent", "constructor", "service", "inject", "CrmMarketplaceProductsAssociationCardService", "data", "COMPANY_PROFILE_CARD_DATA_TOKEN", "config", "CrmInjectionToken", "toSignal", "products$", "isLoaded", "computed", "undefined", "length", "getProductsFailed$", "namespace$", "pipe", "takeUntilDestroyed", "subscribe", "partnerId", "setPartnerId", "setAccountGroupId", "account_group_id", "setMarketId", "group_id", "selectors", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "CrmMarketplaceProductsAssociationCardComponent_Defer_5_Template", "CrmMarketplaceProductsAssociationCardComponent_DeferPlaceholder_6_Template", "\u0275\u0275defer", "CrmMarketplaceProductsAssociationCardComponent_Defer_7_DepsFn", "CrmMarketplaceProductsAssociationCardComponent_ng_template_9_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275deferWhen", "CommonModule", "DatePipe", "TranslateModule", "TranslatePipe", "MatExpansionModule", "MatExpansionPanel", "MatExpansionPanelHeader", "MatExpansionPanelTitle", "MatIconModule", "MatButtonModule", "MatMenuModule", "MatCardModule", "GalaxyBadgeModule", "BadgeComponent", "ActiveItemsModule", "GalaxyAvatarModule", "AvatarComponent", "GalaxyLoadingSpinnerModule", "LoadingSpinnerComponent", "styles", "_CrmMarketplaceProductsAssociationCardComponent", "PermissionsGuard", "constructor", "config", "inject", "CrmInjectionToken", "iamService", "IAMService", "permissionsApiService", "PermissionsApiService", "router", "Router", "checkPermissions", "objectType", "partnerId", "userId", "routePrefix", "getPermissions", "pipe", "map", "resp", "permissions", "createUrlTree", "PAGE_ROUTES", "PERMISSION_REQUIRED", "catchError", "of", "canActivate", "route", "data", "currentUser$", "currentUserId$", "switchMap", "uniqueUserIdentifiers", "UserIdentifier", "getMultiUsers", "response", "combineLatest", "namespace$", "parentNamespace$", "routePrefix$", "user", "namespace", "parentNamespace", "roles", "hasDeveloperRole", "isSuperAdmin", "attributes", "boolAttribute", "targetNamespace", "factory", "\u0275fac", "_PermissionsGuard", "CRM_ROUTES", "path", "redirectTo", "PAGE_ROUTES", "CONTACT", "ROOT", "SUBROUTES", "LIST", "pathMatch", "loadChildren", "then", "m", "CrmContactModule", "canActivate", "PermissionsGuard", "data", "objectType", "pageId", "COMPANY", "CrmCompanyModule", "TASK", "CrmTaskModule", "PERMISSION_REQUIRED", "loadComponent", "PermissionRequiredComponent", "CrmPageNotFoundComponent", "CrmModule", "BulkImportStepperService", "FieldMappingService", "CsvParserService", "CrmFieldOptionsService", "CrmFiltersService", "CrmFormService", "ListObjectsTableService", "ActivityObjectService", "ContactService", "CompanyService", "CrmObjectService", "CrmAssociationService", "CRMTrackingService", "CrmFieldService", "ActivityService", "ContactProfileCardsPanelService", "CompanyProfileCardsPanelService", "TranslateByObjectTypeService", "RendererSelectorService", "AutocompleteService", "UpdaterService", "ValidatorFactoryService", "RestrictedGroupService", "ContactTableCustomizationService", "CompanyTableCustomizationService", "TaskTableCustomizationService", "CrmTableStateService", "PreviewObjectService", "DefaultAssociationActionsService", "CompanyFiltersService", "ActivityAssigneeService", "imports", "RouterModule", "forChild", "TranslationModule", "GoogleMapsModule", "_CrmModule", "MarketFilterService", "constructor", "restrictedGroupService", "marketsService", "currentMarket$", "getCurrentGroupId", "pipe", "switchMap", "groupId", "getMarket", "shareReplay", "getCurrentMarket", "getAllMarkets", "getMarkets", "of", "map", "markets", "filter", "m", "market_id", "\u0275\u0275inject", "RestrictedGroupService", "MarketsService", "factory", "\u0275fac", "providedIn", "_MarketFilterService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "option_r1", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "name", "\u0275\u0275element", "\u0275\u0275template", "MarketFilterInputComponent_glxy_form_field_0_mat_option_5_Template", "\u0275\u0275pipeBind1", "ctx_r3", "formControl", "auto_r3", "displayFn", "availableOptions_r2", "filteredOptions", "marketFilterFn", "market", "searchTerm", "toLowerCase", "includesMarketId", "market_id", "includes", "includesMarketName", "MarketFilterInputComponent", "fieldId", "value", "_fieldId", "set", "initialValue", "length", "string", "setValue", "clearValue", "constructor", "marketFilterService", "valueChanges", "EventEmitter", "FormControl", "nonNullable", "restrictedGroupId", "toSignal", "getCurrentGroupId", "restrictedMarket", "getCurrentMarket", "signal", "availableOptions$", "toObservable", "pipe", "takeUntilDestroyed", "switchMap", "filterTerm", "getAllMarkets", "map", "markets", "filter", "availableOptions", "computed", "effect", "disable", "emit", "allowSignalWrites", "find", "o", "\u0275\u0275directiveInject", "MarketFilterService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "provide", "GalaxyAbstractFilterInput", "useExisting", "forwardRef", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "MarketFilterInputComponent_glxy_form_field_0_Template", "CommonModule", "NgForOf", "NgIf", "TranslateModule", "TranslatePipe", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "GalaxyFormFieldModule", "FormFieldComponent", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "encapsulation", "_MarketFilterInputComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "selectedMarketText", "\u0275\u0275element", "MarketFilterChipComponent", "initialValue", "value", "length", "string", "selectedGroupId", "set", "constructor", "marketFilterService", "signal", "selectedMarket", "computed", "name", "combineLatest", "toObservable", "getAllMarkets", "pipe", "map", "groupId", "allMarkets", "find", "m", "market_id", "takeUntilDestroyed", "subscribe", "result", "\u0275\u0275directiveInject", "MarketFilterService", "selectors", "inputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "MarketFilterChipComponent_ng_container_0_Template", "MarketFilterChipComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275property", "loading_r2", "CommonModule", "NgIf", "TranslateModule", "styles", "_MarketFilterChipComponent", "buildSingleRowTableActions", "services", "partnerService", "getPartnerId", "pipe", "switchMap", "partnerId", "businessCenterService", "getVBCEntryUrl", "map", "vbcEntryInfo", "actions", "push", "label", "whitelabelTranslationService", "instant", "callback", "row", "sidepanelInputs", "serviceInputs", "accountGroupID", "data", "PlatformExtensionFieldIds", "AccountGroupID", "value", "componentInputs", "companyID", "SystemFieldIds", "CompanyID", "partnerID", "trackingCategory", "snapshotName", "snapshotSidepanelService", "openSidepanel", "translationService", "name", "visible", "take", "subscribe", "window", "open", "url", "buildCompanyProfileCards$", "partnerId$", "companyCompanyAssociationFlag$", "combineLatest", "companyCompanyAssociationFlag", "profileCards", "component", "PartnerInfoComponent", "PccCompanyToContactAssociationsCardComponent", "AssociatedAccountComponent", "CrmMarketplaceProductsAssociationCardComponent", "OpportunitiesComponent", "AutomationsComponent", "ReportsComponent", "SalesOrdersComponent", "CompanyCampaignsCardComponent", "CrmFulfillmentProjectsAssociationCardComponent", "ParentChildCompanyAssociationsCardComponent", "buildContactProfileCards$", "of", "PccContactToCompanyAssociationsCardComponent", "ContactCampaignsCardComponent", "CrmInjectionToken", "InjectionToken", "factory", "inboxNavigationService", "inject", "InboxNavigationService", "PartnerService", "configService", "AppConfigService", "marketsService", "MarketsService", "featureFlagService", "FeatureFlagService", "WhitelabelTranslationService", "snapshotService", "SnapshotService", "SnapshotSidepanelService", "crmCampaignContactsDialogService", "CrmCampaignContactsDialogService", "TranslateService", "whitelabelService", "WhitelabelService", "crmFieldService", "CrmFieldService", "BusinessCenterService", "ssoService", "SSOService", "userService", "CRMUserService", "opportunityService", "PartnerCRMOpportunityService", "featureAccessService", "FeatureAccessService", "companyService", "CompanyService", "router", "Router", "salespersonService", "SalespersonService", "factoryServices", "multiActionServices", "campaignService", "translationSvc", "partnerSvc", "partnerSubscriptionService", "PartnerSubscriptionService", "productAnalyticsService", "ProductAnalyticsService", "translate", "batchGetStatus", "FeatureFlags", "CRM_COMPANY_COMPANY_ASSOCIATION", "featureFlags", "contactPhoneFieldID", "getFieldId", "StandardExternalIds", "PhoneNumber", "emailFieldID", "Email", "tagsFieldID", "Tags", "currentUserId$", "config$", "config", "unifiedUserId", "shareReplay", "bufferSize", "refCount", "salespersonId$", "userId", "getSalespersonByUserId", "salesperson", "salespersonId", "catchError", "_", "appID", "routePrefix$", "namespace$", "parentNamespace$", "viewProfileFlag$", "CRM_PROFILE_PAGE", "viewProspectorFlag$", "CRM_LEAD_PROSPECTOR", "contact", "selectAllTableActions$", "buildSelectAllTableActions", "multiRowTableActions$", "buildMultiRowTableActions", "profileCards$", "filterInputOverrides$", "title", "fieldId", "StandardIds", "ContactPrimaryCompanyID", "filterInput", "CompanyCustomFilterInputComponent", "filterChip", "CompanyCustomFilterChipComponent", "ContactPrimarySalespersonID", "SalespersonFilterInputComponent", "SalespersonFilterChipComponent", "ContactAdditionalSalespersonIDs", "AdditionalSalespeopleFilterInputComponent", "ContactGroupID", "MarketFilterInputComponent", "MarketFilterChipComponent", "tableCustomCells", "fieldIds", "columnDefinition", "id", "customCellComponent", "SalespersonCellComponent", "AdditionalSalespeopleCellComponent", "formCustomInputs", "SalespersonFormInputComponent", "AdditionalSalespeopleFormInputComponent", "formDefaultOnCreateInputValues$", "currentMarket$", "appConfig", "currentMarket", "defaults", "ContactLifecycleStage", "ContactOwnerID", "market_id", "baseColumnIds", "ContactCustomColumns", "FullName", "PrimaryCompanyName", "ContactSourceName", "ContactCreated", "company", "singleRowTableActions$", "actionButtons$", "ActionButtonComponent", "CompanyParentCompanyID", "CompanyPrimarySalespersonID", "CompanyAdditionalSalespersonIDs", "CompanyGroupID", "CompanyLifecycleStage", "CompanyOwnerID", "CompanyName", "CompanyPhoneNumber", "CompanyCustomColumns", "FullAddress", "CompanyTags", "task", "ActivityOwnerID", "UserFilterInputComponent", "UserFilterChipComponent", "TaskCustomColumns", "AssignedTo", "UserCellComponent", "ActivityTaskDueDate", "ActivityTaskStatus", "DueDateCellComponent", "showBackToAccountsButton", "openAccountGroupConversation", "accountGroupId", "__async", "firstValueFrom", "gotoConversationChannel", "SubjectParticipant", "internalParticipantId", "participantType", "GlobalParticipantType", "GLOBAL_PARTICIPANT_TYPE_PARTNER", "GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP", "ConversationChannel", "CONVERSATION_CHANNEL_INTERNAL", "hasAccessToFeature$", "featureString", "feature", "hasAccessToFeature", "openRestrictedDialog", "featureId", "customActions", "navigateToFulfillmentProjects", "MultiActionServices", "canAccessFeature", "canAccess", "rows", "trackEvent", "openCampaignDialog", "SenderType", "SENDER_TYPE_PARTNER", "showSelectAllObjects", "selectOptions", "filters", "search", "useSelectAll", "totalObjects", "selectAllVisible", "userPipelinesFactory", "filter", "distinctUntilChanged", "opportunityServiceConfigFactory", "partnerAAConfigService", "userPipelines", "UserPipelines", "salespeopleService", "SalespeopleService", "businessInfoService", "BusinessInfoService", "partnerConfigService", "marketSelectorService", "MARKET_SELECTOR_SERVICE_TOKEN", "userId$", "canCreateOrders$", "ADMINS_CREATE_ORDERS", "featureFlagStatus", "getOrdersUrlFn", "opportunity", "route", "opportunityId", "marketId$", "selectedMarketId$", "partnerMarket$", "marketId", "isPartnerMarketSame", "pm", "loadSalespeople", "bypassQuantityRestrictionsPartnerIds", "bypassQuantityRestrictions$", "includes", "salesCenterCurrency$", "getConfiguration", "salesConfiguration", "stDefaultDisplayCurrency", "showActivities$", "OPPORTUNITY_CRM_ACTIVITY", "pipelines$", "partnerPipelines$", "currentPipeline$", "getCurrentPipeline", "getOrdersUrl", "salespeople$", "salespeople", "Salesperson", "convertSalespeopleFromSalesResponse", "hasAccessToAllAccountsInMarket$", "defaultCurrency$", "prev", "curr", "crmObject$", "pid", "getMultiObject", "namespace", "crmObjectIds", "objectId", "companies", "crmObjects", "agid$", "o", "fields", "find", "f", "stringValue", "name$", "then", "queryParams", "JSON", "stringify", "account", "navigate", "CRM_PROVIDERS", "ActivityService", "ActivitiesTimelineService", "CrmObjectService", "OpportunitySidePanelEventsService", "SnapshotSidepanelService", "BusinessInfoService", "CompanyAccountService", "PartnerCRMSalespersonService", "FeatureAccessService", "provide", "SALES_UI_OPPORTUNITY_CONFIG_TOKEN", "useFactory", "opportunityServiceConfigFactory", "USER_PIPELINES_SERVICE_CONFIG_TOKEN", "userPipelinesFactory", "MARKET_SELECTOR_SERVICE_TOKEN", "useExisting", "MarketSelectorService", "ACCOUNT_SELECTOR_SERVICE_TOKEN", "USER_PIPELINES_TOKEN", "UserPipelines", "getPipelines", "deps", "PartnerCrmModule", "imports", "CrmCoreModule", "forRoot", "CrmInjectionToken", "CrmModule", "OpportunityModule", "OpportunityDetailsModule", "CreateOpportunityModule", "_PartnerCrmModule"] }