{ "version": 3, "sources": ["libs/reviews/src/lib/nps-card/resend-confirmation-modal/resend-confirmation-modal.component.ts", "libs/reviews/src/lib/nps-card/resend-confirmation-modal/resend-confirmation-modal.component.html", "libs/reviews/src/lib/nps-card/nps-card.component.ts", "libs/reviews/src/lib/nps-card/nps-card.component.html", "libs/reviews/src/lib/nps-address/nps-address.component.ts", "libs/reviews/src/lib/nps-address/nps-address.component.html", "libs/reviews/src/lib/statistic-delta/statistic-delta.component.ts", "libs/reviews/src/lib/statistic-delta/statistic-delta.component.html", "libs/reviews/src/lib/nps-rolling-average/nps-rolling-average.component.ts", "libs/reviews/src/lib/nps-rolling-average/nps-rolling-average.component.html", "libs/reviews/src/lib/nps-chart-overall-score/nps-score.service.ts", "libs/reviews/src/lib/nps-chart-overall-score/nps-chart-overall-score.component.ts", "libs/reviews/src/lib/nps-chart-overall-score/nps-chart-overall-score.component.html", "libs/reviews/src/lib/assets/i18n/en_devel.json", "libs/reviews/src/lib/common-review-card/check-review-deleted.pipe.ts", "libs/reviews/src/lib/common-review-card/comment-from-now.pipe.ts", "libs/reviews/src/lib/common/utils.ts", "libs/reviews/src/lib/response-templates/response-templates.service.ts", "libs/reviews/src/lib/common-review-card/remove-google-translation.ts", "libs/reviews/src/lib/common-review-card/review-types.ts", "libs/reviews/src/lib/common-review-card/review-card.service.ts", "libs/reviews/src/lib/common-review-card/review-history-card/review-history-card.component.ts", "libs/reviews/src/lib/common-review-card/review-history-card/review-history-card.component.html", "libs/reviews/src/lib/common-review-card/recommended-icon.component.ts", "libs/reviews/src/lib/common-review-card/not-recommended-icon.component.ts", "libs/reviews/src/lib/response-templates/filter-templates.pipe.ts", "libs/reviews/src/lib/response-templates/validate-response.pipe.ts", "libs/reviews/src/lib/response-templates/randomize-templates.pipe.ts", "libs/reviews/src/lib/response-templates/paginate-templates.pipe.ts", "libs/reviews/src/lib/common-review-card/transform-review-content.pipe.ts", "libs/reviews/src/lib/common-review-card/common-review-card.component.ts", "libs/reviews/src/lib/common-review-card/common-review-card.component.html", "libs/reviews/src/lib/constants.ts", "libs/reviews/src/lib/common-review-card.module.ts", "libs/reviews/src/lib/token.ts", "libs/reviews/src/lib/source-selection/types.ts", "libs/reviews/src/lib/source-selection/source-selection.service.ts", "libs/reviews/src/lib/source-selection/selected-sources-display/selected-sources-display.component.ts", "libs/reviews/src/lib/source-selection/selected-sources-display/selected-sources-display.component.html", "libs/reviews/src/lib/source-selection/source-selection-panel/source-selection-panel.component.ts", "libs/reviews/src/lib/source-selection/source-selection-panel/source-selection-panel.component.html", "libs/reviews/src/lib/source-selection/source-selection-modal/source-selection-modal.component.ts", "libs/reviews/src/lib/source-selection/source-selection-modal/source-selection-modal.component.html", "libs/reviews/src/lib/source-selection/source-selection-modal.service.ts", "libs/reviews/src/lib/index.ts", "libs/reviews/src/index.ts"], "sourcesContent": ["import { Component, Inject, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButtonModule } from '@angular/material/button';\n\ninterface DataInterface {\n emailAvailable: boolean;\n}\n\n@Component({\n selector: 'reviews-resend-confirmation-modal',\n standalone: true,\n imports: [MatDialogModule, TranslateModule, MatButtonModule],\n templateUrl: './resend-confirmation-modal.component.html',\n styleUrl: './resend-confirmation-modal.component.scss',\n})\nexport class ResendConfirmationModalComponent {\n private dialogRef = inject(MatDialogRef);\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: DataInterface) {}\n\n resendNPSRequest(): void {\n this.dialogRef.close(true);\n }\n\n cancel(): void {\n this.dialogRef.close(false);\n }\n}\n", "\n @if (data.emailAvailable) {\n {{ 'NPS_CARD.NPS_RESEND_CONFIRMATION.TITLE' | translate }}\n } @else {\n {{ 'NPS_CARD.NPS_RESEND_CONFIRMATION.EMAIL_NOT_FOUND' | translate }}\n }\n\n\n @if (data.emailAvailable) {\n \n \n } @else {\n \n }\n\n", "import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport { BadgeColor, GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatCardModule } from '@angular/material/card';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyStatisticModule } from '@vendasta/galaxy/statistic';\nimport { formatDistanceToNow, parseISO } from 'date-fns';\nimport { DateRange } from '@vendasta/uikit';\nimport { formatAsReadonlyPhone, PAGE_ROUTES, parsePhoneNumber } from '@galaxy/crm/static';\nimport { RouterLink } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ResendConfirmationModalComponent } from './resend-confirmation-modal/resend-confirmation-modal.component';\nimport { switchMap } from 'rxjs/operators';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NetPromoterScoreAttribute, ReviewRequestApiService } from '@vendasta/reputation';\nimport { EMPTY } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { format } from 'date-fns';\nimport { ActivatedRoute } from '@angular/router';\n\nexport interface NPSData {\n netPromoterScoreId: string;\n accountGroupId: string;\n score: string;\n comment: string;\n scoreLeftTime: Date;\n created?: DateRange;\n updated?: DateRange;\n Name?: string;\n Email?: string;\n PhoneNumber?: string;\n CrmObjectId?: string;\n Address?: string;\n attributes: NetPromoterScoreAttribute[];\n}\n@Component({\n selector: 'reviews-nps-card',\n imports: [\n MatCardModule,\n GalaxyStatisticModule,\n GalaxyBadgeModule,\n CommonModule,\n RouterLink,\n MatButtonModule,\n TranslateModule,\n ],\n templateUrl: './nps-card.component.html',\n styleUrl: './nps-card.component.scss',\n})\nexport class NPSCardComponent implements OnInit {\n dialog = inject(MatDialog);\n snackbarService = inject(SnackbarService);\n reviewRequestApiService = inject(ReviewRequestApiService);\n\n route = inject(ActivatedRoute);\n\n destroyRef = inject(DestroyRef);\n\n @Input() review: NPSData;\n @Input() redirectToContact = true;\n @Input() enableResendNPSRequest: boolean;\n\n @Input() redirectMlToContact: boolean;\n\n formattedPhoneNumber: string;\n npsScoreBadgeColor: BadgeColor = 'red';\n scoreLeftTime: string;\n routeToContactProfile: string;\n paddingBottom: string;\n resentScoreLeftTime: string;\n parentNPSId: string;\n dialogRef: MatDialogRef;\n isDetractor: boolean;\n\n ngOnInit() {\n if (this.redirectMlToContact) {\n const brandId = this.route.snapshot.params['brandname'];\n const contactId = this.review?.attributes?.find((item) => item.key === 'CRMContactID')?.value;\n const accountGroupID = this.review.accountGroupId;\n this.routeToContactProfile = `/account/brands/${brandId}/${PAGE_ROUTES.MULTI_LOCATION.CONTACTS.ROOT}/${accountGroupID}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE.replace(':crmObjectId', contactId)}`;\n } else if (this.review.CrmObjectId) {\n this.routeToContactProfile = `../customers/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE.replace(':crmObjectId', this.review.CrmObjectId)}`;\n }\n\n if (this.review.PhoneNumber) {\n this.formattedPhoneNumber = this.formatPhoneNumber(this.review.PhoneNumber);\n }\n if (this.review.score) {\n this.npsScoreBadgeColor = this.getColor(this.review.score);\n }\n this.isDetractor = this.checkNPSDetractor(this.review?.score ?? 0);\n if (this.review.scoreLeftTime) {\n this.scoreLeftTime = this.getTimeAgo(this.review.scoreLeftTime);\n }\n if (this.review.comment) {\n this.paddingBottom = '0';\n } else {\n this.paddingBottom = '16px';\n }\n this.resentScoreLeftTime = this.review?.attributes?.find((item) => item.key === 'ResentTime')?.value;\n if (this.resentScoreLeftTime) {\n this.resentScoreLeftTime = format(parseISO(this.resentScoreLeftTime), 'MMM dd, yyyy');\n }\n this.parentNPSId = this.review?.attributes?.find((item) => item.key === 'ParentNPSID')?.value;\n }\n\n getColor(score: string | number): BadgeColor {\n // Convert the score to a string\n const scoreStr = String(score);\n if (scoreStr === '9' || scoreStr === '10') {\n return 'green';\n } else if (scoreStr === '7' || scoreStr === '8') {\n return 'yellow';\n } else {\n return 'red';\n }\n }\n\n checkNPSDetractor(score: string | number): boolean {\n const scoreNum = Number(score);\n return scoreNum >= 0 && scoreNum <= 6;\n }\n\n getTimeAgo(date: Date): string {\n return formatDistanceToNow(new Date(date), { addSuffix: true }).replace(/^about /, '');\n }\n\n formatPhoneNumber(phoneNumber: string): string {\n const parsedPhoneNumber = parsePhoneNumber(phoneNumber);\n return formatAsReadonlyPhone(parsedPhoneNumber);\n }\n\n resendNPSRequest(npsId: string, email: string) {\n this.dialogRef = this.dialog.open(ResendConfirmationModalComponent, {\n width: '500px',\n data: {\n emailAvailable: !!email,\n },\n });\n\n this.dialogRef\n .afterClosed()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap((resend) => {\n if (resend) {\n return this.reviewRequestApiService.resendReview({ netPromoterScoreId: npsId });\n }\n return EMPTY;\n }),\n )\n .subscribe({\n next: () => {\n // Set resentScoreLeftTime after the API call is successful\n this.resentScoreLeftTime = format(new Date(), 'MMM dd, yyyy');\n },\n error: (error) => {\n this.snackbarService.openErrorSnack(error.error.message);\n },\n });\n }\n}\n", "\n \n @if (redirectToContact) {\n {{ review.Name }}\n } @else {\n {{ review.Name }}\n }\n \n \n
\n \n {{ review.score ?? 0 }}\n \n
{{ scoreLeftTime }}
\n
\n
\n
\n \n {{ review.comment }}\n \n \n \n \n {{ review.Email }}\n \n \n {{ formattedPhoneNumber }}\n \n \n \n @if (enableResendNPSRequest && resentScoreLeftTime && isDetractor) {\n \n {{ 'NPS_CARD.RESENT_REQUEST' | translate: { resentDate: resentScoreLeftTime } }}\n \n }\n @if (\n enableResendNPSRequest &&\n isDetractor &&\n !resentScoreLeftTime &&\n !parentNPSId &&\n (review.Email || review.PhoneNumber)\n ) {\n \n
\n {{ 'NPS_CARD.RESEND_REQUEST' | translate }}\n
\n \n {{ 'NPS_CARD.RESEND_NPS_REQUEST' | translate }}\n \n
\n }\n
\n", "import { Component, Input } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'reviews-nps-address',\n standalone: true,\n imports: [TranslateModule],\n templateUrl: './nps-address.component.html',\n styleUrl: './nps-address.component.scss',\n})\nexport class NPSAddressComponent {\n @Input({ required: true }) address: string;\n}\n", "@if (this.address) {\n
\n}\n", "import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\n\nenum DeltaColor {\n Green = 'statistic-delta_green',\n Red = 'statistic-delta_red',\n Grey = 'statistic-delta_grey',\n}\n\n@Component({\n selector: 'reviews-statistic-delta',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './statistic-delta.component.html',\n styleUrls: ['./statistic-delta.component.scss'],\n imports: [CommonModule, MatIcon],\n})\nexport class StatisticDeltaComponent {\n @Input() value: number | null = null;\n @Input() delta: number | null = null; // Delta value (positive/negative/zero)\n @Input() isPercentage = false; // Flag to indicate if the delta is a percentage\n @Input() decimalPlaces = 0; // Number of decimal places for floating-point values\n @Input() alignDeltaCenter = false; //Aligns the delta value center\n @Input() alignDelta: 'inline' | 'bottom' = 'inline'; // Accepts 'inline' or 'bottom'\n\n // Format the value to handle floating-point numbers and percentage\n get formattedValue(): string {\n if (!this.isValid(this.value)) return '';\n const value = parseFloat(this.value.toFixed(this.decimalPlaces));\n return this.isPercentage ? `${value}%` : value.toString();\n }\n\n get alignStatisticContainer() {\n return {\n 'align-delta-center': this.alignDeltaCenter, // Apply 'align-center' class if alignCenter is true\n 'align-delta-bottom': this.alignDelta === 'bottom',\n };\n }\n\n // Format the delta value to handle floating-point numbers and percentage\n get formattedDelta(): string {\n if (!this.isValid(this.delta) || this.delta === 0) {\n return '';\n }\n const value = Math.abs(parseFloat(this.delta.toFixed(this.decimalPlaces)));\n return this.isPercentage ? `${value}%` : value.toString();\n }\n\n get deltaClass() {\n return {\n [DeltaColor.Grey]: !this.isValid(this.delta), // Default grey for invalid values\n [DeltaColor.Green]: this.isValid(this.delta) && this.delta > 0,\n [DeltaColor.Red]: this.isValid(this.delta) && this.delta < 0,\n 'align-delta-bottom-margin': this.alignDelta === 'bottom', // Apply bottom alignment class\n };\n }\n\n // Handle null, undefined, or NaN\n private isValid(value: number): boolean {\n return value !== null && value !== undefined && !isNaN(value);\n }\n}\n", "
\n
{{ formattedValue }}
\n
\n 0\" class=\"statistic-delta-symbol\">arrow_drop_up\n arrow_drop_down\n
{{ formattedDelta }}
\n
\n
\n", "import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyPopoverModule, PopoverPositions } from '@vendasta/galaxy/popover';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgApexchartsModule } from 'ng-apexcharts';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface NPSRollingAverageDataPoints {\n netPromoterScoreDate: Date;\n rollingAverage: number;\n}\nexport interface NPSRollingAverageChartOptions {\n series: {\n name: string;\n data: { x: number; y: number }[];\n }[];\n chart: ApexChart;\n dataLabels: ApexDataLabels;\n markers: ApexMarkers;\n xaxis: ApexXAxis;\n tooltip: ApexTooltip;\n colors: string[];\n fill: ApexFill;\n stroke: ApexStroke;\n grid: {\n show: boolean;\n borderColor: string;\n strokeDashArray: number;\n position: string;\n xaxis: {\n lines: {\n show: boolean;\n borderColor: string;\n };\n };\n yaxis: {\n lines: {\n show: boolean;\n borderColor: string;\n };\n min: number;\n max: number;\n tickAmount: number;\n labels: {\n formatter: (value: number) => string; // Rounds off to the nearest integer\n style: {\n colors: string;\n };\n };\n };\n };\n shouldRenderChart: boolean;\n}\n\n@Component({\n selector: 'reviews-nps-rolling-average',\n imports: [GalaxyPopoverModule, MatCardModule, MatIconModule, NgApexchartsModule, TranslateModule, CommonModule],\n templateUrl: './nps-rolling-average.component.html',\n styleUrl: './nps-rolling-average.component.scss',\n})\nexport class NpsRollingAverageComponent implements OnInit {\n @Input() npsRollingAvgData$: Observable;\n @Input() displayEmptyChart = false;\n\n rollingAvgChartOptions$: Observable;\n showPopover = false;\n PopoverPositions = PopoverPositions;\n\n private dataLabelColor = '#616161FF';\n private borderColor = '#e0e0e0';\n\n ngOnInit(): void {\n this.rollingAvgChartOptions$ = this.npsRollingAvgData$.pipe(\n map((sortedDataPoints) => {\n // Calculate the min and max from the sortedDataPoints array\n const dataValues = sortedDataPoints.map((point) => point.rollingAverage);\n const dynamicMin = dataValues.length ? Math.floor(Math.min(...dataValues)) : 0;\n const dynamicMax = dataValues.length ? Math.ceil(Math.max(...dataValues)) : 10;\n const shouldRenderChart = dataValues.length > 0 || this.displayEmptyChart;\n return {\n ...this.getDefaultChartOptions(dynamicMin, dynamicMax, shouldRenderChart),\n series: [\n {\n name: 'Average',\n data: sortedDataPoints.length\n ? sortedDataPoints.map((point) => ({\n x: new Date(point.netPromoterScoreDate).getTime(),\n y: point.rollingAverage,\n }))\n : [{ x: new Date().getTime(), y: null }],\n },\n ],\n };\n }),\n );\n }\n\n private getDefaultChartOptions(\n dynamicMin: number,\n dynamicMax: number,\n shouldRenderChart: boolean,\n ): NPSRollingAverageChartOptions {\n return {\n series: [\n {\n name: 'Average',\n data: [],\n },\n ],\n chart: {\n type: 'area',\n height: 140,\n width: '100%',\n toolbar: {\n show: false,\n },\n zoom: {\n enabled: false,\n },\n animations: {\n enabled: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n markers: {\n size: 0,\n },\n xaxis: {\n type: 'datetime',\n tickAmount: 6,\n labels: {\n datetimeFormatter: {\n day: 'MMM dd',\n },\n style: {\n colors: this.dataLabelColor,\n },\n },\n },\n tooltip: {\n x: {\n format: 'dd MMM yyyy',\n },\n },\n colors: ['#42A5F5'],\n fill: {\n type: 'gradient',\n gradient: {\n shadeIntensity: 1,\n opacityFrom: 0.6,\n opacityTo: 0.3,\n stops: [0, 50],\n },\n },\n stroke: {\n width: 2,\n },\n grid: {\n show: true,\n borderColor: this.borderColor,\n strokeDashArray: 0,\n position: 'back',\n xaxis: {\n lines: {\n show: true,\n borderColor: this.borderColor,\n },\n },\n yaxis: {\n lines: {\n show: true,\n borderColor: this.borderColor,\n },\n min: dynamicMin,\n max: dynamicMax,\n tickAmount: 2,\n labels: {\n formatter: (value: number): string => {\n return (value * 10).toFixed(0);\n },\n style: {\n colors: this.dataLabelColor,\n },\n },\n },\n },\n shouldRenderChart,\n };\n }\n\n showPopovers(): void {\n this.showPopover = true;\n }\n\n hidePopovers(): void {\n this.showPopover = false;\n }\n}\n", "\n \n \n \n \n {{ 'NPS_ROLLING_AVG_GRAPH.TITLE' | translate }}\n \n
\n
\n info_outline\n
\n \n {{ 'NPS_ROLLING_AVG_GRAPH.NPS_INFO' | translate }}\n \n
\n
\n \n \n \n
\n
\n
\n", "import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NpsScoreService {\n // Function to calculate NPS score for either current or previous data\n calculateCategoryAndOverallScore(score: { detractors: number; promoters: number; passives: number }): number {\n const detractors = Number(score.detractors);\n const passives = Number(score.passives);\n const promoters = Number(score.promoters);\n const totalScores = detractors + passives + promoters;\n\n if (isNaN(totalScores) || totalScores === 0) {\n return 0;\n }\n\n const promoterScore = promoters / totalScores;\n const detractorScore = detractors / totalScores;\n const overallScore = promoterScore - detractorScore;\n\n return isNaN(overallScore) ? 0 : Math.round(overallScore * 100);\n }\n}\n", "import { Component, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgApexchartsModule } from 'ng-apexcharts';\nimport { GalaxyPopoverModule, PopoverPositions } from '@vendasta/galaxy/popover';\nimport { combineLatest, map, Observable, Subscription } from 'rxjs';\n\nimport { StatisticDeltaComponent } from '../statistic-delta/statistic-delta.component';\nimport { NpsScoreService } from './nps-score.service';\n\nexport interface NPSOverallScoreChartOptions {\n plotOptions: ApexPlotOptions;\n dataLabels: ApexDataLabels;\n xaxis: ApexXAxis;\n color: string[];\n series: { data: number[]; name: string }[];\n legend: ApexLegend;\n grid: ApexGrid;\n tooltip: ApexTooltip;\n chart: ApexChart;\n stroke: ApexStroke;\n yaxis: ApexYAxis;\n}\n\nexport interface NPSScoreOverallData {\n current: { detractors: number; promoters: number; passives: number };\n previous: { detractors: number; promoters: number; passives: number };\n}\n\n@Component({\n selector: 'reviews-nps-chart-overall-score',\n imports: [\n CommonModule,\n TranslateModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n NgApexchartsModule,\n GalaxyPopoverModule,\n StatisticDeltaComponent,\n ],\n templateUrl: './nps-chart-overall-score.component.html',\n styleUrl: './nps-chart-overall-score.component.scss',\n})\nexport class NpsChartOverallScoreComponent implements OnInit, OnDestroy {\n @Input() ChartData$: Observable;\n public chartOptions$: Observable;\n\n showPopover = false;\n currentScore = 0;\n previousScore = 0;\n difference = 0;\n isChartDataAvailable = false; // Boolean to track if data is valid\n totalNPSRatings = 0; // Store total ratings\n PopoverPositions = PopoverPositions;\n\n private chartDataSubscription: Subscription;\n private translateService = inject(TranslateService);\n private npsScoreService = inject(NpsScoreService);\n\n private colors: string[] = ['#388E3C', '#F9A825', '#D32F2F'];\n\n ngOnInit() {\n this.chartDataSubscription = this.ChartData$.subscribe((chartData) => {\n this.calculateScores(chartData);\n });\n this.chartOptions$ = this.initializeChartOptions();\n }\n\n ngOnDestroy(): void {\n // Unsubscribe when the component is destroyed\n if (this.chartDataSubscription) {\n this.chartDataSubscription.unsubscribe();\n }\n }\n\n private initializeChartOptions(): Observable {\n const translationStream$ = this.translateService.stream([\n 'NPS_OVERALL_CHART.NPS_PROMOTER',\n 'NPS_OVERALL_CHART.NPS_PASSIVE',\n 'NPS_OVERALL_CHART.NPS_DETRACTOR',\n ]);\n\n return combineLatest([translationStream$, this.ChartData$]).pipe(\n map(([translations, chartdata]) => {\n const total = chartdata.current.promoters + chartdata.current.passives + chartdata.current.detractors;\n const percentages = [\n total ? Math.round((chartdata.current.promoters / total) * 100) : 0,\n total ? Math.round((chartdata.current.passives / total) * 100) : 0,\n total ? Math.round((chartdata.current.detractors / total) * 100) : 0,\n ];\n const individualScore = [chartdata.current.promoters, chartdata.current.passives, chartdata.current.detractors];\n return {\n series: [\n {\n name: 'Ratings',\n data: percentages,\n },\n ],\n chart: {\n height: 100,\n width: '100%',\n type: 'bar',\n zoom: {\n enabled: false,\n },\n toolbar: {\n show: false,\n },\n },\n legend: {\n show: true,\n position: 'right',\n itemMargin: {\n vertical: 5,\n },\n formatter: (seriesName: string, opts) => {\n const percentage = percentages[opts.seriesIndex];\n const score = individualScore[opts.seriesIndex];\n return `\n
\n ${score}\n \n ${percentage}%\n
\n `;\n },\n onItemHover: {\n highlightDataSeries: false,\n },\n },\n plotOptions: {\n bar: {\n horizontal: true,\n columnWidth: '100%',\n barHeight: '16px',\n distributed: true,\n colors: {\n backgroundBarColors: ['#F5F5F5FF'],\n backgroundBarOpacity: 0.8,\n },\n },\n },\n tooltip: {\n enabled: false,\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n curve: 'smooth',\n },\n grid: {\n padding: {\n top: -25,\n },\n xaxis: {\n lines: {\n show: false,\n },\n },\n yaxis: {\n lines: {\n show: false,\n },\n },\n },\n yaxis: {\n labels: {\n show: true,\n style: {\n colors: ['#616161FF'],\n fontSize: '14px',\n },\n },\n axisTicks: {\n show: false,\n },\n axisBorder: {\n show: false,\n },\n },\n xaxis: {\n categories: [\n translations['NPS_OVERALL_CHART.NPS_PROMOTER'],\n translations['NPS_OVERALL_CHART.NPS_PASSIVE'],\n translations['NPS_OVERALL_CHART.NPS_DETRACTOR'],\n ],\n labels: {\n show: false,\n },\n style: {\n colors: ['#616161', '#616161', '#616161'],\n fontSize: '12px',\n fontFamily: 'Roboto',\n fontWeight: 400,\n },\n axisTicks: {\n show: false,\n },\n axisBorder: {\n show: false,\n },\n min: 0,\n max: 100,\n },\n color: this.colors,\n };\n }),\n );\n }\n\n calculateScores(chartData: NPSScoreOverallData) {\n this.currentScore = this.npsScoreService.calculateCategoryAndOverallScore(chartData.current);\n this.previousScore = this.npsScoreService.calculateCategoryAndOverallScore(chartData.previous);\n this.difference = this.currentScore - this.previousScore; // Calculate the difference\n\n // Set the boolean flag to true if the condition is satisfied\n this.isChartDataAvailable =\n chartData.current.promoters > 0 || chartData.current.passives > 0 || chartData.current.detractors > 0;\n\n // Calculate total ratings and store in totalRatings variable\n this.totalNPSRatings = chartData.current.promoters + chartData.current.passives + chartData.current.detractors;\n }\n\n showPopovers(): void {\n this.showPopover = true;\n }\n\n hidePopovers(): void {\n this.showPopover = false;\n }\n}\n", "\n\n \n \n \n {{ 'NPS_OVERALL_CHART.NAME' | translate }}\n \n
\n
\n info_outline\n
\n \n
\n \n
\n
\n \n
\n
\n \n \n
\n {{\n 'NPS_OVERALL_CHART.RATINGS'\n | translate\n : {\n totalScore: totalNPSRatings,\n }\n }}\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n", "{\n \"COMMON_REVIEW_CARD\": {\n \"COMMON\": {\n \"ACTION_LABELS\": {\n \"VIEW\": \"View\",\n \"CANCEL\": \"Cancel\",\n \"EDIT\": \"Edit\",\n \"SAVE\": \"Save\",\n \"RESPOND\": \"Respond\",\n \"RESPOND_ON_SOURCE\": \"Respond on {{ review_domain }}\",\n \"COPY_RESPONSE\": \"Copy response\",\n \"POST\": \"Post\",\n \"CLOSE\": \"Close\",\n \"RETRY\": \"Retry\",\n \"CONNECT\": \"Connect {{ source }}\",\n \"POST_RESPONSE\": \"Post Response\",\n \"GO_TO_SOURCE\": \"Go to source\",\n \"REQUEST_APPROVAL\": \"Request Approval\"\n },\n \"CONNECT_GMB\": \"Connect Google Business Profile\",\n \"CONNECT_FACEBOOK\": \"Connect Facebook\"\n },\n \"REVIEWS\": {\n \"MANAGE\": {\n \"CONCIERGE_RESPONSE\": {\n \"TITLE\": \"{{ agentName }} at {{ partnerName }} has submitted a review response for approval:\",\n \"FEEDBACK\": \"Thank you for providing Feedback:\",\n \"APPROVE_BUTTON\": \"Approve\",\n \"PROVIDE_FEEDBACK_BUTTON\": \"Provide Feedback\",\n \"SEND_FEEDBACK_BUTTON\": \"Send Feedback\",\n \"APPROVED_FEEDBACK\": \"Thank you. {{ partnerName }} will now publish the response on your behalf\"\n },\n \"REVIEW_CARD\": {\n \"TITLE\": \"{{reviewer_name}} reviewed your business on {{ review_domain }}\",\n \"SUBTITLE\": {\n \"EDITED\": \"edited\"\n },\n \"TIME_AGO_ON\": \"{{ timeAgo }} on\",\n \"RECOMMENDATION_TITLE\": \"recommends\",\n \"NOT_RECOMMENDATION_TITLE\": \"doesn't recommend\",\n \"YOUR_BUSINESS\": \"your business\",\n \"MY_LISTING_SOURCE_NAME\": \"My Listing\",\n \"SOURCE_NAME\": {\n \"GOOGLE\": \"Google\",\n \"FACEBOOK\": \"Facebook\"\n },\n \"RESPONSE_BOX\": {\n \"SUGGEST_RESPONSE\": \"Suggest response\",\n \"RESPOND_TOOLTIP\": \"Use a suggestion below to auto-populate a full response or type your reply here\",\n \"RESPOND_TOOLTIP_REVIEW_SITES\": \"Use a suggestion below to auto-populate a full response that you can copy and use to respond on the review website\",\n \"NO_TEMPLATE_RESPONSE_TOOLTIP\": \"Type your reply here\",\n \"FEEDBACK_TOOLTIP\": \"Provide Feedback\",\n \"HINT\": \"Note: An email response will be sent to the customer\",\n \"PLACEHOLDER_WARNING\": \"*Edit [placeholder text] before posting this response\",\n \"GOOGLE_USER_WARNING\": \"*Edit \\\"A Google User\\\" before posting this response\",\n \"ERROR_LOADING_TEMPLATE\": \"Template not found\",\n \"CONNECT_ACCOUNT\": \"Connect your account to respond to this review.\"\n },\n \"CHIP_LABELS\": {\n \"ACTION_REQUIRED\": \"Response Required\",\n \"NO_ACTION_REQUIRED\": \"No Response Required\",\n \"RESPONDED\": \"Responded\",\n \"PUBLISHED\": \"Published\",\n \"AWAITING_APPROVAL\": \"Response Awaiting Approval\",\n \"RESPONSE_APPROVED\": \"Response Approved\",\n \"FEEDBACK_PROVIDED\": \"Feedback Provided\",\n \"OWNER_RESPONDED\": \"Owner Responded\",\n \"PARTNER_RESPONDED\": \"{{partnerName}} Responded\",\n \"FULFILLMENT_RESPONDED\": \"Fulfillment Team Responded\"\n },\n \"ACTIONS\": {\n \"SHARE_ON_SOCIAL\": \"Share on Social\",\n \"REVIEW_ON_SOURCE\": \"Review on {{ sourceName }}\",\n \"PUBLISH_TO_REVIEW_WIDGET\": \"Publish to Review Widget\",\n \"UNPUBLISH_FROM_REVIEW_WIDGET\": \"Unpublish from Review Widget\",\n \"PUBLISH_TO_MY_LISTING\": \"Publish to my listing\",\n \"UNPUBLISH_FROM_MY_LISTING\": \"Unpublish from My Listing\",\n \"VIEW\": \"View\",\n \"HIDE\": \"Hide\",\n \"COMMENT\": \"response\",\n \"COMMENTS\": \"responses\"\n },\n \"MESSAGES\": {\n \"RESPONSE_FROM\": \"Response from\",\n \"ERROR_ADDING_COMMENT\": \"Error adding comment\",\n \"COMMENT_SAVED\": \"Comment saved\",\n \"ERROR_EDITING_COMMENT\": \"Error editing comment\",\n \"COMMENT_EDITED\": \"Comment edited\",\n \"ERROR_PUBLISHING_REVIEW\": \"Error publishing review\",\n \"REVIEW_PUBLISHED\": \"Review published\",\n \"ERROR_UNPUBLISHING_REVIEW\": \"Error unpublishing review\",\n \"REVIEW_UNPUBLISHED\": \"Review unpublished\",\n \"ERROR_PUBLISHING_REVIEW_TO_WIDGET\": \"Error publishing review to widget\",\n \"REVIEW_PUBLISHED_TO_WIDGET\": \"Review published to widget\",\n \"ERROR_UNPUBLISHING_REVIEW_FROM_WIDGET\": \"Error unpublishing review from widget\",\n \"REVIEW_UNPUBLISHED_FROM_WIDGET\": \"Review unpublished from widget\",\n \"ERROR_UPDATING_REVIEW_STATUS\": \"Error updating review status\",\n \"REVIEW_STATUS_UPDATED\": \"Review status updated\",\n \"ERROR_ADDING_FEEDBACK\": \"Error adding Feedback\",\n \"FEEDBACK_SAVED\": \"Feedback Sent\",\n \"ERROR_APPROVING_FEEDBACK\": \"Error Approving Feedback\",\n \"RESPONSE_APPROVED\": \"Response Approved\",\n \"LAST_FAILED_REVIEW_COMMENT\": \"Sorry, your response failed to post. Please try again.\",\n \"REVIEW_HAS_BEEN_DELETED\": \"Sorry, this review has been deleted\",\n \"REVIEW_RESPONSE_UPDATED\": \"Your review response was updated\",\n \"ERROR_SAVING_REVIEW_RESPONSE\": \"There was an error updating your review response. Copy your response, refresh the page, and try again.\",\n \"REVIEW_NO_LONGER_EXISTS\": \"The Review for this Task no longer exists\",\n \"ERROR_REQUESTING_APPROVAL\": \"There was an error requesting approval, please try again\",\n \"APPROVAL_REQUESTED\": \"Approval requested\",\n \"RESPONSE_COPIED\": \"Response copied\",\n \"FAIL_TO_COPY_RESPONSE\": \"Failed to copy the responsse\"\n },\n \"DELETED\": {\n \"INFO\": \"We suspect that this review was removed from {{source_name}}.\",\n \"NOTE\": \"Note: Removed reviews do not contribute to your average review rating. If you can no longer find this review on {{source_name}}, you can mark it as Removed.\",\n \"INFO_TOOLTIP\": \"Learn more\",\n \"CONFIRM_DELETED\": \"Mark as removed\",\n \"CONFIRM_NOT_DELETED\": \"Keep review\",\n \"ERROR_REMOVED\": \"Error marking review as Removed\",\n \"ERROR_KEPT\": \"Error marking review as Kept\",\n \"SUCCESSFULLY_REMOVED\": \"Review was marked as Removed\",\n \"SUCCESSFULLY_KEPT\": \"Review was marked as Kept\"\n },\n \"EDITED\": \"Edited\"\n },\n \"CONNECT_ACCOUNTS\": {\n \"CONNECT_GMB_TITLE\": \"Connect a Google Business Profile Account\",\n \"CONNECT_GMB_CONTENT_1\": \"You have not connected a Google Business Profile account. \",\n \"CONNECT_GMB_CONTENT_2\": \"Please connect your account to reply to reviews on Google Maps.\",\n \"CONNECT_FACEBOOK_TITLE\": \"Connect a Facebook Account\",\n \"CONNECT_FACEBOOK_CONTENT_1\": \"You have not connected a Facebook account.\",\n \"CONNECT_FACEBOOK_CONTENT_2\": \"Please connect your account to reply to reviews on Facebook.\",\n \"NOT_CONNECTED\": \"{{source}} is not connected.\",\n \"GO_TO_RM_TO_CONNECT\": \"Go to Reputation Management to connect\"\n }\n }\n },\n \"CONTENT\": {\n \"MORE\": \"more\"\n }\n },\n \"REVIEW_HISTORY_CARD\": {\n \"TITLE\": \"Review history\",\n \"LIVE_BADGE\": \"Live\",\n \"EMPTY_STATE\": {\n \"TITLE\": \"No history available\",\n \"SUBTITLE\": \"We couldn't find a history of the edits to this review\"\n }\n },\n \"REVIEW_SOURCE_SELECTION\": {\n \"MESSAGES\": {\n \"ERROR_NO_SOURCE_SELECTED\": \"Please select at least one source.\",\n \"ERROR_SELECT_LESS_SOURCES_THAN_LIMIT\": \"Please select a maximum of {{maxSelections}} sources.\"\n }\n },\n \"NPS_CARD\": {\n \"NPS_RESEND_CONFIRMATION\": {\n \"TITLE\": \"Are you sure you want to re-send an NPS request?\",\n \"RESEND_BUTTON\": \"Re-send\",\n \"EMAIL_NOT_FOUND\": \"Add an email to the contact to re-send NPS request.\"\n },\n \"RESEND_REQUEST\": \"Once you\u2019ve addressed their concerns, you could ask them for another review\",\n \"RESENT_REQUEST\": \"Customer was asked to review their experience again on {{resentDate}}\",\n \"RESEND_NPS_REQUEST\": \"Re-send NPS request\"\n },\n \"NPS_OVERALL_CHART\": {\n \"NAME\": \"Net Promoter Score (NPS)\",\n \"NPS_PROMOTER\": \"Promoter\",\n \"NPS_PASSIVE\": \"Passive\",\n \"NPS_DETRACTOR\": \"Detractor\",\n \"NPS_INFO\": \"Net Promoter Score (NPS) measures your customer satisfaction and loyalty.

How it's calculated:
NPS = % Promoters - % Detractors

Explanation:
\u2022Promoters: Customers who would recommend your brand.
\u2022Detractors: Customers who wouldn't recommend your brand.

Example:
If 70% of your customers are promoters and 10% are detractors, your NPS is 60.\",\n \"RATINGS\": \"{{totalScore}} ratings\"\n },\n \"NPS_ROLLING_AVG_GRAPH\": {\n \"TITLE\": \"Score over time\",\n \"NPS_INFO\": \"The Net Promoter Score (NPS) shown here is calculated using a 30-day rolling window. This means the score is an average of the feedback received over the past 30 days, updated daily. This method helps smooth out short-term fluctuations and highlights longer-term trends in customer satisfaction.\"\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { ReviewDeletedStatus } from '@vendasta/reputation';\nimport { Review } from './review-types';\n\n@Pipe({\n name: 'checkReviewDeleted',\n standalone: false,\n})\nexport class CheckReviewDeletedPipe implements PipeTransform {\n transform(review: Review, checkAgainstStatus?: ReviewDeletedStatus): boolean {\n if (checkAgainstStatus || checkAgainstStatus === 0) {\n return review.deletedStatus === checkAgainstStatus;\n }\n return (\n review.deletedStatus === ReviewDeletedStatus.REVIEW_DELETED_STATUS_UNSPECIFIED ||\n review.deletedStatus === ReviewDeletedStatus.REVIEW_DELETED_STATUS_USER_REMOVED\n );\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { formatDistance } from 'date-fns';\nimport { ReviewComment } from './review-types';\n\n@Pipe({\n name: 'commentFromNow',\n standalone: false,\n})\nexport class CommentFromNowPipe implements PipeTransform {\n transform(comment: ReviewComment): string {\n const date = !!comment.published && comment.published > new Date(1970, 0) ? comment.published : comment.created;\n return formatDistance(date, new Date(), { addSuffix: true });\n }\n}\n", "/**\n * Generate the route of an image based on if it is being hosted locally or not\n * @param imageName: filepath of image\n */\nexport function getImageSrc(imageName: string): string {\n if (window.location.hostname === 'localhost') {\n return `/assets/reviews/${imageName}`;\n }\n return `https://vstatic-prod.apigateway.co/reputation-client/assets/reviews/${imageName}`;\n}\n\nexport const starCount = (stars: number): number[] => {\n return stars > 0 && stars <= 5\n ? Array(stars)\n .fill(1)\n .concat(Array(5 - stars).fill(0))\n : [];\n};\n", "import { Injectable } from '@angular/core';\nimport { RenderTemplateRequest, TemplatesApiService } from '@vendasta/templates';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface ReviewResponseTemplateParameters {\n reviewerFirstName?: string;\n reviewerFullName?: string;\n starRating?: string;\n businessName?: string;\n businessAddress?: string;\n businessPhoneNumber?: string;\n businessWebsite?: string;\n businessEmail?: string;\n username?: string;\n}\n\n@Injectable()\nexport class ReviewCardResponseTemplatesService {\n constructor(protected readonly templatesApiService: TemplatesApiService) {}\n\n public renderResponseTemplate(\n externalTemplateId: string,\n parameters: ReviewResponseTemplateParameters,\n applicationId: string,\n ): Observable {\n const renderRequest = new RenderTemplateRequest({\n applicationId: applicationId || 'reputation',\n templateId: externalTemplateId,\n parameters: parameters,\n });\n return this.templatesApiService.renderTemplate(renderRequest).pipe(map((response) => response.renderedTemplate));\n }\n}\n", "export const removeGoogleTranslation = (content: string) => {\n if (content.includes('(Translated by Google)')) {\n const translatedRegex = /(\\n*)\\(Translated by Google\\)[\\s\\S]*?(?:\\(Original\\)\\n?|$)/gi;\n content = content.replace(translatedRegex, '');\n }\n return content;\n};\n", "import { ReviewDeletedStatus } from '@vendasta/reputation';\nimport { TaskInterface } from '@vendasta/task';\n\nexport interface Review {\n sourceID: number;\n sourceName?: string;\n listingID: string;\n reviewID: string;\n title?: string;\n rating?: string;\n stars: number;\n url?: string;\n content?: string;\n published: Date;\n created: Date;\n status: ReviewStatus;\n shareUrl: string;\n respondUrl: string;\n isPublished: boolean;\n reviewerName?: string;\n reviewerEmail?: string;\n reviewerUrl?: string;\n domain?: string;\n comments?: ReviewComment[];\n publishThirdPartyReview?: boolean;\n recommendation?: RecommendationType;\n businessName?: string;\n lastFailedReviewCommentText?: string;\n lastFailedReviewCommentReason?: string;\n lastFailedReviewCommentCreated?: Date;\n deletedStatus?: ReviewDeletedStatus;\n edited?: Date;\n}\n\nexport interface ReviewConfig {\n accountgroupId: string;\n accountGroupEmail: string;\n country: string;\n environment: string;\n isCommentEditable: boolean;\n isWidgetAllReviewsAddonEnabled: boolean;\n dontShowWidgetPublishAction?: boolean;\n partnerId: string;\n socialMarketingEnabled: boolean;\n enableResponse: boolean;\n hasUser: boolean;\n userFirstName: string;\n userLastName: string;\n company: Company;\n userId: string;\n partnerName?: string;\n productEntryURL?: string;\n}\n\nexport interface Company {\n name?: string;\n address?: string;\n city?: string;\n workNumbers?: string[];\n website?: string;\n}\n\nexport enum ReviewStatus {\n DIGITAL_AGENT_RESPONDED = 'digital-agent-responded',\n OWNER_RESPONDED = 'owner-responded',\n ACTION_REQUIRED = 'action-required',\n NO_ACTION_REQUIRED = 'no-action-required',\n RESPONSE_AWAITING_APPROVAL = 'response-awaiting-approval',\n}\n\nexport enum RecommendationType {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport interface ReviewComment {\n commentText: string;\n created: Date;\n published?: Date;\n commentId: string;\n commentAuthor: string;\n postedByOwner?: boolean;\n reviewID: string;\n postedByDigitalAgent?: boolean;\n}\n\nexport interface ReviewFeedData {\n reviews: Review[];\n wordCloud: any;\n ratingStats: any;\n}\n\nexport interface UpdateReviewRequest {\n accountGroupId: string;\n partnerId: string;\n reviewID: string;\n status?: ReviewStatus;\n isPublished?: boolean;\n isPublishedThirdPartyReview?: boolean;\n}\n\nexport interface UpdateReviewCommentRequest {\n accountGroupId: string;\n reviewCommentId: string;\n updatedCommentText: string;\n}\n\nexport interface UpdateReviewCommentResponse {\n agid: string;\n commentId: string;\n commentText: string;\n commenterEmail: string;\n commenterName: string;\n createdDateTime: string;\n modifiedDateTime: string;\n postedByDigitalAgent: boolean;\n postedByOwner: boolean;\n publishedDateTime: string;\n rid: string;\n}\n\nexport interface CreateReviewCommentRequest {\n accountGroupId: string;\n reviewID: string;\n commentText: string;\n companyName?: string;\n}\n\nexport interface CreateReviewCommentResponse {\n agid: string;\n commentText: string;\n createdDateTime: string;\n commentId: string;\n commenterName: string;\n postedByOwner: boolean;\n}\n\nexport interface CanPublishReviewCommentResponse {\n data: CanPublishReviewCommentData;\n}\n\nexport interface CanPublishReviewCommentData {\n canPublish: boolean;\n message?: string;\n link?: string;\n}\n\nexport interface ConciergeReviewResponseRequest {\n accountGroupId: string;\n reviewId: string;\n partnerId: string;\n}\n\nexport interface ConciergeReviewResponseData {\n agent_name: string;\n response: string;\n feedback: string;\n partner_name: string;\n favicon_url: string;\n tags?: string[];\n}\n\nexport interface ConciergeReviewResponseResponse {\n data: ConciergeReviewResponseData;\n}\n\nexport interface ApproveConciergeResponseRequest {\n partnerId: string;\n reviewId: string;\n accountGroupId: string;\n}\n\nexport interface ProvideConciergeFeedbackRequest {\n partnerId: string;\n reviewId: string;\n accountGroupId: string;\n feedback: string;\n}\n\nexport interface SocialService {\n type: SocialServiceType;\n displayName: string;\n name: string;\n ssid: string;\n profileUrl?: string;\n profileImageUrl?: string;\n clientTags: string[];\n pages: SocialService[];\n deleteUrl: string;\n authUrl: string;\n tokenIsBroken?: boolean;\n locationPathName?: string;\n googleUserID?: string;\n spid?: string;\n displayPersonalFacebookAccount?: boolean;\n}\n\nexport enum SocialServiceType {\n TWITTER = 'TW_USER',\n TWITTER_EMPLOYEE = 'TW_EMPLOYEE',\n TWITTER_EMPLOYEE_ALIAS = 'employees',\n INSTAGRAM = 'IG_USER',\n GMB = 'GMB',\n FACEBOOK = 'FB_PAGE',\n LINKEDIN = 'LI_USER',\n INSTAGRAM_BUSINESS_ACCOUNT = 'IG_BUSINESS_ACCOUNT',\n}\n\nexport interface UpdateCallbackData {\n isPublished?: boolean;\n publishThirdPartyReview?: boolean;\n status?: ReviewStatus;\n comments?: ReviewComment[];\n}\n\nexport interface CardText {\n recommendationTitle: string;\n notRecommendationTitle: string;\n}\n\nexport interface ReviewResponseSetting {\n gmbAccountConnected?: boolean;\n facebookAccountConnected?: boolean;\n gmbAccount?: SocialService;\n facebookAccounts?: SocialService[];\n gmbAuthUrl?: string;\n facebookAuthUrl?: string;\n facebookResponseEnabled: boolean;\n apartmentsResponseEnabled: boolean;\n apartmentRatingsApiResponseEnabled: boolean;\n}\n\nexport interface ResponseTemplate {\n title: string;\n categories: string[];\n ratings: number[];\n content: string;\n responseTemplateId: string;\n externalTemplateId: string;\n createdBy: string;\n created: Date;\n owner: string;\n}\n\nexport enum SOURCE_IDS {\n GOOGLE_MAPS = 10010,\n FACEBOOK = 10050,\n BING_MAPS = 10020,\n INSTAGRAM = 11610,\n LINKEDIN = 10070,\n APARTMENT_RATINGS = 10090,\n APARTMENTS = 10790,\n YELP = 10000,\n HOTELS_DOT_COM = 12930,\n BOOKING = 12940,\n TRIPADVISOR = 10200,\n MY_LISTING = 12000,\n}\n\nexport const DEFAULT_SOURCE_NAMES = {\n [SOURCE_IDS.MY_LISTING]: 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MY_LISTING_SOURCE_NAME',\n [SOURCE_IDS.GOOGLE_MAPS]: 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.SOURCE_NAME.GOOGLE',\n [SOURCE_IDS.FACEBOOK]: 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.SOURCE_NAME.FACEBOOK',\n};\n\nexport interface ReviewPublishSettings {\n minimumPublishRating: number;\n thirdPartyMinimumPublishRating: number;\n}\n\nexport interface CommentEditorVisibleMap {\n [commentId: string]: boolean;\n}\n\nexport interface HighlightOptions {\n phrase: string;\n beginOffsets: number[];\n}\n\nexport enum VTMReviewFlags {\n RESPONSE_APPROVED = 'Response Approved',\n FEEDBACK_PROVIDED = 'Feedback Provided',\n RESPONSE_AWAITING_APPROVAL = 'Awaiting Approval',\n}\n\nexport interface DigitalAgentViewData {\n task: TaskInterface;\n}\n", "import { Injectable } from '@angular/core';\n\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ReviewApiService, ReviewDeletedStatus } from '@vendasta/reputation';\nimport { TaskInterface } from '@vendasta/task';\nimport { BehaviorSubject, Observable, EMPTY as ObservableEmpty, of, throwError } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n flatMap,\n map,\n retry,\n shareReplay,\n skipWhile,\n switchMap,\n take,\n takeLast,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {\n ApproveConciergeResponseRequest,\n CanPublishReviewCommentData,\n CanPublishReviewCommentResponse,\n ConciergeReviewResponseData,\n ConciergeReviewResponseRequest,\n ConciergeReviewResponseResponse,\n CreateReviewCommentRequest,\n CreateReviewCommentResponse,\n ProvideConciergeFeedbackRequest,\n Review,\n ReviewComment,\n ReviewStatus,\n UpdateCallbackData,\n UpdateReviewCommentRequest,\n UpdateReviewCommentResponse,\n UpdateReviewRequest,\n} from './review-types';\n\nexport const isNull = (val: any) => val === null;\n\n@Injectable()\nexport class ReviewsService {\n protected task$$: BehaviorSubject = new BehaviorSubject(null);\n private search$$: BehaviorSubject = new BehaviorSubject('');\n public updateCallback: (update: UpdateCallbackData) => void;\n constructor(\n protected readonly http: HttpClient,\n protected readonly snackbarService: SnackbarService,\n protected readonly translateService: TranslateService,\n protected readonly reviewApiService: ReviewApiService,\n ) {}\n get search$(): Observable {\n return this.search$$.asObservable().pipe(debounceTime(200), distinctUntilChanged());\n }\n\n set task(task: TaskInterface) {\n this.task$$.next(task);\n }\n\n publishReview(review$: Observable, accountGroupId: string, partnerId: string): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.updateReviewAPI({\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n reviewID: r.reviewID,\n isPublished: true,\n }).pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_PUBLISHING_REVIEW',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_PUBLISHED',\n );\n return { ...rvw, isPublished: true };\n }),\n );\n }),\n );\n }\n\n unpublishReview(review$: Observable, accountGroupId: string, partnerId: string): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.updateReviewAPI({\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n reviewID: r.reviewID,\n isPublished: false,\n }).pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_UNPUBLISHING_REVIEW',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_UNPUBLISHED',\n );\n return { ...rvw, isPublished: false };\n }),\n );\n }),\n );\n }\n\n publishToReviewWidget(review$: Observable, accountGroupId: string, partnerId: string): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.updateReviewAPI({\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n reviewID: r.reviewID,\n isPublishedThirdPartyReview: true,\n }).pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_PUBLISHING_REVIEW_TO_WIDGET',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_PUBLISHED_TO_WIDGET',\n );\n return { ...rvw, publishThirdPartyReview: true };\n }),\n );\n }),\n );\n }\n\n unpublishFromReviewWidget(\n review$: Observable,\n accountGroupId: string,\n partnerId: string,\n ): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.updateReviewAPI({\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n reviewID: r.reviewID,\n isPublishedThirdPartyReview: false,\n }).pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_UNPUBLISHING_REVIEW_FROM_WIDGET',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_UNPUBLISHED_FROM_WIDGET',\n );\n return { ...rvw, publishThirdPartyReview: false };\n }),\n );\n }),\n );\n }\n\n updateReviewStatus(\n review$: Observable,\n status: ReviewStatus,\n accountGroupId: string,\n partnerId: string,\n ): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.updateReviewAPI({\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n reviewID: r.reviewID,\n status,\n }).pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_UPDATING_REVIEW_STATUS',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_STATUS_UPDATED',\n );\n return { ...rvw, status: status };\n }),\n );\n }),\n );\n }\n\n createReviewComment(\n review$: Observable,\n commentText: string,\n accountGroupId: string,\n companyName: string,\n ): Observable {\n return review$.pipe(\n take(1),\n flatMap((r) => {\n return this.canPublishReviewCommentToSourceAPI(r.reviewID, accountGroupId)\n .pipe(\n skipWhile(isNull),\n takeLast(1),\n switchMap((res) => {\n if (res && !res.canPublish) {\n this.snackbarService.openErrorSnack(\n res.message && res.message.length > 0\n ? res.message\n : this.translateService.instant(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_ADDING_COMMENT',\n ),\n );\n return ObservableEmpty;\n }\n return this.createReviewCommentAPI({\n accountGroupId: accountGroupId,\n reviewID: r.reviewID,\n commentText,\n companyName: companyName,\n });\n }),\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_ADDING_COMMENT',\n );\n return ObservableEmpty;\n }),\n )\n .pipe(\n withLatestFrom(review$),\n map(([newComment, rvw]) => {\n // Update review status\n const comments = [...rvw.comments, newComment];\n const status = newComment.postedByOwner\n ? ReviewStatus.OWNER_RESPONDED\n : ReviewStatus.DIGITAL_AGENT_RESPONDED;\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.COMMENT_SAVED',\n );\n return { ...rvw, status: status, comments: comments };\n }),\n );\n }),\n );\n }\n\n editReviewComment(\n comment: ReviewComment,\n updatedCommentText: string,\n accountGroupId: string,\n ): Observable {\n return this.canPublishReviewCommentToSourceAPI(comment.reviewID, accountGroupId).pipe(\n skipWhile(isNull),\n takeLast(1),\n switchMap((res) => {\n if (res && !res.canPublish) {\n this.snackbarService.openErrorSnack(\n res.message && res.message.length > 0\n ? res.message\n : this.translateService.instant(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_EDITING_COMMENT',\n ),\n );\n return ObservableEmpty;\n }\n return this.updateReviewCommentAPI({\n accountGroupId: accountGroupId,\n reviewCommentId: comment.commentId,\n updatedCommentText: updatedCommentText,\n });\n }),\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_EDITING_COMMENT',\n );\n return ObservableEmpty;\n }),\n tap((updatedComment: ReviewComment) => {\n Object.assign(comment, updatedComment);\n this.snackbarService.openSuccessSnack('COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.COMMENT_EDITED');\n }),\n shareReplay(),\n );\n }\n\n createConciergeFeedback(\n reviewId: string,\n feedbackText: string,\n accountGroupId: string,\n partnerId: string,\n callback?: () => void,\n ): void {\n this.provideConciergeFeedbackAPI({\n accountGroupId: accountGroupId,\n reviewId: reviewId,\n feedback: feedbackText,\n partnerId: partnerId,\n })\n .pipe(\n tap(() => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.FEEDBACK_SAVED',\n );\n if (callback) {\n callback();\n }\n }),\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_ADDING_FEEDBACK',\n );\n return ObservableEmpty;\n }),\n )\n .subscribe();\n }\n\n approveConciergeResponse(reviewId: string, accountGroupId: string, partnerId: string, callback?: () => void): void {\n this.approveConciergeResponseAPI({\n accountGroupId: accountGroupId,\n reviewId: reviewId,\n partnerId: partnerId,\n })\n .pipe(\n tap(() => {\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.RESPONSE_APPROVED',\n );\n if (callback) {\n callback();\n }\n }),\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_APPROVING_FEEDBACK',\n );\n return ObservableEmpty;\n }),\n )\n .subscribe();\n }\n\n getConciergeReviewResponse(\n reviewId: string,\n accountGroupId: string,\n partnerId: string,\n ): Observable {\n return this.getConciergeReviewResponseAPI({\n accountGroupId: accountGroupId,\n reviewId: reviewId,\n partnerId: partnerId,\n });\n }\n\n updateSearch(term: string): void {\n this.search$$.next(term);\n }\n\n updateReviewUserDeletedInfo(\n review$: Observable,\n userId: string,\n deletedStatus: ReviewDeletedStatus,\n ): Observable {\n return review$.pipe(\n take(1),\n flatMap((review) =>\n this.reviewApiService\n .updateReviewUserDeletedInfo({\n reviewId: review.reviewID,\n userId: userId,\n deletedStatus: deletedStatus,\n })\n .pipe(\n catchError((err) => {\n console.error(err);\n this.snackbarService.openErrorSnack(\n deletedStatus === ReviewDeletedStatus.REVIEW_DELETED_STATUS_USER_REMOVED\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.ERROR_REMOVED'\n : 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.ERROR_KEPT',\n );\n return ObservableEmpty;\n }),\n withLatestFrom(review$),\n map(([, rvw]) => {\n this.snackbarService.openSuccessSnack(\n deletedStatus === ReviewDeletedStatus.REVIEW_DELETED_STATUS_USER_REMOVED\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.SUCCESSFULLY_REMOVED'\n : 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.SUCCESSFULLY_KEPT',\n );\n return { ...rvw, deletedStatus: deletedStatus };\n }),\n ),\n ),\n );\n }\n\n getConciergeReviewResponseAPI(req: ConciergeReviewResponseRequest): Observable {\n let params = new HttpParams().set('reviewId', req.reviewId);\n params = params.append('partnerId', req.partnerId);\n return this.http\n .get(`account/${req.accountGroupId}/ajax/v1/review/getReviewResponse/`, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n params: params,\n })\n .pipe(map((res) => res.data));\n }\n\n approveConciergeResponseAPI(req: ApproveConciergeResponseRequest): Observable {\n let params = new HttpParams().set('reviewId', req.reviewId);\n params = params.append('partnerId', req.partnerId);\n return this.http.post(`account/${req.accountGroupId}/ajax/v1/review/response/approve/`, null, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n params: params,\n });\n }\n\n provideConciergeFeedbackAPI(req: ProvideConciergeFeedbackRequest): Observable {\n let params = new HttpParams().set('reviewId', req.reviewId);\n params = params.append('partnerId', req.partnerId);\n params = params.append('feedback', '');\n const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\n return this.http.post(\n `account/${req.accountGroupId}/ajax/v1/review/response/feedback/`,\n params.toString() + encodeURIComponent(req.feedback),\n {\n headers,\n },\n );\n }\n\n updateReviewAPI(req: UpdateReviewRequest): Observable {\n let body = new HttpParams();\n body = body.set('partnerId', req.partnerId);\n body = body.set('accountGroupId', req.accountGroupId);\n body = body.set('reviewId', req.reviewID);\n if (req.status) {\n body = body.set('actionStatus', req.status);\n }\n if (req.isPublished !== undefined && req.isPublished !== null) {\n body = body.set('isPublishedFlag', `${req.isPublished}`);\n }\n if (req.isPublishedThirdPartyReview !== undefined && req.isPublishedThirdPartyReview !== null) {\n body = body.set('isPublishedThirdPartyReviewFlag', `${req.isPublishedThirdPartyReview}`);\n }\n const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\n return this.http\n .post(`account/${req.accountGroupId}/ajax/v1/review/update/`, body.toString(), {\n headers,\n })\n .pipe(map(Boolean));\n }\n\n updateReviewCommentAPI(req: UpdateReviewCommentRequest): Observable {\n const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\n const body = new HttpParams().set('reviewCommentId', req.reviewCommentId).set('updatedCommentText', '');\n return this.http\n .post<{ data: UpdateReviewCommentResponse }>(\n `account/${req.accountGroupId}/ajax/v1/review/updateComment/`,\n body.toString() + encodeURIComponent(req.updatedCommentText),\n {\n headers,\n },\n )\n .pipe(\n map((res) => res.data),\n map((res) => ({\n commentText: res.commentText,\n created: new Date(res.createdDateTime),\n commentId: res.commentId,\n commentAuthor: res.commenterName,\n postedByOwner: res.postedByOwner,\n reviewID: res.rid,\n })),\n );\n }\n\n createReviewCommentAPI(req: CreateReviewCommentRequest): Observable {\n const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\n const body = new HttpParams()\n .set('reviewId', req.reviewID)\n .set('responseContent', req.commentText.replace(';', ''));\n return this.http\n .post<{ data: CreateReviewCommentResponse }>(\n `account/${req.accountGroupId}/ajax/v1/review/postComment/`,\n body.toString(),\n {\n headers,\n },\n )\n .pipe(\n map((res) => res.data),\n map((res) => ({\n commentText: res.commentText,\n created: new Date(res.createdDateTime),\n commentId: res.commentId,\n commentAuthor: res.commenterName,\n postedByOwner: res.postedByOwner,\n reviewID: req.reviewID,\n })),\n );\n }\n\n canPublishReviewCommentToSourceAPI(\n reviewID: string,\n accountGroupId: string,\n ): Observable {\n const params = new HttpParams().set('reviewId', reviewID);\n return this.http\n .get(`account/${accountGroupId}/ajax/v1/review/canComment/`, { params: params })\n .pipe(\n map((res) => res.data),\n retry(2),\n );\n }\n\n suggestReviewResponse(reviewId: string, accountGroupId: string, isSameLanguage: boolean): Observable {\n return this.reviewApiService\n .suggestReviewResponse({\n reviewId: reviewId,\n businessId: accountGroupId,\n inSameLanguage: isSameLanguage,\n })\n .pipe(map((res) => res.message));\n }\n\n handleRequestApproval(\n reviewId: string,\n partnerId: string,\n task: TaskInterface,\n accountGroupId: string,\n existingResponse$: Observable,\n commentText: string,\n ): Observable {\n return this.requestApproval(reviewId, partnerId, task, accountGroupId, existingResponse$, commentText).pipe(\n catchError((err: HttpErrorResponse) => {\n if (err.status === 404) {\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_NO_LONGER_EXISTS',\n );\n } else {\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_REQUESTING_APPROVAL',\n );\n }\n return throwError(err);\n }),\n tap(() =>\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.APPROVAL_REQUESTED',\n ),\n ),\n take(1),\n );\n }\n\n requestApproval(\n reviewId: string,\n partnerId: string,\n task: TaskInterface,\n accountGroupId: string,\n existingResponse$: Observable,\n commentText: string,\n ): Observable {\n if (reviewId || partnerId || task || accountGroupId || existingResponse$ || commentText) {\n //no-op\n }\n return of(null);\n }\n\n updateReviewDraft(\n reviewId: string,\n partnerId: string,\n task: TaskInterface,\n accountGroupId: string,\n existingResponse$: Observable,\n commentText: string,\n ): Observable {\n if (reviewId || partnerId || task || accountGroupId || existingResponse$ || commentText) {\n //no-op\n }\n return of(null);\n }\n}\n", "import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Review } from '../review-types';\nimport { ReviewApiService } from '@vendasta/reputation';\nimport { ReviewHistory } from '@vendasta/reputation';\nimport { Observable, startWith } from 'rxjs';\nimport { getImageSrc } from '../../common/utils';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { map } from 'rxjs/operators';\nimport { starCount } from '../../common/utils';\n\ninterface State {\n loading: boolean;\n reviewHistory: reviewHistoryWithStarRating[];\n}\n\ninterface reviewHistoryWithStarRating {\n reviewHistory: ReviewHistory;\n stars: number[];\n}\n\n@Component({\n selector: 'reviews-review-history-card',\n templateUrl: './review-history-card.component.html',\n styleUrls: ['./review-history-card.component.scss'],\n standalone: false,\n})\nexport class ReviewHistoryCardComponent implements OnInit {\n state$: Observable;\n emptyImagePath = getImageSrc('Noreviewhistory.svg');\n reviewStars: number[];\n protected readonly DateFormat = DateFormat;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public review: Review,\n private reviewHistoryService: ReviewApiService,\n ) {}\n\n ngOnInit() {\n this.state$ = this.reviewHistoryService\n .getReviewHistory({\n reviewId: this.review.reviewID,\n })\n .pipe(\n map((result) => {\n const reviewHistoryWithStarRating = result.reviewHistory\n ? result.reviewHistory.map((reviewHistory) => {\n const scaledStarRating = reviewHistory.scaledStarRating || 0;\n return {\n reviewHistory: reviewHistory,\n stars: starCount(this.getStarsFromScaledStarRating(scaledStarRating)),\n };\n })\n : null;\n return {\n loading: false,\n reviewHistory: reviewHistoryWithStarRating,\n };\n }),\n startWith({\n loading: true,\n reviewHistory: [],\n }),\n );\n\n this.reviewStars = starCount(this.review.stars);\n }\n\n getStarsFromScaledStarRating(scaledStarRating: number): number {\n return scaledStarRating / 250 + 1;\n }\n}\n", "

{{ 'REVIEW_HISTORY_CARD.TITLE' | translate }}

\n\n
\n \n \n
\n
\n {{ review.reviewerName }} - {{ review.edited | glxyDate : DateFormat.longDate }}\n \n {{ 'REVIEW_HISTORY_CARD.LIVE_BADGE' | translate }}\n \n
\n
\n star\n
\n
{{ review.content }}
\n
\n
\n
\n {{ reviewHistoryWithStars.reviewHistory.reviewerName }} -\n {{ reviewHistoryWithStars.reviewHistory.published | glxyDate : DateFormat.longDate }}\n
\n
\n \n star\n \n
\n
{{ reviewHistoryWithStars.reviewHistory.content }}
\n
\n
\n \n \n \n \"No\n \n {{ 'REVIEW_HISTORY_CARD.EMPTY_STATE.TITLE' | translate }}\n

{{ 'REVIEW_HISTORY_CARD.EMPTY_STATE.SUBTITLE' | translate }}

\n
\n
\n
\n \n \n \n
\n
\n\n \n\n", "import { Component } from '@angular/core';\n\n@Component({\n selector: 'reviews-recommended-icon',\n template: `\n \n \n \n \n \n \n \n `,\n styles: [\n `\n svg {\n width: 1.2em;\n height: 1em;\n }\n `,\n ],\n standalone: false,\n})\nexport class RecommendedIconComponent {}\n", "import { Component } from '@angular/core';\n\n@Component({\n selector: 'reviews-not-recommended-icon',\n template: `\n \n \n \n \n \n \n \n `,\n styles: [\n `\n svg {\n width: 1.2em;\n height: 1em;\n }\n `,\n ],\n standalone: false,\n})\nexport class NotRecommendedIconComponent {}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { ResponseTemplate } from '../common-review-card/review-types';\n\nconst PERSONAS = ['professional', 'semi_casual', 'casual'];\n\n@Pipe({\n name: 'filterTemplates',\n standalone: false,\n})\nexport class FilterTemplatesPipe implements PipeTransform {\n static filterTemplates(\n responseTemplates: ResponseTemplate[],\n rating?: number | string,\n taxonomies?: string[],\n ): ResponseTemplate[] {\n if (!responseTemplates) {\n return [];\n }\n rating = rating ? Number(rating) : null;\n taxonomies = !!taxonomies && taxonomies.length > 0 ? taxonomies : null;\n if (!!rating && (rating < 1 || rating > 5)) {\n return [];\n }\n\n return responseTemplates.filter((responseTemplate) => {\n let ratingMatch = false;\n if (!!rating && !!responseTemplate.ratings) {\n ratingMatch = responseTemplate.ratings.some((r) => r === rating);\n } else {\n ratingMatch = true;\n }\n\n let categoriesMatch = false;\n let templateCategories = null;\n if (!!responseTemplate && !!responseTemplate.categories) {\n templateCategories = responseTemplate.categories.filter((category) => !!category && category !== '');\n }\n if (!!taxonomies && !!templateCategories && templateCategories.length > 0) {\n categoriesMatch = templateCategories.some(\n (category: string) =>\n PERSONAS.some((persona) => persona === category) ||\n taxonomies.some((taxonomy) => category.includes(taxonomy) || taxonomy.includes(category)),\n );\n } else {\n categoriesMatch = true;\n }\n return ratingMatch && categoriesMatch;\n });\n }\n\n transform(responseTemplates: ResponseTemplate[], rating?: string, categories?: string[]): ResponseTemplate[] {\n return FilterTemplatesPipe.filterTemplates(responseTemplates, rating, categories);\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\n\nexport interface ResponseErrors {\n placeholderWarning: boolean;\n googleUserWarning: boolean;\n}\n\n@Pipe({\n name: 'validateResponse',\n standalone: false,\n})\nexport class ValidateResponsePipe implements PipeTransform {\n static validateResponse(response: string): ResponseErrors {\n if (!response) {\n return {\n placeholderWarning: false,\n googleUserWarning: false,\n };\n }\n\n return {\n placeholderWarning: !!response.match(/.*[{}[\\]].*/g),\n googleUserWarning: response.includes('A Google User'),\n };\n }\n\n transform(response: string): ResponseErrors {\n return ValidateResponsePipe.validateResponse(response);\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { ResponseTemplate } from '../common-review-card/review-types';\n\n@Pipe({\n name: 'randomizeTemplates',\n standalone: false,\n})\nexport class RandomizeTemplatesPipe implements PipeTransform {\n static randomizeTemplates(responseTemplates: ResponseTemplate[]): ResponseTemplate[] {\n let curIndex = responseTemplates.length;\n while (curIndex > 0) {\n curIndex -= 1;\n const randIndex = Math.floor(Math.random() * curIndex);\n const tempValue = responseTemplates[curIndex];\n responseTemplates[curIndex] = responseTemplates[randIndex];\n responseTemplates[randIndex] = tempValue;\n }\n return responseTemplates;\n }\n\n transform(responseTemplates: ResponseTemplate[]): ResponseTemplate[] {\n if (!responseTemplates) {\n return [];\n }\n return RandomizeTemplatesPipe.randomizeTemplates(responseTemplates);\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { ResponseTemplate } from '../common-review-card/review-types';\n\n@Pipe({\n name: 'paginateTemplates',\n standalone: false,\n})\nexport class PaginateTemplatesPipe implements PipeTransform {\n static paginateTemplates(responseTemplates: ResponseTemplate[], page: number): ResponseTemplate[] {\n const start = (page * 3) % responseTemplates.length;\n const end = start + 3;\n const templates = responseTemplates.slice(start, end);\n if (end > responseTemplates.length && responseTemplates.length > 3) {\n templates.push(...responseTemplates.slice(0, end - responseTemplates.length));\n }\n return templates;\n }\n\n transform(responseTemplates: ResponseTemplate[], page: number): ResponseTemplate[] {\n if (!responseTemplates) {\n return [];\n }\n return PaginateTemplatesPipe.paginateTemplates(responseTemplates, page);\n }\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport { removeGoogleTranslation } from './remove-google-translation';\n\n@Pipe({\n name: 'transformReviewContent',\n standalone: false,\n})\nexport class TransformReviewContentPipe implements PipeTransform {\n transform(content: string, options?: { hideEnglishTranslations?: boolean }): string {\n if (options.hideEnglishTranslations) {\n return removeGoogleTranslation(content);\n }\n\n return content;\n }\n}\n", "import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyAiIconService } from '@vendasta/galaxy/ai-icon';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { ReviewDeletedStatus } from '@vendasta/reputation';\nimport { PhoneNumberFormatPipe } from '@vendasta/uikit';\nimport formatDistance from 'date-fns/formatDistance';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { finalize, first, map, share, shareReplay, take, takeUntil, tap } from 'rxjs/operators';\nimport { starCount } from '../common/utils';\nimport {\n ReviewCardResponseTemplatesService,\n ReviewResponseTemplateParameters,\n} from '../response-templates/response-templates.service';\nimport { ConnectAccountConfig } from './connect-account-dialog.component';\nimport { removeGoogleTranslation } from './remove-google-translation';\nimport { ReviewsService } from './review-card.service';\nimport { ReviewHistoryCardComponent } from './review-history-card/review-history-card.component';\nimport {\n CardText,\n CommentEditorVisibleMap,\n ConciergeReviewResponseData,\n DigitalAgentViewData,\n HighlightOptions,\n ResponseTemplate,\n Review,\n ReviewComment,\n ReviewConfig,\n ReviewPublishSettings,\n ReviewResponseSetting,\n ReviewStatus,\n SOURCE_IDS,\n VTMReviewFlags,\n} from './review-types';\n\nconst APARTMENT_RATINGS = 'APAR';\n\n@Component({\n selector: 'reviews-common-card',\n templateUrl: './common-review-card.component.html',\n styleUrls: ['./common-review-card.component.scss'],\n animations: [\n trigger('showHelperText', [\n state(\n 'true',\n style({\n height: '*',\n margin: '*',\n opacity: 1,\n }),\n ),\n state(\n 'false',\n style({\n height: '0px',\n margin: '0px 76px 0px 16px',\n opacity: 0,\n }),\n ),\n transition('true <=> false', [animate('0.25s')]),\n ]),\n ],\n standalone: false,\n})\nexport class ReviewCardComponent implements OnInit, OnDestroy {\n @Input() reviewConfig: ReviewConfig;\n @Input() review: Review;\n @Input() cardText: CardText;\n @Input() connectAccountConfig: ConnectAccountConfig;\n @Input() reviewResponseSettings: ReviewResponseSetting;\n @Input() reviewPublishSettings: ReviewPublishSettings;\n @Input() taskManagerReviewResponseData$: Observable;\n @Input() responseTemplates: ResponseTemplate[];\n @Input() taxonomyIds: string[];\n @Input() highlightOptions: HighlightOptions;\n // templateApplicationId specifies the application which the response templates belong to. It is \"reputation\" by default.\n @Input() templateApplicationId = 'reputation';\n @Input() digitalAgentViewData: DigitalAgentViewData;\n @Input() showFulfillmentRespondedBadge = false;\n // trackExternalLinkClicks enables tracking on external links for reviews. This should be enabled for Reputation Client only\n @Input() trackExternalLinkClicks = false;\n // Feature flag value for non_english_review_response_templates\n @Input() nonEnglishReviewResponseTemplates = false;\n // Feature flag value for hide_google_translated_review_content\n @Input() hideGoogleTranslatedReviewContent = false;\n // Feature flag value for suggestResponseOnAllSources\n @Input() suggestResponseOnAllSources = false;\n // Whether the \"suggest response\" button should be visible. It is enabled by default.\n @Input() openAIEnabled = true;\n @Input() reviewHistoryEnabled = true;\n\n GalaxyAiIconService = inject(GalaxyAiIconService);\n\n showRespondBox = false;\n showRespondBoxWithSuggestedText = false;\n showTaskManagerRespondBox = false;\n showTaskManagerComment = true;\n provideTaskManagerFeedback = false;\n showComments = false;\n showRespondButton = true;\n isCommentEditable = false;\n reviewDataLink: string;\n isDebug$: Observable;\n shouldDisplayReviewWidgetMenu = false;\n isPublishedThirdPartyReview = false;\n isPublishedMyListingReview = false;\n disableThirdPartyReviewSourceIDs = [\n SOURCE_IDS.YELP,\n SOURCE_IDS.HOTELS_DOT_COM,\n SOURCE_IDS.BOOKING,\n SOURCE_IDS.TRIPADVISOR,\n SOURCE_IDS.MY_LISTING,\n ];\n ReviewStatus = ReviewStatus;\n taskManagerResponse$: Observable;\n isSharingReviewEnabled = false;\n isPublishingReviewEnabled = false;\n isPositiveRecommendation = false;\n isNegativeRecommendation = false;\n isRecommendation = false;\n enableResponse = false;\n responseBoxText$: Observable;\n\n language: string;\n\n commentEditorVisibleMap$$: BehaviorSubject = new BehaviorSubject({});\n commentEditorVisibleMap$: Observable;\n\n review$$: BehaviorSubject = new BehaviorSubject(null);\n review$: Observable = this.review$$.asObservable();\n businessReviewsURL: string;\n businessSettingsURL: string;\n\n sourceIds = SOURCE_IDS;\n reviewDeletedStatus = ReviewDeletedStatus;\n\n lastTemplateUsed: { referencedTemplate: ResponseTemplate; renderedTemplate: string } = null;\n\n isLastFailedReviewComment = false;\n lastFailedReviewCommentReason = false;\n showlastFailedReviewCommentResponseBox = true;\n isHelperTextVisible = false;\n canPublishDirect$: Observable;\n canPublishDirectLoading$$: BehaviorSubject = new BehaviorSubject(false);\n digitalAgentView: boolean;\n VTMReviewFlags = VTMReviewFlags;\n digitalAgentTaskFlags: string[] = [];\n initialResponseValue: string;\n digitalAgentButtonDisabled$$: BehaviorSubject = new BehaviorSubject(true);\n isPublishLoading$$: BehaviorSubject = new BehaviorSubject(false);\n isRequestingApprovalLoading$$: BehaviorSubject = new BehaviorSubject(false);\n hasOwnerResponded: boolean;\n hasDigitalAgentResponded: boolean;\n reviewResponseTemplatePage = 0;\n editedFromNow: string;\n private unsubscribe: Subject = new Subject();\n private suggestingResponse$$: BehaviorSubject = new BehaviorSubject(false);\n suggestingResponse$: Observable = this.suggestingResponse$$.asObservable();\n reviewStars: number[];\n\n constructor(\n private reviewsService: ReviewsService,\n private translateService: TranslateService,\n private templatesService: ReviewCardResponseTemplatesService,\n private snowplow: ProductAnalyticsService,\n private snackbarService: SnackbarService,\n private router: Router,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private formatPhoneNumber: PhoneNumberFormatPipe,\n ) {}\n\n ngOnInit(): void {\n if (this.reviewConfig.partnerId === APARTMENT_RATINGS) {\n this.responseTemplates = [];\n this.responseBoxText$ = this.translateService.stream(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.NO_TEMPLATE_RESPONSE_TOOLTIP',\n );\n } else {\n this.responseBoxText$ = this.translateService.stream(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.RESPOND_TOOLTIP',\n );\n }\n this.highlightReviewContent();\n this.commentEditorVisibleMap$ = this.commentEditorVisibleMap$$.asObservable();\n this.isDebug$ = this.route.queryParams.pipe(\n map((params) => params.debug === 'true'),\n first(),\n shareReplay(1),\n );\n this.reviewDataLink = this.getReviewDataLink(this.review.listingID);\n this.showRespondButton = this.reviewConfig.enableResponse;\n this.enableResponse = this.reviewConfig.enableResponse;\n\n this.shouldDisplayReviewWidgetMenu = this.shouldShowReviewWidget();\n this.isPublishedMyListingReview = this.review.isPublished && this.review.sourceID === SOURCE_IDS.MY_LISTING;\n this.isPublishedThirdPartyReview = this.shouldDisplayReviewWidgetMenu && this.isPublishedReview();\n if (this.taskManagerReviewResponseData$) {\n this.taskManagerResponse$ = this.taskManagerReviewResponseData$;\n }\n\n this.isSharingReviewEnabled = this.reviewConfig && this.reviewConfig.socialMarketingEnabled;\n this.isPublishingReviewEnabled =\n this.review.sourceID === SOURCE_IDS.MY_LISTING || this.shouldDisplayReviewWidgetMenu;\n this.isPositiveRecommendation =\n this.review.sourceID === SOURCE_IDS.FACEBOOK && this.review.recommendation === 'positive';\n this.isNegativeRecommendation =\n this.review.sourceID === SOURCE_IDS.FACEBOOK && this.review.recommendation === 'negative';\n this.isRecommendation = this.isPositiveRecommendation || this.isNegativeRecommendation;\n\n this.language = this.translateService.defaultLang;\n this.translateService.onLangChange\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((event) => (this.language = event.lang));\n const hasNoReviewComments = this.review.comments && this.review.comments.length < 1;\n this.showRespondBox = hasNoReviewComments && this.canShowResponseBox();\n this.showRespondBoxWithSuggestedText =\n this.openAIEnabled &&\n this.suggestResponseOnAllSources &&\n this.enableResponse &&\n (this.reviewResponseSettings || !this.isResponseSettingRequired()) &&\n (hasNoReviewComments || this.review.sourceID === SOURCE_IDS.FACEBOOK) &&\n !this.canShowResponseBox();\n if (\n !this.showRespondBox &&\n this.showRespondBoxWithSuggestedText &&\n this.reviewConfig.partnerId !== APARTMENT_RATINGS\n ) {\n this.responseBoxText$ = this.translateService.stream(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.RESPOND_TOOLTIP_REVIEW_SITES',\n );\n }\n this.review = this.transformReview(this.review);\n this.review$$.next(this.review);\n\n this.review$.pipe(takeUntil(this.unsubscribe)).subscribe((r) => {\n this.review = r;\n this.digitalAgentButtonDisabled$$.next(\n r.status === ReviewStatus.DIGITAL_AGENT_RESPONDED || r.status === ReviewStatus.OWNER_RESPONDED,\n );\n });\n\n if (\n this.review.lastFailedReviewCommentReason &&\n this.review.lastFailedReviewCommentReason.includes('Got a 404 response from Google My Business')\n ) {\n this.lastFailedReviewCommentReason = true;\n }\n this.isLastFailedReviewComment =\n this.review.lastFailedReviewCommentText && this.review.status === ReviewStatus.ACTION_REQUIRED;\n\n this.businessReviewsURL = this.reviewConfig?.company ? this.buildBusinessProductURL('reviews') : null;\n this.businessSettingsURL = this.buildBusinessProductURL('settings');\n this.canPublishDirectLoading$$.next(true);\n this.canPublishDirect$ = this.reviewsService\n .canPublishReviewCommentToSourceAPI(this.review.reviewID, this.reviewConfig.accountgroupId)\n .pipe(\n map((canPublishData) => canPublishData.canPublish),\n finalize(() => this.canPublishDirectLoading$$.next(false)),\n );\n if (this.digitalAgentViewData) {\n this.digitalAgentView = true;\n this.digitalAgentTaskFlags = this.digitalAgentViewData?.task?.tags\n ? [...this.digitalAgentViewData.task.tags]\n : [];\n this.taskManagerReviewResponseData$.pipe(take(1)).subscribe((res) => {\n if (res?.tags?.includes(VTMReviewFlags.RESPONSE_AWAITING_APPROVAL)) {\n this.digitalAgentTaskFlags?.push(VTMReviewFlags.RESPONSE_AWAITING_APPROVAL);\n }\n });\n this.reviewsService.task = this.digitalAgentViewData.task;\n }\n\n if (this.digitalAgentView) {\n // Hard coding to false until endpoint is setup in VTM\n this.isCommentEditable = false;\n } else if ([SOURCE_IDS.GOOGLE_MAPS, SOURCE_IDS.FACEBOOK].includes(this.review.sourceID)) {\n this.isCommentEditable = this.reviewConfig.isCommentEditable && this.canShowResponseBox();\n } else {\n this.isCommentEditable = this.reviewConfig.isCommentEditable;\n }\n\n this.hasOwnerResponded = this.review.comments.some((comment) => comment.postedByOwner === true);\n this.hasDigitalAgentResponded = this.review.comments.some((comment) => comment.postedByDigitalAgent === true);\n\n if (this.review.edited) {\n this.editedFromNow = this.fromNow(this.review.edited);\n }\n\n this.reviewStars = starCount(this.review.stars);\n }\n\n respondButtonPressed(): void {\n this.provideTaskManagerFeedback = false;\n\n if (this.canShowResponseBox()) {\n this.showRespondBox = true;\n const cevm = this.commentEditorVisibleMap$$.getValue();\n this.commentEditorVisibleMap$$.next(this.closeCommentEditor(cevm));\n } else {\n if (this.review.sourceID === SOURCE_IDS.GOOGLE_MAPS) {\n if (this.reviewResponseSettings && this.reviewResponseSettings.gmbAuthUrl) {\n window.location.href = this.reviewResponseSettings.gmbAuthUrl;\n } else {\n window.open(this.businessSettingsURL, '_blank');\n }\n } else if (this.review.sourceID === SOURCE_IDS.FACEBOOK) {\n if (this.reviewResponseSettings && this.reviewResponseSettings.facebookAuthUrl) {\n window.location.href = this.reviewResponseSettings.facebookAuthUrl;\n } else {\n window.open(this.businessSettingsURL, '_blank');\n }\n } else {\n window.open(this.review.respondUrl, '_blank');\n }\n }\n }\n\n connectButtonPressed(): void {\n if (this.review.sourceID === SOURCE_IDS.GOOGLE_MAPS) {\n if (this.reviewResponseSettings && this.reviewResponseSettings.gmbAuthUrl) {\n window.location.href = this.reviewResponseSettings.gmbAuthUrl;\n } else {\n window.open(this.businessSettingsURL, '_blank');\n }\n } else if (this.review.sourceID === SOURCE_IDS.FACEBOOK) {\n if (this.reviewResponseSettings && this.reviewResponseSettings.facebookAuthUrl) {\n window.location.href = this.reviewResponseSettings.facebookAuthUrl;\n } else {\n window.open(this.businessSettingsURL, '_blank');\n }\n } else {\n window.open(this.review.respondUrl, '_blank');\n }\n }\n\n respondOnSourceButtonPressed(): void {\n window.open(this.review.respondUrl, '_blank');\n }\n\n cancelButtonPressed(): void {\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n\n canShowResponseBox(): boolean {\n if (!this.reviewResponseSettings || this.provideTaskManagerFeedback) {\n return false;\n }\n\n switch (this.review.sourceID) {\n case SOURCE_IDS.MY_LISTING:\n return true;\n case SOURCE_IDS.GOOGLE_MAPS: {\n const gmbAccount = this.reviewResponseSettings.gmbAccount;\n return (gmbAccount !== null && gmbAccount !== undefined) || !!this.reviewResponseSettings.gmbAccountConnected;\n }\n case SOURCE_IDS.FACEBOOK: {\n const fbAccounts = this.reviewResponseSettings.facebookAccounts;\n const hasFacebookConnected =\n (fbAccounts && fbAccounts.length > 0) || !!this.reviewResponseSettings.facebookAccountConnected;\n return this.reviewResponseSettings.facebookResponseEnabled && hasFacebookConnected;\n }\n case SOURCE_IDS.APARTMENTS:\n return this.reviewResponseSettings.apartmentsResponseEnabled;\n case SOURCE_IDS.APARTMENT_RATINGS:\n return this.reviewResponseSettings.apartmentRatingsApiResponseEnabled;\n default:\n return false;\n }\n }\n\n isResponseSettingRequired(): boolean {\n switch (this.review.sourceID) {\n case SOURCE_IDS.MY_LISTING:\n case SOURCE_IDS.GOOGLE_MAPS:\n case SOURCE_IDS.FACEBOOK:\n case SOURCE_IDS.APARTMENTS:\n case SOURCE_IDS.APARTMENT_RATINGS:\n return true;\n default:\n return false;\n }\n }\n\n provideFeedback(): void {\n this.provideTaskManagerFeedback = true;\n this.showTaskManagerRespondBox = true;\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n\n approveResponse(): void {\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n this.reviewsService.approveConciergeResponse(\n this.review.reviewID,\n this.reviewConfig.accountgroupId,\n this.reviewConfig.partnerId,\n () => this.refreshFeedbackData(),\n );\n }\n\n saveComment(commentText: string): void {\n this.isPublishLoading$$.next(true);\n this.reviewsService\n .createReviewComment(this.review$, commentText, this.reviewConfig.accountgroupId, this.reviewConfig.company.name)\n .pipe(\n takeUntil(this.unsubscribe),\n finalize(() => this.isPublishLoading$$.next(false)),\n )\n .subscribe((r) => {\n if (r !== undefined) {\n this.review$$.next(r);\n this.showRespondBox = false;\n this.showlastFailedReviewCommentResponseBox = false;\n this.isLastFailedReviewComment = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n });\n }\n\n saveFeedback(feedbackText: string): void {\n this.reviewsService.createConciergeFeedback(\n this.review.reviewID,\n feedbackText,\n this.reviewConfig.accountgroupId,\n this.reviewConfig.partnerId,\n () => this.refreshFeedbackData(),\n );\n }\n\n refreshFeedbackData(): void {\n this.taskManagerResponse$ = this.reviewsService\n .getConciergeReviewResponse(this.review.reviewID, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(share());\n this.showTaskManagerRespondBox = false;\n this.showTaskManagerComment = true;\n }\n\n cancelFeedback(): void {\n this.provideTaskManagerFeedback = false;\n this.showTaskManagerRespondBox = false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n editComment(comment: ReviewComment, updatedCommentText: string, reviewSource: SOURCE_IDS): void {\n this.reviewsService\n .editReviewComment(comment, updatedCommentText, this.reviewConfig.accountgroupId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.hideCommentEditor(comment.commentId);\n });\n }\n\n hideCommentEditor(commentId: string): void {\n this.showRespondButton = true;\n const cevm = this.commentEditorVisibleMap$$.getValue();\n cevm[commentId] = !cevm[commentId];\n this.commentEditorVisibleMap$$.next(this.closeCommentEditor(cevm, commentId));\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n\n removeGoogleTranslation(content: string): string {\n if (this.hideGoogleTranslatedReviewContent) {\n return removeGoogleTranslation(content);\n }\n return content;\n }\n\n showCommentEditor(commentId: string): void {\n this.showRespondButton = false;\n const cevm = this.commentEditorVisibleMap$$.getValue();\n cevm[commentId] = !cevm[commentId];\n this.commentEditorVisibleMap$$.next(this.closeCommentEditor(cevm, commentId));\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n this.showlastFailedReviewCommentResponseBox = false;\n }\n\n closeCommentEditor(\n commentEditorVisibilityMap: CommentEditorVisibleMap,\n excludedCommentId?: string,\n ): CommentEditorVisibleMap {\n for (const key in commentEditorVisibilityMap) {\n if (key !== excludedCommentId) {\n commentEditorVisibilityMap[key] = false;\n }\n }\n return commentEditorVisibilityMap;\n }\n\n showLastFailedReviewCommentEditor(): void {\n this.showRespondButton = false;\n const cevm = this.commentEditorVisibleMap$$.getValue();\n this.commentEditorVisibleMap$$.next(this.closeCommentEditor(cevm));\n this.showlastFailedReviewCommentResponseBox = true;\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n\n hideLastFailedReviewCommentEditor(): void {\n this.showRespondButton = false;\n this.showlastFailedReviewCommentResponseBox = false;\n this.showRespondBox = false;\n this.showRespondBoxWithSuggestedText = false;\n }\n\n updateStatus(status: ReviewStatus): void {\n this.reviewsService\n .updateReviewStatus(this.review$, status, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n }\n });\n if (status !== ReviewStatus.ACTION_REQUIRED) {\n this.isLastFailedReviewComment = false;\n }\n }\n\n publish(): void {\n this.reviewsService\n .publishReview(this.review$, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n this.isPublishedMyListingReview = true;\n }\n });\n }\n\n unpublish(): void {\n this.reviewsService\n .unpublishReview(this.review$, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n this.isPublishedMyListingReview = false;\n }\n });\n }\n\n publishToReviewWidget(): void {\n this.reviewsService\n .publishToReviewWidget(this.review$, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n this.isPublishedThirdPartyReview = true;\n }\n });\n }\n\n unpublishFromReviewWidget(): void {\n this.reviewsService\n .unpublishFromReviewWidget(this.review$, this.reviewConfig.accountgroupId, this.reviewConfig.partnerId)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n this.isPublishedThirdPartyReview = false;\n }\n });\n }\n\n updateDeletedStatus(deletedStatus: ReviewDeletedStatus): void {\n this.reviewsService\n .updateReviewUserDeletedInfo(this.review$, this.reviewConfig.userId, deletedStatus)\n .subscribe((r) => {\n if (r) {\n this.review$$.next(r);\n }\n });\n }\n\n handleInputChange(value: string): void {\n if (!value || value.length <= 0) {\n this.lastTemplateUsed = null;\n }\n if (this.digitalAgentView) {\n const reviewStatus: ReviewStatus = this.review$$.getValue()?.status;\n this.digitalAgentButtonDisabled$$.next(\n Boolean(!value) ||\n reviewStatus === ReviewStatus.DIGITAL_AGENT_RESPONDED ||\n reviewStatus === ReviewStatus.OWNER_RESPONDED,\n );\n }\n }\n\n suggestReviewResponse(responseBox: HTMLTextAreaElement, review: Review): void {\n this.suggestingResponse$$.next(true);\n this.reviewsService\n .suggestReviewResponse(review.reviewID, this.reviewConfig.accountgroupId, this.hideGoogleTranslatedReviewContent)\n .pipe(\n takeUntil(this.unsubscribe),\n tap((response) => {\n if (response) {\n responseBox.value = response;\n this.updateReviewDraft(response);\n }\n }),\n finalize(() => this.suggestingResponse$$.next(false)),\n )\n .subscribe({\n next: (response) => {\n this.lastTemplateUsed = {\n referencedTemplate: null,\n renderedTemplate: response,\n };\n },\n error: () => {\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.ERROR_LOADING_TEMPLATE',\n );\n },\n });\n }\n\n renderResponseTemplate(\n responseBox: HTMLTextAreaElement,\n responseTemplate: ResponseTemplate,\n config: ReviewConfig,\n review: Review,\n ): void {\n const parameters: ReviewResponseTemplateParameters = {\n reviewerFirstName: review.reviewerName ? review.reviewerName.split(' ')[0] : null,\n reviewerFullName: review.reviewerName,\n starRating: `${review.rating} star`,\n businessEmail: config.accountGroupEmail,\n username: config.hasUser ? config.userFirstName + ' ' + config.userLastName : null,\n };\n if (config.company) {\n parameters.businessName = config.company.name;\n parameters.businessAddress = config.company.address;\n parameters.businessPhoneNumber =\n config.company?.workNumbers?.length > 0\n ? this.formatPhoneNumber.transform(config.company.workNumbers[0], config.country)\n : null;\n parameters.businessWebsite = config.company.website;\n\n this.templatesService\n .renderResponseTemplate(responseTemplate.externalTemplateId, parameters, this.templateApplicationId)\n .pipe(\n takeUntil(this.unsubscribe),\n tap((renderedTemplate) => {\n const decoded: string = decodeEntities(renderedTemplate);\n responseBox.value = decoded;\n if (this.digitalAgentView) {\n this.digitalAgentButtonDisabled$$.next(\n this.review$$.getValue().status === ReviewStatus.DIGITAL_AGENT_RESPONDED,\n );\n }\n this.updateReviewDraft(decoded);\n }),\n )\n .subscribe({\n next: (renderedTemplate) => {\n this.lastTemplateUsed = {\n referencedTemplate: responseTemplate,\n renderedTemplate: renderedTemplate,\n };\n },\n error: () => {\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.ERROR_LOADING_TEMPLATE',\n );\n },\n });\n }\n }\n\n fromNow(date: Date): string {\n return formatDistance(date, new Date(), { addSuffix: true });\n }\n\n toggleShowHelperText(): void {\n this.isHelperTextVisible = !this.isHelperTextVisible;\n }\n\n ngOnDestroy(): void {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n handleRequestApproval(commentText: string): void {\n this.isRequestingApprovalLoading$$.next(true);\n this.reviewsService\n .handleRequestApproval(\n this.review.reviewID,\n this.reviewConfig.partnerId,\n this.digitalAgentViewData.task,\n this.reviewConfig.accountgroupId,\n this.taskManagerResponse$,\n commentText,\n )\n .pipe(\n take(1),\n finalize(() => this.isRequestingApprovalLoading$$.next(false)),\n )\n .subscribe();\n }\n\n updateReviewDraft(response: string): void {\n if (this.digitalAgentView) {\n this.reviewsService\n .updateReviewDraft(\n this.review.reviewID,\n this.reviewConfig.partnerId,\n this.digitalAgentViewData.task,\n this.reviewConfig.accountgroupId,\n this.taskManagerResponse$,\n response,\n )\n .pipe(take(1))\n .subscribe({\n next: () =>\n this.snackbarService.openSuccessSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_RESPONSE_UPDATED',\n ),\n error: () =>\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.ERROR_SAVING_REVIEW_RESPONSE',\n ),\n });\n }\n }\n\n handleBlur(response: string): void {\n if (this.initialResponseValue !== response) {\n this.updateReviewDraft(response);\n }\n }\n\n handleFocus(value: string): void {\n this.initialResponseValue = value;\n }\n\n showConnectBanner(): boolean {\n return (\n (this.review.sourceID === SOURCE_IDS.GOOGLE_MAPS && !this.reviewResponseSettings.gmbAccountConnected) ||\n (this.review.sourceID === SOURCE_IDS.FACEBOOK && !this.reviewResponseSettings.facebookAccountConnected)\n );\n }\n\n responseBoxTextCopied(success: boolean): void {\n if (success) {\n this.snackbarService.openSuccessSnack('COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.RESPONSE_COPIED');\n } else {\n this.snackbarService.openErrorSnack(\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.FAIL_TO_COPY_RESPONSE',\n );\n }\n }\n\n private transformReview(review: Review): Review {\n let shareUrl = review.shareUrl;\n\n if (review.sourceID === this.sourceIds.MY_LISTING && review.shareUrl) {\n shareUrl = review.shareUrl.replace(`domain=${review.domain}`, 'domain=My Listing');\n }\n\n return {\n ...review,\n shareUrl,\n };\n }\n\n private highlightReviewContent(): void {\n if (\n this.highlightOptions &&\n this.review.content &&\n this.highlightOptions.beginOffsets &&\n this.highlightOptions.beginOffsets.length > 0\n ) {\n if (\n Math.max(...this.highlightOptions.beginOffsets) + this.highlightOptions.phrase.length <=\n this.review.content.length\n ) {\n this.highlightOptions.beginOffsets = this.highlightOptions.beginOffsets.sort((a, b) => a - b);\n\n let improperOffset = false;\n const highlightedContent = this.highlightOptions.beginOffsets.reduce(\n (content, curIndex) => {\n const beforeHighlight = this.review.content.substring(content.lastOffset, curIndex);\n const toHighlight = this.review.content.slice(curIndex, curIndex + this.highlightOptions.phrase.length);\n const afterHighlight =\n curIndex === this.highlightOptions.beginOffsets[this.highlightOptions.beginOffsets.length - 1]\n ? this.review.content.substring(curIndex + this.highlightOptions.phrase.length)\n : '';\n\n if (toHighlight.toLowerCase() !== this.highlightOptions.phrase.toLowerCase()) {\n improperOffset = true;\n }\n return {\n content: content.content + beforeHighlight + '' + toHighlight + '' + afterHighlight,\n lastOffset: curIndex + this.highlightOptions.phrase.length,\n };\n },\n {\n content: '',\n lastOffset: 0,\n },\n );\n\n if (!improperOffset) {\n this.review.content = highlightedContent.content;\n return;\n }\n }\n this.review.content = this.review.content.replace(new RegExp(this.highlightOptions.phrase, 'gi'), (s: string) => {\n return `${s}`;\n });\n }\n }\n\n private getReviewDataLink(listingsId: string): string {\n const environment = this.reviewConfig.environment;\n return `http://repcore-${environment}.appspot.com/superadmin/listing-info?lid=${listingsId}`;\n }\n\n private shouldShowReviewWidget(): boolean {\n if (this.reviewConfig.dontShowWidgetPublishAction) {\n return false;\n }\n\n const allowedWithAddon =\n this.reviewConfig.isWidgetAllReviewsAddonEnabled &&\n this.disableThirdPartyReviewSourceIDs.findIndex((index) => index === this.review.sourceID) < 0;\n\n const allowedWithoutAddon =\n this.review.sourceID === SOURCE_IDS.GOOGLE_MAPS || this.review.sourceID === SOURCE_IDS.FACEBOOK;\n\n return allowedWithAddon || allowedWithoutAddon;\n }\n\n private isPublishedReview(): boolean {\n const isPublishedThirdPartyReview = this.review.publishThirdPartyReview;\n if (\n this.reviewPublishSettings &&\n (isPublishedThirdPartyReview === undefined || isPublishedThirdPartyReview === null)\n ) {\n return (\n (Number(this.review.rating) >= this.reviewPublishSettings.thirdPartyMinimumPublishRating &&\n this.reviewPublishSettings.thirdPartyMinimumPublishRating > 0) ||\n (this.reviewPublishSettings.thirdPartyMinimumPublishRating === 1 && this.review.rating[0] === 'N')\n );\n }\n\n return isPublishedThirdPartyReview;\n }\n\n private buildBusinessProductURL(page: string): string {\n if (!this.reviewConfig.productEntryURL) {\n return null;\n }\n\n const businessID = this.reviewConfig.accountgroupId;\n const productEntryURL = this.reviewConfig.productEntryURL;\n return `${productEntryURL}/account/${businessID}/app/${page}`;\n }\n\n openReviewHistoryCardModal() {\n this.dialog.open(ReviewHistoryCardComponent, {\n data: this.review,\n width: '600px',\n });\n }\n}\n\nexport const decodeEntities = (() => {\n // this prevents any overhead from creating the object each time\n const element = document.createElement('div');\n\n function decodeHTMLEntities(str: any): any {\n if (str && typeof str === 'string') {\n // strip script/html tags\n str = str.replace(/]*>([\\S\\s]*?)<\\/script>/gim, '');\n str = str.replace(/<\\/?\\w(?:[^\"'>]|\"[^\"]*\"|'[^']*')*>/gim, '');\n element.innerHTML = str;\n str = element.textContent;\n element.textContent = '';\n }\n\n return str;\n }\n\n return decodeHTMLEntities;\n})();\n", "\n \n \n \n \n \n
\n
\n \n {{ review.reviewerName }}\n \n \n {{ review.reviewerName }}\n \n \n \n \n {{\n (isPositiveRecommendation\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RECOMMENDATION_TITLE'\n : 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.NOT_RECOMMENDATION_TITLE'\n ) | translate\n }}\n \n {{ review.businessName }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.YOUR_BUSINESS' | translate }}\n \n \n \n \n {{\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.TITLE'\n | translate\n : {\n review_domain:\n (review.sourceID === sourceIds.MY_LISTING\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MY_LISTING_SOURCE_NAME'\n : review.domain\n ) | translate,\n reviewer_name: '',\n }\n }}\n \n \n
\n \n
\n \n {{ reviewConfig.company.name }}\n \n \n • {{ reviewConfig.company.address }},\n {{ reviewConfig.company.city }}\n \n
\n
\n
\n
\n \n {{ fromNow(review.published) }}\n \n \n ({{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.SUBTITLE.EDITED' | translate }} {{ editedFromNow }})\n \n \n \n\n
\n \n share\n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.SHARE_ON_SOCIAL' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.UNPUBLISH_FROM_MY_LISTING' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.PUBLISH_TO_MY_LISTING' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.UNPUBLISH_FROM_REVIEW_WIDGET' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.PUBLISH_TO_REVIEW_WIDGET' | translate }}\n \n \n \n open_in_new\n \n
\n
\n\n \n
\n
\n star\n
\n
\n {{ review.title }}\n
\n
\n
\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.EDITED' | translate }}\n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.ACTION_REQUIRED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.RESPONDED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.NO_ACTION_REQUIRED' | translate }}\n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.ACTION_REQUIRED' | translate }}\n arrow_drop_down\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.NO_ACTION_REQUIRED' | translate }}\n arrow_drop_down\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.RESPONDED' | translate }}\n arrow_drop_down\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.PUBLISHED' | translate }}\n \n\n \n \n \n \n \n\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.AWAITING_APPROVAL' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.FEEDBACK_PROVIDED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.RESPONSE_APPROVED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.OWNER_RESPONDED' | translate }}\n \n \n \n \n \n\n \n \n \n {{\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.PARTNER_RESPONDED'\n | translate: { partnerName: reviewConfig.partnerName }\n }}\n \n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.CHIP_LABELS.FULFILLMENT_RESPONDED' | translate }}\n \n \n \n
\n\n
\n warning\n {{\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONNECT_ACCOUNTS.NOT_CONNECTED'\n | translate\n : {\n source: review.sourceID === sourceIds.GOOGLE_MAPS ? 'Google Business Profile' : 'Facebook',\n }\n }}\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONNECT_ACCOUNTS.GO_TO_RM_TO_CONNECT' | translate }}\n \n
\n\n
0\">\n
1\">\n {{\n (showComments\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.HIDE'\n : 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.VIEW'\n ) | translate\n }}\n {{ review.comments.length - (isLastFailedReviewComment ? 0 : 1) }}\n {{\n (review.comments.length > 2\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.COMMENTS'\n : 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.ACTIONS.COMMENT'\n ) | translate\n }}\n
\n
\n \n
\n \n
\n
\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.RESPONSE_FROM' | translate }}\n {{ c.commentAuthor ? c.commentAuthor : reviewConfig.company.name }}\n \n \n
\n \n \n edit\n \n \n
\n
{{ c | commentFromNow }}
\n
\n \n \n \n \n
\n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CANCEL' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.SAVE' | translate }}\n \n
\n
\n
\n \n \n \n\n \n \n
\n
\n \n \n {{\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.TITLE'\n | translate\n : {\n agentName: res.agent_name,\n partnerName: res.partner_name,\n }\n }}\n \n
\n
\n {{ res.response }}\n
\n
\n
\n check_circle\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.FEEDBACK' | translate }}\n \n
\n {{ res.feedback }}\n
\n
-1\" class=\"task-manager-response--feedback\">\n
\n check_circle\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.FEEDBACK' | translate }}\n \n
\n {{\n 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.APPROVED_FEEDBACK'\n | translate: { partnerName: res.partner_name }\n }}\n
\n
\n \n
\n\n \n
\n error\n
\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.REVIEW_HAS_BEEN_DELETED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MESSAGES.LAST_FAILED_REVIEW_COMMENT' | translate }}\n \n \n {{ fromNow(review.lastFailedReviewCommentCreated) }}\n \n
\n
\n \n\n \n
\n
\n \n
\n
\n \n 0 && (language === 'en' || nonEnglishReviewResponseTemplates)\"\n >\n
\n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.SUGGEST_RESPONSE' | translate }}\n \n \n \n {{ template.title }}\n \n
\n 3\"\n mat-icon-button\n color=\"primary\"\n class=\"shuffle-templates\"\n data-action=\"shuffle-templates-clicked\"\n (click)=\"reviewResponseTemplatePage = reviewResponseTemplatePage + 1\"\n >\n shuffle\n \n
\n \n
\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.PLACEHOLDER_WARNING' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.GOOGLE_USER_WARNING' | translate }}\n \n \n \n\n \n
\n
\n \n
\n
\n \n\n \n
\n
\n \n
\n
\n \n 0 && (language === 'en' || nonEnglishReviewResponseTemplates)\"\n >\n
\n \n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.SUGGEST_RESPONSE' | translate }}\n \n \n \n {{ template.title }}\n \n
\n 3\"\n mat-icon-button\n color=\"primary\"\n class=\"shuffle-templates\"\n data-action=\"shuffle-templates-clicked\"\n (click)=\"reviewResponseTemplatePage = reviewResponseTemplatePage + 1\"\n >\n shuffle\n \n
\n \n
\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.PLACEHOLDER_WARNING' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.GOOGLE_USER_WARNING' | translate }}\n \n \n \n \n\n
\n
\n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.INFO' | translate: { source_name: review.domain } }}\n
\n \n \n \n
\n
\n
\n \n help_outline\n \n
\n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.CONFIRM_DELETED' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.DELETED.CONFIRM_NOT_DELETED' | translate }}\n \n
\n
\n
\n \n\n
\n \n
\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.PROVIDE_FEEDBACK_BUTTON' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.APPROVE_BUTTON' | translate }}\n \n
\n
\n \n \n \n \n
\n info_outline\n
\n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.RESPONSE_BOX.CONNECT_ACCOUNT' | translate }}\n
\n
\n
\n
\n \n
\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CONNECT' | translate: { source: 'Google' } }}\n
\n
\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CONNECT' | translate: { source: 'Facebook' } }}\n
\n \n
\n
\n \n \n \n \n content_copy\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.COPY_RESPONSE' | translate }}\n \n \n {{\n 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RESPOND_ON_SOURCE'\n | translate\n : {\n review_domain:\n (review.sourceID === sourceIds.MY_LISTING\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MY_LISTING_SOURCE_NAME'\n : review.domain\n ) | translate,\n }\n }}\n open_in_new\n \n \n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RESPOND' | translate }}\n \n \n \n \n \n
\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CONNECT' | translate: { source: 'Google' } }}\n
\n
\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CONNECT' | translate: { source: 'Facebook' } }}\n
\n \n \n content_copy\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.COPY_RESPONSE' | translate }}\n \n \n {{\n 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RESPOND_ON_SOURCE'\n | translate\n : {\n review_domain:\n (review.sourceID === sourceIds.MY_LISTING\n ? 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.REVIEW_CARD.MY_LISTING_SOURCE_NAME'\n : review.domain\n ) | translate,\n }\n }}\n open_in_new\n \n \n \n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RETRY' | translate }}\n \n \n\n \n
\n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CANCEL' | translate }}\n \n \n {{ 'COMMON_REVIEW_CARD.REVIEWS.MANAGE.CONCIERGE_RESPONSE.SEND_FEEDBACK_BUTTON' | translate }}\n \n
\n\n \n
\n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CANCEL' | translate }}\n \n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RESPOND' | translate }}\n \n \n
\n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.CANCEL' | translate }}\n \n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.RETRY' | translate }}\n \n \n \n \n {{ review.reviewID }}\n \n \n\n \n
\n
\n \n content_copy\n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.COPY_RESPONSE' | translate }}\n \n
\n
\n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.REQUEST_APPROVAL' | translate }}\n \n \n
\n
\n \n \n {{ 'COMMON_REVIEW_CARD.COMMON.ACTION_LABELS.POST_RESPONSE' | translate }}\n \n \n
\n \n \n \n \n \n\n \n \n \n
\n
\n \n
\n
\n\n\n \n\n", "export const WEBLATE_COMPONENT_NAME = 'common/reviews';\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { CommonPipesModule, UIKitModule } from '@vendasta/uikit';\nimport baseTranslation from './assets/i18n/en_devel.json';\nimport { CheckReviewDeletedPipe } from './common-review-card/check-review-deleted.pipe';\nimport { CommentFromNowPipe } from './common-review-card/comment-from-now.pipe';\nimport { ReviewCardComponent } from './common-review-card/common-review-card.component';\nimport { ConnectAccountDialogComponent } from './common-review-card/connect-account-dialog.component';\nimport { NotRecommendedIconComponent } from './common-review-card/not-recommended-icon.component';\nimport { RecommendedIconComponent } from './common-review-card/recommended-icon.component';\nimport { ReviewsService } from './common-review-card/review-card.service';\nimport { ReviewHistoryCardComponent } from './common-review-card/review-history-card/review-history-card.component';\nimport { TransformReviewContentPipe } from './common-review-card/transform-review-content.pipe';\nimport { WEBLATE_COMPONENT_NAME } from './constants';\nimport { FilterTemplatesPipe } from './response-templates/filter-templates.pipe';\nimport { PaginateTemplatesPipe } from './response-templates/paginate-templates.pipe';\nimport { RandomizeTemplatesPipe } from './response-templates/randomize-templates.pipe';\nimport { ReviewCardResponseTemplatesService } from './response-templates/response-templates.service';\nimport { ValidateResponsePipe } from './response-templates/validate-response.pipe';\n\nconst MaterialModules = [\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatIconModule,\n MatTabsModule,\n MatDialogModule,\n MatMenuModule,\n MatChipsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSnackBarModule,\n MatListModule,\n MatSelectModule,\n MatTooltipModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n];\n\n@NgModule({\n declarations: [\n ReviewCardComponent,\n FilterTemplatesPipe,\n ValidateResponsePipe,\n RandomizeTemplatesPipe,\n PaginateTemplatesPipe,\n CheckReviewDeletedPipe,\n CommentFromNowPipe,\n TransformReviewContentPipe,\n ConnectAccountDialogComponent,\n RecommendedIconComponent,\n NotRecommendedIconComponent,\n ReviewHistoryCardComponent,\n ],\n imports: [\n UIKitModule,\n MaterialModules,\n GalaxyButtonLoadingIndicatorModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n CommonModule,\n CommonPipesModule,\n ClipboardModule,\n GalaxyFormFieldModule,\n GalaxyLoadingSpinnerModule,\n GalaxyBadgeModule,\n GalaxyEmptyStateModule,\n GalaxyPipesModule,\n ],\n exports: [\n ReviewCardComponent,\n FilterTemplatesPipe,\n ValidateResponsePipe,\n RandomizeTemplatesPipe,\n PaginateTemplatesPipe,\n ],\n providers: [ReviewCardResponseTemplatesService, ReviewsService],\n})\nexport class CommonReviewCardModule {}\n", "import { InjectionToken } from '@angular/core';\nimport { ReviewsDependencies } from './interface';\nimport { SourceSelectionDependencies } from './source-selection/types';\n\nexport const ReviewsInjectionToken = new InjectionToken('dependencies for displaying reviews');\nexport const SourceSelectionInjectionToken = new InjectionToken(\n 'dependencies for selecting sources',\n);\n", "import { Observable } from 'rxjs';\nimport { SOURCE_IDS } from '../common-review-card/review-types';\nexport type ReviewSourceInfoMap = { [sourceId: string]: ReviewSourceInfo };\n\nexport interface ReviewSourceInfo {\n sourceId: string;\n sourceName: string;\n sourceIconUrl: string;\n listingName: string;\n leaveReviewUrl?: string;\n}\n\nexport interface ReviewSources {\n primarySourceIds: string[];\n otherSourceIds: string[];\n sourceInfo?: ReviewSourceInfoMap;\n}\n\nexport enum PRIMARY_SOURCE_IDS {\n GOOGLE_MAPS = SOURCE_IDS.GOOGLE_MAPS,\n FACEBOOK = SOURCE_IDS.FACEBOOK,\n MY_LISTING = SOURCE_IDS.MY_LISTING,\n}\n\nexport enum RESTRICTED_DISPLAY_SOURCES {\n YELP = SOURCE_IDS.YELP,\n HOTELS_DOT_COM = SOURCE_IDS.HOTELS_DOT_COM,\n BOOKING = SOURCE_IDS.BOOKING,\n TRIPADVISOR = SOURCE_IDS.TRIPADVISOR,\n}\n\nexport const defaultInfoMap: ReviewSourceInfoMap = {\n '10010': {\n sourceName: 'Google',\n sourceId: '10010',\n sourceIconUrl: '//www.cdnstyles.com/static/images/icon50/sourceId-10010.png',\n listingName: 'Google',\n },\n '10050': {\n sourceName: 'Facebook',\n sourceId: '10050',\n sourceIconUrl: '//www.cdnstyles.com/static/images/icon50/sourceId-10050.png',\n listingName: 'Facebook',\n },\n};\n\nexport interface SourceSelectionDependencies {\n reviewSources$: Observable;\n reviewSourcesWithURLs$: Observable;\n reviewSourceInfoMap$: Observable;\n showMyListing$: Observable;\n requestSources$: Observable<{ sourceId: string; name: string; url: string }[]>; //sources with valid review request urls\n}\n\nexport interface SourceSelectionModalData {\n headerTranslationKey: string;\n preselectedSources: string[];\n maxSelections: number;\n idsOverrideForSelection?: string[];\n}\n\nexport const MyListingSourceRenderImplemented = false;\n", "import { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SourceSelectionInjectionToken } from '../token';\nimport { ReviewSourceInfoMap, ReviewSources, SourceSelectionDependencies } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReviewSourceSelectionService {\n reviewSources$: Observable;\n reviewSourcesWithURLs$: Observable;\n reviewSourceInfoMap$: Observable;\n showMyListing$: Observable;\n\n constructor(@Inject(SourceSelectionInjectionToken) private readonly config: SourceSelectionDependencies) {\n this.reviewSources$ = this.config.reviewSources$;\n this.reviewSourcesWithURLs$ = this.config.reviewSourcesWithURLs$;\n this.reviewSourceInfoMap$ = this.config.reviewSourceInfoMap$;\n this.showMyListing$ = this.config.showMyListing$;\n }\n}\n", "import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { Observable, map } from 'rxjs';\nimport { PRIMARY_SOURCE_IDS, ReviewSourceInfoMap } from '../types';\nimport { ReviewSourceSelectionService } from '../source-selection.service';\n\n@Component({\n selector: 'reviews-selected-sources-display',\n imports: [CommonModule, GalaxyAvatarModule],\n templateUrl: './selected-sources-display.component.html',\n styleUrls: ['./selected-sources-display.component.scss', '../source-selection-shared-styles.scss'],\n})\nexport class SelectedSourcesDisplayComponent implements OnChanges {\n @Input() selectedSources: string[];\n @Input() shouldFilter: boolean;\n reviewSourceInfoMap$: Observable;\n\n sortedSelectedSources: string[] = [];\n\n constructor(private reviewSourceSelectionService: ReviewSourceSelectionService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.shouldFilter) {\n this.updateReviewSourceInfo();\n }\n\n if (changes.selectedSources) {\n // Sort the selected source info so that primary sources come first and in the order they appear in PRIMARY_SOURCE_IDS\n this.sortedSelectedSources = this.selectedSources.sort((a, b) => {\n const aIsPrimary = PRIMARY_SOURCE_IDS[a];\n const bIsPrimary = PRIMARY_SOURCE_IDS[b];\n const primarySourceIds = Object.keys(PRIMARY_SOURCE_IDS);\n\n if (aIsPrimary && bIsPrimary) {\n // If both are primary, sort based on their index in PRIMARY_SOURCE_IDS\n return primarySourceIds.indexOf(a) - primarySourceIds.indexOf(b);\n } else if (aIsPrimary && !bIsPrimary) {\n return -1;\n } else if (!aIsPrimary && bIsPrimary) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n }\n\n private updateReviewSourceInfo(): void {\n const source$ = this.shouldFilter\n ? this.reviewSourceSelectionService.reviewSourcesWithURLs$\n : this.reviewSourceSelectionService.reviewSources$;\n this.reviewSourceInfoMap$ = source$.pipe(map((reviewSources) => reviewSources.sourceInfo));\n }\n}\n", "
\n \n
\n
\n \n {{ source.sourceName }}\n {{ source.listingName }}\n
\n
\n
\n
\n", "import { Component, EventEmitter, inject, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { MatListModule, MatSelectionList, MatSelectionListChange } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { ReviewSourceInfoMap, ReviewSources } from '../types';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'reviews-source-selection-panel',\n imports: [\n CommonModule,\n GalaxyAvatarModule,\n MatListModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n ],\n templateUrl: './source-selection-panel.component.html',\n styleUrls: ['./source-selection-panel.component.scss', '../source-selection-shared-styles.scss'],\n animations: [\n trigger('slideUpDown', [\n state(\n 'open',\n style({\n height: '100%',\n }),\n ),\n state(\n 'closed',\n style({\n height: '0',\n }),\n ),\n transition('open <=> closed', [animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')]),\n ]),\n ],\n})\nexport class SourceSelectionPanelComponent implements OnInit, OnDestroy {\n @Input() reviewSources: ReviewSources;\n @Input() openWithSelectedSources$: Observable;\n @Input() headerTranslationKey: string;\n @Input() maxSelections = Infinity;\n @Input() keepOpen? = false;\n @Output() sourceIdsSelected = new EventEmitter();\n\n @ViewChild('sourceSelectionList') sourceSelectionList: MatSelectionList;\n opened$$ = new Subject();\n searchQueryControl = new FormControl('');\n filteredReviewSources$: Observable;\n selectedSourceIds: Set = new Set();\n preselectedSourceIds: string[] = [];\n\n private snackbarService = inject(SnackbarService);\n private translateService = inject(TranslateService);\n\n private subscriptions: Subscription[] = [];\n\n ngOnInit(): void {\n const searchQueryChanged$ = this.searchQueryControl.valueChanges.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n startWith(''),\n );\n\n this.filteredReviewSources$ = searchQueryChanged$.pipe(\n map((searchQuery) => {\n if (!searchQuery) {\n return { ...this.reviewSources };\n }\n return {\n primarySourceIds: this.filterSources(\n searchQuery,\n this.reviewSources.primarySourceIds,\n this.reviewSources.sourceInfo,\n ),\n otherSourceIds: this.filterSources(\n searchQuery,\n this.reviewSources.otherSourceIds,\n this.reviewSources.sourceInfo,\n ),\n sourceInfo: this.reviewSources.sourceInfo,\n };\n }),\n );\n\n this.subscriptions.push(\n this.openWithSelectedSources$.subscribe((preselectedSources) => {\n this.preselectedSourceIds = preselectedSources;\n // Clear the selectedSourceIds set and add the preselected sources to it\n this.selectedSourceIds.clear();\n preselectedSources.forEach((sourceId) => this.selectedSourceIds.add(sourceId));\n\n // Set the selected state of each option in the list\n this.sourceSelectionList.options.forEach((option) => {\n const sourceId = option.value;\n option.selected = this.selectedSourceIds.has(sourceId);\n });\n\n // Reset the search and open the panel\n this.searchQueryControl.setValue('');\n this.opened$$.next(true);\n }),\n );\n }\n\n filterSources(searchQuery: string, sourceIds: string[], reviewSourceInfoMap: ReviewSourceInfoMap): string[] {\n return sourceIds.filter((sourceId) =>\n reviewSourceInfoMap[sourceId].sourceName.toLowerCase().includes(searchQuery.toLowerCase()),\n );\n }\n\n onSelectionChange($event: MatSelectionListChange) {\n $event.options.forEach((option) => {\n const sourceId = option.value;\n if (option.selected) {\n this.selectedSourceIds.add(sourceId);\n } else {\n this.selectedSourceIds.delete(sourceId);\n }\n });\n }\n\n onCancel(): void {\n this.opened$$.next(false);\n this.sourceIdsSelected.next(this.selectedSourceIds.size ? this.preselectedSourceIds : null);\n }\n\n onSave(): void {\n const selectedSourceIds = [...this.selectedSourceIds];\n\n // Check appropriate number of sources is selected\n if (selectedSourceIds.length === 0) {\n this.snackbarService.openErrorSnack(\n this.translateService.instant('REVIEW_SOURCE_SELECTION.MESSAGES.ERROR_NO_SOURCE_SELECTED'),\n );\n return;\n } else if (selectedSourceIds.length > this.maxSelections) {\n this.snackbarService.openErrorSnack(\n this.translateService.instant('REVIEW_SOURCE_SELECTION.MESSAGES.ERROR_SELECT_LESS_SOURCES_THAN_LIMIT', {\n maxSelections: this.maxSelections,\n }),\n );\n return;\n }\n\n // Close the panel and emit the values\n this.opened$$.next(false);\n this.sourceIdsSelected.next(selectedSourceIds);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n}\n", "
\n
{{ headerTranslationKey | translate }}
\n\n
\n \n \n \n\n \n \n
0\">\n
{{ 'REVIEWS.SOURCE_SELECTION.PRIMARY_SOURCES' | translate }}
\n \n \n \n
\n\n \n
0\">\n
{{ 'REVIEWS.SOURCE_SELECTION.INDUSTRY_SOURCES' | translate }}
\n \n \n \n
\n\n \n \n \n
\n \n {{ source.sourceName }}\n {{ source.listingName }}\n
\n
\n
\n \n
\n
\n \n \n
\n
\n", "import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { MyListingSourceRenderImplemented, ReviewSources, SourceSelectionModalData } from '../types';\nimport { arrayContentEqual } from '@vendasta/rx-utils';\nimport { ReviewSourceSelectionService } from '../source-selection.service';\nimport { SourceSelectionPanelComponent } from '../source-selection-panel/source-selection-panel.component';\n\n@Component({\n selector: 'reviews-source-selection-modal',\n imports: [CommonModule, MatDialogModule, TranslateModule, SourceSelectionPanelComponent],\n templateUrl: './source-selection-modal.component.html',\n styleUrls: [\n './source-selection-modal.component.scss',\n '../source-selection-panel/source-selection-panel.component.scss',\n '../source-selection-shared-styles.scss', //placeholding until extracting needed styles\n ],\n})\nexport class SourceSelectionModalComponent {\n filteredReviewSources$: Observable;\n\n protected dialogRef = inject(MatDialogRef);\n public data: SourceSelectionModalData = inject(MAT_DIALOG_DATA);\n public preselectedIDs$$: BehaviorSubject = new BehaviorSubject(this.data.preselectedSources);\n public preselectedIDs$: Observable = this.preselectedIDs$$.asObservable();\n public selectableIDs: string[] = [];\n\n reviewSources$: Observable;\n maxSelections = Infinity;\n\n constructor(private sourceSelectionService: ReviewSourceSelectionService) {\n this.reviewSources$ = this.sourceSelectionService.reviewSourcesWithURLs$.pipe(\n map((sources: ReviewSources) => {\n const reviewSources = {\n ...sources,\n primarySourceIds: !MyListingSourceRenderImplemented\n ? sources.primarySourceIds.filter((id) => id !== '12000')\n : sources.primarySourceIds,\n };\n\n if (this.data.idsOverrideForSelection.length === 0) {\n return reviewSources;\n } else {\n return {\n ...reviewSources,\n primarySourceIds: reviewSources.primarySourceIds.filter((id) => {\n return this.data.idsOverrideForSelection.includes(id);\n }),\n otherSourceIds: reviewSources.otherSourceIds.filter((id) => {\n return this.data.idsOverrideForSelection.includes(id);\n }),\n };\n }\n }),\n );\n\n if (this.preselectedIDs$$) {\n this.preselectedIDs$$.next(this.data.preselectedSources);\n }\n }\n\n requestSourceIdsSelected(sourceIds: string[]): void {\n if (sourceIds !== null) {\n if (!arrayContentEqual(sourceIds, this.data.preselectedSources)) {\n this.data.preselectedSources = sourceIds;\n }\n this.dialogRef.close(this.data.preselectedSources);\n }\n }\n}\n", "

{{ data.headerTranslationKey | translate }}

\n\n

\n \n

\n
\n", "import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { SourceSelectionModalComponent } from './source-selection-modal/source-selection-modal.component';\nimport { SourceSelectionModalData } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReviewSourceSelectionModalService {\n private readonly dialog = inject(MatDialog);\n\n openModal(input: SourceSelectionModalData): Observable {\n return this.dialog\n .open(SourceSelectionModalComponent, {\n data: input,\n width: '100%',\n maxWidth: '698px',\n height: '100%',\n maxHeight: '714px',\n })\n .afterClosed();\n }\n}\n", "export { CommonReviewCardModule } from './common-review-card.module';\nexport { ReviewCardComponent } from './common-review-card/common-review-card.component';\nexport {\n ResponseTemplate,\n ReviewPublishSettings,\n ConciergeReviewResponseData,\n SOURCE_IDS,\n ReviewResponseSetting,\n Company,\n Review,\n ReviewConfig,\n ReviewStatus,\n CanPublishReviewCommentData,\n CreateReviewCommentRequest,\n ReviewComment,\n UpdateReviewCommentRequest,\n ProvideConciergeFeedbackRequest,\n ApproveConciergeResponseRequest,\n ConciergeReviewResponseRequest,\n RecommendationType,\n DigitalAgentViewData,\n HighlightOptions,\n UpdateReviewRequest,\n} from './common-review-card/review-types';\nexport { ConnectAccountConfig } from './common-review-card/connect-account-dialog.component';\nexport { ConnectAccountDialogComponent } from './common-review-card/connect-account-dialog.component';\nexport { ReviewsService } from './common-review-card/review-card.service';\nexport { ReviewCardResponseTemplatesService } from './response-templates/response-templates.service';\nexport { FilterTemplatesPipe } from './response-templates/filter-templates.pipe';\nexport { RandomizeTemplatesPipe } from './response-templates/randomize-templates.pipe';\nexport { PaginateTemplatesPipe } from './response-templates/paginate-templates.pipe';\nexport { ValidateResponsePipe } from './response-templates/validate-response.pipe';\nexport {\n ReviewsWidgetContentComponent,\n WidgetReviewCardConfig,\n WidgetSummaryCardConfig,\n} from './reviews-widget/reviews-widget-content.component';\nexport { SelectedSourcesDisplayComponent } from './source-selection/selected-sources-display/selected-sources-display.component';\nexport { SourceSelectionPanelComponent } from './source-selection/source-selection-panel/source-selection-panel.component';\nexport { SourceSelectionModalComponent } from './source-selection/source-selection-modal/source-selection-modal.component';\nexport { ReviewSourceSelectionModalService } from './source-selection/source-selection-modal.service';\nexport { CommonReviewCardV2Component } from './common-review-card-v2/common-review-card-v2.component';\nexport { ReviewsWidgetService, ReviewFilters, RatingFilter } from './reviews-widget/reviews-widget.service';\nexport {\n DEFAULT_WIDGET_SETTINGS,\n DEFUALT_LEAVE_A_REVIEW_DESTINATION,\n DEFAULT_REVIEW_SOURCES,\n DEFAULT_RATING_FILTER,\n} from './reviews-widget/defaults';\nexport { Layout, Theme } from './reviews-widget/types';\nexport * from './source-selection/types';\nexport { NPSCardComponent, NPSData } from './nps-card/nps-card.component';\nexport { NPSAddressComponent } from './nps-address/nps-address.component';\nexport { StatisticDeltaComponent } from './statistic-delta/statistic-delta.component';\nexport {\n NpsRollingAverageComponent,\n NPSRollingAverageChartOptions,\n NPSRollingAverageDataPoints,\n} from './nps-rolling-average/nps-rolling-average.component';\nexport {\n NpsChartOverallScoreComponent,\n NPSScoreOverallData,\n NPSOverallScoreChartOptions,\n} from './nps-chart-overall-score/nps-chart-overall-score.component';\nexport { NpsScoreService } from './nps-chart-overall-score/nps-score.service';\n", "export * from './lib/index';\nexport { ReviewsInjectionToken } from './lib/token';\nexport { SourceSelectionInjectionToken } from './lib/token';\n"], "mappings": "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", "names": ["\u0275\u0275text", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "resendNPSRequest", "\u0275\u0275advance", "ResendConfirmationModalComponent", "init_resend_confirmation_modal_component", "__esmMin", "init_core", "init_dialog", "init_ngx_translate_core", "init_button", "constructor", "data", "dialogRef", "inject", "MatDialogRef", "close", "cancel", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "ResendConfirmationModalComponent_Conditional_1_Template", "ResendConfirmationModalComponent_Conditional_2_Template", "ResendConfirmationModalComponent_Conditional_4_Template", "ResendConfirmationModalComponent_Conditional_5_Template", "\u0275\u0275conditional", "emailAvailable", "MatDialogModule", "MatDialogClose", "MatDialogActions", "MatDialogContent", "TranslateModule", "TranslatePipe", "MatButtonModule", "MatButton", "styles", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c3", "ctx_r0", "routeToContactProfile", "\u0275\u0275textInterpolate", "review", "Name", "\u0275\u0275elementContainerStart", "comment", "Email", "\u0275\u0275sanitizeUrl", "PhoneNumber", "formattedPhoneNumber", "\u0275\u0275template", "NPSCardComponent_ng_container_12_ng_container_2_Template", "NPSCardComponent_ng_container_12_ng_container_3_Template", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "_c4", "resentScoreLeftTime", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "resendNPSRequest", "netPromoterScoreId", "\u0275\u0275pipeBind1", "NPSCardComponent", "init_nps_card_component", "__esmMin", "init_core", "init_badge", "init_card", "init_common", "init_statistic", "init_esm", "init_src", "init_router", "init_button", "init_dialog", "init_resend_confirmation_modal_component", "init_operators", "init_snackbar_service", "init_ngx_translate_core", "init_vendasta_reputation", "init_rxjs_interop", "constructor", "dialog", "inject", "MatDialog", "snackbarService", "SnackbarService", "reviewRequestApiService", "ReviewRequestApiService", "route", "ActivatedRoute", "destroyRef", "DestroyRef", "redirectToContact", "npsScoreBadgeColor", "ngOnInit", "redirectMlToContact", "brandId", "snapshot", "params", "contactId", "attributes", "find", "item", "key", "value", "accountGroupID", "accountGroupId", "PAGE_ROUTES", "MULTI_LOCATION", "CONTACTS", "ROOT", "CONTACT", "SUBROUTES", "PROFILE", "replace", "CrmObjectId", "formatPhoneNumber", "score", "getColor", "isDetractor", "checkNPSDetractor", "scoreLeftTime", "getTimeAgo", "paddingBottom", "format", "parseISO", "parentNPSId", "scoreStr", "String", "scoreNum", "Number", "date", "formatDistanceToNow", "Date", "addSuffix", "phoneNumber", "parsedPhoneNumber", "parsePhoneNumber", "formatAsReadonlyPhone", "npsId", "email", "dialogRef", "open", "ResendConfirmationModalComponent", "width", "data", "emailAvailable", "afterClosed", "pipe", "takeUntilDestroyed", "switchMap", "resend", "resendReview", "EMPTY", "subscribe", "next", "error", "openErrorSnack", "message", "selectors", "inputs", "enableResendNPSRequest", "ngContentSelectors", "_c1", "decls", "vars", "consts", "template", "rf", "ctx", "NPSCardComponent_Conditional_2_Template", "NPSCardComponent_Conditional_3_Template", "\u0275\u0275projection", "NPSCardComponent_ng_container_11_Template", "NPSCardComponent_ng_container_12_Template", "NPSCardComponent_Conditional_13_Template", "NPSCardComponent_Conditional_14_Template", "_c2", "\u0275\u0275conditional", "tmp_3_0", "undefined", "MatCardModule", "MatCard", "MatCardActions", "MatCardContent", "MatCardHeader", "MatCardSubtitle", "MatCardTitle", "GalaxyStatisticModule", "GalaxyBadgeModule", "BadgeComponent", "CommonModule", "NgIf", "NgStyle", "RouterLink", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "styles", "\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "ctx_r0", "address", "\u0275\u0275sanitizeHtml", "NPSAddressComponent", "init_nps_address_component", "__esmMin", "init_ngx_translate_core", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "NPSAddressComponent_Conditional_0_Template", "\u0275\u0275conditional", "TranslateModule", "TranslatePipe", "styles", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "StatisticDeltaComponent_div_3_mat_icon_1_Template", "StatisticDeltaComponent_div_3_mat_icon_2_Template", "\u0275\u0275property", "ctx_r0", "deltaClass", "\u0275\u0275advance", "delta", "\u0275\u0275textInterpolate", "formattedDelta", "DeltaColor", "StatisticDeltaComponent", "init_statistic_delta_component", "__esmMin", "init_common", "init_icon", "constructor", "value", "isPercentage", "decimalPlaces", "alignDeltaCenter", "alignDelta", "formattedValue", "isValid", "parseFloat", "toFixed", "toString", "alignStatisticContainer", "Math", "abs", "Grey", "Green", "Red", "isNaN", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "StatisticDeltaComponent_div_3_Template", "CommonModule", "NgClass", "NgIf", "MatIcon", "styles", "changeDetection", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "showPopovers", "hidePopovers", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275property", "popover_r3", "showPopover", "\u0275\u0275pureFunction2", "_c0", "PopoverPositions", "Bottom", "BottomRight", "chartOptions_r4", "series", "chart", "colors", "dataLabels", "stroke", "xaxis", "grid", "yaxis", "markers", "tooltip", "fill", "\u0275\u0275template", "NpsRollingAverageComponent_ng_container_0_ng_container_1_Template", "shouldRenderChart", "NpsRollingAverageComponent", "init_nps_rolling_average_component", "__esmMin", "init_common", "init_popover", "init_card", "init_icon", "init_ng_apexcharts", "init_ngx_translate_core", "init_operators", "constructor", "displayEmptyChart", "dataLabelColor", "borderColor", "ngOnInit", "rollingAvgChartOptions$", "npsRollingAvgData$", "pipe", "map", "sortedDataPoints", "dataValues", "point", "rollingAverage", "dynamicMin", "length", "Math", "floor", "min", "dynamicMax", "ceil", "max", "__spreadProps", "__spreadValues", "getDefaultChartOptions", "name", "data", "x", "Date", "netPromoterScoreDate", "getTime", "y", "type", "height", "width", "toolbar", "show", "zoom", "enabled", "animations", "size", "tickAmount", "labels", "datetimeFormatter", "day", "style", "format", "gradient", "shadeIntensity", "opacityFrom", "opacityTo", "stops", "strokeDashArray", "position", "lines", "formatter", "value", "toFixed", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "NpsRollingAverageComponent_ng_container_0_Template", "GalaxyPopoverModule", "PopoverComponent", "GalaxyPopoverDirective", "MatCardModule", "MatCard", "MatCardContent", "MatCardHeader", "MatCardTitle", "MatIconModule", "MatIcon", "NgApexchartsModule", "ChartComponent", "TranslateModule", "TranslatePipe", "CommonModule", "NgIf", "AsyncPipe", "styles", "NpsScoreService", "init_nps_score_service", "__esmMin", "calculateCategoryAndOverallScore", "score", "detractors", "Number", "passives", "promoters", "totalScores", "isNaN", "promoterScore", "detractorScore", "overallScore", "Math", "round", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "chartoptions_r3", "series", "chart", "dataLabels", "tooltip", "legend", "xaxis", "yaxis", "grid", "plotOptions", "color", "\u0275\u0275text", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "showPopovers", "hidePopovers", "\u0275\u0275template", "NpsChartOverallScoreComponent_ng_container_0_ng_container_21_Template", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "popover_r4", "showPopover", "\u0275\u0275pureFunction2", "_c0", "PopoverPositions", "Bottom", "BottomRight", "\u0275\u0275sanitizeHtml", "currentScore", "difference", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c1", "totalNPSRatings", "chartOptions$", "NpsChartOverallScoreComponent", "init_nps_chart_overall_score_component", "__esmMin", "init_core", "init_common", "init_ngx_translate_core", "init_card", "init_button", "init_icon", "init_ng_apexcharts", "init_popover", "init_esm", "init_statistic_delta_component", "init_nps_score_service", "constructor", "previousScore", "isChartDataAvailable", "translateService", "inject", "TranslateService", "npsScoreService", "NpsScoreService", "colors", "ngOnInit", "chartDataSubscription", "ChartData$", "subscribe", "chartData", "calculateScores", "initializeChartOptions", "ngOnDestroy", "unsubscribe", "translationStream$", "stream", "combineLatest", "pipe", "map", "translations", "chartdata", "total", "current", "promoters", "passives", "detractors", "percentages", "Math", "round", "individualScore", "name", "data", "height", "width", "type", "zoom", "enabled", "toolbar", "show", "position", "itemMargin", "vertical", "formatter", "seriesName", "opts", "percentage", "seriesIndex", "onItemHover", "highlightDataSeries", "bar", "horizontal", "columnWidth", "barHeight", "distributed", "backgroundBarColors", "backgroundBarOpacity", "stroke", "curve", "padding", "top", "lines", "labels", "style", "fontSize", "axisTicks", "axisBorder", "categories", "fontFamily", "fontWeight", "min", "max", "calculateCategoryAndOverallScore", "previous", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "NpsChartOverallScoreComponent_ng_container_0_Template", "CommonModule", "NgIf", "AsyncPipe", "TranslateModule", "TranslatePipe", "MatCardModule", "MatCard", "MatCardContent", "MatCardHeader", "MatCardTitle", "MatButtonModule", "MatIconModule", "MatIcon", "NgApexchartsModule", "ChartComponent", "GalaxyPopoverModule", "PopoverComponent", "GalaxyPopoverDirective", "StatisticDeltaComponent", "styles", "en_devel_default", "init_en_devel", "__esmMin", "CheckReviewDeletedPipe", "init_check_review_deleted_pipe", "__esmMin", "init_vendasta_reputation", "transform", "review", "checkAgainstStatus", "deletedStatus", "ReviewDeletedStatus", "REVIEW_DELETED_STATUS_UNSPECIFIED", "REVIEW_DELETED_STATUS_USER_REMOVED", "pure", "standalone", "CommentFromNowPipe", "init_comment_from_now_pipe", "__esmMin", "init_esm", "transform", "comment", "date", "published", "Date", "created", "formatDistance", "addSuffix", "pure", "standalone", "getImageSrc", "imageName", "window", "location", "hostname", "starCount", "init_utils", "__esmMin", "stars", "Array", "fill", "concat", "ReviewCardResponseTemplatesService", "init_response_templates_service", "__esmMin", "init_vendasta_templates", "init_operators", "constructor", "templatesApiService", "renderResponseTemplate", "externalTemplateId", "parameters", "applicationId", "renderRequest", "RenderTemplateRequest", "templateId", "renderTemplate", "pipe", "map", "response", "renderedTemplate", "\u0275\u0275inject", "TemplatesApiService", "factory", "\u0275fac", "removeGoogleTranslation", "init_remove_google_translation", "__esmMin", "content", "includes", "translatedRegex", "replace", "ReviewStatus", "RecommendationType", "SOURCE_IDS", "DEFAULT_SOURCE_NAMES", "VTMReviewFlags", "init_review_types", "__esmMin", "MY_LISTING", "GOOGLE_MAPS", "FACEBOOK", "isNull", "ReviewsService", "init_review_card_service", "__esmMin", "init_http", "init_vendasta_reputation", "init_esm", "init_operators", "init_review_types", "val", "constructor", "http", "snackbarService", "translateService", "reviewApiService", "task$$", "BehaviorSubject", "search$$", "search$", "asObservable", "pipe", "debounceTime", "distinctUntilChanged", "task", "next", "publishReview", "review$", "accountGroupId", "partnerId", "take", "flatMap", "r", "updateReviewAPI", "reviewID", "isPublished", "catchError", "err", "console", "error", "openErrorSnack", "ObservableEmpty", "withLatestFrom", "map", "rvw", "openSuccessSnack", "__spreadProps", "__spreadValues", "unpublishReview", "publishToReviewWidget", "isPublishedThirdPartyReview", "publishThirdPartyReview", "unpublishFromReviewWidget", "updateReviewStatus", "status", "createReviewComment", "commentText", "companyName", "canPublishReviewCommentToSourceAPI", "skipWhile", "takeLast", "switchMap", "res", "canPublish", "message", "length", "instant", "createReviewCommentAPI", "newComment", "comments", "postedByOwner", "ReviewStatus", "OWNER_RESPONDED", "DIGITAL_AGENT_RESPONDED", "editReviewComment", "comment", "updatedCommentText", "updateReviewCommentAPI", "reviewCommentId", "commentId", "tap", "updatedComment", "Object", "assign", "shareReplay", "createConciergeFeedback", "reviewId", "feedbackText", "callback", "provideConciergeFeedbackAPI", "feedback", "subscribe", "approveConciergeResponse", "approveConciergeResponseAPI", "getConciergeReviewResponse", "getConciergeReviewResponseAPI", "updateSearch", "term", "updateReviewUserDeletedInfo", "userId", "deletedStatus", "review", "ReviewDeletedStatus", "REVIEW_DELETED_STATUS_USER_REMOVED", "req", "params", "HttpParams", "set", "append", "get", "headers", "data", "post", "HttpHeaders", "toString", "encodeURIComponent", "body", "undefined", "Boolean", "created", "Date", "createdDateTime", "commentAuthor", "commenterName", "rid", "replace", "retry", "suggestReviewResponse", "isSameLanguage", "businessId", "inSameLanguage", "handleRequestApproval", "existingResponse$", "requestApproval", "throwError", "of", "updateReviewDraft", "\u0275\u0275inject", "HttpClient", "SnackbarService", "TranslateService", "ReviewApiService", "factory", "\u0275fac", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "star_r1", "\u0275\u0275template", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_div_8_mat_icon_1_Template", "\u0275\u0275advance", "ctx_r1", "reviewStars", "star_r3", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_div_11_div_4_mat_icon_1_Template", "reviewHistoryWithStars_r4", "stars", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_div_11_div_4_Template", "\u0275\u0275textInterpolate2", "reviewHistory", "reviewerName", "\u0275\u0275pipeBind2", "published", "DateFormat", "longDate", "review", "recommendation", "\u0275\u0275textInterpolate", "content", "\u0275\u0275elementContainerStart", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_div_8_Template", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_div_11_Template", "edited", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "reviewHistoryList_r5", "\u0275\u0275element", "emptyImagePath", "\u0275\u0275sanitizeUrl", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_container_1_Template", "ReviewHistoryCardComponent_div_4_ng_container_1_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "state_r7", "empty_r6", "ReviewHistoryCardComponent_div_4_ng_container_1_Template", "ReviewHistoryCardComponent_div_4_ng_template_2_Template", "loading", "loading_r8", "ReviewHistoryCardComponent", "init_review_history_card_component", "__esmMin", "init_dialog", "init_esm", "init_utils", "init_date_utils", "init_operators", "constructor", "reviewHistoryService", "getImageSrc", "ngOnInit", "state$", "getReviewHistory", "reviewId", "reviewID", "pipe", "map", "result", "scaledStarRating", "starCount", "getStarsFromScaledStarRating", "startWith", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "ReviewApiService", "selectors", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "ReviewHistoryCardComponent_div_4_Template", "RecommendedIconComponent", "init_recommended_icon_component", "__esmMin", "selectors", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "NotRecommendedIconComponent", "init_not_recommended_icon_component", "__esmMin", "selectors", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "PERSONAS", "FilterTemplatesPipe", "init_filter_templates_pipe", "__esmMin", "filterTemplates", "responseTemplates", "rating", "taxonomies", "Number", "length", "filter", "responseTemplate", "ratingMatch", "ratings", "some", "r", "categoriesMatch", "templateCategories", "categories", "category", "persona", "taxonomy", "includes", "transform", "pure", "standalone", "ValidateResponsePipe", "init_validate_response_pipe", "__esmMin", "validateResponse", "response", "placeholderWarning", "match", "googleUserWarning", "includes", "transform", "pure", "standalone", "RandomizeTemplatesPipe", "init_randomize_templates_pipe", "__esmMin", "randomizeTemplates", "responseTemplates", "curIndex", "length", "randIndex", "Math", "floor", "random", "tempValue", "transform", "pure", "standalone", "PaginateTemplatesPipe", "init_paginate_templates_pipe", "__esmMin", "paginateTemplates", "responseTemplates", "page", "start", "length", "end", "templates", "slice", "push", "transform", "pure", "standalone", "TransformReviewContentPipe", "init_transform_review_content_pipe", "__esmMin", "init_remove_google_translation", "transform", "content", "options", "hideEnglishTranslations", "removeGoogleTranslation", "pure", "standalone", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "review_r2", "reviewerUrl", "\u0275\u0275sanitizeUrl", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "reviewerName", "\u0275\u0275element", "respondUrl", "businessName", "\u0275\u0275elementContainerStart", "\u0275\u0275pipeBind1", "\u0275\u0275template", "ReviewCardComponent_mat_card_0_ng_container_13_a_3_Template", "ReviewCardComponent_mat_card_0_ng_container_13_ng_container_4_Template", "ctx_r2", "isPositiveRecommendation", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c1", "sourceID", "sourceIds", "MY_LISTING", "domain", "businessReviewsURL", "reviewConfig", "company", "name", "\u0275\u0275textInterpolate2", "address", "city", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openReviewHistoryCardModal", "\u0275\u0275classProp", "reviewHistoryEnabled", "editedFromNow", "shareMenu_r5", "shareUrl", "_r6", "unpublish", "_r7", "publish", "_r8", "unpublishFromReviewWidget", "_r9", "publishToReviewWidget", "star_r10", "ReviewCardComponent_mat_card_0_div_40_mat_icon_1_Template", "reviewStars", "title", "content", "_c2", "hideGoogleTranslatedReviewContent", "\u0275\u0275sanitizeHtml", "statusMenu_r11", "_c3", "\u0275\u0275elementContainer", "ReviewCardComponent_mat_card_0_ng_container_60_span_1_ng_container_1_Template", "fulfillmentRespondedInfo_r12", "ReviewCardComponent_mat_card_0_ng_container_60_span_1_Template", "status", "ReviewStatus", "DIGITAL_AGENT_RESPONDED", "ReviewCardComponent_mat_card_0_ng_container_61_span_5_ng_container_1_Template", "ReviewCardComponent_mat_card_0_ng_container_61_span_1_Template", "ReviewCardComponent_mat_card_0_ng_container_61_span_2_Template", "ReviewCardComponent_mat_card_0_ng_container_61_span_3_Template", "ReviewCardComponent_mat_card_0_ng_container_61_span_4_Template", "ReviewCardComponent_mat_card_0_ng_container_61_span_5_Template", "digitalAgentTaskFlags", "includes", "VTMReviewFlags", "RESPONSE_AWAITING_APPROVAL", "FEEDBACK_PROVIDED", "RESPONSE_APPROVED", "hasOwnerResponded", "hasDigitalAgentResponded", "_c4", "partnerName", "ReviewCardComponent_mat_card_0_ng_template_62_ng_container_0_Template", "ReviewCardComponent_mat_card_0_ng_template_62_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "fulfillmentResponded_r13", "_c5", "GOOGLE_MAPS", "\u0275\u0275propertyInterpolate", "businessSettingsURL", "_r14", "showComments", "\u0275\u0275textInterpolate3", "comments", "length", "isLastFailedReviewComment", "_r15", "c_r16", "$implicit", "showCommentEditor", "commentId", "_r17", "editCommentInput_r18", "\u0275\u0275reference", "value", "removeGoogleTranslation", "commentText", "hideCommentEditor", "ngIf", "editComment", "_c0", "commentEditorVisibleMap$", "ReviewCardComponent_mat_card_0_div_65_ng_container_3_div_1_ng_container_10_Template", "ReviewCardComponent_mat_card_0_div_65_ng_container_3_div_1_div_14_Template", "commentAuthor", "isCommentEditable", "postedByOwner", "\u0275\u0275textInterpolate", "ReviewCardComponent_mat_card_0_div_65_ng_container_3_div_1_Template", "isLast_r19", "ReviewCardComponent_mat_card_0_div_65_div_1_Template", "ReviewCardComponent_mat_card_0_div_65_ng_container_3_Template", "res_r20", "feedback", "partner_name", "ReviewCardComponent_mat_card_0_ng_container_66_div_1_div_9_Template", "ReviewCardComponent_mat_card_0_ng_container_66_div_1_div_10_Template", "showTaskManagerComment", "favicon_url", "\u0275\u0275pureFunction2", "_c6", "agent_name", "response", "tags", "indexOf", "ReviewCardComponent_mat_card_0_ng_container_66_div_1_Template", "taskManagerResponse$", "ReviewCardComponent_mat_card_0_div_67_span_5_Template", "ReviewCardComponent_mat_card_0_div_67_span_6_Template", "lastFailedReviewCommentReason", "fromNow", "lastFailedReviewCommentCreated", "_r22", "responseBox_r23", "suggestReviewResponse", "suggestingResponse$", "template_r25", "_r24", "renderResponseTemplate", "_r26", "reviewResponseTemplatePage", "ReviewCardComponent_mat_card_0_ng_container_81_div_1_button_2_Template", "ReviewCardComponent_mat_card_0_ng_container_81_div_1_button_3_Template", "ReviewCardComponent_mat_card_0_ng_container_81_div_1_button_6_Template", "openAIEnabled", "filteredTemplates_r27", "ReviewCardComponent_mat_card_0_ng_container_81_div_1_Template", "language", "nonEnglishReviewResponseTemplates", "_r28", "template_r30", "_r29", "_r31", "ReviewCardComponent_mat_card_0_ng_container_108_div_1_button_2_Template", "ReviewCardComponent_mat_card_0_ng_container_108_div_1_button_3_Template", "ReviewCardComponent_mat_card_0_ng_container_108_div_1_button_6_Template", "filteredTemplates_r32", "ReviewCardComponent_mat_card_0_ng_container_108_div_1_Template", "_r34", "updateDeletedStatus", "reviewDeletedStatus", "REVIEW_DELETED_STATUS_USER_REMOVED", "_r33", "toggleShowHelperText", "ReviewCardComponent_mat_card_0_div_115_button_15_Template", "REVIEW_DELETED_STATUS_USER_KEPT", "_c7", "isHelperTextVisible", "_c8", "REVIEW_DELETED_STATUS_UNSPECIFIED", "_r35", "provideFeedback", "approveResponse", "ReviewCardComponent_mat_card_0_ng_container_119_div_1_div_1_Template", "res_r36", "provideTaskManagerFeedback", "ReviewCardComponent_mat_card_0_ng_container_119_div_1_Template", "\u0275\u0275pureFunction0", "_c9", "_c10", "_r37", "respondButtonPressed", "ReviewCardComponent_mat_card_0_ng_container_120_div_1_div_11_Template", "ReviewCardComponent_mat_card_0_ng_container_120_div_1_div_12_Template", "canShowResponseBox", "FACEBOOK", "$event", "_r38", "responseBoxTextCopied", "_c11", "_r39", "ReviewCardComponent_mat_card_0_ng_container_120_div_2_ng_container_1_Template", "ReviewCardComponent_mat_card_0_ng_container_120_div_2_ng_template_2_Template", "showRespondBoxWithSuggestedText", "defaultRespondButton_r40", "_r41", "connectButtonPressed", "ReviewCardComponent_mat_card_0_ng_container_120_div_3_div_3_Template", "ReviewCardComponent_mat_card_0_ng_container_120_div_3_div_4_Template", "respondOnSourceButtonPressed", "ReviewCardComponent_mat_card_0_ng_container_120_div_1_Template", "ReviewCardComponent_mat_card_0_ng_container_120_div_2_Template", "ReviewCardComponent_mat_card_0_ng_container_120_div_3_Template", "suggestResponseOnAllSources", "_r42", "showLastFailedReviewCommentEditor", "_r43", "cancelFeedback", "feedbackBox_r44", "saveFeedback", "_r46", "saveComment", "googleUserWarning", "_r45", "cancelButtonPressed", "ReviewCardComponent_mat_card_0_div_124_div_1_ng_container_5_Template", "isPublishLoading$$", "responding_r47", "_r49", "lastFailedReviewCommentResponseBox_r21", "_r48", "hideLastFailedReviewCommentEditor", "ReviewCardComponent_mat_card_0_div_124_div_4_ng_container_5_Template", "reviewDataLink", "reviewID", "ReviewCardComponent_mat_card_0_div_124_div_1_Template", "ReviewCardComponent_mat_card_0_div_124_div_4_Template", "ReviewCardComponent_mat_card_0_div_124_a_7_Template", "showRespondBox", "undefined", "enableResponse", "showlastFailedReviewCommentResponseBox", "isDebug$", "_r50", "_r51", "handleRequestApproval", "_c12", "digitalAgentButtonDisabled$$", "_r52", "ReviewCardComponent_mat_card_0_ng_template_125_ng_container_7_button_1_Template", "canPublishDirect$", "useAnchorTag_r53", "ReviewCardComponent_mat_card_0_ng_template_125_div_1_Template", "ReviewCardComponent_mat_card_0_ng_template_125_ng_container_4_Template", "ReviewCardComponent_mat_card_0_ng_template_125_ng_container_7_Template", "ReviewCardComponent_mat_card_0_ng_template_125_ng_template_10_Template", "ReviewCardComponent_mat_card_0_ng_template_125_ng_template_12_Template", "isRequestingApprovalLoading$$", "digitalAgentLoading_r54", "canPublishDirectLoading$$", "ReviewCardComponent_mat_card_0_a_9_Template", "ReviewCardComponent_mat_card_0_span_10_Template", "ReviewCardComponent_mat_card_0_reviews_recommended_icon_11_Template", "ReviewCardComponent_mat_card_0_reviews_not_recommended_icon_12_Template", "ReviewCardComponent_mat_card_0_ng_container_13_Template", "ReviewCardComponent_mat_card_0_ng_container_14_Template", "ReviewCardComponent_mat_card_0_ng_container_15_Template", "ReviewCardComponent_mat_card_0_i_19_Template", "ReviewCardComponent_mat_card_0_a_21_Template", "ReviewCardComponent_mat_card_0_a_25_Template", "ReviewCardComponent_mat_card_0_a_27_Template", "ReviewCardComponent_mat_card_0_a_28_Template", "ReviewCardComponent_mat_card_0_a_30_Template", "ReviewCardComponent_mat_card_0_a_31_Template", "ReviewCardComponent_mat_card_0_div_40_Template", "ReviewCardComponent_mat_card_0_div_41_Template", "ReviewCardComponent_mat_card_0_div_42_Template", "ReviewCardComponent_mat_card_0_span_44_Template", "_r1", "updateStatus", "ACTION_REQUIRED", "OWNER_RESPONDED", "NO_ACTION_REQUIRED", "ReviewCardComponent_mat_card_0_span_56_Template", "ReviewCardComponent_mat_card_0_span_57_Template", "ReviewCardComponent_mat_card_0_span_58_Template", "ReviewCardComponent_mat_card_0_span_59_Template", "ReviewCardComponent_mat_card_0_ng_container_60_Template", "ReviewCardComponent_mat_card_0_ng_container_61_Template", "ReviewCardComponent_mat_card_0_ng_template_62_Template", "ReviewCardComponent_mat_card_0_div_64_Template", "ReviewCardComponent_mat_card_0_div_65_Template", "ReviewCardComponent_mat_card_0_ng_container_66_Template", "ReviewCardComponent_mat_card_0_div_67_Template", "handleInputChange", "ReviewCardComponent_mat_card_0_ng_container_81_Template", "ReviewCardComponent_mat_card_0_mat_error_83_Template", "ReviewCardComponent_mat_card_0_mat_error_85_Template", "ReviewCardComponent_mat_card_0_mat_hint_87_Template", "handleBlur", "handleFocus", "ReviewCardComponent_mat_card_0_ng_container_108_Template", "ReviewCardComponent_mat_card_0_mat_error_110_Template", "ReviewCardComponent_mat_card_0_mat_error_112_Template", "ReviewCardComponent_mat_card_0_mat_hint_114_Template", "ReviewCardComponent_mat_card_0_div_115_Template", "ReviewCardComponent_mat_card_0_ng_container_119_Template", "ReviewCardComponent_mat_card_0_ng_container_120_Template", "ReviewCardComponent_mat_card_0_div_122_Template", "ReviewCardComponent_mat_card_0_div_123_Template", "ReviewCardComponent_mat_card_0_div_124_Template", "ReviewCardComponent_mat_card_0_ng_template_125_Template", "isNegativeRecommendation", "isRecommendation", "published", "isSharingReviewEnabled", "isPublishingReviewEnabled", "isPublishedMyListingReview", "isPublishedThirdPartyReview", "isPublished", "shouldDisplayReviewWidgetMenu", "url", "startsWith", "edited", "digitalAgentView", "showFulfillmentRespondedBadge", "showConnectBanner", "responseBoxText$", "lastFailedReviewCommentText", "\u0275\u0275pipeBind3", "responseTemplates", "rating", "taxonomyIds", "placeholderWarning", "showTaskManagerRespondBox", "tmp_65_0", "showRespondButton", "digitalAgentButtons_r55", "APARTMENT_RATINGS", "ReviewCardComponent", "decodeEntities", "init_common_review_card_component", "__esmMin", "init_animations", "init_core", "init_ai_icon", "init_vendasta_reputation", "init_formatDistance", "init_esm", "init_operators", "init_utils", "init_remove_google_translation", "init_review_history_card_component", "init_review_types", "constructor", "reviewsService", "translateService", "templatesService", "snowplow", "snackbarService", "router", "dialog", "route", "formatPhoneNumber", "templateApplicationId", "trackExternalLinkClicks", "GalaxyAiIconService", "inject", "disableThirdPartyReviewSourceIDs", "SOURCE_IDS", "YELP", "HOTELS_DOT_COM", "BOOKING", "TRIPADVISOR", "commentEditorVisibleMap$$", "BehaviorSubject", "review$$", "review$", "asObservable", "ReviewDeletedStatus", "lastTemplateUsed", "unsubscribe", "Subject", "suggestingResponse$$", "ngOnInit", "partnerId", "stream", "highlightReviewContent", "queryParams", "pipe", "map", "params", "debug", "first", "shareReplay", "getReviewDataLink", "review", "listingID", "shouldShowReviewWidget", "isPublishedReview", "taskManagerReviewResponseData$", "socialMarketingEnabled", "recommendation", "defaultLang", "onLangChange", "takeUntil", "subscribe", "event", "lang", "hasNoReviewComments", "reviewResponseSettings", "isResponseSettingRequired", "transformReview", "next", "r", "buildBusinessProductURL", "canPublishReviewCommentToSourceAPI", "accountgroupId", "canPublishData", "canPublish", "finalize", "digitalAgentViewData", "task", "take", "res", "push", "some", "comment", "postedByDigitalAgent", "starCount", "stars", "cevm", "getValue", "closeCommentEditor", "gmbAuthUrl", "window", "location", "href", "open", "facebookAuthUrl", "gmbAccount", "gmbAccountConnected", "fbAccounts", "facebookAccounts", "hasFacebookConnected", "facebookAccountConnected", "facebookResponseEnabled", "APARTMENTS", "apartmentsResponseEnabled", "apartmentRatingsApiResponseEnabled", "approveConciergeResponse", "refreshFeedbackData", "createReviewComment", "feedbackText", "createConciergeFeedback", "getConciergeReviewResponse", "share", "updatedCommentText", "reviewSource", "editReviewComment", "commentEditorVisibilityMap", "excludedCommentId", "key", "updateReviewStatus", "publishReview", "unpublishReview", "deletedStatus", "updateReviewUserDeletedInfo", "userId", "reviewStatus", "responseBox", "tap", "updateReviewDraft", "referencedTemplate", "renderedTemplate", "error", "openErrorSnack", "responseTemplate", "config", "parameters", "reviewerFirstName", "split", "reviewerFullName", "starRating", "businessEmail", "accountGroupEmail", "username", "hasUser", "userFirstName", "userLastName", "businessAddress", "businessPhoneNumber", "workNumbers", "transform", "country", "businessWebsite", "website", "externalTemplateId", "decoded", "date", "formatDistance", "Date", "addSuffix", "ngOnDestroy", "complete", "openSuccessSnack", "initialResponseValue", "success", "replace", "__spreadProps", "__spreadValues", "highlightOptions", "beginOffsets", "Math", "max", "phrase", "sort", "a", "b", "improperOffset", "highlightedContent", "reduce", "curIndex", "beforeHighlight", "substring", "lastOffset", "toHighlight", "slice", "afterHighlight", "toLowerCase", "RegExp", "s", "listingsId", "environment", "dontShowWidgetPublishAction", "allowedWithAddon", "isWidgetAllReviewsAddonEnabled", "findIndex", "index", "allowedWithoutAddon", "publishThirdPartyReview", "reviewPublishSettings", "Number", "thirdPartyMinimumPublishRating", "page", "productEntryURL", "businessID", "ReviewHistoryCardComponent", "data", "width", "\u0275\u0275directiveInject", "ReviewsService", "TranslateService", "ReviewCardResponseTemplatesService", "ProductAnalyticsService", "SnackbarService", "Router", "MatDialog", "ActivatedRoute", "PhoneNumberFormatPipe", "selectors", "inputs", "cardText", "connectAccountConfig", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "ReviewCardComponent_mat_card_0_Template", "ReviewCardComponent_ng_template_2_Template", "trigger", "state", "style", "height", "margin", "opacity", "transition", "animate", "element", "document", "createElement", "decodeHTMLEntities", "str", "innerHTML", "textContent", "WEBLATE_COMPONENT_NAME", "init_constants", "__esmMin", "MaterialModules", "CommonReviewCardModule", "init_common_review_card_module", "__esmMin", "init_common", "init_clipboard", "init_button", "init_button_toggle", "init_card", "init_chips", "init_dialog", "init_form_field", "init_icon", "init_input", "init_list", "init_menu", "init_progress_bar", "init_progress_spinner", "init_select", "init_snack_bar", "init_tabs", "init_tooltip", "init_src", "init_ngx_translate_core", "init_badge", "init_button_loading_indicator", "init_empty_state", "init_loading_spinner", "init_pipes", "init_en_devel", "init_review_card_service", "init_constants", "init_response_templates_service", "MatButtonModule", "MatButtonToggleModule", "MatCardModule", "MatIconModule", "MatTabsModule", "MatDialogModule", "MatMenuModule", "MatChipsModule", "MatFormFieldModule", "MatInputModule", "MatSnackBarModule", "MatListModule", "MatSelectModule", "MatTooltipModule", "MatProgressBarModule", "MatProgressSpinnerModule", "ReviewCardResponseTemplatesService", "ReviewsService", "imports", "UIKitModule", "GalaxyButtonLoadingIndicatorModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "CommonModule", "CommonPipesModule", "ClipboardModule", "GalaxyFormFieldModule", "GalaxyLoadingSpinnerModule", "GalaxyBadgeModule", "GalaxyEmptyStateModule", "GalaxyPipesModule", "ReviewsInjectionToken", "SourceSelectionInjectionToken", "init_token", "__esmMin", "init_core", "InjectionToken", "PRIMARY_SOURCE_IDS", "MyListingSourceRenderImplemented", "init_types", "__esmMin", "ReviewSourceSelectionService", "init_source_selection_service", "__esmMin", "init_token", "constructor", "config", "reviewSources$", "reviewSourcesWithURLs$", "reviewSourceInfoMap$", "showMyListing$", "\u0275\u0275inject", "SourceSelectionInjectionToken", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "source_r1", "sourceIconUrl", "\u0275\u0275textInterpolate", "sourceName", "listingName", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SelectedSourcesDisplayComponent_div_0_ng_container_1_div_1_Template", "reviewSourceInfoMap_r3", "sourceId_r2", "SelectedSourcesDisplayComponent_div_0_ng_container_1_Template", "ctx_r3", "sortedSelectedSources", "SelectedSourcesDisplayComponent", "init_selected_sources_display_component", "__esmMin", "init_common", "init_avatar", "init_esm", "init_types", "constructor", "reviewSourceSelectionService", "ngOnChanges", "changes", "shouldFilter", "updateReviewSourceInfo", "selectedSources", "sort", "a", "b", "aIsPrimary", "PRIMARY_SOURCE_IDS", "bIsPrimary", "primarySourceIds", "Object", "keys", "indexOf", "source$", "reviewSourcesWithURLs$", "reviewSources$", "reviewSourceInfoMap$", "pipe", "map", "reviewSources", "sourceInfo", "\u0275\u0275directiveInject", "ReviewSourceSelectionService", "selectors", "inputs", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SelectedSourcesDisplayComponent_div_0_Template", "\u0275\u0275pipeBind1", "CommonModule", "NgForOf", "NgIf", "AsyncPipe", "GalaxyAvatarModule", "AvatarComponent", "styles", "\u0275\u0275elementContainer", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SourceSelectionPanelComponent_mat_selection_list_9_div_2_ng_container_4_ng_container_1_Template", "\u0275\u0275advance", "\u0275\u0275property", "sourceSelect_r5", "\u0275\u0275pureFunction2", "_c1", "filteredReviewSources_r4", "sourceInfo", "primarySourceId_r3", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "SourceSelectionPanelComponent_mat_selection_list_9_div_2_ng_container_4_Template", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "primarySourceIds", "SourceSelectionPanelComponent_mat_selection_list_9_div_3_ng_container_4_ng_container_1_Template", "otherSourceId_r6", "SourceSelectionPanelComponent_mat_selection_list_9_div_3_ng_container_4_Template", "otherSourceIds", "\u0275\u0275element", "sourceId_r8", "ctx_r1", "selectedSourceIds", "has", "source_r7", "sourceIconUrl", "sourceName", "listingName", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "onSelectionChange", "SourceSelectionPanelComponent_mat_selection_list_9_div_2_Template", "SourceSelectionPanelComponent_mat_selection_list_9_div_3_Template", "SourceSelectionPanelComponent_mat_selection_list_9_ng_template_4_Template", "\u0275\u0275templateRefExtractor", "length", "SourceSelectionPanelComponent", "init_source_selection_panel_component", "__esmMin", "init_core", "init_animations", "init_common", "init_avatar", "init_list", "init_button", "init_icon", "init_ngx_translate_core", "init_esm", "init_operators", "init_snackbar_service", "init_form_field", "init_forms", "init_input", "constructor", "maxSelections", "Infinity", "keepOpen", "sourceIdsSelected", "EventEmitter", "opened$$", "Subject", "searchQueryControl", "FormControl", "Set", "preselectedSourceIds", "snackbarService", "inject", "SnackbarService", "translateService", "TranslateService", "subscriptions", "ngOnInit", "searchQueryChanged$", "valueChanges", "pipe", "debounceTime", "distinctUntilChanged", "startWith", "filteredReviewSources$", "map", "searchQuery", "filterSources", "reviewSources", "__spreadValues", "push", "openWithSelectedSources$", "subscribe", "preselectedSources", "clear", "forEach", "sourceId", "add", "sourceSelectionList", "options", "option", "value", "selected", "setValue", "next", "sourceIds", "reviewSourceInfoMap", "filter", "toLowerCase", "includes", "delete", "onCancel", "size", "onSave", "openErrorSnack", "instant", "ngOnDestroy", "sub", "unsubscribe", "selectors", "viewQuery", "rf", "ctx", "SourceSelectionPanelComponent_mat_selection_list_9_Template", "headerTranslationKey", "CommonModule", "NgForOf", "NgIf", "NgTemplateOutlet", "AsyncPipe", "GalaxyAvatarModule", "AvatarComponent", "MatListModule", "MatSelectionList", "MatListOption", "MatButtonModule", "MatButton", "MatIconModule", "TranslateModule", "TranslatePipe", "GalaxyFormFieldModule", "FormFieldComponent", "ReactiveFormsModule", "DefaultValueAccessor", "NgControlStatus", "FormControlDirective", "MatInputModule", "MatInput", "styles", "data", "animation", "trigger", "state", "style", "height", "transition", "animate", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "ctx_r0", "data", "headerTranslationKey", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "requestSourceIdsSelected", "\u0275\u0275property", "leaveReviewSources_r3", "maxSelections", "preselectedIDs$", "SourceSelectionModalComponent", "init_source_selection_modal_component", "__esmMin", "init_core", "init_common", "init_dialog", "init_ngx_translate_core", "init_esm", "init_types", "init_src", "init_source_selection_panel_component", "constructor", "sourceSelectionService", "dialogRef", "inject", "MatDialogRef", "MAT_DIALOG_DATA", "preselectedIDs$$", "BehaviorSubject", "preselectedSources", "asObservable", "selectableIDs", "Infinity", "reviewSources$", "reviewSourcesWithURLs$", "pipe", "map", "sources", "reviewSources", "__spreadProps", "__spreadValues", "primarySourceIds", "MyListingSourceRenderImplemented", "filter", "id", "idsOverrideForSelection", "length", "includes", "otherSourceIds", "next", "sourceIds", "arrayContentEqual", "close", "\u0275\u0275directiveInject", "ReviewSourceSelectionService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "SourceSelectionModalComponent_h2_0_Template", "SourceSelectionModalComponent_reviews_source_selection_panel_3_Template", "CommonModule", "NgIf", "AsyncPipe", "MatDialogModule", "MatDialogTitle", "MatDialogContent", "TranslateModule", "TranslatePipe", "SourceSelectionPanelComponent", "styles", "ReviewSourceSelectionModalService", "init_source_selection_modal_service", "__esmMin", "init_core", "init_dialog", "init_source_selection_modal_component", "constructor", "dialog", "inject", "MatDialog", "openModal", "input", "open", "SourceSelectionModalComponent", "data", "width", "maxWidth", "height", "maxHeight", "afterClosed", "factory", "\u0275fac", "providedIn", "init_lib", "__esmMin", "init_common_review_card_module", "init_review_types", "init_review_card_service", "init_selected_sources_display_component", "init_source_selection_modal_service", "init_types", "init_nps_card_component", "init_nps_address_component", "init_statistic_delta_component", "init_nps_rolling_average_component", "init_nps_chart_overall_score_component", "init_nps_score_service", "init_src", "__esmMin", "init_lib", "init_token"] }