{"version":3,"sources":["libs/smb-invoicing/src/lib/shared/notification.ts","libs/smb-invoicing/src/lib/invoice.service.ts","libs/smb-invoicing/src/lib/change-invoice-status-dialog/change-invoice-status-dialog.component.ts","libs/smb-invoicing/src/lib/change-invoice-status-dialog/change-invoice-status-dialog.component.html","libs/smb-invoicing/src/lib/invoice-table/invoice-table.data-source.ts","libs/smb-invoicing/src/lib/constants.ts","libs/smb-invoicing/src/lib/shared/invoice.ts","libs/smb-invoicing/src/lib/shared/pipes.ts","libs/smb-invoicing/src/lib/invoice-table/invoice-table.component.ts","libs/smb-invoicing/src/lib/invoice-table/invoice-table.component.html","libs/smb-invoicing/src/lib/assets/i18n/en_devel.json","libs/smb-invoicing/src/lib/payment-method/stripe.service.ts","libs/smb-invoicing/src/lib/payment-method/select-payment-method-dialog/payment-type-to-title.pipe.ts","libs/smb-invoicing/src/lib/payment-method/select-payment-method-dialog/keys.pipe.ts","libs/smb-invoicing/src/lib/smb-invoicing.module.ts","libs/smb-invoicing/src/lib/payment-method/payment-method-display/payment-method-display.component.ts","libs/smb-invoicing/src/lib/payment-method/payment-method-display/payment-method-display.component.html","libs/smb-invoicing/src/lib/payment-method/select-payment-method-dialog/select-payment-method-dialog.component.ts","libs/smb-invoicing/src/lib/payment-method/select-payment-method-dialog/select-payment-method-dialog.component.html","libs/smb-invoicing/src/lib/payment-method/payment-method-selector/payment-method-selector.component.ts","libs/smb-invoicing/src/lib/payment-method/payment-method-selector/payment-method-selector.component.html","libs/smb-invoicing/src/lib/payment-method/default-payment-method-selector/default-payment-method-selector.component.ts","libs/smb-invoicing/src/lib/payment-method/default-payment-method-selector/default-payment-method-selector.component.html","libs/smb-invoicing/src/lib/payment-method/index.ts","libs/smb-invoicing/src/lib/bank-account/add-bank-account/add-bank-account.component.ts","libs/smb-invoicing/src/lib/bank-account/add-bank-account/add-bank-account.component.html","libs/smb-invoicing/src/lib/bank-account/loading-state.service.ts","libs/smb-invoicing/src/lib/bank-account/bank-account-list/bank-account-list.component.ts","libs/smb-invoicing/src/lib/bank-account/bank-account-list/bank-account-list.component.html","libs/smb-invoicing/src/lib/bank-account/bank-account.service.ts","libs/smb-invoicing/src/lib/bank-account/bank-account.component.ts","libs/smb-invoicing/src/lib/bank-account/bank-account.component.html","libs/smb-invoicing/src/lib/payout/payout-list/payout-list-datasource.ts","libs/smb-invoicing/src/lib/payout/payout-status-badge/payout-status-badge.component.ts","libs/smb-invoicing/src/lib/payout/payout-status-badge/payout-status-badge.component.html","libs/smb-invoicing/src/lib/payout/payout-list/payout-list.component.ts","libs/smb-invoicing/src/lib/payout/payout-list/payout-list.component.html","libs/smb-invoicing/src/lib/shared/image-src.ts","libs/smb-invoicing/src/lib/retail-payments/empty-state/retail-payments-empty-state.component.ts","libs/smb-invoicing/src/lib/retail-payments/empty-state/retail-payments-empty-state.component.html","libs/smb-invoicing/src/lib/retail-payments/onboarding/retail-payments-onboarding.component.ts","libs/smb-invoicing/src/lib/retail-payments/onboarding/retail-payments-onboarding.component.html","libs/smb-invoicing/src/lib/payout/payouts/payouts.component.ts","libs/smb-invoicing/src/lib/payout/payouts/payouts.component.html","libs/smb-invoicing/src/lib/customer/customer-data.ts","libs/smb-invoicing/src/lib/transactions/common.ts","libs/smb-invoicing/src/lib/transactions/transactions-table/transactions-table-datasource.ts","libs/smb-invoicing/src/lib/refund/refund-dialog/refund-dialog.component.ts","libs/smb-invoicing/src/lib/refund/refund-dialog/refund-dialog.component.html","libs/smb-invoicing/src/lib/transactions/transactions-table/transaction-row-actions/transaction-row-actions.component.ts","libs/smb-invoicing/src/lib/transactions/transactions-table/transaction-row-actions/transaction-row-actions.component.html","libs/smb-invoicing/src/lib/payment-status-chip/payment-status-chip.component.ts","libs/smb-invoicing/src/lib/payment-status-chip/payment-status-chip.component.html","libs/smb-invoicing/src/lib/export-financial-reports/models/build-status.ts","libs/smb-invoicing/src/lib/export-financial-reports/models/index.ts","node_modules/file-saver/dist/FileSaver.min.js","libs/smb-invoicing/src/lib/export-financial-reports/services/export.service.ts","libs/smb-invoicing/src/lib/export-financial-reports/components/export-dialog/export-dialog.component.ts","libs/smb-invoicing/src/lib/export-financial-reports/components/export-dialog/export-dialog.component.html","libs/smb-invoicing/src/lib/export-financial-reports/components/export-button/export-button.component.ts","libs/smb-invoicing/src/lib/export-financial-reports/components/export-button/export-button.component.html","libs/smb-invoicing/src/lib/export-financial-reports/components/export-button/index.ts","libs/smb-invoicing/src/lib/transactions/transactions-table/transactions-table.component.ts","libs/smb-invoicing/src/lib/transactions/transactions-table/transactions-table.component.html","libs/smb-invoicing/src/lib/transactions/transactions.component.ts","libs/smb-invoicing/src/lib/transactions/transactions.component.html","libs/smb-invoicing/src/lib/payout/payout-details/payout-details.component.ts","libs/smb-invoicing/src/lib/payout/payout-details/payout-details.component.html","libs/smb-invoicing/src/lib/retail-payments/details/details-row/detail-row.component.ts","libs/smb-invoicing/src/lib/retail-payments/details/details-row/detail-row.component.html","libs/smb-invoicing/src/lib/retail-payments/details/customer-section/payment-business.component.ts","libs/smb-invoicing/src/lib/retail-payments/details/customer-section/payment-business.component.html","libs/smb-invoicing/src/lib/retail-payments/details/details-section/payment-card.component.ts","libs/smb-invoicing/src/lib/retail-payments/details/details-section/payment-card.component.html","libs/smb-invoicing/src/lib/retail-payments/details/page/payment-page-container.component.ts","libs/smb-invoicing/src/lib/retail-payments/details/page/payment-page-container.component.html","libs/smb-invoicing/src/lib/index.ts","libs/smb-invoicing/src/index.ts"],"sourcesContent":["export interface Notification {\n message: string;\n type: NotificationType;\n}\n\nexport enum NotificationType {\n SUCCESS = 1,\n ERROR,\n}\n","import { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { InvoiceService as BillingInvoiceService, InvoiceStatus } from '@galaxy/billing';\nimport { catchError, finalize, map, take } from 'rxjs/operators';\nimport { Notification, NotificationType } from './shared/notification';\nimport { HttpResponse } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class InvoiceService {\n private readonly notification$$: Subject = new Subject();\n private readonly loading$$: BehaviorSubject = new BehaviorSubject(false);\n private _loading$: Observable = this.loading$$.asObservable();\n private _notifications$: Observable = this.notification$$.asObservable();\n\n constructor(\n private invoiceService: BillingInvoiceService,\n private readonly translateService: TranslateService,\n ) {}\n\n get notification$(): Observable {\n return this._notifications$;\n }\n\n get loading$(): Observable {\n return this._loading$;\n }\n\n public delete(merchantId: string, invoiceId: string): Observable {\n this.loading$$.next(true);\n return this.invoiceService.delete(merchantId, invoiceId).pipe(\n take(1),\n map(() => {\n this.notification$$.next({\n message: 'Successfully deleted invoice.',\n type: NotificationType.SUCCESS,\n });\n return true;\n }),\n catchError(() => {\n this.notification$$.next({\n message: 'Failed to delete invoice.',\n type: NotificationType.ERROR,\n });\n return of(false);\n }),\n finalize(() => this.loading$$.next(false)),\n );\n }\n\n public changeStatus(\n merchantId: string,\n invoiceId: string,\n invoiceStatus: InvoiceStatus,\n reason: string,\n ): Observable {\n let response$: Observable>;\n switch (invoiceStatus) {\n case InvoiceStatus.PAID:\n this.loading$$.next(true);\n response$ = this.invoiceService.pay(merchantId, invoiceId, reason);\n break;\n case InvoiceStatus.VOID:\n this.loading$$.next(true);\n response$ = this.invoiceService.void(merchantId, invoiceId, reason);\n break;\n default:\n throw new Error('Invalid invoice status');\n }\n\n return response$.pipe(\n take(1),\n map(() => {\n this.notification$$.next({\n message: this.translateService.instant('INVOICE.TABLE.STATUS_CHANGE_SUCCESS'),\n type: NotificationType.SUCCESS,\n });\n return true;\n }),\n catchError((err) => {\n let message = '';\n if (err?.error?.details[0]?.fieldViolations[0]?.field) {\n if (\n err?.error?.details[0]?.fieldViolations[0]?.field == 'status' &&\n err?.error?.details[0]?.fieldViolations[0]?.description == 'INVALID_STATUS'\n ) {\n message = this.translateService.instant('INVOICE.TABLE.ERRORS.INVALID_STATUS');\n } else if (\n err?.error?.details[0]?.fieldViolations[0]?.field == 'last_payment_status' &&\n err?.error?.details[0]?.fieldViolations[0]?.description == 'PAYMENT_PENDING'\n ) {\n message = this.translateService.instant('INVOICE.TABLE.ERRORS.PAYMENT_PENDING');\n }\n } else {\n message = this.translateService.instant('INVOICE.TABLE.ERRORS.STATUS_CHANGE_FAILED');\n }\n this.notification$$.next({\n message: message,\n type: NotificationType.ERROR,\n });\n return of(false);\n }),\n finalize(() => this.loading$$.next(false)),\n );\n }\n}\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { InvoiceStatus } from '@galaxy/billing';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, Subscription } from 'rxjs';\nimport { InvoiceService } from '../invoice.service';\nimport { NotificationType } from '../shared/notification';\n\ninterface DialogData {\n merchantId: string;\n invoiceId: string;\n}\n\n@Component({\n selector: 'smb-invoicing-change-invoice-status-dialog',\n templateUrl: './change-invoice-status-dialog.component.html',\n styleUrls: ['./change-invoice-status-dialog.component.scss'],\n standalone: false,\n})\nexport class ChangeInvoiceStatusDialogComponent implements OnInit, OnDestroy {\n invoiceStatus: InvoiceStatus;\n merchantId: string;\n invoiceId: string;\n loading$: Observable;\n PaidStatus: InvoiceStatus = InvoiceStatus.PAID;\n VoidStatus: InvoiceStatus = InvoiceStatus.VOID;\n reason: string;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n public dialogRef: MatDialogRef,\n private invoiceService: InvoiceService,\n private alertService: SnackbarService,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n ) {\n this.invoiceId = data.invoiceId;\n this.merchantId = data.merchantId;\n this.loading$ = this.invoiceService.loading$;\n }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.invoiceService.notification$.subscribe((notification) => {\n if (notification.type === NotificationType.SUCCESS) {\n this.alertService.openSuccessSnack(notification.message);\n } else {\n this.alertService.openErrorSnack(notification.message);\n }\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n changeStatus(): void {\n this.invoiceService\n .changeStatus(this.merchantId, this.invoiceId, this.invoiceStatus, this.reason)\n .subscribe((isSuccess) => {\n if (isSuccess) {\n this.dialogRef.close(isSuccess);\n }\n });\n }\n}\n","

Change invoice status

\n\n \n Mark invoice as…\n \n
\n \n {{ PaidStatus }}\n Payment was collected outside of Vendasta Payments.\n \n
\n
\n \n {{ VoidStatus }}\n This invoice was accidentally finalized or contains a mistake.\n \n
\n
\n
\n \n Internal notes (optional)\n \n {{ internalNotes.value?.length || 0 }}/5000\n \n
\n\n \n \n\n","import { Invoice, InvoiceService, ListInvoicesFilter } from '@galaxy/billing';\nimport { DataSource } from '@angular/cdk/table';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { map, tap, finalize, take } from 'rxjs/operators';\n\nconst getRequestPageSize = (currentDataLength: number, pageIndex: number, pageSize: number) => {\n const startIndex = pageIndex * pageSize;\n const endIndex = startIndex + pageSize;\n return endIndex - currentDataLength;\n};\n\n/**\n * Data source for the ListInvoicesDataSource view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data.\n */\nexport class ListInvoicesDataSource extends DataSource {\n private storedInvoices$$: BehaviorSubject = new BehaviorSubject([]);\n private displayedInvoices$$: BehaviorSubject = new BehaviorSubject([]);\n private loading$$: BehaviorSubject = new BehaviorSubject(true);\n private cursor$$: BehaviorSubject = new BehaviorSubject('');\n private hasMore$$: BehaviorSubject = new BehaviorSubject(false);\n\n private _storedInvoices$ = this.storedInvoices$$.asObservable();\n private _displayedInvoices$ = this.displayedInvoices$$.asObservable();\n private _loading$ = this.loading$$.asObservable();\n private _hasMore$ = this.hasMore$$.asObservable();\n\n constructor(private invoiceService: InvoiceService) {\n super();\n }\n\n get hasMore$(): Observable {\n return this._hasMore$;\n }\n\n get loading$(): Observable {\n return this._loading$;\n }\n\n get storedInvoices$(): Observable {\n return this._storedInvoices$;\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable {\n return this._displayedInvoices$;\n }\n\n disconnect(): void {\n this.storedInvoices$$.complete();\n this.displayedInvoices$$.complete();\n this.loading$$.complete();\n this.cursor$$.complete();\n this.hasMore$$.complete();\n }\n\n public updatePage(filters: ListInvoicesFilter, pageSize: number, pageIndex: number): void {\n const storedItems = this.storedInvoices$$.getValue();\n const requestPageSize = getRequestPageSize(storedItems.length, pageIndex, pageSize);\n if (this.hasMore$$.getValue() && requestPageSize > 0) {\n this.load(filters, requestPageSize, pageIndex);\n } else {\n this.setPagedData(storedItems, pageIndex, pageSize);\n }\n }\n\n public load(filters: ListInvoicesFilter, pageSize: number, pageIndex: number): void {\n this.list(filters, this.cursor$$.getValue(), pageSize)\n .pipe(\n take(1),\n map((newItems) => [...this.storedInvoices$$.value, ...newItems]),\n )\n .subscribe((items) => {\n this.storedInvoices$$.next(items);\n this.setPagedData(items, pageIndex, pageSize);\n });\n }\n\n public reload(filters: ListInvoicesFilter, pageSize: number, pageIndex: number): void {\n this.list(filters, '', pageSize)\n .pipe(take(1))\n .subscribe((items) => {\n this.storedInvoices$$.next(items);\n this.setPagedData(items, pageIndex, pageSize);\n });\n }\n\n private setPagedData(items: Invoice[], pageIndex: number, pageSize: number): void {\n // return the whole page, or whatever is left of our merchant discount list\n const startIndex = pageIndex * pageSize;\n const endIndex = startIndex + pageSize;\n const endIndexForExisting = Math.min(items.length, endIndex);\n this.displayedInvoices$$.next(items.slice(startIndex, endIndexForExisting));\n }\n\n private list(filters: ListInvoicesFilter, cursor: string, pageSize: number): Observable {\n this.loading$$.next(true);\n return this.invoiceService.list(filters, cursor, pageSize).pipe(\n tap((r) => {\n this.hasMore$$.next(r.hasMore);\n this.cursor$$.next(r.nextCursor);\n }),\n map((r) => r.results),\n finalize(() => this.loading$$.next(false)),\n );\n }\n}\n","export const WEBLATE_COMPONENT_NAME = 'common/smb-invoicing';\nexport const RECURRING_INVOICES_FEATURE_FLAG_ID = 'grandfather_recurring_invoices';\n","export function formatInvoiceNumber(num: number | string): string {\n return `#${num.toString().padStart(6, '0')}`;\n}\n\nexport function isPastDue(date: Date): boolean {\n return date.getTime() < new Date().getTime();\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CollectionMethod, Currency, InvoiceOrigin, InvoiceStatus, LastPaymentStatus } from '@galaxy/billing';\nimport { BillingFrequency, formatDisplayPrice } from '@vendasta/shared';\nimport { isPastDue } from './invoice';\nimport { BadgeColor } from '@vendasta/galaxy/badge';\n\n@Pipe({\n name: 'price',\n standalone: true,\n})\nexport class PricePipe implements PipeTransform {\n transform(\n value: any,\n currency: Currency | string,\n billingFrequency?: BillingFrequency,\n isCents = true,\n translateZero = true,\n displaySymbol = true,\n ): any {\n return formatDisplayPrice(value, currency, billingFrequency, isCents, translateZero, displaySymbol);\n }\n}\n\n@Pipe({\n name: 'padInvoiceNumber',\n standalone: true,\n})\nexport class PadInvoiceNumberPipe implements PipeTransform {\n transform(invoiceNumber: number | string): string {\n const invoiceNumberVal = invoiceNumber || 0;\n return `#${invoiceNumberVal.toString().padStart(6, '0')}`;\n }\n}\n\nenum InvoiceSources {\n RENEWAL = 'Subscription renewal',\n RECURRING = 'Recurring invoice',\n MANUAL = 'Manual',\n}\n\n@Pipe({\n name: 'source',\n pure: true,\n standalone: false,\n})\nexport class InvoiceSourcePipe implements PipeTransform {\n transform(source: string): string {\n switch (source) {\n case InvoiceOrigin.MANUAL:\n return InvoiceSources.MANUAL;\n case InvoiceOrigin.TEMPLATE:\n return InvoiceSources.RECURRING;\n case InvoiceOrigin.RENEWAL:\n return InvoiceSources.RENEWAL;\n default:\n return source;\n }\n }\n}\n\nenum InvoiceCollectionMethod {\n EMAIL = 'Send email',\n AUTOMATIC = 'Automatically charge',\n MANUAL = 'Manually collect',\n}\n\n@Pipe({\n name: 'collectionMethod',\n pure: true,\n standalone: true,\n})\nexport class InvoiceCollectionMethodPipe implements PipeTransform {\n transform(collectionMethod: string): string {\n switch (collectionMethod) {\n case CollectionMethod.MANUAL_COLLECTION:\n return InvoiceCollectionMethod.MANUAL;\n case CollectionMethod.SEND_EMAIL:\n return InvoiceCollectionMethod.EMAIL;\n case CollectionMethod.CHARGE_AUTOMATICALLY:\n return InvoiceCollectionMethod.AUTOMATIC;\n default:\n return collectionMethod;\n }\n }\n}\n\nexport interface statusBadgeProps {\n glxyBadgeColor: BadgeColor;\n text: string;\n}\n\n@Pipe({\n name: 'statusBadgePipe',\n standalone: true,\n})\nexport class StatusBadgePipe implements PipeTransform {\n private readonly statusProperties: Map = new Map([\n [InvoiceStatus.DRAFT, { text: InvoiceStatus.DRAFT, glxyBadgeColor: 'light-grey' }],\n [InvoiceStatus.VOID, { text: InvoiceStatus.VOID, glxyBadgeColor: 'grey' }],\n [InvoiceStatus.PAID, { text: InvoiceStatus.PAID, glxyBadgeColor: 'green' }],\n [InvoiceStatus.DUE, { text: InvoiceStatus.DUE, glxyBadgeColor: 'blue' }],\n ['Past due', { text: 'Past due', glxyBadgeColor: 'yellow' }],\n ]);\n\n transform(invoice: any): statusBadgeProps {\n const s = this.statusProperties.get(invoice?.status);\n if (invoice?.status === InvoiceStatus.DUE) {\n return isPastDue(invoice.due) ? this.statusProperties.get('Past due') : s;\n }\n return s;\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'paymentStatusBadge',\n})\nexport class PaymentStatusBadgePipe implements PipeTransform {\n transform(status: string): { text: string; color: BadgeColor } {\n switch (status) {\n case LastPaymentStatus.SUCCESS:\n return { text: 'INVOICE.PAYMENT_STATUSES.SUCCEEDED', color: 'blue' };\n case LastPaymentStatus.PENDING:\n return { text: 'INVOICE.PAYMENT_STATUSES.PENDING', color: 'blue' };\n case LastPaymentStatus.FAILED:\n return { text: 'INVOICE.PAYMENT_STATUSES.FAILED', color: 'grey' };\n default:\n return { text: '', color: 'grey' };\n }\n }\n}\n\n@Pipe({\n standalone: true,\n name: 'disputeReasonDisplay',\n})\nexport class DisputeReasonDisplayPipe implements PipeTransform {\n transform(reason: string): string {\n switch (reason) {\n case 'bank_cannot_process':\n return 'DISPUTES.DISPUTE_REASON.BANK_CANNOT_PROCESS';\n case 'check_returned':\n return 'DISPUTES.DISPUTE_REASON.CHECK_RETURNED';\n case 'credit_not_processed':\n return 'DISPUTES.DISPUTE_REASON.CREDIT_NOT_PROCESSED';\n case 'customer_initiated':\n return 'DISPUTES.DISPUTE_REASON.CUSTOMER_INITIATED';\n case 'debit_not_authorized':\n return 'DISPUTES.DISPUTE_REASON.DEBIT_NOT_AUTHORIZED';\n case 'duplicate':\n return 'DISPUTES.DISPUTE_REASON.DUPLICATE';\n case 'fraudulent':\n return 'DISPUTES.DISPUTE_REASON.FRAUDULENT';\n case 'general':\n return 'DISPUTES.DISPUTE_REASON.GENERAL';\n case 'incorrect_account_details':\n return 'DISPUTES.DISPUTE_REASON.INCORRECT_ACCOUNT_DETAILS';\n case 'insufficient_funds':\n return 'DISPUTES.DISPUTE_REASON.INSUFFICIENT_FUNDS';\n case 'product_not_received':\n return 'DISPUTES.DISPUTE_REASON.PRODUCT_NOT_RECEIVED';\n case 'product_unacceptable':\n return 'DISPUTES.DISPUTE_REASON.PRODUCT_UNACCEPTABLE';\n case 'subscription_canceled':\n return 'DISPUTES.DISPUTE_REASON.SUBSCRIPTION_CANCELED';\n case 'unrecognized':\n return 'DISPUTES.DISPUTE_REASON.UNRECOGNIZED';\n default:\n return 'DISPUTES.DISPUTE_REASON.UNKNOWN';\n }\n }\n}\n","import { AsyncPipe, DatePipe, formatDate } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatPaginator, MatPaginatorIntl } from '@angular/material/paginator';\nimport {\n CollectionMethodAPI,\n Invoice,\n InvoiceDateField,\n InvoiceOrigin,\n InvoiceOriginAPI,\n InvoicePDFType,\n InvoiceService,\n InvoiceStatus,\n LastPaymentStatus,\n ListInvoicesDateFilter,\n ListInvoicesFilter,\n} from '@galaxy/billing';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport {\n CheckboxFilterControl,\n DateFilterControl,\n FilterControl,\n FilterGroup,\n FilterModule,\n FilterService,\n SearchFilterControl,\n} from '@vendasta/va-filter2';\nimport { BehaviorSubject, combineLatest, EMPTY, firstValueFrom, Observable, of, ReplaySubject } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\nimport { ChangeInvoiceStatusDialogComponent } from '../change-invoice-status-dialog/change-invoice-status-dialog.component';\nimport { ListInvoicesDataSource } from './invoice-table.data-source';\nimport { FeatureFlagService } from '@galaxy/partner';\nimport { RECURRING_INVOICES_FEATURE_FLAG_ID } from '../constants';\nimport { Router } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { MatTab, MatTabGroup } from '@angular/material/tabs';\nimport { VaMaterialTableModule } from '@vendasta/uikit';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n MatCell,\n MatCellDef,\n MatColumnDef,\n MatHeaderCell,\n MatHeaderCellDef,\n MatHeaderRow,\n MatHeaderRowDef,\n MatRow,\n MatRowDef,\n MatTable,\n} from '@angular/material/table';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport {\n InvoiceCollectionMethodPipe,\n PadInvoiceNumberPipe,\n PaymentStatusBadgePipe,\n PricePipe,\n StatusBadgePipe,\n} from '../shared/pipes';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { INDETERMINATE_MAX, MatPaginatorOfManyDisplayed, Filter2TableI18nModule } from '@vendasta/va-filter2-table';\n\ninterface InvoiceColumn {\n id: string;\n name: string;\n}\n\ninterface Status {\n name: string;\n status: InvoiceStatus | null;\n pastDue: boolean;\n}\n\nconst DESIRED_COLUMN_ORDER = [\n 'total',\n 'invoice_status',\n 'number',\n 'payment_status',\n 'customer',\n 'due',\n 'issued',\n 'collection',\n 'actions',\n];\n\n@Component({\n selector: 'smb-invoicing-invoice-table',\n templateUrl: './invoice-table.component.html',\n styleUrls: ['./invoice-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [FilterService, [{ provide: MatPaginatorIntl, useClass: MatPaginatorOfManyDisplayed }]],\n standalone: true,\n imports: [\n FilterModule,\n MatTabGroup,\n MatTab,\n VaMaterialTableModule,\n MatIcon,\n TranslateModule,\n AsyncPipe,\n MatTable,\n MatColumnDef,\n MatHeaderCell,\n MatCell,\n GalaxyBadgeModule,\n GalaxyTooltipModule,\n PadInvoiceNumberPipe,\n MatMenuTrigger,\n GalaxyPipesModule,\n MatMenu,\n MatMenuItem,\n DatePipe,\n GalaxyButtonLoadingIndicatorModule,\n MatIconButton,\n MatProgressSpinner,\n MatHeaderRow,\n MatRow,\n MatPaginator,\n MatButton,\n PricePipe,\n PaymentStatusBadgePipe,\n InvoiceCollectionMethodPipe,\n StatusBadgePipe,\n MatHeaderRowDef,\n MatRowDef,\n MatHeaderCellDef,\n MatCellDef,\n Filter2TableI18nModule,\n ],\n})\nexport class InvoiceTableComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('invoicePaginator', { static: true }) paginator: MatPaginator;\n @ViewChild('downloadAnchor') private downloadAnchor: ElementRef;\n @ViewChild('statusTabGroup') statusTabGroup;\n // The additional columns to be displayed alongside the static columns of the table. If not provided, only the static columns will be displayed.\n @Input() additionalColumns: string[];\n @Input() isAdmin = false; // Controls what actions are displayed on the table\n @Input() partnerId: string;\n\n @Input() filters: ListInvoicesFilter;\n @Input() dataAction = 'search-invoice';\n\n @Output() invoiceSelected = new EventEmitter();\n @Output() customerSelected = new EventEmitter();\n @Output() invoiceSettingSelected = new EventEmitter();\n\n confirmationModal = inject(OpenConfirmationModalService);\n\n public length$: Observable;\n public displayedColumns: string[];\n public displayedColumnsNames: string[];\n public dataSource: ListInvoicesDataSource;\n public filterGroup: FilterGroup;\n public statusFormControl: UntypedFormControl = new UntypedFormControl('');\n protected readonly InvoiceStatus = InvoiceStatus; // so we can use the enum in the template\n protected readonly PaymentStatus = LastPaymentStatus; // so we can use the enum in the template\n CollectionMethod = CollectionMethodAPI; // so we can use the enum in the template\n todayMidnight = new Date().setHours(0, 0, 0, 0); // set to the start of the calendar day\n\n // The tabs that appear above the invoice table which provide quick filtering by invoice status\n public tabs: Status[] = [];\n public statuses: Status[] = [];\n\n // Columns that are always displayed on the table\n staticColumns: InvoiceColumn[] = [];\n // All columns that can be displayed on the table\n allColumns: InvoiceColumn[] = [];\n\n private destroyed$: ReplaySubject = new ReplaySubject(1);\n private filters$: Observable;\n private invoiceFilters$: Observable;\n private inputFilters$$: ReplaySubject = new ReplaySubject(1);\n private inputFilters$: Observable = this.inputFilters$$.asObservable();\n private tabFilter$$: BehaviorSubject = new BehaviorSubject([this.tabs[0]]);\n private tabFilter$ = this.tabFilter$$.asObservable();\n\n duplicating$$ = new BehaviorSubject(false);\n InvoicePDFType = InvoicePDFType;\n\n PopoverPositions = PopoverPositions;\n\n loadingPaymentLink = signal<{ [invoiceId: string]: boolean }>({});\n\n constructor(\n private translate: TranslateService,\n private invoiceService: InvoiceService,\n private analyticsService: ProductAnalyticsService,\n private snackbarService: SnackbarService,\n public dialog: MatDialog,\n private featureFlagService: FeatureFlagService,\n private router: Router,\n private translateService: TranslateService,\n ) {\n this.dataSource = new ListInvoicesDataSource(this.invoiceService);\n this.length$ = this.dataSource.storedInvoices$.pipe(\n skip(1),\n withLatestFrom(this.dataSource.hasMore$),\n map(([items, hasMore]) => (hasMore ? INDETERMINATE_MAX : items.length)),\n );\n }\n\n ngOnInit(): void {\n this.staticColumns = [\n {\n id: 'total',\n name: this.translateService.instant('INVOICE.COLUMNS.TOTAL'),\n },\n {\n id: 'invoice_status',\n name: this.translateService.instant('INVOICE.COLUMNS.INVOICE_STATUS'),\n },\n {\n id: 'number',\n name: this.translateService.instant('INVOICE.COLUMNS.NUMBER'),\n },\n {\n id: 'payment_status',\n name: this.translateService.instant('INVOICE.COLUMNS.PAYMENT_STATUS'),\n },\n {\n id: 'due',\n name: this.translateService.instant('INVOICE.COLUMNS.DUE'),\n },\n {\n id: 'issued',\n name: this.translateService.instant('INVOICE.COLUMNS.ISSUED'),\n },\n {\n id: 'actions',\n name: this.translateService.instant('INVOICE.COLUMNS.ACTIONS'),\n },\n ];\n\n this.allColumns = [\n ...this.staticColumns,\n {\n id: 'collection',\n name: this.translateService.instant('INVOICE.COLUMNS.COLLECTION_METHOD'),\n },\n {\n id: 'customer',\n name: this.translateService.instant('INVOICE.COLUMNS.CUSTOMER'),\n },\n ];\n\n this.tabs = [\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.ALL_INVOICES'), status: null, pastDue: false },\n {\n name: this.translateService.instant('INVOICE.TABLE.FILTERS.DRAFT'),\n status: InvoiceStatus.DRAFT,\n pastDue: false,\n },\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.DUE'), status: InvoiceStatus.DUE, pastDue: false },\n {\n name: this.translateService.instant('INVOICE.TABLE.FILTERS.PAST_DUE'),\n status: InvoiceStatus.DUE,\n pastDue: true,\n },\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.PAID'), status: InvoiceStatus.PAID, pastDue: false },\n ];\n this.statuses = [\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.DUE'), status: InvoiceStatus.DUE, pastDue: false },\n {\n name: this.translateService.instant('INVOICE.TABLE.FILTERS.PAST_DUE'),\n status: InvoiceStatus.DUE,\n pastDue: true,\n },\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.PAID'), status: InvoiceStatus.PAID, pastDue: false },\n { name: this.translateService.instant('INVOICE.TABLE.FILTERS.VOID'), status: InvoiceStatus.VOID, pastDue: false },\n {\n name: this.translateService.instant('INVOICE.TABLE.FILTERS.DRAFT'),\n status: InvoiceStatus.DRAFT,\n pastDue: false,\n },\n ];\n\n this.initFilterGroup();\n this.initTabsControl();\n this.initInvoiceFilters();\n\n const columnsToDisplay = this.getColumnsToDisplay(this.additionalColumns);\n this.displayedColumns = columnsToDisplay.map((c: InvoiceColumn) => c.id);\n this.displayedColumnsNames = columnsToDisplay.map((c: InvoiceColumn) => c.name);\n\n this.filters$ = combineLatest([this.tabFilter$, this.inputFilters$, this.invoiceFilters$]).pipe(\n map(([tabFilter, inputFilters, invoiceFilters]) => {\n const pastDue = !!tabFilter?.find((f) => !!f?.pastDue);\n const statuses = this.computeStatusesFromFilters(tabFilter, inputFilters, invoiceFilters);\n\n return {\n ...invoiceFilters,\n merchantId: inputFilters.merchantId,\n customerId: inputFilters.customerId,\n statuses: statuses,\n pastDue: pastDue || invoiceFilters?.pastDue,\n origins: invoiceFilters?.origins,\n collectionMethods: invoiceFilters?.collectionMethods,\n };\n }),\n );\n\n this.initPaginator();\n this.filters$.pipe(takeUntil(this.destroyed$)).subscribe((filters) => {\n this.paginator.firstPage();\n this.dataSource.reload(filters, this.paginator.pageSize, this.paginator.pageIndex);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.inputFilters$$.next(changes.filters.currentValue);\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n\n initFilterGroup(): void {\n const issuedStartDateControl = new DateFilterControl('issuedStartDate', 'Issued start', null, {\n appliedValueMapper: (name, value) => ({\n name,\n value,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.ISSUED_START', {\n date: formatDate(value, 'mediumDate', 'en-US'),\n }),\n }),\n });\n\n const issuedEndDateControl = new DateFilterControl('issuedEndDate', 'Issued end', null, {\n appliedValueMapper: (name, value) => ({\n name,\n value,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.ISSUED_END', {\n date: formatDate(value, 'mediumDate', 'en-US'),\n }),\n }),\n });\n\n const createdStartDateControl = new DateFilterControl('createdStartDate', 'Created start', null, {\n appliedValueMapper: (name, value) => ({\n name,\n value,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.CREATED_START', {\n date: formatDate(value, 'mediumDate', 'en-US'),\n }),\n }),\n });\n\n const createdEndDateControl = new DateFilterControl('createdEndDate', 'Created end', null, {\n appliedValueMapper: (name, value) => ({\n name,\n value,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.CREATED_END', {\n date: formatDate(value, 'mediumDate', 'en-US'),\n }),\n }),\n });\n\n this.filterGroup = new FilterGroup('invoice-list')\n .addToolbarSection(\n new SearchFilterControl('number', this.translateService.instant('INVOICE.TABLE.FILTERS.INVOICE_NUMBER_HASH')),\n )\n .addSection(this.translateService.instant('INVOICE.TABLE.FILTERS.ISSUED_DATE'), [\n issuedStartDateControl,\n issuedEndDateControl,\n ])\n .addSection(this.translateService.instant('INVOICE.TABLE.FILTERS.CREATED_DATE'), [\n createdStartDateControl,\n createdEndDateControl,\n ])\n .prependSection(\n this.translateService.instant('INVOICE.TABLE.FILTERS.PAYMENT_STATUS'),\n this.buildLastPaymentStatusCheckboxControls(),\n )\n .prependSection(\n this.translateService.instant('INVOICE.TABLE.FILTERS.STATUS'),\n this.buildStatusCheckboxControls(),\n );\n\n const disableCreatedControls = () => {\n createdStartDateControl.disable({ emitEvent: false });\n createdEndDateControl.disable({ emitEvent: false });\n };\n\n const disableIssuedControls = () => {\n issuedStartDateControl.disable({ emitEvent: false });\n issuedEndDateControl.disable({ emitEvent: false });\n };\n\n const enableCreatedControls = () => {\n createdStartDateControl.enable({ emitEvent: false });\n createdEndDateControl.enable({ emitEvent: false });\n };\n\n const enableIssuedControls = () => {\n issuedStartDateControl.enable({ emitEvent: false });\n issuedEndDateControl.enable({ emitEvent: false });\n };\n\n combineLatest([\n issuedStartDateControl.valueChanges.pipe(startWith(issuedStartDateControl.value)),\n issuedEndDateControl.valueChanges.pipe(startWith(issuedEndDateControl.value)),\n ]).subscribe(([issuedStart, issuedEnd]) => {\n if (issuedStart || issuedEnd) {\n disableCreatedControls();\n } else {\n enableCreatedControls();\n }\n });\n\n combineLatest([\n createdStartDateControl.valueChanges.pipe(startWith(createdStartDateControl.value)),\n createdEndDateControl.valueChanges.pipe(startWith(createdEndDateControl.value)),\n ]).subscribe(([createdStart, createdEnd]) => {\n if (createdStart || createdEnd) {\n disableIssuedControls();\n } else {\n enableIssuedControls();\n }\n });\n\n if (this.isAdmin) {\n this.featureFlagService\n .batchGetStatus(this.partnerId, '', [RECURRING_INVOICES_FEATURE_FLAG_ID])\n .pipe(\n catchError(() => of({ grandfather_recurring_invoices: false })),\n map((resp) => resp[RECURRING_INVOICES_FEATURE_FLAG_ID]),\n )\n .subscribe((isOnRecurringInvoiceFeatureFlag) => {\n const sourceFilters = [\n new CheckboxFilterControl(\n 'renewal',\n this.translateService.instant('INVOICE.TABLE.FILTERS.SUBSCRIPTION_RENEWALS'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.SUBSCRIPTION_RENEWALS'),\n }),\n },\n ),\n new CheckboxFilterControl(\n 'template',\n this.translateService.instant('INVOICE.TABLE.FILTERS.RECURRING_INVOICE'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.RECURRING_INVOICE'),\n }),\n },\n ),\n new CheckboxFilterControl('manual', this.translateService.instant('INVOICE.TABLE.FILTERS.MANUAL'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.MANUAL'),\n }),\n }),\n ];\n this.filterGroup\n .addSection(\n 'Source',\n isOnRecurringInvoiceFeatureFlag ? sourceFilters : [sourceFilters[0], sourceFilters[2]],\n )\n .addSection(this.translateService.instant('INVOICE.TABLE.FILTERS.COLLECTION_METHOD'), [\n new CheckboxFilterControl(\n 'chargeAutomatically',\n this.translateService.instant('INVOICE.TABLE.FILTERS.AUTOMATICALLY_CHARGE'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.AUTOMATICALLY_CHARGE'),\n }),\n },\n ),\n new CheckboxFilterControl(\n 'sendEmail',\n this.translateService.instant('INVOICE.TABLE.FILTERS.SEND_EMAIL'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.SEND_EMAIL'),\n }),\n },\n ),\n new CheckboxFilterControl(\n 'manualCollection',\n this.translateService.instant('INVOICE.TABLE.FILTERS.MANUALLY_COLLECT'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.MANUALLY_COLLECT'),\n }),\n },\n ),\n ]);\n });\n }\n }\n\n buildStatusCheckboxControls(): FilterControl[] {\n const c = [\n new CheckboxFilterControl('due', this.translateService.instant('INVOICE.TABLE.FILTERS.DUE'), false, {\n appliedValueMapper: (name) => ({ name, label: this.translateService.instant('INVOICE.TABLE.FILTERS.DUE') }),\n }),\n new CheckboxFilterControl('pastDue', this.translateService.instant('INVOICE.TABLE.FILTERS.PAST_DUE'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.PAST_DUE'),\n }),\n }),\n new CheckboxFilterControl('paid', this.translateService.instant('INVOICE.TABLE.FILTERS.PAID'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.PAID'),\n }),\n }),\n ];\n if (this.isAdmin) {\n c.push(\n new CheckboxFilterControl('void', this.translateService.instant('INVOICE.TABLE.FILTERS.VOID'), false, {\n appliedValueMapper: (name) => ({ name, label: this.translateService.instant('INVOICE.TABLE.FILTERS.VOID') }),\n }),\n new CheckboxFilterControl('draft', this.translateService.instant('INVOICE.TABLE.FILTERS.DRAFT'), false, {\n appliedValueMapper: (name) => ({ name, label: this.translateService.instant('INVOICE.TABLE.FILTERS.DRAFT') }),\n }),\n );\n }\n return c;\n }\n\n buildLastPaymentStatusCheckboxControls(): FilterControl[] {\n const c = [\n new CheckboxFilterControl(\n 'paymentStatusSuccess',\n this.translateService.instant('INVOICE.TABLE.FILTERS.SUCCESS'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.SUCCESS'),\n }),\n },\n ),\n new CheckboxFilterControl(\n 'paymentStatusPending',\n this.translateService.instant('INVOICE.TABLE.FILTERS.PENDING'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.PENDING'),\n }),\n },\n ),\n new CheckboxFilterControl(\n 'paymentStatusFailed',\n this.translateService.instant('INVOICE.TABLE.FILTERS.FAILED'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('INVOICE.TABLE.FILTERS.FAILED'),\n }),\n },\n ),\n ];\n return c;\n }\n\n computeStatusesFromFilters(\n tabFilter: Status[],\n inputFilter: ListInvoicesFilter,\n invoiceFilter: ListInvoicesFilter,\n ): InvoiceStatus[] {\n const statuses = tabFilter?.filter((f) => !!f?.status).map((f) => f.status);\n if (statuses.length <= 0) {\n return invoiceFilter.statuses.length > 0 ? invoiceFilter.statuses : inputFilter.statuses;\n }\n return statuses;\n }\n\n initTabsControl(): void {\n this.statusFormControl.valueChanges.pipe(takeUntil(this.destroyed$), debounceTime(300)).subscribe((statuses) => {\n this.tabFilter$$.next(statuses);\n this.statusTabGroup.selectedIndex === 0\n ? this.filterGroup.prependSection(\n this.translateService.instant('INVOICE.TABLE.FILTERS.STATUS'),\n this.buildStatusCheckboxControls(),\n )\n : this.filterGroup.removeSection(this.translateService.instant('INVOICE.TABLE.FILTERS.STATUS'));\n });\n }\n\n initInvoiceFilters(): void {\n this.invoiceFilters$ = this.filterGroup.valueChanges.pipe(\n startWith(this.filterGroup.value),\n debounceTime(300),\n distinctUntilChanged(),\n map(() => {\n const filterValues = this.filterGroup.value;\n const statuses = this.buildStatusFilterValues(\n filterValues.draft,\n filterValues.due,\n filterValues.paid,\n filterValues.void,\n filterValues.pastDue,\n );\n const pastDue = !!filterValues.pastDue;\n const origins = this.buildOriginsFilterValues(filterValues.manual, filterValues.renewal, filterValues.template);\n const collectionMethods = this.buildCollectionMethodsFilterValues(\n filterValues.manualCollection,\n filterValues.chargeAutomatically,\n filterValues.sendEmail,\n );\n const lastPaymentStatuses = this.buildLastPaymentStatusFilterValues(\n filterValues.paymentStatusSuccess,\n filterValues.paymentStatusPending,\n filterValues.paymentStatusFailed,\n );\n\n let dateFilter: ListInvoicesDateFilter | null = null;\n if (!!filterValues.issuedStartDate || !!filterValues.issuedEndDate) {\n dateFilter = createDateFilter(\n filterValues.issuedStartDate,\n filterValues.issuedEndDate,\n InvoiceDateField.ISSUED,\n );\n } else if (!!filterValues.createdStartDate || !!filterValues.createdEndDate) {\n dateFilter = createDateFilter(\n filterValues.createdStartDate,\n filterValues.createdEndDate,\n InvoiceDateField.CREATED,\n );\n }\n return {\n number: filterValues.number,\n statuses: statuses,\n pastDue: pastDue,\n dateFilter: dateFilter,\n origins: origins,\n collectionMethods: collectionMethods,\n lastPaymentStatuses: lastPaymentStatuses,\n };\n }),\n );\n }\n\n buildStatusFilterValues(\n filterDraft,\n filterDue,\n filterPaid,\n filterVoid,\n filterPastDue: FilterControl,\n ): InvoiceStatus[] {\n const statuses: InvoiceStatus[] = [];\n if (filterDraft) {\n statuses.push(InvoiceStatus.DRAFT);\n }\n if (filterDue) {\n statuses.push(InvoiceStatus.DUE);\n }\n if (filterPaid) {\n statuses.push(InvoiceStatus.PAID);\n }\n if (filterVoid) {\n statuses.push(InvoiceStatus.VOID);\n }\n if (filterPastDue) {\n // pastDue requires the DUE status\n statuses.push(InvoiceStatus.DUE);\n }\n return statuses;\n }\n\n buildLastPaymentStatusFilterValues(filterSuccess, filterPending, filterFailed: FilterControl): LastPaymentStatus[] {\n const lastPaymentStatuses: LastPaymentStatus[] = [];\n if (filterSuccess) {\n lastPaymentStatuses.push(LastPaymentStatus.SUCCESS);\n }\n if (filterPending) {\n lastPaymentStatuses.push(LastPaymentStatus.PENDING);\n }\n if (filterFailed) {\n lastPaymentStatuses.push(LastPaymentStatus.FAILED);\n }\n return lastPaymentStatuses;\n }\n\n buildOriginsFilterValues(filterManual, filterRenewal, filterTemplate: FilterControl): string[] {\n const origins: string[] = [];\n if (filterManual) {\n origins.push(InvoiceOriginAPI.MANUAL);\n }\n if (filterRenewal) {\n origins.push(InvoiceOriginAPI.RENEWAL);\n }\n if (filterTemplate) {\n origins.push(InvoiceOriginAPI.TEMPLATE);\n }\n return origins;\n }\n\n buildCollectionMethodsFilterValues(filterManual, filterAuto, filterEmail: FilterControl): string[] {\n const collectionMethods: string[] = [];\n if (filterManual) {\n collectionMethods.push(CollectionMethodAPI.MANUAL_COLLECTION);\n }\n if (filterAuto) {\n collectionMethods.push(CollectionMethodAPI.CHARGE_AUTOMATICALLY);\n }\n if (filterEmail) {\n collectionMethods.push(CollectionMethodAPI.SEND_EMAIL);\n }\n return collectionMethods;\n }\n\n initPaginator(): void {\n this.paginator.page.pipe(takeUntil(this.destroyed$), withLatestFrom(this.filters$)).subscribe(([, filters]) => {\n this.dataSource.updatePage(filters, this.paginator.pageSize, this.paginator.pageIndex);\n });\n }\n\n deleteInvoice(invoice: Invoice): void {\n this.filters$\n .pipe(\n take(1),\n switchMap((filters) => {\n return this.confirmationModal\n .openModal({\n type: 'warn',\n title: this.translate.instant('INVOICE.DELETE_INVOICE_MODAL.TITLE', { invoiceNumber: invoice.number }),\n message: this.translate.instant('INVOICE.DELETE_INVOICE_MODAL.SUBTITLE'),\n confirmButtonText: this.translate.instant('INVOICE.DELETE_INVOICE_MODAL.DELETE_INVOICE'),\n actionOnEnterKey: false,\n })\n .pipe(\n switchMap((action) => (action ? this.invoiceService.delete(filters.merchantId, invoice.id) : EMPTY)),\n tap((deleted) => {\n if (deleted) {\n this.paginator.pageIndex = 0;\n this.dataSource.reload(filters, this.paginator.pageSize, this.paginator.pageIndex);\n }\n }),\n );\n }),\n )\n .subscribe();\n }\n\n public changeInvoiceStatus(invoice: Invoice): void {\n this.filters$\n .pipe(\n switchMap((filters) => {\n return this.dialog\n .open(ChangeInvoiceStatusDialogComponent, {\n width: '650px',\n data: {\n merchantId: filters.merchantId,\n invoiceId: invoice.id,\n invoiceNumber: invoice.number,\n },\n } as MatDialogConfig)\n .afterClosed();\n }),\n withLatestFrom(this.filters$),\n take(1),\n )\n .subscribe(([isSuccess, filters]) => {\n if (isSuccess) {\n this.paginator.pageIndex = 0;\n this.dataSource.reload(filters, this.paginator.pageSize, this.paginator.pageIndex);\n }\n });\n }\n\n public consumeEvent(event: Event): void {\n event.stopPropagation();\n }\n\n public setFilter(index: number): void {\n this.statusFormControl.setValue([this.tabs[index]]);\n }\n\n private sortColumns(columns: InvoiceColumn[]): InvoiceColumn[] {\n return columns.sort((a, b) => DESIRED_COLUMN_ORDER.indexOf(a.id) - DESIRED_COLUMN_ORDER.indexOf(b.id));\n }\n\n private getColumnsToDisplay(columnIds: string[]): InvoiceColumn[] {\n if (!(columnIds?.length > 0)) {\n return this.sortColumns(this.staticColumns);\n }\n const additionalColumns = this.allColumns.filter((c) => columnIds.includes(c.id));\n const selectedColumns = [...this.staticColumns, ...additionalColumns];\n return this.sortColumns(selectedColumns);\n }\n\n public selectInvoice(invoice: Invoice): void {\n this.invoiceSelected.emit(invoice.id);\n }\n\n public selectCustomer(customerId: string): void {\n this.customerSelected.emit(customerId);\n }\n\n public generatePDF(documentType: InvoicePDFType, invoice: Invoice): void {\n this.filters$\n .pipe(\n take(1),\n switchMap((filters) => this.invoiceService.generatePDF(filters.merchantId, invoice.id, documentType)),\n )\n .subscribe((fileResponse) => {\n const filename = `${documentType}.pdf`;\n this.downloadFile(fileResponse, filename);\n });\n }\n\n public async copyShortenedLink(invoiceId: string): Promise {\n this.loadingPaymentLink.update((state) => ({ ...state, [invoiceId]: true }));\n let trackingProps = {};\n\n try {\n const filters: ListInvoicesFilter = await firstValueFrom(this.filters$);\n trackingProps = { invoiceId: invoiceId, partnerId: filters.merchantId, accountGroupId: filters.customerId };\n const url: string = await firstValueFrom(this.invoiceService.generateShortLink(filters.merchantId, invoiceId));\n if (!document.hasFocus()) {\n window.focus();\n }\n return await navigator.clipboard.writeText(url).then(() => {\n this.analyticsService.trackEvent('billing', 'invoice-table', 'copy-payment-link-success', 0, trackingProps);\n this.snackbarService.openSuccessSnack(\n this.translateService.instant('INVOICE.TABLE.SNACK_BAR.PAYMENT_LINK_COPIED'),\n );\n });\n } catch (e) {\n this.analyticsService.trackEvent('billing', 'invoice-table', 'copy-payment-link-fail', 0, {\n ...trackingProps,\n error: e.message,\n });\n this.snackbarService.openErrorSnack(this.translateService.instant('INVOICE.TABLE.SNACK_BAR.FAILED_TO_GENERATE'));\n } finally {\n this.loadingPaymentLink.update((state) => ({ ...state, [invoiceId]: false }));\n }\n }\n\n public exportCSV(): void {\n this.filters$\n .pipe(\n take(1),\n switchMap((filters) => this.invoiceService.exportCSV(filters.merchantId, filters)),\n )\n .subscribe((fileResponse) => {\n this.downloadFile(fileResponse, 'invoices.csv');\n });\n }\n\n private downloadFile(file: Blob, filename: string): void {\n const url = window.URL.createObjectURL(file);\n const link = this.downloadAnchor.nativeElement;\n link.href = url;\n link.download = filename;\n link.click();\n window.URL.revokeObjectURL(url);\n }\n\n invoiceSettingsClicked(customerId: string): void {\n this.invoiceSettingSelected.emit(customerId);\n }\n\n duplicateInvoice(invoice: Invoice): void {\n this.duplicating$$.next(true);\n this.filters$\n .pipe(\n switchMap((filters) => this.invoiceService.duplicate(filters.merchantId, invoice.id)),\n take(1),\n )\n .subscribe((invoiceID) => {\n this.invoiceSelected.emit(invoiceID);\n this.duplicating$$.next(false);\n });\n }\n\n displayIcon(origin: InvoiceOrigin): boolean {\n return this.isAdmin && (origin === InvoiceOrigin.RENEWAL || origin === InvoiceOrigin.TEMPLATE);\n }\n\n updateOriginTooltip(origin: InvoiceOrigin): string {\n switch (origin) {\n case InvoiceOrigin.RENEWAL:\n return this.translateService.instant('INVOICE.TABLE.TOOLTIP.INVOICE_FROM_SUBSCRIPTION');\n case InvoiceOrigin.TEMPLATE:\n return this.translateService.instant('INVOICE.TABLE.TOOLTIP.INVOICE_FROM_RECURRING');\n default:\n return '';\n }\n }\n\n navToCreateCreditNote(invoiceId: string): void {\n this.router.navigate(['billing', 'credit-note', 'create'], {\n queryParams: { invoiceId: invoiceId },\n });\n }\n}\n\nfunction createDateFilter(\n startDateValue: string,\n endDateValue: string,\n dateField: InvoiceDateField,\n): ListInvoicesDateFilter {\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n if (startDateValue) {\n startDate = new Date(startDateValue);\n startDate.setUTCHours(0, 0, 0, 0);\n }\n if (endDateValue) {\n endDate = new Date(endDateValue);\n endDate.setUTCHours(23, 59, 59, 999);\n }\n\n return {\n dateGte: startDate || null,\n dateLte: endDate || null,\n dateField,\n };\n}\n","@if (isAdmin) {\n \n @for (tab of tabs; track tab) {\n \n }\n \n}\n\n \n
\n
\n @if (isAdmin) {\n \n }\n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n
{{ 'INVOICE.TABLE.TOTAL' | translate }}\n \n {{ row.total | price: row.currency : null : true : false }}\n \n Total\n {{ row.total }}\n {{ 'INVOICE.TABLE.INVOICE_STATUS' | translate }}\n @if (row | statusBadgePipe; as status) {\n
\n {{ status?.text }}\n @if (\n row.status === InvoiceStatus.DRAFT &&\n row.collectionMethod !== CollectionMethod.MANUAL_COLLECTION &&\n row.autoAdvance > todayMidnight\n ) {\n \n schedule_send\n \n }\n
\n }\n
{{ 'INVOICE.TABLE.NUMBER' | translate }}\n
\n {{ row.number | padInvoiceNumber }}\n @if (displayIcon(row.origin)) {\n \n loop\n \n }\n
\n
{{ 'INVOICE.TABLE.PAYMENT_STATUS' | translate }}\n @if (row.lastPaymentStatus) {\n \n {{ (row.lastPaymentStatus | paymentStatusBadge).text | translate }}\n \n }\n {{ 'INVOICE.TABLE.ACCOUNT' | translate }}\n @if (isAdmin) {\n \n
\n {{\n {\n address: row.customerAddress.address,\n city: row.customerAddress.city,\n state: row.customerAddress.state,\n } | glxyAddress\n }}\n
\n \n \n \n \n } @else {\n
\n {{ row.customerName || row.customerId }}\n
\n
\n {{\n {\n address: row.customerAddress.address,\n city: row.customerAddress.city,\n state: row.customerAddress.state,\n } | glxyAddress\n }}\n
\n }\n
{{ 'INVOICE.TABLE.DUE' | translate }}\n {{ row.due | date }}\n {{ 'INVOICE.TABLE.ISSUED' | translate }}\n {{ row.issued | date }}\n {{ 'INVOICE.TABLE.COLLECTION_METHOD' | translate }}\n {{ row.collectionMethod | collectionMethod }}\n \n \n \n \n \n @if (isAdmin) {\n
\n \n {{ 'INVOICE.TABLE.ACTIONS.EDIT' | translate }}\n \n
\n }\n \n {{ 'INVOICE.TABLE.ACTIONS.DOWNLOAD_RECEIPT' | translate }}\n \n \n @if (isAdmin && row.status === InvoiceStatus.DRAFT) {\n
\n
\n \n
\n
\n }\n @if (isAdmin && row.status === InvoiceStatus.DUE) {\n
\n
\n \n
\n
\n }\n @if (isAdmin) {\n
\n @if ((duplicating$$ | async) === false) {\n
\n \n
\n }\n
\n @if (duplicating$$ | async) {\n \n }\n
\n
\n }\n \n @if (isAdmin && (row.status === InvoiceStatus.DUE || row.status === InvoiceStatus.PAID)) {\n \n {{ 'BILLING.INVOICE_PAGE.ISSUE_CREDIT_NOTE' | translate }}\n \n }\n
\n
\n
\n
\n @if ((length$ | async) === 0 && (dataSource.loading$ | async) === false) {\n \n }\n \n
\n
\n
\n\n\n","{\n \"PAYMENT_FORM\": {\n \"PAY_INVOICE\": \"Pay invoice\",\n \"LATEST_PROCESSING_ERROR\": {\n \"NO_ACCOUNT\": \"The bank account provided is closed\",\n \"INSUFFICIENT_FUNDS\": \"Insufficient funds in the bank account provided\",\n \"DEBIT_NOT_AUTHORIZED\": \"Debit payment was unauthorized for the back account provided\",\n \"UNKNOWN\": \"An error occurred processing payment for the back account provided\"\n }\n },\n \"PAYMENTS_ONBOARDING\": {\n \"CTA\": {\n \"TITLE\": \"Receive payments from your customers\",\n \"SUBTITLE\": \"Set up Vendasta Payments\",\n \"DESCRIPTION\": {\n \"PAYOUTS_PAGE\": \"Once you've started collecting payments using Vendasta Payments, your balance is paid out regularly. Use this page to view your current balance and the amount, status, and expected arrival date of payouts.\"\n }\n },\n \"UNSUPPORTED_REGION\": {\n \"TITLE\": \"Accept payments through the platform\",\n \"DESCRIPTION\": \"Contact us to determine if Vendasta Payments is available in your area and start accepting payments from your customers\",\n \"CONTACT_US\": \"Contact us\"\n }\n },\n \"INVOICE\": {\n \"INVOICE_FROM\": \"Invoice from\",\n \"BILLED_TO\": \"Billed to\",\n \"INVOICE\": \"Invoice\",\n \"INVOICE_PAID\": \"INVOICE PAID\",\n \"INVOICE_PROCESSING\": \"Processing payment\",\n \"INVOICE_PROCESSING_DETAILS\": \"You will be notified once the payment is confirmed, which may take up to 5 days. If the payment is confirmed after the due date it will still be considered as on time.\",\n \"PAYMENT_FAILED\": \"Payment attempt failed\",\n \"VOIDED\": \"VOIDED\",\n \"DOWNLOAD_AS\": \"Download as\",\n \"DOWNLOAD_RECEIPT\": \"Download receipt\",\n \"DOWNLOAD_INVOICE\": \"Download invoice\",\n \"DESCRIPTION\": \"Description\",\n \"QUANTITY\": \"Quantity\",\n \"PRICE\": \"Price\",\n \"TAX\": \"Tax\",\n \"TOTAL\": \"Total\",\n \"SUBTOTAL\": \"Subtotal\",\n \"AMOUNT_PAID\": \"Amount paid\",\n \"AMOUNT_DUE\": \"Amount due\",\n \"DISCOUNT\": \"Discount\",\n \"DISCOUNTS\": \"Discounts\",\n \"CREDITS_APPLIED\": \"Credits applied\",\n \"ADJUSTED_INVOICE_AMOUNT\": \"Adjusted invoice amount\",\n \"REFUND\": \"Refund\",\n \"QUESTIONS\": \"If you have any questions, contact\",\n \"POWERED_BY\": \"Powered by\",\n \"PARTNERS_WITH\": \"partners with Stripe to provide secure invoicing and payment processing.\",\n \"SCHEDULED_TO_SEND\": \"Scheduled to send on {{date}}\",\n \"ON\": \"on\",\n \"TABLE\": {\n \"EXPORT\": \"Export as CSV\",\n \"TOTAL\": \"Total\",\n \"INVOICE_STATUS\": \"Invoice Status\",\n \"NUMBER\": \"Number\",\n \"PAYMENT_STATUS\": \"Payment Status\",\n \"ACCOUNT\": \"Account\",\n \"DUE\": \"Due\",\n \"ISSUED\": \"Issued\",\n \"COLLECTION_METHOD\": \"Collection Method\",\n \"ACCOUNT_ACTIONS\": {\n \"VIEW_ACCOUNT\": \"View account\",\n \"EDIT_SETTINGS\": \"Edit billing settings\"\n },\n \"ACTIONS\": {\n \"EDIT\": \"Edit invoice\",\n \"DOWNLOAD_RECEIPT\": \"Download receipt\",\n \"DOWNLOAD_INVOICE\": \"Download invoice\",\n \"DELETE_DRAFT\": \"Delete draft\",\n \"CHANGE_STATUS\": \"Change invoice status\",\n \"DUPLICATE\": \"Duplicate invoice\",\n \"COPY_PAYMENT_LINK\": \"Copy payment link\"\n },\n \"STATUS_CHANGE_SUCCESS\": \"Successfully changed invoice status\",\n \"ERRORS\": {\n \"STATUS_CHANGE_FAILED\": \"Failed to change invoice status\",\n \"INVALID_STATUS\": \"Can only void invoices with due status\",\n \"PAYMENT_PENDING\": \"Cannot void invoice with pending payment\"\n },\n \"COLUMNS\": {\n \"TOTAL\": \"Total\",\n \"INVOICE_STATUS\": \"Invoice status\",\n \"NUMBER\": \"Number\",\n \"PAYMENT_STATUS\": \"Payment status\",\n \"DUE\": \"Due\",\n \"ISSUED\": \"Issued\",\n \"COLLECTION_METHOD\": \"Collection method\",\n \"ACTIONS\": \"Actions\",\n \"CUSTOMER\": \"Customer\"\n },\n \"FILTERS\": {\n \"ALL_INVOICES\": \"All invoices\",\n \"DRAFT\": \"Draft\",\n \"DUE\": \"Due\",\n \"PAST_DUE\": \"Past due\",\n \"PAID\": \"Paid\",\n \"VOID\": \"Void\",\n \"ISSUED_START\": \"Issued start: {{date}}\",\n \"ISSUED_END\": \"Issued end: {{date}}\",\n \"CREATED_START\": \"Created start: {{date}}\",\n \"CREATED_END\": \"Created end: {{date}}\",\n \"NUMBER\": \"Number\",\n \"ISSUED_DATE\": \"Issued date\",\n \"CREATED_DATE\": \"Created date\",\n \"PAYMENT_STATUS\": \"Payment status\",\n \"STATUS\": \"Status\",\n \"SUBSCRIPTION_RENEWALS\": \"Subscription renewals\",\n \"RECURRING_INVOICE\": \"Recurring invoice\",\n \"MANUAL\": \"Manual\",\n \"COLLECTION_METHOD\": \"Collection method\",\n \"AUTOMATICALLY_CHARGE\": \"Automatically charge\",\n \"SEND_EMAIL\": \"Send email\",\n \"MANUALLY_COLLECT\": \"Manually collect\",\n \"SUCCESS\": \"Success\",\n \"FAILED\": \"Failed\",\n \"PENDING\": \"Pending\",\n \"INVOICE_NUMBER_HASH\": \"Invoice #\"\n },\n \"SNACK_BAR\": {\n \"PAYMENT_LINK_COPIED\": \"Payment link copied to clipboard\",\n \"FAILED_TO_GENERATE\": \"Failed to generate payment link\"\n },\n \"TOOLTIP\": {\n \"INVOICE_FROM_SUBSCRIPTION\": \"Invoice generated from subscription renewal on the account\",\n \"INVOICE_FROM_RECURRING\": \"Invoice generated from a recurring invoice\"\n }\n },\n \"DELETE_INVOICE_MODAL\": {\n \"TITLE\": \"Delete invoice {{invoiceNumber}}?\",\n \"SUBTITLE\": \"This action cannot be undone.\",\n \"DELETE_INVOICE\": \"Delete invoice\"\n },\n \"PAYMENT_STATUSES\": {\n \"SUCCEEDED\": \"Succeeded\",\n \"FAILED\": \"Failed\",\n \"PENDING\": \"Pending\"\n }\n },\n \"PAYMENT_METHOD_SELECTOR\": {\n \"ADD_PAYMENT_METHOD\": \"+ Add payment method\",\n \"EDIT\": \"Edit\",\n \"USE_AS_DEFAULT\": \"Use as default\",\n \"EXPIRES\": \"expires\",\n \"DEFAULT\": \"Default\",\n \"EXPIRED\": \"Expired\",\n \"CARD_TITLE\": \"Debit or credit card\",\n \"ACH_TITLE\": \"ACH direct debit transfer\",\n \"ACSS_TITLE\": \"Canadian pre-authorized debit\",\n \"PAYMENT_METHODS\": \"Payment methods\",\n \"NO_PAYMENT_METHODS\": \"No payment methods on file\",\n \"NEW_PAYMENT_METHOD\": \"New payment method\",\n \"ADD_CARD\": \"Add new card\",\n \"CANCEL\": \"Cancel\",\n \"SAVE\": \"Save\",\n \"ERROR_INCORRECT_NUMBER\": \"You have entered an incorrect card number\",\n \"ERROR_CARD_DECLINED\": \"Your card was declined\",\n \"ERROR_ADDING_PAYMENT_METHOD\": \"Error adding a new payment method\",\n \"ERROR_REMOVING_PAYMENT_METHOD\": \"Failed to remove payment method\"\n },\n \"BANK_ACCOUNT\": {\n \"TITLE\": \"Receiving payouts\",\n \"SUBTITLE\": \"Connect your bank account to receive payouts\",\n \"REMOVE\": \"Remove\",\n \"REMOVED\": \"Removed account\",\n \"REMOVED_TOOLTIP\": \"The bank account that received this payout is no longer connected\",\n \"VIEW_PAYOUTS\": \"View payouts\",\n \"ADD_BANK_ACCOUNT\": \"Add bank account\",\n \"DEFAULT\": \"Default\",\n \"SET_DEFAULT\": \"Set default\",\n \"CANCEL_BUTTON\": \"Cancel\",\n \"ADD\": {\n \"TITLE\": \"Receiving bank account\",\n \"PAYOUT_DESCRIPTION\": \"Connect a bank account to receive payouts\",\n \"BANK_ACCOUNT\": \"Country of bank account\",\n \"CURRENCY\": \"Currency\",\n \"ACCOUNT_DETAILS\": \"Account details\",\n \"REFERENCE_CHEQUE\": \"You can reference a check for these numbers\",\n \"TRANSIT_NUMBER\": \"Transit number\",\n \"TRANSIT_NUMBER_REQUIRED\": \"Transit number is required\",\n \"TRANSIT_NUMBER_INVALID\": \"Transit number must be 5 digits\",\n \"INSTITUITON_NUMBER\": \"Institution number\",\n \"INSTITUITON_NUMBER_REQUIRED\": \"Institution number is required\",\n \"INSTITUITON_NUMBER_INVALID\": \"Institution number must be 3 digits\",\n \"ACCOUNT_NUMBER\": \"Account number\",\n \"ACCOUNT_NUMBER_REQUIRED\": \"Account number is required\",\n \"ACCOUNT_NUMBER_INVALID\": \"Account number must be {{required_digits}} digits\",\n \"ROUTING_NUMBER\": \"Routing number\",\n \"ROUTING_NUMBER_REQUIRED\": \"Routing number is required\",\n \"ROUTING_NUMBER_INVALID\": \"Routing number must be 9 digits\",\n \"IBAN\": \"IBAN\",\n \"IBAN_REQUIRED\": \"IBAN is required\",\n \"IBAN_INVALID\": \"IBAN must be {{required_length}} characters\",\n \"BSB\": \"BSB\",\n \"BSB_REQUIRED\": \"BSB is required\",\n \"BSB_INVALID\": \"BSB must be 6 characters\",\n \"SORT_CODE\": \"Sort code\",\n \"SORT_CODE_REQUIRED\": \"Sort code is required\",\n \"SORT_CODE_INVALID\": \"Sort code must be in the format '12-34-56' or '123456'\",\n \"ADD_BANK_ACCOUNT_BUTTON\": \"Add bank account\",\n \"SAVE_BANK_ACCOUNT_BUTTON\": \"Save bank account\",\n \"CANCEL_BUTTON\": \"Cancel\",\n \"SUCCESS_SNACK\": \"Successfully added bank account\",\n \"ERROR_SNACK\": \"Failed to add bank account\",\n \"COUNTRY\": {\n \"UNITED_STATES\": \"United States\",\n \"CANADA\": \"Canada\",\n \"CZECH_REPUBLIC\": \"Czech Republic\",\n \"AUSTRALIA\": \"Australia\",\n \"NEW_ZEALAND\": \"New Zealand\",\n \"UNITED_KINGDOM\": \"United Kingdom\",\n \"UNITED_ARAB_EMIRATES\": \"United Arab Emirates\",\n \"GERMANY\": \"Germany\"\n },\n \"CURRENCY_OPTION\": {\n \"CAD\": \"CAD - Canadian dollar\",\n \"USD\": \"USD - U.S. dollar\"\n }\n }\n },\n \"REFUND_DIALOG\": {\n \"TITLE\": \"Refund payment\",\n \"TO\": \"To\",\n \"DESCRIPTION\": \"Refund will appear on the account's statement within 5-10 business days. Fees from initial payment will not be refunded.\",\n \"ISSUE_CREDIT_NOTE\": \"Refunds can also be issued on a credit note for a paid invoice. If you wish to create a credit note instead, you can do so on the invoice.\",\n \"ISSUE_CREDIT_NOTE_CTA\": \"View invoice {{invoiceNumber}}\",\n \"WARNING_ACH_TITLE\": \"Refunding now may result in refunding twice\",\n \"DESCRIPTION_ACH\": \"ACH Direct Debit payments can be disputed for 60 days after payment. If the dispute is lost, the account will be refunded again. Learn more about ACH Direct Debit refunds with Stripe.\",\n \"WARNING_ACSS_TITLE\": \"Refunding now may result in refunding twice\",\n \"DESCRIPTION_ACSS\": \"Pre-authorized debit payments can be disputed 90 days after payment. If the dispute is lost, the account will be refunded again. Learn more about PADs refunds with Stripe.\",\n \"BUTTON\": \"Refund\",\n \"AMOUNT\": \"Refund amount\",\n \"DATE\": \"Date\",\n \"BALANCE\": \"Vendasta Payments balance\",\n \"REASON\": \"Reason\",\n \"SELECT_REASON\": \"Select a reason\",\n \"PAYMENT_REFUNDED\": \"Payment refunded\",\n \"FAILED_TO_REFUND\": \"Failed to refund payment: {{err}}\",\n \"REFUND_CANNOT_EXCEED_AMOUNT\": \"Refund cannot be more than\",\n \"NEGATIVE_BALANCE_TITLE\": \"Negative balance\",\n \"NEGATIVE_BALANCE_DESCRIPTION\": \"The following refund will result in a negative balance in Vendasta payments. Future payments from your customer accounts will cover the negative balance.\",\n \"CONTACT_SUPPORT\": \"Contact support\",\n \"REFUND_MUST_BE_GREATER_THAN_ZERO\": \"Refund must be more than\",\n \"DUPLICATE\": \"Duplicate\",\n \"FRAUDULENT\": \"Fraudulent\",\n \"REQUESTED_BY_CUSTOMER\": \"Requested by customer\"\n },\n \"REFUND_REASON\": {\n \"UNSET\": \"Unset\",\n \"DUPLICATE\": \"Duplicate\",\n \"FRAUDULENT\": \"Fraudulent\",\n \"REQUESTED_BY_CUSTOMER\": \"Requested by customer\",\n \"UNKNOWN\": \"Unknown\"\n },\n \"PAYMENTS_PAGE\": {\n \"PAGE_TITLE\": \"Payments\",\n \"DISPUTE_ALERT\": \"You have open payment disputes that require action.\",\n \"DISPUTE_ACTION\": \"View open disputes\",\n \"MANAGE_DISPUTES_IN_STRIPE\": \"Manage disputes in Stripe\",\n \"AMOUNT\": \"Amount\",\n \"FEE\": \"Fee\",\n \"NET\": \"Net\",\n \"STATUS\": \"Status\",\n \"PAYMENT_METHOD\": \"Payment method\",\n \"DESCRIPTION\": \"Description\",\n \"CUSTOMER\": \"Account\",\n \"ORDER\": \"Order\",\n \"ORDER_REFUND\": \"Refund - Order\",\n \"INVOICE\": \"Invoice\",\n \"INVOICE_REFUND\": \"Refund - Invoice\",\n \"DISPUTE\": \"Dispute adjustment\",\n \"REFUND_FAILURE\": \"Refund failure adjustment\",\n \"PAYOUT_FAILURE\": \"Payout failure\",\n \"NO_PAYMENTS_TITLE\": \"You haven't received any payments yet\",\n \"NO_PAYMENTS_BODY\": \"You can receive payments from your customers via invoices you've sent, as well as the purchases they make via the Shopping Cart in your Store\",\n \"NO_PAYMENTS_PRIMARY_CTA\": \"Manage invoices\",\n \"NO_PAYMENTS_SECONDARY_CTA\": \"Manage store\",\n \"REFUND\": \"Refund\",\n \"ISSUE_CREDIT_NOTE\": \"Issue credit note\",\n \"CREATED\": \"Created\"\n },\n \"PAYMENTS_EXPORT\": {\n \"EXPORT_BUTTON\": \"Export as CSV\",\n \"DIALOG\": {\n \"TITLE\": \"Export payment data\",\n \"ERROR_MESSAGE\": \"Failed to build report\",\n \"PATIENCE_MESSAGE\": \"It may take a few minutes for the download to be ready after the export starts\",\n \"DATE_RANGE\": \"Date range\",\n \"DATE_RANGE_OPTIONS\": {\n \"LAST_30_DAYS\": \"Last 30 days\",\n \"LAST_60_DAYS\": \"Last 60 days\",\n \"LAST_90_DAYS\": \"Last 90 days\",\n \"LAST_MONTH\": \"Last month\",\n \"LAST_QUARTER\": \"Last quarter\",\n \"CUSTOM\": \"Custom\"\n },\n \"CURRENCY\": \"Currency\",\n \"ALL_CURRENCIES\": \"All currencies\",\n \"CURRENCY_HINT\": \"Only payments with the selected currency will be exported\",\n \"REPORT_DATA_HINT\": \"This export will also include information on payouts and Stripe account balance\",\n \"DATE_HINT\": \"Dates are based on Coordinated Universal Time (UTC)\",\n \"CANCEL\": \"Cancel\",\n \"EXPORT\": \"Export\"\n }\n },\n \"PAYOUTS_PAGE\": {\n \"PAGE_TITLE\": \"Payouts\",\n \"CURRENT_BALANCE\": {\n \"TITLE\": \"Upcoming payouts\",\n \"TOOLTIP\": \"The total pending and available balances on the account.\",\n \"PAYOUT_SCHEDULE_DAILY\": \"Payouts scheduled daily ({{ delay }}-day rolling basis)\",\n \"PAYOUT_SCHEDULE_WEEKLY\": \"Payouts scheduled weekly ({{ delay }}-day rolling basis)\",\n \"PAYOUT_SCHEDULE_MONTHLY\": \"Payouts scheduled monthly ({{ delay }}-day rolling basis)\",\n \"PAYOUT_SCHEDULE_MANUAL\": \"Payouts processed manually\"\n },\n \"IN_TRANSIT\": {\n \"TITLE\": \"In transit\",\n \"TOOLTIP\": \"The amount that has been paid and is in transit to your bank account\",\n \"NEXT_PAYOUT\": \"Next arrival:\"\n },\n \"RETAIL_STATUS_ALERT\": {\n \"ACTION_TITLE\": \"View Vendasta Payments\"\n },\n \"DEFER_TO_STRIPE\": {\n \"TITLE\": \"Manage payouts in Stripe\",\n \"SUBTITLE\": \"View and manage your payout information in your connected Stripe account\",\n \"CTA\": \"Go to my Stripe account\",\n \"TABLE\": \"Payouts received will appear in your Stripe account connected to Vendasta Payments\"\n },\n \"COLUMNS\": {\n \"DATE\": \"Date\",\n \"STATUS\": \"Status\",\n \"BANK\": \"Bank\",\n \"AMOUNT\": \"Amount\",\n \"VIEW\": \"View\"\n }\n },\n \"PAYMENT_PAGE\": {\n \"PAGE_TITLE\": \"Payment\",\n \"PAYMENT_DETAILS\": \"Payment Details\",\n \"ACCEPT_DISPUTE\": \"Accept dispute\",\n \"PROVIDE_EVIDENCE\": \"Provide Evidence\",\n \"VIEW_EVIDENCE\": \"View Evidence\",\n \"REFUND\": \"Refund\",\n \"NEEDS_RESPONSE\": \"Needs Response\",\n \"NEEDS_RESPONSE_DESCRIPTION\": \"Deal with dispute by\",\n \"GENERAL_ERROR\": \"Sorry, something went wrong\",\n \"BUSINESS_NOT_FOUND\": \"Business does not exist\",\n \"ERROR_TITLE\": \"Failed to get payment\",\n \"NOT_FOUND\": \"Payment does not exist\",\n \"DATE\": \"Date\",\n \"AMOUNT\": \"Amount\",\n \"FEE\": \"Fee\",\n \"APPLICATION_FEE\": \"Application fee\",\n \"STRIPE_FEE\": \"Stripe fee\",\n \"NET\": \"Net\",\n \"STATUS\": \"Status\",\n \"DESCRIPTION\": \"Description\",\n \"REFUNDED\": \"Refunded\",\n \"PAYMENT_METHOD\": \"Payment method\",\n \"FAILURE_REASON\": \"Failure Reason\",\n \"RETRY_PAYMENT_DESCRIPTION\": \"To retry a failed payment, try charging the original invoice again.\",\n \"GO_TO_INVOICE\": \"Go to invoice\"\n },\n \"PAYOUT_DETAILS_PAGE\": {\n \"PAGE_TITLE\": \"{{ payoutDate }} Payout\",\n \"PAYOUT_DETAILS_CARD_TITLE\": \"Payout details\",\n \"PAYMENT_RECORDS_CARD_TITLE\": \"Payment records\",\n \"BACK_BUTTON_TEXT\": \"Back to payouts\",\n \"FIELD_NAMES\": {\n \"STATUS\": \"Status\",\n \"BANK_ACCOUNT\": \"Bank\",\n \"AMOUNT\": \"Amount\",\n \"ESTIMATED\": \"Estimated\",\n \"COMPLETED\": \"Completed\"\n }\n },\n \"PAYMENT_STATUS_BADGE\": {\n \"SUCCEEDED\": \"Succeeded\",\n \"FAILED\": \"Failed\",\n \"PENDING\": \"Pending\",\n \"DISPUTED\": \"Disputed\",\n \"REFUNDED\": \"Refunded\",\n \"PARTIALLY_REFUNDED\": \"Partially refunded\",\n \"DISPUTE_WARNING_NEEDS_RESPONSE\": \"Inquiry needs response\",\n \"DISPUTE_WARNING_UNDER_REVIEW\": \"Inquiry under review\",\n \"DISPUTE_WARNING_CLOSED\": \"Inquiry closed\",\n \"DISPUTE_NEEDS_RESPONSE\": \"Dispute needs response\",\n \"DISPUTE_UNDER_REVIEW\": \"Dispute under review\",\n \"DISPUTE_CHARGE_REFUNDED\": \"Charge refunded\",\n \"DISPUTE_LOST\": \"Dispute lost\",\n \"DISPUTE_WON\": \"Dispute won\",\n \"UNKNOWN\": \"Unknown\",\n \"DISPUTE_DEADLINE_MISSED\": \"Dispute deadline missed\",\n \"DISPUTE_DUE_IN_HOURS\": \"{{hours}} hours to respond\",\n \"DISPUTE_DUE_IN_HOUR\": \"{{hours}} hour to respond\",\n \"DISPUTE_DUE_IN_DAYS\": \"{{days}} days to respond\",\n \"DISPUTE_DUE_IN_DAY\": \"{{days}} day to respond\",\n \"TOOLTIP\": {\n \"DISPUTE_WARNING_NEEDS_RESPONSE\": \"Some card networks initiate a preliminary inquiry phase before creating a formal dispute. Inquiries can be resolved without incurring a dispute fee by either providing satisfactory evidence that answers the dispute type for the inquiry or by issuing a full refund.\",\n \"DISPUTE_WARNING_UNDER_REVIEW\": \"Some card networks initiate a preliminary inquiry phase before creating a formal dispute. Evidence for this dispute was submitted during its inquiry phase.\",\n \"DISPUTE_WARNING_CLOSED\": \"Some card networks initiate a preliminary inquiry phase before creating a formal dispute. If an inquiry has been open for 120 days without escalation to a chargeback, the inquiry will be marked as closed.\"\n }\n },\n \"DISPUTES\": {\n \"TABLE\": {\n \"COLUMN_HEADERS\": {\n \"AMOUNT\": \"Amount\",\n \"STATUS\": \"Status\",\n \"REASON\": \"Reason\",\n \"CREATED\": \"Created\",\n \"RESPONSE_DUE\": \"Response due\",\n \"DESCRIPTION\": \"Description\",\n \"CUSTOMER\": \"Account\"\n }\n },\n \"DISPUTE_STATUS\": {\n \"NEEDS_RESPONSE\": \"Dispute needs response\",\n \"UNDER_REVIEW\": \"Dispute under review\",\n \"LOST\": \"Dispute lost\",\n \"WON\": \"Dispute won\",\n \"WARNING_CLOSED\": \"Inquiry closed\",\n \"WARNING_NEEDS_RESPONSE\": \"Inquiry needs response\",\n \"WARNING_UNDER_REVIEW\": \"Inquiry under review\"\n },\n \"DISPUTE_REASON\": {\n \"BANK_CANNOT_PROCESS\": \"Bank cannot process\",\n \"CHECK_RETURNED\": \"Check returned\",\n \"CREDIT_NOT_PROCESSED\": \"Credit not processed\",\n \"CUSTOMER_INITIATED\": \"Customer initiated\",\n \"DEBIT_NOT_AUTHORIZED\": \"Debit not authorized\",\n \"DUPLICATE\": \"Duplicate\",\n \"FRAUDULENT\": \"Fraudulent\",\n \"GENERAL\": \"General\",\n \"INCORRECT_ACCOUNT_DETAILS\": \"Incorrect account details\",\n \"INSUFFICIENT_FUNDS\": \"Insufficient funds\",\n \"PRODUCT_NOT_RECEIVED\": \"Product not received\",\n \"PRODUCT_UNACCEPTABLE\": \"Product unacceptable\",\n \"SUBSCRIPTION_CANCELED\": \"Subscription canceled\",\n \"UNRECOGNIZED\": \"Unrecognized\",\n \"UNKNOWN\": \"Unknown\"\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\n\nexport interface ScriptModel {\n name: string;\n src: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScriptLoaderService {\n private loaded = false;\n\n public load(): Observable {\n const script = {\n name: 'stripe',\n src: 'https://js.stripe.com/v3/',\n };\n return new Observable((observer: Observer) => {\n if (this.loaded) {\n observer.next(script);\n observer.complete();\n } else {\n const scriptElement = document.createElement('script');\n scriptElement.type = 'text/javascript';\n scriptElement.src = script.src;\n scriptElement.onload = () => {\n this.loaded = true;\n observer.next(script);\n observer.complete();\n };\n\n scriptElement.onerror = () => {\n observer.error(\"Couldn't load script \" + script.src);\n };\n document.getElementsByTagName('body')[0].appendChild(scriptElement);\n }\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PaymentMethodType } from '@galaxy/billing';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Transforms a `PaymentMethodType` enum value from to its corresponding title string.\n * It is useful for displaying user-friendly names of payment methods in UI components.\n *\n * @example\n * ```html\n * \n *
{{ paymentMethod | paymentTypeToTitle }}
\n * \n * ```\n */\n@Pipe({\n standalone: true,\n name: 'paymentTypeToTitle',\n})\nexport class PaymentTypeToTitlePipe implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n typeToTranslationKey = {\n [PaymentMethodType.CARD]: 'PAYMENT_METHOD_SELECTOR.CARD_TITLE',\n [PaymentMethodType.ACH_DEBIT]: 'PAYMENT_METHOD_SELECTOR.ACH_TITLE',\n [PaymentMethodType.ACSS_DEBIT]: 'PAYMENT_METHOD_SELECTOR.ACSS_TITLE',\n };\n\n transform(value: PaymentMethodType): string {\n return this.translateService.instant(this.typeToTranslationKey[value]) || value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Transforms a Map into an array of its keys.\n *\n * It is useful for iterating over keys of a Map in Angular templates.\n *\n * @example\n * ```html\n * \n *
\n * Key: {{ key }}, Value: {{ paymentMethods.get(key) }}\n *
\n * \n * ```\n */\n@Pipe({\n standalone: true,\n name: 'keys',\n})\nexport class KeysPipe implements PipeTransform {\n transform(value: Map): K[] {\n return Array.from(value.keys());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatGridListModule } from '@angular/material/grid-list';\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 { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyDatepickerModule } from '@vendasta/galaxy/datepicker';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxySnackbarModule } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { VaFilterModule, VaMaterialTableModule, VaStencilsModule } from '@vendasta/uikit';\nimport { FilterModule } from '@vendasta/va-filter2';\nimport En from './assets/i18n/en_devel.json';\nimport { ChangeInvoiceStatusDialogComponent } from './change-invoice-status-dialog/change-invoice-status-dialog.component';\nimport { WEBLATE_COMPONENT_NAME } from './constants';\nimport { InvoiceService } from './invoice.service';\nimport { InvoiceComponent } from './invoice/invoice.component';\nimport { PaymentFormComponent } from './invoice/payment-form/payment-form.component';\nimport { ScriptLoaderService } from './payment-method/stripe.service';\nimport { RecurringInvoiceTableComponent } from './recurring-invoice-table/recurring-invoice-table.component';\nimport { InvoiceSourcePipe, PadInvoiceNumberPipe, PaymentStatusBadgePipe, PricePipe } from './shared/pipes';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { PaymentTypeToTitlePipe } from './payment-method/select-payment-method-dialog/payment-type-to-title.pipe';\nimport { KeysPipe } from './payment-method/select-payment-method-dialog/keys.pipe';\n\n@NgModule({\n declarations: [\n ChangeInvoiceStatusDialogComponent,\n InvoiceSourcePipe,\n InvoiceComponent,\n RecurringInvoiceTableComponent,\n PaymentFormComponent,\n ],\n imports: [\n CommonModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: En,\n }),\n MatListModule,\n MatButtonModule,\n MatIconModule,\n MatInputModule,\n MatTableModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatDialogModule,\n MatTooltipModule,\n RouterModule,\n GalaxySnackbarModule,\n VaFilterModule,\n VaStencilsModule,\n VaMaterialTableModule,\n FilterModule,\n MatRadioModule,\n FormsModule,\n MatTabsModule,\n ReactiveFormsModule,\n GalaxyInputModule,\n MatToolbarModule,\n GalaxyPipesModule,\n GalaxyDatepickerModule,\n MatSelectModule,\n GalaxyWrapModule,\n MatCardModule,\n MatGridListModule,\n MatProgressBarModule,\n GalaxyBadgeModule,\n GalaxyEmptyStateModule,\n GalaxyPipesModule,\n GalaxyFormFieldModule,\n GalaxyTooltipModule,\n PaymentStatusBadgePipe,\n PadInvoiceNumberPipe,\n GalaxyButtonLoadingIndicatorModule,\n PaymentTypeToTitlePipe,\n KeysPipe,\n PricePipe,\n ],\n exports: [\n PricePipe,\n InvoiceComponent,\n RecurringInvoiceTableComponent,\n PaymentStatusBadgePipe,\n PaymentTypeToTitlePipe,\n KeysPipe,\n InvoiceSourcePipe,\n ],\n providers: [InvoiceService, ScriptLoaderService],\n})\nexport class SMBInvoicingModule {}\n","import { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PaymentMethod, PaymentMethodType } from '@galaxy/billing';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n imports: [NgTemplateOutlet, MatIconModule, SlicePipe, TranslateModule],\n selector: 'smb-invoicing-payment-method-display',\n styleUrls: ['./payment-method-display.component.scss'],\n templateUrl: './payment-method-display.component.html',\n})\nexport class PaymentMethodDisplayComponent {\n PaymentMethodType = PaymentMethodType;\n\n @Input() paymentMethod: PaymentMethod;\n\n readonly CARD_BRAND_TO_ICON_SRC = {\n Visa: 'https://vstatic-prod.apigateway.co/partner-center-client/assets/images/icons/visa.png',\n 'American Express': 'https://vstatic-prod.apigateway.co/partner-center-client/assets/images/icons/amex.png',\n Mastercard: 'https://vstatic-prod.apigateway.co/partner-center-client/assets/images/icons/mastercard.png',\n Discover: 'https://vstatic-prod.apigateway.co/partner-center-client/assets/images/icons/discover.png',\n };\n}\n","\n \n @switch (paymentMethod?.type) {\n @case (PaymentMethodType.CARD) {\n @if (CARD_BRAND_TO_ICON_SRC[paymentMethod?.details?.cardType?.id]; as iconURL) {\n \n } @else {\n credit_card \n }\n **** **** **** {{ paymentMethod?.details?.lastFourDigits }}\n ({{ 'PAYMENT_METHOD_SELECTOR.EXPIRES' | translate }} {{ paymentMethod?.details?.expiryMonth }}/{{\n paymentMethod?.details?.expiryYear?.toString() | slice: -2\n }})\n }\n @case (PaymentMethodType.ACH_DEBIT) {\n \n }\n @case (PaymentMethodType.ACSS_DEBIT) {\n \n }\n }\n \n account_balance \n ******** {{ paymentMethod?.details?.lastFourDigits }}\n \n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { Intent, PaymentMethod, PaymentMethodService, PaymentService, PaymentMethodType } from '@galaxy/billing';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, ReplaySubject, from } from 'rxjs';\nimport { catchError, finalize, map, take, withLatestFrom } from 'rxjs/operators';\nimport { SelectPaymentMethodDialogData, SelectedPaymentMethod } from '../payment-method';\nimport { ScriptLoaderService, ScriptModel } from '../stripe.service';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { AsyncPipe, NgClass, NgForOf, NgIf } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { PaymentMethodDisplayComponent } from '../payment-method-display/payment-method-display.component';\nimport { PaymentTypeToTitlePipe } from './payment-type-to-title.pipe';\nimport { KeysPipe } from './keys.pipe';\nimport { MatDividerModule } from '@angular/material/divider';\n\ndeclare let Stripe; // : stripe.StripeStatic;\n\n@Component({\n imports: [\n NgIf,\n NgForOf,\n NgClass,\n AsyncPipe,\n FormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n MatRadioModule,\n MatButtonModule,\n MatIconModule,\n MatDividerModule,\n MatProgressSpinnerModule,\n GalaxyBadgeModule,\n PaymentMethodDisplayComponent,\n TranslateModule,\n PaymentTypeToTitlePipe,\n KeysPipe,\n ],\n providers: [TranslateService],\n templateUrl: './select-payment-method-dialog.component.html',\n styleUrls: ['select-payment-method-dialog.scss'],\n})\nexport class SelectPaymentMethodDialogComponent implements OnInit, AfterViewInit, OnDestroy {\n PaymentMethodType = PaymentMethodType;\n\n @ViewChild('cardElement') cardElement: ElementRef;\n\n accountId: string;\n merchantId: string;\n customerId: string;\n userId: string;\n stripeKey: string;\n submitDialogText: string;\n defaultPaymentMethod: string;\n canRemoveSelectedMethod: boolean;\n hideExistingMethods: boolean;\n\n paymentMethod: UntypedFormControl;\n isAddingMethod$$ = new ReplaySubject(1);\n scriptModel$: Observable;\n intent$: Observable;\n paymentMethods$$ = new ReplaySubject>();\n paymentMethods$ = this.paymentMethods$$.asObservable();\n selectedMethod$$ = new ReplaySubject();\n\n stripe;\n card;\n error: string;\n cardHandler = this.onChange.bind(this);\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private stripeScriptLoader: ScriptLoaderService,\n private paymentService: PaymentService,\n private paymentMethodService: PaymentMethodService,\n public dialogRef: MatDialogRef,\n private alertService: SnackbarService,\n @Inject(MAT_DIALOG_DATA) public data: SelectPaymentMethodDialogData,\n private translateService: TranslateService,\n ) {\n this.accountId = data?.accountId;\n this.merchantId = data?.merchantId;\n this.customerId = data?.customerId;\n this.userId = data?.userId;\n this.stripeKey = data?.stripeKey;\n this.submitDialogText = data?.submitDialogText;\n this.paymentMethods$$.next(data?.paymentMethods);\n this.isAddingMethod$$.next(false);\n this.canRemoveSelectedMethod = data?.canRemoveSelectedMethod ?? false;\n this.hideExistingMethods = data?.hideExistingMethods ?? false;\n\n this.defaultPaymentMethod = data?.defaultPaymentMethod;\n if (!this.defaultPaymentMethod) {\n // assume the first entry in the map is the default payment method\n const paymentMethodsMap = data?.paymentMethods;\n if (paymentMethodsMap && paymentMethodsMap.size > 0) {\n const firstEntry = paymentMethodsMap.values().next().value;\n if (firstEntry && firstEntry.length > 0) {\n this.defaultPaymentMethod = firstEntry[0]?.details?.id || '';\n }\n }\n }\n }\n\n ngOnInit(): void {\n this.scriptModel$ = this.stripeScriptLoader.load();\n this.selectedMethod$$.next(this.defaultPaymentMethod);\n this.paymentMethod = new UntypedFormControl(\n this.defaultPaymentMethod ? this.defaultPaymentMethod : null,\n Validators.required,\n );\n this.paymentMethod.markAsTouched();\n this.intent$ = this.paymentService.prepareRetailPayment(this.merchantId, this.customerId);\n\n if (!this.submitDialogText) {\n this.submitDialogText = this.translateService.instant('PAYMENT_METHOD_SELECTOR.SAVE');\n }\n }\n\n ngOnDestroy(): void {\n this.card.removeEventListener('change', this.cardHandler);\n this.card.destroy();\n }\n\n ngAfterViewInit(): void {\n this.scriptModel$.pipe(take(1)).subscribe(() => {\n this.stripe = Stripe(this.stripeKey, {\n stripeAccount: this.accountId,\n });\n const elements = this.stripe.elements();\n this.card = elements.create('card');\n this.card.mount(this.cardElement.nativeElement);\n this.card.addEventListener('change', this.cardHandler);\n });\n }\n\n selectMethod(paymentMethodId: string): void {\n this.selectedMethod$$.next(paymentMethodId);\n }\n\n save(): void {\n if (this.paymentMethod?.value) {\n this.dialogRef.close({ paymentMethodId: this.paymentMethod.value, newMethod: false });\n } else {\n this.addPaymentMethod();\n }\n }\n\n onChange({ error }: any): void {\n this.error = error?.message ? error.message : '';\n this.changeDetector.detectChanges();\n }\n\n addPaymentMethod(): void {\n this.isAddingMethod$$.next(true);\n this.intent$.pipe(take(1)).subscribe((intent) => this.confirmCard(intent.stripeClientSecret));\n }\n\n handleConfirmCardError(error): void {\n const stripeErrorCodeMessage = {\n incorrect_number: 'PAYMENT_METHOD_SELECTOR.ERROR_INCORRECT_NUMBER',\n card_declined: 'PAYMENT_METHOD_SELECTOR.ERROR_CARD_DECLINED',\n };\n const errorMessage = stripeErrorCodeMessage[error?.code] || 'PAYMENT_METHOD_SELECTOR.ERROR_ADDING_PAYMENT_METHOD';\n this.alertService.openErrorSnack(errorMessage);\n }\n\n confirmCard(clientSecret: string): void {\n const data = {\n payment_method: {\n card: this.card,\n },\n };\n if (this.userId) {\n data.payment_method['metadata'] = {\n userID: this.userId,\n };\n }\n from(this.stripe.confirmCardSetup(clientSecret, data))\n .pipe(\n map((response: any) => {\n if (response?.error) {\n throw response?.error;\n }\n return response;\n }),\n catchError((err) => {\n this.handleConfirmCardError(err);\n throw err;\n }),\n take(1),\n finalize(() => this.isAddingMethod$$.next(false)),\n )\n .subscribe((response: any) =>\n this.dialogRef.close({ paymentMethodId: response?.setupIntent?.payment_method, newMethod: true }),\n );\n }\n\n removeMethod(method: PaymentMethod, event: Event): void {\n event.stopPropagation();\n\n this.paymentMethodService\n .deletePaymentMethod(this.merchantId, method.details?.id)\n .pipe(\n withLatestFrom(this.paymentMethods$),\n map(([_, paymentMethodsMap]) => {\n const type = method.type;\n const methods = paymentMethodsMap.get(type) || [];\n\n if (!methods) {\n return;\n }\n\n const index = methods.findIndex((m) => m.details?.id === method.details?.id);\n if (index > -1) {\n methods.splice(index, 1);\n methods.length === 0 ? paymentMethodsMap.delete(type) : paymentMethodsMap.set(type, methods);\n }\n\n this.paymentMethods$$.next(new Map(paymentMethodsMap));\n return;\n }),\n take(1),\n )\n .subscribe();\n }\n}\n","

{{ 'PAYMENT_METHOD_SELECTOR.PAYMENT_METHODS' | translate }}

\n\n \n \n \n 0)\">\n {{ 'PAYMENT_METHOD_SELECTOR.NO_PAYMENT_METHODS' | translate }}\n \n \n\n \n

{{ type | paymentTypeToTitle }}

\n \n \n \n
\n \n \n \n @if (paymentMethod?.expired) {\n \n {{ 'PAYMENT_METHOD_SELECTOR.EXPIRED' | translate }}\n \n } @else if (paymentMethod?.default) {\n \n {{ 'PAYMENT_METHOD_SELECTOR.DEFAULT' | translate }}\n \n }\n \n \n\n \n \n delete\n \n \n
\n \n
\n
\n
\n
\n
\n

{{ 'PAYMENT_METHOD_SELECTOR.NEW_PAYMENT_METHOD' | translate }}

\n \n add_card \n {{ 'PAYMENT_METHOD_SELECTOR.ADD_CARD' | translate }}\n \n
\n
\n \n
\n
 {{ error }}
\n
\n
\n
\n\n \n \n\n\n\n \n\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { PaymentMethod, PaymentMethodService, PaymentMethodType } from '@galaxy/billing';\nimport { firstValueFrom } from 'rxjs';\nimport { SelectPaymentMethodDialogData, SelectedPaymentMethod } from '../payment-method';\nimport { SelectPaymentMethodDialogComponent } from '../select-payment-method-dialog/select-payment-method-dialog.component';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { NgClass, NgForOf, NgIf } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { PaymentMethodDisplayComponent } from '../payment-method-display/payment-method-display.component';\nimport { PaymentTypeToTitlePipe } from '../select-payment-method-dialog/payment-type-to-title.pipe';\nimport { KeysPipe } from '../select-payment-method-dialog/keys.pipe';\n\n@Component({\n imports: [\n NgIf,\n NgForOf,\n NgClass,\n MatButtonModule,\n MatIconModule,\n MatDividerModule,\n MatFormFieldModule,\n GalaxyBadgeModule,\n PaymentMethodDisplayComponent,\n TranslateModule,\n PaymentTypeToTitlePipe,\n KeysPipe,\n ],\n providers: [TranslateService],\n selector: 'smb-invoicing-payment-method-selector',\n templateUrl: './payment-method-selector.component.html',\n styleUrls: ['./payment-method-selector.component.scss'],\n})\nexport class PaymentMethodSelectorComponent implements OnChanges, OnInit {\n @Input() stripeConnectId: string;\n @Input() merchantId: string;\n @Input() customerId: string;\n @Input() userId: string;\n @Input() stripeKey: string;\n @Input() editButton: string;\n @Input() makeDefaultButton?: string;\n @Input() addCardButton: string;\n @Input() isEditable: boolean;\n @Input() hintText: string;\n @Input() emptyCardHintText: string;\n @Input() submitDialogText: string;\n @Input() paymentMethods: PaymentMethod[];\n @Input() defaultPaymentMethod: PaymentMethod;\n @Input() canRemoveSelectedMethod: boolean;\n @Input() showAllMethods: boolean;\n\n @Output() selectedPaymentMethod: EventEmitter = new EventEmitter();\n\n sortedMethods: Map;\n\n constructor(\n public dialog: MatDialog,\n private paymentMethodService: PaymentMethodService,\n private cd: ChangeDetectorRef,\n private snackbarService: SnackbarService,\n private translateService: TranslateService,\n ) {}\n\n ngOnInit(): void {\n if (!this.makeDefaultButton) {\n this.makeDefaultButton = this.translateService.instant('PAYMENT_METHOD_SELECTOR.USE_AS_DEFAULT');\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.paymentMethods?.previousValue !== changes.paymentMethods?.currentValue) {\n this.sortedMethods = this._groupAndSortPaymentMethods(this.paymentMethods);\n }\n }\n\n public openPaymentMethodDialog(): void {\n this.dialog\n .open(SelectPaymentMethodDialogComponent, {\n width: '450px',\n data: {\n accountId: this.stripeConnectId,\n merchantId: this.merchantId,\n customerId: this.customerId,\n userId: this.userId,\n stripeKey: this.stripeKey,\n paymentMethods: this.sortedMethods,\n submitDialogText: this.submitDialogText,\n canRemoveSelectedMethod: this.canRemoveSelectedMethod,\n defaultPaymentMethod: this.defaultPaymentMethod?.details?.id,\n } as SelectPaymentMethodDialogData,\n autoFocus: false,\n })\n .afterClosed()\n .subscribe((m) => {\n this.selectedPaymentMethod.emit(m);\n });\n }\n\n public addPaymentMethodDialog(): void {\n this.dialog\n .open(SelectPaymentMethodDialogComponent, {\n width: '450px',\n data: {\n accountId: this.stripeConnectId,\n merchantId: this.merchantId,\n customerId: this.customerId,\n userId: this.userId,\n stripeKey: this.stripeKey,\n submitDialogText: this.submitDialogText,\n canRemoveSelectedMethod: false,\n hideExistingMethods: true,\n } as SelectPaymentMethodDialogData,\n autoFocus: false,\n })\n .afterClosed()\n .subscribe((m) => {\n this.selectedPaymentMethod.emit(m);\n });\n }\n\n public async makePaymentMethodDefault(paymentMethod: PaymentMethod): Promise {\n this.selectedPaymentMethod.emit({ paymentMethodId: paymentMethod.details?.id, newMethod: false });\n }\n\n public async deletePaymentMethod(paymentMethod: PaymentMethod): Promise {\n try {\n await firstValueFrom(this.paymentMethodService.deletePaymentMethod(this.merchantId, paymentMethod.details?.id));\n } catch {\n this.snackbarService.openErrorSnack('PAYMENT_METHOD_SELECTOR.ERROR_REMOVING_PAYMENT_METHOD');\n return;\n }\n\n const type = paymentMethod.type;\n const methods = this.sortedMethods.get(type) || [];\n\n if (!methods) {\n return;\n }\n\n const index = methods.findIndex((m) => m.details?.id === paymentMethod.details?.id);\n if (index > -1) {\n methods.splice(index, 1);\n methods.length === 0 ? this.sortedMethods.delete(type) : this.sortedMethods.set(type, methods);\n }\n\n this.sortedMethods = new Map(this.sortedMethods);\n this.cd.detectChanges();\n return;\n }\n\n private _typeSortPriority(type: PaymentMethodType): number {\n switch (type) {\n case PaymentMethodType.CARD:\n return 1;\n case PaymentMethodType.ACH_DEBIT:\n return 2;\n case PaymentMethodType.ACSS_DEBIT:\n return 3;\n default:\n return 4;\n }\n }\n\n private _groupAndSortPaymentMethods(methods: PaymentMethod[]): Map {\n const grouped = new Map();\n\n methods.sort((a, b) => {\n const typePriorityA = this._typeSortPriority(a.type);\n const typePriorityB = this._typeSortPriority(b.type);\n if (typePriorityA !== typePriorityB) {\n return typePriorityA - typePriorityB;\n }\n const isADefault = a.details?.id === this.defaultPaymentMethod?.details?.id ? 1 : 0;\n const isBDefault = b.details?.id === this.defaultPaymentMethod?.details?.id ? 1 : 0;\n return isBDefault - isADefault;\n });\n\n methods.forEach((method) => {\n const group = grouped.get(method.type) || [];\n group.push(method);\n grouped.set(method.type, group);\n });\n\n return grouped;\n }\n}\n","
\n \n
0; else singlePaymentMethod\">\n \n

{{ type | paymentTypeToTitle }}

\n \n
\n \n \n \n {{ makeDefaultButton }}\n \n \n {{ 'PAYMENT_METHOD_SELECTOR.DEFAULT' | translate }}\n \n \n \n delete\n \n
\n
\n \n
\n \n {{ hintText }}\n
\n \n \n \n \n {{ editButton }}\n \n
\n {{ hintText }}\n
\n
\n \n
\n {{ emptyCardHintText }}\n \n
\n
\n
\n
\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { PaymentMethod, PaymentMethodService } from '@galaxy/billing';\nimport { ReplaySubject, firstValueFrom } from 'rxjs';\nimport { SelectedPaymentMethod } from '../payment-method';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { PaymentMethodSelectorComponent } from '../payment-method-selector/payment-method-selector.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n imports: [AsyncPipe, NgIf, TranslateModule, PaymentMethodSelectorComponent],\n selector: 'smb-invoicing-default-payment-method-selector',\n templateUrl: './default-payment-method-selector.component.html',\n styleUrls: ['./default-payment-method-selector.component.scss'],\n})\nexport class DefaultPaymentMethodSelectorComponent implements OnInit {\n @Input() stripeKey: string;\n @Input() merchantId: string;\n @Input() customerId: string;\n @Input() stripeConnectId: string;\n @Input() hintText: string;\n @Input() emptyCardHintText: string;\n @Input() submitDialogText: string;\n @Input() isEditable = true;\n @Input() saveCardAsDefault = true;\n @Input() canRemoveSelectedMethod: boolean;\n @Input() showAllMethods: boolean;\n\n @Output() paymentMethodSelected: EventEmitter = new EventEmitter();\n\n defaultPaymentMethod$$ = new ReplaySubject(1);\n loadingPaymentMethods$$ = new ReplaySubject(1);\n paymentMethods$$ = new ReplaySubject(1);\n\n constructor(\n public dialog: MatDialog,\n private paymentMethodService: PaymentMethodService,\n ) {}\n\n ngOnInit(): void {\n this._listPaymentMethods();\n }\n\n async selectPaymentMethod(paymentMethod: SelectedPaymentMethod): Promise {\n const selectedPaymentMethodId = paymentMethod?.paymentMethodId;\n await firstValueFrom(\n this.paymentMethodService.setDefaultPaymentCard(this.merchantId, this.customerId, selectedPaymentMethodId),\n );\n await this._listPaymentMethods();\n this.paymentMethodSelected.emit(true);\n }\n\n private async _listPaymentMethods(): Promise {\n this.loadingPaymentMethods$$.next(true);\n const paymentMethods = await firstValueFrom(this.paymentMethodService.list(this.merchantId, this.customerId));\n this.paymentMethods$$.next(paymentMethods);\n const defaultPaymentMethod = (paymentMethods || []).find((method) => method?.default);\n this.defaultPaymentMethod$$.next(defaultPaymentMethod);\n this.loadingPaymentMethods$$.next(false);\n }\n}\n","\n \n\n\n
\n
\n
\n
\n","export { PaymentMethodSelectorComponent } from './payment-method-selector/payment-method-selector.component';\nexport { PaymentMethodDisplayComponent } from './payment-method-display/payment-method-display.component';\nexport { SelectedPaymentMethod, SelectPaymentMethodDialogData } from './payment-method';\nexport { SelectPaymentMethodDialogComponent } from './select-payment-method-dialog/select-payment-method-dialog.component';\nexport { DefaultPaymentMethodSelectorComponent } from './default-payment-method-selector/default-payment-method-selector.component';\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, input, OnDestroy, OnInit } from '@angular/core';\nimport {\n ReactiveFormsModule,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { Currency } from '@galaxy/billing';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CountryCode } from 'libphonenumber-js';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, tap } from 'rxjs/operators';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { MatInput } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\ninterface CountryOption {\n value: CountryCodes;\n label: string;\n}\n\ninterface CurrencyOption {\n value: Currency;\n label: string;\n}\n\nexport interface CreateBankAccountRequest {\n country: string;\n currency: string;\n routing_number?: string;\n account_number: string;\n}\n\nenum CountryCodes {\n US = 'US',\n CA = 'CA',\n CZ = 'CZ',\n AU = 'AU',\n NZ = 'NZ',\n GB = 'GB',\n AE = 'AE',\n DE = 'DE',\n}\n\n@Component({\n selector: 'smb-invoicing-add-bank-account-form',\n templateUrl: './add-bank-account.component.html',\n styleUrls: ['./add-bank-account.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n MatSelectModule,\n NgForOf,\n NgIf,\n MatInput,\n TranslateModule,\n ],\n providers: [TranslateService],\n})\nexport class AddBankAccountComponent implements OnInit, OnDestroy {\n merchantCountry = input();\n addBankAccountError = input();\n\n private subscriptions: Subscription[] = [];\n\n public countryForm: UntypedFormGroup;\n public unitedStatesForm: UntypedFormGroup;\n public canadaForm: UntypedFormGroup;\n public czechRepublicForm: UntypedFormGroup;\n public australiaForm: UntypedFormGroup;\n public newZealandForm: UntypedFormGroup;\n public unitedKingdomForm: UntypedFormGroup;\n public unitedArabEmiratesForm: UntypedFormGroup;\n public germanyForm: UntypedFormGroup;\n\n private countryOptionUS: CountryOption;\n private countryOptionCA: CountryOption;\n private countryOptionCZ: CountryOption;\n private countryOptionAU: CountryOption;\n private countryOptionNZ: CountryOption;\n private countryOptionGB: CountryOption;\n private countryOptionAE: CountryOption;\n private countryOptionDE: CountryOption;\n\n public currencyOptions: CurrencyOption[] = [];\n public countryOptions: CountryOption[] = [];\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n private translateService: TranslateService,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.countryOptionUS = {\n value: CountryCodes.US,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.UNITED_STATES'),\n };\n this.countryOptionCA = {\n value: CountryCodes.CA,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.CANADA'),\n };\n this.countryOptionCZ = {\n value: CountryCodes.CZ,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.CZECH_REPUBLIC'),\n };\n this.countryOptionAU = {\n value: CountryCodes.AU,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.AUSTRALIA'),\n };\n this.countryOptionNZ = {\n value: CountryCodes.NZ,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.NEW_ZEALAND'),\n };\n this.countryOptionGB = {\n value: CountryCodes.GB,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.UNITED_KINGDOM'),\n };\n this.countryOptionAE = {\n value: CountryCodes.AE,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.UNITED_ARAB_EMIRATES'),\n };\n this.countryOptionDE = {\n value: CountryCodes.DE,\n label: this.translateService.instant('BANK_ACCOUNT.ADD.COUNTRY.GERMANY'),\n };\n\n this.currencyOptions = [\n { value: Currency.CAD, label: this.translateService.instant('BANK_ACCOUNT.ADD.CURRENCY_OPTION.CAD') },\n { value: Currency.USD, label: this.translateService.instant('BANK_ACCOUNT.ADD.CURRENCY_OPTION.USD') },\n ];\n\n this.countryForm = this.formBuilder.group({\n country: ['', Validators.required],\n currency: ['', Validators.required],\n });\n\n this.unitedStatesForm = this.formBuilder.group({\n routingNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{9}`)]],\n accountNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{7,17}`)]],\n });\n this.canadaForm = this.formBuilder.group({\n transitNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{5}`)]],\n institutionNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{3}`)]],\n accountNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{7,17}`)]],\n });\n this.czechRepublicForm = this.formBuilder.group({\n iban: ['', [Validators.required, Validators.pattern(`^[A-Za-z0-9]{24}`)]],\n });\n this.australiaForm = this.formBuilder.group({\n bsb: ['', [Validators.required, Validators.pattern(`^[0-9]{6}`)]],\n accountNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{5,9}`)]],\n });\n this.newZealandForm = this.formBuilder.group({\n accountNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{15,16}`)]],\n });\n this.unitedKingdomForm = this.formBuilder.group({\n sortCode: ['', [Validators.required, Validators.pattern(`(^[0-9]{2}[-]{1}[0-9]{2}[-]{1}[0-9]{2})|(^[0-9]{6})`)]],\n account: ['', [Validators.required, Validators.pattern(`^[0-9]{8}`)]],\n });\n this.unitedArabEmiratesForm = this.formBuilder.group({\n iban: ['', [Validators.required, Validators.pattern(`^[A-Za-z0-9]{23}`)]],\n });\n this.germanyForm = this.formBuilder.group({\n iban: ['', [Validators.required, Validators.pattern(`^[A-Za-z0-9]{22}`)]],\n });\n }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.country.valueChanges\n .pipe(\n distinctUntilChanged(),\n tap((country) => {\n this.currency.disable();\n switch (country) {\n case CountryCodes.CA:\n this.currency.patchValue(Currency.CAD);\n this.currency.enable();\n break;\n case CountryCodes.US:\n this.currency.patchValue(Currency.USD);\n break;\n case CountryCodes.CZ:\n this.currency.patchValue(Currency.CZK);\n break;\n case CountryCodes.AU:\n this.currency.patchValue(Currency.AUD);\n break;\n case CountryCodes.NZ:\n this.currency.patchValue(Currency.NZD);\n break;\n case CountryCodes.GB:\n this.currency.patchValue(Currency.GBP);\n break;\n case CountryCodes.AE:\n this.currency.patchValue('AED');\n break;\n case CountryCodes.DE:\n this.currency.patchValue(Currency.EUR);\n break;\n }\n }),\n )\n .subscribe(),\n );\n const countryCode = this.merchantCountry() ? CountryCodes[this.merchantCountry() as CountryCodes] : CountryCodes.US;\n switch (countryCode) {\n case CountryCodes.CA:\n this.countryOptions = [this.countryOptionCA, this.countryOptionUS];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.US:\n this.countryOptions = [this.countryOptionUS];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.CZ:\n this.countryOptions = [this.countryOptionCZ, this.countryOptionGB];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.AU:\n this.countryOptions = [this.countryOptionAU];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.NZ:\n this.countryOptions = [this.countryOptionNZ];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.GB:\n this.countryOptions = [this.countryOptionGB, this.countryOptionUS];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.AE:\n this.countryOptions = [this.countryOptionAE];\n this.country.patchValue(countryCode);\n break;\n case CountryCodes.DE:\n this.countryOptions = [this.countryOptionDE];\n this.country.patchValue(countryCode);\n break;\n default:\n /*Default to all options, and select US. We shouldn't necessarily ever get to this state, as this dialog\n should only be accessible if you are in a supported country.\n if an invalid country is selected by the user, stripe will return an error upon form submission */\n this.countryOptions = [\n this.countryOptionCA,\n this.countryOptionUS,\n this.countryOptionCZ,\n this.countryOptionAU,\n this.countryOptionNZ,\n this.countryOptionGB,\n this.countryOptionAE,\n this.countryOptionDE,\n ];\n this.country.patchValue(CountryCodes.US);\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n get country(): UntypedFormControl {\n return this.countryForm.get('country') as UntypedFormControl;\n }\n\n get currency(): UntypedFormControl {\n return this.countryForm.get('currency') as UntypedFormControl;\n }\n\n buildUSAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n routing_number: this.unitedStatesForm.get('routingNumber').value,\n account_number: this.unitedStatesForm.get('accountNumber').value,\n };\n }\n\n buildCanadianAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n routing_number: `${this.canadaForm.get('transitNumber').value}${this.canadaForm.get('institutionNumber').value}`,\n account_number: this.canadaForm.get('accountNumber').value,\n };\n }\n\n buildCzechAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n account_number: this.czechRepublicForm.get('iban').value,\n };\n }\n buildAustralianAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n routing_number: this.australiaForm.get('bsb').value,\n account_number: this.australiaForm.get('accountNumber').value,\n };\n }\n\n buildNewZealandAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n account_number: this.newZealandForm.get('accountNumber').value,\n };\n }\n\n buildUnitedKingdomAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n routing_number: this.unitedKingdomForm.get('sortCode').value.replaceAll('-', ''),\n account_number: this.unitedKingdomForm.get('account').value,\n };\n }\n\n buildUnitedArabEmiratesAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n account_number: this.unitedArabEmiratesForm.get('iban').value,\n };\n }\n\n buildGermanyAccountRequest(): CreateBankAccountRequest {\n return {\n country: this.country.value,\n currency: this.currency.value.toLowerCase(),\n account_number: this.germanyForm.get('iban').value,\n };\n }\n\n getFormByCountry(country: CountryCode): UntypedFormGroup {\n switch (country) {\n case CountryCodes.US:\n return this.unitedStatesForm;\n case CountryCodes.CA:\n return this.canadaForm;\n case CountryCodes.CZ:\n return this.czechRepublicForm;\n case CountryCodes.AU:\n return this.australiaForm;\n case CountryCodes.NZ:\n return this.newZealandForm;\n case CountryCodes.GB:\n return this.unitedKingdomForm;\n case CountryCodes.AE:\n return this.unitedArabEmiratesForm;\n case CountryCodes.DE:\n return this.germanyForm;\n }\n }\n\n validate(): CreateBankAccountRequest | null {\n const countryForm = this.getFormByCountry(this.country.value);\n countryForm.markAllAsTouched();\n countryForm.markAsDirty();\n this.cdr.markForCheck();\n if (!countryForm.valid) {\n return null;\n }\n switch (this.country.value) {\n case CountryCodes.US:\n return this.buildUSAccountRequest();\n case CountryCodes.CA:\n return this.buildCanadianAccountRequest();\n case CountryCodes.CZ:\n return this.buildCzechAccountRequest();\n case CountryCodes.AU:\n return this.buildAustralianAccountRequest();\n case CountryCodes.NZ:\n return this.buildNewZealandAccountRequest();\n case CountryCodes.GB:\n return this.buildUnitedKingdomAccountRequest();\n case CountryCodes.AE:\n return this.buildUnitedArabEmiratesAccountRequest();\n case CountryCodes.DE:\n return this.buildGermanyAccountRequest();\n }\n return null;\n }\n}\n","
\n
\n \n {{ 'BANK_ACCOUNT.ADD.BANK_ACCOUNT' | translate }}\n \n \n {{ country.label }}\n \n \n \n
\n \n {{ 'BANK_ACCOUNT.ADD.CURRENCY' | translate }}\n \n \n {{ c.label }}\n \n \n \n
\n
\n\n
\n @switch (country.value) {\n @case ('CA') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.TRANSIT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.TRANSIT_NUMBER_REQUIRED' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.TRANSIT_NUMBER_INVALID' | translate }}\n \n \n
\n \n \n {{ 'BANK_ACCOUNT.ADD.INSTITUITON_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.INSTITUITON_NUMBER_INVALID' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.INSTITUITON_NUMBER_REQUIRED' | translate }}\n \n \n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_INVALID' | translate: { required_digits: '7-17' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_REQUIRED' | translate }}\n \n \n
\n
{{ 'BANK_ACCOUNT.ADD.REFERENCE_CHEQUE' | translate }}
\n \n }\n @case ('US') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ROUTING_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ROUTING_NUMBER_INVALID' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ROUTING_NUMBER_REQUIRED' | translate }}\n \n \n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_REQUIRED' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_INVALID' | translate: { required_digits: '7-17' } }}\n \n \n
\n
{{ 'BANK_ACCOUNT.ADD.REFERENCE_CHEQUE' | translate }}
\n \n }\n @case ('CZ') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_INVALID' | translate: { required_length: '24' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_REQUIRED' | translate }}\n \n \n
\n }\n @case ('AU') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.BSB' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.BSB_INVALID' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.BSB_REQUIRED' | translate }}\n \n \n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_INVALID' | translate: { required_digits: '5-9' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_REQUIRED' | translate }}\n \n \n
\n }\n @case ('NZ') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_INVALID' | translate: { required_digits: '15-16' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_REQUIRED' | translate }}\n \n \n
\n }\n @case ('GB') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.SORT_CODE' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.SORT_CODE_INVALID' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.SORT_CODE_REQUIRED' | translate }}\n \n \n
\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_INVALID' | translate: { required_digits: '8' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.ACCOUNT_NUMBER_REQUIRED' | translate }}\n \n \n
\n }\n @case ('AE') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_INVALID' | translate: { required_length: '23' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_REQUIRED' | translate }}\n \n \n
\n }\n @case ('DE') {\n
\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN' | translate }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_INVALID' | translate: { required_length: '22' } }}\n \n \n {{ 'BANK_ACCOUNT.ADD.IBAN_REQUIRED' | translate }}\n \n \n
\n }\n }\n
\n\n {{ addBankAccountError() }}\n\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingStateService {\n public loadingStates = signal<{ [key: string]: boolean }>({});\n\n getLoadingState(id: string): boolean {\n return this.loadingStates()[id] || false;\n }\n\n setLoading(id: string, state: boolean): void {\n this.loadingStates.update((current) => ({\n ...current,\n [id]: state,\n }));\n }\n}\n","import { Component, inject, input, output } from '@angular/core';\n\nimport { NgIf, UpperCasePipe } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\n\nimport { BankAccount } from '@galaxy/billing';\nimport { LoadingStateService } from '../loading-state.service';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-bank-account-list',\n templateUrl: './bank-account-list.component.html',\n styleUrls: ['./bank-account-list.component.scss'],\n imports: [\n NgIf,\n GalaxyBadgeModule,\n GalaxyButtonLoadingIndicatorModule,\n TranslateModule,\n MatIcon,\n MatIconButton,\n MatMenuTrigger,\n MatMenu,\n MatMenuItem,\n UpperCasePipe,\n ],\n providers: [TranslateService],\n})\nexport class BankAccountListComponent {\n private loadingStateService = inject(LoadingStateService);\n\n bankAccounts = input([]);\n\n setDefaultBankAccount = output();\n deleteBankAccount = output();\n\n loadingStates = this.loadingStateService.loadingStates;\n\n setDefault(id: string): void {\n this.setDefaultBankAccount.emit(id);\n }\n\n delete(id: string): void {\n this.deleteBankAccount.emit(id);\n }\n}\n","
\n @for (bankAccount of bankAccounts(); track bankAccount) {\n
\n
\n account_balance\n
\n
\n {{ bankAccount.bankName }}\n \n {{ bankAccount.currency | uppercase }}\n \n
\n ***** {{ bankAccount.last4 }}\n
\n
\n
\n \n {{ 'BANK_ACCOUNT.DEFAULT' | translate }}\n \n \n \n \n \n \n
\n
\n }\n
\n","import { Injectable, signal } from '@angular/core';\nimport {\n BankAccount,\n BankAccountService as ApiBankAccountService,\n MerchantService,\n StripeService,\n} from '@galaxy/billing';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { firstValueFrom, ReplaySubject } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { CreateBankAccountRequest } from './add-bank-account/add-bank-account.component';\nimport { ScriptLoaderService } from '../payment-method/stripe.service';\n\n// https://docs.stripe.com/js\ndeclare let Stripe: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BankAccountService {\n // https://docs.stripe.com/js\n private stripe: any;\n private stripeKey = '';\n\n private bankAccounts$$ = new ReplaySubject(1);\n bankAccounts$ = this.bankAccounts$$.asObservable();\n\n savingBankAccount = signal(false);\n addBankAccountError = signal(null);\n\n bankAccountProcessing = signal<{ [key: string]: boolean }>({});\n\n constructor(\n private bankAccountService: ApiBankAccountService,\n private stripeService: StripeService,\n private stripeScriptService: ScriptLoaderService,\n private merchantService: MerchantService,\n private snackbarService: SnackbarService,\n ) {\n this.stripeKey = this.stripeService.getConnectPublicKey();\n this.stripeScriptService\n .load()\n .pipe(first())\n .subscribe(() => {\n this.stripe = Stripe(this.stripeKey);\n });\n }\n\n public async load(merchantId: string): Promise {\n let bankAccounts: BankAccount[];\n try {\n bankAccounts = await firstValueFrom(this.bankAccountService.listBankAccounts(merchantId));\n } catch (err) {\n const e = err as HttpErrorResponse;\n if (e.status === 412) {\n // Expected - merchant may not have Vendasta payments setup yet\n bankAccounts = [];\n }\n } finally {\n this.bankAccounts$$.next(bankAccounts);\n }\n }\n\n async setDefault(merchantId: string, id: string): Promise {\n try {\n await firstValueFrom(this.bankAccountService.setDefaultBankAccount(merchantId, id));\n } catch (err) {\n let errorMessage: string;\n if (err?.error?.message) {\n errorMessage = err.error.message;\n } else {\n errorMessage = err.error;\n }\n this.snackbarService.openErrorSnack(errorMessage);\n } finally {\n await this.load(merchantId);\n }\n }\n\n async delete(merchantId: string, id: string): Promise {\n try {\n await firstValueFrom(this.bankAccountService.deleteBankAccount(merchantId, id));\n } catch (err) {\n let errorMessage: string;\n if (err?.error?.message) {\n errorMessage = err.error.message;\n } else {\n errorMessage = err.error;\n }\n this.snackbarService.openErrorSnack(errorMessage);\n } finally {\n await this.load(merchantId);\n }\n }\n\n async create(merchantId: string, request: CreateBankAccountRequest, skipSnack?: boolean): Promise {\n try {\n this.savingBankAccount.set(true);\n const result = await this.stripe.createToken('bank_account', request);\n if (result.error) {\n let errorMessage = '';\n if (result.error.message) {\n errorMessage = result.error.message;\n } else {\n errorMessage = result.error;\n }\n this.addBankAccountError.set(errorMessage);\n }\n await firstValueFrom(this.merchantService.createExternalAccount(merchantId, result.token.id));\n if (!skipSnack) {\n this.snackbarService.openSuccessSnack('BANK_ACCOUNT.ADD.SUCCESS_SNACK');\n }\n this.load(merchantId);\n this.addBankAccountError.set(null);\n return true;\n } catch (err) {\n if (!skipSnack) {\n this.snackbarService.openErrorSnack('BANK_ACCOUNT.ADD.ERROR_SNACK');\n }\n } finally {\n this.savingBankAccount.set(false);\n }\n }\n}\n","import { Component, computed, inject, input, OnInit, signal, ViewChild } from '@angular/core';\nimport { AddBankAccountComponent, CreateBankAccountRequest } from './add-bank-account/add-bank-account.component';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatAnchor, MatButton } from '@angular/material/button';\nimport { RouterLink } from '@angular/router';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport {\n MatCard,\n MatCardActions,\n MatCardContent,\n MatCardHeader,\n MatCardSubtitle,\n MatCardTitle,\n} from '@angular/material/card';\nimport { BankAccountListComponent } from './bank-account-list/bank-account-list.component';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { BankAccountService } from './bank-account.service';\nimport { catchError, EMPTY, filter, map, Observable, switchMap, tap } from 'rxjs';\nimport { Currency, Merchant, PaymentService } from '@galaxy/billing';\nimport { LoadingStateService } from './loading-state.service';\n\n@Component({\n selector: 'smb-invoicing-bank-account',\n templateUrl: './bank-account.component.html',\n styleUrls: ['./bank-account.component.scss'],\n imports: [\n AsyncPipe,\n NgIf,\n TranslateModule,\n MatAnchor,\n RouterLink,\n MatButton,\n MatCard,\n MatCardContent,\n MatCardHeader,\n MatCardSubtitle,\n MatCardTitle,\n MatCardActions,\n GalaxyBadgeModule,\n GalaxyAlertModule,\n GalaxyButtonLoadingIndicatorModule,\n AddBankAccountComponent,\n BankAccountListComponent,\n ],\n providers: [TranslateService],\n})\nexport class BankAccountComponent implements OnInit {\n private bankAccountService = inject(BankAccountService);\n private paymentService = inject(PaymentService);\n private loadingStateService = inject(LoadingStateService);\n\n merchant = input.required();\n canViewPayouts = input(false);\n alwaysDisplaySaveButton = input(false);\n\n bankAccountsLoaded = signal(false);\n bankAccounts = toSignal(this.bankAccountService.bankAccounts$.pipe(tap(() => this.bankAccountsLoaded.set(true))));\n hasBankAccountConnected = computed(() => {\n const bankAccounts = this.bankAccounts();\n return bankAccounts && bankAccounts.length > 0;\n });\n\n retailStatus$ = toObservable(this.merchant).pipe(\n filter(Boolean),\n switchMap((merchant) => this.paymentService.retailStatus(merchant.merchantId)),\n catchError(() => EMPTY),\n );\n retailStatus = toSignal(this.retailStatus$);\n\n paymentStatus = computed(() => {\n const merchant = this.merchant();\n const retailStatus = this.retailStatus();\n if (merchant?.stripeConnectId && retailStatus?.supportedRegion) {\n return 'payments-configured';\n }\n });\n\n savingBankAccount = this.bankAccountService.savingBankAccount;\n addBankAccountError = this.bankAccountService.addBankAccountError;\n\n displayAddBankAccountForm = signal(false);\n @ViewChild(AddBankAccountComponent) addBankAccountComponent: AddBankAccountComponent | null = null;\n currency$: Observable;\n\n ngOnInit(): void {\n this.bankAccountService.load(this.merchant()?.merchantId);\n this.currency$ = this.addBankAccountComponent?.currency.valueChanges.pipe(map((currency) => currency));\n }\n\n addBankAccount(): void {\n this.displayAddBankAccountForm.set(true);\n }\n\n getAndValidateBankAccount(): CreateBankAccountRequest | null {\n return this.addBankAccountComponent?.validate() ?? null;\n }\n\n async setDefault(id: string): Promise {\n const merchantId = this.merchant()?.merchantId;\n if (!merchantId) {\n return;\n }\n this.loadingStateService.setLoading(id, true);\n await this.bankAccountService.setDefault(merchantId, id);\n this.loadingStateService.setLoading(id, false);\n }\n\n async delete(id: string): Promise {\n const merchantId = this.merchant()?.merchantId;\n if (!merchantId) {\n return;\n }\n this.loadingStateService.setLoading(id, true);\n await this.bankAccountService.delete(merchantId, id);\n this.loadingStateService.setLoading(id, false);\n }\n\n async create(skipSnack?: boolean): Promise {\n const request = this.addBankAccountComponent?.validate() ?? null;\n if (!request) {\n return;\n }\n const merchantId = this.merchant()?.merchantId;\n if (!merchantId) {\n return;\n }\n const success = await this.bankAccountService.create(merchantId, request, skipSnack);\n if (success) {\n this.displayAddBankAccountForm.set(false);\n }\n }\n\n cancel(): void {\n this.displayAddBankAccountForm.set(false);\n }\n}\n","@if (bankAccountsLoaded()) {\n @if (displayAddBankAccountForm() || !hasBankAccountConnected()) {\n \n \n {{ 'BANK_ACCOUNT.ADD.TITLE' | translate }}\n {{\n 'BANK_ACCOUNT.ADD.PAYOUT_DESCRIPTION' | translate: { currency: currency$ | async }\n }}\n \n \n \n \n \n \n \n \n \n \n } @else if (paymentStatus() === 'payments-configured') {\n \n \n {{ 'BANK_ACCOUNT.TITLE' | translate }}\n {{ 'BANK_ACCOUNT.SUBTITLE' | translate }}\n \n \n @if (hasBankAccountConnected()) {\n \n }\n \n \n \n @if (canViewPayouts() && hasBankAccountConnected()) {\n \n {{ 'BANK_ACCOUNT.VIEW_PAYOUTS' | translate }}\n \n }\n \n \n }\n}\n","import { CollectionViewer } from '@angular/cdk/collections';\nimport { DataSource } from '@angular/cdk/table';\nimport { MerchantService, RetailPayout } from '@galaxy/billing';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nexport class PayoutListDataSource extends DataSource {\n private _payouts$$ = new BehaviorSubject([]);\n private _loading$$: BehaviorSubject = new BehaviorSubject(true);\n private _loading$ = this._loading$$.asObservable();\n\n constructor(\n private merchantService: MerchantService,\n private merchantId$: Observable,\n ) {\n super();\n this.merchantId$\n .pipe(\n tap((_) => this._loading$$.next(true)),\n switchMap((merchantId) => {\n return this.merchantService.listRetailPayouts(merchantId, '', 100);\n }),\n )\n .subscribe((response) => {\n this._payouts$$.next(response.results);\n this._loading$$.next(false);\n });\n }\n\n public connect(_collectionViewer: CollectionViewer): Observable {\n return this._payouts$$.asObservable();\n }\n\n public disconnect(_collectionViewer: CollectionViewer): void {\n this._payouts$$.complete();\n }\n\n public loading$(): Observable {\n return this._loading$;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { RetailPayoutStatus } from '@galaxy/billing';\nimport { VaBadgeModule } from '@vendasta/uikit';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'smb-invoicing-payout-status-badge',\n templateUrl: './payout-status-badge.component.html',\n styleUrls: ['./payout-status-badge.component.scss'],\n standalone: true,\n imports: [VaBadgeModule, MatIcon, MatTooltip],\n})\nexport class PayoutStatusBadgeComponent {\n @Input() status: RetailPayoutStatus;\n @Input() failureMessage: string;\n\n get text(): string {\n return this.status;\n }\n\n get color(): string {\n switch (this.status) {\n case RetailPayoutStatus.Paid:\n return 'green';\n case RetailPayoutStatus.Pending:\n return 'light-gray';\n case RetailPayoutStatus.InTransit:\n return 'yellow';\n case RetailPayoutStatus.Canceled:\n case RetailPayoutStatus.Failed:\n return 'red';\n }\n return '';\n }\n\n get isError(): boolean {\n return this.status === RetailPayoutStatus.Failed;\n }\n}\n","\n {{ text }}\n @if (isError) {\n info\n }\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MerchantService } from '@galaxy/billing';\nimport { Observable } from 'rxjs';\nimport { PayoutListDataSource } from './payout-list-datasource';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { MODULE_IMPORTS } from '@vendasta/galaxy/table';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { VaMaterialTableModule } from '@vendasta/uikit';\nimport { PayoutStatusBadgeComponent } from '../payout-status-badge/payout-status-badge.component';\n\n@Component({\n selector: 'smb-invoicing-payout-list',\n templateUrl: './payout-list.component.html',\n styleUrls: ['./payout-list.component.scss'],\n standalone: true,\n imports: [\n TranslateModule,\n GalaxyPipesModule,\n MODULE_IMPORTS,\n MatTooltip,\n VaMaterialTableModule,\n PayoutStatusBadgeComponent,\n ],\n})\nexport class PayoutListComponent implements OnInit {\n payoutListDataSource: PayoutListDataSource;\n displayColumns = ['arrivalDate', 'status', 'bankAcct', 'amount', 'actions'];\n @Input() shouldShowPayouts: boolean;\n @Input() merchantId$: Observable;\n @Output() payoutSelected: EventEmitter = new EventEmitter();\n\n constructor(private merchantService: MerchantService) {}\n\n ngOnInit() {\n this.payoutListDataSource = new PayoutListDataSource(this.merchantService, this.merchantId$);\n }\n\n onPayoutSelected(payoutId: string) {\n this.payoutSelected.emit(payoutId);\n }\n}\n","\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n
{{ 'PAYOUTS_PAGE.COLUMNS.AMOUNT' | translate }}\n {{ row.amount / 100 | glxyCurrency: row.currencyCode }}\n {{ 'PAYOUTS_PAGE.COLUMNS.STATUS' | translate }}\n \n {{ 'PAYOUTS_PAGE.COLUMNS.DATE' | translate }}\n {{ row.arrivalDate | glxyDate }}\n {{ 'PAYOUTS_PAGE.COLUMNS.BANK' | translate }}\n {{ row.bankName }} ****** {{ row.lastFourDigits }} \n \n {{ 'BANK_ACCOUNT.REMOVED' | translate }}\n \n \n {{ 'PAYOUTS_PAGE.COLUMNS.VIEW' | translate }}\n
\n {{ 'PAYOUTS_PAGE.DEFER_TO_STRIPE.TABLE' | translate }}\n
\n
\n","export function getImageSrc(imageName: string): string {\n if (window.location.hostname === 'localhost') {\n return `/assets/${imageName}`;\n }\n return `https://vstatic-prod.apigateway.co/partner-center-client/assets/${imageName}`;\n}\n\n/**\n * A mapping of PaymentCardTypes to the image source for the credit card picture.\n */\nexport const paymentCardImageUrls = {\n Visa: getImageSrc('images/icons/visa.png'),\n 'American Express': getImageSrc('images/icons/amex.png'),\n Mastercard: getImageSrc('images/icons/mastercard.png'),\n Discover: getImageSrc('images/icons/discover.png'),\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { getImageSrc } from '../../shared/image-src';\n\n@Component({\n imports: [TranslateModule, GalaxyEmptyStateModule, MatButtonModule],\n selector: 'smb-invoicing-retail-payments-empty-state',\n templateUrl: './retail-payments-empty-state.component.html',\n})\nexport class RetailPaymentsEmptyStateComponent {\n @Output() emptyStateAction: EventEmitter = new EventEmitter();\n readonly emptyStateImageUrl: string;\n\n constructor() {\n this.emptyStateImageUrl = getImageSrc('images/empty-state/vendasta-payments.png');\n }\n\n async onAction() {\n this.emptyStateAction.emit(true);\n }\n}\n","\n \n \n \n \n {{ 'PAYMENTS_ONBOARDING.UNSUPPORTED_REGION.TITLE' | translate }}\n \n

\n {{ 'PAYMENTS_ONBOARDING.UNSUPPORTED_REGION.DESCRIPTION' | translate }}\n

\n \n \n {{ 'PAYMENTS_ONBOARDING.UNSUPPORTED_REGION.CONTACT_US' | translate }}\n \n \n
\n","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { RetailPaymentsEmptyStateComponent } from '../empty-state/retail-payments-empty-state.component';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-retail-payments-onboarding',\n templateUrl: './retail-payments-onboarding.component.html',\n imports: [\n TranslateModule,\n NgIf,\n MatIconModule,\n MatButtonModule,\n GalaxyEmptyStateModule,\n RetailPaymentsEmptyStateComponent,\n ],\n})\nexport class RetailPaymentsOnboardingComponent {\n @Input() isSupportedRegion: boolean;\n @Input() description: string;\n @Output() emptyStateAction: EventEmitter = new EventEmitter();\n @Output() callToActionClicked: EventEmitter = new EventEmitter();\n}\n","\n \n money\n \n \n {{ 'PAYMENTS_ONBOARDING.CTA.TITLE' | translate }}\n \n

{{ description | translate }}

\n \n \n {{ 'PAYMENTS_ONBOARDING.CTA.SUBTITLE' | translate }}\n \n \n
\n\n \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n MerchantService,\n PaymentFacilitatorType,\n PaymentService,\n PayoutInterval,\n PayoutSummary,\n} from '@galaxy/billing';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, startWith, switchMap } from 'rxjs/operators';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { PayoutListComponent } from '../payout-list/payout-list.component';\n\nimport { RetailPaymentsOnboardingComponent } from '../../retail-payments/onboarding/retail-payments-onboarding.component';\n\n@Component({\n selector: 'smb-invoicing-payouts',\n templateUrl: './payouts.component.html',\n styleUrls: ['./payouts.component.scss'],\n standalone: true,\n imports: [\n GalaxyPageModule,\n AsyncPipe,\n MatIcon,\n TranslateModule,\n MatCard,\n MatCardTitle,\n MatCardHeader,\n MatTooltip,\n MatCardContent,\n GalaxyPipesModule,\n PayoutListComponent,\n NgIf,\n NgForOf,\n RetailPaymentsOnboardingComponent,\n ],\n})\nexport class PayoutsComponent implements OnInit {\n DateFormat = DateFormat;\n\n retailBalance$: Observable;\n supportedRegion$: Observable;\n canAcceptPayment$: Observable;\n loading$: Observable;\n payoutSchedule$: Observable;\n redirectToStripe$: Observable;\n @Input() merchantId$: Observable;\n @Output() payoutSelected: EventEmitter = new EventEmitter();\n\n constructor(\n private merchantService: MerchantService,\n private paymentService: PaymentService,\n private translateService: TranslateService,\n ) {}\n\n ngOnInit(): void {\n const retailStatus$ = this.merchantId$.pipe(\n switchMap((id) => this.paymentService.retailStatus(id)),\n catchError(() => {\n return of({ supportedRegion: false, canAcceptPayment: false });\n }),\n shareReplay(1),\n );\n this.supportedRegion$ = retailStatus$.pipe(map((rs) => rs.supportedRegion));\n this.canAcceptPayment$ = retailStatus$.pipe(map((rs) => rs.canAcceptPayment));\n this.loading$ = retailStatus$.pipe(\n switchMap((_) => of(false)),\n startWith(true),\n );\n\n this.redirectToStripe$ = this.merchantId$.pipe(\n switchMap((id) => this.paymentService.getRetailProvider(id)),\n map((provider) => provider.paymentFacilitatorType === PaymentFacilitatorType.STANDARD_STRIPE),\n catchError(() => of(false)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.retailBalance$ = combineLatest([this.merchantId$, this.redirectToStripe$]).pipe(\n switchMap(([partnerId, redirectToStripe]) => {\n if (redirectToStripe) {\n return of({} as PayoutSummary);\n } else {\n return this.merchantService.getPayoutSummary(partnerId);\n }\n }),\n );\n\n this.payoutSchedule$ = this.retailBalance$.pipe(\n map((payoutSummary) => {\n const key = getPayoutScheduleTranslationKey(payoutSummary.payoutInterval);\n return this.translateService.instant(key, {\n delay: payoutSummary.payoutDelayDays,\n });\n }),\n );\n }\n\n onPayoutSelected(payoutId: string) {\n this.payoutSelected.emit(payoutId);\n }\n}\n\n/**\n * Returns the correct translation key for a payout schedule with a given interval\n * @param payoutInterval - 'daily', 'weekly', or 'monthly'\n */\nexport function getPayoutScheduleTranslationKey(payoutInterval: PayoutInterval): string {\n switch (payoutInterval) {\n case PayoutInterval.Daily:\n return 'PAYOUTS_PAGE.CURRENT_BALANCE.PAYOUT_SCHEDULE_DAILY';\n case PayoutInterval.Weekly:\n return 'PAYOUTS_PAGE.CURRENT_BALANCE.PAYOUT_SCHEDULE_WEEKLY';\n case PayoutInterval.Monthly:\n return 'PAYOUTS_PAGE.CURRENT_BALANCE.PAYOUT_SCHEDULE_MONTHLY';\n }\n return 'PAYOUTS_PAGE.CURRENT_BALANCE.PAYOUT_SCHEDULE_MANUAL';\n}\n","@if ((loading$ | async) === false) {\n @if ((canAcceptPayment$ | async) === true) {\n
\n \n \n \n \n {{ 'PAYOUTS_PAGE.CURRENT_BALANCE.TITLE' | translate }}\n info \n \n \n \n
\n {{ balance.futurePayouts / 100 | glxyCurrency: balance.currencyCode }}\n
\n @if ((redirectToStripe$ | async) === false) {\n
\n {{ payoutSchedule }}\n
\n }\n
\n
\n \n \n \n {{ 'PAYOUTS_PAGE.IN_TRANSIT.TITLE' | translate }}\n info \n \n \n \n
\n {{ balance.inTransit / 100 | glxyCurrency: balance.currencyCode }}\n
\n
\n {{ 'PAYOUTS_PAGE.IN_TRANSIT.NEXT_PAYOUT' | translate }}\n {{ currentBalances.nextInTransitPayout | glxyDate: DateFormat.longDate }}\n
\n
\n
\n
\n
\n\n
\n \n
\n } @else {\n @if ((redirectToStripe$ | async) === false) {\n \n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const CUSTOMER_DATA_SERVICE = new InjectionToken('CustomerDataService');\n\nexport interface CustomerData {\n customerId: string;\n companyName: string;\n}\n\nexport interface CustomerDataService {\n get(customerId: string): Observable;\n\n getMulti(customerIds: string[]): Observable;\n}\n","import { RetailPaymentReferenceTypeEnum, RetailTransaction } from '@galaxy/billing';\n\nconst INVOICE_PREFIX = 'Invoice: ';\nconst SALES_ORDER_PREFIX = 'Order: ';\n\n/**\n * This is responsible for removing the description prefix on a list of payments. If the reference is an invoice, the\n * \"Invoice: \" prefix will be removed. If the reference is an order the \"Order: \" prefix will be removed.\n *\n * @param payments as list of payments.\n * @return a list of payments without the description prefix.\n */\nexport function stripReferencePrefixFromPaymentDescriptions(payments: RetailTransaction[]): RetailTransaction[] {\n return payments?.map((p) => {\n if (p.payment) {\n p.payment.description = stripReferencePrefixFromPaymentDescription(\n p.payment.description,\n p.payment.referenceType,\n );\n }\n if (p.refund?.payment) {\n p.refund.payment.description = stripReferencePrefixFromPaymentDescription(\n p.refund.payment.description,\n p.refund.payment.referenceType,\n );\n }\n return p;\n });\n}\n\n/**\n * Strip the reference prefix from a payment description based on its type.\n *\n * Many of the payment descriptions are prefixed with \"Invoice: \" or \"Order: \" based on what the payment was applied to.\n * In order to display these values nicer in the UI, it may be desired to remove these prefixes.\n *\n * @param description\n * @param type\n */\nexport function stripReferencePrefixFromPaymentDescription(\n description: string,\n type: RetailPaymentReferenceTypeEnum,\n): string {\n const prefix = getPrefixFromReferenceType(type);\n if (description.startsWith(prefix)) {\n return description.slice(prefix.length);\n }\n return description;\n}\n\n/**\n * Returns the common prefixes different descriptions many have.\n *\n * An invoice is usually prefixed with \"Invoice: \"\n * A sales order is usually prefixed with \"Order: \"\n *\n * If the type does not have a prefix, an empty string will be returned.\n */\nfunction getPrefixFromReferenceType(type: RetailPaymentReferenceTypeEnum): string {\n switch (type) {\n case RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE:\n return INVOICE_PREFIX;\n case RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_SALES_ORDER:\n return SALES_ORDER_PREFIX;\n default:\n return '';\n }\n}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { DatePipe } from '@angular/common';\nimport { PaymentService, Transaction } from '@galaxy/billing';\nimport { Scrollable } from '@vendasta/rx-utils';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { stripReferencePrefixFromPaymentDescriptions } from '../common';\nimport { CustomerData, CustomerDataService } from '../../customer/customer-data';\n\n/**\n * Filters are applied to the payments rows to reduce the result set.\n */\nexport interface TransactionFilters {\n /**\n * Filter by a payout identifier.\n */\n payoutId?: string;\n /**\n * Filter down to a specific customer identifier.\n */\n customerId?: string;\n /**\n * Filter to payments created on or after the date\n */\n createdDateGte?: Date;\n /**\n * Filter to payments created on or before the date\n */\n createdDateLte?: Date;\n /**\n * Filter to payments only\n */\n paymentsOnly?: boolean;\n /**\n * Filter by an invoice ID (only applicable to payments/charges)\n */\n invoiceId?: string;\n}\n\ninterface TransactionTableCriteria {\n pageSize?: number;\n filters?: TransactionFilters;\n merchantId?: string;\n}\n\nexport class TransactionsTableDataSource implements DataSource {\n private criteria$$: BehaviorSubject = new BehaviorSubject({});\n private pageIndex$$: BehaviorSubject = new BehaviorSubject(0);\n private scrollable: Scrollable;\n public hasMore$: Observable;\n public loading$: Observable;\n public empty$: Observable;\n public knownLength$: Observable;\n\n constructor(\n private paymentService: PaymentService,\n private datePipe: DatePipe,\n private customerDataService?: CustomerDataService,\n ) {\n this.scrollable = new Scrollable(\n this.criteria$$.asObservable(),\n (criteria, cursor) => {\n return this.loadMore(criteria, cursor);\n },\n );\n\n this.hasMore$ = this.scrollable.hasMore$;\n this.loading$ = this.scrollable.loading$;\n this.empty$ = this.scrollable.empty$;\n this.knownLength$ = this.scrollable.items$.pipe(\n withLatestFrom(this.hasMore$),\n map(([items, hasMore]) => {\n return items.length + (hasMore ? 1 : 0);\n }),\n );\n }\n\n connect(_collectionViewer: CollectionViewer): Observable {\n return combineLatest([\n this.scrollable.items$,\n this.criteria$$.asObservable(),\n this.pageIndex$$.asObservable(),\n ]).pipe(\n map(([items, criteria, pageIndex]) => {\n const start = pageIndex * criteria.pageSize;\n const end = (pageIndex + 1) * criteria.pageSize;\n if (end > items.length) {\n this.scrollable.loadMore();\n }\n return items.slice(start, Math.min(end, items.length));\n }),\n );\n }\n\n disconnect(_collectionViewer: CollectionViewer): void {\n return;\n }\n\n loadMore(\n criteria: TransactionTableCriteria,\n cursor: string,\n ): Observable<{ items: Transaction[]; cursor: string; hasMore: boolean; totalResults?: number }> {\n if (!criteria.merchantId) {\n return of({ items: [], hasMore: false, cursor: null });\n }\n\n const payments$ = this.paymentService\n .listRetailTransactions(\n criteria.merchantId,\n cursor,\n criteria.pageSize,\n criteria.filters?.payoutId,\n criteria.filters?.createdDateGte,\n criteria.filters?.createdDateLte,\n criteria.filters?.paymentsOnly,\n criteria.filters?.customerId,\n criteria.filters?.invoiceId,\n )\n .pipe(\n catchError((e) => {\n console.error(e);\n return of({\n results: [],\n hasMore: false,\n nextCursor: '',\n });\n }),\n map((resp) => {\n resp.results = stripReferencePrefixFromPaymentDescriptions(resp.results);\n return resp;\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const customerData$: Observable = payments$.pipe(\n map((resp) => {\n return resp.results\n .map((p) => {\n if (p.payment) {\n return p.payment.customerId;\n }\n if (p.refund) {\n return p.refund.payment?.customerId;\n }\n return null;\n })\n .filter((id) => !!id);\n }),\n switchMap((ids) => {\n if (!ids || ids.length === 0) {\n return of([]);\n }\n return this.customerDataService?.getMulti(ids) || of([]);\n }),\n catchError((_) => {\n // in the event of an account group error, just return an empty list\n // sometimes the user doesn't have permission to access the account group\n return of([]);\n }),\n );\n\n return combineLatest([payments$, customerData$]).pipe(\n map(([resp, customerData]) => {\n const customers: { [customerId: string]: CustomerData } = {};\n customerData.forEach((customerData) => {\n if (!customerData) {\n return;\n }\n customers[customerData.customerId] = customerData;\n });\n\n const rows: Transaction[] = [];\n resp.results.forEach((p) => {\n if (p.payment) {\n const customer = customers[p.payment.customerId];\n rows.push(Transaction.fromRetailPayment(customer?.companyName || '', p.payment));\n } else if (p.refund) {\n const customer = customers[p.refund.payment?.customerId];\n rows.push(Transaction.fromRetailRefund(customer?.companyName, p.refund));\n } else if (p.adjustment) {\n rows.push(Transaction.fromAdjustment(p.adjustment));\n } else if (p.payoutFailure) {\n rows.push(Transaction.fromRetailPayout(p.payoutFailure, this.datePipe));\n }\n });\n\n return { items: rows, cursor: resp.nextCursor, hasMore: resp.hasMore };\n }),\n );\n }\n\n public updatePage(merchantId: string, pageSize: number, pageIndex: number, filters: TransactionFilters): void {\n const currentCriteria = this.criteria$$.getValue();\n if (\n merchantId !== currentCriteria.merchantId ||\n pageSize !== currentCriteria.pageSize ||\n filters !== currentCriteria.filters\n ) {\n this.criteria$$.next({\n merchantId,\n pageSize,\n filters,\n });\n }\n\n this.pageIndex$$.next(pageIndex);\n }\n\n public reload(): void {\n this.criteria$$.next(this.criteria$$.getValue());\n }\n}\n","import { AsyncPipe, getCurrencySymbol, NgIf, CurrencyPipe, NgFor, NgTemplateOutlet } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n Validators,\n} from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport {\n Invoice,\n InvoiceService,\n MerchantService,\n PaymentService,\n RetailPayment,\n RetailPaymentMethodType,\n RetailRefundReason,\n TransactionReferenceType,\n Transaction,\n} from '@galaxy/billing';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SelectInputOption } from '@vendasta/galaxy/input';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { convertCentsToDollars, Validator } from '@vendasta/shared';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { finalize, map, shareReplay, startWith, switchMap, take } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { formatInvoiceNumber } from '../../shared/invoice';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CUSTOMER_DATA_SERVICE, CustomerDataService } from '../../customer/customer-data';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\n\nexport interface RefundDialogData {\n payment: Transaction;\n}\n\nexport const REFUND_ACTION = 'refund';\nexport const VIEW_INVOICE_ACTION = 'viewInvoice';\n\ninterface RefundResult {\n action: typeof REFUND_ACTION;\n result: RetailPayment;\n}\n\ninterface IssueCreditNoteResult {\n action: typeof VIEW_INVOICE_ACTION;\n result: Invoice;\n}\n\nexport type RefundDialogResult = RefundResult | IssueCreditNoteResult;\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-refund-dialog',\n templateUrl: './refund-dialog.component.html',\n styleUrls: ['./refund-dialog.component.scss'],\n imports: [\n NgIf,\n NgFor,\n NgTemplateOutlet,\n AsyncPipe,\n CurrencyPipe,\n TranslateModule,\n FormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n GalaxyAlertModule,\n GalaxyFormFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n GalaxyButtonLoadingIndicatorModule,\n ],\n})\nexport class RefundDialogComponent implements OnInit {\n formGroup: FormGroup;\n reasonOptions: SelectInputOption[];\n isSubmitting$$: BehaviorSubject = new BehaviorSubject(false);\n isLoading$$: BehaviorSubject = new BehaviorSubject(true);\n\n paymentDollarAmount: number;\n currencyCode: string;\n\n companyName$: Observable;\n balance$: Observable;\n showNegativeBalanceAlert$: Observable;\n\n achDebitPaymentMethodType = RetailPaymentMethodType.ACHDebit;\n acssDebitPaymentMethodType = RetailPaymentMethodType.ACSSDebit;\n cardPaymentMethodType = RetailPaymentMethodType.Card;\n\n invoice = toSignal(\n of(this.data.payment).pipe(\n switchMap((payment) => {\n if (payment.referenceType === TransactionReferenceType.INVOICE) {\n return this.invoiceService.get(payment.merchantId, payment.referenceId);\n }\n return of(null);\n }),\n map((invoice) => {\n if (invoice) {\n return {\n ...invoice,\n formattedNumber: formatInvoiceNumber(invoice.number),\n };\n }\n return null;\n }),\n ),\n );\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: RefundDialogData,\n @Inject(CUSTOMER_DATA_SERVICE) private customerDataService: CustomerDataService,\n private merchantService: MerchantService,\n private formBuilder: FormBuilder,\n private translateService: TranslateService,\n private paymentService: PaymentService,\n private snackbarService: SnackbarService,\n private readonly invoiceService: InvoiceService,\n ) {}\n\n get amountControl(): FormControl {\n return this.formGroup.get('amount') as FormControl;\n }\n\n get reasonControl(): FormControl {\n return this.formGroup.get('reason') as FormControl;\n }\n\n get currencySymbol(): string {\n return getCurrencySymbol(this.currencyCode, 'wide');\n }\n\n ngOnInit(): void {\n this.paymentDollarAmount = convertCentsToDollars(this.data.payment.amount || 0);\n this.currencyCode = this.data.payment.currencyCode;\n\n this.reasonOptions = [\n {\n label: this.translateService.instant('REFUND_DIALOG.SELECT_REASON'),\n value: RetailRefundReason.Unset,\n },\n {\n label: this.translateService.instant('REFUND_DIALOG.DUPLICATE'),\n value: RetailRefundReason.Duplicate,\n },\n {\n label: this.translateService.instant('REFUND_DIALOG.FRAUDULENT'),\n value: RetailRefundReason.Fraudulent,\n },\n {\n label: this.translateService.instant('REFUND_DIALOG.REQUESTED_BY_CUSTOMER'),\n value: RetailRefundReason.RequestedByCustomer,\n },\n ];\n\n this.formGroup = this.formBuilder.group({\n amount: new UntypedFormControl(this.paymentDollarAmount.toFixed(2), {\n validators: [\n Validators.required,\n Validators.max(this.paymentDollarAmount),\n Validator.isGreaterThanZero(),\n Validators.pattern('^[0-9.,-]*$'),\n ],\n updateOn: 'blur',\n }),\n reason: new FormControl(RetailRefundReason.Unset),\n });\n\n this.companyName$ = this.customerDataService.get(this.data.payment.customerId).pipe(\n map((customer) => customer?.companyName),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.balance$ = this.merchantService.getRetailAccountBalance(this.data.payment.merchantId).pipe(\n map((accountBalance) => {\n const currencyBalance = (accountBalance?.available || []).find(\n (b) => b.currencyCode.toLowerCase() === this.data.payment.currencyCode.toLowerCase(),\n );\n return (currencyBalance?.amount / 100 || 0).toFixed(0);\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n const requestedAmount$ = this.amountControl.valueChanges.pipe(startWith(this.paymentDollarAmount));\n this.showNegativeBalanceAlert$ = combineLatest([this.balance$, requestedAmount$]).pipe(\n map(([balance, requestedAmount]) => this.amountControl.valid && Number(balance) < Number(requestedAmount)),\n );\n\n combineLatest([this.companyName$, this.balance$])\n .pipe(take(1))\n .subscribe(() => this.isLoading$$.next(false));\n }\n\n public onSubmit(): void {\n this.isSubmitting$$.next(true);\n this.paymentService\n .refundRetail(\n this.data.payment.merchantId,\n this.data.payment.id,\n Math.round(this.amountControl.value * 100), //round to correct for floating point imprecision\n this.reasonControl.value,\n )\n .pipe(\n take(1),\n finalize(() => this.isSubmitting$$.next(false)),\n )\n .subscribe(\n (result) => {\n this.snackbarService.openSuccessSnack(this.translateService.instant('REFUND_DIALOG.PAYMENT_REFUNDED'));\n this.dialogRef.close({ action: REFUND_ACTION, result });\n },\n (err) => {\n return this.snackbarService.openErrorSnack(\n this.translateService.instant('REFUND_DIALOG.FAILED_TO_REFUND', {\n err: err.error?.message || err.message || err,\n }),\n );\n },\n );\n }\n\n public issueCreditNote(): void {\n const invoice = this.invoice();\n if (!invoice) {\n return;\n }\n this.dialogRef.close({ action: VIEW_INVOICE_ACTION, result: invoice });\n }\n}\n","

\n {{ 'REFUND_DIALOG.TITLE' | translate }}\n

\n\n
\n \n
\n \n

{{ 'REFUND_DIALOG.TO' | translate }}: 

\n

{{ companyName$ | async }}

\n
\n @if (data.payment.paymentMethodDetailsType === cardPaymentMethodType) {\n

{{ 'REFUND_DIALOG.DESCRIPTION' | translate }}

\n \n } @else if (data.payment.paymentMethodDetailsType === achDebitPaymentMethodType) {\n \n \n \n {{ 'REFUND_DIALOG.WARNING_ACH_TITLE' | translate }}\n \n \n \n } @else if (data.payment.paymentMethodDetailsType === acssDebitPaymentMethodType) {\n \n \n \n {{ 'REFUND_DIALOG.WARNING_ACSS_TITLE' | translate }}\n \n \n \n }\n \n @if (invoice()) {\n

\n {{ 'REFUND_DIALOG.ISSUE_CREDIT_NOTE' | translate }}\n {{\n 'REFUND_DIALOG.ISSUE_CREDIT_NOTE_CTA' | translate: { invoiceNumber: invoice().formattedNumber }\n }}\n

\n }\n
\n
\n\n \n {{ 'REFUND_DIALOG.NEGATIVE_BALANCE_TITLE' | translate }}\n — {{ 'REFUND_DIALOG.NEGATIVE_BALANCE_DESCRIPTION' | translate }}\n \n\n
\n \n {{ 'REFUND_DIALOG.AMOUNT' | translate }}\n \n \n {{ 'REFUND_DIALOG.REFUND_MUST_BE_GREATER_THAN_ZERO' | translate }}: {{\n 0 | currency: currencyCode : 'symbol' : '1.2-2'\n }}\n \n \n {{ 'REFUND_DIALOG.REFUND_CANNOT_EXCEED_AMOUNT' | translate }}: {{\n paymentDollarAmount | currency: currencyCode : 'symbol' : '1.2-2'\n }}\n \n \n {{ 'REFUND_DIALOG.BALANCE' | translate }}: \n \n {{ balance$ | async | currency: currencyCode : 'symbol' : '1.2-2' }}\n \n \n \n
\n
\n \n {{ 'REFUND_DIALOG.REASON' | translate }}\n \n \n {{ option.label }}\n \n \n \n
\n
\n\n \n \n \n \n {{ 'REFUND_DIALOG.BUTTON' | translate }}\n \n \n \n
\n\n\n
\n
\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';\nimport {\n REFUND_ACTION,\n RefundDialogComponent,\n RefundDialogData,\n VIEW_INVOICE_ACTION,\n} from '../../../refund/refund-dialog/refund-dialog.component';\nimport { Transaction, TransactionReferenceType } from '@galaxy/billing';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-transaction-row-actions',\n templateUrl: './transaction-row-actions.component.html',\n imports: [TranslateModule, MatButtonModule, MatIconModule, MatMenuModule],\n})\nexport class TransactionRowActionsComponent {\n TransactionReferenceType = TransactionReferenceType;\n\n @Input() row: Transaction;\n @Input() displayIssueCreditNoteAction: boolean;\n\n @Output() reload = new EventEmitter();\n @Output() issueCreditNote = new EventEmitter();\n @Output() viewInvoice = new EventEmitter();\n\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n\n constructor(public dialog: MatDialog) {}\n\n openMenu(e: MouseEvent): void {\n e.stopPropagation();\n this.trigger.openMenu();\n }\n\n openRefundDialog(): void {\n const dialogRef = this.dialog.open(RefundDialogComponent, {\n width: '500px',\n data: {\n payment: this.row,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (!result) {\n return;\n }\n switch (result.action) {\n case REFUND_ACTION:\n this.reload.next();\n break;\n case VIEW_INVOICE_ACTION:\n this.viewInvoice.emit(result.result?.id);\n break;\n }\n });\n }\n\n issueCreditNoteAction(): void {\n this.issueCreditNote.emit(this.row.referenceId);\n }\n}\n","\n\n \n @if (displayIssueCreditNoteAction) {\n \n }\n\n","import { Component, computed, input, OnInit, Signal, ViewChild } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RetailPaymentStatus, DisputeStatus, ExtendedRetailPaymentStatus, BillingI18nModule } from '@galaxy/billing';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Observable, of } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\nimport { GalaxyPopoverModule, PopoverComponent } from '@vendasta/galaxy/popover';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-payment-status-chip',\n templateUrl: './payment-status-chip.component.html',\n styleUrls: ['./payment-status-chip.component.scss'],\n imports: [\n BillingI18nModule,\n GalaxyPopoverModule,\n GalaxyTooltipModule,\n MatIconModule,\n TranslateModule,\n GalaxyBadgeModule,\n AsyncPipe,\n ],\n})\nexport class PaymentStatusChipComponent implements OnInit {\n @ViewChild('popover') popover: PopoverComponent;\n\n private _statusColorMap = {\n [RetailPaymentStatus.Succeeded]: 'blue',\n [DisputeStatus.WON]: 'green',\n [DisputeStatus.LOST]: 'red',\n [DisputeStatus.NEEDS_RESPONSE]: 'yellow',\n [DisputeStatus.WARNING_NEEDS_RESPONSE]: 'yellow',\n [DisputeStatus.UNDER_REVIEW]: 'grey',\n [DisputeStatus.WARNING_UNDER_REVIEW]: 'grey',\n [DisputeStatus.WARNING_CLOSED]: 'grey',\n [RetailPaymentStatus.Disputed]: 'red',\n };\n\n status = input();\n disputeResponseDue = input();\n hoverText = input();\n color = computed(() => this._statusColorMap[this.status()] || 'grey');\n statusTooltipTranslation: Signal>;\n statusTranslation: Signal>;\n showPopover = false;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.statusTooltipTranslation = computed(() => {\n switch (this.status()) {\n case DisputeStatus.WARNING_UNDER_REVIEW:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.TOOLTIP.DISPUTE_WARNING_UNDER_REVIEW');\n case DisputeStatus.WARNING_NEEDS_RESPONSE:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.TOOLTIP.DISPUTE_WARNING_NEEDS_RESPONSE');\n case DisputeStatus.WARNING_CLOSED:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.TOOLTIP.DISPUTE_WARNING_CLOSED');\n default:\n return of('');\n }\n });\n\n this.statusTranslation = computed(() => {\n switch (this.status()) {\n case RetailPaymentStatus.Succeeded:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.SUCCEEDED');\n case RetailPaymentStatus.Failed:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.FAILED');\n case RetailPaymentStatus.Pending:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.PENDING');\n case RetailPaymentStatus.Refunded:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.REFUNDED');\n case RetailPaymentStatus.PartiallyRefunded:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.PARTIALLY_REFUNDED');\n case RetailPaymentStatus.Disputed:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTED');\n case DisputeStatus.WON:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_WON');\n case DisputeStatus.LOST:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_LOST');\n case DisputeStatus.NEEDS_RESPONSE:\n return this.disputeResponseDue()\n ? this._getDueByTranslation(this.disputeResponseDue())\n : this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_NEEDS_RESPONSE');\n case DisputeStatus.UNDER_REVIEW:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_UNDER_REVIEW');\n case DisputeStatus.WARNING_UNDER_REVIEW:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_WARNING_UNDER_REVIEW');\n case DisputeStatus.WARNING_NEEDS_RESPONSE:\n return this.disputeResponseDue()\n ? this._getDueByTranslation(this.disputeResponseDue())\n : this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_WARNING_NEEDS_RESPONSE');\n case DisputeStatus.WARNING_CLOSED:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_WARNING_CLOSED');\n default:\n return this.translateService.stream('PAYMENT_STATUS_BADGE.UNKNOWN');\n }\n });\n }\n\n private _getDueByTranslation(dueBy: Date): Observable {\n const now = new Date();\n if (dueBy < now) {\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_DEADLINE_MISSED');\n }\n\n const hoursRemaining = Math.floor((dueBy.getTime() - now.getTime()) / (1000 * 60 * 60));\n if (hoursRemaining < 24) {\n if (hoursRemaining === 1) {\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_DUE_IN_HOUR', { hours: hoursRemaining });\n }\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_DUE_IN_HOURS', { hours: hoursRemaining });\n }\n\n const daysRemaining = Math.floor(hoursRemaining / 24);\n if (daysRemaining === 1) {\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_DUE_IN_DAY', { days: daysRemaining });\n }\n return this.translateService.stream('PAYMENT_STATUS_BADGE.DISPUTE_DUE_IN_DAYS', { days: daysRemaining });\n }\n\n public openPopover() {\n if (!this.hoverText()) {\n return;\n }\n this.popover.open();\n }\n\n public closePopover() {\n if (!this.hoverText()) {\n return;\n }\n this.popover.close();\n }\n\n public togglePopover(event: Event) {\n event.stopPropagation();\n if (!this.hoverText()) {\n return;\n }\n this.popover.isOpen ? this.popover.close() : this.popover.open();\n }\n}\n","
\n \n {{ statusTranslation() | async }}\n @if ((statusTooltipTranslation() | async) !== '') {\n \n info_outline\n \n }\n \n
\n\n\n
{{ hoverText() }}
\n
\n","export enum BuildStatus {\n IDLE = 0,\n BUILDING = 1,\n READ_FOR_DOWNLOAD = 2,\n FAILED = 3,\n}\n","export { BuildStatus } from './build-status';\nexport { Currency } from './currency';\nexport { ExportDialogData } from './export-dialog-data';\nexport { ExportRequest } from './export-request';\n","(function (a, b) {\n if (\"function\" == typeof define && define.amd) define([], b);else if (\"undefined\" != typeof exports) b();else {\n b(), a.FileSaver = {\n exports: {}\n }.exports;\n }\n})(this, function () {\n \"use strict\";\n\n function b(a, b) {\n return \"undefined\" == typeof b ? b = {\n autoBom: !1\n } : \"object\" != typeof b && (console.warn(\"Deprecated: Expected third argument to be a object\"), b = {\n autoBom: !b\n }), b.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type) ? new Blob([\"\\uFEFF\", a], {\n type: a.type\n }) : a;\n }\n function c(a, b, c) {\n var d = new XMLHttpRequest();\n d.open(\"GET\", a), d.responseType = \"blob\", d.onload = function () {\n g(d.response, b, c);\n }, d.onerror = function () {\n console.error(\"could not download file\");\n }, d.send();\n }\n function d(a) {\n var b = new XMLHttpRequest();\n b.open(\"HEAD\", a, !1);\n try {\n b.send();\n } catch (a) {}\n return 200 <= b.status && 299 >= b.status;\n }\n function e(a) {\n try {\n a.dispatchEvent(new MouseEvent(\"click\"));\n } catch (c) {\n var b = document.createEvent(\"MouseEvents\");\n b.initMouseEvent(\"click\", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), a.dispatchEvent(b);\n }\n }\n var f = \"object\" == typeof window && window.window === window ? window : \"object\" == typeof self && self.self === self ? self : \"object\" == typeof global && global.global === global ? global : void 0,\n a = f.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent),\n g = f.saveAs || (\"object\" != typeof window || window !== f ? function () {} : \"download\" in HTMLAnchorElement.prototype && !a ? function (b, g, h) {\n var i = f.URL || f.webkitURL,\n j = document.createElement(\"a\");\n g = g || b.name || \"download\", j.download = g, j.rel = \"noopener\", \"string\" == typeof b ? (j.href = b, j.origin === location.origin ? e(j) : d(j.href) ? c(b, g, h) : e(j, j.target = \"_blank\")) : (j.href = i.createObjectURL(b), setTimeout(function () {\n i.revokeObjectURL(j.href);\n }, 4E4), setTimeout(function () {\n e(j);\n }, 0));\n } : \"msSaveOrOpenBlob\" in navigator ? function (f, g, h) {\n if (g = g || f.name || \"download\", \"string\" != typeof f) navigator.msSaveOrOpenBlob(b(f, h), g);else if (d(f)) c(f, g, h);else {\n var i = document.createElement(\"a\");\n i.href = f, i.target = \"_blank\", setTimeout(function () {\n e(i);\n });\n }\n } : function (b, d, e, g) {\n if (g = g || open(\"\", \"_blank\"), g && (g.document.title = g.document.body.innerText = \"downloading...\"), \"string\" == typeof b) return c(b, d, e);\n var h = \"application/octet-stream\" === b.type,\n i = /constructor/i.test(f.HTMLElement) || f.safari,\n j = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((j || h && i || a) && \"undefined\" != typeof FileReader) {\n var k = new FileReader();\n k.onloadend = function () {\n var a = k.result;\n a = j ? a : a.replace(/^data:[^;]*;/, \"data:attachment/file;\"), g ? g.location.href = a : location = a, g = null;\n }, k.readAsDataURL(b);\n } else {\n var l = f.URL || f.webkitURL,\n m = l.createObjectURL(b);\n g ? g.location = m : location.href = m, g = null, setTimeout(function () {\n l.revokeObjectURL(m);\n }, 4E4);\n }\n });\n f.saveAs = g.saveAs = g, \"undefined\" != typeof module && (module.exports = g);\n});\n\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, combineLatest, Observable, Subject, timer } from 'rxjs';\nimport { filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\n\nimport {\n MerchantService,\n MerchantServicesReportRun,\n MerchantServicesReportRunStatus,\n MerchantServicesReportRunType,\n} from '@galaxy/billing';\n\nimport { saveAs } from 'file-saver';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { BuildStatus, ExportRequest } from '../models';\n\nconst pollInterval = 2500;\n\ninterface State {\n buildStatus?: BuildStatus;\n errorMessage?: string | null;\n}\n\nconst defaultState: State = {\n buildStatus: BuildStatus.IDLE,\n};\n\n@Injectable()\nexport class ExportService {\n private state$$: BehaviorSubject = new BehaviorSubject(defaultState);\n private state$: Observable = this.state$$.asObservable();\n\n private cancel$$: Subject = new Subject();\n\n constructor(\n private merchantService: MerchantService,\n private translateService: TranslateService,\n ) {}\n\n // Export financial report data.\n export(request: ExportRequest): void {\n this.setState({ buildStatus: BuildStatus.BUILDING, errorMessage: null });\n\n const newReportRun$ = this.merchantService.createReportRun(\n request.merchantID,\n MerchantServicesReportRunType.MERCHANT_SERVICES_REPORT_RUN_TYPE_BALANCE_ITEMIZED,\n request.startInterval,\n request.endInterval,\n request.currency,\n );\n const poller$ = timer(0, pollInterval);\n const reportRun$ = combineLatest([newReportRun$, poller$]).pipe(\n takeUntil(this.cancel$$),\n switchMap(([reportRun, _]) => this.merchantService.getReportRun(reportRun.id)),\n filter((reportRun) => isBuildFinished(reportRun)),\n take(1),\n );\n\n reportRun$\n .pipe(\n tap((reportRun) => this.setState({ buildStatus: buildStateFromReportRun(reportRun) })),\n switchMap((reportRun) => {\n if (isFailedReportRun(reportRun)) {\n throw new Error(reportRun.error);\n }\n return this.merchantService.getReport(reportRun.id);\n }),\n take(1),\n )\n .subscribe(\n (data) => {\n saveAs(data);\n this.setState({ buildStatus: BuildStatus.IDLE });\n },\n () =>\n this.setState({\n buildStatus: BuildStatus.FAILED,\n errorMessage: this.translateService.instant('BILLING.PAYMENTS_EXPORT.DIALOG.ERROR_MESSAGE'),\n }),\n );\n }\n\n /**\n * Cancel any in progress report build.\n */\n cancel(): void {\n this.cancel$$.next(true);\n this.setState({ buildStatus: BuildStatus.IDLE, errorMessage: null });\n }\n\n /**\n * Returns the state of the report build.\n */\n public get buildState$(): Observable {\n return this.state$.pipe(map((state) => state.buildStatus));\n }\n\n /**\n * Returns an observable of the error message.\n */\n public get errorMessage$(): Observable {\n return this.state$.pipe(map((state) => state.errorMessage));\n }\n\n private setState(state: State): void {\n this.state$$.next(Object.assign(this.state$$.getValue(), state));\n }\n}\n\n/**\n * Returns true if the report run has finished building.\n * @param reportRun\n */\nfunction isBuildFinished(reportRun: MerchantServicesReportRun): boolean {\n return (\n reportRun.status === MerchantServicesReportRunStatus.MERCHANT_SERVICES_REPORT_RUN_STATUS_SUCCEEDED ||\n reportRun.status === MerchantServicesReportRunStatus.MERCHANT_SERVICES_REPORT_RUN_STATUS_FAILED\n );\n}\n\n/**\n * Returns the build state from a completed report run.\n * @param reportRun\n */\nfunction buildStateFromReportRun(reportRun: MerchantServicesReportRun): BuildStatus {\n return reportRun.status === MerchantServicesReportRunStatus.MERCHANT_SERVICES_REPORT_RUN_STATUS_SUCCEEDED\n ? BuildStatus.READ_FOR_DOWNLOAD\n : BuildStatus.FAILED;\n}\n\n/**\n * Returns true if the report run failed.\n * @param reportRun\n */\nfunction isFailedReportRun(reportRun: MerchantServicesReportRun): boolean {\n return reportRun.status === MerchantServicesReportRunStatus.MERCHANT_SERVICES_REPORT_RUN_STATUS_FAILED;\n}\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\n\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { BuildStatus, Currency, ExportDialogData } from '../../models';\nimport { ExportService } from '../../services/export.service';\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nexport enum BasicDate {\n LAST_30_DAYS,\n LAST_60_DAYS,\n LAST_90_DAYS,\n LAST_MONTH,\n LAST_QUARTER,\n CUSTOM,\n}\n\nconst DEFAULT_BASIC_DATE = BasicDate.LAST_30_DAYS;\nconst VENDASTA_PAYMENT_CURRENCIES = ['USD', 'CAD', 'AUD', 'GBP', 'NZD', 'CZK'];\n\ninterface BasicDateOption {\n label: string;\n value: BasicDate;\n}\n\n@Component({\n standalone: true,\n templateUrl: './export-dialog.component.html',\n styleUrls: ['./export-dialog.component.scss'],\n imports: [\n NgIf,\n NgFor,\n AsyncPipe,\n FormsModule,\n TranslateModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatDatepickerModule,\n MatDialogModule,\n MatSelectModule,\n GalaxyAlertModule,\n GalaxyButtonLoadingIndicatorModule,\n GalaxyFormFieldModule,\n MatProgressSpinnerModule,\n ],\n providers: [ExportService],\n})\nexport class ExportDialogComponent implements OnInit, OnDestroy {\n form: FormGroup;\n basicDateOptions: BasicDateOption[];\n BasicDate = BasicDate;\n today = new Date();\n\n currencyOptions: Currency[];\n public downloading$: Observable = this.exportService.buildState$.pipe(\n map((buildState) => buildState === BuildStatus.BUILDING),\n );\n public errorMessage$: Observable = this.exportService.errorMessage$;\n\n private destroyed$: ReplaySubject = new ReplaySubject(1);\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ExportDialogData,\n private translateService: TranslateService,\n private fb: FormBuilder,\n private exportService: ExportService,\n ) {}\n\n ngOnInit(): void {\n this.basicDateOptions = [\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.LAST_30_DAYS'),\n value: BasicDate.LAST_30_DAYS,\n },\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.LAST_60_DAYS'),\n value: BasicDate.LAST_60_DAYS,\n },\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.LAST_90_DAYS'),\n value: BasicDate.LAST_90_DAYS,\n },\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.LAST_MONTH'),\n value: BasicDate.LAST_MONTH,\n },\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.LAST_QUARTER'),\n value: BasicDate.LAST_QUARTER,\n },\n {\n label: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.DATE_RANGE_OPTIONS.CUSTOM'),\n value: BasicDate.CUSTOM,\n },\n ];\n\n const availableCurrencies = VENDASTA_PAYMENT_CURRENCIES.map((currency) => ({ id: currency, name: currency }));\n this.currencyOptions = [\n { id: '', name: this.translateService.instant('PAYMENTS_EXPORT.DIALOG.ALL_CURRENCIES') },\n ...availableCurrencies,\n ];\n\n this.form = this.fb.group({\n basicDate: [this.initialBasicDateValue(), Validators.required],\n startInterval: [this.data.startInterval, Validators.required],\n endInterval: [this.data.endInterval, Validators.required],\n currency: [''],\n });\n\n this.form\n .get('basicDate')\n .valueChanges.pipe(\n takeUntil(this.destroyed$),\n filter((basicDate) => basicDate !== BasicDate.CUSTOM),\n )\n .subscribe((basicDate) => {\n const { startInterval, endInterval } = intervalsFromBasicDate(basicDate);\n this.form.get('startInterval').setValue(startInterval);\n this.form.get('endInterval').setValue(endInterval);\n });\n\n this.downloading$.pipe(takeUntil(this.destroyed$)).subscribe((downloading) => {\n if (downloading) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n\n get basicDate(): BasicDate {\n return this.form.get('basicDate').value;\n }\n\n handleSubmit(): void {\n if (!this.form.valid) {\n this.form.markAllAsTouched();\n return;\n }\n const startInterval = new Date(this.form.get('startInterval').value).setUTCHours(0, 0, 0, 0);\n const endInterval = new Date(this.form.get('endInterval').value).setUTCHours(0, 0, 0, 0);\n\n this.exportService.export({\n merchantID: this.data?.merchantId,\n startInterval: new Date(startInterval),\n endInterval: new Date(endInterval),\n currency: this.form.get('currency').value,\n });\n }\n\n handleCancel(): void {\n this.exportService.cancel();\n this.dialogRef.close();\n }\n\n private initialBasicDateValue(): BasicDate {\n return !!this.data.startInterval || !!this.data.endInterval ? BasicDate.CUSTOM : DEFAULT_BASIC_DATE;\n }\n}\n\nexport function intervalsFromBasicDate(basicDate: BasicDate): { startInterval: Date; endInterval: Date } {\n let startInterval: Date = null;\n let endInterval: Date = null;\n\n const today = new Date();\n\n switch (basicDate) {\n case BasicDate.LAST_30_DAYS:\n startInterval = new Date(new Date().setDate(new Date().getDate() - 30));\n endInterval = today;\n break;\n case BasicDate.LAST_60_DAYS:\n startInterval = new Date(new Date().setDate(new Date().getDate() - 60));\n endInterval = today;\n break;\n case BasicDate.LAST_90_DAYS:\n startInterval = new Date(new Date().setDate(new Date().getDate() - 90));\n endInterval = today;\n break;\n case BasicDate.LAST_MONTH:\n startInterval = new Date(today.getFullYear(), today.getMonth() - 1, 1);\n endInterval = new Date(today.getFullYear(), today.getMonth(), 0);\n break;\n case BasicDate.LAST_QUARTER: {\n const quarter = Math.floor(today.getMonth() / 3);\n startInterval = new Date(today.getFullYear(), quarter * 3 - 3, 1);\n endInterval = new Date(startInterval.getFullYear(), startInterval.getMonth() + 3, 0);\n break;\n }\n }\n\n // Zero UTC time\n if (startInterval !== null) {\n startInterval.setUTCHours(0, 0, 0, 0);\n }\n if (endInterval !== null) {\n endInterval.setUTCHours(0, 0, 0, 0);\n }\n\n return { startInterval, endInterval };\n}\n","
\n

{{ 'PAYMENTS_EXPORT.DIALOG.TITLE' | translate }}

\n \n \n {{ errorMessage }}\n \n\n {{ 'PAYMENTS_EXPORT.DIALOG.PATIENCE_MESSAGE' | translate }}\n\n \n {{ 'PAYMENTS_EXPORT.DIALOG.DATE_RANGE' | translate }}\n \n \n {{ option.label }}\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n {{ 'PAYMENTS_EXPORT.DIALOG.CURRENCY' | translate }}\n \n \n {{ option.name }}\n \n \n {{ 'PAYMENTS_EXPORT.DIALOG.CURRENCY_HINT' | translate }}\n \n\n
{{ 'PAYMENTS_EXPORT.DIALOG.REPORT_DATA_HINT' | translate }}
\n
{{ 'PAYMENTS_EXPORT.DIALOG.DATE_HINT' | translate }}
\n
\n \n \n \n \n
\n\n\n \n \n \n\n","import { Component, Input } from '@angular/core';\n\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\n\nimport { ExportDialogComponent } from '../export-dialog/export-dialog.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ExportDialogData } from '../../models';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-export-financial-reports-button',\n templateUrl: './export-button.component.html',\n styleUrls: ['./export-button.component.scss'],\n imports: [TranslateModule, MatButtonModule, MatDialogModule, MatIconModule],\n})\nexport class ExportButtonComponent {\n @Input() merchantId: string;\n @Input() startDate: Date | null = null;\n @Input() endDate: Date | null = null;\n\n constructor(public dialog: MatDialog) {}\n\n openDialog(): void {\n this.dialog.open(ExportDialogComponent, {\n width: '650px',\n data: {\n merchantId: this.merchantId,\n startInterval: this.startDate,\n endInterval: this.endDate,\n } as ExportDialogData,\n });\n }\n}\n","\n","export { ExportButtonComponent } from './export-button.component';\n","import { CommonModule, DatePipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Inject,\n input,\n Input,\n OnInit,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport {\n DeclineReasons,\n isRefundableStatus,\n PaymentService,\n RetailPaymentMethodType,\n Transaction,\n TransactionReferenceType,\n} from '@galaxy/billing';\nimport { DateFormat, DateRange } from '@vendasta/galaxy/utility/date-utils';\nimport { skip, startWith } from 'rxjs/operators';\nimport { TransactionFilters, TransactionsTableDataSource } from './transactions-table-datasource';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { VaMaterialTableModule } from '@vendasta/uikit';\nimport { GalaxyDatepickerModule } from '@vendasta/galaxy/datepicker';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { BillingUiModule } from '@vendasta/billing-ui';\nimport { TransactionRowActionsComponent } from './transaction-row-actions/transaction-row-actions.component';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { PadInvoiceNumberPipe } from '../../shared/pipes';\nimport { PaymentStatusChipComponent } from '../../payment-status-chip/payment-status-chip.component';\nimport { ExportButtonComponent } from '../../export-financial-reports/components/export-button';\nimport { CUSTOMER_DATA_SERVICE, CustomerDataService } from '../../customer/customer-data';\nimport { paymentCardImageUrls } from '../../shared/image-src';\n\n@Component({\n standalone: true,\n selector: 'smb-invoicing-transactions-table',\n templateUrl: './transactions-table.component.html',\n styleUrls: ['./transactions-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n MatProgressBarModule,\n MatTableModule,\n MatPaginatorModule,\n MatIconModule,\n MatButtonModule,\n GalaxyPipesModule,\n GalaxyEmptyStateModule,\n VaMaterialTableModule,\n PaymentStatusChipComponent,\n GalaxyDatepickerModule,\n ExportButtonComponent,\n MatMenuModule,\n BillingUiModule,\n TransactionRowActionsComponent,\n PadInvoiceNumberPipe,\n ],\n})\nexport class TransactionsTableComponent implements OnInit, AfterViewInit {\n public defaultPageSize = 10;\n\n DateFormat = DateFormat;\n imageUrls = paymentCardImageUrls;\n isRefundableStatus = isRefundableStatus;\n\n startDate: Date | null = null;\n endDate: Date | null = null;\n\n cardPaymentMethodType = RetailPaymentMethodType.Card;\n achDebitPaymentMethodType = RetailPaymentMethodType.ACHDebit;\n acssDebitPaymentMethodType = RetailPaymentMethodType.ACSSDebit;\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n @Input() displayedColumns = [\n 'description',\n 'customerId',\n 'created',\n 'payment-method',\n 'status',\n 'amount',\n 'fee',\n 'net',\n 'actions',\n ];\n @Input() filters: TransactionFilters;\n merchantId = input.required();\n hasEmptyStateSecondaryCallToAction = input(true);\n canClickTransactionReference = input(true);\n displayTableBorder = input(true);\n customerTitleTranslationKey = input('PAYMENTS_PAGE.CUSTOMER');\n\n @Output() issueCreditNote = new EventEmitter();\n @Output() customerClicked = new EventEmitter();\n @Output() transactionReferenceClicked = new EventEmitter();\n @Output() transactionClicked = new EventEmitter();\n @Output() emptyStatePrimaryCallToAction = new EventEmitter();\n @Output() emptyStateSecondaryCallToAction = new EventEmitter();\n\n // removes the header/footer\n readonly displayTableContentsOnly = input(false);\n\n dataSource: TransactionsTableDataSource;\n\n //transactionTypeEnum included for use in template\n transactionTypeEnum = TransactionReferenceType;\n\n netShown: boolean = this.displayedColumns.some((v) => v === 'net');\n\n constructor(\n private paymentService: PaymentService,\n @Optional() @Inject(CUSTOMER_DATA_SERVICE) private customerDataService: CustomerDataService,\n public dialog: MatDialog,\n private datePipe: DatePipe,\n private destroyRef: DestroyRef,\n ) {\n toObservable(this.merchantId)\n .pipe(skip(1), takeUntilDestroyed(this.destroyRef))\n .subscribe((merchantId) => {\n this.dataSource?.updatePage(merchantId, this.paginator.pageSize, this.paginator.pageIndex, this.filters);\n });\n }\n\n ngOnInit(): void {\n this.dataSource = new TransactionsTableDataSource(this.paymentService, this.datePipe, this.customerDataService);\n }\n\n ngAfterViewInit(): void {\n this.paginator.page\n .pipe(startWith({ pageSize: this.defaultPageSize, pageIndex: 0 }), takeUntilDestroyed(this.destroyRef))\n .subscribe((paginator) => {\n this.dataSource.updatePage(this.merchantId(), paginator.pageSize, paginator.pageIndex, this.filters);\n });\n }\n\n getNextSteps(failureCode: string, failureMessage: string): string {\n let message = '';\n const declineReason = DeclineReasons.get(failureCode);\n if (declineReason) {\n message = `${declineReason.description} ${declineReason.nextSteps}`;\n } else {\n message = failureMessage;\n }\n return message;\n }\n\n onDateSelection(dateRange: DateRange): void {\n this.startDate = dateRange?.start || null;\n this.endDate = dateRange?.end || null;\n this.filters = {\n ...this.filters,\n createdDateGte: dateRange?.start || null,\n createdDateLte: dateRange?.end || null,\n } as TransactionFilters;\n this.dataSource?.updatePage(this.merchantId(), this.paginator.pageSize, this.paginator.pageIndex, this.filters);\n }\n\n reload(): void {\n this.dataSource.reload();\n }\n\n public customerClickEvent(event: Event, customerId: string): void {\n this.customerClicked.emit(customerId);\n this.consumeEvent(event);\n }\n\n public transactionReferenceClickEvent(event: Event, transaction: Transaction): void {\n this.transactionReferenceClicked.emit(transaction);\n this.consumeEvent(event);\n }\n\n public transactionClickEvent(event: Event, transaction: Transaction): void {\n this.transactionClicked.emit(transaction);\n this.consumeEvent(event);\n }\n\n public issueCreditNoteHandler(referenceId: string): void {\n this.issueCreditNote.emit(referenceId);\n }\n\n public emptyStatePrimaryCallToActionEvent(): void {\n this.emptyStatePrimaryCallToAction.emit(true);\n }\n\n public emptyStateSecondaryCallToActionEvent(): void {\n this.emptyStateSecondaryCallToAction.emit(true);\n }\n\n public consumeEvent(event: Event): void {\n event.stopPropagation();\n }\n}\n","@if (displayTableContentsOnly()) {\n \n} @else {\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n}\n\n \n \n \n \n \n {{ 'PAYMENTS_PAGE.STATUS' | translate }}\n \n \n \n \n \n\n \n \n {{ 'PAYMENTS_PAGE.DESCRIPTION' | translate }}\n \n \n @if (canClickTransactionReference()) {\n \n @if (\n p.referenceType === transactionTypeEnum.INVOICE ||\n p.referenceType === transactionTypeEnum.REFUND_INVOICE\n ) {\n {{ p.description | padInvoiceNumber }}\n } @else {\n {{ p.description }}\n }\n \n } @else {\n \n @if (\n p.referenceType === transactionTypeEnum.INVOICE ||\n p.referenceType === transactionTypeEnum.REFUND_INVOICE\n ) {\n {{ p.description | padInvoiceNumber }}\n } @else {\n {{ p.description }}\n }\n \n }\n
\n {{ 'PAYMENTS_PAGE.INVOICE' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.INVOICE_REFUND' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.ORDER' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.ORDER_REFUND' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.DISPUTE' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.REFUND_FAILURE' | translate }}\n
\n
\n {{ 'PAYMENTS_PAGE.PAYOUT_FAILURE' | translate }}\n
\n
\n {{ p.description }}\n
\n \n
\n\n \n \n {{ customerTitleTranslationKey() | translate }}\n \n \n \n {{ p.customerName || p.customerId }}\n \n \n \n\n \n \n {{ 'PAYMENTS_PAGE.CREATED' | translate }}\n \n \n
{{ p.created | glxyDate }}
\n \n {{ p.created | glxyDate: DateFormat.shortTime }}\n \n \n
\n\n \n \n {{ 'PAYMENTS_PAGE.PAYMENT_METHOD' | translate }}\n \n \n @if (p.paymentMethodDetailsType === cardPaymentMethodType && !!p.cardDetails) {\n
\n
\n \"{{\n
\n
\n ••••\n {{ p.cardDetails.lastFourDigits }}\n
\n
\n } @else if (p.paymentMethodDetailsType === achDebitPaymentMethodType && !!p.achDetails) {\n
\n
\n account_balance\n
\n
\n ••••\n {{ p.achDetails.lastFourDigits }}\n
\n
\n } @else if (p.paymentMethodDetailsType === acssDebitPaymentMethodType && !!p.acssDetails) {\n
\n
\n account_balance\n
\n
\n ••••\n {{ p.acssDetails.lastFourDigits }}\n
\n
\n } @else {\n
\n }\n \n
\n\n \n \n {{ 'PAYMENTS_PAGE.AMOUNT' | translate }}\n \n \n \n \n \n \n \n \n\n \n \n {{ 'PAYMENTS_PAGE.FEE' | translate }}\n \n \n \n {{\n -(\n (p?.applicationFee > 0 ? p.applicationFee / 100 : 0) +\n (p?.paymentFacilitatorFee > 0 ? p.paymentFacilitatorFee / 100 : 0)\n ) | glxyCurrency: p.currencyCode : null\n }}\n \n \n \n\n \n \n {{ 'PAYMENTS_PAGE.NET' | translate }}\n \n \n \n {{\n (p.amount - (p?.applicationFee || 0) - (p?.paymentFacilitatorFee || 0)) / 100\n | glxyCurrency: p.currencyCode : null\n }}\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n @if ((dataSource.empty$ | async) && (dataSource.loading$ | async) === false) {\n \n \n money\n \n \n {{ 'PAYMENTS_PAGE.NO_PAYMENTS_TITLE' | translate }}\n \n

\n {{ 'PAYMENTS_PAGE.NO_PAYMENTS_BODY' | translate }}\n

\n \n \n {{ 'PAYMENTS_PAGE.NO_PAYMENTS_PRIMARY_CTA' | translate }}\n \n @if (hasEmptyStateSecondaryCallToAction()) {\n \n {{ 'PAYMENTS_PAGE.NO_PAYMENTS_SECONDARY_CTA' | translate }}\n \n }\n \n
\n }\n \n
\n
\n","import { Component, computed, DestroyRef, EventEmitter, input, OnInit, Output } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { DisputeStatus, PaymentFacilitatorType, PaymentService, RetailStatus, Transaction } from '@galaxy/billing';\nimport { MatPaginatorNoTotalDisplayed } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap } from 'rxjs/operators';\nimport { TransactionFilters } from './transactions-table/transactions-table-datasource';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { TransactionsTableComponent } from './transactions-table/transactions-table.component';\nimport { RetailPaymentsOnboardingComponent } from '../retail-payments/onboarding/retail-payments-onboarding.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\nconst ACTIVE_DISPUTE_STATUSES = [DisputeStatus.WARNING_NEEDS_RESPONSE, DisputeStatus.NEEDS_RESPONSE];\n\n@Component({\n selector: 'smb-invoicing-transactions',\n templateUrl: './transactions.component.html',\n styleUrls: ['./transactions.component.scss'],\n providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorNoTotalDisplayed }],\n standalone: true,\n imports: [\n AsyncPipe,\n NgIf,\n TranslateModule,\n GalaxyAlertModule,\n TransactionsTableComponent,\n RetailPaymentsOnboardingComponent,\n ],\n})\nexport class TransactionsComponent implements OnInit {\n merchantId = input.required();\n paymentFacilitatorType = input();\n invoiceId = input();\n hideTableActions = input(false);\n displayedColumns = input([\n 'description',\n 'customerId',\n 'created',\n 'payment-method',\n 'status',\n 'amount',\n 'fee',\n 'net',\n 'actions',\n ]);\n hasEmptyStateSecondaryCallToAction = input(true);\n canClickTransactionReference = input(true);\n displayTableBorder = input(true);\n customerTitleTranslationKey = input('PAYMENTS_PAGE.CUSTOMER');\n\n @Output() issueCreditNote = new EventEmitter();\n @Output() customerClicked = new EventEmitter();\n @Output() transactionReferenceClicked = new EventEmitter();\n @Output() transactionClicked = new EventEmitter();\n @Output() emptyStatePrimaryCallToAction = new EventEmitter();\n @Output() emptyStateSecondaryCallToAction = new EventEmitter();\n\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n supportedRegion$: Observable;\n canAcceptPayment$: Observable;\n hasActiveDisputes$: Observable;\n retailStatus$: Observable;\n\n paymentsFilters = computed(() => (this.invoiceId() ? ({ invoiceId: this.invoiceId() } as TransactionFilters) : {}));\n\n constructor(\n private paymentService: PaymentService,\n private destroyRef: DestroyRef,\n private router: Router,\n ) {\n this.retailStatus$ = toObservable(this.merchantId).pipe(\n switchMap((id) => this.paymentService.retailStatus(id)),\n catchError((_) => {\n return of({ supportedRegion: false, canAcceptPayment: false });\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.hasActiveDisputes$ = toObservable(this.merchantId).pipe(\n switchMap((pid) => this.paymentService.listRetailDisputes(pid)),\n map((resp) => (resp.results || []).filter((d) => ACTIVE_DISPUTE_STATUSES.includes(d.status))),\n map((disputes) => disputes.length > 0),\n );\n }\n\n ngOnInit(): void {\n this.supportedRegion$ = this.retailStatus$.pipe(map((rs) => rs.supportedRegion));\n this.canAcceptPayment$ = this.retailStatus$.pipe(map((rs) => rs.canAcceptPayment));\n this.retailStatus$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((_) => this.loading$$.next(false));\n }\n\n issueCreditNoteHandler(referenceId: string): void {\n this.issueCreditNote.emit(referenceId);\n }\n\n customerClickedHandler(customerId: string): void {\n this.customerClicked.emit(customerId);\n }\n\n transactionReferenceClickedHandler(transaction: Transaction): void {\n this.transactionReferenceClicked.emit(transaction);\n }\n\n transactionClickedHandler(transaction: Transaction): void {\n this.transactionClicked.emit(transaction);\n }\n\n emptyStatePrimaryCallToActionHandler(): void {\n this.emptyStatePrimaryCallToAction.emit(true);\n }\n\n emptyStateSecondaryCallToActionHandler(): void {\n this.emptyStateSecondaryCallToAction.emit(true);\n }\n\n openDisputeActionClicked(): void {\n this.router.navigateByUrl('/billing/disputes?openDisputes=true');\n }\n}\n","\n \n \n @if (paymentFacilitatorType() === 'CUSTOM_STRIPE') {\n \n {{ 'PAYMENTS_PAGE.DISPUTE_ALERT' | translate }}\n \n } @else {\n \n {{ 'PAYMENTS_PAGE.DISPUTE_ALERT' | translate }}\n \n }\n \n
\n \n
\n
\n \n \n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { MerchantService, RetailPayout, RetailPayoutStatus } from '@galaxy/billing';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { formatDisplayPrice } from '@vendasta/shared';\nimport { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';\nimport { MatGridList, MatGridTile } from '@angular/material/grid-list';\nimport { PayoutStatusBadgeComponent } from '../payout-status-badge/payout-status-badge.component';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { formatDate } from '@vendasta/galaxy/utility/date-utils';\n\ninterface PayoutDetailsField {\n translationKey: string;\n value: string;\n tooltip?: string;\n class?: null | 'italicized';\n}\n\n@Component({\n selector: 'smb-invoicing-payout-details',\n templateUrl: './payout-details.component.html',\n styleUrls: ['./payout-details.component.scss'],\n standalone: true,\n imports: [\n AsyncPipe,\n GalaxyPageModule,\n GalaxyPipesModule,\n MatCard,\n MatCardContent,\n MatCardHeader,\n MatCardTitle,\n MatGridList,\n MatGridTile,\n NgForOf,\n NgIf,\n PayoutStatusBadgeComponent,\n TranslateModule,\n MatTooltip,\n ],\n})\nexport class PayoutDetailsComponent implements OnInit {\n loading$$ = new BehaviorSubject(true);\n payout$: Observable;\n payoutDetailFields$: Observable;\n @Input() merchantId$: Observable;\n @Input() payoutId$: Observable;\n\n constructor(private merchantService: MerchantService) {}\n\n ngOnInit(): void {\n this.payout$ = combineLatest([this.merchantId$, this.payoutId$]).pipe(\n switchMap(([merchantId, payoutId]) => {\n return this.merchantService.getRetailPayout(merchantId, payoutId);\n }),\n tap(() => this.loading$$.next(false)),\n );\n this.payoutDetailFields$ = this.payout$.pipe(\n map((payout) => {\n return [\n {\n translationKey: 'PAYOUT_DETAILS_PAGE.FIELD_NAMES.STATUS',\n value: payout.status,\n },\n {\n translationKey: 'PAYOUT_DETAILS_PAGE.FIELD_NAMES.BANK_ACCOUNT',\n value: payout.lastFourDigits ? `${payout.bankName} ***** ${payout.lastFourDigits}` : 'BANK_ACCOUNT.REMOVED',\n tooltip: !payout.lastFourDigits ? 'BANK_ACCOUNT.REMOVED_TOOLTIP' : null,\n class: !payout.lastFourDigits ? 'italicized' : null,\n },\n {\n translationKey:\n payout.status === RetailPayoutStatus.Paid\n ? 'PAYOUT_DETAILS_PAGE.FIELD_NAMES.COMPLETED'\n : 'PAYOUT_DETAILS_PAGE.FIELD_NAMES.ESTIMATED',\n value: formatDate(payout.arrivalDate, 'MMM d, Y', null),\n },\n {\n translationKey: 'PAYOUT_DETAILS_PAGE.FIELD_NAMES.AMOUNT',\n value: formatDisplayPrice(payout.amount, payout.currencyCode, undefined, true, false, true),\n },\n ];\n }),\n );\n }\n}\n","\n \n \n \n \n \n {{ 'PAYOUT_DETAILS_PAGE.PAGE_TITLE' | translate: { payoutDate: payout.arrivalDate | glxyDate } }}\n \n \n \n\n \n \n \n \n {{ 'PAYOUT_DETAILS_PAGE.PAYOUT_DETAILS_CARD_TITLE' | translate }}\n \n \n \n \n \n \n {{ field.translationKey | translate }}\n \n \n \n {{ field.value | translate }}\n \n \n \n \n \n \n\n \n \n \n {{ 'PAYOUT_DETAILS_PAGE.PAYMENT_RECORDS_CARD_TITLE' | translate }}\n \n \n \n \n \n \n \n \n\n","import { Component, Input } from '@angular/core';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { PaymentStatusChipComponent } from '../../../payment-status-chip/payment-status-chip.component';\nimport { Dispute } from '@galaxy/billing';\nimport { Observable } from 'rxjs';\n\nexport enum Color {\n RED,\n GREEN,\n}\n\nexport interface Image {\n src: string;\n alt: string;\n width?: number;\n height?: number;\n}\n\nexport interface Row {\n id: string;\n asyncTranslatedName?: Observable;\n value?: string;\n asyncValue?: Observable;\n valuePrefixImage?: Image;\n color?: Color;\n routerLink?: string[];\n dispute?: Dispute;\n}\n\n@Component({\n selector: 'smb-invoicing-payment-detail-row',\n templateUrl: './detail-row.component.html',\n styleUrls: ['./detail-row.component.scss'],\n standalone: true,\n imports: [NgClass, RouterLink, PaymentStatusChipComponent, AsyncPipe],\n})\nexport class DetailRowComponent {\n @Input() row: Row;\n // Whether or not the title and value should be stacked or appear\n // on the same line.\n @Input() stacked: boolean;\n rowColor = Color;\n}\n","
\n
\n {{ row.asyncTranslatedName | async }}\n
\n \n @if (row.id === 'status') {\n \n } @else {\n @if (!!row.valuePrefixImage && !!row.valuePrefixImage.src) {\n \n }\n @if (!row.routerLink) {\n \n @if (row.value) {\n {{ row.value }}\n } @else {\n {{ row.asyncValue | async }}\n }\n \n }\n @if (!!row.routerLink) {\n \n @if (row.value) {\n {{ row.value }}\n } @else {\n {{ row.asyncValue | async }}\n }\n \n }\n }\n
\n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { AsyncPipe } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { LexiconModule } from '@galaxy/lexicon';\n\ninterface Business {\n name: string;\n address: string;\n}\n\n@Component({\n selector: 'smb-invoicing-payment-business-page',\n templateUrl: './payment-business.component.html',\n styleUrls: ['./payment-business.component.scss'],\n standalone: true,\n imports: [MatIcon, RouterLink, AsyncPipe, LexiconModule],\n})\nexport class PaymentBusinessComponent implements OnInit {\n @Input() businessId: string;\n\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n errorCode$$: BehaviorSubject = new BehaviorSubject(null);\n business$: Observable;\n\n constructor(private accountGroupService: AccountGroupService) {}\n\n ngOnInit(): void {\n this.business$ = this.accountGroupService.get(this.businessId, new ProjectionFilter({ napData: true })).pipe(\n map((accountGroup) => {\n // Get doesn't actually return a 404. So if the nap data is missing\n // assume we couldn't find the business.\n if (!accountGroup || !accountGroup.napData) {\n throw new HttpErrorResponse({ status: 404 });\n }\n return {\n name: accountGroup?.napData?.companyName,\n address: [\n accountGroup?.napData?.address,\n accountGroup?.napData?.address2,\n accountGroup?.napData?.city,\n accountGroup?.napData?.country,\n ]\n .filter((p) => !!p)\n .join(', '),\n };\n }),\n tap(() => this.loading$$.next(false)),\n catchError((err) => {\n this.loading$$.next(false);\n this.errorCode$$.next(err.status);\n return of(null);\n }),\n );\n }\n}\n","@if ((errorCode$$ | async) === 404) {\n
\n
\n business\n
\n
\n
\n {{ 'PAYMENT_PAGE.BUSINESS_NOT_FOUND' | translate }}\n
\n
\n
\n} @else {\n \n
\n
\n business\n
\n @if (loading$$ | async) {\n
\n
\n
\n
\n }\n @if (business$ | async; as business) {\n
\n
{{ business.name }}
\n
{{ business.address }}
\n
\n }\n @if ((errorCode$$ | async) !== null) {\n
\n
\n {{ 'PAYMENT_PAGE.GENERAL_ERROR' | translate }}\n
\n
\n }\n
\n
\n navigate_next\n
\n
\n
\n}\n","import { formatDate } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport {\n BillingI18nModule,\n PaymentFacilitatorType,\n RetailPayment,\n RetailPaymentReferenceTypeEnum,\n RetailPaymentStatus,\n RetailRefund,\n} from '@galaxy/billing';\nimport { GalaxyCurrencyPipe } from '@vendasta/galaxy/pipes';\n\nimport { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { formatInvoiceNumber } from '../../../shared/invoice';\nimport { paymentCardImageUrls } from '../../../shared/image-src';\nimport { DetailRowComponent, Row } from '../details-row/detail-row.component';\nimport { PaymentBusinessComponent } from '../customer-section/payment-business.component';\nimport { stripReferencePrefixFromPaymentDescription } from '../../../transactions/common';\nimport { ViewConfig } from '../shared/view-config';\nimport { firstValueFrom } from 'rxjs';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { MatButton } from '@angular/material/button';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'smb-invoicing-payment-card',\n templateUrl: './payment-card.component.html',\n styleUrls: ['../shared/card.scss', './payment-card.component.scss'],\n standalone: true,\n imports: [\n MatCard,\n MatCardTitle,\n MatCardHeader,\n MatCardContent,\n DetailRowComponent,\n PaymentBusinessComponent,\n BillingI18nModule,\n LexiconModule,\n GalaxyAlertModule,\n MatButton,\n RouterLink,\n ],\n})\nexport class PaymentCardComponent implements OnInit {\n @Input() payment: RetailPayment;\n @Input() paymentOutstanding: boolean;\n @Input() viewConfig: ViewConfig = {\n hideInvoiceReference: false,\n hideBusinessReference: false,\n };\n rows: Row[];\n showInvoicePaymentCTA = false;\n\n protected readonly RetailPaymentReferenceTypeEnum = RetailPaymentReferenceTypeEnum;\n\n constructor(\n private readonly translateService: TranslateService,\n private currencyFormatter: GalaxyCurrencyPipe,\n ) {}\n\n async ngOnInit(): Promise {\n this.rows = await this.paymentToRows(this.payment);\n this.showInvoicePaymentCTA =\n this.payment.referenceType === RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE &&\n this.payment.status === RetailPaymentStatus.Failed &&\n this.paymentOutstanding === true;\n }\n\n async paymentToRows(payment: RetailPayment): Promise {\n const applicationFee = payment.applicationFee ?? 0;\n const paymentFacilitatorFee = payment.paymentFacilitatorFee ?? 0;\n let paymentFeeRows = [\n {\n id: 'fee',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.FEE'),\n value: this.currencyFormatter.transform(\n -((applicationFee + paymentFacilitatorFee) / 100),\n payment.currencyCode,\n ),\n },\n ];\n if (payment.paymentFacilitatorType === PaymentFacilitatorType.STANDARD_STRIPE) {\n paymentFeeRows = [\n {\n id: 'applicationFee',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.APPLICATION_FEE'),\n value: this.currencyFormatter.transform(-(applicationFee / 100), payment.currencyCode),\n },\n {\n id: 'stripeFee',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.STRIPE_FEE'),\n value: this.currencyFormatter.transform(-(paymentFacilitatorFee / 100), payment.currencyCode),\n },\n ];\n }\n\n const rows: Row[] = [\n {\n id: 'date',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.DATE'),\n value: formatDate(payment.created, 'MMM d, y - h:mm a', 'en-US'),\n },\n {\n id: 'amount',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.AMOUNT'),\n value: this.currencyFormatter.transform(payment.amount / 100, payment.currencyCode),\n },\n ...paymentFeeRows,\n {\n id: 'net',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.NET'),\n value: this.currencyFormatter.transform(\n (payment.amount - applicationFee - paymentFacilitatorFee) / 100,\n payment.currencyCode,\n ),\n },\n {\n id: 'status',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.STATUS'),\n value: payment.status,\n dispute: payment.dispute,\n },\n ];\n\n if (this.viewConfig.hideInvoiceReference) {\n rows.push({\n id: 'description',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.DESCRIPTION'),\n value: formatDescription(payment),\n });\n } else {\n rows.push({\n id: 'description',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.DESCRIPTION'),\n value: formatDescription(payment),\n routerLink: buildDescriptionRouterLink(payment),\n });\n }\n\n const totalRefunded = calculateTotalRefund(payment.refunds);\n if (totalRefunded > 0) {\n rows.splice(2, 0, {\n id: 'refunded',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.REFUNDED'),\n value: this.currencyFormatter.transform(totalRefunded / 100, payment.currencyCode),\n });\n }\n\n if (payment.cardDetails) {\n rows.push({\n id: 'paymentMethod',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.PAYMENT_METHOD'),\n value: '•••• ' + payment.cardDetails.lastFourDigits,\n valuePrefixImage: {\n src: paymentCardImageUrls[payment.cardDetails.cardType],\n alt: payment.cardDetails.cardType,\n height: 25,\n },\n });\n }\n if (payment.status === 'Failed') {\n let failureMessage = '';\n if (payment.declineReasonDescription) {\n const description = await firstValueFrom(this.translateService.stream(payment.declineReasonDescription));\n const nextSteps = await firstValueFrom(this.translateService.stream(payment.declineReasonNextSteps));\n failureMessage = `${description} ${nextSteps}`;\n } else {\n failureMessage = payment.failureMessage;\n }\n rows.push({\n id: 'failureReason',\n asyncTranslatedName: this.translateService.stream('PAYMENT_PAGE.FAILURE_REASON'),\n value: failureMessage,\n });\n }\n return rows;\n }\n}\n\nexport function calculateTotalRefund(refunds: RetailRefund[]): number {\n return refunds.reduce((total, refund) => total + refund.amount, 0);\n}\n\nfunction buildDescriptionRouterLink(payment: RetailPayment): string[] {\n if (payment.referenceType === RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE) {\n return ['/invoices', payment.referenceId, 'edit'];\n } else if (payment.referenceType === RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_SALES_ORDER) {\n return ['/order-management', payment.customerId, 'info', payment.referenceId];\n }\n return null;\n}\n\n/**\n * Format description removes any prefixes applied to the backend data to make the displayed value cleaner.\n * If the value is an invoice number, it will format it with the correct padding.\n */\nfunction formatDescription(payment: RetailPayment): string {\n const description = stripReferencePrefixFromPaymentDescription(payment.description, payment.referenceType);\n if (payment.referenceType === RetailPaymentReferenceTypeEnum.RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE) {\n return formatInvoiceNumber(parseInt(description, 10));\n }\n return description;\n}\n","\n \n \n {{ 'PAYMENT_PAGE.PAYMENT_DETAILS' | translate }}\n \n
\n
{{ payment.id }}
\n
\n \n @for (row of rows; track row.id) {\n \n }\n @if (showInvoicePaymentCTA) {\n \n {{ 'PAYMENT_PAGE.RETRY_PAYMENT_DESCRIPTION' | translate }}\n \n \n }\n @if (!viewConfig.hideBusinessReference) {\n \n }\n \n
\n","import { Component, EventEmitter, input, Output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DisputeStatus, isRefundableStatus, RetailPayment } from '@galaxy/billing';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { DatePipe } from '@angular/common';\nimport { MatAnchor, MatButton } from '@angular/material/button';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { MatCard } from '@angular/material/card';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIcon } from '@angular/material/icon';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { PaymentCardComponent } from '../details-section/payment-card.component';\nimport { PaymentStatusChipComponent } from '../../../payment-status-chip/payment-status-chip.component';\nimport { ViewConfig } from '../shared/view-config';\nimport { PricePipe } from '../../../shared/pipes';\n\n@Component({\n selector: 'smb-invoicing-payment-page',\n templateUrl: './payment-page-container.component.html',\n styleUrls: ['./payment-page-container.component.scss'],\n standalone: true,\n imports: [\n GalaxyPageModule,\n PaymentStatusChipComponent,\n MatButton,\n LexiconModule,\n MatAnchor,\n RouterLink,\n MatCard,\n GalaxyEmptyStateModule,\n MatIcon,\n GalaxyAlertModule,\n DatePipe,\n PaymentCardComponent,\n PricePipe,\n ],\n})\nexport class PaymentPageContainerComponent {\n merchantId = input.required();\n loading = input(true);\n payment = input.required();\n paymentOutstanding = input.required();\n errorCode = input();\n paymentsPageLink = input.required();\n viewConfig = input({\n hideRefundReference: false,\n hideDisputeReference: false,\n hideBusinessReference: false,\n hideInvoiceReference: false,\n });\n\n @Output() acceptDisputeClicked = new EventEmitter();\n @Output() createRefundClicked = new EventEmitter();\n\n needsResponseWarningStatuses = [DisputeStatus.WARNING_NEEDS_RESPONSE, DisputeStatus.NEEDS_RESPONSE];\n disputeLostStatus = DisputeStatus.LOST;\n isRefundableStatus = isRefundableStatus;\n\n onAcceptDisputeClicked(): void {\n this.acceptDisputeClicked.emit();\n }\n\n onCreateRefundClicked(payment: RetailPayment): void {\n this.createRefundClicked.emit(payment);\n }\n}\n","\n \n \n \n \n \n @if (!payment()) {\n {{ 'PAYMENT_PAGE.PAGE_TITLE' | translate }}\n } @else {\n \n {{ payment().amount | price: payment().currencyCode : null : true : false : true }}  \n {{ 'PAYMENT_PAGE.PAGE_TITLE' | translate }}\n
\n \n
\n
\n }\n
\n @if (payment()) {\n \n @if (\n !viewConfig().hideDisputeReference &&\n !!payment().dispute &&\n needsResponseWarningStatuses.includes(payment().dispute.status)\n ) {\n \n }\n @if (\n !viewConfig().hideRefundReference &&\n payment().dispute?.status !== disputeLostStatus &&\n (isRefundableStatus(payment().status) ||\n (!!payment().dispute && !needsResponseWarningStatuses.includes(payment().dispute.status)))\n ) {\n \n }\n @if (!viewConfig().hideDisputeReference && !!payment().dispute) {\n \n \n @if (needsResponseWarningStatuses.includes(payment().dispute.status)) {\n {{ 'PAYMENT_PAGE.PROVIDE_EVIDENCE' | translate }}\n } @else {\n {{ 'PAYMENT_PAGE.VIEW_EVIDENCE' | translate }}\n }\n \n \n }\n \n }\n
\n\n \n
\n @if (errorCode()) {\n \n \n \n payments\n \n \n {{ 'PAYMENT_PAGE.ERROR_TITLE' | translate }}\n \n @if (errorCode() === 404) {\n

\n {{ 'PAYMENT_PAGE.NOT_FOUND' | translate }}\n

\n } @else {\n

\n {{ 'PAYMENT_PAGE.GENERAL_ERROR' | translate }}\n

\n \n \n \n {{ 'PAYMENT_PAGE.PAGE_TITLE' | translate }}\n \n \n \n }\n
\n
\n }\n @if (\n !viewConfig().hideDisputeReference &&\n payment() &&\n payment().dispute &&\n needsResponseWarningStatuses.includes(payment().dispute.status)\n ) {\n
\n \n \n {{ 'PAYMENT_PAGE.NEEDS_RESPONSE' | translate }}\n \n —\n {{ 'PAYMENT_PAGE.NEEDS_RESPONSE_DESCRIPTION' | translate }}\n {{ payment().dispute.evidenceDetails.dueBy | date: 'mediumDate' }}.\n \n
\n }\n @if (payment() && paymentOutstanding() !== null) {\n
\n \n
\n }\n \n \n
\n
\n
\n","export {\n PricePipe,\n PadInvoiceNumberPipe,\n InvoiceSourcePipe,\n InvoiceCollectionMethodPipe,\n StatusBadgePipe,\n} from './shared/pipes';\nexport { InvoiceTableComponent } from './invoice-table/invoice-table.component';\nexport { SMBInvoicingModule } from './smb-invoicing.module';\nexport { InvoiceService } from './invoice.service';\nexport { formatInvoiceNumber } from './shared/invoice';\nexport { InvoiceViewModel } from './invoice/invoice';\nexport { ChangeInvoiceStatusDialogComponent } from './change-invoice-status-dialog/change-invoice-status-dialog.component';\nexport * from './payment-method/index';\nexport { BankAccountComponent } from './bank-account/bank-account.component';\nexport { BankAccountService } from './bank-account/bank-account.service';\nexport { CreateBankAccountRequest } from './bank-account/add-bank-account/add-bank-account.component';\nexport { PayoutListComponent } from './payout/payout-list/payout-list.component';\nexport { PayoutStatusBadgeComponent } from './payout/payout-status-badge/payout-status-badge.component';\nexport { PayoutsComponent } from './payout/payouts/payouts.component';\nexport { PayoutDetailsComponent } from './payout/payout-details/payout-details.component';\nexport { RetailPaymentsOnboardingComponent } from './retail-payments/onboarding/retail-payments-onboarding.component';\nexport { RetailPaymentsEmptyStateComponent } from './retail-payments/empty-state/retail-payments-empty-state.component';\nexport {\n RefundDialogComponent,\n RefundDialogData,\n RefundDialogResult,\n VIEW_INVOICE_ACTION,\n REFUND_ACTION,\n} from './refund/refund-dialog/refund-dialog.component';\nexport { refundReasonToDisplayReason } from './refund/refund-dialog/reason';\nexport { CustomerDataService, CustomerData, CUSTOMER_DATA_SERVICE } from './customer/customer-data';\nexport { ExportButtonComponent } from './export-financial-reports/components/export-button/export-button.component';\nexport { PaymentStatusChipComponent } from './payment-status-chip/payment-status-chip.component';\nexport { TransactionsTableComponent } from './transactions/transactions-table/transactions-table.component';\nexport { TransactionsComponent } from './transactions/transactions.component';\nexport { TransactionFilters } from './transactions/transactions-table/transactions-table-datasource';\nexport * from './transactions/common';\nexport { DetailRowComponent, Row, Color } from './retail-payments/details/details-row/detail-row.component';\nexport { PaymentCardComponent } from './retail-payments/details/details-section/payment-card.component';\nexport { PaymentBusinessComponent } from './retail-payments/details/customer-section/payment-business.component';\nexport { paymentCardImageUrls } from './shared/image-src';\nexport { PaymentPageContainerComponent } from './retail-payments/details/page/payment-page-container.component';\nexport { DisputesTableComponent } from './disputes-table/disputes-table.component';\nexport { PaymentTypeToTitlePipe } from './payment-method/select-payment-method-dialog/payment-type-to-title.pipe';\nexport { KeysPipe } from './payment-method/select-payment-method-dialog/keys.pipe';\nexport { ScriptLoaderService, ScriptModel } from './payment-method/stripe.service';\n","export * from './lib/index';\n"],"mappings":"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","names":["NotificationType","init_notification","__esmMin","InvoiceService","init_invoice_service","__esmMin","init_esm","init_src","init_operators","init_notification","constructor","invoiceService","translateService","notification$$","Subject","loading$$","BehaviorSubject","_loading$","asObservable","_notifications$","notification$","loading$","delete","merchantId","invoiceId","next","pipe","take","map","message","type","NotificationType","SUCCESS","catchError","ERROR","of","finalize","changeStatus","invoiceStatus","reason","response$","InvoiceStatus","PAID","pay","VOID","void","Error","instant","err","error","details","fieldViolations","field","description","ɵɵinject","TranslateService","factory","ɵfac","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵproperty","ChangeInvoiceStatusDialogComponent","init_change_invoice_status_dialog_component","__esmMin","init_dialog","init_src","init_notification","constructor","dialogRef","invoiceService","alertService","data","PaidStatus","InvoiceStatus","PAID","VoidStatus","VOID","subscriptions","invoiceId","merchantId","loading$","ngOnInit","push","notification$","subscribe","notification","type","NotificationType","SUCCESS","openSuccessSnack","message","openErrorSnack","ngOnDestroy","forEach","subscription","unsubscribe","changeStatus","invoiceStatus","reason","isSuccess","close","ɵɵdirectiveInject","MatDialogRef","InvoiceService","SnackbarService","MAT_DIALOG_DATA","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","$event","i0","ɵɵrestoreView","_r1","ɵɵtwoWayBindingSet","ɵɵresetView","ɵɵlistener","ɵɵtemplate","ChangeInvoiceStatusDialogComponent_ng_container_29_Template","ChangeInvoiceStatusDialogComponent_ng_template_31_Template","ɵɵtemplateRefExtractor","ɵɵadvance","ɵɵtwoWayProperty","ɵɵtextInterpolate1","internalNotes_r2","value","length","ɵɵpipeBind1","loadingSpinner_r3","getRequestPageSize","ListInvoicesDataSource","init_invoice_table_data_source","__esmMin","init_table","init_esm","init_operators","currentDataLength","pageIndex","pageSize","DataSource","constructor","invoiceService","storedInvoices$$","BehaviorSubject","displayedInvoices$$","loading$$","cursor$$","hasMore$$","_storedInvoices$","asObservable","_displayedInvoices$","_loading$","_hasMore$","hasMore$","loading$","storedInvoices$","connect","disconnect","complete","updatePage","filters","storedItems","getValue","requestPageSize","length","load","setPagedData","list","pipe","take","map","newItems","value","subscribe","items","next","reload","startIndex","endIndex","endIndexForExisting","Math","min","slice","cursor","tap","r","hasMore","nextCursor","results","finalize","WEBLATE_COMPONENT_NAME","RECURRING_INVOICES_FEATURE_FLAG_ID","init_constants","__esmMin","formatInvoiceNumber","num","toString","padStart","isPastDue","date","getTime","Date","init_invoice","__esmMin","PricePipe","PadInvoiceNumberPipe","InvoiceCollectionMethod","InvoiceCollectionMethodPipe","StatusBadgePipe","PaymentStatusBadgePipe","init_pipes","__esmMin","init_src","init_invoice","transform","value","currency","billingFrequency","isCents","translateZero","displaySymbol","formatDisplayPrice","pure","invoiceNumber","toString","padStart","collectionMethod","CollectionMethod","MANUAL_COLLECTION","MANUAL","SEND_EMAIL","EMAIL","CHARGE_AUTOMATICALLY","AUTOMATIC","constructor","statusProperties","Map","InvoiceStatus","DRAFT","text","glxyBadgeColor","VOID","PAID","DUE","invoice","s","get","status","isPastDue","due","LastPaymentStatus","SUCCESS","color","PENDING","FAILED","ɵɵelement","ɵɵpropertyInterpolate","tab_r3","name","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","setFilter","ɵɵrepeaterCreate","InvoiceTableComponent_Conditional_0_For_3_Template","ɵɵrepeaterTrackByIdentity","ɵɵelementEnd","ɵɵadvance","ɵɵrepeater","tabs","_r4","exportCSV","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtextInterpolate1","ɵɵpipeBindV","ɵɵpureFunction2","_c6","row_r5","total","currency","row_r6","ɵɵpipeBind2","ɵɵpureFunction1","_c7","row_r7","autoAdvance","ɵɵproperty","_c8","PopoverPositions","Bottom","ɵɵtemplate","InvoiceTableComponent_td_20_Conditional_1_Conditional_3_Template","status_r8","glxyBadgeColor","text","ɵɵconditional","status","InvoiceStatus","DRAFT","collectionMethod","CollectionMethod","MANUAL_COLLECTION","todayMidnight","InvoiceTableComponent_td_20_Conditional_1_Template","tmp_4_0","updateOriginTooltip","row_r9","origin","InvoiceTableComponent_td_23_Conditional_4_Template","number","displayIcon","row_r10","lastPaymentStatus","color","InvoiceTableComponent_td_26_Conditional_1_Template","_r11","consumeEvent","row_r12","$implicit","selectCustomer","customerId","invoiceSettingsClicked","businessMenu_r13","customerName","ɵɵpureFunction3","_c9","customerAddress","address","city","state","InvoiceTableComponent_td_29_Conditional_1_Template","InvoiceTableComponent_td_29_Conditional_2_Template","isAdmin","row_r14","due","row_r15","issued","row_r16","_r18","row_r19","selectInvoice","_r20","deleteInvoice","_r21","changeInvoiceStatus","_r22","duplicateInvoice","InvoiceTableComponent_td_41_Conditional_16_Conditional_1_Template","InvoiceTableComponent_td_41_Conditional_16_Conditional_4_Template","duplicating$$","_r23","navToCreateCreditNote","id","PaymentStatus","PENDING","_r17","InvoiceTableComponent_td_41_Conditional_7_Template","generatePDF","InvoicePDFType","RECEIPT","INVOICE","InvoiceTableComponent_td_41_Conditional_14_Template","InvoiceTableComponent_td_41_Conditional_15_Template","InvoiceTableComponent_td_41_Conditional_16_Template","copyShortenedLink","InvoiceTableComponent_td_41_Conditional_20_Template","loadingPaymentLink","optionsMenu_r24","PAID","DUE","row_r26","_r25","ɵɵprojection","createDateFilter","startDateValue","endDateValue","dateField","startDate","endDate","Date","setUTCHours","dateGte","dateLte","DESIRED_COLUMN_ORDER","InvoiceTableComponent","init_invoice_table_component","__esmMin","init_common","init_core","init_forms","init_paginator","init_src","init_popover","init_esm","init_operators","init_change_invoice_status_dialog_component","init_invoice_table_data_source","init_constants","init_ngx_translate_core","init_confirmation_modal","init_tabs","init_icon","init_table","init_badge","init_tooltip","init_pipes","init_menu","init_button_loading_indicator","init_button","init_progress_spinner","constructor","translate","invoiceService","analyticsService","snackbarService","dialog","featureFlagService","router","translateService","dataAction","invoiceSelected","EventEmitter","customerSelected","invoiceSettingSelected","confirmationModal","inject","OpenConfirmationModalService","statusFormControl","UntypedFormControl","LastPaymentStatus","CollectionMethodAPI","setHours","statuses","staticColumns","allColumns","destroyed$","ReplaySubject","inputFilters$$","inputFilters$","asObservable","tabFilter$$","BehaviorSubject","tabFilter$","signal","dataSource","ListInvoicesDataSource","length$","storedInvoices$","pipe","skip","withLatestFrom","hasMore$","map","items","hasMore","INDETERMINATE_MAX","length","ngOnInit","instant","pastDue","VOID","initFilterGroup","initTabsControl","initInvoiceFilters","columnsToDisplay","getColumnsToDisplay","additionalColumns","displayedColumns","c","displayedColumnsNames","filters$","combineLatest","invoiceFilters$","tabFilter","inputFilters","invoiceFilters","find","f","computeStatusesFromFilters","__spreadProps","__spreadValues","merchantId","origins","collectionMethods","initPaginator","takeUntil","subscribe","filters","paginator","firstPage","reload","pageSize","pageIndex","ngOnChanges","changes","next","currentValue","ngOnDestroy","complete","issuedStartDateControl","DateFilterControl","appliedValueMapper","value","label","date","formatDate","issuedEndDateControl","createdStartDateControl","createdEndDateControl","filterGroup","FilterGroup","addToolbarSection","SearchFilterControl","addSection","prependSection","buildLastPaymentStatusCheckboxControls","buildStatusCheckboxControls","disableCreatedControls","disable","emitEvent","disableIssuedControls","enableCreatedControls","enable","enableIssuedControls","valueChanges","startWith","issuedStart","issuedEnd","createdStart","createdEnd","batchGetStatus","partnerId","RECURRING_INVOICES_FEATURE_FLAG_ID","catchError","of","grandfather_recurring_invoices","resp","isOnRecurringInvoiceFeatureFlag","sourceFilters","CheckboxFilterControl","push","inputFilter","invoiceFilter","filter","debounceTime","statusTabGroup","selectedIndex","removeSection","distinctUntilChanged","filterValues","buildStatusFilterValues","draft","paid","void","buildOriginsFilterValues","manual","renewal","template","buildCollectionMethodsFilterValues","manualCollection","chargeAutomatically","sendEmail","lastPaymentStatuses","buildLastPaymentStatusFilterValues","paymentStatusSuccess","paymentStatusPending","paymentStatusFailed","dateFilter","issuedStartDate","issuedEndDate","InvoiceDateField","ISSUED","createdStartDate","createdEndDate","CREATED","filterDraft","filterDue","filterPaid","filterVoid","filterPastDue","filterSuccess","filterPending","filterFailed","SUCCESS","FAILED","filterManual","filterRenewal","filterTemplate","InvoiceOriginAPI","MANUAL","RENEWAL","TEMPLATE","filterAuto","filterEmail","CHARGE_AUTOMATICALLY","SEND_EMAIL","page","updatePage","invoice","take","switchMap","openModal","type","title","invoiceNumber","message","confirmButtonText","actionOnEnterKey","action","delete","EMPTY","tap","deleted","open","ChangeInvoiceStatusDialogComponent","width","data","invoiceId","afterClosed","isSuccess","event","stopPropagation","index","setValue","sortColumns","columns","sort","a","b","indexOf","columnIds","includes","selectedColumns","emit","documentType","fileResponse","filename","downloadFile","__async","update","trackingProps","firstValueFrom","accountGroupId","url","generateShortLink","document","hasFocus","window","focus","navigator","clipboard","writeText","then","trackEvent","openSuccessSnack","e","error","openErrorSnack","file","URL","createObjectURL","link","downloadAnchor","nativeElement","href","download","click","revokeObjectURL","duplicate","invoiceID","InvoiceOrigin","navigate","queryParams","ɵɵdirectiveInject","TranslateService","InvoiceService","ProductAnalyticsService","SnackbarService","MatDialog","FeatureFlagService","Router","selectors","viewQuery","rf","ctx","FilterService","provide","MatPaginatorIntl","useClass","MatPaginatorOfManyDisplayed","ɵɵNgOnChangesFeature","ngContentSelectors","_c4","decls","vars","consts","InvoiceTableComponent_Conditional_0_Template","InvoiceTableComponent_Conditional_6_Template","ɵɵelementContainerStart","InvoiceTableComponent_th_13_Template","InvoiceTableComponent_td_14_Template","InvoiceTableComponent_th_16_Template","InvoiceTableComponent_td_17_Template","InvoiceTableComponent_th_19_Template","InvoiceTableComponent_td_20_Template","InvoiceTableComponent_th_22_Template","InvoiceTableComponent_td_23_Template","InvoiceTableComponent_th_25_Template","InvoiceTableComponent_td_26_Template","InvoiceTableComponent_th_28_Template","InvoiceTableComponent_td_29_Template","InvoiceTableComponent_th_31_Template","InvoiceTableComponent_td_32_Template","InvoiceTableComponent_th_34_Template","InvoiceTableComponent_td_35_Template","InvoiceTableComponent_th_37_Template","InvoiceTableComponent_td_38_Template","InvoiceTableComponent_th_40_Template","InvoiceTableComponent_td_41_Template","InvoiceTableComponent_tr_42_Template","InvoiceTableComponent_tr_43_Template","InvoiceTableComponent_Conditional_44_Template","loading$","ɵɵpureFunction0","_c5","FilterModule","FilterToolbarActionsDirective","FilterContentDirective","FilterModelComponent","MatTabGroup","MatTab","VaMaterialTableModule","VaMaterialTableComponent","MatIcon","TranslateModule","TranslatePipe","AsyncPipe","MatTable","MatColumnDef","MatHeaderCell","MatCell","GalaxyBadgeModule","BadgeComponent","GalaxyTooltipModule","GalaxyTooltipDirective","PadInvoiceNumberPipe","MatMenuTrigger","GalaxyPipesModule","GalaxyAddressPipe","MatMenu","MatMenuItem","DatePipe","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","MatIconButton","MatProgressSpinner","MatHeaderRow","MatRow","MatPaginator","MatButton","PricePipe","PaymentStatusBadgePipe","InvoiceCollectionMethodPipe","StatusBadgePipe","MatHeaderRowDef","MatRowDef","MatHeaderCellDef","MatCellDef","Filter2TableI18nModule","styles","changeDetection","en_devel_default","init_en_devel","__esmMin","ScriptLoaderService","init_stripe_service","__esmMin","init_esm","constructor","loaded","load","script","name","src","Observable","observer","next","complete","scriptElement","document","createElement","type","onload","onerror","error","getElementsByTagName","appendChild","factory","ɵfac","providedIn","PaymentTypeToTitlePipe","init_payment_type_to_title_pipe","__esmMin","init_src","constructor","translateService","typeToTranslationKey","PaymentMethodType","CARD","ACH_DEBIT","ACSS_DEBIT","transform","value","instant","ɵɵdirectiveInject","TranslateService","pure","KeysPipe","init_keys_pipe","__esmMin","transform","value","Array","from","keys","pure","SMBInvoicingModule","init_smb_invoicing_module","__esmMin","init_common","init_forms","init_button","init_card","init_dialog","init_grid_list","init_icon","init_input","init_list","init_menu","init_paginator","init_progress_bar","init_progress_spinner","init_radio","init_select","init_table","init_tabs","init_toolbar","init_tooltip","init_router","init_src","init_ngx_translate_core","init_badge","init_datepicker","init_empty_state","init_form_field","init_galaxy_wrap","init_pipes","init_snackbar_service","init_en_devel","init_constants","init_invoice_service","init_stripe_service","init_button_loading_indicator","InvoiceService","ScriptLoaderService","imports","CommonModule","TranslateModule","LexiconModule","forChild","componentName","WEBLATE_COMPONENT_NAME","baseTranslation","En","MatListModule","MatButtonModule","MatIconModule","MatInputModule","MatTableModule","MatMenuModule","MatProgressSpinnerModule","MatPaginatorModule","MatDialogModule","MatTooltipModule","RouterModule","GalaxySnackbarModule","VaFilterModule","VaStencilsModule","VaMaterialTableModule","FilterModule","MatRadioModule","FormsModule","MatTabsModule","ReactiveFormsModule","GalaxyInputModule","MatToolbarModule","GalaxyPipesModule","GalaxyDatepickerModule","MatSelectModule","GalaxyWrapModule","MatCardModule","MatGridListModule","MatProgressBarModule","GalaxyBadgeModule","GalaxyEmptyStateModule","GalaxyFormFieldModule","GalaxyTooltipModule","GalaxyButtonLoadingIndicatorModule","ɵɵelement","ɵɵproperty","ctx","ɵɵsanitizeUrl","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","PaymentMethodDisplayComponent_Case_2_Conditional_0_Template","PaymentMethodDisplayComponent_Case_2_Conditional_1_Template","ɵɵconditional","tmp_2_0","ctx_r0","CARD_BRAND_TO_ICON_SRC","paymentMethod","details","cardType","id","ɵɵadvance","ɵɵtextInterpolate1","lastFourDigits","ɵɵtextInterpolate3","ɵɵpipeBind1","expiryMonth","ɵɵpipeBind2","expiryYear","toString","ɵɵelementContainer","PaymentMethodDisplayComponent_Case_3_ng_container_0_Template","bankAccount_r2","PaymentMethodDisplayComponent_Case_4_ng_container_0_Template","PaymentMethodDisplayComponent","init_payment_method_display_component","__esmMin","init_common","init_icon","init_src","init_ngx_translate_core","constructor","PaymentMethodType","Visa","Mastercard","Discover","selectors","inputs","decls","vars","consts","template","rf","PaymentMethodDisplayComponent_Case_2_Template","PaymentMethodDisplayComponent_Case_3_Template","PaymentMethodDisplayComponent_Case_4_Template","PaymentMethodDisplayComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","tmp_1_0","type","CARD","ACH_DEBIT","ACSS_DEBIT","NgTemplateOutlet","MatIconModule","MatIcon","SlicePipe","TranslateModule","TranslatePipe","styles","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵtextInterpolate1","ɵɵlistener","$event","ɵɵrestoreView","_r5","paymentMethod_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","removeMethod","ɵɵtemplate","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_ng_container_4_ng_container_9_button_1_Template","details","id","selectedMethod_r6","canRemoveSelectedMethod","_r2","selectMethod","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_ng_container_4_Conditional_7_Template","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_ng_container_4_Conditional_8_Template","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_ng_container_4_ng_container_9_Template","ɵɵclassProp","lastPaymentMethod_r7","defaultPaymentMethod","ɵɵconditional","expired","default","selectedMethod$$","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_ng_container_4_Template","firstKey_r9","type_r8","paymentMethods_r10","get","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_1_Template","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_ng_container_2_Template","size","SelectPaymentMethodDialogComponent_ng_container_5_ng_container_1_Template","paymentMethods$","loadingSpinner_r11","submitDialogText","SelectPaymentMethodDialogComponent","init_select_payment_method_dialog_component","__esmMin","init_forms","init_dialog","init_src","init_esm","init_operators","init_radio","init_common","init_button","init_badge","init_ngx_translate_core","init_icon","init_progress_spinner","init_payment_method_display_component","init_payment_type_to_title_pipe","init_keys_pipe","init_divider","constructor","changeDetector","stripeScriptLoader","paymentService","paymentMethodService","dialogRef","alertService","data","translateService","PaymentMethodType","isAddingMethod$$","ReplaySubject","paymentMethods$$","asObservable","cardHandler","onChange","bind","accountId","merchantId","customerId","userId","stripeKey","next","paymentMethods","hideExistingMethods","paymentMethodsMap","firstEntry","values","value","length","ngOnInit","scriptModel$","load","paymentMethod","UntypedFormControl","Validators","required","markAsTouched","intent$","prepareRetailPayment","instant","ngOnDestroy","card","removeEventListener","destroy","ngAfterViewInit","pipe","take","subscribe","stripe","Stripe","stripeAccount","elements","create","mount","cardElement","nativeElement","addEventListener","paymentMethodId","save","close","newMethod","addPaymentMethod","error","message","detectChanges","intent","confirmCard","stripeClientSecret","handleConfirmCardError","errorMessage","incorrect_number","card_declined","code","openErrorSnack","clientSecret","payment_method","userID","from","confirmCardSetup","map","response","catchError","err","finalize","setupIntent","method","event","stopPropagation","deletePaymentMethod","withLatestFrom","_","type","methods","index","findIndex","m","splice","delete","set","Map","ɵɵdirectiveInject","ChangeDetectorRef","ScriptLoaderService","PaymentService","PaymentMethodService","MatDialogRef","SnackbarService","MAT_DIALOG_DATA","TranslateService","selectors","viewQuery","rf","ctx","decls","vars","consts","template","SelectPaymentMethodDialogComponent_ng_container_5_Template","i0","_r1","SelectPaymentMethodDialogComponent_ng_container_27_Template","SelectPaymentMethodDialogComponent_ng_template_29_Template","ɵɵtemplateRefExtractor","ɵɵpureFunction1","_c1","NgIf","NgForOf","NgClass","AsyncPipe","FormsModule","NgControlStatus","RequiredValidator","ReactiveFormsModule","FormControlDirective","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatRadioModule","MatRadioGroup","MatRadioButton","MatButtonModule","MatButton","MatIconButton","MatIconModule","MatIcon","MatDividerModule","MatDivider","MatProgressSpinnerModule","MatProgressSpinner","GalaxyBadgeModule","BadgeComponent","PaymentMethodDisplayComponent","TranslateModule","TranslatePipe","PaymentTypeToTitlePipe","KeysPipe","styles","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","paymentMethod_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","makePaymentMethodDefault","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","makeDefaultButton","ɵɵproperty","ɵɵpipeBind1","_r5","deletePaymentMethod","ɵɵelementContainerStart","ɵɵelement","ɵɵtemplate","PaymentMethodSelectorComponent_div_2_ng_container_1_ng_container_4_button_4_Template","PaymentMethodSelectorComponent_div_2_ng_container_1_ng_container_4_glxy_badge_5_Template","PaymentMethodSelectorComponent_div_2_ng_container_1_ng_container_4_button_6_Template","isEditable","details","id","defaultPaymentMethod","canRemoveSelectedMethod","PaymentMethodSelectorComponent_div_2_ng_container_1_ng_container_4_Template","ɵɵclassProp","firstKey_r7","ɵɵtextInterpolate","type_r6","sortedMethods","get","PaymentMethodSelectorComponent_div_2_ng_container_1_Template","_r1","addPaymentMethodDialog","addCardButton","hintText","_r8","openPaymentMethodDialog","editButton","PaymentMethodSelectorComponent_ng_template_3_ng_container_0_button_2_Template","ɵɵpureFunction2","_c1","PaymentMethodSelectorComponent_ng_template_3_ng_container_0_Template","emptyPaymentMethod_r9","_r10","emptyCardHintText","PaymentMethodSelectorComponent_ng_template_5_div_0_Template","PaymentMethodSelectorComponent","init_payment_method_selector_component","__esmMin","init_core","init_src","init_esm","init_select_payment_method_dialog_component","init_ngx_translate_core","init_common","init_button","init_icon","init_divider","init_form_field","init_badge","init_payment_method_display_component","init_payment_type_to_title_pipe","init_keys_pipe","constructor","dialog","paymentMethodService","cd","snackbarService","translateService","selectedPaymentMethod","EventEmitter","ngOnInit","instant","ngOnChanges","changes","paymentMethods","previousValue","currentValue","_groupAndSortPaymentMethods","open","SelectPaymentMethodDialogComponent","width","data","accountId","stripeConnectId","merchantId","customerId","userId","stripeKey","submitDialogText","autoFocus","afterClosed","subscribe","m","emit","hideExistingMethods","paymentMethod","__async","paymentMethodId","newMethod","firstValueFrom","openErrorSnack","type","methods","index","findIndex","splice","length","delete","set","Map","detectChanges","_typeSortPriority","PaymentMethodType","CARD","ACH_DEBIT","ACSS_DEBIT","grouped","sort","a","b","typePriorityA","typePriorityB","isADefault","forEach","method","group","push","ɵɵdirectiveInject","MatDialog","PaymentMethodService","ChangeDetectorRef","SnackbarService","TranslateService","selectors","inputs","showAllMethods","outputs","features","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","PaymentMethodSelectorComponent_div_2_Template","PaymentMethodSelectorComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","PaymentMethodSelectorComponent_ng_template_5_Template","ɵɵpureFunction1","_c0","size","singlePaymentMethod_r11","NgIf","NgForOf","NgClass","MatButtonModule","MatButton","MatIconButton","MatIconModule","MatIcon","MatDividerModule","MatDivider","MatFormFieldModule","MatHint","GalaxyBadgeModule","BadgeComponent","PaymentMethodDisplayComponent","TranslateModule","TranslatePipe","PaymentTypeToTitlePipe","KeysPipe","styles","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","selectPaymentMethod","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","isEditable","stripeKey","ɵɵpipeBind1","defaultPaymentMethod$$","customerId","emptyCardHintText","hintText","submitDialogText","merchantId","stripeConnectId","paymentMethods$$","canRemoveSelectedMethod","showAllMethods","ɵɵelement","DefaultPaymentMethodSelectorComponent","init_default_payment_method_selector_component","__esmMin","init_core","init_esm","init_common","init_payment_method_selector_component","init_ngx_translate_core","constructor","dialog","paymentMethodService","saveCardAsDefault","paymentMethodSelected","EventEmitter","ReplaySubject","loadingPaymentMethods$$","ngOnInit","_listPaymentMethods","paymentMethod","__async","selectedPaymentMethodId","paymentMethodId","firstValueFrom","setDefaultPaymentCard","emit","next","paymentMethods","list","defaultPaymentMethod","find","method","default","ɵɵdirectiveInject","MatDialog","PaymentMethodService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DefaultPaymentMethodSelectorComponent_ng_container_0_Template","DefaultPaymentMethodSelectorComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","loadingPaymentMethods_r3","AsyncPipe","NgIf","TranslateModule","TranslatePipe","PaymentMethodSelectorComponent","styles","init_payment_method","__esmMin","init_payment_method_selector_component","init_payment_method_display_component","init_default_payment_method_selector_component","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","country_r1","value","ɵɵadvance","ɵɵtextInterpolate1","label","c_r2","ɵɵtemplate","AddBankAccountComponent_glxy_form_field_9_mat_option_5_Template","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r2","currencyOptions","ɵɵpipeBind2","ɵɵpureFunction0","_c0","ɵɵelement","AddBankAccountComponent_Case_11_glxy_error_6_Template","AddBankAccountComponent_Case_11_glxy_error_7_Template","AddBankAccountComponent_Case_11_glxy_error_14_Template","AddBankAccountComponent_Case_11_glxy_error_15_Template","AddBankAccountComponent_Case_11_glxy_error_22_Template","AddBankAccountComponent_Case_11_glxy_error_23_Template","canadaForm","get","touched","hasError","AddBankAccountComponent_Case_12_glxy_error_6_Template","AddBankAccountComponent_Case_12_glxy_error_7_Template","AddBankAccountComponent_Case_12_glxy_error_14_Template","AddBankAccountComponent_Case_12_glxy_error_15_Template","unitedStatesForm","_c1","AddBankAccountComponent_Case_13_glxy_error_6_Template","AddBankAccountComponent_Case_13_glxy_error_7_Template","czechRepublicForm","_c2","AddBankAccountComponent_Case_14_glxy_error_6_Template","AddBankAccountComponent_Case_14_glxy_error_7_Template","AddBankAccountComponent_Case_14_glxy_error_14_Template","AddBankAccountComponent_Case_14_glxy_error_15_Template","australiaForm","_c3","AddBankAccountComponent_Case_15_glxy_error_6_Template","AddBankAccountComponent_Case_15_glxy_error_7_Template","newZealandForm","_c4","AddBankAccountComponent_Case_16_glxy_error_6_Template","AddBankAccountComponent_Case_16_glxy_error_7_Template","AddBankAccountComponent_Case_16_glxy_error_14_Template","AddBankAccountComponent_Case_16_glxy_error_15_Template","unitedKingdomForm","_c5","AddBankAccountComponent_Case_17_glxy_error_6_Template","AddBankAccountComponent_Case_17_glxy_error_7_Template","unitedArabEmiratesForm","_c6","AddBankAccountComponent_Case_18_glxy_error_6_Template","AddBankAccountComponent_Case_18_glxy_error_7_Template","germanyForm","addBankAccountError","CountryCodes","AddBankAccountComponent","init_add_bank_account_component","__esmMin","init_core","init_forms","init_dialog","init_src","init_ngx_translate_core","init_operators","init_form_field","init_common","init_input","init_select","constructor","formBuilder","translateService","cdr","merchantCountry","input","subscriptions","countryOptions","countryOptionUS","US","instant","countryOptionCA","CA","countryOptionCZ","CZ","countryOptionAU","AU","countryOptionNZ","NZ","countryOptionGB","GB","countryOptionAE","AE","countryOptionDE","DE","Currency","CAD","USD","countryForm","group","country","Validators","required","currency","routingNumber","pattern","accountNumber","transitNumber","institutionNumber","iban","bsb","sortCode","account","ngOnInit","push","valueChanges","pipe","distinctUntilChanged","tap","disable","patchValue","enable","CZK","AUD","NZD","GBP","EUR","subscribe","countryCode","ngOnDestroy","forEach","subscription","unsubscribe","buildUSAccountRequest","toLowerCase","routing_number","account_number","buildCanadianAccountRequest","buildCzechAccountRequest","buildAustralianAccountRequest","buildNewZealandAccountRequest","buildUnitedKingdomAccountRequest","replaceAll","buildUnitedArabEmiratesAccountRequest","buildGermanyAccountRequest","getFormByCountry","validate","markAllAsTouched","markAsDirty","markForCheck","valid","ɵɵdirectiveInject","UntypedFormBuilder","TranslateService","ChangeDetectorRef","selectors","inputs","features","ɵɵProvidersFeature","decls","vars","consts","template","rf","ctx","AddBankAccountComponent_mat_option_7_Template","AddBankAccountComponent_glxy_form_field_9_Template","AddBankAccountComponent_Case_11_Template","AddBankAccountComponent_Case_12_Template","AddBankAccountComponent_Case_13_Template","AddBankAccountComponent_Case_14_Template","AddBankAccountComponent_Case_15_Template","AddBankAccountComponent_Case_16_Template","AddBankAccountComponent_Case_17_Template","AddBankAccountComponent_Case_18_Template","AddBankAccountComponent_glxy_error_19_Template","ɵɵconditional","tmp_4_0","MatDialogModule","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","RequiredValidator","FormGroupDirective","FormControlName","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","MatSelectModule","MatSelect","MatOption","NgForOf","NgIf","MatInput","TranslateModule","TranslatePipe","styles","changeDetection","LoadingStateService","init_loading_state_service","__esmMin","init_core","constructor","loadingStates","signal","getLoadingState","id","setLoading","state","update","current","__spreadProps","__spreadValues","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtemplate","BankAccountListComponent_For_2_glxy_badge_14_Template","ɵɵlistener","bankAccount_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","setDefault","id","delete","ɵɵtextInterpolate","bankName","currency","last4","ɵɵproperty","defaultForCurrency","menu_r4","loadingStates","BankAccountListComponent","init_bank_account_list_component","__esmMin","init_core","init_common","init_icon","init_badge","init_ngx_translate_core","init_button","init_menu","init_loading_state_service","init_button_loading_indicator","constructor","loadingStateService","inject","LoadingStateService","bankAccounts","input","setDefaultBankAccount","output","deleteBankAccount","emit","selectors","inputs","outputs","features","ɵɵProvidersFeature","TranslateService","decls","vars","consts","template","rf","ctx","ɵɵrepeaterCreate","BankAccountListComponent_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","NgIf","GalaxyBadgeModule","BadgeComponent","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","TranslateModule","TranslatePipe","MatIcon","MatIconButton","MatMenuTrigger","MatMenu","MatMenuItem","UpperCasePipe","styles","BankAccountService","init_bank_account_service","__esmMin","init_core","init_esm","init_operators","constructor","bankAccountService","stripeService","stripeScriptService","merchantService","snackbarService","stripeKey","bankAccounts$$","ReplaySubject","bankAccounts$","asObservable","savingBankAccount","signal","addBankAccountError","bankAccountProcessing","getConnectPublicKey","load","pipe","first","subscribe","stripe","Stripe","merchantId","__async","bankAccounts","firstValueFrom","listBankAccounts","err","status","next","setDefault","id","setDefaultBankAccount","errorMessage","error","message","openErrorSnack","delete","deleteBankAccount","create","request","skipSnack","set","result","createToken","createExternalAccount","token","openSuccessSnack","ɵɵinject","StripeService","ScriptLoaderService","MerchantService","SnackbarService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","create","ɵɵtext","ɵɵelementEnd","cancel","ɵɵadvance","ɵɵproperty","savingBankAccount","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelement","ɵɵtemplate","BankAccountComponent_Conditional_0_Conditional_0_mat_card_actions_11_Template","ɵɵtextInterpolate","ɵɵpipeBind2","ɵɵpureFunction1","_c0","currency$","tmp_4_0","merchant","country","addBankAccountError","hasBankAccountConnected","alwaysDisplaySaveButton","$event","_r4","setDefault","delete","bankAccounts","BankAccountComponent_Conditional_0_Conditional_1_Conditional_9_Template","_r3","addBankAccount","BankAccountComponent_Conditional_0_Conditional_1_Conditional_14_Template","ɵɵconditional","canViewPayouts","BankAccountComponent_Conditional_0_Conditional_0_Template","BankAccountComponent_Conditional_0_Conditional_1_Template","displayAddBankAccountForm","paymentStatus","BankAccountComponent","init_bank_account_component","__esmMin","init_core","init_add_bank_account_component","init_common","init_badge","init_ngx_translate_core","init_button","init_router","init_alert","init_card","init_bank_account_list_component","init_button_loading_indicator","init_rxjs_interop","init_bank_account_service","init_esm","init_src","init_loading_state_service","constructor","bankAccountService","inject","BankAccountService","paymentService","PaymentService","loadingStateService","LoadingStateService","input","required","bankAccountsLoaded","signal","toSignal","bankAccounts$","pipe","tap","set","computed","length","retailStatus$","toObservable","filter","Boolean","switchMap","retailStatus","merchantId","catchError","EMPTY","stripeConnectId","supportedRegion","addBankAccountComponent","ngOnInit","load","currency","valueChanges","map","getAndValidateBankAccount","validate","id","__async","setLoading","skipSnack","request","selectors","viewQuery","rf","ctx","AddBankAccountComponent","TranslateService","decls","vars","consts","template","BankAccountComponent_Conditional_0_Template","AsyncPipe","NgIf","TranslateModule","TranslatePipe","MatAnchor","RouterLink","MatButton","MatCard","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","MatCardActions","GalaxyBadgeModule","GalaxyAlertModule","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","BankAccountListComponent","styles","PayoutListDataSource","init_payout_list_datasource","__esmMin","init_table","init_esm","init_operators","DataSource","constructor","merchantService","merchantId$","_payouts$$","BehaviorSubject","_loading$$","_loading$","asObservable","pipe","tap","_","next","switchMap","merchantId","listRetailPayouts","subscribe","response","results","connect","_collectionViewer","disconnect","complete","loading$","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","PayoutStatusBadgeComponent","init_payout_status_badge_component","__esmMin","init_src","init_icon","init_tooltip","text","status","color","RetailPayoutStatus","Paid","Pending","InTransit","Canceled","Failed","isError","selectors","inputs","failureMessage","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PayoutStatusBadgeComponent_Conditional_2_Template","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","ɵɵconditional","VaBadgeModule","VaBadgeComponent","MatIcon","MatTooltip","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵpipeBind2","row_r1","amount","currencyCode","ɵɵelement","ɵɵproperty","row_r2","status","failureMessage","ɵɵtextInterpolate1","row_r3","arrivalDate","ɵɵtextInterpolate2","row_r4","bankName","lastFourDigits","ɵɵtemplate","PayoutListComponent_td_13_span_1_Template","PayoutListComponent_td_13_i_2_Template","ɵɵlistener","row_r6","ɵɵrestoreView","_r5","$implicit","ctx_r6","ɵɵnextContext","ɵɵresetView","onPayoutSelected","id","row_r9","_r8","shouldShowPayouts","payoutListDataSource","loading$","PayoutListComponent","init_payout_list_component","__esmMin","init_core","init_payout_list_datasource","init_ngx_translate_core","init_pipes","init_tooltip","init_src","init_payout_status_badge_component","constructor","merchantService","displayColumns","payoutSelected","EventEmitter","ngOnInit","PayoutListDataSource","merchantId$","payoutId","emit","ɵɵdirectiveInject","MerchantService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementContainerStart","PayoutListComponent_th_3_Template","PayoutListComponent_td_4_Template","PayoutListComponent_th_6_Template","PayoutListComponent_td_7_Template","PayoutListComponent_th_9_Template","PayoutListComponent_td_10_Template","PayoutListComponent_th_12_Template","PayoutListComponent_td_13_Template","PayoutListComponent_th_15_Template","PayoutListComponent_td_16_Template","PayoutListComponent_tr_17_Template","PayoutListComponent_tr_18_Template","PayoutListComponent_td_20_Template","PayoutListComponent_tr_21_Template","ɵɵpureFunction0","_c0","TranslateModule","TranslatePipe","GalaxyPipesModule","GalaxyDatePipe","GalaxyCurrencyPipe","CommonModule","NgIf","AsyncPipe","GalaxyInputModule","GalaxyCheckboxModule","MatButtonModule","MatIconModule","MatMenuModule","FormsModule","ReactiveFormsModule","GalaxyPopoverModule","DragDropModule","MatCheckboxModule","MatPaginatorModule","MatTableModule","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatFooterCellDef","MatFooterRowDef","MatHeaderCell","MatCell","MatFooterCell","MatHeaderRow","MatRow","MatFooterRow","RouterModule","GalaxyTooltipModule","GalaxyFormFieldModule","GalaxyLoadingSpinnerModule","MatSortModule","MatTabsModule","MatTooltip","VaMaterialTableModule","VaMaterialTableComponent","PayoutStatusBadgeComponent","styles","getImageSrc","imageName","window","location","hostname","paymentCardImageUrls","init_image_src","__esmMin","Visa","Mastercard","Discover","RetailPaymentsEmptyStateComponent","init_retail_payments_empty_state_component","__esmMin","init_core","init_button","init_ngx_translate_core","init_empty_state","init_image_src","constructor","emptyStateAction","EventEmitter","emptyStateImageUrl","getImageSrc","onAction","__async","emit","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵlistener","ɵɵadvance","ɵɵproperty","ɵɵsanitizeUrl","ɵɵtextInterpolate1","ɵɵpipeBind1","TranslateModule","TranslatePipe","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","MatButtonModule","MatAnchor","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","callToActionClicked","emit","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtextInterpolate","description","_r3","emptyStateAction","RetailPaymentsOnboardingComponent","init_retail_payments_onboarding_component","__esmMin","init_common","init_core","init_button","init_icon","init_ngx_translate_core","init_empty_state","init_retail_payments_empty_state_component","constructor","EventEmitter","selectors","inputs","isSupportedRegion","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","RetailPaymentsOnboardingComponent_glxy_empty_state_0_Template","RetailPaymentsOnboardingComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","ɵɵproperty","unsupportedRegion_r4","TranslateModule","TranslatePipe","NgIf","MatIconModule","MatIcon","MatButtonModule","MatAnchor","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","RetailPaymentsEmptyStateComponent","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","balance_r2","futurePayouts","currencyCode","payoutSchedule_r3","balance_r4","inTransit","ɵɵtextInterpolate2","ɵɵpipeBind1","currentBalances_r5","nextInTransitPayout","ctx_r5","DateFormat","longDate","ɵɵelementContainerStart","ɵɵtemplate","PayoutsComponent_Conditional_0_Conditional_0_div_0_ng_container_1_div_10_Template","PayoutsComponent_Conditional_0_Conditional_0_div_0_ng_container_1_Conditional_11_Template","PayoutsComponent_Conditional_0_Conditional_0_div_0_ng_container_1_div_22_Template","PayoutsComponent_Conditional_0_Conditional_0_div_0_ng_container_1_div_23_Template","ɵɵpropertyInterpolate","ɵɵproperty","balances","ɵɵconditional","redirectToStripe$","PayoutsComponent_Conditional_0_Conditional_0_div_0_ng_container_1_Template","payoutSchedule$","PayoutsComponent_Conditional_0_Conditional_0_div_0_Template","ɵɵlistener","$event","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","onPayoutSelected","retailBalance$","merchantId$","ɵɵelement","supportedRegion$","PayoutsComponent_Conditional_0_Conditional_2_Conditional_0_Template","PayoutsComponent_Conditional_0_Conditional_0_Template","PayoutsComponent_Conditional_0_Conditional_2_Template","canAcceptPayment$","getPayoutScheduleTranslationKey","payoutInterval","PayoutInterval","Daily","Weekly","Monthly","PayoutsComponent","init_payouts_component","__esmMin","init_core","init_src","init_ngx_translate_core","init_date_utils","init_esm","init_operators","init_page","init_common","init_icon","init_card","init_tooltip","init_pipes","init_payout_list_component","init_retail_payments_onboarding_component","constructor","merchantService","paymentService","translateService","payoutSelected","EventEmitter","ngOnInit","retailStatus$","pipe","switchMap","id","retailStatus","catchError","of","supportedRegion","canAcceptPayment","shareReplay","map","rs","loading$","_","startWith","getRetailProvider","provider","paymentFacilitatorType","PaymentFacilitatorType","STANDARD_STRIPE","bufferSize","refCount","combineLatest","partnerId","redirectToStripe","getPayoutSummary","payoutSummary","key","instant","delay","payoutDelayDays","payoutId","emit","ɵɵdirectiveInject","MerchantService","PaymentService","TranslateService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","PayoutsComponent_Conditional_0_Template","GalaxyPageModule","AsyncPipe","MatIcon","TranslateModule","TranslatePipe","MatCard","MatCardTitle","MatCardHeader","MatTooltip","MatCardContent","GalaxyPipesModule","GalaxyDatePipe","GalaxyCurrencyPipe","PayoutListComponent","NgIf","NgForOf","RetailPaymentsOnboardingComponent","styles","CUSTOMER_DATA_SERVICE","init_customer_data","__esmMin","init_core","InjectionToken","stripReferencePrefixFromPaymentDescriptions","payments","map","p","payment","description","stripReferencePrefixFromPaymentDescription","referenceType","refund","type","prefix","getPrefixFromReferenceType","startsWith","slice","length","RetailPaymentReferenceTypeEnum","RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE","INVOICE_PREFIX","RETAIL_PAYMENT_REFERENCE_TYPE_SALES_ORDER","SALES_ORDER_PREFIX","init_common","__esmMin","init_src","TransactionsTableDataSource","init_transactions_table_datasource","__esmMin","init_src","init_esm","init_operators","init_common","constructor","paymentService","datePipe","customerDataService","criteria$$","BehaviorSubject","pageIndex$$","scrollable","Scrollable","asObservable","criteria","cursor","loadMore","hasMore$","loading$","empty$","knownLength$","items$","pipe","withLatestFrom","map","items","hasMore","length","connect","_collectionViewer","combineLatest","pageIndex","start","pageSize","end","slice","Math","min","disconnect","merchantId","of","payments$","listRetailTransactions","filters","payoutId","createdDateGte","createdDateLte","paymentsOnly","customerId","invoiceId","catchError","e","console","error","results","nextCursor","resp","stripReferencePrefixFromPaymentDescriptions","shareReplay","bufferSize","refCount","customerData$","p","payment","refund","filter","id","switchMap","ids","getMulti","_","customerData","customers","forEach","rows","customer","push","Transaction","fromRetailPayment","companyName","fromRetailRefund","adjustment","fromAdjustment","payoutFailure","fromRetailPayout","updatePage","currentCriteria","getValue","next","reload","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r1","companyName$","ɵɵelementContainer","ɵɵtemplate","RefundDialogComponent_Conditional_12_ng_container_3_Template","ɵɵproperty","invoiceCreditNote_r3","RefundDialogComponent_Conditional_13_ng_container_0_Template","ɵɵelement","ɵɵtextInterpolate1","ɵɵsanitizeHtml","RefundDialogComponent_Conditional_14_ng_container_0_Template","ɵɵlistener","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","issueCreditNote","ɵɵpipeBind2","ɵɵpureFunction1","_c0","invoice","formattedNumber","RefundDialogComponent_ng_template_15_Conditional_0_Template","ɵɵconditional","ɵɵtextInterpolate2","ɵɵpipeBind4","currencyCode","paymentDollarAmount","ɵɵelementContainerStart","balance$","option_r5","value","label","REFUND_ACTION","VIEW_INVOICE_ACTION","RefundDialogComponent","init_refund_dialog_component","__esmMin","init_common","init_forms","init_dialog","init_src","init_ngx_translate_core","init_esm","init_operators","init_rxjs_interop","init_invoice","init_alert","init_form_field","init_select","init_core","init_button","init_customer_data","init_button_loading_indicator","constructor","dialogRef","data","customerDataService","merchantService","formBuilder","translateService","paymentService","snackbarService","invoiceService","isSubmitting$$","BehaviorSubject","isLoading$$","achDebitPaymentMethodType","RetailPaymentMethodType","ACHDebit","acssDebitPaymentMethodType","ACSSDebit","cardPaymentMethodType","Card","toSignal","of","payment","pipe","switchMap","referenceType","TransactionReferenceType","INVOICE","get","merchantId","referenceId","map","__spreadProps","__spreadValues","formatInvoiceNumber","number","amountControl","formGroup","reasonControl","currencySymbol","getCurrencySymbol","ngOnInit","convertCentsToDollars","amount","reasonOptions","instant","RetailRefundReason","Unset","Duplicate","Fraudulent","RequestedByCustomer","group","UntypedFormControl","toFixed","validators","Validators","required","max","Validator","isGreaterThanZero","pattern","updateOn","reason","FormControl","customerId","customer","companyName","shareReplay","bufferSize","refCount","getRetailAccountBalance","accountBalance","available","find","b","toLowerCase","requestedAmount$","valueChanges","startWith","showNegativeBalanceAlert$","combineLatest","balance","requestedAmount","valid","Number","take","subscribe","next","onSubmit","refundRetail","id","Math","round","finalize","result","openSuccessSnack","close","action","err","openErrorSnack","error","message","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","CUSTOMER_DATA_SERVICE","MerchantService","FormBuilder","TranslateService","PaymentService","SnackbarService","InvoiceService","selectors","decls","vars","consts","template","rf","ctx","i0","_r1","RefundDialogComponent_p_10_Template","RefundDialogComponent_Conditional_12_Template","RefundDialogComponent_Conditional_13_Template","RefundDialogComponent_Conditional_14_Template","RefundDialogComponent_ng_template_15_Template","ɵɵtemplateRefExtractor","RefundDialogComponent_glxy_alert_17_Template","RefundDialogComponent_glxy_error_26_Template","RefundDialogComponent_glxy_error_27_Template","RefundDialogComponent_ng_container_31_Template","RefundDialogComponent_mat_option_40_Template","RefundDialogComponent_ng_template_51_Template","loadingShimmer_r6","paymentMethodDetailsType","ɵɵpropertyInterpolate","hasError","invalid","NgIf","NgFor","NgTemplateOutlet","AsyncPipe","CurrencyPipe","TranslateModule","TranslatePipe","FormsModule","ɵNgNoValidate","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","NgControlStatusGroup","ReactiveFormsModule","FormGroupDirective","FormControlName","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","GalaxyAlertModule","AlertComponent","AlertExtendedDirective","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","HintDirective","ErrorDirective","MatSelectModule","MatSelect","MatOption","MatOptionModule","MatButtonModule","MatButton","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","styles","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","issueCreditNoteAction","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","TransactionRowActionsComponent","init_transaction_row_actions_component","__esmMin","init_core","init_menu","init_refund_dialog_component","init_src","init_button","init_icon","init_ngx_translate_core","constructor","dialog","TransactionReferenceType","reload","EventEmitter","issueCreditNote","viewInvoice","openMenu","e","stopPropagation","trigger","openRefundDialog","open","RefundDialogComponent","width","data","payment","row","afterClosed","subscribe","result","action","REFUND_ACTION","next","VIEW_INVOICE_ACTION","emit","id","referenceId","ɵɵdirectiveInject","MatDialog","selectors","viewQuery","rf","ctx","MatMenuTrigger","$event","i0","_r1","ɵɵtemplate","TransactionRowActionsComponent_Conditional_8_Template","ɵɵproperty","optionsMenu_r4","ɵɵconditional","displayIssueCreditNoteAction","TranslateModule","TranslatePipe","MatButtonModule","MatIconButton","MatIconModule","MatIcon","MatMenuModule","MatMenu","MatMenuItem","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ctx_r1","statusTooltipTranslation","PaymentStatusChipComponent","init_payment_status_chip_component","__esmMin","init_core","init_icon","init_src","init_ngx_translate_core","init_badge","init_tooltip","init_esm","init_common","init_popover","constructor","translateService","_statusColorMap","RetailPaymentStatus","Succeeded","DisputeStatus","WON","LOST","NEEDS_RESPONSE","WARNING_NEEDS_RESPONSE","UNDER_REVIEW","WARNING_UNDER_REVIEW","WARNING_CLOSED","Disputed","status","input","disputeResponseDue","hoverText","color","computed","showPopover","ngOnInit","stream","of","statusTranslation","Failed","Pending","Refunded","PartiallyRefunded","_getDueByTranslation","dueBy","now","Date","hoursRemaining","Math","floor","getTime","hours","daysRemaining","days","openPopover","popover","open","closePopover","close","togglePopover","event","stopPropagation","isOpen","ɵɵdirectiveInject","TranslateService","selectors","viewQuery","rf","ctx","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","PaymentStatusChipComponent_Conditional_4_Template","popover_r3","ɵɵadvance","ɵɵtextInterpolate1","ɵɵconditional","ɵɵtextInterpolate","BillingI18nModule","GalaxyPopoverModule","PopoverComponent","GalaxyPopoverDirective","GalaxyTooltipModule","GalaxyTooltipDirective","MatIconModule","MatIcon","TranslateModule","GalaxyBadgeModule","BadgeComponent","AsyncPipe","styles","BuildStatus","init_build_status","__esmMin","init_models","__esmMin","init_build_status","require_FileSaver_min","__commonJSMin","exports","module","a","b","c","d","g","e","f","h","i","j","k","l","m","isBuildFinished","reportRun","status","MerchantServicesReportRunStatus","MERCHANT_SERVICES_REPORT_RUN_STATUS_SUCCEEDED","MERCHANT_SERVICES_REPORT_RUN_STATUS_FAILED","buildStateFromReportRun","BuildStatus","READ_FOR_DOWNLOAD","FAILED","isFailedReportRun","import_file_saver","pollInterval","defaultState","ExportService","init_export_service","__esmMin","init_esm","init_operators","init_src","init_models","buildStatus","IDLE","constructor","merchantService","translateService","state$$","BehaviorSubject","state$","asObservable","cancel$$","Subject","export","request","setState","BUILDING","errorMessage","newReportRun$","createReportRun","merchantID","MerchantServicesReportRunType","MERCHANT_SERVICES_REPORT_RUN_TYPE_BALANCE_ITEMIZED","startInterval","endInterval","currency","poller$","timer","combineLatest","pipe","takeUntil","switchMap","_","getReportRun","id","filter","take","tap","Error","error","getReport","subscribe","data","saveAs","instant","cancel","next","buildState$","map","state","errorMessage$","Object","assign","getValue","ɵɵinject","MerchantService","TranslateService","factory","ɵfac","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","errorMessage_r2","ɵɵproperty","option_r3","value","label","ɵɵelement","picker_r4","ctx_r4","today","option_r6","id","name","intervalsFromBasicDate","basicDate","startInterval","endInterval","Date","BasicDate","LAST_30_DAYS","setDate","getDate","LAST_60_DAYS","LAST_90_DAYS","LAST_MONTH","getFullYear","getMonth","LAST_QUARTER","quarter","Math","floor","setUTCHours","DEFAULT_BASIC_DATE","VENDASTA_PAYMENT_CURRENCIES","ExportDialogComponent","init_export_dialog_component","__esmMin","init_forms","init_esm","init_operators","init_dialog","init_ngx_translate_core","init_models","init_export_service","init_common","init_button","init_datepicker","init_select","init_alert","init_button_loading_indicator","init_form_field","init_progress_spinner","constructor","dialogRef","data","translateService","fb","exportService","downloading$","buildState$","pipe","map","buildState","BuildStatus","BUILDING","errorMessage$","destroyed$","ReplaySubject","ngOnInit","basicDateOptions","instant","CUSTOM","availableCurrencies","currency","currencyOptions","form","group","initialBasicDateValue","Validators","required","get","valueChanges","takeUntil","filter","subscribe","setValue","downloading","disable","enable","ngOnDestroy","next","complete","handleSubmit","valid","markAllAsTouched","export","merchantID","merchantId","handleCancel","cancel","close","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","TranslateService","FormBuilder","ExportService","selectors","features","ɵɵProvidersFeature","decls","vars","consts","template","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","ExportDialogComponent_glxy_alert_5_Template","ExportDialogComponent_mat_option_15_Template","ExportDialogComponent_glxy_form_field_16_Template","ExportDialogComponent_mat_option_22_Template","ExportDialogComponent_ng_template_42_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate","ɵɵpipeBind1","NgIf","NgFor","AsyncPipe","FormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","TranslateModule","TranslatePipe","ReactiveFormsModule","FormGroupDirective","FormControlName","MatButtonModule","MatButton","MatDatepickerModule","MatDatepickerToggle","MatDateRangeInput","MatStartDate","MatEndDate","MatDateRangePicker","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","MatSelectModule","MatSuffix","MatSelect","MatOption","GalaxyAlertModule","AlertComponent","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","HintDirective","MatProgressSpinnerModule","MatProgressSpinner","styles","ExportButtonComponent","init_export_button_component","__esmMin","init_dialog","init_export_dialog_component","init_ngx_translate_core","init_button","init_icon","constructor","dialog","startDate","endDate","openDialog","open","ExportDialogComponent","width","data","merchantId","startInterval","endInterval","ɵɵdirectiveInject","MatDialog","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","TranslateModule","TranslatePipe","MatButtonModule","MatButton","MatDialogModule","MatIconModule","MatIcon","styles","init_export_button","__esmMin","init_export_button_component","ɵɵtemplate","TransactionsTableComponent_Conditional_0_ng_template_0_Template","ɵɵproperty","tableContent_r1","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","onDateSelection","ɵɵelementEnd","ɵɵelement","TransactionsTableComponent_Conditional_1_ng_template_6_Template","ɵɵpureFunction1","_c0","displayTableBorder","ɵɵadvance","merchantId","startDate","endDate","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","p_r4","status","declineReasonDescription","declineReasonNextSteps","failureMessage","dispute","evidenceDetails","dueBy","ɵɵtextInterpolate","p_r6","description","_r5","$implicit","transactionReferenceClickEvent","TransactionsTableComponent_ng_template_2_td_9_Conditional_1_Conditional_1_Template","TransactionsTableComponent_ng_template_2_td_9_Conditional_1_Conditional_2_Template","ɵɵconditional","referenceType","transactionTypeEnum","INVOICE","REFUND_INVOICE","TransactionsTableComponent_ng_template_2_td_9_Conditional_2_Conditional_1_Template","TransactionsTableComponent_ng_template_2_td_9_Conditional_2_Conditional_2_Template","TransactionsTableComponent_ng_template_2_td_9_Conditional_1_Template","TransactionsTableComponent_ng_template_2_td_9_Conditional_2_Template","TransactionsTableComponent_ng_template_2_td_9_div_3_Template","TransactionsTableComponent_ng_template_2_td_9_div_4_Template","TransactionsTableComponent_ng_template_2_td_9_div_5_Template","TransactionsTableComponent_ng_template_2_td_9_div_6_Template","TransactionsTableComponent_ng_template_2_td_9_div_7_Template","TransactionsTableComponent_ng_template_2_td_9_div_8_Template","TransactionsTableComponent_ng_template_2_td_9_div_9_Template","TransactionsTableComponent_ng_template_2_td_9_div_10_Template","canClickTransactionReference","SALES_ORDER","REFUND_SALES_ORDER","DISPUTE","REFUND_FAILURE","PAYOUT_FAILURE","UNSET","customerTitleTranslationKey","p_r8","_r7","customerClickEvent","customerId","customerName","p_r9","created","ɵɵpipeBind2","DateFormat","shortTime","ɵɵpropertyInterpolate","p_r10","cardDetails","cardType","imageUrls","ɵɵsanitizeUrl","TransactionsTableComponent_ng_template_2_td_18_Conditional_1_div_1_Template","lastFourDigits","achDetails","acssDetails","TransactionsTableComponent_ng_template_2_td_18_Conditional_1_Template","TransactionsTableComponent_ng_template_2_td_18_Conditional_2_Template","TransactionsTableComponent_ng_template_2_td_18_Conditional_3_Template","TransactionsTableComponent_ng_template_2_td_18_Conditional_4_Template","paymentMethodDetailsType","cardPaymentMethodType","achDebitPaymentMethodType","acssDebitPaymentMethodType","ɵɵstyleProp","netShown","p_r11","amount","currencyCode","ɵɵpipeBind3","p_r12","applicationFee","paymentFacilitatorFee","p_r13","_r14","reload","issueCreditNoteHandler","p_r15","TransactionsTableComponent_ng_template_2_td_30_smb_invoicing_transaction_row_actions_1_Template","isRefundableStatus","row_r17","_r16","transactionClickEvent","_r19","emptyStateSecondaryCallToActionEvent","_r18","emptyStatePrimaryCallToActionEvent","TransactionsTableComponent_ng_template_2_Conditional_33_Conditional_14_Template","hasEmptyStateSecondaryCallToAction","TransactionsTableComponent_ng_template_2_mat_progress_bar_1_Template","ɵɵelementContainerStart","TransactionsTableComponent_ng_template_2_th_5_Template","TransactionsTableComponent_ng_template_2_td_6_Template","TransactionsTableComponent_ng_template_2_th_8_Template","TransactionsTableComponent_ng_template_2_td_9_Template","TransactionsTableComponent_ng_template_2_th_11_Template","TransactionsTableComponent_ng_template_2_td_12_Template","TransactionsTableComponent_ng_template_2_th_14_Template","TransactionsTableComponent_ng_template_2_td_15_Template","TransactionsTableComponent_ng_template_2_th_17_Template","TransactionsTableComponent_ng_template_2_td_18_Template","TransactionsTableComponent_ng_template_2_th_20_Template","TransactionsTableComponent_ng_template_2_td_21_Template","TransactionsTableComponent_ng_template_2_th_23_Template","TransactionsTableComponent_ng_template_2_td_24_Template","TransactionsTableComponent_ng_template_2_th_26_Template","TransactionsTableComponent_ng_template_2_td_27_Template","TransactionsTableComponent_ng_template_2_th_29_Template","TransactionsTableComponent_ng_template_2_td_30_Template","TransactionsTableComponent_ng_template_2_tr_31_Template","TransactionsTableComponent_ng_template_2_tr_32_Template","TransactionsTableComponent_ng_template_2_Conditional_33_Template","dataSource","loading$","_c1","displayTableContentsOnly","displayedColumns","empty$","defaultPageSize","ɵɵpureFunction0","_c2","knownLength$","_c3","TransactionsTableComponent","init_transactions_table_component","__esmMin","init_common","init_core","init_paginator","init_src","init_date_utils","init_operators","init_transactions_table_datasource","init_router","init_ngx_translate_core","init_progress_bar","init_table","init_icon","init_button","init_pipes","init_empty_state","init_datepicker","init_menu","init_transaction_row_actions_component","init_rxjs_interop","init_payment_status_chip_component","init_export_button","init_customer_data","init_image_src","constructor","paymentService","customerDataService","dialog","datePipe","destroyRef","paymentCardImageUrls","RetailPaymentMethodType","Card","ACHDebit","ACSSDebit","input","required","issueCreditNote","EventEmitter","customerClicked","transactionReferenceClicked","transactionClicked","emptyStatePrimaryCallToAction","emptyStateSecondaryCallToAction","TransactionReferenceType","some","v","toObservable","pipe","skip","takeUntilDestroyed","subscribe","updatePage","paginator","pageSize","pageIndex","filters","ngOnInit","TransactionsTableDataSource","ngAfterViewInit","page","startWith","getNextSteps","failureCode","message","declineReason","DeclineReasons","get","nextSteps","dateRange","start","end","__spreadProps","__spreadValues","createdDateGte","createdDateLte","event","emit","consumeEvent","transaction","referenceId","stopPropagation","ɵɵdirectiveInject","PaymentService","CUSTOMER_DATA_SERVICE","MatDialog","DatePipe","DestroyRef","selectors","viewQuery","rf","ctx","MatPaginator","decls","vars","consts","template","TransactionsTableComponent_Conditional_0_Template","TransactionsTableComponent_Conditional_1_Template","TransactionsTableComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","CommonModule","NgClass","NgIf","NgTemplateOutlet","AsyncPipe","RouterModule","TranslateModule","TranslatePipe","MatProgressBarModule","MatProgressBar","MatTableModule","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatHeaderCell","MatCell","MatHeaderRow","MatRow","MatPaginatorModule","MatIconModule","MatIcon","MatButtonModule","MatAnchor","GalaxyPipesModule","GalaxyDatePipe","GalaxyCurrencyPipe","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","VaMaterialTableModule","VaMaterialTableComponent","PaymentStatusChipComponent","GalaxyDatepickerModule","DatepickerComponent","ExportButtonComponent","MatMenuModule","BillingUiModule","SimplePriceDisplayComponent","TransactionRowActionsComponent","PadInvoiceNumberPipe","styles","changeDetection","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","openDisputeActionClicked","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ɵɵadvance","ɵɵtextInterpolate1","ɵɵelementContainerStart","ɵɵtemplate","TransactionsComponent_ng_container_0_ng_container_1_ng_container_1_Conditional_1_Template","TransactionsComponent_ng_container_0_ng_container_1_ng_container_1_Conditional_2_Template","ɵɵconditional","paymentFacilitatorType","TransactionsComponent_ng_container_0_ng_container_1_ng_container_1_Template","$event","_r1","issueCreditNoteHandler","customerClickedHandler","transactionReferenceClickedHandler","transactionClickedHandler","emptyStatePrimaryCallToActionHandler","emptyStateSecondaryCallToActionHandler","hasActiveDisputes$","merchantId","paymentsFilters","displayedColumns","hasEmptyStateSecondaryCallToAction","canClickTransactionReference","displayTableBorder","customerTitleTranslationKey","ɵɵelement","supportedRegion$","TransactionsComponent_ng_container_0_ng_container_1_Template","TransactionsComponent_ng_container_0_ng_template_3_Template","ɵɵtemplateRefExtractor","canAcceptPayment$","onboardingState_r4","ACTIVE_DISPUTE_STATUSES","TransactionsComponent","init_transactions_component","__esmMin","init_core","init_paginator","init_src","init_esm","init_operators","init_rxjs_interop","init_common","init_alert","init_transactions_table_component","init_retail_payments_onboarding_component","init_ngx_translate_core","DisputeStatus","WARNING_NEEDS_RESPONSE","NEEDS_RESPONSE","constructor","paymentService","destroyRef","router","input","required","invoiceId","hideTableActions","issueCreditNote","EventEmitter","customerClicked","transactionReferenceClicked","transactionClicked","emptyStatePrimaryCallToAction","emptyStateSecondaryCallToAction","loading$$","BehaviorSubject","computed","retailStatus$","toObservable","pipe","switchMap","id","retailStatus","catchError","_","of","supportedRegion","canAcceptPayment","shareReplay","refCount","bufferSize","pid","listRetailDisputes","map","resp","results","filter","d","includes","status","disputes","length","ngOnInit","rs","takeUntilDestroyed","subscribe","next","referenceId","emit","customerId","transaction","navigateByUrl","ɵɵdirectiveInject","PaymentService","DestroyRef","Router","selectors","inputs","outputs","features","ɵɵProvidersFeature","provide","MatPaginatorIntl","useClass","MatPaginatorNoTotalDisplayed","decls","vars","consts","template","rf","ctx","TransactionsComponent_ng_container_0_Template","AsyncPipe","NgIf","TranslateModule","TranslatePipe","GalaxyAlertModule","AlertComponent","TransactionsTableComponent","RetailPaymentsOnboardingComponent","styles","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction1","_c1","ɵɵpipeBind1","payout_r1","arrivalDate","ɵɵproperty","status","failureMessage","ɵɵelementContainerStart","ɵɵtextInterpolate","field_r2","translationKey","ɵɵclassMap","class","tooltip","value","ɵɵtemplate","PayoutDetailsComponent_glxy_page_wrapper_8_ng_container_8_Template","ɵɵprojection","payoutFields_r3","PayoutDetailsComponent","init_payout_details_component","__esmMin","init_esm","init_src","init_operators","init_common","init_page","init_pipes","init_card","init_grid_list","init_payout_status_badge_component","init_ngx_translate_core","init_tooltip","init_date_utils","constructor","merchantService","loading$$","BehaviorSubject","ngOnInit","payout$","combineLatest","merchantId$","payoutId$","pipe","switchMap","merchantId","payoutId","getRetailPayout","tap","next","payoutDetailFields$","map","payout","lastFourDigits","bankName","RetailPayoutStatus","Paid","formatDate","formatDisplayPrice","amount","currencyCode","undefined","ɵɵdirectiveInject","MerchantService","selectors","inputs","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","PayoutDetailsComponent_glxy_page_title_6_Template","PayoutDetailsComponent_glxy_page_wrapper_8_Template","AsyncPipe","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageWrapperDirective","GalaxyPipesModule","GalaxyDatePipe","MatCard","MatCardContent","MatCardHeader","MatCardTitle","MatGridList","MatGridTile","NgForOf","NgIf","PayoutStatusBadgeComponent","TranslateModule","TranslatePipe","MatTooltip","styles","ɵɵelement","ɵɵproperty","ctx_r0","row","value","dispute","evidenceDetails","dueBy","valuePrefixImage","src","ɵɵsanitizeUrl","alt","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","asyncValue","ɵɵelementStart","ɵɵtemplate","DetailRowComponent_Conditional_6_Conditional_1_Conditional_1_Template","DetailRowComponent_Conditional_6_Conditional_1_Conditional_2_Template","ɵɵelementEnd","ɵɵadvance","ɵɵconditional","DetailRowComponent_Conditional_6_Conditional_2_Conditional_1_Template","DetailRowComponent_Conditional_6_Conditional_2_Conditional_2_Template","routerLink","DetailRowComponent_Conditional_6_Conditional_0_Template","DetailRowComponent_Conditional_6_Conditional_1_Template","DetailRowComponent_Conditional_6_Conditional_2_Template","Color","DetailRowComponent","init_detail_row_component","__esmMin","init_common","init_router","init_payment_status_chip_component","constructor","rowColor","selectors","inputs","stacked","decls","vars","consts","template","rf","ctx","DetailRowComponent_Conditional_5_Template","DetailRowComponent_Conditional_6_Template","ɵɵpureFunction2","_c0","ɵɵpureFunction3","_c1","asyncTranslatedName","ɵɵpureFunction4","_c2","color","RED","GREEN","id","NgClass","RouterLink","PaymentStatusChipComponent","AsyncPipe","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelement","ɵɵtextInterpolate","business_r1","name","address","ɵɵtemplate","PaymentBusinessComponent_Conditional_2_Conditional_5_Template","PaymentBusinessComponent_Conditional_2_Conditional_7_Template","PaymentBusinessComponent_Conditional_2_Conditional_9_Template","ɵɵproperty","ɵɵpureFunction1","_c0","ctx_r1","businessId","ɵɵconditional","loading$$","tmp_3_0","business$","errorCode$$","PaymentBusinessComponent","init_payment_business_component","__esmMin","init_http","init_esm","init_operators","init_src","init_common","init_icon","init_router","constructor","accountGroupService","BehaviorSubject","ngOnInit","get","ProjectionFilter","napData","pipe","map","accountGroup","HttpErrorResponse","status","companyName","address2","city","country","filter","p","join","tap","next","catchError","err","of","ɵɵdirectiveInject","AccountGroupService","selectors","inputs","decls","vars","consts","template","rf","ctx","PaymentBusinessComponent_Conditional_0_Template","PaymentBusinessComponent_Conditional_2_Template","MatIcon","RouterLink","AsyncPipe","LexiconModule","TranslatePipe","styles","ɵɵelement","ɵɵproperty","row_r1","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r1","payment","referenceId","ɵɵtextInterpolate1","customerId","calculateTotalRefund","refunds","reduce","total","refund","amount","buildDescriptionRouterLink","referenceType","RetailPaymentReferenceTypeEnum","RETAIL_PAYMENT_REFERENCE_TYPE_INVOICE","RETAIL_PAYMENT_REFERENCE_TYPE_SALES_ORDER","formatDescription","description","stripReferencePrefixFromPaymentDescription","formatInvoiceNumber","parseInt","PaymentCardComponent","init_payment_card_component","__esmMin","init_common","init_src","init_card","init_invoice","init_image_src","init_detail_row_component","init_payment_business_component","init_esm","init_alert","init_button","init_router","constructor","translateService","currencyFormatter","viewConfig","hideInvoiceReference","hideBusinessReference","showInvoicePaymentCTA","ngOnInit","__async","rows","paymentToRows","status","RetailPaymentStatus","Failed","paymentOutstanding","applicationFee","paymentFacilitatorFee","paymentFeeRows","id","asyncTranslatedName","stream","value","transform","currencyCode","paymentFacilitatorType","PaymentFacilitatorType","STANDARD_STRIPE","formatDate","created","dispute","push","routerLink","totalRefunded","splice","cardDetails","lastFourDigits","valuePrefixImage","src","paymentCardImageUrls","cardType","alt","height","failureMessage","declineReasonDescription","firstValueFrom","nextSteps","declineReasonNextSteps","ɵɵdirectiveInject","TranslateService","GalaxyCurrencyPipe","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵrepeaterCreate","PaymentCardComponent_For_10_Template","_forTrack0","ɵɵtemplate","PaymentCardComponent_Conditional_11_Template","PaymentCardComponent_Conditional_12_Template","ɵɵrepeater","ɵɵconditional","MatCard","MatCardTitle","MatCardHeader","MatCardContent","DetailRowComponent","PaymentBusinessComponent","BillingI18nModule","LexiconModule","TranslatePipe","GalaxyAlertModule","AlertComponent","MatButton","RouterLink","styles","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵpipeBindV","ɵɵpureFunction2","_c1","ctx_r0","payment","amount","currencyCode","ɵɵproperty","status","tmp_4_0","dispute","evidenceDetails","dueBy","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","onAcceptDisputeClicked","_r3","onCreateRefundClicked","ɵɵtemplate","PaymentPageContainerComponent_Conditional_7_Conditional_3_Conditional_2_Template","PaymentPageContainerComponent_Conditional_7_Conditional_3_Conditional_3_Template","_c2","id","ɵɵconditional","needsResponseWarningStatuses","includes","PaymentPageContainerComponent_Conditional_7_Conditional_1_Template","PaymentPageContainerComponent_Conditional_7_Conditional_2_Template","PaymentPageContainerComponent_Conditional_7_Conditional_3_Template","viewConfig","hideDisputeReference","hideRefundReference","tmp_2_0","disputeLostStatus","isRefundableStatus","ɵɵpureFunction1","_c3","paymentsPageLink","PaymentPageContainerComponent_Conditional_10_Conditional_8_Template","PaymentPageContainerComponent_Conditional_10_Conditional_9_Template","errorCode","ɵɵtextInterpolate2","ɵɵpipeBind2","paymentOutstanding","_c4","hideInvoiceReference","hideBusinessReference","PaymentPageContainerComponent","init_payment_page_container_component","__esmMin","init_core","init_router","init_src","init_page","init_common","init_button","init_card","init_empty_state","init_icon","init_alert","init_payment_card_component","init_payment_status_chip_component","init_pipes","constructor","merchantId","input","required","loading","acceptDisputeClicked","EventEmitter","createRefundClicked","DisputeStatus","WARNING_NEEDS_RESPONSE","NEEDS_RESPONSE","LOST","emit","selectors","inputs","outputs","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","PaymentPageContainerComponent_Conditional_5_Template","PaymentPageContainerComponent_Conditional_6_Template","PaymentPageContainerComponent_Conditional_7_Template","PaymentPageContainerComponent_Conditional_10_Template","PaymentPageContainerComponent_Conditional_11_Template","PaymentPageContainerComponent_Conditional_12_Template","ɵɵprojection","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageActionsDirective","PageWrapperDirective","PaymentStatusChipComponent","MatButton","LexiconModule","TranslatePipe","MatAnchor","RouterLink","MatCard","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","MatIcon","GalaxyAlertModule","AlertComponent","DatePipe","PaymentCardComponent","PricePipe","styles","init_lib","__esmMin","init_invoice_table_component","init_smb_invoicing_module","init_payment_method","init_bank_account_component","init_payouts_component","init_payout_details_component","init_customer_data","init_transactions_table_component","init_transactions_component","init_common","init_payment_page_container_component","init_payment_type_to_title_pipe","init_keys_pipe","init_stripe_service","init_src","__esmMin","init_lib"],"x_google_ignoreList":[55]}