{"version":3,"file":"vendure-admin-ui-order.mjs","sources":["../../src/lib/order/src/common/get-refundable-payments.ts","../../src/lib/order/src/components/add-manual-payment-dialog/add-manual-payment-dialog.component.ts","../../src/lib/order/src/components/add-manual-payment-dialog/add-manual-payment-dialog.component.html","../../src/lib/order/src/components/cancel-order-dialog/cancel-order-dialog.component.ts","../../src/lib/order/src/components/cancel-order-dialog/cancel-order-dialog.component.html","../../src/lib/order/src/components/coupon-code-selector/coupon-code-selector.component.ts","../../src/lib/order/src/components/coupon-code-selector/coupon-code-selector.component.html","../../src/lib/order/src/components/select-address-dialog/select-address-dialog.component.ts","../../src/lib/order/src/components/select-address-dialog/select-address-dialog.component.html","../../src/lib/order/src/components/select-customer-dialog/select-customer-dialog.component.ts","../../src/lib/order/src/components/select-customer-dialog/select-customer-dialog.component.html","../../src/lib/order/src/components/select-shipping-method-dialog/select-shipping-method-dialog.component.ts","../../src/lib/order/src/components/select-shipping-method-dialog/select-shipping-method-dialog.component.html","../../src/lib/order/src/components/order-state-select-dialog/order-state-select-dialog.component.ts","../../src/lib/order/src/components/order-state-select-dialog/order-state-select-dialog.component.html","../../src/lib/order/src/providers/order-transition.service.ts","../../src/lib/order/src/components/order-custom-fields-card/order-custom-fields-card.component.ts","../../src/lib/order/src/components/order-custom-fields-card/order-custom-fields-card.component.html","../../src/lib/order/src/components/line-fulfillment/line-fulfillment.component.ts","../../src/lib/order/src/components/line-fulfillment/line-fulfillment.component.html","../../src/lib/order/src/components/line-refunds/line-refunds.component.ts","../../src/lib/order/src/components/line-refunds/line-refunds.component.html","../../src/lib/order/src/components/order-data-table/order-total-column.component.ts","../../src/lib/order/src/components/order-data-table/order-data-table.component.ts","../../src/lib/order/src/components/order-data-table/order-data-table.component.html","../../src/lib/order/src/components/order-table/order-table.component.ts","../../src/lib/order/src/components/order-table/order-table.component.html","../../src/lib/order/src/components/draft-order-variant-selector/draft-order-variant-selector.component.ts","../../src/lib/order/src/components/draft-order-variant-selector/draft-order-variant-selector.component.html","../../src/lib/order/src/components/draft-order-detail/draft-order-detail.component.ts","../../src/lib/order/src/components/draft-order-detail/draft-order-detail.component.html","../../src/lib/order/src/components/fulfill-order-dialog/fulfill-order-dialog.component.ts","../../src/lib/order/src/components/fulfill-order-dialog/fulfill-order-dialog.component.html","../../src/lib/order/src/components/simple-item-list/simple-item-list.component.ts","../../src/lib/order/src/components/simple-item-list/simple-item-list.component.html","../../src/lib/order/src/components/fulfillment-detail/fulfillment-detail.component.ts","../../src/lib/order/src/components/fulfillment-detail/fulfillment-detail.component.html","../../src/lib/order/src/components/fulfillment-state-label/fulfillment-state-label.component.ts","../../src/lib/order/src/components/fulfillment-state-label/fulfillment-state-label.component.html","../../src/lib/order/src/components/fulfillment-card/fulfillment-card.component.ts","../../src/lib/order/src/components/fulfillment-card/fulfillment-card.component.html","../../src/lib/order/src/components/modification-detail/modification-detail.component.ts","../../src/lib/order/src/components/modification-detail/modification-detail.component.html","../../src/lib/order/src/components/order-process-graph/constants.ts","../../src/lib/order/src/components/order-process-graph/order-process-node.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-node.component.html","../../src/lib/order/src/components/order-process-graph/order-process-edge.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-edge.component.html","../../src/lib/order/src/components/order-process-graph/order-process-graph.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-graph.component.html","../../src/lib/order/src/components/order-process-graph-dialog/order-process-graph-dialog.component.ts","../../src/lib/order/src/components/order-process-graph-dialog/order-process-graph-dialog.component.html","../../src/lib/order/src/components/payment-for-refund-selector/payment-for-refund-selector.component.ts","../../src/lib/order/src/components/payment-for-refund-selector/payment-for-refund-selector.component.html","../../src/lib/order/src/components/refund-order-dialog/refund-order-dialog.component.ts","../../src/lib/order/src/components/refund-order-dialog/refund-order-dialog.component.html","../../src/lib/order/src/components/settle-refund-dialog/settle-refund-dialog.component.ts","../../src/lib/order/src/components/settle-refund-dialog/settle-refund-dialog.component.html","../../src/lib/order/src/components/payment-state-label/payment-state-label.component.ts","../../src/lib/order/src/components/payment-state-label/payment-state-label.component.html","../../src/lib/order/src/components/refund-state-label/refund-state-label.component.ts","../../src/lib/order/src/components/refund-state-label/refund-state-label.component.html","../../src/lib/order/src/components/payment-detail/payment-detail.component.ts","../../src/lib/order/src/components/payment-detail/payment-detail.component.html","../../src/lib/order/src/components/order-payment-card/order-payment-card.component.ts","../../src/lib/order/src/components/order-payment-card/order-payment-card.component.html","../../src/lib/order/src/components/order-history/order-history-entry-host.component.ts","../../src/lib/order/src/components/order-history/order-history.component.ts","../../src/lib/order/src/components/order-history/order-history.component.html","../../src/lib/order/src/components/seller-orders-card/seller-orders-card.graphql.ts","../../src/lib/order/src/components/seller-orders-card/seller-orders-card.component.ts","../../src/lib/order/src/components/seller-orders-card/seller-orders-card.component.html","../../src/lib/order/src/components/order-detail/order-detail.component.ts","../../src/lib/order/src/components/order-detail/order-detail.component.html","../../src/lib/order/src/components/order-modification-summary/order-modification-summary.component.ts","../../src/lib/order/src/components/order-modification-summary/order-modification-summary.component.html","../../src/lib/order/src/components/order-edits-preview-dialog/order-edits-preview-dialog.component.ts","../../src/lib/order/src/components/order-edits-preview-dialog/order-edits-preview-dialog.component.html","../../src/lib/order/src/components/order-editor/order-editor.component.ts","../../src/lib/order/src/components/order-editor/order-editor.component.html","../../src/lib/order/src/components/order-list/order-list.component.ts","../../src/lib/order/src/components/order-list/order-list.component.html","../../src/lib/order/src/components/refund-detail/refund-detail.component.ts","../../src/lib/order/src/components/refund-detail/refund-detail.component.html","../../src/lib/order/src/components/select-address-dialog/select-address-dialog.graphql.ts","../../src/lib/order/src/providers/routing/order.guard.ts","../../src/lib/order/src/order.routes.ts","../../src/lib/order/src/order.module.ts","../../src/lib/order/src/public_api.ts","../../src/lib/order/src/vendure-admin-ui-order.ts"],"sourcesContent":["import { FormControl, Validators } from '@angular/forms';\nimport { OrderDetailFragment } from '@vendure/admin-ui/core';\nimport { summate } from '@vendure/common/lib/shared-utils';\n\nexport type Payment = NonNullable<OrderDetailFragment['payments']>[number];\nexport type RefundablePayment = Payment & {\n    refundableAmount: number;\n    amountToRefundControl: FormControl<number>;\n    selected: boolean;\n};\n\nexport function getRefundablePayments(payments: OrderDetailFragment['payments']): RefundablePayment[] {\n    const settledPayments = (payments || []).filter(p => p.state === 'Settled');\n    return settledPayments.map((payment, index) => {\n        const refundableAmount =\n            payment.amount -\n            summate(\n                payment.refunds.filter(r => r.state !== 'Failed'),\n                'total',\n            );\n        return {\n            ...payment,\n            refundableAmount,\n            amountToRefundControl: new FormControl(0, {\n                nonNullable: true,\n                validators: [Validators.min(0), Validators.max(refundableAmount)],\n            }),\n            selected: index === 0,\n        };\n    });\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport {\n    CurrencyCode,\n    DataService,\n    Dialog,\n    GetAddManualPaymentMethodListDocument,\n    GetAddManualPaymentMethodListQuery,\n    GetPaymentMethodListQuery,\n    ItemOf,\n    ManualPaymentInput,\n    PAYMENT_METHOD_FRAGMENT,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\n\nconst GET_PAYMENT_METHODS_FOR_MANUAL_ADD = gql`\n    query GetAddManualPaymentMethodList($options: PaymentMethodListOptions!) {\n        paymentMethods(options: $options) {\n            items {\n                id\n                createdAt\n                updatedAt\n                name\n                code\n                description\n                enabled\n            }\n            totalItems\n        }\n    }\n`;\n\n@Component({\n    selector: 'vdr-add-manual-payment-dialog',\n    templateUrl: './add-manual-payment-dialog.component.html',\n    styleUrls: ['./add-manual-payment-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class AddManualPaymentDialogComponent implements OnInit, Dialog<Omit<ManualPaymentInput, 'orderId'>> {\n    // populated by ModalService call\n    outstandingAmount: number;\n    currencyCode: CurrencyCode;\n\n    resolveWith: (result?: Omit<ManualPaymentInput, 'orderId'>) => void;\n    form = new UntypedFormGroup({\n        method: new UntypedFormControl('', Validators.required),\n        transactionId: new UntypedFormControl('', Validators.required),\n    });\n    paymentMethods$: Observable<Array<ItemOf<GetAddManualPaymentMethodListQuery, 'paymentMethods'>>>;\n    constructor(private dataService: DataService) {}\n\n    ngOnInit(): void {\n        this.paymentMethods$ = this.dataService\n            .query(GetAddManualPaymentMethodListDocument, {\n                options: {\n                    take: 999,\n                },\n            })\n            .mapSingle(data => data.paymentMethods.items);\n    }\n\n    submit() {\n        const formValue = this.form.value;\n        this.resolveWith({\n            method: formValue.method,\n            transactionId: formValue.transactionId,\n        });\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.add-payment-to-order' | translate }}</ng-template>\n<form [formGroup]=\"form\">\n    <vdr-form-field [label]=\"'order.payment-method' | translate\" for=\"method\">\n        <ng-select\n            [items]=\"paymentMethods$ | async\"\n            bindLabel=\"code\"\n            appendTo=\"body\"\n            autofocus\n            bindValue=\"code\"\n            [addTag]=\"true\"\n            formControlName=\"method\"\n        ></ng-select>\n    </vdr-form-field>\n    <vdr-form-field [label]=\"'order.transaction-id' | translate\" for=\"transactionId\">\n        <input id=\"transactionId\" type=\"text\" formControlName=\"transactionId\" />\n    </vdr-form-field>\n</form>\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button type=\"submit\" (click)=\"submit()\" class=\"btn btn-primary\" [disabled]=\"form.invalid || form.pristine\">\n        {{ 'order.add-payment' | translate }}  ({{ outstandingAmount | localeCurrency: currencyCode }})\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    CancelOrderInput,\n    Dialog,\n    getAppConfig,\n    I18nService,\n    OrderDetailFragment,\n    OrderLineInput,\n} from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-cancel-order-dialog',\n    templateUrl: './cancel-order-dialog.component.html',\n    styleUrls: ['./cancel-order-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class CancelOrderDialogComponent implements OnInit, Dialog<CancelOrderInput> {\n    order: OrderDetailFragment;\n    cancelAll = true;\n    resolveWith: (result?: CancelOrderInput) => void;\n    reason: string;\n    lineQuantities: { [lineId: string]: number } = {};\n    reasons: string[] = getAppConfig().cancellationReasons ?? [\n        _('order.cancel-reason-customer-request'),\n        _('order.cancel-reason-not-available'),\n    ];\n\n    get selectionCount(): number {\n        return Object.values(this.lineQuantities).reduce((sum, n) => sum + n, 0);\n    }\n\n    constructor(private i18nService: I18nService) {\n        this.reasons = this.reasons.map(r => this.i18nService.translate(r));\n    }\n\n    ngOnInit() {\n        this.lineQuantities = this.order.lines.reduce(\n            (result, line) => ({ ...result, [line.id]: line.quantity }),\n            {},\n        );\n    }\n\n    radioChanged() {\n        if (this.cancelAll) {\n            for (const line of this.order.lines) {\n                this.lineQuantities[line.id] = line.quantity;\n            }\n        } else {\n            for (const line of this.order.lines) {\n                this.lineQuantities[line.id] = 0;\n            }\n        }\n    }\n\n    checkIfAllSelected() {\n        for (const [lineId, quantity] of Object.entries(this.lineQuantities)) {\n            const quantityInOrder = this.order.lines.find(line => line.id === lineId)?.quantity;\n            if (quantityInOrder && quantity < quantityInOrder) {\n                return;\n            }\n        }\n        // If we got here, all of the selected quantities are equal to the order\n        // line quantities, i.e. everything is selected.\n        this.cancelAll = true;\n    }\n\n    select() {\n        this.resolveWith({\n            orderId: this.order.id,\n            lines: this.getLineInputs(),\n            reason: this.reason,\n            cancelShipping: this.cancelAll,\n        });\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n\n    private getLineInputs(): OrderLineInput[] | undefined {\n        if (this.order.active) {\n            return;\n        }\n        return Object.entries(this.lineQuantities)\n            .map(([orderLineId, quantity]) => ({\n                orderLineId,\n                quantity,\n            }))\n            .filter(l => 0 < l.quantity);\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.cancel-order' | translate }}</ng-template>\n\n<div class=\"fulfillment-wrapper\">\n    <div class=\"order-lines\">\n        <table class=\"table\">\n            <thead>\n                <tr>\n                    <th></th>\n                    <th>{{ 'order.product-name' | translate }}</th>\n                    <th>{{ 'order.product-sku' | translate }}</th>\n                    <th>{{ 'order.quantity' | translate }}</th>\n                    <th>{{ 'order.unit-price' | translate }}</th>\n                    <th>{{ 'order.cancel' | translate }}</th>\n                </tr>\n            </thead>\n            <tr\n                *ngFor=\"let line of order.lines\"\n                class=\"order-line\"\n                [class.is-disabled]=\"cancelAll\"\n                [class.is-cancelled]=\"line.quantity === 0\"\n            >\n                <td class=\"align-middle thumb\">\n                    <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\n                </td>\n                <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\n                <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\n                <td class=\"align-middle quantity\">{{ line.quantity }}</td>\n                <td class=\"align-middle quantity\">\n                    {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\n                </td>\n                <td class=\"align-middle fulfil\">\n                    <input\n                        *ngIf=\"line.quantity > 0 && !order.active; else nonEditable\"\n                        [(ngModel)]=\"lineQuantities[line.id]\"\n                        (input)=\"checkIfAllSelected()\"\n                        [disabled]=\"cancelAll\"\n                        type=\"number\"\n                        [max]=\"line.quantity\"\n                        min=\"0\"\n                    />\n                    <ng-template #nonEditable>{{ line.quantity }}</ng-template>\n                </td>\n            </tr>\n        </table>\n    </div>\n    <div class=\"cancellation-details\">\n        <ng-container *ngIf=\"order.active !== true\">\n            <clr-radio-wrapper>\n                <input\n                    type=\"radio\"\n                    clrRadio\n                    [value]=\"true\"\n                    [(ngModel)]=\"cancelAll\"\n                    name=\"options\"\n                    (ngModelChange)=\"radioChanged()\"\n                />\n                <label>{{ 'order.cancel-entire-order' | translate }}</label>\n            </clr-radio-wrapper>\n            <clr-radio-wrapper>\n                <input\n                    type=\"radio\"\n                    clrRadio\n                    [value]=\"false\"\n                    [(ngModel)]=\"cancelAll\"\n                    name=\"options\"\n                    (ngModelChange)=\"radioChanged()\"\n                />\n                <label>{{ 'order.cancel-specified-items' | translate }}</label>\n            </clr-radio-wrapper>\n        </ng-container>\n        <label class=\"clr-control-label\">{{ 'order.cancellation-reason' | translate }}</label>\n        <ng-select\n            [items]=\"reasons\"\n            bindLabel=\"name\"\n            autofocus\n            bindValue=\"id\"\n            [addTag]=\"true\"\n            [(ngModel)]=\"reason\"\n        ></ng-select>\n    </div>\n</div>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button\n        type=\"submit\"\n        (click)=\"select()\"\n        [disabled]=\"!reason || (!order.active && selectionCount === 0)\"\n        class=\"btn btn-primary\"\n    >\n        <ng-container *ngIf=\"!order.active\">\n            {{ 'order.cancel-selected-items' | translate }}\n        </ng-container>\n        <ng-container *ngIf=\"order.active\">\n            {{ 'order.cancel-order' | translate }}\n        </ng-container>\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport {\n    DataService,\n    GetCouponCodeSelectorPromotionListDocument,\n    PROMOTION_FRAGMENT,\n} from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { concat, Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, skip, startWith, switchMap } from 'rxjs/operators';\n\nexport const GET_COUPON_CODE_SELECTOR_PROMOTION_LIST = gql`\n    query GetCouponCodeSelectorPromotionList($options: PromotionListOptions) {\n        promotions(options: $options) {\n            items {\n                id\n                name\n                couponCode\n            }\n            totalItems\n        }\n    }\n`;\n\n@Component({\n    selector: 'vdr-coupon-code-selector',\n    templateUrl: './coupon-code-selector.component.html',\n    styleUrls: ['./coupon-code-selector.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class CouponCodeSelectorComponent implements OnInit {\n    @Input() couponCodes: string[];\n    @Input() control: UntypedFormControl | undefined;\n    @Output() addCouponCode = new EventEmitter<string>();\n    @Output() removeCouponCode = new EventEmitter<string>();\n    availableCouponCodes$: Observable<Array<{ code: string; promotionName: string }>>;\n    couponCodeInput$ = new Subject<string>();\n    constructor(private dataService: DataService) {}\n\n    ngOnInit(): void {\n        this.availableCouponCodes$ = concat(\n            this.couponCodeInput$.pipe(\n                debounceTime(200),\n                distinctUntilChanged(),\n                switchMap(\n                    term =>\n                        this.dataService.query(GetCouponCodeSelectorPromotionListDocument, {\n                            options: {\n                                take: 10,\n                                skip: 0,\n                                filter: {\n                                    couponCode: { contains: term },\n                                },\n                            },\n                        }).single$,\n                ),\n                map(({ promotions }) =>\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                    promotions.items.map(p => ({ code: p.couponCode!, promotionName: p.name })),\n                ),\n                startWith([]),\n            ),\n        );\n        if (!this.control) {\n            this.control = new UntypedFormControl(this.couponCodes ?? []);\n        }\n    }\n\n    remove(code: string) {\n        this.removeCouponCode.emit(code);\n    }\n}\n","<ng-select\n    [items]=\"availableCouponCodes$ | async\"\n    appendTo=\"body\"\n    bindLabel=\"code\"\n    bindValue=\"code\"\n    [addTag]=\"false\"\n    [multiple]=\"true\"\n    [hideSelected]=\"true\"\n    [minTermLength]=\"2\"\n    typeToSearchText=\"\"\n    [typeahead]=\"couponCodeInput$\"\n    [formControl]=\"control\"\n    (add)=\"addCouponCode.emit($event.code)\"\n    (remove)=\"remove($event.code)\"\n>\n    <ng-template ng-option-tmp let-item=\"item\">\n        <div class=\"flex items-center\">\n            <vdr-chip class=\"mr-1\">{{ item.code }}</vdr-chip>\n            <span>{{ item.promotionName }}</span>\n        </div>\n    </ng-template>\n</ng-select>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport {\n    AddressFragment,\n    CreateAddressInput,\n    DataService,\n    Dialog,\n    GetAvailableCountriesQuery,\n    GetCustomerAddressesDocument,\n    OrderAddressFragment,\n} from '@vendure/admin-ui/core';\nimport { pick } from '@vendure/common/lib/pick';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { Customer } from '../select-customer-dialog/select-customer-dialog.component';\n\n@Component({\n    selector: 'vdr-select-address-dialog',\n    templateUrl: './select-address-dialog.component.html',\n    styleUrls: ['./select-address-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SelectAddressDialogComponent implements OnInit, Dialog<CreateAddressInput> {\n    resolveWith: (result?: CreateAddressInput) => void;\n    availableCountries$: Observable<GetAvailableCountriesQuery['countries']['items']>;\n    addresses$: Observable<AddressFragment[]>;\n    customerId: string | undefined;\n    currentAddress: OrderAddressFragment | undefined;\n    addressForm: UntypedFormGroup;\n    selectedAddress: AddressFragment | undefined;\n    useExisting = true;\n    createNew = false;\n\n    constructor(private dataService: DataService, private formBuilder: UntypedFormBuilder) {}\n\n    ngOnInit(): void {\n        this.addressForm = this.formBuilder.group({\n            fullName: [this.currentAddress?.fullName ?? ''],\n            company: [this.currentAddress?.company ?? ''],\n            streetLine1: [this.currentAddress?.streetLine1 ?? '', Validators.required],\n            streetLine2: [this.currentAddress?.streetLine2 ?? ''],\n            city: [this.currentAddress?.city ?? '', Validators.required],\n            province: [this.currentAddress?.province ?? ''],\n            postalCode: [this.currentAddress?.postalCode ?? '', Validators.required],\n            countryCode: [this.currentAddress?.countryCode ?? '', Validators.required],\n            phoneNumber: [this.currentAddress?.phoneNumber ?? ''],\n        });\n        this.useExisting = !!this.customerId;\n        this.addresses$ = this.customerId\n            ? this.dataService\n                  .query(GetCustomerAddressesDocument, { customerId: this.customerId })\n                  .mapSingle(({ customer }) => customer?.addresses ?? [])\n                  .pipe(\n                      tap(addresses => {\n                          if (this.currentAddress) {\n                              this.selectedAddress = addresses.find(\n                                  a =>\n                                      a.streetLine1 === this.currentAddress?.streetLine1 &&\n                                      a.postalCode === this.currentAddress?.postalCode,\n                              );\n                          }\n                          if (addresses.length === 0) {\n                              this.createNew = true;\n                              this.useExisting = false;\n                          }\n                      }),\n                  )\n            : of([]);\n        this.availableCountries$ = this.dataService.settings\n            .getAvailableCountries()\n            .mapSingle(({ countries }) => countries.items);\n    }\n\n    trackByFn(item: Customer) {\n        return item.id;\n    }\n\n    addressIdFn(item: AddressFragment) {\n        return item.streetLine1 + item.postalCode;\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n\n    select() {\n        if (this.useExisting && this.selectedAddress) {\n            this.resolveWith({\n                ...pick(this.selectedAddress, [\n                    'fullName',\n                    'company',\n                    'streetLine1',\n                    'streetLine2',\n                    'city',\n                    'province',\n                    'phoneNumber',\n                    'postalCode',\n                ]),\n                countryCode: this.selectedAddress.country.code,\n            });\n        }\n        if (this.createNew && this.addressForm.valid) {\n            const formValue = this.addressForm.value;\n            this.resolveWith(formValue);\n        }\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.select-address' | translate }}</ng-template>\n\n<clr-tabs *ngIf=\"addresses$ | async as addresses\">\n    <clr-tab *ngIf=\"customerId && addresses.length\">\n        <button clrTabLink>{{ 'order.existing-address' | translate }}</button>\n        <ng-template [(clrIfActive)]=\"useExisting\">\n            <clr-tab-content>\n                <vdr-radio-card-fieldset\n                    class=\"block mt-4\"\n                    [idFn]=\"addressIdFn\"\n                    [selectedItemId]=\"selectedAddress && addressIdFn(selectedAddress)\"\n                    (selectItem)=\"selectedAddress = $event\"\n                >\n                    <vdr-radio-card *ngFor=\"let address of addresses\" [item]=\"address\">\n                        <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\n                    </vdr-radio-card>\n                </vdr-radio-card-fieldset>\n            </clr-tab-content>\n        </ng-template>\n    </clr-tab>\n    <clr-tab>\n        <button clrTabLink>{{ 'customer.create-new-address' | translate }}</button>\n\n        <ng-template [(clrIfActive)]=\"createNew\">\n            <clr-tab-content>\n                <vdr-address-form\n                    [formGroup]=\"addressForm\"\n                    [availableCountries]=\"availableCountries$ | async\"\n                ></vdr-address-form>\n            </clr-tab-content>\n        </ng-template>\n    </clr-tab>\n</clr-tabs>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button\n        type=\"submit\"\n        (click)=\"select()\"\n        [disabled]=\"(useExisting && !selectedAddress) || (createNew && addressForm.invalid)\"\n        class=\"btn btn-primary\"\n    >\n        {{ 'common.okay' | translate }}\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { CreateCustomerInput, DataService, Dialog, GetCustomerListQuery } from '@vendure/admin-ui/core';\nimport { concat, Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\n\nexport type Customer = GetCustomerListQuery['customers']['items'][number];\nexport type SelectCustomerDialogResult = (Customer | CreateCustomerInput) & { note: string };\n\n@Component({\n    selector: 'vdr-select-customer-dialog',\n    templateUrl: './select-customer-dialog.component.html',\n    styleUrls: ['./select-customer-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SelectCustomerDialogComponent implements OnInit, Dialog<SelectCustomerDialogResult> {\n    resolveWith: (result?: SelectCustomerDialogResult) => void;\n\n    // populated by the dialog service\n    canCreateNew = true;\n    includeNoteInput = false;\n    title: string = _('order.set-customer-for-order');\n\n    customerForm: UntypedFormGroup;\n    customers$: Observable<Customer[]>;\n    isLoading = false;\n    input$ = new Subject<string>();\n    selectedCustomer: Customer[] = [];\n    useExisting = true;\n    createNew = false;\n    note = '';\n\n    constructor(private dataService: DataService, private formBuilder: UntypedFormBuilder) {\n        this.customerForm = this.formBuilder.group({\n            title: '',\n            firstName: ['', Validators.required],\n            lastName: ['', Validators.required],\n            phoneNumber: '',\n            emailAddress: ['', [Validators.required, Validators.email]],\n        });\n    }\n\n    ngOnInit(): void {\n        this.customers$ = concat(\n            of([]), // default items\n            this.input$.pipe(\n                debounceTime(200),\n                distinctUntilChanged(),\n                tap(() => (this.isLoading = true)),\n                switchMap(term =>\n                    this.dataService.customer\n                        .getCustomerList(10, 0, term)\n                        .mapStream(({ customers }) => customers.items)\n                        .pipe(\n                            catchError(() => of([])), // empty list on error\n                            tap(() => (this.isLoading = false)),\n                        ),\n                ),\n            ),\n        );\n    }\n\n    trackByFn(item: Customer) {\n        return item.id;\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n\n    select() {\n        if (this.useExisting && this.selectedCustomer.length === 1) {\n            this.resolveWith({ ...this.selectedCustomer[0], note: this.note });\n        } else if (this.createNew && this.customerForm.valid) {\n            const formValue = this.customerForm.value;\n            this.resolveWith({ ...formValue, note: this.note });\n        }\n    }\n}\n","<ng-template vdrDialogTitle>{{ title | translate }}</ng-template>\n\n<ng-container *ngIf=\"!canCreateNew\">\n    <ng-container *ngTemplateOutlet=\"customerSelect\"></ng-container>\n    <vdr-form-field [label]=\"'common.add-note' | translate\" *ngIf=\"includeNoteInput\" class=\"mt-4\">\n        <textarea [(ngModel)]=\"note\"></textarea>\n    </vdr-form-field>\n</ng-container>\n\n<clr-tabs *ngIf=\"canCreateNew\" class=\"pt-1\">\n    <clr-tab>\n        <button clrTabLink>{{ 'order.existing-customer' | translate }}</button>\n\n        <ng-template [(clrIfActive)]=\"useExisting\">\n            <clr-tab-content>\n                <div class=\"mt-4\">\n                    <ng-container *ngTemplateOutlet=\"customerSelect\"></ng-container>\n                </div>\n            </clr-tab-content>\n        </ng-template>\n    </clr-tab>\n    <clr-tab *ngIf=\"canCreateNew\">\n        <button clrTabLink>{{ 'customer.create-new-customer' | translate }}</button>\n\n        <ng-template [(clrIfActive)]=\"createNew\">\n            <clr-tab-content>\n                <form [formGroup]=\"customerForm\">\n                    <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\">\n                        <input id=\"title\" type=\"text\" formControlName=\"title\" />\n                    </vdr-form-field>\n                    <vdr-form-field [label]=\"'customer.first-name' | translate\" for=\"firstName\">\n                        <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\n                    </vdr-form-field>\n                    <vdr-form-field [label]=\"'customer.last-name' | translate\" for=\"lastName\">\n                        <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\n                    </vdr-form-field>\n                    <vdr-form-field [label]=\"'customer.email-address' | translate\" for=\"emailAddress\">\n                        <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\n                    </vdr-form-field>\n                    <vdr-form-field [label]=\"'customer.phone-number' | translate\" for=\"phoneNumber\">\n                        <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\n                    </vdr-form-field>\n                </form>\n            </clr-tab-content>\n        </ng-template>\n    </clr-tab>\n</clr-tabs>\n\n<ng-template #customerSelect>\n    <ng-select\n        [items]=\"customers$ | async\"\n        appendTo=\"body\"\n        bindLabel=\"name\"\n        [addTag]=\"false\"\n        [multiple]=\"true\"\n        [hideSelected]=\"true\"\n        [trackByFn]=\"trackByFn\"\n        [minTermLength]=\"2\"\n        [loading]=\"isLoading\"\n        [typeahead]=\"input$\"\n        [(ngModel)]=\"selectedCustomer\"\n    >\n        <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n            <span class=\"item-row\">\n                <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\n                ><span class=\"mx-1\">{{ item.firstName }} {{ item.lastName }}</span>\n                <vdr-chip>{{ item.emailAddress }}</vdr-chip>\n            </span>\n        </ng-template>\n        <ng-template ng-option-tmp let-item=\"item\">\n            <span class=\"item-row\">\n                <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\n                ><span class=\"mx-1\">{{ item.firstName }} {{ item.lastName }}</span>\n                <vdr-chip>{{ item.emailAddress }}</vdr-chip>\n            </span>\n        </ng-template>\n    </ng-select>\n</ng-template>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button\n        type=\"submit\"\n        (click)=\"select()\"\n        [disabled]=\"(useExisting && selectedCustomer.length === 0) || (createNew && customerForm.invalid)\"\n        class=\"btn btn-primary\"\n    >\n        {{ 'common.okay' | translate }}\n    </button>\n</ng-template>\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport {\n    CreateAddressInput,\n    CurrencyCode,\n    Dialog,\n    DraftOrderEligibleShippingMethodsQuery,\n} from '@vendure/admin-ui/core';\n\ntype ShippingMethodQuote =\n    DraftOrderEligibleShippingMethodsQuery['eligibleShippingMethodsForDraftOrder'][number];\n\n@Component({\n    selector: 'vdr-select-shipping-method-dialog',\n    templateUrl: './select-shipping-method-dialog.component.html',\n    styleUrls: ['./select-shipping-method-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SelectShippingMethodDialogComponent implements OnInit, Dialog<string> {\n    resolveWith: (result?: string) => void;\n    eligibleShippingMethods: ShippingMethodQuote[];\n    currentSelectionId: string;\n    currencyCode: CurrencyCode;\n    selectedMethod: ShippingMethodQuote | undefined;\n\n    ngOnInit(): void {\n        if (this.currentSelectionId) {\n            this.selectedMethod = this.eligibleShippingMethods.find(m => m.id === this.currentSelectionId);\n        }\n    }\n\n    methodIdFn(item: ShippingMethodQuote) {\n        return item.id;\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n\n    select() {\n        if (this.selectedMethod) {\n            this.resolveWith(this.selectedMethod.id);\n        }\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.select-shipping-method' | translate }}</ng-template>\n<vdr-radio-card-fieldset\n    [idFn]=\"methodIdFn\"\n    [selectedItemId]=\"selectedMethod?.id\"\n    (selectItem)=\"selectedMethod = $event\"\n>\n    <vdr-radio-card *ngFor=\"let quote of eligibleShippingMethods\" [item]=\"quote\">\n        <div class=\"result-details\">\n            <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\n                {{ quote.name }}\n            </vdr-labeled-data>\n            <div class=\"price-row\">\n                <vdr-labeled-data [label]=\"'common.price' | translate\">\n                    {{ quote.price | localeCurrency: currencyCode }}\n                </vdr-labeled-data>\n                <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\n                    {{ quote.priceWithTax | localeCurrency: currencyCode }}\n                </vdr-labeled-data>\n            </div>\n            <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\n        </div>\n    </vdr-radio-card>\n</vdr-radio-card-fieldset>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button\n        type=\"submit\"\n        (click)=\"select()\"\n        [disabled]=\"!selectedMethod\"\n        class=\"btn btn-primary\"\n    >\n        {{ 'common.okay' | translate }}\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Dialog } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-state-select-dialog',\n    templateUrl: './order-state-select-dialog.component.html',\n    styleUrls: ['./order-state-select-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderStateSelectDialogComponent implements Dialog<string> {\n    resolveWith: (result?: string) => void;\n    nextStates: string[] = [];\n    message = '';\n    cancellable: boolean;\n    selectedState = '';\n\n    select() {\n        if (this.selectedState) {\n            this.resolveWith(this.selectedState);\n        }\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.select-state' | translate }}</ng-template>\n<p>{{ message | translate }}</p>\n<vdr-form-field>\n    <select name=\"state\" [(ngModel)]=\"selectedState\">\n        <option *ngFor=\"let state of nextStates\" [value]=\"state\">\n            {{ state | stateI18nToken | translate }}\n        </option>\n    </select>\n</vdr-form-field>\n<ng-template vdrDialogButtons>\n    <button type=\"submit\" *ngIf=\"cancellable\" (click)=\"cancel()\" class=\"btn btn-secondary\">\n        {{ 'common.cancel' | translate }}\n    </button>\n    <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"!selectedState\">\n        {{ 'order.transition-to-state' | translate: { state: (selectedState | stateI18nToken | translate) } }}\n    </button>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    DataService,\n    HistoryEntryType,\n    I18nService,\n    ModalService,\n    NotificationService,\n    SortOrder,\n} from '@vendure/admin-ui/core';\nimport { EMPTY } from 'rxjs';\nimport { catchError, delay, map, retryWhen, switchMap, take } from 'rxjs/operators';\n\nimport { OrderStateSelectDialogComponent } from '../components/order-state-select-dialog/order-state-select-dialog.component';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class OrderTransitionService {\n    constructor(\n        private dataService: DataService,\n        private modalService: ModalService,\n        private notificationService: NotificationService,\n        private i18nService: I18nService,\n    ) {}\n\n    /**\n     * Attempts to transition the Order to the last state it was in before it was transitioned\n     * to the \"Modifying\" state. If this fails, a manual prompt is used.\n     */\n    transitionToPreModifyingState(orderId: string, nextStates: string[]) {\n        return this.getPreModifyingState(orderId).pipe(\n            switchMap(state => {\n                const manualTransitionOptions = {\n                    orderId,\n                    nextStates,\n                    message: this.i18nService.translate(\n                        _('order.unable-to-transition-to-state-try-another'),\n                        { state },\n                    ),\n                    cancellable: false,\n                    retry: 10,\n                };\n                if (state) {\n                    return this.transitionToStateOrThrow(orderId, state).pipe(\n                        catchError(err => this.manuallyTransitionToState(manualTransitionOptions)),\n                    );\n                } else {\n                    return this.manuallyTransitionToState(manualTransitionOptions);\n                }\n            }),\n        );\n    }\n\n    /**\n     * Displays a modal for manually selecting the next state.\n     */\n    manuallyTransitionToState(options: {\n        orderId: string;\n        nextStates: string[];\n        message: string;\n        cancellable: boolean;\n        retry: number;\n    }) {\n        return this.modalService\n            .fromComponent(OrderStateSelectDialogComponent, {\n                locals: {\n                    nextStates: options.nextStates,\n                    cancellable: options.cancellable,\n                    message: options.message,\n                },\n                closable: false,\n                size: 'md',\n            })\n            .pipe(\n                switchMap(result => {\n                    if (result) {\n                        return this.transitionToStateOrThrow(options.orderId, result);\n                    } else {\n                        if (!options.cancellable) {\n                            throw new Error(`An order state must be selected`);\n                        } else {\n                            return EMPTY;\n                        }\n                    }\n                }),\n                retryWhen(errors => errors.pipe(delay(2000), take(options.retry))),\n            );\n    }\n\n    /**\n     * Attempts to get the last state the Order was in before it was transitioned\n     * to the \"Modifying\" state.\n     */\n    private getPreModifyingState(orderId: string) {\n        return this.dataService.order\n            .getOrderHistory(orderId, {\n                filter: {\n                    type: {\n                        eq: HistoryEntryType.ORDER_STATE_TRANSITION,\n                    },\n                },\n                sort: {\n                    createdAt: SortOrder.DESC,\n                },\n            })\n            .mapSingle(result => result.order)\n            .pipe(\n                map(result => {\n                    const item = result?.history.items.find(i => i.data.to === 'Modifying');\n                    if (item) {\n                        return item.data.from as string;\n                    } else {\n                        return;\n                    }\n                }),\n            );\n    }\n\n    private transitionToStateOrThrow(orderId: string, state: string) {\n        return this.dataService.order.transitionToState(orderId, state).pipe(\n            map(({ transitionOrderToState }) => {\n                switch (transitionOrderToState?.__typename) {\n                    case 'Order':\n                        return transitionOrderToState?.state;\n                    case 'OrderStateTransitionError':\n                        this.notificationService.error(transitionOrderToState?.transitionError);\n                        throw new Error(transitionOrderToState?.transitionError);\n                }\n            }),\n        );\n    }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { CustomFieldConfig, ModalService } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-custom-fields-card',\n    templateUrl: './order-custom-fields-card.component.html',\n    styleUrls: ['./order-custom-fields-card.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderCustomFieldsCardComponent implements OnInit {\n    @Input() customFieldsConfig: CustomFieldConfig[] = [];\n    @Input() customFieldValues: { [name: string]: any } = {};\n    @Output() updateClick = new EventEmitter<any>();\n    customFieldForm: UntypedFormGroup;\n    editable = false;\n    constructor(\n        private formBuilder: UntypedFormBuilder,\n        private modalService: ModalService,\n    ) {}\n\n    ngOnInit() {\n        this.customFieldForm = this.formBuilder.group({});\n        for (const field of this.customFieldsConfig) {\n            this.customFieldForm.addControl(\n                field.name,\n                this.formBuilder.control(this.customFieldValues[field.name]),\n            );\n        }\n    }\n\n    onUpdateClick() {\n        this.updateClick.emit(this.customFieldForm.value);\n        this.customFieldForm.markAsPristine();\n        this.editable = false;\n    }\n\n    onCancelClick() {\n        if (this.customFieldForm.dirty) {\n            this.modalService\n                .dialog({\n                    title: _('catalog.confirm-cancel'),\n                    buttons: [\n                        { type: 'secondary', label: _('common.keep-editing') },\n                        { type: 'danger', label: _('common.discard-changes'), returnValue: true },\n                    ],\n                })\n                .subscribe(result => {\n                    if (result) {\n                        this.customFieldForm.reset();\n                        this.customFieldForm.markAsPristine();\n                        this.editable = false;\n                    }\n                });\n        } else {\n            this.editable = false;\n        }\n    }\n}\n","<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\n    <div class=\"card-header\">\n        {{ 'common.custom-fields' | translate }}\n    </div>\n    <div class=\"card-block\">\n        <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\n            <vdr-tabbed-custom-fields\n                entityName=\"Order\"\n                [customFields]=\"customFieldsConfig\"\n                [customFieldsFormGroup]=\"customFieldForm\"\n                [readonly]=\"!editable\"\n                [compact]=\"true\"\n            ></vdr-tabbed-custom-fields>\n        </div>\n    </div>\n    <div class=\"card-footer\">\n        <button class=\"btn btn-sm btn-secondary\" (click)=\"editable = true\" *ngIf=\"!editable\">\n            <clr-icon shape=\"pencil\"></clr-icon>\n            {{ 'common.edit' | translate }}\n        </button>\n        <button\n            class=\"btn btn-sm btn-primary\"\n            (click)=\"onUpdateClick()\"\n            *ngIf=\"editable\"\n            [disabled]=\"customFieldForm.pristine || customFieldForm.invalid\"\n        >\n            <clr-icon shape=\"check\"></clr-icon>\n            {{ 'common.update' | translate }}\n        </button>\n        <button\n            class=\"btn btn-sm btn-secondary\"\n            (click)=\"onCancelClick()\"\n            *ngIf=\"editable\"\n        >\n            <clr-icon shape=\"times\"></clr-icon>\n            {{ 'common.cancel' | translate }}\n        </button>\n    </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { OrderDetailFragment } from '@vendure/admin-ui/core';\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\nimport { unique } from '@vendure/common/lib/unique';\n\nexport type FulfillmentStatus = 'full' | 'partial' | 'none';\ntype Fulfillment = NonNullable<OrderDetailFragment['fulfillments']>[number];\n\n@Component({\n    selector: 'vdr-line-fulfillment',\n    templateUrl: './line-fulfillment.component.html',\n    styleUrls: ['./line-fulfillment.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class LineFulfillmentComponent implements OnChanges {\n    @Input() line: OrderDetailFragment['lines'][number];\n    @Input() allOrderFulfillments: OrderDetailFragment['fulfillments'];\n    @Input() orderState: string;\n    fulfilledCount = 0;\n    fulfillmentStatus: FulfillmentStatus;\n    fulfillments: Array<{\n        count: number;\n        fulfillment: Fulfillment;\n    }> = [];\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (this.line) {\n            this.fulfilledCount = this.getDeliveredCount(this.line);\n            this.fulfillmentStatus = this.getFulfillmentStatus(this.fulfilledCount, this.line.quantity);\n            this.fulfillments = this.getFulfillments(this.line);\n        }\n    }\n\n    /**\n     * Returns the number of items in an OrderLine which are fulfilled.\n     */\n    private getDeliveredCount(line: OrderDetailFragment['lines'][number]): number {\n        return (\n            line.fulfillmentLines?.reduce((sum, fulfillmentLine) => sum + fulfillmentLine.quantity, 0) ?? 0\n        );\n    }\n\n    private getFulfillmentStatus(fulfilledCount: number, lineQuantity: number): FulfillmentStatus {\n        if (fulfilledCount === lineQuantity) {\n            return 'full';\n        }\n        if (0 < fulfilledCount && fulfilledCount < lineQuantity) {\n            return 'partial';\n        }\n        return 'none';\n    }\n\n    private getFulfillments(\n        line: OrderDetailFragment['lines'][number],\n    ): Array<{ count: number; fulfillment: NonNullable<OrderDetailFragment['fulfillments']>[number] }> {\n        return (\n            line.fulfillmentLines\n                ?.map(fulfillmentLine => {\n                    const fulfillment = this.allOrderFulfillments?.find(\n                        f => f.id === fulfillmentLine.fulfillmentId,\n                    );\n                    if (!fulfillment) {\n                        return;\n                    }\n                    return {\n                        count: fulfillmentLine.quantity,\n                        fulfillment,\n                    };\n                })\n                .filter(notNullOrUndefined) ?? []\n        );\n    }\n}\n","<vdr-dropdown class=\"search-settings-menu\" *ngIf=\"fulfilledCount || orderState === 'PartiallyDelivered'\">\n    <button type=\"button\" class=\"icon-button\" vdrDropdownTrigger>\n        <clr-icon *ngIf=\"fulfillmentStatus === 'full'\" class=\"item-fulfilled\" shape=\"check-circle\"></clr-icon>\n        <clr-icon\n            *ngIf=\"fulfillmentStatus === 'partial'\"\n            class=\"item-partially-fulfilled\"\n            shape=\"check-circle\"\n        ></clr-icon>\n        <clr-icon\n            *ngIf=\"fulfillmentStatus === 'none'\"\n            class=\"item-not-fulfilled\"\n            shape=\"exclamation-circle\"\n        ></clr-icon>\n    </button>\n    <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n        <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'full'\">\n            {{ 'order.line-fulfillment-all' | translate }}\n        </label>\n        <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'partial'\">\n            {{\n                'order.line-fulfillment-partial' | translate: { total: line.quantity, count: fulfilledCount }\n            }}\n        </label>\n        <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'none'\">\n            {{ 'order.line-fulfillment-none' | translate }}\n        </label>\n        <div class=\"fulfillment-detail\" *ngFor=\"let item of fulfillments\">\n            <div class=\"fulfillment-title\">\n                {{ 'order.fulfillment' | translate }} #{{ item.fulfillment.id }} ({{\n                    'order.item-count' | translate: { count: item.count }\n                }})\n            </div>\n            <vdr-labeled-data [label]=\"'common.created-at' | translate\">\n                {{ item.fulfillment.createdAt | localeDate: 'medium' }}\n            </vdr-labeled-data>\n            <vdr-labeled-data [label]=\"'order.fulfillment-method' | translate\">\n                {{ item.fulfillment.method }}\n            </vdr-labeled-data>\n            <vdr-labeled-data\n                *ngIf=\"item.fulfillment.trackingCode\"\n                [label]=\"'order.tracking-code' | translate\"\n            >\n                {{ item.fulfillment.trackingCode }}\n            </vdr-labeled-data>\n        </div>\n    </vdr-dropdown-menu>\n</vdr-dropdown>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { OrderDetailFragment, PaymentWithRefundsFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-line-refunds',\n    templateUrl: './line-refunds.component.html',\n    styleUrls: ['./line-refunds.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class LineRefundsComponent {\n    @Input() line: OrderDetailFragment['lines'][number];\n    @Input() payments: PaymentWithRefundsFragment[];\n\n    getRefundedCount(): number {\n        const refundLines =\n            this.payments\n                ?.reduce(\n                    (all, payment) => [...all, ...payment.refunds],\n                    [] as PaymentWithRefundsFragment['refunds'],\n                )\n                .filter(refund => refund.state !== 'Failed')\n                .reduce(\n                    (all, refund) => [...all, ...refund.lines],\n                    [] as Array<{ orderLineId: string; quantity: number }>,\n                ) ?? [];\n\n        return refundLines\n            .filter(i => i.orderLineId === this.line.id)\n            .reduce((sum, i) => sum + i.quantity, 0);\n    }\n}\n","<span *ngIf=\"getRefundedCount()\" [title]=\"'order.refunded-count' | translate: { count: getRefundedCount() }\">\n    <clr-icon shape=\"redo\" class=\"is-solid\" dir=\"down\"></clr-icon>\n</span>\n","import { Component } from '@angular/core';\nimport { DataTable2ColumnComponent } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-total-column',\n    template: ``,\n    exportAs: 'row',\n    standalone: false,\n})\nexport class OrderTotalColumnComponent<T> extends DataTable2ColumnComponent<T> {\n    orderable = false;\n}\n","import { ChangeDetectionStrategy, Component, ContentChildren, Input, QueryList } from '@angular/core';\nimport { DataTable2Component, OrderDetailFragment } from '@vendure/admin-ui/core';\nimport { OrderTotalColumnComponent } from './order-total-column.component';\n\n@Component({\n    selector: 'vdr-order-data-table',\n    templateUrl: './order-data-table.component.html',\n    styleUrls: [\n        '../../../../core/src/shared/components/data-table-2/data-table2.component.scss',\n        './order-data-table.component.scss',\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderDataTableComponent extends DataTable2Component<OrderDetailFragment> {\n    @ContentChildren(OrderTotalColumnComponent) totalColumns: QueryList<OrderTotalColumnComponent<any>>;\n    @Input() order: OrderDetailFragment;\n\n    get allColumns() {\n        return [...(this.columns ?? []), ...(this.customFieldColumns ?? []), ...(this.totalColumns ?? [])];\n    }\n\n    getPromotionLink(promotion: OrderDetailFragment['discounts'][number]): any[] {\n        const id = promotion.adjustmentSource.split(':')[1];\n        return ['/marketing', 'promotions', id];\n    }\n\n    getCouponCodeForAdjustment(\n        order: OrderDetailFragment,\n        promotionAdjustment: OrderDetailFragment['discounts'][number],\n    ): string | undefined {\n        const id = promotionAdjustment.adjustmentSource.split(':')[1];\n        const promotion = order.promotions.find(p => p.id === id);\n        if (promotion) {\n            return promotion.couponCode || undefined;\n        }\n    }\n\n    getShippingNames(order: OrderDetailFragment) {\n        if (order.shippingLines.length) {\n            return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\n        } else {\n            return '';\n        }\n    }\n}\n","<div class=\"bulk-actions\">\n    <ng-content select=\"vdr-bulk-action-menu\"></ng-content>\n</div>\n<div class=\"table-wrapper\">\n    <table\n        class=\"\"\n        [class.no-select]=\"disableSelect\"\n    >\n        <thead [class.items-selected]=\"selectionManager?.selection.length\">\n            <tr class=\"heading-row\">\n                <th *ngIf=\"selectionManager\" class=\"selection-col\">\n                    <input\n                        type=\"checkbox\"\n                        clrCheckbox\n                        [checked]=\"selectionManager?.areAllCurrentItemsSelected()\"\n                        (change)=\"onToggleAllClick()\"\n                    />\n                </th>\n                <th\n                    *ngFor=\"let column of visibleSortedColumns; last as isLast\"\n                    [class.expand]=\"column.expand\"\n                >\n                    <div class=\"cell-content\" [ngClass]=\"column.align\">\n                        <vdr-ui-extension-point\n                            [locationId]=\"id\"\n                            [metadata]=\"column.id\"\n                            api=\"dataTable\"\n                            [topPx]=\"-6\"\n                            [leftPx]=\"-24\"\n                            display=\"block\"\n                        >\n                            <span>{{ column.heading }}</span>\n                        </vdr-ui-extension-point>\n                        <div *ngIf=\"column.sort as sort\" class=\"sort-toggle\">\n                            <button (click)=\"sort.toggleSortOrder()\" [class.active]=\"sort.sortOrder\">\n                                <clr-icon *ngIf=\"!sort.sortOrder\" shape=\"two-way-arrows left\"></clr-icon>\n                                <clr-icon *ngIf=\"sort.sortOrder === 'ASC'\" shape=\"arrow up\"></clr-icon>\n                                <clr-icon *ngIf=\"sort.sortOrder === 'DESC'\" shape=\"arrow down\"></clr-icon>\n                            </button>\n                            <div class=\"sort-label\" *ngIf=\"sort.sortOrder\">{{ sort.sortOrder }}</div>\n                        </div>\n                    </div>\n                </th>\n                <th>\n                    <div class=\"column-picker\">\n                        <vdr-data-table-colum-picker\n                            [uiLanguage]=\"uiLanguage$ | async\"\n                            [columns]=\"sortedColumns\"\n                            (reorder)=\"onColumnReorder($event)\"\n                            (resetColumns)=\"onColumnsReset()\"\n                        ></vdr-data-table-colum-picker>\n                    </div>\n                </th>\n            </tr>\n            <tr *ngIf=\"searchComponent || customSearchTemplate || filters?.length\">\n                <th\n                    [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\"\n                    class=\"filter-row\"\n                    [class.active]=\"showSearchFilterRow\"\n                >\n                    <button\n                        class=\"button-ghost toggle-search-filter-row\"\n                        [class.active]=\"showSearchFilterRow\"\n                        (click)=\"toggleSearchFilterRow()\"\n                        [title]=\"'common.search-and-filter-list' | translate\"\n                    >\n                        <clr-icon shape=\"search\"></clr-icon>\n                    </button>\n                    <div class=\"filter-row-wrapper\" [class.hidden]=\"!showSearchFilterRow\">\n                        <ng-container *ngTemplateOutlet=\"searchComponent?.template\"></ng-container>\n                        <ng-container *ngTemplateOutlet=\"customSearchTemplate\"></ng-container>\n                        <ng-container *ngIf=\"filters\">\n                            <div class=\"filters\">\n                                <vdr-data-table-filters\n                                    *ngFor=\"let activeFilter of filters.activeFilters\"\n                                    [filterWithValue]=\"activeFilter\"\n                                    [filters]=\"filters\"\n                                    class=\"mt-1\"\n                                ></vdr-data-table-filters>\n                                <vdr-data-table-filters\n                                    *ngIf=\"filters.length\"\n                                    [filters]=\"filters\"\n                                    class=\"mt-1\"\n                                ></vdr-data-table-filters>\n                            </div>\n                        </ng-container>\n                    </div>\n                </th>\n            </tr>\n        </thead>\n        <tbody>\n            <tr\n                *ngFor=\"\n                    let item of items\n                        | paginate\n                            : {\n                                  id: id,\n                                  itemsPerPage: itemsPerPage,\n                                  currentPage: currentPage,\n                                  totalItems: totalItems\n                              };\n                    index as i;\n                    trackBy: trackByFn.bind(this)\n                \"\n            >\n                <td *ngIf=\"selectionManager\" class=\"selection-col\" [class.active]=\"activeIndex === i\">\n                    <input\n                        type=\"checkbox\"\n                        clrCheckbox\n                        [checked]=\"selectionManager?.isSelected(item)\"\n                        (click)=\"onRowClick(item, $event)\"\n                    />\n                </td>\n                <td *ngFor=\"let column of visibleSortedColumns\" [class.active]=\"activeIndex === i\">\n                    <div class=\"cell-content\" [ngClass]=\"column.align\">\n                        <ng-container\n                            *ngIf=\"customComponents.get(column.id) as componentConfig; else defaultComponent\"\n                        >\n                            <ng-container\n                                *ngComponentOutlet=\"\n                                    componentConfig.config.component;\n                                    inputs: { rowItem: item };\n                                    injector: componentConfig.injector\n                                \"\n                            ></ng-container>\n                        </ng-container>\n                        <ng-template #defaultComponent>\n                            <ng-container\n                                *ngTemplateOutlet=\"column.template; context: { item: item, index: i }\"\n                            ></ng-container>\n                        </ng-template>\n                    </div>\n                </td>\n                <td [class.active]=\"activeIndex === i\"><!-- column select --></td>\n            </tr>\n            <ng-container>\n                <tr *ngIf=\"!items?.length\">\n                    <td [attr.colspan]=\"visibleSortedColumns.length + (selectionManager ? 2 : 1)\">\n                        <vdr-empty-placeholder [emptyStateLabel]=\"'order.order-is-empty' | translate\"></vdr-empty-placeholder>\n                    </td>\n                </tr>\n            </ng-container>\n            <tr class=\"surcharge\" *ngFor=\"let surcharge of order.surcharges\">\n                <td class=\"align-middle name left\" colspan=\"2\">{{ surcharge.description }}</td>\n                <td class=\"align-middle sku\">{{ surcharge.sku }}</td>\n                <td class=\"align-middle\" [attr.colspan]=\"visibleSortedColumns.length - 4\"></td>\n                <td class=\"align-middle total\">\n                    {{ surcharge.priceWithTax | localeCurrency : order.currencyCode }}\n                    <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                        {{ surcharge.price | localeCurrency : order.currencyCode }}\n                    </div>\n                </td>\n                <td><!-- column select --></td>\n            </tr>\n            <ng-container *ngFor=\"let discount of order.discounts\">\n                <tr class=\"order-adjustment\" *ngIf=\"discount.type !== 'OTHER'\">\n                    <td [attr.colspan]=\"visibleSortedColumns.length - 1\" class=\"\">\n                        <a [routerLink]=\"getPromotionLink(discount)\">{{ discount.description }}</a>\n                        <vdr-chip *ngIf=\"getCouponCodeForAdjustment(order, discount) as couponCode\">{{\n                            couponCode\n                        }}</vdr-chip>\n                    </td>\n                    <td class=\"\">\n                        {{ discount.amountWithTax | localeCurrency : order.currencyCode }}\n                        <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                            {{ discount.amount | localeCurrency : order.currencyCode }}\n                        </div>\n                    </td>\n                    <td><!-- column select --></td>\n                </tr>\n            </ng-container>\n            <tr class=\"sub-total\">\n                <td class=\"\">{{ 'order.sub-total' | translate }}</td>\n                <td [attr.colspan]=\"visibleSortedColumns.length - 2\"></td>\n                <td class=\"clr-align-middle\">\n                    {{ order.subTotalWithTax | localeCurrency : order.currencyCode }}\n                    <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                        {{ order.subTotal | localeCurrency : order.currencyCode }}\n                    </div>\n                </td>\n                <td><!-- column select --></td>\n            </tr>\n            <tr class=\"shipping\">\n                <td class=\"\">{{ 'order.shipping' | translate }}</td>\n                <td [attr.colspan]=\"visibleSortedColumns.length - 2\">\n                    <vdr-chip *ngFor=\"let shippingLine of order.shippingLines\" class=\"shipping-method-name\">\n                        {{ shippingLine.shippingMethod.name }}\n                    </vdr-chip>\n                </td>\n                <td class=\"clr-align-middle\">\n                    {{ order.shippingWithTax | localeCurrency : order.currencyCode }}\n                    <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                        {{ order.shipping | localeCurrency : order.currencyCode }}\n                    </div>\n                </td>\n                <td><!-- column select --></td>\n            </tr>\n            <tr class=\"total\">\n                <td class=\"\">{{ 'order.total' | translate }}</td>\n                <td [attr.colspan]=\"visibleSortedColumns.length - 2\"></td>\n                <td class=\"clr-align-middle\">\n                    {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n                    <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                        {{ order.total | localeCurrency : order.currencyCode }}\n                    </div>\n                </td>\n                <td><!-- column select --></td>\n            </tr>\n        </tbody>\n    </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { AdjustmentType, CustomFieldConfig, OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-table',\n    templateUrl: './order-table.component.html',\n    styleUrls: ['./order-table.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderTableComponent implements OnInit {\n    @Input() order: OrderDetailFragment;\n    @Input() orderLineCustomFields: CustomFieldConfig[];\n    @Input() isDraft = false;\n    @Output() adjust = new EventEmitter<{ lineId: string; quantity: number }>();\n    @Output() remove = new EventEmitter<{ lineId: string }>();\n    orderLineCustomFieldsVisible = false;\n    customFieldsForLine: {\n        [lineId: string]: Array<{ config: CustomFieldConfig; formGroup: UntypedFormGroup; value: any }>;\n    } = {};\n\n    get visibleOrderLineCustomFields(): CustomFieldConfig[] {\n        return this.orderLineCustomFieldsVisible ? this.orderLineCustomFields : [];\n    }\n\n    get showElided(): boolean {\n        return !this.orderLineCustomFieldsVisible && 0 < this.orderLineCustomFields.length;\n    }\n\n    ngOnInit(): void {\n        this.orderLineCustomFieldsVisible = this.orderLineCustomFields.length < 2;\n        this.getLineCustomFields();\n    }\n\n    draftInputBlur(line: OrderDetailFragment['lines'][number], quantity: number) {\n        if (line.quantity !== quantity) {\n            this.adjust.emit({ lineId: line.id, quantity });\n        }\n    }\n\n    toggleOrderLineCustomFields() {\n        this.orderLineCustomFieldsVisible = !this.orderLineCustomFieldsVisible;\n    }\n\n    getLineDiscounts(line: OrderDetailFragment['lines'][number]) {\n        return line.discounts.filter(a => a.type === AdjustmentType.PROMOTION);\n    }\n\n    private getLineCustomFields() {\n        for (const line of this.order.lines) {\n            const formGroup = new UntypedFormGroup({});\n            const result = this.orderLineCustomFields\n                .map(config => {\n                    const value = (line as any).customFields[config.name];\n                    formGroup.addControl(config.name, new UntypedFormControl(value));\n                    return {\n                        config,\n                        formGroup,\n                        value,\n                    };\n                })\n                .filter(field => (this.orderLineCustomFieldsVisible ? true : field.value != null));\n            this.customFieldsForLine[line.id] = result;\n        }\n    }\n\n    getPromotionLink(promotion: OrderDetailFragment['discounts'][number]): any[] {\n        const id = promotion.adjustmentSource.split(':')[1];\n        return ['/marketing', 'promotions', id];\n    }\n\n    getCouponCodeForAdjustment(\n        order: OrderDetailFragment,\n        promotionAdjustment: OrderDetailFragment['discounts'][number],\n    ): string | undefined {\n        const id = promotionAdjustment.adjustmentSource.split(':')[1];\n        const promotion = order.promotions.find(p => p.id === id);\n        if (promotion) {\n            return promotion.couponCode || undefined;\n        }\n    }\n\n    getShippingNames(order: OrderDetailFragment) {\n        if (order.shippingLines.length) {\n            return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\n        } else {\n            return '';\n        }\n    }\n}\n","<vdr-order-data-table id=\"order-detail-list\" [items]=\"order.lines\" [order]=\"order\">\n    <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\n        <ng-template let-line=\"item\">\n            {{ line.id }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column\n            id=\"created-at\"\n            [heading]=\"'common.created-at' | translate\"\n            [hiddenByDefault]=\"true\"\n    >\n        <ng-template let-line=\"item\">\n            {{ line.createdAt | localeDate : 'short' }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column\n            id=\"updated-at\"\n            [heading]=\"'common.updated-at' | translate\"\n            [hiddenByDefault]=\"true\"\n    >\n        <ng-template let-line=\"item\">\n            {{ line.updatedAt | localeDate : 'short' }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\n        <ng-template let-line=\"item\">\n            <div class=\"image-placeholder\">\n                <img\n                    *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\n                    [src]=\"asset | assetPreview : 'tiny'\"\n                />\n                <ng-template #imagePlaceholder>\n                    <div class=\"placeholder\">\n                        <clr-icon shape=\"image\" size=\"48\"></clr-icon>\n                    </div>\n                </ng-template>\n            </div>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.product-name' | translate\" id=\"product-name\">\n        <ng-template let-line=\"item\">\n            <a class=\"button-ghost\" [routerLink]=\"['/catalog/products', line.productVariant.product.id]\"\n            ><span>{{ line.productVariant.product.name }}</span>\n                <clr-icon shape=\"arrow right\"></clr-icon>\n            </a>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.product-variant' | translate\" id=\"product-variant\">\n        <ng-template let-line=\"item\">\n            <a class=\"button-ghost\" [routerLink]=\"['/catalog/products', line.productVariant.product.id, 'variants', line.productVariant.id]\"\n            ><span>{{ line.productVariant.name }}</span>\n                <clr-icon shape=\"arrow right\"></clr-icon>\n            </a>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.product-sku' | translate\" id=\"product-sku\">\n        <ng-template let-line=\"item\">\n            {{ line.productVariant.sku }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.unit-price' | translate\" id=\"unit-price\">\n        <ng-template let-line=\"item\">\n            <div class=\"unit-price\">\n                {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\n                <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                    {{ line.unitPrice | localeCurrency : order.currencyCode }}\n                </div>\n            </div>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.quantity' | translate\" id=\"quantity\" [optional]=\"false\">\n        <ng-template let-line=\"item\">\n            <ng-container *ngIf=\"!isDraft; else draft\">\n                <div class=\"flex\">\n                    <div\n                        *ngIf=\"line.orderPlacedQuantity && line.quantity !== line.orderPlacedQuantity\"\n                        class=\"order-placed-quantity\"\n                        [title]=\"'order.original-quantity-at-checkout' | translate\"\n                    >\n                        {{ line.orderPlacedQuantity }}\n                    </div>\n                    <div>{{ line.quantity }}</div>\n                </div>\n            </ng-container>\n            <ng-template #draft>\n                <div class=\"flex\">\n                    <input\n                        class=\"draft-qty\"\n                        type=\"number\"\n                        min=\"0\"\n                        #qtyInput\n                        [value]=\"line.quantity\"\n                        (blur)=\"draftInputBlur(line, qtyInput.valueAsNumber)\"\n                    />\n                    <button class=\"icon-button\" (click)=\"remove.emit({ lineId: line.id })\">\n                        <clr-icon shape=\"trash\"></clr-icon>\n                    </button>\n                </div>\n            </ng-template>\n            <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\n            <vdr-line-fulfillment\n                [line]=\"line\"\n                [orderState]=\"order.state\"\n                [allOrderFulfillments]=\"order.fulfillments\"\n            ></vdr-line-fulfillment>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-custom-field-column\n        *ngFor=\"let customField of orderLineCustomFields\"\n        [customField]=\"customField\"\n    />\n    <vdr-order-total-column [heading]=\"'order.total' | translate\" id=\"total\" [optional]=\"false\">\n        <ng-template let-line=\"item\">\n            <div class=\"unit-price\">\n                {{ line.linePriceWithTax | localeCurrency : order.currencyCode }}\n                <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                    {{ line.linePrice | localeCurrency : order.currencyCode }}\n                </div>\n            </div>\n\n            <ng-container *ngIf=\"getLineDiscounts(line) as discounts\">\n                <vdr-dropdown *ngIf=\"discounts.length\">\n                    <div class=\"promotions-label\" vdrDropdownTrigger>\n                        {{ 'order.promotions-applied' | translate }}\n                    </div>\n                    <vdr-dropdown-menu>\n                        <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\n                            <a class=\"promotion-name\" [routerLink]=\"getPromotionLink(discount)\">{{\n                                discount.description\n                            }}</a>\n                            <div class=\"promotion-amount\">\n                                {{ discount.amountWithTax | localeCurrency : order.currencyCode }}\n                                <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                                    {{ discount.amount | localeCurrency : order.currencyCode }}\n                                </div>\n                            </div>\n                        </div>\n                    </vdr-dropdown-menu>\n                </vdr-dropdown>\n            </ng-container>\n        </ng-template>\n    </vdr-order-total-column>\n</vdr-order-data-table>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { CurrencyCode, CustomFieldConfig, DataService, GetProductVariantQuery } from '@vendure/admin-ui/core';\nimport { Observable, Subject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\n@Component({\n    selector: 'vdr-draft-order-variant-selector',\n    templateUrl: './draft-order-variant-selector.component.html',\n    styleUrls: ['./draft-order-variant-selector.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class DraftOrderVariantSelectorComponent implements OnInit {\n    @Input() currencyCode: CurrencyCode;\n    @Input() orderLineCustomFields: CustomFieldConfig[];\n    @Output() addItem = new EventEmitter<{ productVariantId: string; quantity: number; customFields: any }>();\n    customFieldsFormGroup = new UntypedFormGroup({});\n    selectedVariant$: Observable<GetProductVariantQuery['productVariant']>;\n    selectedVariantId$ = new Subject<string | undefined>();\n    quantity = 1;\n    constructor(private dataService: DataService) {}\n\n    ngOnInit(): void {\n        this.selectedVariant$ = this.selectedVariantId$.pipe(\n            switchMap(id => {\n                if (id) {\n                    return this.dataService.product\n                        .getProductVariant(id)\n                        .mapSingle(({ productVariant }) => productVariant);\n                } else {\n                    return [undefined];\n                }\n            }),\n        );\n        for (const customField of this.orderLineCustomFields) {\n            this.customFieldsFormGroup.addControl(customField.name, new UntypedFormControl(''));\n        }\n    }\n\n    addItemClick(selectedVariant: GetProductVariantQuery['productVariant']) {\n        if (selectedVariant) {\n            this.addItem.emit({\n                productVariantId: selectedVariant.id,\n                quantity: this.quantity,\n                customFields: this.orderLineCustomFields.length\n                    ? this.customFieldsFormGroup.value\n                    : undefined,\n            });\n            this.selectedVariantId$.next(undefined);\n            this.customFieldsFormGroup.reset();\n        }\n    }\n}\n","<div class=\"card\">\n    <div class=\"card-block\">\n        <h4 class=\"card-title\">{{ 'order.add-item-to-order' | translate }}</h4>\n        <vdr-product-variant-selector\n            (productSelected)=\"selectedVariantId$.next($event.productVariantId)\"\n        ></vdr-product-variant-selector>\n    </div>\n    <div class=\"card-block\" *ngIf=\"selectedVariant$ | async as selectedVariant\">\n        <div class=\"variant-details\">\n            <img class=\"mr-2\" [src]=\"selectedVariant.featuredAsset || selectedVariant.product.featuredAsset | assetPreview: 32\">\n            <div class=\"details\">\n                <div>{{ selectedVariant?.name }}</div>\n                <div class=\"small\">{{ selectedVariant?.sku }}</div>\n            </div>\n            <div class=\"details ml-4\">\n                <div class=\"small\">\n                    {{ 'catalog.stock-on-hand' | translate }}: {{ selectedVariant.stockOnHand }}\n                </div>\n                <div class=\"small\">\n                    {{ 'catalog.stock-allocated' | translate }}: {{ selectedVariant.stockAllocated }}\n                </div>\n            </div>\n            <div class=\"flex-spacer\"></div>\n            <div class=\"details\">\n                <div>{{ selectedVariant?.priceWithTax | localeCurrency: currencyCode }}</div>\n                <div class=\"small\" [title]=\"'order.net-price' | translate\">\n                    {{ selectedVariant?.price | localeCurrency: currencyCode }}\n                </div>\n            </div>\n            <div>\n                <input [disabled]=\"!selectedVariant\" type=\"number\" min=\"0\" [(ngModel)]=\"quantity\" />\n            </div>\n            <button\n                [disabled]=\"!selectedVariant\"\n                class=\"btn btn-small btn-primary\"\n                (click)=\"addItemClick(selectedVariant)\"\n            >\n                {{ 'order.add-item-to-order' | translate }}\n            </button>\n        </div>\n        <ng-container *ngIf=\"orderLineCustomFields.length\">\n            <vdr-tabbed-custom-fields\n                entityName=\"Order\"\n                [customFields]=\"orderLineCustomFields\"\n                [customFieldsFormGroup]=\"customFieldsFormGroup\"\n            ></vdr-tabbed-custom-fields>\n        </ng-container>\n    </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    AddressFragment,\n    CreateAddressInput,\n    DataService,\n    DeletionResult,\n    DraftOrderEligibleShippingMethodsQuery,\n    GetCustomerAddressesDocument,\n    ModalService,\n    NotificationService,\n    Order,\n    OrderDetailFragment,\n    OrderDetailQueryDocument,\n    TypedBaseDetailComponent,\n} from '@vendure/admin-ui/core';\nimport { combineLatest, forkJoin, Observable, of, Subject } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\nimport { OrderTransitionService } from '../../providers/order-transition.service';\nimport { SelectAddressDialogComponent } from '../select-address-dialog/select-address-dialog.component';\nimport { SelectCustomerDialogComponent } from '../select-customer-dialog/select-customer-dialog.component';\nimport { SelectShippingMethodDialogComponent } from '../select-shipping-method-dialog/select-shipping-method-dialog.component';\n\n@Component({\n    selector: 'vdr-draft-order-detail',\n    templateUrl: './draft-order-detail.component.html',\n    styleUrls: ['./draft-order-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class DraftOrderDetailComponent\n    extends TypedBaseDetailComponent<typeof OrderDetailQueryDocument, 'order'>\n    implements OnInit, OnDestroy\n{\n    customFields = this.getCustomFieldConfig('Order');\n    orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\n    detailForm = new UntypedFormGroup({});\n    eligibleShippingMethods$: Observable<\n        DraftOrderEligibleShippingMethodsQuery['eligibleShippingMethodsForDraftOrder']\n    >;\n    nextStates$: Observable<string[]>;\n    fetchHistory = new Subject<void>();\n    displayCouponCodeInput = false;\n\n    constructor(\n        private changeDetector: ChangeDetectorRef,\n        protected dataService: DataService,\n        private notificationService: NotificationService,\n        private modalService: ModalService,\n        private orderTransitionService: OrderTransitionService,\n    ) {\n        super();\n    }\n\n    ngOnInit() {\n        this.init();\n        this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\n        this.eligibleShippingMethods$ = this.entity$.pipe(\n            switchMap(order =>\n                this.dataService.order\n                    .getDraftOrderEligibleShippingMethods(order.id)\n                    .mapSingle(\n                        ({ eligibleShippingMethodsForDraftOrder }) => eligibleShippingMethodsForDraftOrder,\n                    ),\n            ),\n        );\n    }\n\n    ngOnDestroy() {\n        this.destroy();\n    }\n\n    addItemToOrder(event: { productVariantId: string; quantity: number; customFields: any }) {\n        this.dataService.order.addItemToDraftOrder(this.id, event).subscribe(result => {\n            if (result.addItemToDraftOrder.__typename !== 'Order') {\n                this.notificationService.error((result.addItemToDraftOrder as any).message);\n            }\n        });\n    }\n\n    adjustOrderLine(event: { lineId: string; quantity: number }) {\n        this.dataService.order\n            .adjustDraftOrderLine(this.id, { orderLineId: event.lineId, quantity: event.quantity })\n            .subscribe(result => {\n                if (result.adjustDraftOrderLine.__typename !== 'Order') {\n                    this.notificationService.error((result.adjustDraftOrderLine as any).message);\n                }\n            });\n    }\n\n    removeOrderLine(event: { lineId: string }) {\n        this.dataService.order.removeDraftOrderLine(this.id, event.lineId).subscribe(result => {\n            if (result.removeDraftOrderLine.__typename !== 'Order') {\n                this.notificationService.error((result.removeDraftOrderLine as any).message);\n            }\n        });\n    }\n\n    getOrderAddressLines(orderAddress?: { [key: string]: string }): string[] {\n        if (!orderAddress) {\n            return [];\n        }\n        return Object.values(orderAddress)\n            .filter(val => val !== 'OrderAddress')\n            .filter(line => !!line);\n    }\n\n    setCustomer() {\n        this.modalService.fromComponent(SelectCustomerDialogComponent).subscribe(result => {\n            if (this.hasId(result)) {\n                this.dataService.order\n                    .setCustomerForDraftOrder(this.id, { customerId: result.id })\n                    .pipe(\n                        switchMap(() => {\n                            return this.dataService.query(GetCustomerAddressesDocument, {\n                                customerId: result.id,\n                            }).single$;\n                        }),\n                        switchMap(({ customer }) => {\n                            const defaultShippingAddress = customer?.addresses?.find(\n                                addr => addr.defaultShippingAddress,\n                            );\n                            const defaultBillingAddress = customer?.addresses?.find(\n                                addr => addr.defaultBillingAddress,\n                            );\n\n                            return forkJoin([\n                                defaultShippingAddress\n                                    ? this.dataService.order.setDraftOrderShippingAddress(\n                                          this.id,\n                                          this.mapToAddressInput(defaultShippingAddress),\n                                      )\n                                    : this.dataService.order.unsetDraftOrderShippingAddress(this.id),\n                                defaultBillingAddress\n                                    ? this.dataService.order.setDraftOrderBillingAddress(\n                                          this.id,\n                                          this.mapToAddressInput(defaultBillingAddress),\n                                      )\n                                    : this.dataService.order.unsetDraftOrderBillingAddress(this.id),\n                            ]);\n                        }),\n                    )\n                    .subscribe();\n            } else if (result) {\n                const { note, ...input } = result;\n                this.dataService.order.setCustomerForDraftOrder(this.id, { input }).subscribe();\n            }\n        });\n    }\n\n    private mapToAddressInput(address: AddressFragment): CreateAddressInput {\n        return {\n            fullName: address.fullName,\n            company: address.company,\n            streetLine1: address.streetLine1,\n            streetLine2: address.streetLine2,\n            city: address.city,\n            province: address.province,\n            postalCode: address.postalCode,\n            countryCode: address.country.code,\n            phoneNumber: address.phoneNumber,\n            defaultShippingAddress: address.defaultShippingAddress,\n            defaultBillingAddress: address.defaultBillingAddress,\n        };\n    }\n\n    setShippingAddress() {\n        this.entity$\n            .pipe(\n                take(1),\n                switchMap(order =>\n                    this.modalService.fromComponent(SelectAddressDialogComponent, {\n                        locals: {\n                            customerId: order.customer?.id,\n                            currentAddress: order.shippingAddress ?? undefined,\n                        },\n                    }),\n                ),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.dataService.order.setDraftOrderShippingAddress(this.id, result).subscribe();\n                }\n            });\n    }\n\n    setBillingAddress() {\n        this.entity$\n            .pipe(\n                take(1),\n                switchMap(order =>\n                    this.modalService.fromComponent(SelectAddressDialogComponent, {\n                        locals: {\n                            customerId: order.customer?.id,\n                            currentAddress: order.billingAddress ?? undefined,\n                        },\n                    }),\n                ),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.dataService.order.setDraftOrderBillingAddress(this.id, result).subscribe();\n                }\n            });\n    }\n\n    applyCouponCode(couponCode: string) {\n        this.dataService.order.applyCouponCodeToDraftOrder(this.id, couponCode).subscribe();\n    }\n\n    removeCouponCode(couponCode: string) {\n        this.dataService.order.removeCouponCodeFromDraftOrder(this.id, couponCode).subscribe();\n    }\n\n    setShippingMethod() {\n        combineLatest(this.entity$, this.eligibleShippingMethods$)\n            .pipe(\n                take(1),\n                switchMap(([order, methods]) =>\n                    this.modalService.fromComponent(SelectShippingMethodDialogComponent, {\n                        locals: {\n                            eligibleShippingMethods: methods,\n                            currencyCode: order.currencyCode,\n                            currentSelectionId: order.shippingLines?.[0]?.shippingMethod.id,\n                        },\n                    }),\n                ),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.dataService.order.setDraftOrderShippingMethod(this.id, result).subscribe();\n                }\n            });\n    }\n\n    updateCustomFields(customFieldsValue: any) {\n        this.dataService.order\n            .updateOrderCustomFields({\n                id: this.id,\n                customFields: customFieldsValue,\n            })\n            .subscribe();\n    }\n\n    deleteOrder() {\n        this.dataService.order.deleteDraftOrder(this.id).subscribe(({ deleteDraftOrder }) => {\n            if (deleteDraftOrder.result === DeletionResult.DELETED) {\n                this.notificationService.success(_('common.notify-delete-success'), {\n                    entity: 'Order',\n                });\n                this.router.navigate(['/orders']);\n            } else if (deleteDraftOrder.message) {\n                this.notificationService.error(deleteDraftOrder.message);\n            }\n        });\n    }\n\n    completeOrder() {\n        this.dataService.order\n            .transitionToState(this.id, 'ArrangingPayment')\n            .subscribe(({ transitionOrderToState }) => {\n                if (transitionOrderToState?.__typename === 'Order') {\n                    this.router.navigate(['/orders', this.id]);\n                } else if (transitionOrderToState?.__typename === 'OrderStateTransitionError') {\n                    this.notificationService.error(transitionOrderToState.transitionError);\n                }\n            });\n    }\n\n    private hasId<T extends { id: string }>(input: T | any): input is { id: string } {\n        return typeof input === 'object' && !!input.id;\n    }\n\n    protected setFormValues(entity: OrderDetailFragment): void {\n        // empty\n    }\n}\n","<vdr-page-block>\n    <vdr-action-bar *ngIf=\"entity$ | async as order\">\n        <vdr-ab-left>\n            <div class=\"flex clr-align-items-center\">\n                <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n            </div>\n        </vdr-ab-left>\n\n        <vdr-ab-right>\n            <vdr-action-bar-items locationId=\"draft-order-detail\" />\n            <button\n                class=\"btn btn-primary\"\n                (click)=\"completeOrder()\"\n                [disabled]=\"!order.customer || !order.lines.length || !order.shippingLines.length\"\n            >\n                <clr-icon shape=\"check\"></clr-icon>\n                {{ 'order.complete-draft-order' | translate }}\n            </button>\n            <vdr-action-bar-dropdown-menu [alwaysShow]=\"true\" locationId=\"draft-order-detail\">\n                <button type=\"button\" vdrDropdownItem (click)=\"deleteOrder()\">\n                    <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n                    {{ 'order.delete-draft-order' | translate }}\n                </button>\n            </vdr-action-bar-dropdown-menu>\n        </vdr-ab-right>\n    </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-page-detail-layout *ngIf=\"entity$ | async as order\">\n    <vdr-page-detail-sidebar>\n        <vdr-card [title]=\"'order.customer' | translate\">\n            <ng-template vdrCardControls>\n                <clr-icon *ngIf=\"!order.customer\" shape=\"unknown-status\" class=\"is-warning\"></clr-icon>\n                <clr-icon *ngIf=\"order.customer\" shape=\"check\" class=\"is-success\"></clr-icon>\n            </ng-template>\n            <vdr-customer-label\n                class=\"block mb-2\"\n                *ngIf=\"order.customer\"\n                [customer]=\"order.customer\"\n            ></vdr-customer-label>\n            <button class=\"button-small\" (click)=\"setCustomer()\">\n                {{ 'order.set-customer-for-order' | translate }}\n            </button>\n        </vdr-card>\n        <vdr-card [title]=\"'order.billing-address' | translate\">\n            <ng-template vdrCardControls>\n                <clr-icon\n                    *ngIf=\"!order.billingAddress.streetLine1\"\n                    shape=\"unknown-status\"\n                    class=\"is-warning\"\n                ></clr-icon>\n                <clr-icon\n                    *ngIf=\"order.billingAddress.streetLine1\"\n                    shape=\"check\"\n                    class=\"is-success\"\n                ></clr-icon>\n            </ng-template>\n            <vdr-formatted-address\n                class=\"block mb-2\"\n                *ngIf=\"order.billingAddress\"\n                [address]=\"order.billingAddress\"\n            ></vdr-formatted-address>\n            <button class=\"button-small\" (click)=\"setBillingAddress()\">\n                {{ 'order.set-billing-address' | translate }}\n            </button>\n        </vdr-card>\n        <vdr-card [title]=\"'order.shipping' | translate\">\n            <ng-template vdrCardControls>\n                <clr-icon\n                    *ngIf=\"!order.shippingAddress.streetLine1 || !order.shippingLines.length\"\n                    shape=\"unknown-status\"\n                    class=\"is-warning\"\n                ></clr-icon>\n                <clr-icon\n                    *ngIf=\"order.shippingAddress.streetLine1 && order.shippingLines.length\"\n                    shape=\"check\"\n                    class=\"is-success\"\n                ></clr-icon>\n            </ng-template>\n            <vdr-formatted-address\n                class=\"block mb-2\"\n                *ngIf=\"order.shippingAddress\"\n                [address]=\"order.shippingAddress\"\n            ></vdr-formatted-address>\n            <button class=\"button-small mr-2\" (click)=\"setShippingAddress()\">\n                {{ 'order.set-shipping-address' | translate }}\n            </button>\n\n            <div *ngFor=\"let shippingLine of order.shippingLines\">\n                {{ shippingLine.shippingMethod.name }}\n            </div>\n            <button class=\"button-small\" (click)=\"setShippingMethod()\">\n                {{ 'order.set-shipping-method' | translate }}\n            </button>\n        </vdr-card>\n        <vdr-card>\n            <button\n                *ngIf=\"order.couponCodes.length === 0 && !displayCouponCodeInput\"\n                class=\"button-small\"\n                (click)=\"displayCouponCodeInput = !displayCouponCodeInput\"\n            >\n                {{ 'order.set-coupon-codes' | translate }}\n            </button>\n            <div *ngIf=\"order.couponCodes.length || displayCouponCodeInput\">\n                <label>{{ 'order.set-coupon-codes' | translate }}</label>\n                <vdr-coupon-code-selector\n                    [couponCodes]=\"order.couponCodes\"\n                    (addCouponCode)=\"applyCouponCode($event)\"\n                    (removeCouponCode)=\"removeCouponCode($event)\"\n                ></vdr-coupon-code-selector>\n            </div>\n        </vdr-card>\n        <vdr-card>\n            <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\n        </vdr-card>\n    </vdr-page-detail-sidebar>\n    <vdr-page-block>\n        <vdr-card>\n            <vdr-draft-order-variant-selector\n                [orderLineCustomFields]=\"orderLineCustomFields\"\n                [currencyCode]=\"order.currencyCode\"\n                (addItem)=\"addItemToOrder($event)\"\n            ></vdr-draft-order-variant-selector>\n            <vdr-order-table\n                [order]=\"order\"\n                [orderLineCustomFields]=\"orderLineCustomFields\"\n                [isDraft]=\"true\"\n                (adjust)=\"adjustOrderLine($event)\"\n                (remove)=\"removeOrderLine($event)\"\n            ></vdr-order-table>\n        </vdr-card>\n        <vdr-card [title]=\"'order.tax-summary' | translate\">\n            <ng-container *ngIf=\"order.taxSummary.length\">\n                <table class=\"table\">\n                    <thead>\n                        <tr>\n                            <th>{{ 'common.description' | translate }}</th>\n                            <th>{{ 'order.tax-rate' | translate }}</th>\n                            <th>{{ 'order.tax-base' | translate }}</th>\n                            <th>{{ 'order.tax-total' | translate }}</th>\n                        </tr>\n                    </thead>\n                    <tbody>\n                        <tr *ngFor=\"let row of order.taxSummary\">\n                            <td>{{ row.description }}</td>\n                            <td>{{ row.taxRate / 100 | percent }}</td>\n                            <td>{{ row.taxBase | localeCurrency : order.currencyCode }}</td>\n                            <td>{{ row.taxTotal | localeCurrency : order.currencyCode }}</td>\n                        </tr>\n                    </tbody>\n                </table>\n            </ng-container>\n        </vdr-card>\n        <vdr-custom-detail-component-host\n            locationId=\"draft-order-detail\"\n            [entity$]=\"entity$\"\n            [detailForm]=\"detailForm\"\n        ></vdr-custom-detail-component-host>\n\n        <vdr-order-custom-fields-card\n            [customFieldsConfig]=\"customFields\"\n            [customFieldValues]=\"order.customFields\"\n            (updateClick)=\"updateCustomFields($event)\"\n        ></vdr-order-custom-fields-card>\n    </vdr-page-block>\n</vdr-page-detail-layout>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport {\n    configurableDefinitionToInstance,\n    ConfigurableOperation,\n    ConfigurableOperationDefinition,\n    configurableOperationValueIsValid,\n    DataService,\n    Dialog,\n    FulfillOrderInput,\n    GlobalFlag,\n    OrderDetailFragment,\n    toConfigurableOperationInput,\n} from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-fulfill-order-dialog',\n    templateUrl: './fulfill-order-dialog.component.html',\n    styleUrls: ['./fulfill-order-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class FulfillOrderDialogComponent implements Dialog<FulfillOrderInput>, OnInit {\n    resolveWith: (result?: FulfillOrderInput) => void;\n    fulfillmentHandlerDef: ConfigurableOperationDefinition;\n    fulfillmentHandler: ConfigurableOperation;\n    fulfillmentHandlerControl = new UntypedFormControl();\n    fulfillmentQuantities: { [lineId: string]: { fulfillCount: number; max: number } } = {};\n\n    // Provided by modalService.fromComponent() call\n    order: OrderDetailFragment;\n\n    constructor(\n        private dataService: DataService,\n        private changeDetector: ChangeDetectorRef,\n    ) {}\n\n    ngOnInit(): void {\n        this.dataService.settings.getGlobalSettings().single$.subscribe(({ globalSettings }) => {\n            this.fulfillmentQuantities = this.order.lines.reduce((result, line) => {\n                const fulfillCount = this.getFulfillableCount(line, globalSettings.trackInventory);\n                return {\n                    ...result,\n                    [line.id]: { fulfillCount, max: fulfillCount },\n                };\n            }, {});\n            this.changeDetector.markForCheck();\n        });\n\n        this.dataService.shippingMethod\n            .getShippingMethodOperations()\n            .mapSingle(data => data.fulfillmentHandlers)\n            .subscribe(handlers => {\n                this.fulfillmentHandlerDef =\n                    handlers.find(\n                        h => h.code === this.order.shippingLines[0]?.shippingMethod?.fulfillmentHandlerCode,\n                    ) || handlers[0];\n                this.fulfillmentHandler = configurableDefinitionToInstance(this.fulfillmentHandlerDef);\n                this.fulfillmentHandlerControl.patchValue(this.fulfillmentHandler);\n                this.changeDetector.markForCheck();\n            });\n    }\n\n    getFulfillableCount(line: OrderDetailFragment['lines'][number], globalTrackInventory: boolean): number {\n        const { trackInventory, stockOnHand } = line.productVariant;\n        const effectiveTracInventory =\n            trackInventory === GlobalFlag.INHERIT ? globalTrackInventory : trackInventory === GlobalFlag.TRUE;\n\n        const unfulfilledCount = this.getUnfulfilledCount(line);\n        return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;\n    }\n\n    getUnfulfilledCount(line: OrderDetailFragment['lines'][number]): number {\n        const fulfilled =\n            this.order.fulfillments\n                ?.filter(f => f.state !== 'Cancelled')\n                .map(f => f.lines)\n                .flat()\n                .filter(row => row.orderLineId === line.id)\n                .reduce((sum, row) => sum + row.quantity, 0) ?? 0;\n        return line.quantity - fulfilled;\n    }\n\n    canSubmit(): boolean {\n        const totalCount = Object.values(this.fulfillmentQuantities).reduce(\n            (total, { fulfillCount }) => total + fulfillCount,\n            0,\n        );\n        const fulfillmentQuantityIsValid = Object.values(this.fulfillmentQuantities).every(\n            ({ fulfillCount, max }) => fulfillCount <= max,\n        );\n        const formIsValid =\n            configurableOperationValueIsValid(\n                this.fulfillmentHandlerDef,\n                this.fulfillmentHandlerControl.value,\n            ) && this.fulfillmentHandlerControl.valid;\n        return formIsValid && 0 < totalCount && fulfillmentQuantityIsValid;\n    }\n\n    select() {\n        const lines = Object.entries(this.fulfillmentQuantities).map(([orderLineId, { fulfillCount }]) => ({\n            orderLineId,\n            quantity: fulfillCount,\n        }));\n        this.resolveWith({\n            lines,\n            handler: toConfigurableOperationInput(\n                this.fulfillmentHandler,\n                this.fulfillmentHandlerControl.value,\n            ),\n        });\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.fulfill-order' | translate }}</ng-template>\n\n<div class=\"fulfillment-wrapper\">\n    <div class=\"order-table\">\n        <table class=\"table\">\n            <thead>\n                <tr>\n                    <th></th>\n                    <th>{{ 'order.product-name' | translate }}</th>\n                    <th>{{ 'order.product-sku' | translate }}</th>\n                    <th>{{ 'order.unfulfilled' | translate }}</th>\n                    <th>{{ 'catalog.stock-on-hand' | translate }}</th>\n                    <th>{{ 'order.fulfill' | translate }}</th>\n                </tr>\n            </thead>\n            <tr\n                *ngFor=\"let line of order.lines\"\n                class=\"order-line\"\n                [class.ignore]=\"getUnfulfilledCount(line) === 0\"\n            >\n                <td class=\"align-middle thumb\">\n                    <img *ngIf=\"line.featuredAsset\" [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\n                </td>\n                <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\n                <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\n                <td class=\"align-middle quantity\">{{ getUnfulfilledCount(line) }}</td>\n                <td class=\"align-middle quantity\">{{ line.productVariant.stockOnHand }}</td>\n                <td class=\"align-middle fulfil\">\n                    <input\n                        *ngIf=\"fulfillmentQuantities[line.id]\"\n                        [disabled]=\"getUnfulfilledCount(line) === 0\"\n                        [(ngModel)]=\"fulfillmentQuantities[line.id].fulfillCount\"\n                        type=\"number\"\n                        [max]=\"fulfillmentQuantities[line.id].max\"\n                        min=\"0\"\n                    />\n                </td>\n            </tr>\n        </table>\n    </div>\n    <div class=\"shipping-details\">\n        <vdr-formatted-address [address]=\"order.shippingAddress\"></vdr-formatted-address>\n        <h6>{{ 'order.shipping-method' | translate }}</h6>\n        {{ order.shippingLines[0]?.shippingMethod?.name }}\n        <strong>{{ order.shipping | localeCurrency: order.currencyCode }}</strong>\n        <vdr-configurable-input\n            [operationDefinition]=\"fulfillmentHandlerDef\"\n            [operation]=\"fulfillmentHandler\"\n            [formControl]=\"fulfillmentHandlerControl\"\n            [removable]=\"false\"\n        ></vdr-configurable-input>\n    </div>\n</div>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\n        {{ 'order.create-fulfillment' | translate }}\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'vdr-simple-item-list',\n    templateUrl: './simple-item-list.component.html',\n    styleUrls: ['./simple-item-list.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SimpleItemListComponent {\n    @Input() items: Array<{ name: string; quantity?: number }>;\n}\n","<div class=\"items-list\">\n    <ul>\n        <li *ngFor=\"let item of items\" [title]=\"item.name\">\n            <div class=\"quantity\" *ngIf=\"item.quantity != null\">{{ item.quantity }}</div>\n            <clr-icon shape=\"times\" size=\"12\" *ngIf=\"item.quantity != null\"></clr-icon>\n            {{ item.name }}\n        </li>\n    </ul>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { CustomFieldConfig, OrderDetailFragment, ServerConfigService } from '@vendure/admin-ui/core';\nimport { isObject } from '@vendure/common/lib/shared-utils';\n\n@Component({\n    selector: 'vdr-fulfillment-detail',\n    templateUrl: './fulfillment-detail.component.html',\n    styleUrls: ['./fulfillment-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class FulfillmentDetailComponent implements OnInit, OnChanges {\n    @Input() fulfillmentId: string;\n    @Input() order: OrderDetailFragment;\n\n    customFieldConfig: CustomFieldConfig[] = [];\n    customFieldFormGroup = new UntypedFormGroup({});\n\n    constructor(private serverConfigService: ServerConfigService) {}\n\n    ngOnInit() {\n        this.customFieldConfig = this.serverConfigService.getCustomFieldsFor('Fulfillment');\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.buildCustomFieldsFormGroup();\n    }\n\n    get fulfillment(): NonNullable<OrderDetailFragment['fulfillments']>[number] | undefined | null {\n        return this.order.fulfillments && this.order.fulfillments.find(f => f.id === this.fulfillmentId);\n    }\n\n    get items(): Array<{ name: string; quantity: number }> {\n        return (\n            this.fulfillment?.lines.map(row => ({\n                name: this.order.lines.find(line => line.id === row.orderLineId)?.productVariant.name ?? '',\n                quantity: row.quantity,\n            })) ?? []\n        );\n    }\n\n    buildCustomFieldsFormGroup() {\n        const customFields = (this.fulfillment as any).customFields;\n        for (const fieldDef of this.serverConfigService.getCustomFieldsFor('Fulfillment')) {\n            this.customFieldFormGroup.addControl(\n                fieldDef.name,\n                new UntypedFormControl(customFields[fieldDef.name]),\n            );\n        }\n    }\n\n    customFieldIsObject(customField: unknown) {\n        return Array.isArray(customField) || isObject(customField);\n    }\n}\n","<vdr-labeled-data [label]=\"'common.created-at' | translate\">\n    {{ fulfillment?.createdAt | localeDate: 'medium' }}\n</vdr-labeled-data>\n<vdr-labeled-data [label]=\"'order.fulfillment-method' | translate\">\n    {{ fulfillment?.method }}\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"fulfillment?.trackingCode\" [label]=\"'order.tracking-code' | translate\">\n    {{ fulfillment?.trackingCode }}\n</vdr-labeled-data>\n<vdr-labeled-data [label]=\"'order.contents' | translate\">\n    <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\n</vdr-labeled-data>\n<ng-container *ngFor=\"let customField of customFieldConfig\">\n    <vdr-custom-field-control\n        *ngIf=\"customFieldFormGroup.get(customField.name)\"\n        [readonly]=\"true\"\n        [compact]=\"true\"\n        [customField]=\"customField\"\n        [customFieldsFormGroup]=\"customFieldFormGroup\"\n    ></vdr-custom-field-control>\n</ng-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'vdr-fulfillment-state-label',\n    templateUrl: './fulfillment-state-label.component.html',\n    styleUrls: ['./fulfillment-state-label.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class FulfillmentStateLabelComponent {\n    @Input() state: string;\n\n    get chipColorType() {\n        switch (this.state) {\n            case 'Pending':\n            case 'Shipped':\n                return 'warning';\n            case 'Delivered':\n                return 'success';\n            case 'Cancelled':\n                return 'error';\n        }\n    }\n}\n","<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\n    <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Delivered'\"></clr-icon>\n    {{ state | stateI18nToken | translate }}\n</vdr-chip>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FulfillmentFragment, OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-fulfillment-card',\n    templateUrl: './fulfillment-card.component.html',\n    styleUrls: ['./fulfillment-card.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class FulfillmentCardComponent {\n    @Input() fulfillment: FulfillmentFragment | undefined;\n    @Input() order: OrderDetailFragment;\n    @Output() transitionState = new EventEmitter<string>();\n\n    nextSuggestedState(): string | undefined {\n        if (!this.fulfillment) {\n            return;\n        }\n        const { nextStates } = this.fulfillment;\n        const namedStateOrDefault = (targetState: string) =>\n            nextStates.includes(targetState) ? targetState : nextStates[0];\n        switch (this.fulfillment?.state) {\n            case 'Pending':\n                return namedStateOrDefault('Shipped');\n            case 'Shipped':\n                return namedStateOrDefault('Delivered');\n            default:\n                return nextStates.find(s => s !== 'Cancelled');\n        }\n    }\n\n    nextOtherStates(): string[] {\n        if (!this.fulfillment) {\n            return [];\n        }\n        const suggested = this.nextSuggestedState();\n        return this.fulfillment.nextStates.filter(s => s !== suggested);\n    }\n}\n","<div class=\"card\">\n    <div class=\"card-header fulfillment-header\">\n        <div>{{ 'order.fulfillment' | translate }}</div>\n        <div class=\"fulfillment-state\">\n            <vdr-fulfillment-state-label [state]=\"fulfillment?.state\"></vdr-fulfillment-state-label>\n        </div>\n    </div>\n    <div class=\"card-block\">\n        <vdr-fulfillment-detail\n            *ngIf=\"!!fulfillment\"\n            [fulfillmentId]=\"fulfillment?.id\"\n            [order]=\"order\"\n        ></vdr-fulfillment-detail>\n    </div>\n    <div class=\"card-footer\" *ngIf=\"fulfillment?.nextStates.length\">\n        <ng-container *ngIf=\"nextSuggestedState() as suggestedState\">\n            <button class=\"btn btn-sm btn-primary\" (click)=\"transitionState.emit(suggestedState)\">\n                {{ 'order.set-fulfillment-state' | translate: { state: (suggestedState | stateI18nToken | translate) } }}\n            </button>\n        </ng-container>\n        <vdr-dropdown>\n            <button class=\"icon-button\" vdrDropdownTrigger>\n                <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n            </button>\n            <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n                <ng-container *ngFor=\"let nextState of nextOtherStates()\">\n                    <button\n                        type=\"button\"\n                        vdrDropdownItem\n                        (click)=\"transitionState.emit(nextState)\"\n                    >\n                        <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\n                            <clr-icon shape=\"step-forward-2\"></clr-icon>\n                            {{ 'order.transition-to-state' | translate: { state: (nextState | stateI18nToken | translate) } }}\n                        </ng-container>\n                        <ng-template #cancel>\n                            <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\n                            {{ 'order.cancel-fulfillment' | translate }}\n                        </ng-template>\n                    </button>\n                </ng-container>\n            </vdr-dropdown-menu>\n        </vdr-dropdown>\n    </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-modification-detail',\n    templateUrl: './modification-detail.component.html',\n    styleUrls: ['./modification-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class ModificationDetailComponent implements OnChanges {\n    @Input() order: OrderDetailFragment;\n    @Input() modification: OrderDetailFragment['modifications'][number];\n    private addedItems = new Map<OrderDetailFragment['lines'][number], number>();\n    private removedItems = new Map<OrderDetailFragment['lines'][number], number>();\n    private modifiedItems = new Set<OrderDetailFragment['lines'][number]>();\n\n    ngOnChanges(): void {\n        const { added, removed, modified } = this.getModifiedLines();\n        this.addedItems = added;\n        this.removedItems = removed;\n        this.modifiedItems = modified;\n    }\n\n    getSurcharge(id: string) {\n        return this.order.surcharges.find(m => m.id === id);\n    }\n\n    getAddedItems() {\n        return [...this.addedItems.entries()].map(([line, count]) => ({\n            name: line.productVariant.name,\n            quantity: count,\n        }));\n    }\n\n    getRemovedItems() {\n        return [...this.removedItems.entries()].map(([line, count]) => ({\n            name: line.productVariant.name,\n            quantity: count,\n        }));\n    }\n\n    getModifiedItems() {\n        return [...this.modifiedItems].map(line => ({\n            name: line.productVariant.name,\n        }));\n    }\n\n    private getModifiedLines() {\n        const added = new Map<OrderDetailFragment['lines'][number], number>();\n        const removed = new Map<OrderDetailFragment['lines'][number], number>();\n        const modified = new Set<OrderDetailFragment['lines'][number]>();\n        for (const modificationLine of this.modification.lines || []) {\n            const line = this.order.lines.find(l => l.id === modificationLine.orderLineId);\n            if (!line) {\n                continue;\n            }\n            if (modificationLine.quantity === 0) {\n                modified.add(line);\n            } else if (modificationLine.quantity < 0) {\n                removed.set(line, -modificationLine.quantity);\n            } else {\n                added.set(line, modificationLine.quantity);\n            }\n        }\n        return { added, removed, modified };\n    }\n}\n","<vdr-labeled-data [label]=\"'common.ID' | translate\">{{ modification.id }}</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"modification.note\" [label]=\"'order.note' | translate\">{{\n    modification.note\n}}</vdr-labeled-data>\n<vdr-labeled-data *ngFor=\"let surcharge of modification.surcharges\" [label]=\"'order.surcharges' | translate\">\n    {{ getSurcharge(surcharge.id)?.description }}\n    {{ getSurcharge(surcharge.id)?.priceWithTax | localeCurrency: order.currencyCode }}</vdr-labeled-data\n>\n<vdr-labeled-data *ngIf=\"getAddedItems().length\" [label]=\"'order.added-items' | translate\">\n    <vdr-simple-item-list [items]=\"getAddedItems()\"></vdr-simple-item-list>\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"getRemovedItems().length\" [label]=\"'order.removed-items' | translate\">\n    <vdr-simple-item-list [items]=\"getRemovedItems()\"></vdr-simple-item-list>\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"getModifiedItems().length\" [label]=\"'order.modified-items' | translate\">\n    <vdr-simple-item-list [items]=\"getModifiedItems()\"></vdr-simple-item-list>\n</vdr-labeled-data>\n","export const NODE_HEIGHT = 72;\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    Input,\n    OnChanges,\n    SimpleChanges,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { NODE_HEIGHT } from './constants';\nimport { StateNode } from './types';\n\n@Component({\n    selector: 'vdr-order-process-node',\n    templateUrl: './order-process-node.component.html',\n    styleUrls: ['./order-process-node.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderProcessNodeComponent implements OnChanges {\n    @Input() node: StateNode;\n    @Input() index: number;\n    @Input() active: boolean;\n    active$ = new BehaviorSubject<boolean>(false);\n    activeTarget$ = new BehaviorSubject<boolean>(false);\n    isCancellable = false;\n    // We use a class field here to prevent the\n    // i18n extractor from extracting a \"Cancelled\" key\n    cancelledState = 'Cancelled';\n\n    constructor(private elementRef: ElementRef<HTMLDivElement>) {}\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.isCancellable = !!this.node.to.find(s => s.name === 'Cancelled');\n        if (changes.active) {\n            this.active$.next(this.active);\n        }\n    }\n\n    getPos(origin: 'top' | 'bottom' = 'top'): { x: number; y: number } {\n        const rect = this.elementRef.nativeElement.getBoundingClientRect();\n        const nodeHeight =\n            this.elementRef.nativeElement.querySelector('.node')?.getBoundingClientRect().height ?? 0;\n        return {\n            x: 10,\n            y: this.index * NODE_HEIGHT + (origin === 'bottom' ? nodeHeight : 0),\n        };\n    }\n\n    getStyle() {\n        const pos = this.getPos();\n        return {\n            'top.px': pos.y,\n            'left.px': pos.x,\n        };\n    }\n}\n","<div class=\"node-wrapper\" [ngStyle]=\"getStyle()\" [class.active]=\"active$ | async\">\n    <div\n        class=\"node\"\n        [class.active-target]=\"activeTarget$ | async\"\n    >\n        {{ node.name | stateI18nToken | translate }}\n    </div>\n    <div class=\"cancelled-wrapper\" *ngIf=\"isCancellable\">\n        <div class=\"cancelled-edge\">\n        </div>\n        <clr-icon shape=\"dot-circle\"></clr-icon>\n        <div class=\"cancelled-node\">\n            {{ cancelledState | stateI18nToken | translate }}\n        </div>\n    </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { OrderProcessNodeComponent } from './order-process-node.component';\n\n@Component({\n    selector: 'vdr-order-process-edge',\n    templateUrl: './order-process-edge.component.html',\n    styleUrls: ['./order-process-edge.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderProcessEdgeComponent implements OnInit {\n    @Input() from: OrderProcessNodeComponent;\n    @Input() to: OrderProcessNodeComponent;\n    @Input() index: number;\n    active$: Observable<boolean>;\n\n    ngOnInit() {\n        this.active$ = this.from.active$\n            .asObservable()\n            .pipe(tap(active => this.to.activeTarget$.next(active)));\n    }\n\n    getStyle() {\n        const direction = this.from.index < this.to.index ? 'down' : 'up';\n        const startPos = this.from.getPos(direction === 'down' ? 'bottom' : 'top');\n        const endPos = this.to.getPos(direction === 'down' ? 'top' : 'bottom');\n        const dX = Math.abs(startPos.x - endPos.x);\n        const dY = Math.abs(startPos.y - endPos.y);\n        const length = Math.sqrt(dX ** 2 + dY ** 2);\n        return {\n            'top.px': startPos.y,\n            'left.px': startPos.x + (direction === 'down' ? 10 : 40) + this.index * 12,\n            'height.px': length,\n            'width.px': 1,\n            ...(direction === 'up'\n                ? {\n                      transform: 'rotateZ(180deg)',\n                      'transform-origin': 'top',\n                  }\n                : {}),\n        };\n    }\n}\n","<div\n    [attr.data-from]=\"from.node.name\"\n    [attr.data-to]=\"to.node.name\"\n    [ngStyle]=\"getStyle()\"\n    [class.active]=\"active$ | async\"\n    class=\"edge\">\n    <clr-icon shape=\"arrow\" flip=\"vertical\" class=\"arrow\"></clr-icon>\n</div>\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    HostBinding,\n    Input,\n    OnChanges,\n    OnInit,\n    QueryList,\n    SimpleChanges,\n    ViewChildren,\n} from '@angular/core';\nimport { OrderProcessState } from '@vendure/admin-ui/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { NODE_HEIGHT } from './constants';\nimport { OrderProcessNodeComponent } from './order-process-node.component';\nimport { StateNode } from './types';\n\n@Component({\n    selector: 'vdr-order-process-graph',\n    templateUrl: './order-process-graph.component.html',\n    styleUrls: ['./order-process-graph.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderProcessGraphComponent implements OnInit, OnChanges, AfterViewInit {\n    @Input() states: OrderProcessState[];\n    @Input() initialState?: string;\n    setActiveState$ = new BehaviorSubject<string | undefined>(undefined);\n    activeState$: Observable<string | undefined>;\n    nodes: StateNode[] = [];\n    edges: Array<{ from: OrderProcessNodeComponent; to: OrderProcessNodeComponent; index: number }> = [];\n\n    @ViewChildren(OrderProcessNodeComponent) nodeComponents: QueryList<OrderProcessNodeComponent>;\n\n    constructor(private changeDetector: ChangeDetectorRef) {}\n\n    @HostBinding('style.height.px')\n    get outerHeight(): number {\n        return this.nodes.length * NODE_HEIGHT;\n    }\n\n    ngOnInit() {\n        this.setActiveState$.next(this.initialState);\n        this.activeState$ = this.setActiveState$.pipe(debounceTime(150));\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        this.populateNodes();\n    }\n\n    ngAfterViewInit() {\n        setTimeout(() => this.populateEdges());\n    }\n\n    onMouseOver(stateName: string) {\n        this.setActiveState$.next(stateName);\n    }\n\n    onMouseOut() {\n        this.setActiveState$.next(this.initialState);\n    }\n\n    getNodeFor(state: string): OrderProcessNodeComponent | undefined {\n        if (this.nodeComponents) {\n            return this.nodeComponents.find(n => n.node.name === state);\n        }\n    }\n\n    private populateNodes() {\n        const stateNodeMap = new Map<string, StateNode>();\n        for (const state of this.states) {\n            stateNodeMap.set(state.name, {\n                name: state.name,\n                to: [],\n            });\n        }\n\n        for (const [name, stateNode] of stateNodeMap.entries()) {\n            const targets = this.states.find(s => s.name === name)?.to ?? [];\n            for (const target of targets) {\n                const targetNode = stateNodeMap.get(target);\n                if (targetNode) {\n                    stateNode.to.push(targetNode);\n                }\n            }\n        }\n        this.nodes = [...stateNodeMap.values()].filter(n => n.name !== 'Cancelled');\n    }\n\n    private populateEdges() {\n        for (const node of this.nodes) {\n            const nodeCmp = this.getNodeFor(node.name);\n            let index = 0;\n            for (const to of node.to) {\n                const toCmp = this.getNodeFor(to.name);\n                if (nodeCmp && toCmp && nodeCmp !== toCmp) {\n                    this.edges.push({\n                        to: toCmp,\n                        from: nodeCmp,\n                        index,\n                    });\n                    index++;\n                }\n            }\n        }\n        this.edges = [...this.edges];\n        this.changeDetector.markForCheck();\n    }\n}\n","<ng-container *ngFor=\"let state of nodes; let i = index\">\n    <vdr-order-process-node\n        [node]=\"state\"\n        [index]=\"i\"\n        [active]=\"(activeState$ | async) === state.name\"\n        (mouseenter)=\"onMouseOver(state.name)\"\n        (mouseleave)=\"onMouseOut()\"\n    ></vdr-order-process-node>\n</ng-container>\n<ng-container *ngFor=\"let edge of edges\">\n    <vdr-order-process-edge [from]=\"edge.from\" [to]=\"edge.to\" [index]=\"edge.index\"></vdr-order-process-edge>\n</ng-container>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport {\n    CancelOrderInput,\n    DataService,\n    Dialog,\n    OrderProcessState,\n    ServerConfigService,\n} from '@vendure/admin-ui/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n    selector: 'vdr-order-process-graph-dialog',\n    templateUrl: './order-process-graph-dialog.component.html',\n    styleUrls: ['./order-process-graph-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderProcessGraphDialogComponent implements OnInit, Dialog<void> {\n    activeState: string;\n    states: OrderProcessState[] = [];\n    constructor(private serverConfigService: ServerConfigService) {}\n\n    ngOnInit(): void {\n        this.states = this.serverConfigService.getOrderProcessStates();\n    }\n\n    resolveWith: (result: void | undefined) => void;\n}\n","<ng-template vdrDialogTitle>{{ 'order.order-state-diagram' | translate }}</ng-template>\n\n<vdr-order-process-graph [states]=\"states\" [initialState]=\"activeState\"></vdr-order-process-graph>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { OrderDetailFragment } from '@vendure/admin-ui/core';\nimport { RefundablePayment } from '../../common/get-refundable-payments';\n\n@Component({\n    selector: 'vdr-payment-for-refund-selector',\n    templateUrl: './payment-for-refund-selector.component.html',\n    styleUrls: ['./payment-for-refund-selector.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    standalone: false\n})\nexport class PaymentForRefundSelectorComponent {\n    @Input() refundablePayments: RefundablePayment[];\n    @Input() order: OrderDetailFragment;\n    @Output() paymentSelected = new EventEmitter<{ payment: RefundablePayment; selected: boolean }>();\n}\n","<vdr-card\n        [title]=\"'order.payment' | translate\"\n        [class.selected]=\"payment.selected\"\n        [class.unselected]=\"!payment.selected\"\n        *ngFor=\"let payment of refundablePayments\"\n>\n    <ng-template vdrCardControls>\n        <vdr-select-toggle\n                size=\"small\"\n                [title]=\"'order.refund-this-payment' | translate\"\n                [label]=\"'order.refund-this-payment' | translate\"\n                [disabled]=\"refundablePayments.length === 1\"\n                [(selected)]=\"payment.selected\"\n                (selectedChange)=\"paymentSelected.emit({ payment: payment, selected: $event })\"\n        ></vdr-select-toggle>\n    </ng-template>\n    <div class=\"form-grid\">\n        <vdr-labeled-data [label]=\"'order.payment-method' | translate\">\n            {{ payment.method }}\n        </vdr-labeled-data>\n        <vdr-labeled-data [label]=\"'order.transaction-id' | translate\">\n            {{ payment.transactionId }}\n        </vdr-labeled-data>\n        <vdr-labeled-data [label]=\"'order.payment-amount' | translate\">\n            {{ payment.amount | localeCurrency : order.currencyCode }}\n        </vdr-labeled-data>\n        <vdr-labeled-data [label]=\"'order.refundable-amount' | translate\">\n            {{ payment.refundableAmount | localeCurrency : order.currencyCode }}\n        </vdr-labeled-data>\n    </div>\n    <vdr-form-field [label]=\"'order.refund-amount' | translate\">\n        <vdr-currency-input\n                [readonly]=\"!payment.selected\"\n                [currencyCode]=\"order.currencyCode\"\n                [formControl]=\"payment.amountToRefundControl\"\n        ></vdr-currency-input>\n    </vdr-form-field>\n</vdr-card>","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    CancelOrderInput,\n    Dialog,\n    getAppConfig,\n    I18nService,\n    OrderDetailFragment,\n    OrderLineInput,\n    PaymentWithRefundsFragment,\n    RefundOrderInput,\n} from '@vendure/admin-ui/core';\nimport { summate } from '@vendure/common/lib/shared-utils';\nimport { getRefundablePayments, RefundablePayment } from '../../common/get-refundable-payments';\n\ntype SelectionLine = { quantity: number; cancel: boolean };\n\n@Component({\n    selector: 'vdr-refund-order-dialog',\n    templateUrl: './refund-order-dialog.component.html',\n    styleUrls: ['./refund-order-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class RefundOrderDialogComponent\n    implements OnInit, Dialog<{ cancel: CancelOrderInput; refunds: RefundOrderInput[] }>\n{\n    order: OrderDetailFragment;\n    resolveWith: (result?: { cancel: CancelOrderInput; refunds: RefundOrderInput[] }) => void;\n    reason: string;\n    lineQuantities: { [lineId: string]: SelectionLine } = {};\n    refundablePayments: RefundablePayment[] = [];\n    refundShippingLineIds: string[] = [];\n    reasons = getAppConfig().cancellationReasons ?? [\n        _('order.refund-reason-customer-request'),\n        _('order.refund-reason-not-available'),\n    ];\n    manuallySetRefundTotal = false;\n    refundTotal = 0;\n\n    constructor(private i18nService: I18nService) {\n        this.reasons = this.reasons.map(r => this.i18nService.translate(r));\n    }\n\n    get totalRefundableAmount(): number {\n        return summate(this.refundablePayments, 'refundableAmount');\n    }\n\n    get amountToRefundTotal(): number {\n        return this.refundablePayments.reduce(\n            (total, payment) => total + payment.amountToRefundControl.value,\n            0,\n        );\n    }\n\n    lineCanBeRefundedOrCancelled(line: OrderDetailFragment['lines'][number]): boolean {\n        const refundedCount =\n            this.order.payments\n                ?.reduce(\n                    (all, payment) => [...all, ...payment.refunds],\n                    [] as PaymentWithRefundsFragment['refunds'],\n                )\n                .filter(refund => refund.state !== 'Failed')\n                .reduce(\n                    (all, refund) => [...all, ...refund.lines],\n                    [] as Array<{ orderLineId: string; quantity: number }>,\n                )\n                .filter(refundLine => refundLine.orderLineId === line.id)\n                .reduce((sum, refundLine) => sum + refundLine.quantity, 0) ?? 0;\n\n        return refundedCount < line.orderPlacedQuantity;\n    }\n\n    ngOnInit() {\n        this.lineQuantities = this.order.lines.reduce(\n            (result, line) => ({\n                ...result,\n                [line.id]: {\n                    quantity: 0,\n                    refund: true,\n                    cancel: false,\n                },\n            }),\n            {},\n        );\n        this.refundablePayments = getRefundablePayments(this.order.payments);\n    }\n\n    updateRefundTotal() {\n        if (!this.manuallySetRefundTotal) {\n            const itemTotal = this.order.lines.reduce((total, line) => {\n                const lineRef = this.lineQuantities[line.id];\n                const refundCount = lineRef.quantity || 0;\n                return total + line.proratedUnitPriceWithTax * refundCount;\n            }, 0);\n            const shippingTotal = this.order.shippingLines.reduce((total, line) => {\n                if (this.refundShippingLineIds.includes(line.id)) {\n                    return total + line.discountedPriceWithTax;\n                } else {\n                    return total;\n                }\n            }, 0);\n            this.refundTotal = itemTotal + shippingTotal;\n        }\n\n        // allocate the refund total across the refundable payments\n        const refundablePayments = this.refundablePayments.filter(p => p.selected);\n        let refundsAllocated = 0;\n        for (const payment of refundablePayments) {\n            const amountToRefund = Math.min(payment.refundableAmount, this.refundTotal - refundsAllocated);\n            payment.amountToRefundControl.setValue(amountToRefund);\n            refundsAllocated += amountToRefund;\n        }\n    }\n\n    toggleShippingRefund(lineId: string) {\n        const index = this.refundShippingLineIds.indexOf(lineId);\n        if (index === -1) {\n            this.refundShippingLineIds.push(lineId);\n        } else {\n            this.refundShippingLineIds.splice(index, 1);\n        }\n        this.updateRefundTotal();\n    }\n\n    onRefundQuantityChange(orderLineId: string, quantity: number) {\n        this.manuallySetRefundTotal = false;\n        const selectionLine = this.lineQuantities[orderLineId];\n        if (selectionLine) {\n            const previousQuantity = selectionLine.quantity;\n            if (quantity === 0) {\n                selectionLine.cancel = false;\n            } else if (previousQuantity === 0 && quantity > 0) {\n                selectionLine.cancel = true;\n            }\n            selectionLine.quantity = quantity;\n            this.updateRefundTotal();\n        }\n    }\n\n    onPaymentSelected(payment: RefundablePayment, selected: boolean) {\n        if (selected) {\n            const outstandingRefundAmount =\n                this.refundTotal -\n                this.refundablePayments\n                    .filter(p => p.id !== payment.id)\n                    .reduce((total, p) => total + p.amountToRefundControl.value, 0);\n            if (0 < outstandingRefundAmount) {\n                payment.amountToRefundControl.setValue(\n                    Math.min(outstandingRefundAmount, payment.refundableAmount),\n                );\n            }\n        } else {\n            payment.amountToRefundControl.setValue(0);\n        }\n    }\n\n    isRefunding(): boolean {\n        const result = Object.values(this.lineQuantities).reduce(\n            (isRefunding, line) => isRefunding || 0 < line.quantity,\n            false,\n        );\n        return result;\n    }\n\n    isCancelling(): boolean {\n        const result = Object.values(this.lineQuantities).reduce(\n            (isCancelling, line) => isCancelling || (0 < line.quantity && line.cancel),\n            false,\n        );\n        return result;\n    }\n\n    canSubmit(): boolean {\n        return 0 < this.refundTotal && this.amountToRefundTotal === this.refundTotal && !!this.reason;\n    }\n\n    select() {\n        const refundLines = this.getOrderLineInput(() => true);\n        const cancelLines = this.getOrderLineInput(line => line.cancel);\n\n        this.resolveWith({\n            refunds: this.refundablePayments\n                .filter(rp => rp.selected && 0 < rp.amountToRefundControl.value)\n                .map(payment => {\n                    return {\n                        lines: refundLines,\n                        reason: this.reason,\n                        paymentId: payment.id,\n                        amount: payment.amountToRefundControl.value,\n                        shipping: 0,\n                        adjustment: 0,\n                    };\n                }),\n            cancel: {\n                lines: cancelLines,\n                orderId: this.order.id,\n                reason: this.reason,\n                cancelShipping: this.refundShippingLineIds.length > 0,\n            },\n        });\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n\n    private getOrderLineInput(filterFn: (line: SelectionLine) => boolean): OrderLineInput[] {\n        return Object.entries(this.lineQuantities)\n            .filter(([orderLineId, line]) => 0 < line.quantity && filterFn(line))\n            .map(([orderLineId, line]) => ({\n                orderLineId,\n                quantity: line.quantity,\n            }));\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\n\n<div class=\"refund-wrapper\">\n    <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\n        <!-- Here we define all the available columns -->\n        <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\n            <ng-template let-line=\"item\">\n                {{ line.id }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\n            <ng-template let-line=\"item\">\n                {{ line.createdAt | localeDate : 'short' }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\n            <ng-template let-line=\"item\">\n                {{ line.updatedAt | localeDate : 'short' }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\n            <ng-template let-line=\"item\">\n                <div class=\"image-placeholder\">\n                    <img\n                        *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\n                        [src]=\"asset | assetPreview : 'tiny'\"\n                    />\n                    <ng-template #imagePlaceholder>\n                        <div class=\"placeholder\">\n                            <clr-icon shape=\"image\" size=\"48\"></clr-icon>\n                        </div>\n                    </ng-template>\n                </div>\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\n            <ng-template let-line=\"item\">\n                {{ line.productVariant.name }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\n            <ng-template let-line=\"item\">\n                {{ line.productVariant.sku }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\n            <ng-template let-line=\"item\">\n                {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\n            <ng-template let-line=\"item\">\n                {{ line.proratedUnitPriceWithTax | localeCurrency : order.currencyCode }}\n                <ng-container *ngIf=\"line.discounts as discounts\">\n                    <vdr-dropdown *ngIf=\"discounts.length\">\n                        <div class=\"promotions-label\" vdrDropdownTrigger>\n                            <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\n                        </div>\n                        <vdr-dropdown-menu>\n                            <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\n                                {{ discount.description }}\n                                <div class=\"promotion-amount\">\n                                    {{\n                                        discount.amount / 100 / line.quantity\n                                            | number : '1.0-2'\n                                            | currency : order.currencyCode\n                                    }}\n                                </div>\n                            </div>\n                        </vdr-dropdown-menu>\n                    </vdr-dropdown>\n                </ng-container>\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\n            <ng-template let-line=\"item\">\n                {{ line.quantity }}\n                <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\n            <ng-template let-line=\"item\">\n                <input\n                    *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\n                    [ngModel]=\"lineQuantities[line.id].quantity\"\n                    type=\"number\"\n                    [max]=\"line.quantity\"\n                    min=\"0\"\n                    (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\n                />\n            </ng-template>\n        </vdr-dt2-column>\n        <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\n            <ng-template let-line=\"item\">\n                <div class=\"cancel-checkbox-wrapper\">\n                    <label class=\"flex center\">\n                        <input\n                            type=\"checkbox\"\n                            *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\n                            clrCheckbox\n                            [disabled]=\"0 === lineQuantities[line.id].quantity\"\n                            [(ngModel)]=\"lineQuantities[line.id].cancel\"\n                        />\n                        <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\n                    >\n                </div>\n            </ng-template>\n        </vdr-dt2-column>\n    </vdr-data-table-2>\n\n    <div class=\"refund-details mt-4\">\n        <div>\n            <vdr-card>\n                <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\n                    <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\n                    <div class=\"ml-1\">\n                        {{ 'order.refund-shipping' | translate }}\n                        <span>{{ shippingLine.shippingMethod.name }}:</span>\n                        <span class=\"ml-1\"\n                            >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\n                        </span>\n                    </div></label\n                >\n                <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\n                    <ng-select\n                        [items]=\"reasons\"\n                        bindLabel=\"name\"\n                        autofocus\n                        [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\n                        bindValue=\"id\"\n                        [addTag]=\"true\"\n                        [(ngModel)]=\"reason\"\n                    ></ng-select>\n                </vdr-form-field>\n                <vdr-form-field\n                    [label]=\"'order.refund-total' | translate\"\n                    [readOnlyToggle]=\"true\"\n                    (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\n                >\n                    <vdr-currency-input\n                        [readonly]=\"!manuallySetRefundTotal\"\n                        [currencyCode]=\"order.currencyCode\"\n                        [(ngModel)]=\"refundTotal\"\n                        (ngModelChange)=\"updateRefundTotal()\"\n                    ></vdr-currency-input>\n                </vdr-form-field>\n            </vdr-card>\n        </div>\n        <div class=\"\">\n            <vdr-payment-for-refund-selector\n                [refundablePayments]=\"refundablePayments\"\n                (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\n                [order]=\"order\"\n            ></vdr-payment-for-refund-selector>\n        </div>\n    </div>\n</div>\n\n<ng-template vdrDialogButtons>\n    <div>\n        <div class=\"errors\">\n            <clr-alert\n                *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\n                [clrAlertType]=\"'danger'\"\n                [clrAlertClosable]=\"false\"\n            >\n                <clr-alert-item>\n                    {{\n                        'order.refund-total-error'\n                            | translate\n                                : {\n                                      min: 0 | currency : order.currencyCode,\n                                      max: totalRefundableAmount | localeCurrency : order.currencyCode\n                                  }\n                    }}\n                </clr-alert-item>\n            </clr-alert>\n            <clr-alert\n                *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\n                [clrAlertType]=\"'danger'\"\n                [clrAlertClosable]=\"false\"\n            >\n                <clr-alert-item>\n                    {{ 'order.refund-total-warning' | translate }}\n                </clr-alert-item>\n            </clr-alert>\n            <clr-alert\n                *ngIf=\"amountToRefundTotal && !reason\"\n                [clrAlertType]=\"'danger'\"\n                [clrAlertClosable]=\"false\"\n            >\n                <clr-alert-item>\n                    {{ 'order.refund-cancellation-reason-required' | translate }}\n                </clr-alert-item>\n            </clr-alert>\n        </div>\n        <div class=\"modal-buttons\">\n            <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n            <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\n                {{\n                    'order.refund-with-amount'\n                        | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\n                }}\n            </button>\n        </div>\n    </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Dialog, OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-settle-refund-dialog',\n    templateUrl: './settle-refund-dialog.component.html',\n    styleUrls: ['./settle-refund-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SettleRefundDialogComponent implements Dialog<string> {\n    resolveWith: (result?: string) => void;\n    transactionId = '';\n    refund: NonNullable<OrderDetailFragment['payments']>[number]['refunds'][number];\n\n    submit() {\n        this.resolveWith(this.transactionId);\n    }\n\n    cancel() {\n        this.resolveWith();\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.settle-refund' | translate }}</ng-template>\n<p class=\"instruction\">\n    {{ 'order.settle-refund-manual-instructions' | translate: { method: refund.method } }}\n</p>\n<clr-input-container>\n    <label>{{ 'order.transaction-id' | translate }}</label>\n    <input clrInput name=\"transactionId\" [(ngModel)]=\"transactionId\" />\n</clr-input-container>\n\n<ng-template vdrDialogButtons>\n    <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n    <button type=\"submit\" (click)=\"submit()\" [disabled]=\"!transactionId\" class=\"btn btn-primary\">\n        {{ 'order.settle-refund' | translate }}\n    </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'vdr-payment-state-label',\n    templateUrl: './payment-state-label.component.html',\n    styleUrls: ['./payment-state-label.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class PaymentStateLabelComponent {\n    @Input() state: string;\n\n    get chipColorType() {\n        switch (this.state) {\n            case 'Authorized':\n                return 'warning';\n            case 'Settled':\n                return 'success';\n            case 'Declined':\n            case 'Cancelled':\n                return 'error';\n        }\n    }\n}\n","<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\n    <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Settled'\"></clr-icon>\n    {{ state | stateI18nToken | translate }}\n</vdr-chip>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'vdr-refund-state-label',\n    templateUrl: './refund-state-label.component.html',\n    styleUrls: ['./refund-state-label.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class RefundStateLabelComponent {\n    @Input() state: string;\n\n    get chipColorType() {\n        switch (this.state) {\n            case 'Pending':\n                return 'warning';\n            case 'Settled':\n                return 'success';\n            case 'Failed':\n                return 'error';\n        }\n    }\n}\n","<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\n    <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Settled'\"></clr-icon>\n    {{ state | stateI18nToken | translate }}\n</vdr-chip>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CurrencyCode, OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-payment-detail',\n    templateUrl: './payment-detail.component.html',\n    styleUrls: ['./payment-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class PaymentDetailComponent {\n    @Input() payment: NonNullable<OrderDetailFragment['payments']>[number];\n    @Input() currencyCode: CurrencyCode;\n}\n","<vdr-labeled-data [label]=\"'order.payment-method' | translate\">\n    {{ payment.method }}\n</vdr-labeled-data>\n<vdr-labeled-data [label]=\"'order.amount' | translate\">\n    {{ payment.amount | localeCurrency: currencyCode }}\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"payment.errorMessage\" [label]=\"'order.error-message' | translate\">\n    {{ payment.errorMessage }}\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"payment.transactionId\" [label]=\"'order.transaction-id' | translate\">\n    {{ payment.transactionId }}\n</vdr-labeled-data>\n<vdr-labeled-data [label]=\"'order.payment-metadata' | translate\">\n    <vdr-object-tree [value]=\"payment.metadata\"></vdr-object-tree>\n</vdr-labeled-data>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CurrencyCode, OrderDetailFragment } from '@vendure/admin-ui/core';\n\ntype Payment = NonNullable<OrderDetailFragment['payments']>[number];\n\n@Component({\n    selector: 'vdr-order-payment-card',\n    templateUrl: './order-payment-card.component.html',\n    styleUrls: ['./order-payment-card.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderPaymentCardComponent {\n    @Input() payment: Payment;\n    @Input() currencyCode: CurrencyCode;\n    @Output() settlePayment = new EventEmitter<Payment>();\n    @Output() transitionPaymentState = new EventEmitter<{ payment: Payment; state: string }>();\n    @Output() settleRefund = new EventEmitter<Payment['refunds'][number]>();\n\n    refundHasMetadata(refund?: Payment['refunds'][number]): boolean {\n        return !!refund && Object.keys(refund.metadata).length > 0;\n    }\n\n    nextOtherStates(): string[] {\n        if (!this.payment) {\n            return [];\n        }\n        return this.payment.nextStates.filter(s => s !== 'Settled' && s !== 'Error');\n    }\n}\n","<div class=\"card\">\n    <div class=\"card-header payment-header\">\n        <div>\n            {{ 'order.payment' | translate }}\n            <ng-container *ngIf=\"payment.amount\">{{ payment.amount | localeCurrency : currencyCode }}</ng-container>\n        </div>\n        <div class=\"payment-state\">\n            <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\n        </div>\n    </div>\n    <div class=\"card-block\">\n        <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\n    </div>\n    <ng-container *ngFor=\"let refund of payment.refunds\">\n        <div class=\"refund-wrapper card-block\">\n            <div class=\"card-header payment-header refund-header\">\n                <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\n                {{ 'order.refund' | translate }} #{{ refund.id }}\n                <div class=\"clr-flex-fill\"></div>\n                <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\n            </div>\n            <div class=\"card-block\">\n                <vdr-labeled-data [label]=\"'common.created-at' | translate\">\n                    {{ refund.createdAt | localeDate : 'medium' }}\n                </vdr-labeled-data>\n                <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\n                    {{ refund.total | localeCurrency : currencyCode }}\n                </vdr-labeled-data>\n                <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\n                    {{ refund.transactionId }}\n                </vdr-labeled-data>\n                <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\n                    {{ refund.reason }}\n                </vdr-labeled-data>\n                <vdr-labeled-data\n                    [label]=\"'order.refund-metadata' | translate\"\n                    *ngIf=\"refundHasMetadata(refund)\"\n                >\n                    <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\n                </vdr-labeled-data>\n            </div>\n            <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\n                <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\n                    {{ 'order.settle-refund' | translate }}\n                </button>\n            </div>\n        </div>\n    </ng-container>\n    <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\n        <button\n            class=\"btn btn-sm btn-primary\"\n            *ngIf=\"payment.nextStates.includes('Settled')\"\n            (click)=\"settlePayment.emit(payment)\"\n        >\n            {{ 'order.settle-payment' | translate }}\n        </button>\n        <vdr-dropdown>\n            <button class=\"icon-button\" vdrDropdownTrigger>\n                <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n            </button>\n            <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n                <ng-container *ngFor=\"let nextState of nextOtherStates()\">\n                    <button\n                        type=\"button\"\n                        vdrDropdownItem\n                        (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\n                    >\n                        <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\n                            <clr-icon shape=\"step-forward-2\"></clr-icon>\n                            {{\n                                'order.transition-to-state'\n                                    | translate : { state: (nextState | stateI18nToken | translate) }\n                            }}\n                        </ng-container>\n                        <ng-template #cancel>\n                            <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\n                            {{ 'order.cancel-payment' | translate }}\n                        </ng-template>\n                    </button>\n                </ng-container>\n            </vdr-dropdown-menu>\n        </vdr-dropdown>\n    </div>\n</div>\n","import {\n    Component,\n    ComponentRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    Type,\n    ViewChild,\n    ViewContainerRef,\n} from '@angular/core';\nimport {\n    HistoryEntryComponentService,\n    OrderDetailFragment,\n    OrderHistoryEntryComponent,\n    TimelineHistoryEntry,\n} from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-history-entry-host',\n    template: `\n        <vdr-timeline-entry\n            [displayType]=\"instance.getDisplayType(entry)\"\n            [iconShape]=\"instance.getIconShape && instance.getIconShape(entry)\"\n            [createdAt]=\"entry.createdAt\"\n            [name]=\"instance.getName && instance.getName(entry)\"\n            [featured]=\"instance.isFeatured(entry)\"\n            [collapsed]=\"!expanded && !instance.isFeatured(entry)\"\n            (expandClick)=\"expandClick.emit()\"\n        >\n            <div #portal></div>\n        </vdr-timeline-entry>\n    `,\n    exportAs: 'historyEntry',\n    standalone: false,\n})\nexport class OrderHistoryEntryHostComponent implements OnInit, OnDestroy {\n    @Input() entry: TimelineHistoryEntry;\n    @Input() order: OrderDetailFragment;\n    @Input() expanded: boolean;\n    @Output() expandClick = new EventEmitter<void>();\n    @ViewChild('portal', { static: true, read: ViewContainerRef }) portalRef: ViewContainerRef;\n    instance: OrderHistoryEntryComponent;\n    private componentRef: ComponentRef<OrderHistoryEntryComponent>;\n\n    constructor(private historyEntryComponentService: HistoryEntryComponentService) {}\n\n    ngOnInit(): void {\n        const componentType = this.historyEntryComponentService.getComponent(\n            this.entry.type,\n        ) as Type<OrderHistoryEntryComponent>;\n\n        const componentRef = this.portalRef.createComponent(componentType);\n        componentRef.instance.entry = this.entry;\n        componentRef.instance.order = this.order;\n        this.instance = componentRef.instance;\n        this.componentRef = componentRef;\n    }\n\n    ngOnDestroy() {\n        this.componentRef?.destroy();\n    }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n    HistoryEntryComponentService,\n    HistoryEntryType,\n    OrderDetailFragment,\n    TimelineDisplayType,\n    TimelineHistoryEntry,\n} from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-order-history',\n    templateUrl: './order-history.component.html',\n    styleUrls: ['./order-history.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderHistoryComponent {\n    @Input() order: OrderDetailFragment;\n    @Input() history: TimelineHistoryEntry[];\n    @Output() addNote = new EventEmitter<{ note: string; isPublic: boolean }>();\n    @Output() updateNote = new EventEmitter<TimelineHistoryEntry>();\n    @Output() deleteNote = new EventEmitter<TimelineHistoryEntry>();\n    note = '';\n    noteIsPrivate = true;\n    expanded = false;\n    readonly type = HistoryEntryType;\n\n    constructor(private historyEntryComponentService: HistoryEntryComponentService) {}\n\n    hasCustomComponent(type: string): boolean {\n        return !!this.historyEntryComponentService.getComponent(type);\n    }\n\n    getDisplayType(entry: TimelineHistoryEntry): TimelineDisplayType {\n        if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\n            if (entry.data.to === 'Delivered') {\n                return 'success';\n            }\n            if (entry.data.to === 'Cancelled') {\n                return 'error';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\n            if (entry.data.to === 'Delivered') {\n                return 'success';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\n            if (entry.data.to === 'Declined' || entry.data.to === 'Cancelled') {\n                return 'error';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_CANCELLATION) {\n            return 'warning';\n        }\n        if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION) {\n            return 'warning';\n        }\n        return 'default';\n    }\n\n    getTimelineIcon(entry: TimelineHistoryEntry) {\n        if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\n            if (entry.data.to === 'Delivered') {\n                return ['success-standard', 'is-solid'];\n            }\n            if (entry.data.to === 'Cancelled') {\n                return 'ban';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\n            if (entry.data.to === 'Settled') {\n                return 'credit-card';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION) {\n            if (entry.data.to === 'Settled') {\n                return 'credit-card';\n            }\n        }\n        if (entry.type === HistoryEntryType.ORDER_NOTE) {\n            return 'note';\n        }\n        if (entry.type === HistoryEntryType.ORDER_MODIFIED) {\n            return 'pencil';\n        }\n        if (entry.type === HistoryEntryType.ORDER_CUSTOMER_UPDATED) {\n            return 'switch';\n        }\n        if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\n            if (entry.data.to === 'Shipped') {\n                return 'truck';\n            }\n            if (entry.data.to === 'Delivered') {\n                return 'truck';\n            }\n        }\n    }\n\n    isFeatured(entry: TimelineHistoryEntry): boolean {\n        switch (entry.type) {\n            case HistoryEntryType.ORDER_STATE_TRANSITION: {\n                return (\n                    entry.data.to === 'Delivered' ||\n                    entry.data.to === 'Cancelled' ||\n                    entry.data.to === 'Settled'\n                );\n            }\n            case HistoryEntryType.ORDER_REFUND_TRANSITION:\n                return entry.data.to === 'Settled';\n            case HistoryEntryType.ORDER_PAYMENT_TRANSITION:\n                return entry.data.to === 'Settled' || entry.data.to === 'Cancelled';\n            case HistoryEntryType.ORDER_FULFILLMENT_TRANSITION:\n                return entry.data.to === 'Delivered' || entry.data.to === 'Shipped';\n            case HistoryEntryType.ORDER_NOTE:\n            case HistoryEntryType.ORDER_MODIFIED:\n            case HistoryEntryType.ORDER_CUSTOMER_UPDATED:\n                return true;\n            default:\n                return false;\n        }\n    }\n\n    getFulfillment(\n        entry: TimelineHistoryEntry,\n    ): NonNullable<OrderDetailFragment['fulfillments']>[number] | undefined {\n        if (\n            (entry.type === HistoryEntryType.ORDER_FULFILLMENT ||\n                entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) &&\n            this.order.fulfillments\n        ) {\n            return this.order.fulfillments.find(f => f.id == entry.data.fulfillmentId);\n        }\n    }\n\n    getPayment(\n        entry: TimelineHistoryEntry,\n    ): NonNullable<OrderDetailFragment['payments']>[number] | undefined {\n        if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION && this.order.payments) {\n            return this.order.payments.find(p => p.id === entry.data.paymentId);\n        }\n    }\n\n    getRefund(\n        entry: TimelineHistoryEntry,\n    ): NonNullable<OrderDetailFragment['payments']>[number]['refunds'][number] | undefined {\n        if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION && this.order.payments) {\n            const allRefunds = this.order.payments.reduce(\n                (refunds, payment) => refunds.concat(payment.refunds),\n                [] as NonNullable<OrderDetailFragment['payments']>[number]['refunds'],\n            );\n            return allRefunds.find(r => r.id === entry.data.refundId);\n        }\n    }\n\n    getCancelledQuantity(entry: TimelineHistoryEntry): number {\n        return entry.data.lines.reduce((total, line) => total + line.quantity, 0);\n    }\n\n    getCancelledItems(\n        cancellationLines: Array<{ orderLineId: string; quantity: number }>,\n    ): Array<{ name: string; quantity: number }> {\n        const itemMap = new Map<string, number>();\n        for (const line of this.order.lines) {\n            const cancellationLine = cancellationLines.find(l => l.orderLineId === line.id);\n            if (cancellationLine) {\n                itemMap.set(line.productVariant.name, cancellationLine.quantity);\n            }\n        }\n        return Array.from(itemMap.entries()).map(([name, quantity]) => ({ name, quantity }));\n    }\n\n    getModification(id: string) {\n        return this.order.modifications.find(m => m.id === id);\n    }\n\n    getName(entry: TimelineHistoryEntry): string {\n        const { administrator } = entry;\n        if (administrator) {\n            return `${administrator.firstName} ${administrator.lastName}`;\n        } else {\n            const customer = this.order.customer;\n            if (customer) {\n                return `${customer.firstName} ${customer.lastName}`;\n            }\n        }\n        return '';\n    }\n\n    addNoteToOrder() {\n        this.addNote.emit({ note: this.note, isPublic: !this.noteIsPrivate });\n        this.note = '';\n        this.noteIsPrivate = true;\n    }\n}\n","<div class=\"entry-list\" [class.expanded]=\"expanded\">\n    <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" [isFirst]=\"true\">\n        <div class=\"note-entry\">\n            <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\n            <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToOrder()\">\n                {{ 'common.add-note' | translate }}\n            </button>\n        </div>\n        <div class=\"visibility-select\">\n            <clr-checkbox-wrapper>\n                <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\n                <label>{{ 'order.note-is-private' | translate }}</label>\n            </clr-checkbox-wrapper>\n            <span *ngIf=\"noteIsPrivate\" class=\"private\">\n                {{ 'order.note-only-visible-to-administrators' | translate }}\n            </span>\n            <span *ngIf=\"!noteIsPrivate\" class=\"public\">\n                {{ 'order.note-visible-to-customer' | translate }}\n            </span>\n        </div>\n    </vdr-timeline-entry>\n    <ng-container *ngFor=\"let entry of history\">\n        <vdr-order-history-entry-host\n            *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\n            [order]=\"order\"\n            [entry]=\"entry\"\n            [expanded]=\"expanded\"\n            (expandClick)=\"expanded = !expanded\"\n        ></vdr-order-history-entry-host>\n        <ng-template #defaultComponents>\n            <vdr-timeline-entry\n                [displayType]=\"getDisplayType(entry)\"\n                [iconShape]=\"getTimelineIcon(entry)\"\n                [createdAt]=\"entry.createdAt\"\n                [name]=\"getName(entry)\"\n                [featured]=\"isFeatured(entry)\"\n                [collapsed]=\"!expanded && !isFeatured(entry)\"\n                (expandClick)=\"expanded = !expanded\"\n            >\n                <ng-container [ngSwitch]=\"entry.type\">\n                    <ng-container *ngSwitchCase=\"type.ORDER_STATE_TRANSITION\">\n                        <div class=\"title\" *ngIf=\"entry.data.to === 'Delivered'\">\n                            {{ 'order.history-order-fulfilled' | translate }}\n                        </div>\n                        <div class=\"title\" *ngIf=\"entry.data.to === 'Cancelled'\">\n                            {{ 'order.history-order-cancelled' | translate }}\n                        </div>\n                        <ng-template [ngIf]=\"entry.data.to !== 'Cancelled' && entry.data.to !== 'Delivered'\">\n                            {{\n                                'order.history-order-transition'\n                                    | translate : { from: entry.data.from, to: entry.data.to }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_MODIFIED\">\n                        <div class=\"title\">\n                            {{ 'order.history-order-modified' | translate }}\n                        </div>\n                        <div\n                            class=\"flex items-center\"\n                            *ngIf=\"getModification(entry.data.modificationId) as modification\"\n                        >\n                            {{ 'order.modify-order-price-difference' | translate }}:\n                            <strong>{{\n                                modification.priceChange | localeCurrency : order.currencyCode\n                            }}</strong>\n                            <vdr-chip colorType=\"success\" class=\"mx-1\" *ngIf=\"modification.isSettled\">{{\n                                'order.modification-settled' | translate\n                            }}</vdr-chip>\n                            <vdr-chip colorType=\"error\" class=\"mx-1\" *ngIf=\"!modification.isSettled\">{{\n                                'order.modification-not-settled' | translate\n                            }}</vdr-chip>\n                            <vdr-history-entry-detail>\n                                <vdr-modification-detail\n                                    [order]=\"order\"\n                                    [modification]=\"modification\"\n                                ></vdr-modification-detail>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_PAYMENT_TRANSITION\">\n                        <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularPaymentTransition\">\n                            <div class=\"title\">\n                                {{ 'order.history-payment-settled' | translate }}\n                            </div>\n                            <div class=\"flex items-center\">\n                                <vdr-chip *ngIf=\"getPayment(entry) as payment\" class=\"mr-1\">{{\n                                    payment.amount | localeCurrency : order.currencyCode\n                                }}</vdr-chip>\n                                <vdr-history-entry-detail *ngIf=\"getPayment(entry) as payment\">\n                                    <vdr-payment-detail\n                                        [payment]=\"payment\"\n                                        [currencyCode]=\"order.currencyCode\"\n                                    ></vdr-payment-detail>\n                                </vdr-history-entry-detail>\n                            </div>\n                        </ng-container>\n                        <ng-template #regularPaymentTransition>\n                            {{\n                                'order.history-payment-transition'\n                                    | translate\n                                        : {\n                                              from: entry.data.from,\n                                              to: entry.data.to,\n                                              id: getPayment(entry)?.transactionId\n                                          }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_REFUND_TRANSITION\">\n                        <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularRefundTransition\">\n                            <ng-container *ngIf=\"getRefund(entry) as refund\">\n                                <div class=\"title\">{{ 'order.refund' | translate }} #{{ refund.id }}</div>\n                                <div class=\"flex items-center\">\n                                    <vdr-chip colorType=\"warning\" class=\"mr-1\">{{\n                                        refund.total | localeCurrency : order.currencyCode\n                                    }}</vdr-chip>\n                                    <vdr-history-entry-detail>\n                                        <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\n                                            {{ entry.data.reason }}\n                                        </vdr-labeled-data>\n                                        <vdr-labeled-data [label]=\"'order.contents' | translate\">\n                                            <vdr-simple-item-list\n                                                [items]=\"getCancelledItems(refund.lines)\"\n                                            ></vdr-simple-item-list>\n                                        </vdr-labeled-data>\n                                    </vdr-history-entry-detail>\n                                </div>\n                            </ng-container>\n                        </ng-container>\n                        <ng-template #regularRefundTransition>\n                            {{\n                                'order.history-refund-transition'\n                                    | translate\n                                        : {\n                                              from: entry.data.from,\n                                              to: entry.data.to,\n                                              id: entry.data.refundId\n                                          }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_CANCELLATION\">\n                        {{\n                            'order.history-items-cancelled'\n                                | translate : { count: getCancelledQuantity(entry) }\n                        }}\n                        <vdr-history-entry-detail *ngIf=\"getCancelledItems(entry.data.lines) as items\">\n                            <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\n                                {{ entry.data.reason }}\n                            </vdr-labeled-data>\n                            <vdr-labeled-data [label]=\"'order.contents' | translate\">\n                                <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\n                            </vdr-labeled-data>\n                            <vdr-labeled-data [label]=\"'order.shipping-cancelled' | translate\">\n                                {{ entry.data.shippingCancelled }}\n                            </vdr-labeled-data>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT\">\n                        {{ 'order.history-fulfillment-created' | translate }}\n                        <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\n                            <vdr-fulfillment-detail\n                                [fulfillmentId]=\"fulfillment.id\"\n                                [order]=\"order\"\n                            ></vdr-fulfillment-detail>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT_TRANSITION\">\n                        <ng-container *ngIf=\"entry.data.to === 'Delivered'\">\n                            <div class=\"title\">\n                                {{ 'order.history-fulfillment-delivered' | translate }}\n                            </div>\n                            {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\n                        </ng-container>\n                        <ng-container *ngIf=\"entry.data.to === 'Shipped'\">\n                            <div class=\"title\">\n                                {{ 'order.history-fulfillment-shipped' | translate }}\n                            </div>\n                            {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\n                        </ng-container>\n                        <ng-container *ngIf=\"entry.data.to !== 'Delivered' && entry.data.to !== 'Shipped'\">\n                            {{\n                                'order.history-fulfillment-transition'\n                                    | translate : { from: entry.data.from, to: entry.data.to }\n                            }}\n                        </ng-container>\n                        <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\n                            <vdr-fulfillment-detail\n                                [fulfillmentId]=\"fulfillment.id\"\n                                [order]=\"order\"\n                            ></vdr-fulfillment-detail>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_NOTE\">\n                        <div class=\"flex\">\n                            <div class=\"note-text\">\n                                <span *ngIf=\"entry.isPublic\" class=\"note-visibility public\">{{\n                                    'common.public' | translate\n                                }}</span>\n                                <span *ngIf=\"!entry.isPublic\" class=\"note-visibility private\">{{\n                                    'common.private' | translate\n                                }}</span>\n                                {{ entry.data.note }}\n                            </div>\n                            <div class=\"flex-spacer\"></div>\n                            <vdr-dropdown>\n                                <button class=\"button-small ml-1\" vdrDropdownTrigger>\n                                    <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n                                </button>\n                                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"updateNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateOrder' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"edit\"></clr-icon>\n                                        {{ 'common.edit' | translate }}\n                                    </button>\n                                    <div class=\"dropdown-divider\"></div>\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"deleteNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateOrder' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n                                        {{ 'common.delete' | translate }}\n                                    </button>\n                                </vdr-dropdown-menu>\n                            </vdr-dropdown>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_COUPON_APPLIED\">\n                        {{ 'order.history-coupon-code-applied' | translate }}:\n                        <vdr-chip>\n                            <a [routerLink]=\"['/marketing', 'promotions', entry.data.promotionId]\">{{\n                                entry.data.couponCode\n                            }}</a>\n                        </vdr-chip>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_COUPON_REMOVED\">\n                        {{ 'order.history-coupon-code-removed' | translate }}:\n                        <vdr-chip\n                            ><span class=\"cancelled-coupon-code\">{{ entry.data.couponCode }}</span></vdr-chip\n                        >\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.ORDER_CUSTOMER_UPDATED\">\n                        <div class=\"title\">\n                            {{\n                                'order.history-customer-updated'\n                                    | translate : { newCustomerName: entry.data.newCustomerName }\n                            }}\n                        </div>\n                        <div class=\"flex\">\n                            <div class=\"note-text\">\n                                {{ entry.data.note }}\n                            </div>\n                            <div class=\"flex-spacer\"></div>\n                            <vdr-history-entry-detail>\n                                <vdr-labeled-data [label]=\"'order.previous-customer' | translate\">\n                                    <a\n                                        *ngIf=\"entry.data.previousCustomerId\"\n                                        class=\"button-ghost\"\n                                        [routerLink]=\"[\n                                            '/customer',\n                                            'customers',\n                                            entry.data.previousCustomerId\n                                        ]\"\n                                    >\n                                        <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\n                                        <span>{{ entry.data.previousCustomerName }}</span>\n                                        <clr-icon shape=\"arrow right\"></clr-icon>\n                                    </a>\n                                </vdr-labeled-data>\n                                <vdr-labeled-data [label]=\"'order.new-customer' | translate\">\n                                    <a\n                                        *ngIf=\"entry.data.newCustomerId\"\n                                        class=\"button-ghost\"\n                                        [routerLink]=\"['/customer', 'customers', entry.data.newCustomerId]\"\n                                    >\n                                        <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\n                                        <span>{{ entry.data.newCustomerName }}</span>\n                                        <clr-icon shape=\"arrow right\"></clr-icon>\n                                    </a>\n                                </vdr-labeled-data>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchDefault>\n                        <div class=\"title\">\n                            {{ entry.type | translate }}\n                        </div>\n                        <vdr-history-entry-detail *ngIf=\"entry.data\">\n                            <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                </ng-container>\n            </vdr-timeline-entry>\n        </ng-template>\n    </ng-container>\n\n    <vdr-timeline-entry [isLast]=\"true\" [createdAt]=\"order.createdAt\" [featured]=\"true\">\n        <div class=\"title\">\n            {{ 'order.history-order-created' | translate }}\n        </div>\n    </vdr-timeline-entry>\n</div>\n","import { gql } from 'apollo-angular';\n\nexport const GET_SELLER_ORDERS = gql`\n    query GetSellerOrders($orderId: ID!) {\n        order(id: $orderId) {\n            id\n            sellerOrders {\n                id\n                code\n                state\n                orderPlacedAt\n                currencyCode\n                totalWithTax\n                channels {\n                    id\n                    code\n                    seller {\n                        id\n                        name\n                    }\n                }\n            }\n        }\n    }\n`;\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n    ChannelService,\n    DataService,\n    GetSellerOrdersQuery,\n    GetSellerOrdersQueryVariables,\n} from '@vendure/admin-ui/core';\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\nimport { Observable } from 'rxjs';\n\nimport { GET_SELLER_ORDERS } from './seller-orders-card.graphql';\n\ntype SellerOrder = NonNullable<NonNullable<GetSellerOrdersQuery['order']>['sellerOrders']>[number];\n\n@Component({\n    selector: 'vdr-seller-orders-card',\n    templateUrl: './seller-orders-card.component.html',\n    styleUrls: ['./seller-orders-card.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class SellerOrdersCardComponent implements OnInit {\n    @Input() orderId: string;\n\n    sellerOrders$: Observable<SellerOrder[]>;\n\n    constructor(\n        private router: Router,\n        private dataService: DataService,\n        private channelService: ChannelService,\n    ) {}\n\n    ngOnInit() {\n        this.sellerOrders$ = this.dataService\n            .query<GetSellerOrdersQuery, GetSellerOrdersQueryVariables>(GET_SELLER_ORDERS, {\n                orderId: this.orderId,\n            })\n            .mapSingle(({ order }) => order?.sellerOrders ?? []);\n    }\n\n    getSeller(order: SellerOrder) {\n        const sellerChannel = order.channels.find(channel => channel.code !== DEFAULT_CHANNEL_CODE);\n        return sellerChannel?.seller;\n    }\n\n    navigateToSellerOrder(order: SellerOrder) {\n        this.router.navigate(['/orders', order.id]);\n    }\n}\n","<vdr-card [title]=\"'order.seller-orders' | translate\">\n    <div class=\"form-grid\">\n        <div *ngFor=\"let order of sellerOrders$ | async\">\n            <a [routerLink]=\"['seller-orders', order.id]\" class=\"button-ghost mb-1\"\n                >{{ order.code }} <clr-icon shape=\"arrow right\"></clr-icon\n            ></a>\n            <vdr-labeled-data [label]=\"'order.state' | translate\">\n                <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n            </vdr-labeled-data>\n            <vdr-labeled-data *ngIf=\"getSeller(order) as seller\" [label]=\"'common.seller' | translate\">\n                {{ seller.name }}\n            </vdr-labeled-data>\n            <vdr-labeled-data *ngIf=\"getSeller(order) as seller\" [label]=\"'order.total' | translate\">\n                {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n            </vdr-labeled-data>\n        </div>\n    </div>\n</vdr-card>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    DataService,\n    EditNoteDialogComponent,\n    FulfillmentFragment,\n    getCustomFieldsDefaults,\n    GetOrderHistoryQuery,\n    GetOrderQuery,\n    ModalService,\n    NotificationService,\n    ORDER_DETAIL_FRAGMENT,\n    OrderDetailFragment,\n    OrderDetailQueryDocument,\n    Refund,\n    SetOrderCustomerDocument,\n    SortOrder,\n    TimelineHistoryEntry,\n    TypedBaseDetailComponent,\n} from '@vendure/admin-ui/core';\nimport { assertNever, summate } from '@vendure/common/lib/shared-utils';\nimport { gql } from 'apollo-angular';\nimport { EMPTY, forkJoin, Observable, of, Subject } from 'rxjs';\nimport { map, mapTo, startWith, switchMap, take } from 'rxjs/operators';\n\nimport { OrderTransitionService } from '../../providers/order-transition.service';\nimport { AddManualPaymentDialogComponent } from '../add-manual-payment-dialog/add-manual-payment-dialog.component';\nimport { CancelOrderDialogComponent } from '../cancel-order-dialog/cancel-order-dialog.component';\nimport { FulfillOrderDialogComponent } from '../fulfill-order-dialog/fulfill-order-dialog.component';\nimport { OrderProcessGraphDialogComponent } from '../order-process-graph-dialog/order-process-graph-dialog.component';\nimport { RefundOrderDialogComponent } from '../refund-order-dialog/refund-order-dialog.component';\nimport { SelectCustomerDialogComponent } from '../select-customer-dialog/select-customer-dialog.component';\nimport { SettleRefundDialogComponent } from '../settle-refund-dialog/settle-refund-dialog.component';\n\ntype Payment = NonNullable<OrderDetailFragment['payments']>[number];\n\nexport const ORDER_DETAIL_QUERY = gql`\n    query OrderDetailQuery($id: ID!) {\n        order(id: $id) {\n            ...OrderDetail\n        }\n    }\n    ${ORDER_DETAIL_FRAGMENT}\n`;\n\nexport const SET_ORDER_CUSTOMER_MUTATION = gql`\n    mutation SetOrderCustomer($input: SetOrderCustomerInput!) {\n        setOrderCustomer(input: $input) {\n            id\n            customer {\n                id\n                firstName\n                lastName\n                emailAddress\n            }\n        }\n    }\n`;\n\n@Component({\n    selector: 'vdr-order-detail',\n    templateUrl: './order-detail.component.html',\n    styleUrls: ['./order-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderDetailComponent\n    extends TypedBaseDetailComponent<typeof OrderDetailQueryDocument, 'order'>\n    implements OnInit, OnDestroy\n{\n    customFields = this.getCustomFieldConfig('Order');\n    orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\n    detailForm = new FormGroup({\n        customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),\n    });\n    history$: Observable<NonNullable<GetOrderHistoryQuery['order']>['history']['items'] | undefined>;\n    nextStates$: Observable<string[]>;\n    fetchHistory = new Subject<void>();\n    private readonly defaultStates = [\n        'AddingItems',\n        'ArrangingPayment',\n        'PaymentAuthorized',\n        'PaymentSettled',\n        'PartiallyShipped',\n        'Shipped',\n        'PartiallyDelivered',\n        'Delivered',\n        'Cancelled',\n        'Modifying',\n        'ArrangingAdditionalPayment',\n    ];\n\n    constructor(\n        private changeDetector: ChangeDetectorRef,\n        protected dataService: DataService,\n        private notificationService: NotificationService,\n        private modalService: ModalService,\n        private orderTransitionService: OrderTransitionService,\n        private formBuilder: FormBuilder,\n    ) {\n        super();\n    }\n\n    ngOnInit() {\n        this.init();\n        this.entity$.pipe(take(1)).subscribe(order => {\n            if (order.state === 'Modifying') {\n                this.router.navigate(['./', 'modify'], { relativeTo: this.route });\n            }\n        });\n        this.history$ = this.fetchHistory.pipe(\n            startWith(null),\n            switchMap(() =>\n                this.dataService.order\n                    .getOrderHistory(this.id, {\n                        sort: {\n                            createdAt: SortOrder.DESC,\n                        },\n                    })\n                    .mapStream(data => data.order?.history.items),\n            ),\n        );\n        this.nextStates$ = this.entity$.pipe(\n            map(order => {\n                const isInCustomState = !this.defaultStates.includes(order.state);\n                return isInCustomState\n                    ? order.nextStates\n                    : order.nextStates.filter(s => !this.defaultStates.includes(s));\n            }),\n        );\n    }\n\n    ngOnDestroy() {\n        this.destroy();\n    }\n\n    openStateDiagram() {\n        this.entity$\n            .pipe(\n                take(1),\n                switchMap(order =>\n                    this.modalService.fromComponent(OrderProcessGraphDialogComponent, {\n                        closable: true,\n                        locals: {\n                            activeState: order.state,\n                        },\n                    }),\n                ),\n            )\n            .subscribe();\n    }\n\n    setOrderCustomer() {\n        this.modalService\n            .fromComponent(SelectCustomerDialogComponent, {\n                locals: {\n                    canCreateNew: false,\n                    includeNoteInput: true,\n                    title: _('order.assign-order-to-another-customer'),\n                },\n            })\n            .pipe(\n                switchMap(result => {\n                    function isExisting(input: any): input is { id: string } {\n                        return typeof input === 'object' && !!input.id;\n                    }\n                    if (isExisting(result)) {\n                        return this.dataService.mutate(SetOrderCustomerDocument, {\n                            input: {\n                                customerId: result.id,\n                                orderId: this.id,\n                                note: result.note,\n                            },\n                        });\n                    } else {\n                        return EMPTY;\n                    }\n                }),\n                switchMap(result => this.refetchOrder(result)),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.notificationService.success(_('order.set-customer-success'));\n                }\n            });\n    }\n\n    transitionToState(state: string) {\n        this.dataService.order.transitionToState(this.id, state).subscribe(({ transitionOrderToState }) => {\n            switch (transitionOrderToState?.__typename) {\n                case 'Order':\n                    this.notificationService.success(_('order.transitioned-to-state-success'), { state });\n                    this.fetchHistory.next();\n                    break;\n                case 'OrderStateTransitionError':\n                    this.notificationService.error(transitionOrderToState.transitionError);\n            }\n        });\n    }\n\n    manuallyTransitionToState(order: OrderDetailFragment) {\n        this.orderTransitionService\n            .manuallyTransitionToState({\n                orderId: order.id,\n                nextStates: order.nextStates,\n                cancellable: true,\n                message: _('order.manually-transition-to-state-message'),\n                retry: 0,\n            })\n            .subscribe();\n    }\n\n    transitionToModifying() {\n        this.dataService.order\n            .transitionToState(this.id, 'Modifying')\n            .subscribe(({ transitionOrderToState }) => {\n                switch (transitionOrderToState?.__typename) {\n                    case 'Order':\n                        this.router.navigate(['./modify'], { relativeTo: this.route });\n                        break;\n                    case 'OrderStateTransitionError':\n                        this.notificationService.error(transitionOrderToState.transitionError);\n                }\n            });\n    }\n\n    updateCustomFields() {\n        this.dataService.order\n            .updateOrderCustomFields({\n                id: this.id,\n                customFields: this.detailForm.value.customFields,\n            })\n            .subscribe(() => {\n                this.notificationService.success(_('common.notify-update-success'), { entity: 'Order' });\n            });\n    }\n\n    getOrderAddressLines(orderAddress?: { [key: string]: string }): string[] {\n        if (!orderAddress) {\n            return [];\n        }\n        return Object.values(orderAddress)\n            .filter(val => val !== 'OrderAddress')\n            .filter(line => !!line);\n    }\n\n    settlePayment(payment: Payment) {\n        this.dataService.order.settlePayment(payment.id).subscribe(({ settlePayment }) => {\n            switch (settlePayment.__typename) {\n                case 'Payment':\n                    if (settlePayment.state === 'Settled') {\n                        this.notificationService.success(_('order.settle-payment-success'));\n                    } else {\n                        this.notificationService.error(_('order.settle-payment-error'));\n                    }\n                    this.dataService.order.getOrder(this.id).single$.subscribe();\n                    this.fetchHistory.next();\n                    break;\n                case 'OrderStateTransitionError':\n                case 'PaymentStateTransitionError':\n                case 'SettlePaymentError':\n                    this.notificationService.error(settlePayment.message);\n            }\n        });\n    }\n\n    transitionPaymentState({ payment, state }: { payment: Payment; state: string }) {\n        if (state === 'Cancelled') {\n            this.dataService.order.cancelPayment(payment.id).subscribe(({ cancelPayment }) => {\n                switch (cancelPayment.__typename) {\n                    case 'Payment':\n                        this.notificationService.success(_('order.transitioned-payment-to-state-success'), {\n                            state,\n                        });\n                        this.dataService.order.getOrder(this.id).single$.subscribe();\n                        this.fetchHistory.next();\n                        break;\n                    case 'PaymentStateTransitionError':\n                        this.notificationService.error(cancelPayment.transitionError);\n                        break;\n                    case 'CancelPaymentError':\n                        this.notificationService.error(cancelPayment.paymentErrorMessage);\n                        break;\n                }\n            });\n        } else {\n            this.dataService.order\n                .transitionPaymentToState(payment.id, state)\n                .subscribe(({ transitionPaymentToState }) => {\n                    switch (transitionPaymentToState.__typename) {\n                        case 'Payment':\n                            this.notificationService.success(\n                                _('order.transitioned-payment-to-state-success'),\n                                {\n                                    state,\n                                },\n                            );\n                            this.dataService.order.getOrder(this.id).single$.subscribe();\n                            this.fetchHistory.next();\n                            break;\n                        case 'PaymentStateTransitionError':\n                            this.notificationService.error(transitionPaymentToState.message);\n                            break;\n                    }\n                });\n        }\n    }\n\n    canAddFulfillment(order: OrderDetailFragment): boolean {\n        const allFulfillmentLines: FulfillmentFragment['lines'] = (order.fulfillments ?? [])\n            .filter(fulfillment => fulfillment.state !== 'Cancelled')\n            .reduce((all, fulfillment) => [...all, ...fulfillment.lines], [] as FulfillmentFragment['lines']);\n        let allItemsFulfilled = true;\n        for (const line of order.lines) {\n            const totalFulfilledCount = allFulfillmentLines\n                .filter(row => row.orderLineId === line.id)\n                .reduce((sum, row) => sum + row.quantity, 0);\n            if (totalFulfilledCount < line.quantity) {\n                allItemsFulfilled = false;\n            }\n        }\n        return (\n            !allItemsFulfilled &&\n            !this.hasUnsettledModifications(order) &&\n            this.outstandingPaymentAmount(order) === 0 &&\n            (order.nextStates.includes('Shipped') ||\n                order.nextStates.includes('PartiallyShipped') ||\n                order.nextStates.includes('Delivered'))\n        );\n    }\n\n    hasUnsettledModifications(order: OrderDetailFragment): boolean {\n        return 0 < order.modifications.filter(m => !m.isSettled).length;\n    }\n\n    getOutstandingModificationAmount(order: OrderDetailFragment): number {\n        return summate(\n            order.modifications.filter(m => !m.isSettled),\n            'priceChange',\n        );\n    }\n\n    outstandingPaymentAmount(order: OrderDetailFragment): number {\n        const paymentIsValid = (p: Payment): boolean =>\n            p.state !== 'Cancelled' && p.state !== 'Declined' && p.state !== 'Error';\n\n        let amountCovered = 0;\n        for (const payment of order.payments?.filter(paymentIsValid) ?? []) {\n            const refunds = payment.refunds.filter(r => r.state !== 'Failed') ?? [];\n            const refundsTotal = summate(refunds as Array<Required<Refund>>, 'total');\n            amountCovered += payment.amount - refundsTotal;\n        }\n        return order.totalWithTax - amountCovered;\n    }\n\n    addManualPayment(order: OrderDetailFragment) {\n        const priorState = order.state;\n        this.modalService\n            .fromComponent(AddManualPaymentDialogComponent, {\n                closable: true,\n                locals: {\n                    outstandingAmount: this.outstandingPaymentAmount(order),\n                    currencyCode: order.currencyCode,\n                },\n            })\n            .pipe(\n                switchMap(result => {\n                    if (result) {\n                        return this.dataService.order.addManualPaymentToOrder({\n                            orderId: this.id,\n                            transactionId: result.transactionId,\n                            method: result.method,\n                            metadata: result.metadata || {},\n                        });\n                    } else {\n                        return EMPTY;\n                    }\n                }),\n                switchMap(({ addManualPaymentToOrder }) => {\n                    switch (addManualPaymentToOrder.__typename) {\n                        case 'Order':\n                            this.notificationService.success(_('order.add-payment-to-order-success'));\n                            if (priorState === 'ArrangingAdditionalPayment') {\n                                return this.orderTransitionService.transitionToPreModifyingState(\n                                    order.id,\n                                    order.nextStates,\n                                );\n                            } else {\n                                return of('PaymentSettled');\n                            }\n                        case 'ManualPaymentStateError':\n                            this.notificationService.error(addManualPaymentToOrder.message);\n                            return EMPTY;\n                        default:\n                            return EMPTY;\n                    }\n                }),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.refetchOrder({ result });\n                }\n            });\n    }\n\n    fulfillOrder() {\n        this.entity$\n            .pipe(\n                take(1),\n                switchMap(order =>\n                    this.modalService.fromComponent(FulfillOrderDialogComponent, {\n                        size: 'xl',\n                        locals: {\n                            order,\n                        },\n                    }),\n                ),\n                switchMap(input => {\n                    if (input) {\n                        return this.dataService.order.createFulfillment(input);\n                    } else {\n                        return of(undefined);\n                    }\n                }),\n                switchMap(result => this.refetchOrder(result).pipe(mapTo(result))),\n            )\n            .subscribe(result => {\n                if (result) {\n                    const { addFulfillmentToOrder } = result;\n                    switch (addFulfillmentToOrder.__typename) {\n                        case 'Fulfillment':\n                            this.notificationService.success(_('order.create-fulfillment-success'));\n                            break;\n                        case 'EmptyOrderLineSelectionError':\n                        case 'InsufficientStockOnHandError':\n                        case 'ItemsAlreadyFulfilledError':\n                        case 'InvalidFulfillmentHandlerError':\n                            this.notificationService.error(addFulfillmentToOrder.message);\n                            break;\n                        case 'FulfillmentStateTransitionError':\n                            this.notificationService.error(addFulfillmentToOrder.transitionError);\n                            break;\n                        case 'CreateFulfillmentError':\n                            this.notificationService.error(addFulfillmentToOrder.fulfillmentHandlerError);\n                            break;\n                        case undefined:\n                            this.notificationService.error(JSON.stringify(addFulfillmentToOrder));\n                            break;\n                        default:\n                            assertNever(addFulfillmentToOrder);\n                    }\n                }\n            });\n    }\n\n    transitionFulfillment(id: string, state: string) {\n        this.dataService.order\n            .transitionFulfillmentToState(id, state)\n            .pipe(switchMap(result => this.refetchOrder(result)))\n            .subscribe(() => {\n                this.notificationService.success(_('order.successfully-updated-fulfillment'));\n            });\n    }\n\n    cancelOrRefund(order: OrderDetailFragment) {\n        const isRefundable = this.orderHasSettledPayments(order);\n        if (order.state === 'PaymentAuthorized' || order.active === true || !isRefundable) {\n            this.cancelOrder(order);\n        } else {\n            this.refundOrder(order);\n        }\n    }\n\n    settleRefund(refund: Payment['refunds'][number]) {\n        this.modalService\n            .fromComponent(SettleRefundDialogComponent, {\n                size: 'md',\n                locals: {\n                    refund,\n                },\n            })\n            .pipe(\n                switchMap(transactionId => {\n                    if (transactionId) {\n                        return this.dataService.order.settleRefund(\n                            {\n                                transactionId,\n                                id: refund.id,\n                            },\n                            this.id,\n                        );\n                    } else {\n                        return of(undefined);\n                    }\n                }),\n                // switchMap(result => this.refetchOrder(result)),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.notificationService.success(_('order.settle-refund-success'));\n                }\n            });\n    }\n\n    addNote(event: { note: string; isPublic: boolean }) {\n        const { note, isPublic } = event;\n        this.dataService.order\n            .addNoteToOrder({\n                id: this.id,\n                note,\n                isPublic,\n            })\n            .pipe(switchMap(result => this.refetchOrder(result)))\n            .subscribe(result => {\n                this.notificationService.success(_('common.notify-create-success'), {\n                    entity: 'Note',\n                });\n            });\n    }\n\n    updateNote(entry: TimelineHistoryEntry) {\n        this.modalService\n            .fromComponent(EditNoteDialogComponent, {\n                closable: true,\n                locals: {\n                    displayPrivacyControls: true,\n                    note: entry.data.note,\n                    noteIsPrivate: !entry.isPublic,\n                },\n            })\n            .pipe(\n                switchMap(result => {\n                    if (result) {\n                        return this.dataService.order.updateOrderNote({\n                            noteId: entry.id,\n                            isPublic: !result.isPrivate,\n                            note: result.note,\n                        });\n                    } else {\n                        return EMPTY;\n                    }\n                }),\n            )\n            .subscribe(result => {\n                this.fetchHistory.next();\n                this.notificationService.success(_('common.notify-update-success'), {\n                    entity: 'Note',\n                });\n            });\n    }\n\n    deleteNote(entry: TimelineHistoryEntry) {\n        return this.modalService\n            .dialog({\n                title: _('common.confirm-delete-note'),\n                body: entry.data.note,\n                buttons: [\n                    { type: 'secondary', label: _('common.cancel') },\n                    { type: 'danger', label: _('common.delete'), returnValue: true },\n                ],\n            })\n            .pipe(switchMap(res => (res ? this.dataService.order.deleteOrderNote(entry.id) : EMPTY)))\n            .subscribe(() => {\n                this.fetchHistory.next();\n                this.notificationService.success(_('common.notify-delete-success'), {\n                    entity: 'Note',\n                });\n            });\n    }\n\n    orderHasSettledPayments(order: OrderDetailFragment): boolean {\n        return !!order.payments?.find(p => p.state === 'Settled');\n    }\n\n    private cancelOrder(order: OrderDetailFragment) {\n        this.modalService\n            .fromComponent(CancelOrderDialogComponent, {\n                size: 'xl',\n                locals: {\n                    order,\n                },\n            })\n            .pipe(\n                switchMap(input => {\n                    if (input) {\n                        return this.dataService.order.cancelOrder(input);\n                    } else {\n                        return of(undefined);\n                    }\n                }),\n                switchMap(result => this.refetchOrder(result)),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.notificationService.success(_('order.cancelled-order-success'));\n                }\n            });\n    }\n\n    private refundOrder(order: OrderDetailFragment) {\n        this.modalService\n            .fromComponent(RefundOrderDialogComponent, {\n                size: 'xl',\n                locals: {\n                    order,\n                },\n            })\n            .pipe(\n                switchMap(input => {\n                    if (!input) {\n                        return of(undefined);\n                    }\n\n                    if (input.cancel.lines?.length) {\n                        return this.dataService.order.cancelOrder(input.cancel).pipe(\n                            map(res => {\n                                const result = res.cancelOrder;\n                                switch (result.__typename) {\n                                    case 'Order':\n                                        this.refetchOrder(result).subscribe();\n                                        this.notificationService.success(\n                                            _('order.cancelled-order-items-success'),\n                                            {\n                                                count: summate(input.cancel.lines, 'quantity'),\n                                            },\n                                        );\n                                        return input;\n                                    case 'CancelActiveOrderError':\n                                    case 'QuantityTooGreatError':\n                                    case 'MultipleOrderError':\n                                    case 'OrderStateTransitionError':\n                                    case 'EmptyOrderLineSelectionError':\n                                        this.notificationService.error(result.message);\n                                        return undefined;\n                                }\n                            }),\n                        );\n                    } else {\n                        return [input];\n                    }\n                }),\n                switchMap(input => {\n                    if (!input) {\n                        return of(undefined);\n                    }\n                    if (input.refunds.length) {\n                        return forkJoin(\n                            input.refunds.map(refund =>\n                                this.dataService.order.refundOrder(refund).pipe(map(res => res.refundOrder)),\n                            ),\n                        );\n                    } else {\n                        return [undefined];\n                    }\n                }),\n            )\n            .subscribe(results => {\n                for (const result of results ?? []) {\n                    if (result) {\n                        switch (result.__typename) {\n                            case 'Refund':\n                                if (result.state === 'Failed') {\n                                    this.notificationService.error(_('order.refund-order-failed'));\n                                } else {\n                                    this.notificationService.success(_('order.refund-order-success'));\n                                }\n                                break;\n                            case 'AlreadyRefundedError':\n                            case 'NothingToRefundError':\n                            case 'PaymentOrderMismatchError':\n                            case 'RefundOrderStateError':\n                            case 'RefundStateTransitionError':\n                                this.notificationService.error(result.message);\n                                break;\n                        }\n                    }\n                }\n                this.refetchOrder(results?.[0]).subscribe();\n            });\n    }\n\n    private refetchOrder(result: object | undefined): Observable<GetOrderQuery | undefined> {\n        this.fetchHistory.next();\n        if (result) {\n            return this.dataService.order.getOrder(this.id).single$;\n        } else {\n            return of(undefined);\n        }\n    }\n\n    protected setFormValues(entity: OrderDetailFragment): void {\n        if (this.customFields.length) {\n            this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);\n        }\n    }\n}\n","<vdr-page-block>\n    <vdr-action-bar *ngIf=\"entity$ | async as order\">\n        <vdr-ab-left> </vdr-ab-left>\n\n        <vdr-ab-right>\n            <vdr-action-bar-items locationId=\"order-detail\"></vdr-action-bar-items>\n            <button\n                class=\"button primary mr-1\"\n                *ngIf=\"\n                    order.type !== 'Aggregate' &&\n                    (order.state === 'ArrangingPayment' || order.state === 'ArrangingAdditionalPayment') &&\n                    (hasUnsettledModifications(order) || 0 < outstandingPaymentAmount(order))\n                \"\n                (click)=\"addManualPayment(order)\"\n            >\n                {{ 'order.add-payment-to-order' | translate }}\n                ({{ outstandingPaymentAmount(order) | localeCurrency : order.currencyCode }})\n            </button>\n            <button\n                class=\"button primary mr-1\"\n                *ngIf=\"\n                    order.type !== 'Aggregate' &&\n                    order.active === false &&\n                    order.state !== 'ArrangingAdditionalPayment' &&\n                    order.state !== 'ArrangingPayment' &&\n                    0 < outstandingPaymentAmount(order)\n                \"\n                (click)=\"transitionToState('ArrangingAdditionalPayment')\"\n            >\n                {{ 'order.arrange-additional-payment' | translate }}\n            </button>\n            <button\n                *ngIf=\"order.type !== 'Aggregate'\"\n                class=\"button primary mr-1\"\n                (click)=\"fulfillOrder()\"\n                [disabled]=\"!canAddFulfillment(order)\"\n            >\n                {{ 'order.fulfill-order' | translate }}\n            </button>\n            <vdr-action-bar-dropdown-menu [alwaysShow]=\"true\" locationId=\"order-detail\">\n                <ng-container *ngIf=\"order.type !== 'Aggregate' && order.nextStates.includes('Modifying')\">\n                    <button type=\"button\" vdrDropdownItem (click)=\"transitionToModifying()\">\n                        <clr-icon shape=\"pencil\"></clr-icon>\n                        {{ 'order.modify-order' | translate }}\n                    </button>\n                    <div class=\"dropdown-divider\"></div>\n                </ng-container>\n                <button\n                    type=\"button\"\n                    vdrDropdownItem\n                    *ngIf=\"order.type !== 'Aggregate' && order.nextStates.includes('Cancelled')\"\n                    (click)=\"cancelOrRefund(order)\"\n                >\n                    <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\n                    <ng-container *ngIf=\"orderHasSettledPayments(order); else cancelOnly\">\n                        {{ 'order.refund-and-cancel-order' | translate }}\n                    </ng-container>\n                    <ng-template #cancelOnly>\n                        {{ 'order.cancel-order' | translate }}\n                    </ng-template>\n                </button>\n\n                <ng-container *ngIf=\"(nextStates$ | async)?.length\">\n                    <div class=\"dropdown-divider\"></div>\n                    <button\n                        *ngFor=\"let nextState of nextStates$ | async\"\n                        type=\"button\"\n                        vdrDropdownItem\n                        (click)=\"transitionToState(nextState)\"\n                    >\n                        <clr-icon shape=\"step-forward-2\"></clr-icon>\n                        {{\n                            'order.transition-to-state'\n                                | translate : { state: (nextState | stateI18nToken | translate) }\n                        }}\n                    </button>\n                </ng-container>\n                <div class=\"dropdown-divider\"></div>\n                <button type=\"button\" vdrDropdownItem (click)=\"manuallyTransitionToState(order)\">\n                    <clr-icon shape=\"step-forward-2\" class=\"is-warning\"></clr-icon>\n                    {{ 'order.manually-transition-to-state' | translate }}\n                </button>\n            </vdr-action-bar-dropdown-menu>\n        </vdr-ab-right>\n    </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-page-detail-layout *ngIf=\"entity$ | async as order\">\n    <vdr-page-detail-sidebar>\n        <vdr-card [title]=\"'order.state' | translate\">\n            <ng-template vdrCardControls>\n                <button\n                    class=\"button-small\"\n                    (click)=\"openStateDiagram()\"\n                    [title]=\"'order.order-state-diagram' | translate\"\n                >\n                    <clr-icon shape=\"list\"></clr-icon>\n                </button>\n            </ng-template>\n            <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n        </vdr-card>\n        <vdr-card [title]=\"'order.customer' | translate\">\n            <ng-template vdrCardControls>\n                <button\n                    *vdrIfPermissions=\"['UpdateOrder', 'ReadCustomer']\"\n                    class=\"button-small\"\n                    (click)=\"setOrderCustomer()\"\n                    [title]=\"'order.assign-order-to-another-customer' | translate\"\n                >\n                    <clr-icon shape=\"switch\"></clr-icon>\n                </button>\n            </ng-template>\n            <vdr-customer-label [customer]=\"order.customer\"></vdr-customer-label>\n            <vdr-labeled-data\n                class=\"mt-2\"\n                [label]=\"'order.shipping-address' | translate\"\n                *ngIf=\"getOrderAddressLines(order.shippingAddress).length\"\n            >\n                <vdr-formatted-address [address]=\"order.shippingAddress\" class=\"mt-1\"></vdr-formatted-address>\n            </vdr-labeled-data>\n            <vdr-labeled-data\n                [label]=\"'order.billing-address' | translate\"\n                *ngIf=\"getOrderAddressLines(order.billingAddress).length\"\n            >\n                <vdr-formatted-address [address]=\"order.billingAddress\" class=\"mt-1\"></vdr-formatted-address>\n            </vdr-labeled-data>\n        </vdr-card>\n        <vdr-card [title]=\"'order.payments' | translate\" *ngIf=\"order.payments?.length\">\n            <vdr-order-payment-card\n                *ngFor=\"let payment of order.payments\"\n                [currencyCode]=\"order.currencyCode\"\n                [payment]=\"payment\"\n                (settlePayment)=\"settlePayment($event)\"\n                (transitionPaymentState)=\"transitionPaymentState($event)\"\n                (settleRefund)=\"settleRefund($event)\"\n            ></vdr-order-payment-card>\n        </vdr-card>\n        <vdr-card *ngIf=\"order.fulfillments?.length\">\n            <vdr-fulfillment-card\n                *ngFor=\"let fulfillment of order.fulfillments\"\n                [fulfillment]=\"fulfillment\"\n                [order]=\"order\"\n                (transitionState)=\"transitionFulfillment(fulfillment.id, $event)\"\n            ></vdr-fulfillment-card>\n        </vdr-card>\n        <vdr-card>\n            <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\n        </vdr-card>\n    </vdr-page-detail-sidebar>\n\n    <vdr-page-block>\n        <vdr-seller-orders-card\n            class=\"mb-2\"\n            *ngIf=\"order.sellerOrders.length\"\n            [orderId]=\"order.id\"\n        ></vdr-seller-orders-card>\n        <vdr-card [paddingX]=\"false\">\n            <vdr-order-table\n                [order]=\"order\"\n                [orderLineCustomFields]=\"orderLineCustomFields\"\n            ></vdr-order-table>\n        </vdr-card>\n        <vdr-card [title]=\"'order.tax-summary' | translate\" [paddingX]=\"false\">\n            <table class=\"table\">\n                <thead>\n                    <tr>\n                        <th>{{ 'common.description' | translate }}</th>\n                        <th>{{ 'order.tax-rate' | translate }}</th>\n                        <th>{{ 'order.tax-base' | translate }}</th>\n                        <th>{{ 'order.tax-total' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr *ngFor=\"let row of order.taxSummary\">\n                        <td>{{ row.description }}</td>\n                        <td>{{ row.taxRate / 100 | percent : '0.0-3' }}</td>\n                        <td>{{ row.taxBase | localeCurrency : order.currencyCode }}</td>\n                        <td>{{ row.taxTotal | localeCurrency : order.currencyCode }}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </vdr-card>\n        <vdr-card [title]=\"'common.custom-fields' | translate\" *ngIf=\"customFields.length\">\n            <vdr-tabbed-custom-fields\n                entityName=\"Order\"\n                [customFields]=\"customFields\"\n                [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n                [readonly]=\"!('UpdateOrder' | hasPermission)\"\n            />\n            <button\n                class=\"button primary\"\n                (click)=\"updateCustomFields()\"\n                [disabled]=\"\n                    detailForm.get('customFields')?.pristine || detailForm.get('customFields')?.invalid\n                \"\n            >\n                {{ 'common.update' | translate }}\n            </button>\n        </vdr-card>\n        <vdr-custom-detail-component-host\n            locationId=\"order-detail\"\n            [entity$]=\"entity$\"\n            [detailForm]=\"detailForm\"\n        ></vdr-custom-detail-component-host>\n\n        <vdr-card [title]=\"'order.order-history' | translate\">\n            <vdr-order-history\n                [order]=\"order\"\n                [history]=\"history$ | async\"\n                (addNote)=\"addNote($event)\"\n                (updateNote)=\"updateNote($event)\"\n                (deleteNote)=\"deleteNote($event)\"\n            ></vdr-order-history>\n        </vdr-card>\n    </vdr-page-block>\n</vdr-page-detail-layout>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\nimport type { OrderEditorComponent } from '../order-editor/order-editor.component';\nimport { AddedLine, ModifyOrderData, OrderSnapshot } from '../../common/modify-order-types';\n\n@Component({\n    selector: 'vdr-order-modification-summary',\n    templateUrl: './order-modification-summary.component.html',\n    styleUrls: ['./order-modification-summary.component.css'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderModificationSummaryComponent {\n    @Input() orderSnapshot: OrderSnapshot;\n    @Input() modifyOrderInput: ModifyOrderData;\n    @Input() addedLines: AddedLine[];\n    @Input() shippingAddressForm: OrderEditorComponent['shippingAddressForm'];\n    @Input() billingAddressForm: OrderEditorComponent['billingAddressForm'];\n    @Input() updatedShippingMethods: OrderEditorComponent['updatedShippingMethods'];\n    @Input() couponCodesControl: FormControl<string[] | null>;\n\n    get adjustedLines(): string[] {\n        return (this.modifyOrderInput.adjustOrderLines || [])\n            .map(l => {\n                const line = this.orderSnapshot.lines.find(line => line.id === l.orderLineId);\n                if (line) {\n                    const delta = l.quantity - line.quantity;\n                    const sign = delta === 0 ? '' : delta > 0 ? '+' : '-';\n                    return delta\n                        ? `${sign}${Math.abs(delta)} ${line.productVariant.name}`\n                        : line.productVariant.name;\n                }\n            })\n            .filter(notNullOrUndefined);\n    }\n\n    getModifiedFields(formGroup: FormGroup): string {\n        if (!formGroup.dirty) {\n            return '';\n        }\n        return Object.entries(formGroup.controls)\n            .map(([key, control]) => {\n                if (control.dirty) {\n                    return key;\n                }\n            })\n            .filter(notNullOrUndefined)\n            .join(', ');\n    }\n\n    getUpdatedShippingMethodLines() {\n        return Object.entries(this.updatedShippingMethods || {})\n            .map(([lineId, shippingMethod]) => {\n                const previousMethod = this.orderSnapshot.shippingLines.find(l => l.id === lineId);\n                if (!previousMethod) {\n                    return;\n                }\n                const previousName = previousMethod.shippingMethod.name || previousMethod.shippingMethod.code;\n                const newName = shippingMethod.name || shippingMethod.code;\n                return `${previousName} -> ${newName}`;\n            })\n            .filter(notNullOrUndefined);\n    }\n\n    get couponCodeChanges(): string[] {\n        const originalCodes = this.orderSnapshot.couponCodes || [];\n        const newCodes = this.couponCodesControl.value || [];\n        const addedCodes = newCodes.filter(c => !originalCodes.includes(c)).map(c => `+ ${c}`);\n        const removedCodes = originalCodes.filter(c => !newCodes.includes(c)).map(c => `- ${c}`);\n        return [...addedCodes, ...removedCodes];\n    }\n}\n","<vdr-labeled-data\n        *ngIf=\"modifyOrderInput.adjustOrderLines?.length\"\n        [label]=\"\n                    'order.modification-adjusting-lines'\n                        | translate : { count: modifyOrderInput.adjustOrderLines?.length }\n                \"\n>\n    <div *ngFor=\"let line of adjustedLines\" class=\"mb-1\">\n        {{ line }}\n    </div>\n</vdr-labeled-data>\n<vdr-labeled-data\n        *ngIf=\"modifyOrderInput.addItems?.length\"\n        [label]=\"\n                    'order.modification-adding-items'\n                        | translate : { count: modifyOrderInput.addItems?.length }\n                \"\n>\n    <div *ngFor=\"let item of addedLines\">\n        {{ item.productVariant.name }} x {{ item.quantity }}\n    </div>\n</vdr-labeled-data>\n<vdr-labeled-data\n        *ngIf=\"modifyOrderInput.surcharges?.length\"\n        [label]=\"\n                    'order.modification-adding-surcharges'\n                        | translate : { count: modifyOrderInput.surcharges?.length }\n                \"\n>\n    <div *ngFor=\"let surcharge of modifyOrderInput.surcharges\" class=\"mb-1\">\n        {{ surcharge.description }}: {{ surcharge.price | localeCurrency : orderSnapshot.currencyCode }}\n    </div>\n</vdr-labeled-data>\n<vdr-labeled-data\n        *ngIf=\"getModifiedFields(shippingAddressForm) as updatedShippingFields\"\n        [label]=\"'order.modification-updating-shipping-address' | translate\"\n>\n    {{ updatedShippingFields }}\n</vdr-labeled-data>\n<vdr-labeled-data\n        *ngIf=\"getModifiedFields(billingAddressForm) as updatedBillingFields\"\n        [label]=\"'order.modification-updating-billing-address' | translate\"\n>\n    {{ updatedBillingFields }}\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"couponCodeChanges.length\" [label]=\"'order.set-coupon-codes' | translate\">\n    <div *ngFor=\"let change of couponCodeChanges\" class=\"mb-1\">{{ change }}</div>\n</vdr-labeled-data>\n<ng-container *ngIf=\"getUpdatedShippingMethodLines() as updatedShippingMethods\">\n    <vdr-labeled-data *ngIf=\"updatedShippingMethods.length\" [label]=\"'order.shipping-method' | translate\">\n        <div *ngFor=\"let change of updatedShippingMethods\" class=\"mb-1\">{{ change }}</div>\n    </vdr-labeled-data>\n</ng-container>","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport {\n    AdministratorRefundInput,\n    CustomFieldConfig,\n    Dialog,\n    ModifyOrderInput,\n    OrderDetailFragment,\n} from '@vendure/admin-ui/core';\nimport { getRefundablePayments, RefundablePayment } from '../../common/get-refundable-payments';\nimport { AddedLine, OrderSnapshot } from '../../common/modify-order-types';\nimport { OrderEditorComponent } from '../order-editor/order-editor.component';\n\nexport enum OrderEditResultType {\n    Refund,\n    Payment,\n    PriceUnchanged,\n    Cancel,\n}\n\ninterface OrderEditsRefundResult {\n    result: OrderEditResultType.Refund;\n    refunds: AdministratorRefundInput[];\n}\ninterface OrderEditsPaymentResult {\n    result: OrderEditResultType.Payment;\n}\ninterface OrderEditsPriceUnchangedResult {\n    result: OrderEditResultType.PriceUnchanged;\n}\ninterface OrderEditsCancelResult {\n    result: OrderEditResultType.Cancel;\n}\ntype OrderEditResult =\n    | OrderEditsRefundResult\n    | OrderEditsPaymentResult\n    | OrderEditsPriceUnchangedResult\n    | OrderEditsCancelResult;\n\n@Component({\n    selector: 'vdr-order-edits-preview-dialog',\n    templateUrl: './order-edits-preview-dialog.component.html',\n    styleUrls: ['./order-edits-preview-dialog.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderEditsPreviewDialogComponent implements OnInit, Dialog<OrderEditResult> {\n    // Passed in via the modalService\n    orderLineCustomFields: CustomFieldConfig[];\n    order: OrderDetailFragment;\n    orderSnapshot: OrderSnapshot;\n    modifyOrderInput: ModifyOrderInput;\n    addedLines: AddedLine[];\n    shippingAddressForm: OrderEditorComponent['shippingAddressForm'];\n    billingAddressForm: OrderEditorComponent['billingAddressForm'];\n    updatedShippingMethods: OrderEditorComponent['updatedShippingMethods'];\n    couponCodesControl: FormControl<string[] | null>;\n\n    refundablePayments: RefundablePayment[];\n    refundNote: string;\n    resolveWith: (result?: OrderEditResult) => void;\n\n    get priceDifference(): number {\n        return this.order.totalWithTax - this.orderSnapshot.totalWithTax;\n    }\n\n    get amountToRefundTotal(): number {\n        return this.refundablePayments.reduce(\n            (total, payment) => total + payment.amountToRefundControl.value,\n            0,\n        );\n    }\n\n    ngOnInit() {\n        this.refundNote = this.modifyOrderInput.note || '';\n        this.refundablePayments = getRefundablePayments(this.order.payments || []);\n        this.refundablePayments.forEach(rp => {\n            rp.amountToRefundControl.addValidators(Validators.max(this.priceDifference * -1));\n        });\n        if (this.priceDifference < 0 && this.refundablePayments.length) {\n            this.onPaymentSelected(this.refundablePayments[0], true);\n        }\n    }\n\n    onPaymentSelected(payment: RefundablePayment, selected: boolean) {\n        if (selected) {\n            const outstandingRefundAmount =\n                this.priceDifference * -1 -\n                this.refundablePayments\n                    .filter(p => p.id !== payment.id)\n                    .reduce((total, p) => total + p.amountToRefundControl.value, 0);\n            if (0 < outstandingRefundAmount) {\n                payment.amountToRefundControl.setValue(\n                    Math.min(outstandingRefundAmount, payment.refundableAmount),\n                );\n            }\n        } else {\n            payment.amountToRefundControl.setValue(0);\n        }\n    }\n\n    refundsCoverDifference(): boolean {\n        return this.priceDifference * -1 === this.amountToRefundTotal;\n    }\n\n    cancel() {\n        this.resolveWith({\n            result: OrderEditResultType.Cancel,\n        });\n    }\n\n    submit() {\n        if (0 < this.priceDifference) {\n            this.resolveWith({\n                result: OrderEditResultType.Payment,\n            });\n        } else if (this.priceDifference < 0) {\n            this.resolveWith({\n                result: OrderEditResultType.Refund,\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                refunds: this.refundablePayments\n                    .filter(rp => rp.selected && 0 < rp.amountToRefundControl.value)\n                    .map(payment => {\n                        return {\n                            reason: this.refundNote || this.modifyOrderInput.note,\n                            paymentId: payment.id,\n                            amount: payment.amountToRefundControl.value,\n                        };\n                    }),\n            });\n        } else {\n            this.resolveWith({\n                result: OrderEditResultType.PriceUnchanged,\n            });\n        }\n    }\n}\n","<ng-template vdrDialogTitle>{{ 'order.confirm-modifications' | translate }}</ng-template>\n<vdr-order-table\n    [order]=\"order\"\n    [orderLineCustomFields]=\"orderLineCustomFields\"\n    class=\"order-edits-preview-table\"\n></vdr-order-table>\n<div class=\"payments-wrapper mb-2\">\n    <div class=\"flex-spacer\">\n        <vdr-payment-for-refund-selector\n            *ngIf=\"priceDifference < 0\"\n            class=\"\"\n            [refundablePayments]=\"refundablePayments\"\n            (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\n            [order]=\"order\"\n        ></vdr-payment-for-refund-selector>\n    </div>\n    <div class=\"flex-spacer\">\n        <vdr-card [title]=\"'order.modify-order' | translate\">\n            <vdr-order-modification-summary\n                [orderSnapshot]=\"orderSnapshot\"\n                [modifyOrderInput]=\"modifyOrderInput\"\n                [addedLines]=\"addedLines\"\n                [shippingAddressForm]=\"shippingAddressForm\"\n                [billingAddressForm]=\"billingAddressForm\"\n                [couponCodesControl]=\"couponCodesControl\"\n                [updatedShippingMethods]=\"updatedShippingMethods\"\n            ></vdr-order-modification-summary>\n            <vdr-labeled-data [label]=\"'order.note' | translate\">\n                {{ modifyOrderInput.note || '-' }}\n            </vdr-labeled-data>\n            <vdr-form-field\n                [label]=\"'order.refund-cancellation-reason' | translate\"\n                *ngIf=\"priceDifference < 0\"\n            >\n                <textarea [(ngModel)]=\"refundNote\" name=\"refundNote\" required></textarea>\n            </vdr-form-field>\n        </vdr-card>\n    </div>\n</div>\n<ng-template vdrDialogButtons>\n    <div>\n        <div class=\"errors\">\n            <clr-alert\n                class=\"mb-1\"\n                *ngIf=\"priceDifference < 0 && !refundsCoverDifference()\"\n                [clrAlertType]=\"'danger'\"\n                [clrAlertClosable]=\"false\"\n            >\n                <clr-alert-item>\n                    {{ 'order.refund-total-warning' | translate }}\n                </clr-alert-item>\n            </clr-alert>\n        </div>\n        <div class=\"modal-buttons\">\n            <clr-alert class=\"\" [clrAlertType]=\"'primary'\" [clrAlertClosable]=\"false\">\n                <clr-alert-item>\n                    {{ 'order.modify-order-price-difference' | translate }}\n                    {{ 0 < priceDifference ? '+' : ''\n                    }}{{ priceDifference | localeCurrency : order.currencyCode }}\n                </clr-alert-item>\n            </clr-alert>\n            <button type=\"button\" class=\"btn\" (click)=\"cancel()\">\n                {{ 'common.cancel' | translate }}\n            </button>\n            <button\n                type=\"submit\"\n                (click)=\"submit()\"\n                [disabled]=\"priceDifference < 0 ? !refundsCoverDifference() : false\"\n                class=\"btn btn-primary\"\n            >\n                {{ 'common.confirm' | translate }}\n            </button>\n        </div>\n    </div>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n    FormControl,\n    FormGroup,\n    UntypedFormArray,\n    UntypedFormControl,\n    UntypedFormGroup,\n    Validators,\n} from '@angular/forms';\nimport {\n    CustomFieldConfig,\n    DataService,\n    DraftOrderEligibleShippingMethodsQuery,\n    ErrorResult,\n    GetAvailableCountriesQuery,\n    HistoryEntryType,\n    LanguageCode,\n    ModalService,\n    ModifyOrderInput,\n    NotificationService,\n    OrderAddressFragment,\n    OrderDetailFragment,\n    OrderDetailQueryDocument,\n    SortOrder,\n    SurchargeInput,\n    transformRelationCustomFieldInputs,\n    TypedBaseDetailComponent,\n} from '@vendure/admin-ui/core';\nimport { assertNever, notNullOrUndefined } from '@vendure/common/lib/shared-utils';\nimport { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { map, mapTo, shareReplay, switchMap, take, takeUntil } from 'rxjs/operators';\nimport {\n    AddedLine,\n    ModifyOrderData,\n    OrderSnapshot,\n    ProductSelectorItem,\n} from '../../common/modify-order-types';\n\nimport { OrderTransitionService } from '../../providers/order-transition.service';\nimport {\n    OrderEditResultType,\n    OrderEditsPreviewDialogComponent,\n} from '../order-edits-preview-dialog/order-edits-preview-dialog.component';\nimport { SelectShippingMethodDialogComponent } from '../select-shipping-method-dialog/select-shipping-method-dialog.component';\n\n@Component({\n    selector: 'vdr-order-editor',\n    templateUrl: './order-editor.component.html',\n    styleUrls: ['./order-editor.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderEditorComponent\n    extends TypedBaseDetailComponent<typeof OrderDetailQueryDocument, 'order'>\n    implements OnInit, OnDestroy\n{\n    availableCountries$: Observable<GetAvailableCountriesQuery['countries']['items']>;\n    addressCustomFields: CustomFieldConfig[];\n    uiLanguage$: Observable<LanguageCode>;\n    detailForm = new UntypedFormGroup({});\n    couponCodesControl = new FormControl<string[]>([]);\n    orderLineCustomFieldsFormArray: UntypedFormArray;\n    addItemCustomFieldsFormArray: UntypedFormArray;\n    addItemCustomFieldsForm: UntypedFormGroup;\n    addItemSelectedVariant: ProductSelectorItem | undefined;\n    orderLineCustomFields: CustomFieldConfig[];\n    orderSnapshot: OrderSnapshot;\n    modifyOrderInput: ModifyOrderData = {\n        dryRun: true,\n        orderId: '',\n        addItems: [],\n        adjustOrderLines: [],\n        surcharges: [],\n        note: '',\n        refunds: [],\n        updateShippingAddress: {},\n        updateBillingAddress: {},\n    };\n    surchargeForm = new FormGroup({\n        description: new FormControl('', Validators.minLength(1)),\n        sku: new FormControl(''),\n        price: new FormControl(0),\n        priceIncludesTax: new FormControl(true),\n        taxRate: new FormControl(0),\n        taxDescription: new FormControl(''),\n    });\n    shippingAddressForm = new FormGroup({\n        fullName: new FormControl(''),\n        company: new FormControl(''),\n        streetLine1: new FormControl(''),\n        streetLine2: new FormControl(''),\n        city: new FormControl(''),\n        province: new FormControl(''),\n        postalCode: new FormControl(''),\n        countryCode: new FormControl(''),\n        phoneNumber: new FormControl(''),\n    });\n    billingAddressForm = new FormGroup({\n        fullName: new FormControl(''),\n        company: new FormControl(''),\n        streetLine1: new FormControl(''),\n        streetLine2: new FormControl(''),\n        city: new FormControl(''),\n        province: new FormControl(''),\n        postalCode: new FormControl(''),\n        countryCode: new FormControl(''),\n        phoneNumber: new FormControl(''),\n    });\n    note = '';\n    recalculateShipping = true;\n    previousState: string;\n    editingShippingAddress = false;\n    editingBillingAddress = false;\n    updatedShippingMethods: {\n        [\n            shippingLineId: string\n        ]: DraftOrderEligibleShippingMethodsQuery['eligibleShippingMethodsForDraftOrder'][number];\n    } = {};\n    private addedVariants = new Map<string, ProductSelectorItem>();\n\n    constructor(\n        protected dataService: DataService,\n        private notificationService: NotificationService,\n        private modalService: ModalService,\n        private orderTransitionService: OrderTransitionService,\n        private changeDetectorRef: ChangeDetectorRef,\n    ) {\n        super();\n    }\n\n    ngOnInit(): void {\n        this.init();\n        this.addressCustomFields = this.getCustomFieldConfig('Address');\n        this.modifyOrderInput.orderId = this.route.snapshot.paramMap.get('id') as string;\n        this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\n        this.entity$.pipe(take(1)).subscribe(order => {\n            this.orderSnapshot = this.createOrderSnapshot(order);\n            if (order.couponCodes.length) {\n                this.couponCodesControl.setValue(order.couponCodes);\n            }\n            this.surchargeForm.reset();\n            for (const [name, control] of Object.entries(this.shippingAddressForm.controls)) {\n                control.setValue(order.shippingAddress?.[name]);\n            }\n            this.addAddressCustomFieldsFormGroup(this.shippingAddressForm, order.shippingAddress);\n            for (const [name, control] of Object.entries(this.billingAddressForm.controls)) {\n                control.setValue(order.billingAddress?.[name]);\n            }\n            this.addAddressCustomFieldsFormGroup(this.billingAddressForm, order.billingAddress);\n            this.orderLineCustomFieldsFormArray = new UntypedFormArray([]);\n            for (const line of order.lines) {\n                const formGroup = new UntypedFormGroup({});\n                for (const { name } of this.orderLineCustomFields) {\n                    formGroup.addControl(name, new UntypedFormControl((line as any).customFields[name]));\n                }\n                formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n                    let modifyRow = this.modifyOrderInput.adjustOrderLines.find(\n                        l => l.orderLineId === line.id,\n                    );\n                    if (!modifyRow) {\n                        modifyRow = {\n                            orderLineId: line.id,\n                            quantity: line.quantity,\n                        };\n                        this.modifyOrderInput.adjustOrderLines.push(modifyRow);\n                    }\n                    if (this.orderLineCustomFields.length) {\n                        modifyRow.customFields = value;\n                    }\n                });\n                this.orderLineCustomFieldsFormArray.push(formGroup);\n            }\n        });\n\n        this.addItemCustomFieldsFormArray = new UntypedFormArray([]);\n        this.addItemCustomFieldsForm = new UntypedFormGroup({});\n        for (const customField of this.orderLineCustomFields) {\n            this.addItemCustomFieldsForm.addControl(customField.name, new UntypedFormControl());\n        }\n        this.availableCountries$ = this.dataService.settings\n            .getAvailableCountries()\n            .mapSingle(result => result.countries.items)\n            .pipe(shareReplay(1));\n        this.dataService.order\n            .getOrderHistory(this.id, {\n                take: 1,\n                sort: {\n                    createdAt: SortOrder.DESC,\n                },\n                filter: { type: { eq: HistoryEntryType.ORDER_STATE_TRANSITION } },\n            })\n            .single$.subscribe(({ order }) => {\n                this.previousState = order?.history.items[0].data.from;\n            });\n        this.uiLanguage$ = this.dataService.client\n            .uiState()\n            .stream$.pipe(map(({ uiState }) => uiState.language));\n    }\n\n    ngOnDestroy(): void {\n        this.destroy();\n    }\n\n    get addedLines(): AddedLine[] {\n        const getSinglePriceValue = (price: ProductSelectorItem['price']) =>\n            price.__typename === 'SinglePrice' ? price.value : 0;\n        return (this.modifyOrderInput.addItems || [])\n            .map(row => {\n                const variantInfo = this.addedVariants.get(row.productVariantId);\n                if (variantInfo) {\n                    return {\n                        id: this.getIdForAddedItem(row),\n                        featuredAsset: variantInfo.productAsset,\n                        productVariant: {\n                            id: variantInfo.productVariantId,\n                            name: variantInfo.productVariantName,\n                            sku: variantInfo.sku,\n                        },\n                        unitPrice: getSinglePriceValue(variantInfo.price),\n                        unitPriceWithTax: getSinglePriceValue(variantInfo.priceWithTax),\n                        quantity: row.quantity,\n                    };\n                }\n            })\n            .filter(notNullOrUndefined);\n    }\n\n    private getIdForAddedItem(row: ModifyOrderData['addItems'][number]) {\n        return `added-${row.productVariantId}-${JSON.stringify(row.customFields || {})}`;\n    }\n\n    transitionToPriorState(order: OrderDetailFragment) {\n        this.orderTransitionService\n            .transitionToPreModifyingState(order.id, order.nextStates)\n            .subscribe(result => {\n                this.router.navigate(['..'], { relativeTo: this.route });\n            });\n    }\n\n    hasModifications(): boolean {\n        const { addItems, adjustOrderLines, surcharges } = this.modifyOrderInput;\n        return (\n            !!addItems?.length ||\n            !!surcharges?.length ||\n            !!adjustOrderLines?.length ||\n            (this.shippingAddressForm.dirty && this.shippingAddressForm.valid) ||\n            (this.billingAddressForm.dirty && this.billingAddressForm.valid) ||\n            this.couponCodesControl.dirty ||\n            Object.entries(this.updatedShippingMethods).length > 0\n        );\n    }\n\n    isLineModified(line: OrderDetailFragment['lines'][number]): boolean {\n        return !!this.modifyOrderInput.adjustOrderLines?.find(\n            l => l.orderLineId === line.id && l.quantity !== line.quantity,\n        );\n    }\n\n    getInitialLineQuantity(lineId: string): number {\n        const adjustedLine = this.modifyOrderInput.adjustOrderLines?.find(l => l.orderLineId === lineId);\n        if (adjustedLine) {\n            return adjustedLine.quantity;\n        }\n        const addedLine = this.modifyOrderInput.addItems?.find(l => this.getIdForAddedItem(l) === lineId);\n        if (addedLine) {\n            return addedLine.quantity ?? 1;\n        }\n        const line = this.orderSnapshot.lines.find(l => l.id === lineId);\n        return line ? line.quantity : 1;\n    }\n\n    updateLineQuantity(line: OrderDetailFragment['lines'][number] | AddedLine, quantity: string) {\n        const { adjustOrderLines } = this.modifyOrderInput;\n        if (this.isAddedLine(line)) {\n            const row = this.modifyOrderInput.addItems?.find(\n                l => l.productVariantId === line.productVariant.id,\n            );\n            if (row) {\n                row.quantity = +quantity;\n            }\n        } else {\n            let row = adjustOrderLines?.find(l => l.orderLineId === line.id);\n            if (row && +quantity === line.quantity) {\n                // Remove the modification if the quantity is the same as\n                // the original order\n                adjustOrderLines?.splice(adjustOrderLines?.indexOf(row), 1);\n            }\n            if (!row) {\n                row = { orderLineId: line.id, quantity: +quantity };\n                adjustOrderLines?.push(row);\n            }\n            row.quantity = +quantity;\n        }\n    }\n\n    isAddedLine(line: OrderDetailFragment['lines'][number] | AddedLine): line is AddedLine {\n        return (line as AddedLine).id.startsWith('added-');\n    }\n\n    updateAddedItemQuantity(item: AddedLine, quantity: string) {\n        const row = this.modifyOrderInput.addItems?.find(l => l.productVariantId === item.productVariant.id);\n        if (row) {\n            row.quantity = +quantity;\n        }\n    }\n\n    trackByProductVariantId(index: number, item: AddedLine) {\n        return item.productVariant.id;\n    }\n\n    getSelectedItemPrice(result: ProductSelectorItem | undefined): number {\n        switch (result?.priceWithTax.__typename) {\n            case 'SinglePrice':\n                return result.priceWithTax.value;\n            default:\n                return 0;\n        }\n    }\n\n    addItemToOrder(result: ProductSelectorItem | undefined) {\n        if (!result) {\n            return;\n        }\n        const customFields = this.orderLineCustomFields.length\n            ? this.addItemCustomFieldsForm.value\n            : undefined;\n        let row = this.modifyOrderInput.addItems?.find(l =>\n            this.isMatchingAddItemRow(l, result, customFields),\n        );\n        if (!row) {\n            row = { productVariantId: result.productVariantId, quantity: 1 };\n            if (customFields) {\n                row.customFields = customFields;\n            }\n            this.modifyOrderInput.addItems?.push(row);\n        } else {\n            row.quantity++;\n        }\n        if (customFields) {\n            const formGroup = new UntypedFormGroup({});\n            for (const [key, value] of Object.entries(customFields)) {\n                formGroup.addControl(key, new UntypedFormControl(value));\n            }\n            this.addItemCustomFieldsFormArray.push(formGroup);\n            formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n                if (row) {\n                    row.customFields = value;\n                }\n            });\n        }\n        this.addItemCustomFieldsForm.reset({});\n        this.addItemSelectedVariant = undefined;\n        this.addedVariants.set(result.productVariantId, result);\n    }\n\n    getShippingLineDetails(shippingLine: OrderDetailFragment['shippingLines'][number]): {\n        name: string;\n        price: number;\n    } {\n        const updatedMethod = this.updatedShippingMethods[shippingLine.id];\n        if (updatedMethod) {\n            return {\n                name: updatedMethod.name || updatedMethod.code,\n                price: updatedMethod.priceWithTax,\n            };\n        } else {\n            return {\n                name: shippingLine.shippingMethod.name || shippingLine.shippingMethod.code,\n                price: shippingLine.discountedPriceWithTax,\n            };\n        }\n    }\n\n    setShippingMethod(shippingLineId: string) {\n        const currentShippingMethod =\n            this.updatedShippingMethods[shippingLineId] ??\n            this.entity?.shippingLines.find(l => l.id === shippingLineId)?.shippingMethod;\n        if (!currentShippingMethod) {\n            return;\n        }\n        this.dataService.order\n            .getDraftOrderEligibleShippingMethods(this.id)\n            .mapSingle(({ eligibleShippingMethodsForDraftOrder }) => eligibleShippingMethodsForDraftOrder)\n            .pipe(\n                switchMap(methods =>\n                    this.modalService\n                        .fromComponent(SelectShippingMethodDialogComponent, {\n                            locals: {\n                                eligibleShippingMethods: methods,\n                                currencyCode: this.entity?.currencyCode,\n                                currentSelectionId: currentShippingMethod.id,\n                            },\n                        })\n                        .pipe(\n                            map(result => {\n                                if (result) {\n                                    return methods.find(method => method.id === result);\n                                }\n                            }),\n                        ),\n                ),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.updatedShippingMethods[shippingLineId] = result;\n                    this.changeDetectorRef.markForCheck();\n                }\n            });\n    }\n\n    private isMatchingAddItemRow(\n        row: ModifyOrderData['addItems'][number],\n        result: ProductSelectorItem,\n        customFields: any,\n    ): boolean {\n        return (\n            row.productVariantId === result.productVariantId &&\n            JSON.stringify(row.customFields) === JSON.stringify(customFields)\n        );\n    }\n\n    removeAddedItem(id: string) {\n        this.modifyOrderInput.addItems = this.modifyOrderInput.addItems?.filter(l => {\n            const itemId = this.getIdForAddedItem(l);\n            return itemId !== id;\n        });\n    }\n\n    getSurchargePrices(surcharge: SurchargeInput) {\n        const priceWithTax = surcharge.priceIncludesTax\n            ? surcharge.price\n            : Math.round(surcharge.price * ((100 + (surcharge.taxRate || 0)) / 100));\n        const price = surcharge.priceIncludesTax\n            ? Math.round(surcharge.price / ((100 + (surcharge.taxRate || 0)) / 100))\n            : surcharge.price;\n        return {\n            price,\n            priceWithTax,\n        };\n    }\n\n    addSurcharge(value: any) {\n        this.modifyOrderInput.surcharges?.push(value);\n        this.surchargeForm.reset({\n            price: 0,\n            priceIncludesTax: true,\n            taxRate: 0,\n        });\n    }\n\n    removeSurcharge(index: number) {\n        this.modifyOrderInput.surcharges?.splice(index, 1);\n    }\n\n    previewAndModify(order: OrderDetailFragment) {\n        const modifyOrderInput: ModifyOrderData = {\n            ...this.modifyOrderInput,\n            adjustOrderLines: this.modifyOrderInput.adjustOrderLines.map(line =>\n                transformRelationCustomFieldInputs(simpleDeepClone(line), this.orderLineCustomFields),\n            ),\n        };\n        const input: ModifyOrderInput = {\n            ...modifyOrderInput,\n            ...(this.billingAddressForm.dirty ? { updateBillingAddress: this.billingAddressForm.value } : {}),\n            ...(this.shippingAddressForm.dirty\n                ? { updateShippingAddress: this.shippingAddressForm.value }\n                : {}),\n            dryRun: true,\n            couponCodes: this.couponCodesControl.dirty ? this.couponCodesControl.value : undefined,\n            note: this.note ?? '',\n            options: {\n                recalculateShipping: this.recalculateShipping,\n            },\n        };\n        if (Object.entries(this.updatedShippingMethods).length) {\n            input.shippingMethodIds = order.shippingLines.map(l =>\n                this.updatedShippingMethods[l.id]\n                    ? this.updatedShippingMethods[l.id].id\n                    : l.shippingMethod.id,\n            );\n        }\n        this.dataService.order\n            .modifyOrder(input)\n            .pipe(\n                switchMap(({ modifyOrder }) => {\n                    switch (modifyOrder.__typename) {\n                        case 'Order':\n                            return this.modalService.fromComponent(OrderEditsPreviewDialogComponent, {\n                                size: 'xl',\n                                closable: false,\n                                locals: {\n                                    order: modifyOrder,\n                                    orderSnapshot: this.orderSnapshot,\n                                    orderLineCustomFields: this.orderLineCustomFields,\n                                    modifyOrderInput: input,\n                                    addedLines: this.addedLines,\n                                    shippingAddressForm: this.shippingAddressForm,\n                                    billingAddressForm: this.billingAddressForm,\n                                    couponCodesControl: this.couponCodesControl,\n                                    updatedShippingMethods: this.updatedShippingMethods,\n                                },\n                            });\n                        case 'InsufficientStockError':\n                        case 'NegativeQuantityError':\n                        case 'NoChangesSpecifiedError':\n                        case 'OrderLimitError':\n                        case 'OrderModificationStateError':\n                        case 'PaymentMethodMissingError':\n                        case 'RefundPaymentIdMissingError':\n                        case 'CouponCodeLimitError':\n                        case 'CouponCodeExpiredError':\n                        case 'IneligibleShippingMethodError':\n                        case 'CouponCodeInvalidError': {\n                            this.notificationService.error(modifyOrder.message);\n                            return of(false as const);\n                        }\n                        case null:\n                        case undefined:\n                            return of(false as const);\n                        default:\n                            assertNever(modifyOrder);\n                    }\n                }),\n                switchMap(result => {\n                    if (!result || result.result === OrderEditResultType.Cancel) {\n                        // re-fetch so that the preview values get overwritten in the cache.\n                        return this.dataService.order.getOrder(this.id).mapSingle(() => false);\n                    } else {\n                        // Do the modification\n                        const wetRunInput = {\n                            ...input,\n                            dryRun: false,\n                        };\n                        if (result.result === OrderEditResultType.Refund) {\n                            wetRunInput.refunds = result.refunds;\n                        }\n                        return this.dataService.order.modifyOrder(wetRunInput).pipe(\n                            switchMap(({ modifyOrder }) => {\n                                if (modifyOrder.__typename === 'Order') {\n                                    const priceDelta =\n                                        modifyOrder.totalWithTax - this.orderSnapshot.totalWithTax;\n                                    const nextState =\n                                        0 < priceDelta ? 'ArrangingAdditionalPayment' : this.previousState;\n\n                                    return this.dataService.order\n                                        .transitionToState(order.id, nextState)\n                                        .pipe(mapTo(true));\n                                } else {\n                                    this.notificationService.error((modifyOrder as ErrorResult).message);\n                                    return EMPTY;\n                                }\n                            }),\n                        );\n                    }\n                }),\n            )\n            .subscribe(result => {\n                if (result) {\n                    this.router.navigate(['../'], { relativeTo: this.route });\n                }\n            });\n    }\n\n    private addAddressCustomFieldsFormGroup(\n        parentFormGroup: UntypedFormGroup,\n        address?: OrderAddressFragment | null,\n    ) {\n        if (address && this.addressCustomFields.length) {\n            const addressCustomFieldsFormGroup = new UntypedFormGroup({});\n            for (const customFieldDef of this.addressCustomFields) {\n                const name = customFieldDef.name;\n                const value = (address as any).customFields?.[name];\n                addressCustomFieldsFormGroup.addControl(name, new UntypedFormControl(value));\n            }\n            parentFormGroup.addControl('customFields', addressCustomFieldsFormGroup);\n        }\n    }\n\n    private createOrderSnapshot(order: OrderDetailFragment): OrderSnapshot {\n        return {\n            totalWithTax: order.totalWithTax,\n            currencyCode: order.currencyCode,\n            couponCodes: order.couponCodes,\n            lines: [...order.lines].map(line => ({ ...line })),\n            shippingLines: [...order.shippingLines].map(line => ({ ...line })),\n        };\n    }\n\n    protected setFormValues(entity: OrderDetailFragment, languageCode: LanguageCode): void {\n        /* not used */\n    }\n}\n","<vdr-page-block>\n    <vdr-action-bar *ngIf=\"entity$ | async as order\">\n        <vdr-ab-left>\n            <div class=\"flex clr-align-items-center\"></div>\n        </vdr-ab-left>\n\n        <vdr-ab-right>\n            <button class=\"btn btn-secondary\" (click)=\"transitionToPriorState(order)\">\n                {{ 'order.cancel-modification' | translate }}\n            </button>\n        </vdr-ab-right>\n    </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-page-detail-layout *ngIf=\"entity as order\">\n    <vdr-page-detail-sidebar>\n        <vdr-card [title]=\"'order.modification-summary' | translate\">\n            <vdr-order-modification-summary\n                [orderSnapshot]=\"orderSnapshot\"\n                [modifyOrderInput]=\"modifyOrderInput\"\n                [addedLines]=\"addedLines\"\n                [shippingAddressForm]=\"shippingAddressForm\"\n                [billingAddressForm]=\"billingAddressForm\"\n                [couponCodesControl]=\"couponCodesControl\"\n                [updatedShippingMethods]=\"updatedShippingMethods\"\n            ></vdr-order-modification-summary>\n\n            <div *ngIf=\"!hasModifications()\" class=\"no-modifications\">\n                {{ 'order.no-modifications-made' | translate }}\n            </div>\n\n            <div class=\"summary-controls\">\n                <vdr-form-field [label]=\"'order.note' | translate\">\n                    <textarea\n                        [(ngModel)]=\"note\"\n                        name=\"note\"\n                        required\n                        [disabled]=\"!hasModifications()\"\n                    ></textarea>\n                </vdr-form-field>\n                <label class=\"flex items-center\">\n                    <input\n                        type=\"checkbox\"\n                        [(ngModel)]=\"recalculateShipping\"\n                        [disabled]=\"!hasModifications()\"\n                    />\n                    <div class=\"ml-1\">{{ 'order.modification-recalculate-shipping' | translate }}</div>\n                </label>\n                <button\n                    class=\"btn btn-primary mt-2\"\n                    [disabled]=\"!hasModifications()\"\n                    (click)=\"previewAndModify(order)\"\n                >\n                    {{ 'order.preview-changes' | translate }}\n                </button>\n            </div>\n        </vdr-card>\n        <vdr-card [title]=\"'order.set-coupon-codes' | translate\">\n            <vdr-coupon-code-selector [control]=\"couponCodesControl\"></vdr-coupon-code-selector>\n        </vdr-card>\n        <vdr-card [title]=\"'order.shipping-address' | translate\">\n            <ng-template vdrCardControls>\n                <button\n                    class=\"button-small\"\n                    [title]=\"'order.edit-shipping-address' | translate\"\n                    (click)=\"editingShippingAddress = !editingShippingAddress\"\n                >\n                    <clr-icon shape=\"edit\"></clr-icon>\n                </button>\n            </ng-template>\n            <vdr-formatted-address\n                *ngIf=\"!editingShippingAddress\"\n                [address]=\"shippingAddressForm.value\"\n            ></vdr-formatted-address>\n            <vdr-address-form\n                *ngIf=\"editingShippingAddress\"\n                [formGroup]=\"shippingAddressForm\"\n                [availableCountries]=\"availableCountries$ | async\"\n                [customFields]=\"addressCustomFields\"\n            ></vdr-address-form>\n        </vdr-card>\n        <vdr-card [title]=\"'order.billing-address' | translate\">\n            <ng-template vdrCardControls>\n                <button\n                    class=\"button-small\"\n                    [title]=\"'order.edit-billing-address' | translate\"\n                    (click)=\"editingBillingAddress = !editingBillingAddress\"\n                >\n                    <clr-icon shape=\"edit\"></clr-icon>\n                </button>\n            </ng-template>\n            <vdr-formatted-address\n                *ngIf=\"!editingBillingAddress\"\n                [address]=\"billingAddressForm.value\"\n            ></vdr-formatted-address>\n            <vdr-address-form\n                *ngIf=\"editingBillingAddress\"\n                [formGroup]=\"billingAddressForm\"\n                [availableCountries]=\"availableCountries$ | async\"\n                [customFields]=\"addressCustomFields\"\n            ></vdr-address-form>\n        </vdr-card>\n    </vdr-page-detail-sidebar>\n\n    <vdr-page-block>\n        <vdr-card [paddingX]=\"false\">\n            <vdr-data-table-2 id=\"modify-order\" class=\"order-table\" [items]=\"order.lines.concat(addedLines)\">\n                <!-- Here we define all the available columns -->\n                <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\n                    <ng-template let-line=\"item\">\n                        {{ line.id }}\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column\n                    id=\"created-at\"\n                    [heading]=\"'common.created-at' | translate\"\n                    [hiddenByDefault]=\"true\"\n                >\n                    <ng-template let-line=\"item\">\n                        {{ line.createdAt | localeDate : 'short' }}\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column\n                    id=\"updated-at\"\n                    [heading]=\"'common.updated-at' | translate\"\n                    [hiddenByDefault]=\"true\"\n                >\n                    <ng-template let-line=\"item\">\n                        {{ line.updatedAt | localeDate : 'short' }}\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\n                    <ng-template let-line=\"item\">\n                        <div class=\"image-placeholder\">\n                            <img\n                                *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\n                                [src]=\"asset | assetPreview : 'tiny'\"\n                            />\n                            <ng-template #imagePlaceholder>\n                                <div class=\"placeholder\">\n                                    <clr-icon shape=\"image\" size=\"48\"></clr-icon>\n                                </div>\n                            </ng-template>\n                        </div>\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column\n                    id=\"product-name\"\n                    [heading]=\"'order.product-name' | translate\"\n                    [optional]=\"false\"\n                >\n                    <ng-template let-line=\"item\">\n                        {{ line.productVariant.name }}\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\n                    <ng-template let-line=\"item\">\n                        {{ line.productVariant.sku }}\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\">\n                    <ng-template let-line=\"item\">\n                        <div class=\"text-center\">\n                            <div>{{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}</div>\n                            <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\n                                {{ line.unitPrice | localeCurrency : order.currencyCode }}\n                            </div>\n                        </div>\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\" [optional]=\"false\">\n                    <ng-template let-line=\"item\">\n                        <input\n                            type=\"number\"\n                            class=\"draft-qty mr-1\"\n                            min=\"0\"\n                            [value]=\"getInitialLineQuantity(line.id)\"\n                            (input)=\"updateLineQuantity(line, $event.target.value)\"\n                        />\n                        <button\n                            class=\"button-small\"\n                            *ngIf=\"isAddedLine(line)\"\n                            (click)=\"removeAddedItem(line.id)\"\n                        >\n                            <clr-icon shape=\"trash\"></clr-icon>\n                        </button>\n                        <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\n                        <vdr-line-fulfillment\n                            [line]=\"line\"\n                            [allOrderFulfillments]=\"order.fulfillments\"\n                            [orderState]=\"order.state\"\n                        ></vdr-line-fulfillment>\n                    </ng-template>\n                </vdr-dt2-column>\n                <vdr-dt2-column\n                    *ngFor=\"let customField of orderLineCustomFields\"\n                    [id]=\"customField.name\"\n                    [heading]=\"customField | customFieldLabel : (uiLanguage$ | async)\"\n                    [hiddenByDefault]=\"true\"\n                >\n                    <ng-template let-line=\"item\" let-index=\"index\">\n                        <vdr-custom-field-control\n                            [compact]=\"true\"\n                            [entityName]=\"'OrderLine'\"\n                            [customField]=\"customField\"\n                            [customFieldsFormGroup]=\"orderLineCustomFieldsFormArray.at(index)\"\n                        />\n                    </ng-template>\n                </vdr-dt2-column>\n            </vdr-data-table-2>\n        </vdr-card>\n        <vdr-card [title]=\"'order.add-item-to-order' | translate\">\n            <vdr-product-variant-selector class=\"mb-4\" (productSelected)=\"addItemSelectedVariant = $event\">\n            </vdr-product-variant-selector>\n            <div class=\"flex\">\n                <div>\n                    <div *ngIf=\"addItemSelectedVariant\" class=\"flex mb-4\">\n                        <img\n                            *ngIf=\"addItemSelectedVariant.productAsset as asset\"\n                            [src]=\"asset | assetPreview : 'tiny'\"\n                            class=\"mr-4 add-item-thumb\"\n                        />\n                        <div>\n                            <strong class=\"mr-4\">{{ addItemSelectedVariant.productVariantName }}</strong>\n                            <small>{{ addItemSelectedVariant.sku }}</small>\n                            <div>\n                                {{\n                                    getSelectedItemPrice(addItemSelectedVariant)\n                                        | localeCurrency : order.currencyCode\n                                }}\n                            </div>\n                        </div>\n                    </div>\n                    <div *ngIf=\"addItemSelectedVariant\">\n                        <vdr-tabbed-custom-fields\n                            entityName=\"Order\"\n                            [customFields]=\"orderLineCustomFields\"\n                            [customFieldsFormGroup]=\"addItemCustomFieldsForm\"\n                        ></vdr-tabbed-custom-fields>\n                    </div>\n                </div>\n                <div class=\"flex-spacer\"></div>\n                <div>\n                    <button\n                        *ngIf=\"addItemSelectedVariant\"\n                        class=\"btn btn-secondary\"\n                        [disabled]=\"!addItemSelectedVariant || addItemCustomFieldsForm.invalid\"\n                        (click)=\"addItemToOrder(addItemSelectedVariant)\"\n                    >\n                        {{ 'order.add-item-to-order' | translate }}\n                    </button>\n                </div>\n            </div>\n        </vdr-card>\n        <vdr-card [title]=\"'order.shipping' | translate\">\n            <div *ngFor=\"let shippingLine of order.shippingLines\" class=\"flex items-center\">\n                <ng-container *ngIf=\"getShippingLineDetails(shippingLine) as details\">\n                    <div>{{ details.name }}:</div>\n                    <div class=\"mx-1\">\n                        {{ details.price | localeCurrency : order.currencyCode }}\n                    </div>\n                    <button class=\"button-small\" (click)=\"setShippingMethod(shippingLine.id)\">\n                        {{ 'order.set-shipping-method' | translate }}\n                    </button>\n                </ng-container>\n            </div>\n        </vdr-card>\n        <vdr-card [title]=\"'order.add-surcharge' | translate\">\n            <form [formGroup]=\"surchargeForm\" (submit)=\"addSurcharge(surchargeForm.value)\">\n                <div class=\"form-grid\">\n                    <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\"\n                        ><input id=\"description\" type=\"text\" formControlName=\"description\"\n                    /></vdr-form-field>\n                    <vdr-form-field [label]=\"'order.product-sku' | translate\" for=\"sku\"\n                        ><input id=\"sku\" type=\"text\" formControlName=\"sku\"\n                    /></vdr-form-field>\n                    <vdr-form-field [label]=\"'common.price' | translate\" for=\"price\">\n                        <vdr-currency-input\n                            [currencyCode]=\"order.currencyCode\"\n                            id=\"price\"\n                            formControlName=\"price\"\n                        ></vdr-currency-input>\n                    </vdr-form-field>\n                    <vdr-form-field\n                        [label]=\"\n                            'catalog.price-includes-tax-at'\n                                | translate : { rate: surchargeForm.get('taxRate')?.value ?? 0 }\n                        \"\n                        for=\"priceIncludesTax\"\n                        ><input\n                            id=\"priceIncludesTax\"\n                            type=\"checkbox\"\n                            clrCheckbox\n                            formControlName=\"priceIncludesTax\"\n                    /></vdr-form-field>\n                    <vdr-form-field [label]=\"'order.tax-rate' | translate\" for=\"taxRate\">\n                        <vdr-affixed-input suffix=\"%\"\n                            ><input id=\"taxRate\" type=\"number\" min=\"0\" max=\"100\" formControlName=\"taxRate\"\n                        /></vdr-affixed-input>\n                    </vdr-form-field>\n                    <vdr-form-field [label]=\"'order.tax-description' | translate\" for=\"taxDescription\"\n                        ><input id=\"taxDescription\" type=\"text\" formControlName=\"taxDescription\"\n                    /></vdr-form-field>\n                </div>\n                <button\n                    class=\"btn btn-secondary mt-2\"\n                    [disabled]=\"\n                        surchargeForm.invalid ||\n                        surchargeForm.pristine ||\n                        surchargeForm.get('price')?.value === 0 ||\n                        !surchargeForm.get('description')?.value\n                    \"\n                >\n                    {{ 'order.add-surcharge' | translate }}\n                </button>\n            </form>\n        </vdr-card>\n    </vdr-page-block>\n</vdr-page-detail-layout>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    ChannelService,\n    GetOrderListDocument,\n    getOrderStateTranslationToken,\n    LogicalOperator,\n    OrderListOptions,\n    OrderType,\n    ServerConfigService,\n    TypedBaseListComponent,\n} from '@vendure/admin-ui/core';\nimport { Order } from '@vendure/common/lib/generated-types';\nimport { tap } from 'rxjs/operators';\n\n@Component({\n    selector: 'vdr-order-list',\n    templateUrl: './order-list.component.html',\n    styleUrls: ['./order-list.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class OrderListComponent\n    extends TypedBaseListComponent<typeof GetOrderListDocument, 'orders'>\n    implements OnInit\n{\n    dataTableListId = 'order-list';\n    orderStates = this.serverConfigService.getOrderProcessStates().map(item => item.name);\n    readonly OrderType = OrderType;\n    readonly customFields = this.getCustomFieldConfig('Order');\n    readonly filters = this.createFilterCollection()\n        .addIdFilter()\n        .addDateFilters()\n        .addFilter({\n            name: 'active',\n            type: { kind: 'boolean' },\n            label: _('order.filter-is-active'),\n            filterField: 'active',\n        })\n        .addFilter({\n            name: 'totalWithTax',\n            type: { kind: 'number', inputType: 'currency', currencyCode: 'USD' },\n            label: _('order.total'),\n            filterField: 'totalWithTax',\n        })\n        .addFilter({\n            name: 'state',\n            type: {\n                kind: 'select',\n                options: this.orderStates.map(s => ({ value: s, label: getOrderStateTranslationToken(s) })),\n            },\n            label: _('order.state'),\n            filterField: 'state',\n        })\n        .addFilter({\n            name: 'type',\n            type: {\n                kind: 'select',\n                options: [\n                    { value: OrderType.Regular, label: _('order.order-type-regular') },\n                    { value: OrderType.Aggregate, label: _('order.order-type-aggregate') },\n                    { value: OrderType.Seller, label: _('order.order-type-seller') },\n                ],\n            },\n            label: _('order.order-type'),\n            filterField: 'type',\n        })\n        .addFilter({\n            name: 'orderPlacedAt',\n            type: { kind: 'dateRange' },\n            label: _('order.placed-at'),\n            filterField: 'orderPlacedAt',\n        })\n        .addFilter({\n            name: 'customerLastName',\n            type: { kind: 'text' },\n            label: _('customer.last-name'),\n            filterField: 'customerLastName',\n        })\n        .addFilter({\n            name: 'transactionId',\n            type: { kind: 'text' },\n            label: _('order.transaction-id'),\n            filterField: 'transactionId',\n        })\n        .addCustomFieldFilters(this.customFields)\n        .connectToRoute(this.route);\n\n    readonly sorts = this.createSortCollection()\n        .defaultSort('updatedAt', 'DESC')\n        .addSort({ name: 'id' })\n        .addSort({ name: 'createdAt' })\n        .addSort({ name: 'updatedAt' })\n        .addSort({ name: 'orderPlacedAt' })\n        .addSort({ name: 'customerLastName' })\n        .addSort({ name: 'state' })\n        .addSort({ name: 'totalWithTax' })\n        .addCustomFieldSorts(this.customFields)\n        .connectToRoute(this.route);\n\n    canCreateDraftOrder = false;\n    private activeChannelIsDefaultChannel = false;\n\n    constructor(\n        protected serverConfigService: ServerConfigService,\n        private channelService: ChannelService,\n    ) {\n        super();\n        super.configure({\n            document: GetOrderListDocument,\n            getItems: result => result.orders,\n            setVariables: (skip, take) => this.createQueryOptions(skip, take, this.searchTermControl.value),\n            refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],\n        });\n\n        this.canCreateDraftOrder = !!this.serverConfigService\n            .getOrderProcessStates()\n            .find(state => state.name === 'Created')\n            ?.to.includes('Draft');\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        const isDefaultChannel$ = this.channelService.defaultChannelIsActive$.pipe(\n            tap(isDefault => (this.activeChannelIsDefaultChannel = isDefault)),\n        );\n        super.refreshListOnChanges(this.filters.valueChanges, this.sorts.valueChanges, isDefaultChannel$);\n    }\n\n    private createQueryOptions(\n        // eslint-disable-next-line @typescript-eslint/no-shadow\n        skip: number,\n        take: number,\n        searchTerm: string | null,\n    ): { options: OrderListOptions } {\n        let filterInput = this.filters.createFilterInput();\n        if (this.activeChannelIsDefaultChannel) {\n            filterInput = {\n                ...(filterInput ?? {}),\n            };\n        }\n        if (searchTerm) {\n            filterInput = {\n                code: {\n                    contains: searchTerm,\n                },\n                customerLastName: {\n                    contains: searchTerm,\n                },\n                transactionId: {\n                    contains: searchTerm,\n                },\n            };\n        }\n        return {\n            options: {\n                skip,\n                take,\n                filter: {\n                    ...(filterInput ?? {}),\n                },\n                filterOperator: searchTerm ? LogicalOperator.OR : LogicalOperator.AND,\n                sort: this.sorts.createSortInput(),\n            },\n        };\n    }\n\n    getShippingNames(order: Order) {\n        if (order.shippingLines.length) {\n            return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\n        } else {\n            return '';\n        }\n    }\n}\n","<vdr-page-block>\n    <vdr-action-bar>\n        <vdr-ab-right>\n            <vdr-action-bar-items locationId=\"order-list\" />\n            <ng-container *ngIf=\"canCreateDraftOrder\">\n                <a class=\"btn\" *vdrIfPermissions=\"['CreateOrder']\" [routerLink]=\"['./draft/create']\">\n                    <clr-icon shape=\"plus\"></clr-icon>\n                    {{ 'catalog.create-draft-order' | translate }}\n                </a>\n            </ng-container>\n            <vdr-action-bar-dropdown-menu locationId=\"order-list\" />\n        </vdr-ab-right>\n    </vdr-action-bar>\n</vdr-page-block>\n<vdr-data-table-2\n    class=\"mt-2\"\n    [id]=\"dataTableListId\"\n    [items]=\"items$ | async\"\n    [itemsPerPage]=\"itemsPerPage$ | async\"\n    [totalItems]=\"totalItems$ | async\"\n    [currentPage]=\"currentPage$ | async\"\n    [filters]=\"filters\"\n    (pageChange)=\"setPageNumber($event)\"\n    (itemsPerPageChange)=\"setItemsPerPage($event)\"\n    (visibleColumnsChange)=\"setVisibleColumns($event)\"\n>\n    <vdr-bulk-action-menu\n        locationId=\"order-list\"\n        [hostComponent]=\"this\"\n        [selectionManager]=\"selectionManager\"\n    ></vdr-bulk-action-menu>\n    <vdr-dt2-search\n        [searchTermControl]=\"searchTermControl\"\n        [searchTermPlaceholder]=\"'order.search-by-order-filters' | translate\"\n    />\n    <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\n        <ng-template let-order=\"item\">\n            {{ order.id }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\n        <ng-template let-order=\"item\">\n            {{ order.createdAt | localeDate : 'short' }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\n        <ng-template let-order=\"item\">\n            <a class=\"button-ghost\" [routerLink]=\"order.state === 'Draft' ? ['./draft', order.id] : ['./', order.id]\"\n                ><span>{{ order.code }}</span>\n                <clr-icon shape=\"arrow right\"></clr-icon>\n            </a>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.customer' | translate\" id=\"customer\" [sort]=\"sorts.get('customerLastName')\">\n        <ng-template let-order=\"item\">\n            <vdr-customer-label\n                [customer]=\"order.customer\"\n                (click)=\"$event.stopPropagation()\"\n            ></vdr-customer-label>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.order-type' | translate\" id=\"order-type\" [hiddenByDefault]=\"true\">\n        <ng-template let-order=\"item\">\n            <vdr-chip *ngIf=\"order.type === OrderType.Regular\">{{ 'order.order-type-regular' | translate }}</vdr-chip>\n            <vdr-chip *ngIf=\"order.type === OrderType.Aggregate\">{{ 'order.order-type-aggregate' | translate }}</vdr-chip>\n            <vdr-chip *ngIf=\"order.type === OrderType.Seller\">{{ 'order.order-type-seller' | translate }}</vdr-chip>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\" [sort]=\"sorts.get('state')\">\n        <ng-template let-order=\"item\">\n            <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\" [sort]=\"sorts.get('totalWithTax')\">\n        <ng-template let-order=\"item\">\n            {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\n        <ng-template let-order=\"item\">\n            {{ order.updatedAt | timeAgo }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\" [sort]=\"sorts.get('orderPlacedAt')\">\n        <ng-template let-order=\"item\">\n            {{ order.orderPlacedAt | localeDate : 'short' }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-column [heading]=\"'order.shipping' | translate\" id=\"shipping\">\n        <ng-template let-order=\"item\">\n            {{ getShippingNames(order) }}\n        </ng-template>\n    </vdr-dt2-column>\n    <vdr-dt2-custom-field-column\n        *ngFor=\"let customField of customFields\"\n        [customField]=\"customField\"\n        [sorts]=\"sorts\"\n    />\n</vdr-data-table-2>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CurrencyCode, OrderDetailFragment } from '@vendure/admin-ui/core';\n\n@Component({\n    selector: 'vdr-refund-detail',\n    templateUrl: './refund-detail.component.html',\n    styleUrls: ['./refund-detail.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class RefundDetailComponent {\n    @Input() refund: NonNullable<OrderDetailFragment['payments']>[number]['refunds'][number];\n    @Input() currencyCode: CurrencyCode;\n}\n","<vdr-labeled-data [label]=\"'order.amount' | translate\">\n    {{ refund.total | localeCurrency: currencyCode }}\n</vdr-labeled-data>\n<vdr-labeled-data *ngIf=\"refund.transactionId\" [label]=\"'order.transaction-id' | translate\">\n    {{ refund.transactionId }}\n</vdr-labeled-data>\n<vdr-labeled-data [label]=\"'order.payment-metadata' | translate\">\n    <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\n</vdr-labeled-data>\n","import { ADDRESS_FRAGMENT } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\n\nexport const GET_CUSTOMER_ADDRESSES = gql`\n    query GetCustomerAddresses($customerId: ID!) {\n        customer(id: $customerId) {\n            id\n            addresses {\n                ...Address\n            }\n        }\n    }\n    ${ADDRESS_FRAGMENT}\n`;\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { DataService, GetOrderStateQuery, GetOrderStateQueryVariables } from '@vendure/admin-ui/core';\nimport { gql } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport const GET_ORDER_STATE = gql`\n    query GetOrderState($id: ID!) {\n        order(id: $id) {\n            id\n            state\n        }\n    }\n`;\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class OrderGuard {\n    constructor(private dataService: DataService, private router: Router) {}\n\n    canActivate(\n        route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot,\n    ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n        const isDraft = state.url.includes('orders/draft');\n        const isModifying = state.url.includes('/modify');\n        const id = route.paramMap.get('id');\n        if (isDraft) {\n            if (id === 'create') {\n                return this.dataService.order\n                    .createDraftOrder()\n                    .pipe(\n                        map(({ createDraftOrder }) =>\n                            this.router.parseUrl(`/orders/draft/${createDraftOrder.id}`),\n                        ),\n                    );\n            } else {\n                return true;\n            }\n        } else {\n            return (\n                this.dataService\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                    .query<GetOrderStateQuery, GetOrderStateQueryVariables>(GET_ORDER_STATE, { id: id! })\n                    .single$.pipe(\n                        map(({ order }) => {\n                            if (order?.state === 'Modifying' && !isModifying) {\n                                return this.router.parseUrl(`/orders/${id}/modify`);\n                            } else {\n                                return true;\n                            }\n                        }),\n                    )\n            );\n        }\n    }\n}\n","import { Route } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { PageComponent, PageService } from '@vendure/admin-ui/core';\nimport { OrderGuard } from './providers/routing/order.guard';\n\nexport const createRoutes = (pageService: PageService): Route[] => [\n    {\n        path: '',\n        component: PageComponent,\n        data: {\n            locationId: 'order-list',\n            breadcrumb: _('breadcrumb.orders'),\n        },\n        children: pageService.getPageTabRoutes('order-list'),\n    },\n    {\n        path: 'draft/:id',\n        component: PageComponent,\n        canActivate: [OrderGuard],\n        data: {\n            locationId: 'draft-order-detail',\n            breadcrumb: { label: _('breadcrumb.orders'), link: ['../'] },\n        },\n        children: pageService.getPageTabRoutes('draft-order-detail'),\n    },\n    {\n        path: ':id',\n        component: PageComponent,\n        canActivate: [OrderGuard],\n        data: {\n            locationId: 'order-detail',\n            breadcrumb: { label: _('breadcrumb.orders'), link: ['../'] },\n        },\n        children: pageService.getPageTabRoutes('order-detail'),\n    },\n    {\n        path: ':aggregateOrderId/seller-orders/:id',\n        component: PageComponent,\n        canActivate: [OrderGuard],\n        data: {\n            locationId: 'order-detail',\n            breadcrumb: { label: _('breadcrumb.orders'), link: ['../'] },\n        },\n        children: pageService.getPageTabRoutes('order-detail'),\n    },\n    {\n        path: ':id/modify',\n        component: PageComponent,\n        canActivate: [OrderGuard],\n        data: {\n            locationId: 'modify-order',\n            breadcrumb: { label: _('breadcrumb.orders'), link: ['../'] },\n        },\n        children: pageService.getPageTabRoutes('modify-order'),\n    },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule, ROUTES } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n    detailComponentWithResolver,\n    OrderDetailQueryDocument,\n    OrderType,\n    PageService,\n    SharedModule,\n} from '@vendure/admin-ui/core';\n\nimport { AddManualPaymentDialogComponent } from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nimport { CancelOrderDialogComponent } from './components/cancel-order-dialog/cancel-order-dialog.component';\nimport { CouponCodeSelectorComponent } from './components/coupon-code-selector/coupon-code-selector.component';\nimport { DraftOrderDetailComponent } from './components/draft-order-detail/draft-order-detail.component';\nimport { DraftOrderVariantSelectorComponent } from './components/draft-order-variant-selector/draft-order-variant-selector.component';\nimport { FulfillOrderDialogComponent } from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nimport { FulfillmentCardComponent } from './components/fulfillment-card/fulfillment-card.component';\nimport { FulfillmentDetailComponent } from './components/fulfillment-detail/fulfillment-detail.component';\nimport { FulfillmentStateLabelComponent } from './components/fulfillment-state-label/fulfillment-state-label.component';\nimport { LineFulfillmentComponent } from './components/line-fulfillment/line-fulfillment.component';\nimport { LineRefundsComponent } from './components/line-refunds/line-refunds.component';\nimport { ModificationDetailComponent } from './components/modification-detail/modification-detail.component';\nimport { OrderCustomFieldsCardComponent } from './components/order-custom-fields-card/order-custom-fields-card.component';\nimport { OrderTotalColumnComponent } from './components/order-data-table/order-total-column.component';\nimport { OrderDetailComponent } from './components/order-detail/order-detail.component';\nimport { OrderEditorComponent } from './components/order-editor/order-editor.component';\nimport { OrderEditsPreviewDialogComponent } from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nimport { OrderHistoryEntryHostComponent } from './components/order-history/order-history-entry-host.component';\nimport { OrderHistoryComponent } from './components/order-history/order-history.component';\nimport { OrderListComponent } from './components/order-list/order-list.component';\nimport { OrderPaymentCardComponent } from './components/order-payment-card/order-payment-card.component';\nimport { OrderProcessGraphDialogComponent } from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nimport { OrderProcessEdgeComponent } from './components/order-process-graph/order-process-edge.component';\nimport { OrderProcessGraphComponent } from './components/order-process-graph/order-process-graph.component';\nimport { OrderProcessNodeComponent } from './components/order-process-graph/order-process-node.component';\nimport { OrderStateSelectDialogComponent } from './components/order-state-select-dialog/order-state-select-dialog.component';\nimport { OrderTableComponent } from './components/order-table/order-table.component';\nimport { PaymentDetailComponent } from './components/payment-detail/payment-detail.component';\nimport { PaymentStateLabelComponent } from './components/payment-state-label/payment-state-label.component';\nimport { RefundDetailComponent } from './components/refund-detail/refund-detail.component';\nimport { RefundOrderDialogComponent } from './components/refund-order-dialog/refund-order-dialog.component';\nimport { RefundStateLabelComponent } from './components/refund-state-label/refund-state-label.component';\nimport { SelectAddressDialogComponent } from './components/select-address-dialog/select-address-dialog.component';\nimport { SelectCustomerDialogComponent } from './components/select-customer-dialog/select-customer-dialog.component';\nimport { SelectShippingMethodDialogComponent } from './components/select-shipping-method-dialog/select-shipping-method-dialog.component';\nimport { SellerOrdersCardComponent } from './components/seller-orders-card/seller-orders-card.component';\nimport { SettleRefundDialogComponent } from './components/settle-refund-dialog/settle-refund-dialog.component';\nimport { SimpleItemListComponent } from './components/simple-item-list/simple-item-list.component';\nimport { createRoutes } from './order.routes';\nimport { OrderDataTableComponent } from './components/order-data-table/order-data-table.component';\nimport { PaymentForRefundSelectorComponent } from './components/payment-for-refund-selector/payment-for-refund-selector.component';\nimport { OrderModificationSummaryComponent } from './components/order-modification-summary/order-modification-summary.component';\n\n@NgModule({\n    imports: [SharedModule, RouterModule.forChild([])],\n    providers: [\n        {\n            provide: ROUTES,\n            useFactory: (pageService: PageService) => createRoutes(pageService),\n            multi: true,\n            deps: [PageService],\n        },\n    ],\n    declarations: [\n        OrderListComponent,\n        OrderDetailComponent,\n        FulfillOrderDialogComponent,\n        LineFulfillmentComponent,\n        RefundOrderDialogComponent,\n        CancelOrderDialogComponent,\n        PaymentStateLabelComponent,\n        LineRefundsComponent,\n        OrderPaymentCardComponent,\n        RefundStateLabelComponent,\n        SettleRefundDialogComponent,\n        OrderHistoryComponent,\n        FulfillmentDetailComponent,\n        PaymentDetailComponent,\n        SimpleItemListComponent,\n        OrderCustomFieldsCardComponent,\n        OrderProcessGraphComponent,\n        OrderProcessNodeComponent,\n        OrderProcessEdgeComponent,\n        OrderProcessGraphDialogComponent,\n        FulfillmentStateLabelComponent,\n        FulfillmentCardComponent,\n        OrderEditorComponent,\n        OrderTableComponent,\n        OrderEditsPreviewDialogComponent,\n        ModificationDetailComponent,\n        AddManualPaymentDialogComponent,\n        OrderStateSelectDialogComponent,\n        DraftOrderDetailComponent,\n        DraftOrderVariantSelectorComponent,\n        SelectCustomerDialogComponent,\n        SelectAddressDialogComponent,\n        CouponCodeSelectorComponent,\n        SelectShippingMethodDialogComponent,\n        OrderHistoryEntryHostComponent,\n        SellerOrdersCardComponent,\n        OrderDataTableComponent,\n        OrderTotalColumnComponent,\n        PaymentForRefundSelectorComponent,\n        OrderModificationSummaryComponent,\n        RefundDetailComponent,\n    ],\n    exports: [OrderCustomFieldsCardComponent],\n})\nexport class OrderModule {\n    private static hasRegisteredTabsAndBulkActions = false;\n\n    constructor(pageService: PageService) {\n        if (OrderModule.hasRegisteredTabsAndBulkActions) {\n            return;\n        }\n        pageService.registerPageTab({\n            priority: 0,\n            location: 'order-list',\n            tab: _('order.orders'),\n            route: '',\n            component: OrderListComponent,\n        });\n        pageService.registerPageTab({\n            priority: 0,\n            location: 'order-detail',\n            tab: _('order.order'),\n            route: '',\n            component: detailComponentWithResolver({\n                component: OrderDetailComponent,\n                query: OrderDetailQueryDocument,\n                entityKey: 'order',\n                getBreadcrumbs: entity =>\n                    entity?.type !== OrderType.Seller || !entity?.aggregateOrder\n                        ? [\n                              {\n                                  label: `${entity?.code}`,\n                                  link: [entity?.id],\n                              },\n                          ]\n                        : [\n                              {\n                                  label: `${entity?.aggregateOrder?.code}`,\n                                  link: ['/orders/', entity?.aggregateOrder?.id],\n                              },\n                              {\n                                  label: _('breadcrumb.seller-orders'),\n                                  link: ['/orders/', entity?.aggregateOrder?.id],\n                              },\n                              {\n                                  label: `${entity?.code}`,\n                                  link: [entity?.id],\n                              },\n                          ],\n            }),\n        });\n        pageService.registerPageTab({\n            priority: 0,\n            location: 'draft-order-detail',\n            tab: _('order.order'),\n            route: '',\n            component: detailComponentWithResolver({\n                component: DraftOrderDetailComponent,\n                query: OrderDetailQueryDocument,\n                entityKey: 'order',\n                getBreadcrumbs: entity => [\n                    {\n                        label: _('order.draft-order'),\n                        link: [entity?.id],\n                    },\n                ],\n            }),\n        });\n        pageService.registerPageTab({\n            priority: 0,\n            location: 'modify-order',\n            tab: _('order.order'),\n            route: '',\n            component: detailComponentWithResolver({\n                component: OrderEditorComponent,\n                query: OrderDetailQueryDocument,\n                entityKey: 'order',\n                getBreadcrumbs: entity => [\n                    {\n                        label: entity?.code || 'order',\n                        link: ['/orders/', entity?.id],\n                    },\n                    {\n                        label: _('breadcrumb.modifying-order'),\n                        link: [entity?.id],\n                    },\n                ],\n            }),\n        });\n        OrderModule.hasRegisteredTabsAndBulkActions = true;\n    }\n}\n","// This file was generated by the build-public-api.ts script\nexport * from './common/get-refundable-payments';\nexport * from './common/modify-order-types';\nexport * from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nexport * from './components/cancel-order-dialog/cancel-order-dialog.component';\nexport * from './components/coupon-code-selector/coupon-code-selector.component';\nexport * from './components/draft-order-detail/draft-order-detail.component';\nexport * from './components/draft-order-variant-selector/draft-order-variant-selector.component';\nexport * from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nexport * from './components/fulfillment-card/fulfillment-card.component';\nexport * from './components/fulfillment-detail/fulfillment-detail.component';\nexport * from './components/fulfillment-state-label/fulfillment-state-label.component';\nexport * from './components/line-fulfillment/line-fulfillment.component';\nexport * from './components/line-refunds/line-refunds.component';\nexport * from './components/modification-detail/modification-detail.component';\nexport * from './components/order-custom-fields-card/order-custom-fields-card.component';\nexport * from './components/order-data-table/order-data-table.component';\nexport * from './components/order-data-table/order-total-column.component';\nexport * from './components/order-detail/order-detail.component';\nexport * from './components/order-editor/order-editor.component';\nexport * from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nexport * from './components/order-history/order-history-entry-host.component';\nexport * from './components/order-history/order-history.component';\nexport * from './components/order-list/order-list.component';\nexport * from './components/order-modification-summary/order-modification-summary.component';\nexport * from './components/order-payment-card/order-payment-card.component';\nexport * from './components/order-process-graph/constants';\nexport * from './components/order-process-graph/order-process-edge.component';\nexport * from './components/order-process-graph/order-process-graph.component';\nexport * from './components/order-process-graph/order-process-node.component';\nexport * from './components/order-process-graph/types';\nexport * from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nexport * from './components/order-state-select-dialog/order-state-select-dialog.component';\nexport * from './components/order-table/order-table.component';\nexport * from './components/payment-detail/payment-detail.component';\nexport * from './components/payment-for-refund-selector/payment-for-refund-selector.component';\nexport * from './components/payment-state-label/payment-state-label.component';\nexport * from './components/refund-detail/refund-detail.component';\nexport * from './components/refund-order-dialog/refund-order-dialog.component';\nexport * from './components/refund-state-label/refund-state-label.component';\nexport * from './components/select-address-dialog/select-address-dialog.component';\nexport * from './components/select-address-dialog/select-address-dialog.graphql';\nexport * from './components/select-customer-dialog/select-customer-dialog.component';\nexport * from './components/select-shipping-method-dialog/select-shipping-method-dialog.component';\nexport * from './components/seller-orders-card/seller-orders-card.component';\nexport * from './components/seller-orders-card/seller-orders-card.graphql';\nexport * from './components/settle-refund-dialog/settle-refund-dialog.component';\nexport * from './components/simple-item-list/simple-item-list.component';\nexport * from './order.module';\nexport * from './order.routes';\nexport * from './providers/order-transition.service';\nexport * from './providers/routing/order.guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i4","i5","_","i2","i6","i1","i5.LineFulfillmentComponent","i6.LineRefundsComponent","i7.OrderDataTableComponent","i8.OrderTotalColumnComponent","i9","i2.OrderTransitionService","i5.OrderCustomFieldsCardComponent","i6.OrderTableComponent","i7.DraftOrderVariantSelectorComponent","i8.CouponCodeSelectorComponent","i3.SimpleItemListComponent","i4.FulfillmentDetailComponent","i5.FulfillmentStateLabelComponent","i2.OrderProcessNodeComponent","i3.OrderProcessEdgeComponent","i2.OrderProcessGraphComponent","i7.PaymentForRefundSelectorComponent","i8","i5.PaymentStateLabelComponent","i6.RefundStateLabelComponent","i7.PaymentDetailComponent","i6.FulfillmentDetailComponent","i8.SimpleItemListComponent","i9.ModificationDetailComponent","i10.OrderHistoryEntryHostComponent","i11","i6.OrderPaymentCardComponent","i7.OrderHistoryComponent","i8.FulfillmentCardComponent","i9.OrderTableComponent","i10.SellerOrdersCardComponent","i5.OrderTableComponent","i6.PaymentForRefundSelectorComponent","i7.OrderModificationSummaryComponent","i6.LineFulfillmentComponent","i7.LineRefundsComponent","i9.OrderModificationSummaryComponent","i10"],"mappings":"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"}