@vendure/admin-ui 3.1.0-next.2 → 3.1.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/components/collection-data-table/collection-data-table.component.d.ts +3 -5
- package/catalog/components/collection-detail/collection-detail.component.d.ts +1 -1
- package/catalog/components/collection-list/collection-list.component.d.ts +1 -0
- package/catalog/components/facet-detail/facet-detail.component.d.ts +1 -1
- package/catalog/components/facet-list/facet-list.component.d.ts +1 -0
- package/catalog/components/product-detail/product-detail.component.d.ts +1 -1
- package/catalog/components/product-list/product-list.component.d.ts +3 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/core/common/base-list.component.d.ts +13 -0
- package/core/common/generated-types.d.ts +1188 -139
- package/core/common/utilities/custom-field-default-value.d.ts +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/data/definitions/order-definitions.d.ts +2 -0
- package/core/data/definitions/settings-definitions.d.ts +1 -0
- package/core/data/providers/base-data.service.d.ts +19 -2
- package/core/data/providers/collection-data.service.d.ts +2 -2
- package/core/data/providers/data.service.d.ts +3 -3
- package/core/data/providers/order-data.service.d.ts +2 -0
- package/core/data/query-result.d.ts +60 -4
- package/core/data/utils/add-custom-fields.d.ts +1 -1
- package/core/providers/alerts/alerts.service.d.ts +3 -0
- package/core/providers/auth/auth.service.d.ts +3 -1
- package/core/providers/data-table/data-table-config.service.d.ts +12 -0
- package/core/public_api.d.ts +2 -0
- package/core/shared/components/asset-preview-links/asset-preview-links.component.d.ts +1 -0
- package/core/shared/components/assets/assets.component.d.ts +2 -1
- package/core/shared/components/data-table-2/data-table2.component.d.ts +5 -5
- package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +1 -0
- package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +3 -4
- package/core/shared/components/facet-value-chip/facet-value-chip.component.d.ts +4 -2
- package/core/shared/components/product-variant-selector/product-variant-selector.component.d.ts +1 -1
- package/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +21 -2
- package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +2 -1
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +2 -1
- package/core/shared/dynamic-form-inputs/struct-form-input/struct-form-input.component.d.ts +34 -0
- package/core/shared/shared.module.d.ts +12 -11
- package/customer/components/customer-detail/customer-detail.component.d.ts +1 -1
- package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +1 -1
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +2 -0
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +1 -1
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +10 -12
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +1 -1
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +4 -3
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +4 -3
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +1 -1
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +1 -1
- package/esm2022/catalog/components/product-list/product-list.component.mjs +5 -3
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +2 -2
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +1 -1
- package/esm2022/core/common/base-list.component.mjs +20 -4
- package/esm2022/core/common/generated-types.mjs +17 -13
- package/esm2022/core/common/introspection-result.mjs +22 -1
- package/esm2022/core/common/utilities/custom-field-default-value.mjs +3 -1
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +3 -3
- package/esm2022/core/data/data.module.mjs +3 -3
- package/esm2022/core/data/definitions/facet-definitions.mjs +2 -1
- package/esm2022/core/data/definitions/order-definitions.mjs +17 -1
- package/esm2022/core/data/definitions/settings-definitions.mjs +52 -1
- package/esm2022/core/data/providers/base-data.service.mjs +7 -8
- package/esm2022/core/data/providers/collection-data.service.mjs +3 -3
- package/esm2022/core/data/providers/data.service.mjs +5 -5
- package/esm2022/core/data/providers/order-data.service.mjs +8 -2
- package/esm2022/core/data/providers/product-data.service.mjs +4 -2
- package/esm2022/core/data/query-result.mjs +98 -10
- package/esm2022/core/data/utils/add-custom-fields.mjs +59 -30
- package/esm2022/core/providers/alerts/alerts.service.mjs +13 -3
- package/esm2022/core/providers/auth/auth.service.mjs +11 -7
- package/esm2022/core/providers/data-table/data-table-config.service.mjs +43 -0
- package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +3 -2
- package/esm2022/core/providers/data-table/data-table-sort-collection.mjs +2 -1
- package/esm2022/core/public_api.mjs +3 -1
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +3 -2
- package/esm2022/core/shared/components/assets/assets.component.mjs +10 -4
- package/esm2022/core/shared/components/card/card.component.mjs +1 -1
- package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +3 -3
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +44 -52
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +23 -3
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +23 -35
- package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +1 -1
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +8 -3
- package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +1 -1
- package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +1 -1
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +2 -2
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +78 -13
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +33 -1
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +3 -2
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -1
- package/esm2022/core/shared/directives/disabled.directive.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +3 -1
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +9 -1
- package/esm2022/core/shared/dynamic-form-inputs/struct-form-input/struct-form-input.component.mjs +52 -0
- package/esm2022/core/shared/pipes/locale-base.pipe.mjs +2 -2
- package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +1 -1
- package/esm2022/core/shared/shared.module.mjs +7 -3
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +1 -1
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +5 -3
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +1 -1
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +4 -3
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +1 -1
- package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +1 -1
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +4 -3
- package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +34 -3
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -14
- package/esm2022/order/components/order-editor/order-editor.component.mjs +1 -1
- package/esm2022/order/components/order-list/order-list.component.mjs +4 -3
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +1 -1
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +1 -1
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +3 -3
- package/esm2022/order/order.routes.mjs +1 -2
- package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +3 -3
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +4 -3
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +4 -3
- package/esm2022/settings/components/country-list/country-list.component.mjs +4 -3
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +4 -3
- package/esm2022/settings/components/role-list/role-list.component.mjs +4 -3
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +4 -3
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +4 -3
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +4 -3
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +4 -3
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +4 -3
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +4 -3
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +1 -1
- package/esm2022/system/components/job-list/job-list.component.mjs +1 -1
- package/esm2022/system/components/job-state-label/job-state-label.component.mjs +1 -1
- package/fesm2022/vendure-admin-ui-catalog.mjs +26 -24
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +750 -309
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +9 -6
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +3 -2
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +38 -20
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +36 -25
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +1 -1
- package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -0
- package/order/components/draft-order-detail/draft-order-detail.component.d.ts +1 -0
- package/order/components/order-data-table/order-data-table.component.d.ts +2 -3
- package/order/components/order-detail/order-detail.component.d.ts +1 -1
- package/order/components/order-list/order-list.component.d.ts +1 -0
- package/package.json +18 -18
- package/settings/components/admin-detail/admin-detail.component.d.ts +1 -1
- package/settings/components/administrator-list/administrator-list.component.d.ts +1 -0
- package/settings/components/channel-detail/channel-detail.component.d.ts +1 -1
- package/settings/components/channel-list/channel-list.component.d.ts +1 -0
- package/settings/components/country-detail/country-detail.component.d.ts +1 -1
- package/settings/components/country-list/country-list.component.d.ts +1 -0
- package/settings/components/global-settings/global-settings.component.d.ts +1 -1
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +1 -1
- package/settings/components/payment-method-list/payment-method-list.component.d.ts +1 -0
- package/settings/components/profile/profile.component.d.ts +1 -1
- package/settings/components/role-list/role-list.component.d.ts +1 -0
- package/settings/components/seller-detail/seller-detail.component.d.ts +1 -1
- package/settings/components/seller-list/seller-list.component.d.ts +1 -0
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +1 -1
- package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +1 -0
- package/settings/components/stock-location-detail/stock-location-detail.component.d.ts +1 -1
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -0
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +1 -1
- package/settings/components/tax-category-list/tax-category-list.component.d.ts +1 -0
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +1 -1
- package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +1 -0
- package/settings/components/zone-detail/zone-detail.component.d.ts +1 -1
- package/settings/components/zone-list/zone-list.component.d.ts +1 -0
- package/static/i18n-messages/en.json +6 -2
- package/static/i18n-messages/pt_PT.json +1 -0
- package/static/i18n-messages/sv.json +12 -12
- package/static/styles/component/prosemirror.scss +2 -0
|
@@ -11,7 +11,7 @@ import * as i2$1 from '@angular/common';
|
|
|
11
11
|
import * as i4 from '@ngx-translate/core';
|
|
12
12
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
13
|
import * as i3 from '@clr/angular';
|
|
14
|
-
import { Subject, concat, of, EMPTY, combineLatest, BehaviorSubject
|
|
14
|
+
import { Subject, concat, of, EMPTY, forkJoin, combineLatest, BehaviorSubject } from 'rxjs';
|
|
15
15
|
import { debounceTime, distinctUntilChanged, switchMap, map, startWith, tap, catchError, retryWhen, delay, take, mapTo, takeUntil, shareReplay } from 'rxjs/operators';
|
|
16
16
|
import { pick } from '@vendure/common/lib/pick';
|
|
17
17
|
import * as i1$1 from '@angular/router';
|
|
@@ -648,19 +648,6 @@ class OrderDataTableComponent extends DataTable2Component {
|
|
|
648
648
|
get allColumns() {
|
|
649
649
|
return [...(this.columns ?? []), ...(this.customFieldColumns ?? []), ...(this.totalColumns ?? [])];
|
|
650
650
|
}
|
|
651
|
-
get sortedColumns() {
|
|
652
|
-
const columns = this.allColumns;
|
|
653
|
-
const dataTableConfig = this.getDataTableConfig();
|
|
654
|
-
for (const [id, index] of Object.entries(dataTableConfig[this.id].order)) {
|
|
655
|
-
const column = columns.find(c => c.id === id);
|
|
656
|
-
const currentIndex = columns.findIndex(c => c.id === id);
|
|
657
|
-
if (currentIndex !== -1 && column) {
|
|
658
|
-
columns.splice(currentIndex, 1);
|
|
659
|
-
columns.splice(index, 0, column);
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
return columns;
|
|
663
|
-
}
|
|
664
651
|
getPromotionLink(promotion) {
|
|
665
652
|
const id = promotion.adjustmentSource.split(':')[1];
|
|
666
653
|
return ['/marketing', 'promotions', id];
|
|
@@ -886,6 +873,22 @@ class DraftOrderDetailComponent extends TypedBaseDetailComponent {
|
|
|
886
873
|
if (this.hasId(result)) {
|
|
887
874
|
this.dataService.order
|
|
888
875
|
.setCustomerForDraftOrder(this.id, { customerId: result.id })
|
|
876
|
+
.pipe(switchMap(() => {
|
|
877
|
+
return this.dataService.query(GetCustomerAddressesDocument, {
|
|
878
|
+
customerId: result.id,
|
|
879
|
+
}).single$;
|
|
880
|
+
}), switchMap(({ customer }) => {
|
|
881
|
+
const defaultShippingAddress = customer?.addresses?.find(addr => addr.defaultShippingAddress);
|
|
882
|
+
const defaultBillingAddress = customer?.addresses?.find(addr => addr.defaultBillingAddress);
|
|
883
|
+
return forkJoin([
|
|
884
|
+
defaultShippingAddress
|
|
885
|
+
? this.dataService.order.setDraftOrderShippingAddress(this.id, this.mapToAddressInput(defaultShippingAddress))
|
|
886
|
+
: this.dataService.order.unsetDraftOrderShippingAddress(this.id),
|
|
887
|
+
defaultBillingAddress
|
|
888
|
+
? this.dataService.order.setDraftOrderBillingAddress(this.id, this.mapToAddressInput(defaultBillingAddress))
|
|
889
|
+
: this.dataService.order.unsetDraftOrderBillingAddress(this.id),
|
|
890
|
+
]);
|
|
891
|
+
}))
|
|
889
892
|
.subscribe();
|
|
890
893
|
}
|
|
891
894
|
else if (result) {
|
|
@@ -894,6 +897,21 @@ class DraftOrderDetailComponent extends TypedBaseDetailComponent {
|
|
|
894
897
|
}
|
|
895
898
|
});
|
|
896
899
|
}
|
|
900
|
+
mapToAddressInput(address) {
|
|
901
|
+
return {
|
|
902
|
+
fullName: address.fullName,
|
|
903
|
+
company: address.company,
|
|
904
|
+
streetLine1: address.streetLine1,
|
|
905
|
+
streetLine2: address.streetLine2,
|
|
906
|
+
city: address.city,
|
|
907
|
+
province: address.province,
|
|
908
|
+
postalCode: address.postalCode,
|
|
909
|
+
countryCode: address.country.code,
|
|
910
|
+
phoneNumber: address.phoneNumber,
|
|
911
|
+
defaultShippingAddress: address.defaultShippingAddress,
|
|
912
|
+
defaultBillingAddress: address.defaultBillingAddress,
|
|
913
|
+
};
|
|
914
|
+
}
|
|
897
915
|
setShippingAddress() {
|
|
898
916
|
this.entity$
|
|
899
917
|
.pipe(take(1), switchMap(order => this.modalService.fromComponent(SelectAddressDialogComponent, {
|
|
@@ -1601,11 +1619,11 @@ class RefundOrderDialogComponent {
|
|
|
1601
1619
|
}));
|
|
1602
1620
|
}
|
|
1603
1621
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RefundOrderDialogComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1604
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"], dependencies: [{ kind: "component", type: i3.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i3.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: PaymentForRefundSelectorComponent, selector: "vdr-payment-for-refund-selector", inputs: ["refundablePayments", "order"], outputs: ["paymentSelected"] }, { kind: "pipe", type: i2$1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1622
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"], dependencies: [{ kind: "component", type: i3.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i3.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: PaymentForRefundSelectorComponent, selector: "vdr-payment-for-refund-selector", inputs: ["refundablePayments", "order"], outputs: ["paymentSelected"] }, { kind: "pipe", type: i2$1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1605
1623
|
}
|
|
1606
1624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RefundOrderDialogComponent, decorators: [{
|
|
1607
1625
|
type: Component,
|
|
1608
|
-
args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"] }]
|
|
1626
|
+
args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"] }]
|
|
1609
1627
|
}], ctorParameters: () => [{ type: i1.I18nService }] });
|
|
1610
1628
|
|
|
1611
1629
|
class SettleRefundDialogComponent {
|
|
@@ -3182,7 +3200,7 @@ class OrderEditorComponent extends TypedBaseDetailComponent {
|
|
|
3182
3200
|
/* not used */
|
|
3183
3201
|
}
|
|
3184
3202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OrderEditorComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }, { token: i1.ModalService }, { token: OrderTransitionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3185
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: OrderEditorComponent, selector: "vdr-order-editor", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar *ngIf=\"entity$ | async as order\">\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\"></div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <button class=\"btn btn-secondary\" (click)=\"transitionToPriorState(order)\">\r\n {{ 'order.cancel-modification' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<vdr-page-detail-layout *ngIf=\"entity as order\">\r\n <vdr-page-detail-sidebar>\r\n <vdr-card [title]=\"'order.modification-summary' | translate\">\r\n <vdr-order-modification-summary\r\n [orderSnapshot]=\"orderSnapshot\"\r\n [modifyOrderInput]=\"modifyOrderInput\"\r\n [addedLines]=\"addedLines\"\r\n [shippingAddressForm]=\"shippingAddressForm\"\r\n [billingAddressForm]=\"billingAddressForm\"\r\n [couponCodesControl]=\"couponCodesControl\"\r\n [updatedShippingMethods]=\"updatedShippingMethods\"\r\n ></vdr-order-modification-summary>\r\n\r\n <div *ngIf=\"!hasModifications()\" class=\"no-modifications\">\r\n {{ 'order.no-modifications-made' | translate }}\r\n </div>\r\n\r\n <div class=\"summary-controls\">\r\n <vdr-form-field [label]=\"'order.note' | translate\">\r\n <textarea\r\n [(ngModel)]=\"note\"\r\n name=\"note\"\r\n required\r\n [disabled]=\"!hasModifications()\"\r\n ></textarea>\r\n </vdr-form-field>\r\n <label class=\"flex items-center\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"recalculateShipping\"\r\n [disabled]=\"!hasModifications()\"\r\n />\r\n <div class=\"ml-1\">{{ 'order.modification-recalculate-shipping' | translate }}</div>\r\n </label>\r\n <button\r\n class=\"btn btn-primary mt-2\"\r\n [disabled]=\"!hasModifications()\"\r\n (click)=\"previewAndModify(order)\"\r\n >\r\n {{ 'order.preview-changes' | translate }}\r\n </button>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.set-coupon-codes' | translate\">\r\n <vdr-coupon-code-selector [control]=\"couponCodesControl\"></vdr-coupon-code-selector>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-shipping-address' | translate\"\r\n (click)=\"editingShippingAddress = !editingShippingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingShippingAddress\"\r\n [address]=\"shippingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingShippingAddress\"\r\n [formGroup]=\"shippingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.billing-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-billing-address' | translate\"\r\n (click)=\"editingBillingAddress = !editingBillingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingBillingAddress\"\r\n [address]=\"billingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingBillingAddress\"\r\n [formGroup]=\"billingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n\r\n <vdr-page-block>\r\n <vdr-card [paddingX]=\"false\">\r\n <vdr-data-table-2 id=\"modify-order\" class=\"order-table\" [items]=\"order.lines.concat(addedLines)\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"created-at\"\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"updated-at\"\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"product-name\"\r\n [heading]=\"'order.product-name' | translate\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"text-center\">\r\n <div>{{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}</div>\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.unitPrice | localeCurrency : order.currencyCode }}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n type=\"number\"\r\n class=\"draft-qty mr-1\"\r\n min=\"0\"\r\n [value]=\"getInitialLineQuantity(line.id)\"\r\n (input)=\"updateLineQuantity(line, $event.target.value)\"\r\n />\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"isAddedLine(line)\"\r\n (click)=\"removeAddedItem(line.id)\"\r\n >\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n <vdr-line-fulfillment\r\n [line]=\"line\"\r\n [allOrderFulfillments]=\"order.fulfillments\"\r\n [orderState]=\"order.state\"\r\n ></vdr-line-fulfillment>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n *ngFor=\"let customField of orderLineCustomFields\"\r\n [id]=\"customField.name\"\r\n [heading]=\"customField | customFieldLabel : (uiLanguage$ | async)\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\" let-index=\"index\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [entityName]=\"'OrderLine'\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"orderLineCustomFieldsFormArray.at(index)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-item-to-order' | translate\">\r\n <vdr-product-variant-selector class=\"mb-4\" (productSelected)=\"addItemSelectedVariant = $event\">\r\n </vdr-product-variant-selector>\r\n <div class=\"flex\">\r\n <div>\r\n <div *ngIf=\"addItemSelectedVariant\" class=\"flex mb-4\">\r\n <img\r\n *ngIf=\"addItemSelectedVariant.productAsset as asset\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n class=\"mr-4 add-item-thumb\"\r\n />\r\n <div>\r\n <strong class=\"mr-4\">{{ addItemSelectedVariant.productVariantName }}</strong>\r\n <small>{{ addItemSelectedVariant.sku }}</small>\r\n <div>\r\n {{\r\n getSelectedItemPrice(addItemSelectedVariant)\r\n | localeCurrency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-grid\" *ngIf=\"addItemSelectedVariant\">\r\n <ng-container *ngFor=\"let customField of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [readonly]=\"!addItemSelectedVariant\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"addItemCustomFieldsForm\"\r\n entityName=\"OrderLine\"\r\n [compact]=\"true\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button\r\n *ngIf=\"addItemSelectedVariant\"\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"!addItemSelectedVariant || addItemCustomFieldsForm.invalid\"\r\n (click)=\"addItemToOrder(addItemSelectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping' | translate\">\r\n <div *ngFor=\"let shippingLine of order.shippingLines\" class=\"flex items-center\">\r\n <ng-container *ngIf=\"getShippingLineDetails(shippingLine) as details\">\r\n <div>{{ details.name }}:</div>\r\n <div class=\"mx-1\">\r\n {{ details.price | localeCurrency : order.currencyCode }}\r\n </div>\r\n <button class=\"button-small\" (click)=\"setShippingMethod(shippingLine.id)\">\r\n {{ 'order.set-shipping-method' | translate }}\r\n </button>\r\n </ng-container>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-surcharge' | translate\">\r\n <form [formGroup]=\"surchargeForm\" (submit)=\"addSurcharge(surchargeForm.value)\">\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\"\r\n ><input id=\"description\" type=\"text\" formControlName=\"description\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.product-sku' | translate\" for=\"sku\"\r\n ><input id=\"sku\" type=\"text\" formControlName=\"sku\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'common.price' | translate\" for=\"price\">\r\n <vdr-currency-input\r\n [currencyCode]=\"order.currencyCode\"\r\n id=\"price\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"\r\n 'catalog.price-includes-tax-at'\r\n | translate : { rate: surchargeForm.get('taxRate')?.value ?? 0 }\r\n \"\r\n for=\"priceIncludesTax\"\r\n ><input\r\n id=\"priceIncludesTax\"\r\n type=\"checkbox\"\r\n clrCheckbox\r\n formControlName=\"priceIncludesTax\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-rate' | translate\" for=\"taxRate\">\r\n <vdr-affixed-input suffix=\"%\"\r\n ><input id=\"taxRate\" type=\"number\" min=\"0\" max=\"100\" formControlName=\"taxRate\"\r\n /></vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-description' | translate\" for=\"taxDescription\"\r\n ><input id=\"taxDescription\" type=\"text\" formControlName=\"taxDescription\"\r\n /></vdr-form-field>\r\n </div>\r\n <button\r\n class=\"btn btn-secondary mt-2\"\r\n [disabled]=\"\r\n surchargeForm.invalid ||\r\n surchargeForm.pristine ||\r\n surchargeForm.get('price')?.value === 0 ||\r\n !surchargeForm.get('description')?.value\r\n \"\r\n >\r\n {{ 'order.add-surcharge' | translate }}\r\n </button>\r\n </form>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".order-table .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.order-table .sub-total td{border-top:1px dashed var(--color-component-border-200)}.order-table .total td{font-weight:700;border-top:1px dashed var(--color-component-border-200)}.order-table td.custom-fields-row{border-top-style:dashed;border-top-color:var(--color-grey-200)}.order-table img{border-radius:var(--border-radius-img)}.order-table .order-line-custom-fields{display:flex;flex-wrap:wrap}.order-table .order-line-custom-fields .custom-field{text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;margin-inline-end:18px}.order-table .draft-qty{max-width:48px}.order-table .order-line-custom-field{background-color:var(--color-component-bg-100)}.order-table .order-line-custom-field .custom-field-ellipsis{color:var(--color-text-300)}.order-table .net-price{font-size:11px;color:var(--color-text-300);line-height:14px}.order-table .promotions-label{text-decoration:underline dotted var(--color-text-200);font-size:11px;margin-top:6px;cursor:pointer;text-transform:lowercase}.order-table .thumb img{width:50px;height:50px}.order-table .shipping-method-name{font-size:var(--font-size-xs);margin-inline-end:2px}.order-table .order-placed-quantity{text-decoration:line-through;color:var(--color-text-300);margin-inline-end:2px}.order-table tr.modified td{background-color:var(--color-warning-100)}.order-table .order-line-custom-field{text-align:start}.add-item-thumb{max-width:50px}.no-modifications{color:var(--color-grey-400)}.summary-controls{border-top:1px solid var(--color-weight-200);margin-top:calc(var(--space-unit) * 2);padding-top:calc(var(--space-unit) * 1)}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.AffixedInputComponent, selector: "vdr-affixed-input", inputs: ["prefix", "suffix"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.CustomFieldControlComponent, selector: "vdr-custom-field-control", inputs: ["entityName", "customFieldsFormGroup", "customField", "compact", "showLabel", "readonly"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { kind: "component", type: i1.ProductVariantSelectorComponent, selector: "vdr-product-variant-selector", outputs: ["productSelected"] }, { kind: "component", type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "directive", type: i1.CardControlsDirective, selector: "[vdrCardControls]" }, { kind: "component", type: LineFulfillmentComponent, selector: "vdr-line-fulfillment", inputs: ["line", "allOrderFulfillments", "orderState"] }, { kind: "component", type: LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: CouponCodeSelectorComponent, selector: "vdr-coupon-code-selector", inputs: ["couponCodes", "control"], outputs: ["addCouponCode", "removeCouponCode"] }, { kind: "component", type: OrderModificationSummaryComponent, selector: "vdr-order-modification-summary", inputs: ["orderSnapshot", "modifyOrderInput", "addedLines", "shippingAddressForm", "billingAddressForm", "updatedShippingMethods", "couponCodesControl"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.CustomFieldLabelPipe, name: "customFieldLabel" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: OrderEditorComponent, selector: "vdr-order-editor", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar *ngIf=\"entity$ | async as order\">\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\"></div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <button class=\"btn btn-secondary\" (click)=\"transitionToPriorState(order)\">\r\n {{ 'order.cancel-modification' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n\r\n<vdr-page-detail-layout *ngIf=\"entity as order\">\r\n <vdr-page-detail-sidebar>\r\n <vdr-card [title]=\"'order.modification-summary' | translate\">\r\n <vdr-order-modification-summary\r\n [orderSnapshot]=\"orderSnapshot\"\r\n [modifyOrderInput]=\"modifyOrderInput\"\r\n [addedLines]=\"addedLines\"\r\n [shippingAddressForm]=\"shippingAddressForm\"\r\n [billingAddressForm]=\"billingAddressForm\"\r\n [couponCodesControl]=\"couponCodesControl\"\r\n [updatedShippingMethods]=\"updatedShippingMethods\"\r\n ></vdr-order-modification-summary>\r\n\r\n <div *ngIf=\"!hasModifications()\" class=\"no-modifications\">\r\n {{ 'order.no-modifications-made' | translate }}\r\n </div>\r\n\r\n <div class=\"summary-controls\">\r\n <vdr-form-field [label]=\"'order.note' | translate\">\r\n <textarea\r\n [(ngModel)]=\"note\"\r\n name=\"note\"\r\n required\r\n [disabled]=\"!hasModifications()\"\r\n ></textarea>\r\n </vdr-form-field>\r\n <label class=\"flex items-center\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"recalculateShipping\"\r\n [disabled]=\"!hasModifications()\"\r\n />\r\n <div class=\"ml-1\">{{ 'order.modification-recalculate-shipping' | translate }}</div>\r\n </label>\r\n <button\r\n class=\"btn btn-primary mt-2\"\r\n [disabled]=\"!hasModifications()\"\r\n (click)=\"previewAndModify(order)\"\r\n >\r\n {{ 'order.preview-changes' | translate }}\r\n </button>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.set-coupon-codes' | translate\">\r\n <vdr-coupon-code-selector [control]=\"couponCodesControl\"></vdr-coupon-code-selector>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-shipping-address' | translate\"\r\n (click)=\"editingShippingAddress = !editingShippingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingShippingAddress\"\r\n [address]=\"shippingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingShippingAddress\"\r\n [formGroup]=\"shippingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.billing-address' | translate\">\r\n <ng-template vdrCardControls>\r\n <button\r\n class=\"button-small\"\r\n [title]=\"'order.edit-billing-address' | translate\"\r\n (click)=\"editingBillingAddress = !editingBillingAddress\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n </button>\r\n </ng-template>\r\n <vdr-formatted-address\r\n *ngIf=\"!editingBillingAddress\"\r\n [address]=\"billingAddressForm.value\"\r\n ></vdr-formatted-address>\r\n <vdr-address-form\r\n *ngIf=\"editingBillingAddress\"\r\n [formGroup]=\"billingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n\r\n <vdr-page-block>\r\n <vdr-card [paddingX]=\"false\">\r\n <vdr-data-table-2 id=\"modify-order\" class=\"order-table\" [items]=\"order.lines.concat(addedLines)\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"created-at\"\r\n [heading]=\"'common.created-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"updated-at\"\r\n [heading]=\"'common.updated-at' | translate\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n id=\"product-name\"\r\n [heading]=\"'order.product-name' | translate\"\r\n [optional]=\"false\"\r\n >\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"text-center\">\r\n <div>{{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}</div>\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.unitPrice | localeCurrency : order.currencyCode }}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n type=\"number\"\r\n class=\"draft-qty mr-1\"\r\n min=\"0\"\r\n [value]=\"getInitialLineQuantity(line.id)\"\r\n (input)=\"updateLineQuantity(line, $event.target.value)\"\r\n />\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"isAddedLine(line)\"\r\n (click)=\"removeAddedItem(line.id)\"\r\n >\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n <vdr-line-fulfillment\r\n [line]=\"line\"\r\n [allOrderFulfillments]=\"order.fulfillments\"\r\n [orderState]=\"order.state\"\r\n ></vdr-line-fulfillment>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n *ngFor=\"let customField of orderLineCustomFields\"\r\n [id]=\"customField.name\"\r\n [heading]=\"customField | customFieldLabel : (uiLanguage$ | async)\"\r\n [hiddenByDefault]=\"true\"\r\n >\r\n <ng-template let-line=\"item\" let-index=\"index\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [entityName]=\"'OrderLine'\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"orderLineCustomFieldsFormArray.at(index)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-item-to-order' | translate\">\r\n <vdr-product-variant-selector class=\"mb-4\" (productSelected)=\"addItemSelectedVariant = $event\">\r\n </vdr-product-variant-selector>\r\n <div class=\"flex\">\r\n <div>\r\n <div *ngIf=\"addItemSelectedVariant\" class=\"flex mb-4\">\r\n <img\r\n *ngIf=\"addItemSelectedVariant.productAsset as asset\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n class=\"mr-4 add-item-thumb\"\r\n />\r\n <div>\r\n <strong class=\"mr-4\">{{ addItemSelectedVariant.productVariantName }}</strong>\r\n <small>{{ addItemSelectedVariant.sku }}</small>\r\n <div>\r\n {{\r\n getSelectedItemPrice(addItemSelectedVariant)\r\n | localeCurrency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-grid\" *ngIf=\"addItemSelectedVariant\">\r\n <ng-container *ngFor=\"let customField of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [readonly]=\"!addItemSelectedVariant\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"addItemCustomFieldsForm\"\r\n entityName=\"OrderLine\"\r\n [compact]=\"true\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button\r\n *ngIf=\"addItemSelectedVariant\"\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"!addItemSelectedVariant || addItemCustomFieldsForm.invalid\"\r\n (click)=\"addItemToOrder(addItemSelectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.shipping' | translate\">\r\n <div *ngFor=\"let shippingLine of order.shippingLines\" class=\"flex items-center\">\r\n <ng-container *ngIf=\"getShippingLineDetails(shippingLine) as details\">\r\n <div>{{ details.name }}:</div>\r\n <div class=\"mx-1\">\r\n {{ details.price | localeCurrency : order.currencyCode }}\r\n </div>\r\n <button class=\"button-small\" (click)=\"setShippingMethod(shippingLine.id)\">\r\n {{ 'order.set-shipping-method' | translate }}\r\n </button>\r\n </ng-container>\r\n </div>\r\n </vdr-card>\r\n <vdr-card [title]=\"'order.add-surcharge' | translate\">\r\n <form [formGroup]=\"surchargeForm\" (submit)=\"addSurcharge(surchargeForm.value)\">\r\n <div class=\"form-grid\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\"\r\n ><input id=\"description\" type=\"text\" formControlName=\"description\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.product-sku' | translate\" for=\"sku\"\r\n ><input id=\"sku\" type=\"text\" formControlName=\"sku\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'common.price' | translate\" for=\"price\">\r\n <vdr-currency-input\r\n [currencyCode]=\"order.currencyCode\"\r\n id=\"price\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"\r\n 'catalog.price-includes-tax-at'\r\n | translate : { rate: surchargeForm.get('taxRate')?.value ?? 0 }\r\n \"\r\n for=\"priceIncludesTax\"\r\n ><input\r\n id=\"priceIncludesTax\"\r\n type=\"checkbox\"\r\n clrCheckbox\r\n formControlName=\"priceIncludesTax\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-rate' | translate\" for=\"taxRate\">\r\n <vdr-affixed-input suffix=\"%\"\r\n ><input id=\"taxRate\" type=\"number\" min=\"0\" max=\"100\" formControlName=\"taxRate\"\r\n /></vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-description' | translate\" for=\"taxDescription\"\r\n ><input id=\"taxDescription\" type=\"text\" formControlName=\"taxDescription\"\r\n /></vdr-form-field>\r\n </div>\r\n <button\r\n class=\"btn btn-secondary mt-2\"\r\n [disabled]=\"\r\n surchargeForm.invalid ||\r\n surchargeForm.pristine ||\r\n surchargeForm.get('price')?.value === 0 ||\r\n !surchargeForm.get('description')?.value\r\n \"\r\n >\r\n {{ 'order.add-surcharge' | translate }}\r\n </button>\r\n </form>\r\n </vdr-card>\r\n </vdr-page-block>\r\n</vdr-page-detail-layout>\r\n", styles: [".order-table .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.order-table .sub-total td{border-top:1px dashed var(--color-component-border-200)}.order-table .total td{font-weight:700;border-top:1px dashed var(--color-component-border-200)}.order-table td.custom-fields-row{border-top-style:dashed;border-top-color:var(--color-grey-200)}.order-table img{border-radius:var(--border-radius-img)}.order-table .order-line-custom-fields{display:flex;flex-wrap:wrap}.order-table .order-line-custom-fields .custom-field{text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;margin-inline-end:18px}.order-table .draft-qty{max-width:48px}.order-table .order-line-custom-field{background-color:var(--color-component-bg-100)}.order-table .order-line-custom-field .custom-field-ellipsis{color:var(--color-text-300)}.order-table .net-price{font-size:11px;color:var(--color-text-300);line-height:14px}.order-table .promotions-label{text-decoration:underline dotted var(--color-text-200);font-size:11px;margin-top:6px;cursor:pointer;text-transform:lowercase}.order-table .thumb img{width:50px;height:50px}.order-table .shipping-method-name{font-size:var(--font-size-xs);margin-inline-end:2px}.order-table .order-placed-quantity{text-decoration:line-through;color:var(--color-text-300);margin-inline-end:2px}.order-table tr.modified td{background-color:var(--color-warning-100)}.order-table .order-line-custom-field{text-align:start}.add-item-thumb{max-width:50px}.no-modifications{color:var(--color-grey-400)}.summary-controls{border-top:1px solid var(--color-weight-200);margin-top:calc(var(--space-unit) * 2);padding-top:calc(var(--space-unit) * 1)}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.AffixedInputComponent, selector: "vdr-affixed-input", inputs: ["prefix", "suffix"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.CustomFieldControlComponent, selector: "vdr-custom-field-control", inputs: ["entityName", "customFieldsFormGroup", "customField", "compact", "showLabel", "readonly"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { kind: "component", type: i1.ProductVariantSelectorComponent, selector: "vdr-product-variant-selector", outputs: ["productSelected"] }, { kind: "component", type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "directive", type: i1.CardControlsDirective, selector: "[vdrCardControls]" }, { kind: "component", type: LineFulfillmentComponent, selector: "vdr-line-fulfillment", inputs: ["line", "allOrderFulfillments", "orderState"] }, { kind: "component", type: LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: CouponCodeSelectorComponent, selector: "vdr-coupon-code-selector", inputs: ["couponCodes", "control"], outputs: ["addCouponCode", "removeCouponCode"] }, { kind: "component", type: OrderModificationSummaryComponent, selector: "vdr-order-modification-summary", inputs: ["orderSnapshot", "modifyOrderInput", "addedLines", "shippingAddressForm", "billingAddressForm", "updatedShippingMethods", "couponCodesControl"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.CustomFieldLabelPipe, name: "customFieldLabel" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3186
3204
|
}
|
|
3187
3205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OrderEditorComponent, decorators: [{
|
|
3188
3206
|
type: Component,
|
|
@@ -3194,6 +3212,7 @@ class OrderListComponent extends TypedBaseListComponent {
|
|
|
3194
3212
|
super();
|
|
3195
3213
|
this.serverConfigService = serverConfigService;
|
|
3196
3214
|
this.channelService = channelService;
|
|
3215
|
+
this.dataTableListId = 'order-list';
|
|
3197
3216
|
this.orderStates = this.serverConfigService.getOrderProcessStates().map(item => item.name);
|
|
3198
3217
|
this.OrderType = OrderType;
|
|
3199
3218
|
this.customFields = this.getCustomFieldConfig('Order');
|
|
@@ -3326,11 +3345,11 @@ class OrderListComponent extends TypedBaseListComponent {
|
|
|
3326
3345
|
}
|
|
3327
3346
|
}
|
|
3328
3347
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OrderListComponent, deps: [{ token: i1.ServerConfigService }, { token: i1.ChannelService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3329
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: OrderListComponent, selector: "vdr-order-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\" />\r\n <ng-container *ngIf=\"canCreateDraftOrder\">\r\n <a class=\"btn\" *vdrIfPermissions=\"['CreateOrder']\" [routerLink]=\"['./draft/create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-draft-order' | translate }}\r\n </a>\r\n </ng-container>\r\n <vdr-action-bar-dropdown-menu locationId=\"order-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"
|
|
3348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: OrderListComponent, selector: "vdr-order-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\" />\r\n <ng-container *ngIf=\"canCreateDraftOrder\">\r\n <a class=\"btn\" *vdrIfPermissions=\"['CreateOrder']\" [routerLink]=\"['./draft/create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-draft-order' | translate }}\r\n </a>\r\n </ng-container>\r\n <vdr-action-bar-dropdown-menu locationId=\"order-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"order-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'order.search-by-order-filters' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"order.state === 'Draft' ? ['./draft', order.id] : ['./', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.customer' | translate\" id=\"customer\" [sort]=\"sorts.get('customerLastName')\">\r\n <ng-template let-order=\"item\">\r\n <vdr-customer-label\r\n [customer]=\"order.customer\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></vdr-customer-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" id=\"order-type\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip *ngIf=\"order.type === OrderType.Regular\">{{ 'order.order-type-regular' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"order.type === OrderType.Aggregate\">{{ 'order.order-type-aggregate' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"order.type === OrderType.Seller\">{{ 'order.order-type-seller' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\" [sort]=\"sorts.get('state')\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\" [sort]=\"sorts.get('totalWithTax')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\" [sort]=\"sorts.get('orderPlacedAt')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.shipping' | translate\" id=\"shipping\">\r\n <ng-template let-order=\"item\">\r\n {{ getShippingNames(order) }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".search-form{display:flex;flex-direction:column;align-items:baseline;width:100%;max-width:100vw;margin-bottom:6px}.filter-presets{max-width:90vw;overflow-x:auto}.search-input{margin-top:6px;min-width:300px}.custom-filters{overflow:hidden;max-height:0;padding-bottom:6px}.custom-filters.expanded{max-height:initial}.custom-filters>form{display:flex;flex-direction:column;align-items:center}.custom-filters>form>div{width:100%}ng-select{flex:1;min-width:200px;height:36px}ng-select ::ng-deep .ng-select-container{height:36px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.CustomerLabelComponent, selector: "vdr-customer-label", inputs: ["customer"] }, { kind: "component", type: i1.OrderStateLabelComponent, selector: "vdr-order-state-label", inputs: ["state"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3330
3349
|
}
|
|
3331
3350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OrderListComponent, decorators: [{
|
|
3332
3351
|
type: Component,
|
|
3333
|
-
args: [{ selector: 'vdr-order-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\" />\r\n <ng-container *ngIf=\"canCreateDraftOrder\">\r\n <a class=\"btn\" *vdrIfPermissions=\"['CreateOrder']\" [routerLink]=\"['./draft/create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-draft-order' | translate }}\r\n </a>\r\n </ng-container>\r\n <vdr-action-bar-dropdown-menu locationId=\"order-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"
|
|
3352
|
+
args: [{ selector: 'vdr-order-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\" />\r\n <ng-container *ngIf=\"canCreateDraftOrder\">\r\n <a class=\"btn\" *vdrIfPermissions=\"['CreateOrder']\" [routerLink]=\"['./draft/create']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-draft-order' | translate }}\r\n </a>\r\n </ng-container>\r\n <vdr-action-bar-dropdown-menu locationId=\"order-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"order-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'order.search-by-order-filters' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n {{ order.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\r\n <ng-template let-order=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"order.state === 'Draft' ? ['./draft', order.id] : ['./', order.id]\"\r\n ><span>{{ order.code }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.customer' | translate\" id=\"customer\" [sort]=\"sorts.get('customerLastName')\">\r\n <ng-template let-order=\"item\">\r\n <vdr-customer-label\r\n [customer]=\"order.customer\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></vdr-customer-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.order-type' | translate\" id=\"order-type\" [hiddenByDefault]=\"true\">\r\n <ng-template let-order=\"item\">\r\n <vdr-chip *ngIf=\"order.type === OrderType.Regular\">{{ 'order.order-type-regular' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"order.type === OrderType.Aggregate\">{{ 'order.order-type-aggregate' | translate }}</vdr-chip>\r\n <vdr-chip *ngIf=\"order.type === OrderType.Seller\">{{ 'order.order-type-seller' | translate }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\" [sort]=\"sorts.get('state')\">\r\n <ng-template let-order=\"item\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\" [sort]=\"sorts.get('totalWithTax')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\r\n <ng-template let-order=\"item\">\r\n {{ order.updatedAt | timeAgo }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\" [sort]=\"sorts.get('orderPlacedAt')\">\r\n <ng-template let-order=\"item\">\r\n {{ order.orderPlacedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'order.shipping' | translate\" id=\"shipping\">\r\n <ng-template let-order=\"item\">\r\n {{ getShippingNames(order) }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".search-form{display:flex;flex-direction:column;align-items:baseline;width:100%;max-width:100vw;margin-bottom:6px}.filter-presets{max-width:90vw;overflow-x:auto}.search-input{margin-top:6px;min-width:300px}.custom-filters{overflow:hidden;max-height:0;padding-bottom:6px}.custom-filters.expanded{max-height:initial}.custom-filters>form{display:flex;flex-direction:column;align-items:center}.custom-filters>form>div{width:100%}ng-select{flex:1;min-width:200px;height:36px}ng-select ::ng-deep .ng-select-container{height:36px}\n"] }]
|
|
3334
3353
|
}], ctorParameters: () => [{ type: i1.ServerConfigService }, { type: i1.ChannelService }] });
|
|
3335
3354
|
|
|
3336
3355
|
class RefundDetailComponent {
|
|
@@ -3413,7 +3432,6 @@ const createRoutes = (pageService) => [
|
|
|
3413
3432
|
{
|
|
3414
3433
|
path: '',
|
|
3415
3434
|
component: PageComponent,
|
|
3416
|
-
pathMatch: 'full',
|
|
3417
3435
|
data: {
|
|
3418
3436
|
locationId: 'order-list',
|
|
3419
3437
|
breadcrumb: marker('breadcrumb.orders'),
|