@vendure/admin-ui 1.6.4 → 1.7.1
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/bundles/vendure-admin-ui-catalog.umd.js +196 -20
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +292 -323
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-customer.umd.js +39 -18
- package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +141 -119
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +3 -3
- package/catalog/components/option-value-input/option-value-input.component.d.ts +20 -8
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +10 -3
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/common/generated-types.d.ts +89 -19
- package/core/common/utilities/configurable-operation-utils.d.ts +4 -2
- package/core/common/version.d.ts +1 -1
- package/core/data/definitions/order-definitions.d.ts +2 -0
- package/core/data/definitions/product-definitions.d.ts +1 -0
- package/core/data/providers/order-data.service.d.ts +1 -0
- package/core/data/providers/product-data.service.d.ts +1 -0
- package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +6 -2
- package/core/shared/components/data-table/data-table.component.d.ts +5 -2
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +2 -1
- package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
- package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
- package/customer/vendure-admin-ui-customer.metadata.json +1 -1
- package/esm2015/catalog/components/generate-product-variants/generate-product-variants.component.js +12 -5
- package/esm2015/catalog/components/option-value-input/option-value-input.component.js +62 -12
- package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +109 -11
- package/esm2015/core/common/generated-types.js +2 -1
- package/esm2015/core/common/introspection-result.js +191 -255
- package/esm2015/core/common/utilities/configurable-operation-utils.js +11 -8
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/components/app-shell/app-shell.component.js +1 -1
- package/esm2015/core/components/main-nav/main-nav.component.js +1 -1
- package/esm2015/core/data/definitions/order-definitions.js +39 -25
- package/esm2015/core/data/definitions/product-definitions.js +743 -735
- package/esm2015/core/data/providers/order-data.service.js +7 -2
- package/esm2015/core/data/providers/product-data.service.js +5 -2
- package/esm2015/core/shared/components/custom-field-control/custom-field-control.component.js +9 -3
- package/esm2015/core/shared/components/data-table/data-table.component.js +9 -2
- package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +15 -2
- package/esm2015/core/shared/pipes/custom-field-label.pipe.js +4 -19
- package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +25 -12
- package/esm2015/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +3 -2
- package/esm2015/order/components/fulfillment-detail/fulfillment-detail.component.js +9 -18
- package/esm2015/order/components/line-fulfillment/line-fulfillment.component.js +10 -21
- package/esm2015/order/components/order-custom-fields-card/order-custom-fields-card.component.js +30 -4
- package/esm2015/order/components/order-detail/order-detail.component.js +49 -20
- package/esm2015/order/components/order-list/order-list.component.js +22 -15
- package/esm2015/order/components/order-payment-card/order-payment-card.component.js +2 -2
- package/esm2015/order/components/order-table/order-table.component.js +1 -1
- package/fesm2015/vendure-admin-ui-catalog.js +177 -22
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +975 -995
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.js +23 -11
- package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +116 -75
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/order/components/line-fulfillment/line-fulfillment.component.d.ts +2 -2
- package/order/components/modification-detail/modification-detail.component.d.ts +1 -1
- package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
- package/order/components/order-list/order-list.component.d.ts +1 -0
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +2 -2
- package/static/i18n-messages/cs.json +6 -2
- package/static/i18n-messages/de.json +6 -2
- package/static/i18n-messages/en.json +8 -3
- package/static/i18n-messages/es.json +6 -2
- package/static/i18n-messages/fr.json +6 -2
- package/static/i18n-messages/it.json +6 -2
- package/static/i18n-messages/pl.json +6 -2
- package/static/i18n-messages/pt_BR.json +6 -2
- package/static/i18n-messages/pt_PT.json +6 -2
- package/static/i18n-messages/ru.json +6 -2
- package/static/i18n-messages/uk.json +6 -2
- package/static/i18n-messages/zh_Hans.json +6 -2
- package/static/i18n-messages/zh_Hant.json +6 -2
- package/static/styles/_variables.scss +3 -0
- package/static/styles/global/_sass-overrides.scss +3 -0
- package/static/styles/global/_utilities.scss +1 -0
- package/static/styles/styles.scss +1 -0
- package/static/styles/ui-extension-theme.scss +1 -0
- package/static/theme.min.css +1 -1
|
@@ -546,7 +546,8 @@
|
|
|
546
546
|
return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;
|
|
547
547
|
};
|
|
548
548
|
FulfillOrderDialogComponent.prototype.getUnfulfilledCount = function (line) {
|
|
549
|
-
var
|
|
549
|
+
var _a, _b;
|
|
550
|
+
var fulfilled = (_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(function (f) { return f.summary; }).flat().filter(function (row) { return row.orderLine.id === line.id; }).reduce(function (sum, row) { return sum + row.quantity; }, 0)) !== null && _b !== void 0 ? _b : 0;
|
|
550
551
|
return line.quantity - fulfilled;
|
|
551
552
|
};
|
|
552
553
|
FulfillOrderDialogComponent.prototype.canSubmit = function () {
|
|
@@ -653,66 +654,34 @@
|
|
|
653
654
|
});
|
|
654
655
|
Object.defineProperty(FulfillmentDetailComponent.prototype, "items", {
|
|
655
656
|
get: function () {
|
|
656
|
-
var
|
|
657
|
-
var _a;
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
var item = _g.value;
|
|
666
|
-
if (fulfillmentItemIds === null || fulfillmentItemIds === void 0 ? void 0 : fulfillmentItemIds.includes(item.id)) {
|
|
667
|
-
var count = itemMap.get(line.productVariant.name);
|
|
668
|
-
if (count != null) {
|
|
669
|
-
itemMap.set(line.productVariant.name, count + 1);
|
|
670
|
-
}
|
|
671
|
-
else {
|
|
672
|
-
itemMap.set(line.productVariant.name, 1);
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
678
|
-
finally {
|
|
679
|
-
try {
|
|
680
|
-
if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
|
|
681
|
-
}
|
|
682
|
-
finally { if (e_2) throw e_2.error; }
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
687
|
-
finally {
|
|
688
|
-
try {
|
|
689
|
-
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
690
|
-
}
|
|
691
|
-
finally { if (e_1) throw e_1.error; }
|
|
692
|
-
}
|
|
693
|
-
return Array.from(itemMap.entries()).map(function (_b) {
|
|
694
|
-
var _c = __read(_b, 2), name = _c[0], quantity = _c[1];
|
|
695
|
-
return ({ name: name, quantity: quantity });
|
|
696
|
-
});
|
|
657
|
+
var _this = this;
|
|
658
|
+
var _a, _b;
|
|
659
|
+
return ((_b = (_a = this.fulfillment) === null || _a === void 0 ? void 0 : _a.summary.map(function (row) {
|
|
660
|
+
var _a, _b;
|
|
661
|
+
return {
|
|
662
|
+
name: (_b = (_a = _this.order.lines.find(function (line) { return line.id === row.orderLine.id; })) === null || _a === void 0 ? void 0 : _a.productVariant.name) !== null && _b !== void 0 ? _b : '',
|
|
663
|
+
quantity: row.quantity,
|
|
664
|
+
};
|
|
665
|
+
})) !== null && _b !== void 0 ? _b : []);
|
|
697
666
|
},
|
|
698
667
|
enumerable: false,
|
|
699
668
|
configurable: true
|
|
700
669
|
});
|
|
701
670
|
FulfillmentDetailComponent.prototype.buildCustomFieldsFormGroup = function () {
|
|
702
|
-
var
|
|
671
|
+
var e_1, _c;
|
|
703
672
|
var customFields = this.fulfillment.customFields;
|
|
704
673
|
try {
|
|
705
|
-
for (var
|
|
706
|
-
var fieldDef =
|
|
674
|
+
for (var _d = __values(this.serverConfigService.getCustomFieldsFor('Fulfillment')), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
675
|
+
var fieldDef = _e.value;
|
|
707
676
|
this.customFieldFormGroup.addControl(fieldDef.name, new forms.FormControl(customFields[fieldDef.name]));
|
|
708
677
|
}
|
|
709
678
|
}
|
|
710
|
-
catch (
|
|
679
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
711
680
|
finally {
|
|
712
681
|
try {
|
|
713
|
-
if (
|
|
682
|
+
if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
|
|
714
683
|
}
|
|
715
|
-
finally { if (
|
|
684
|
+
finally { if (e_1) throw e_1.error; }
|
|
716
685
|
}
|
|
717
686
|
};
|
|
718
687
|
FulfillmentDetailComponent.prototype.customFieldIsObject = function (customField) {
|
|
@@ -784,7 +753,8 @@
|
|
|
784
753
|
* Returns the number of items in an OrderLine which are fulfilled.
|
|
785
754
|
*/
|
|
786
755
|
LineFulfillmentComponent.prototype.getDeliveredCount = function (line) {
|
|
787
|
-
|
|
756
|
+
var _a, _b;
|
|
757
|
+
return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.reduce(function (sum, fulfillment) { var _a, _b; return sum + ((_b = (_a = fulfillment.summary.find(function (s) { return s.orderLine.id === line.id; })) === null || _a === void 0 ? void 0 : _a.quantity) !== null && _b !== void 0 ? _b : 0); }, 0)) !== null && _b !== void 0 ? _b : 0);
|
|
788
758
|
};
|
|
789
759
|
LineFulfillmentComponent.prototype.getFulfillmentStatus = function (fulfilledCount, lineQuantity) {
|
|
790
760
|
if (fulfilledCount === lineQuantity) {
|
|
@@ -796,39 +766,15 @@
|
|
|
796
766
|
return 'none';
|
|
797
767
|
};
|
|
798
768
|
LineFulfillmentComponent.prototype.getFulfillments = function (line) {
|
|
799
|
-
var
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
var item = _c.value;
|
|
804
|
-
if (item.fulfillment) {
|
|
805
|
-
if (counts[item.fulfillment.id] === undefined) {
|
|
806
|
-
counts[item.fulfillment.id] = 1;
|
|
807
|
-
}
|
|
808
|
-
else {
|
|
809
|
-
counts[item.fulfillment.id]++;
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
815
|
-
finally {
|
|
816
|
-
try {
|
|
817
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
818
|
-
}
|
|
819
|
-
finally { if (e_1) throw e_1.error; }
|
|
820
|
-
}
|
|
821
|
-
var all = line.items.reduce(function (fulfillments, item) {
|
|
822
|
-
return item.fulfillment ? __spreadArray(__spreadArray([], __read(fulfillments)), [item.fulfillment]) : fulfillments;
|
|
823
|
-
}, []);
|
|
824
|
-
return Object.entries(counts).map(function (_a) {
|
|
825
|
-
var _b = __read(_a, 2), id = _b[0], count = _b[1];
|
|
769
|
+
var _a, _b;
|
|
770
|
+
return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(function (fulfillment) {
|
|
771
|
+
var _a;
|
|
772
|
+
var summaryLine = fulfillment.summary.find(function (s) { return s.orderLine.id === line.id; });
|
|
826
773
|
return {
|
|
827
|
-
count:
|
|
828
|
-
|
|
829
|
-
fulfillment: all.find(function (f) { return f.id === id; }),
|
|
774
|
+
count: (_a = summaryLine === null || summaryLine === void 0 ? void 0 : summaryLine.quantity) !== null && _a !== void 0 ? _a : 0,
|
|
775
|
+
fulfillment: fulfillment,
|
|
830
776
|
};
|
|
831
|
-
});
|
|
777
|
+
})) !== null && _b !== void 0 ? _b : []);
|
|
832
778
|
};
|
|
833
779
|
return LineFulfillmentComponent;
|
|
834
780
|
}());
|
|
@@ -973,8 +919,9 @@
|
|
|
973
919
|
};
|
|
974
920
|
|
|
975
921
|
var OrderCustomFieldsCardComponent = /** @class */ (function () {
|
|
976
|
-
function OrderCustomFieldsCardComponent(formBuilder) {
|
|
922
|
+
function OrderCustomFieldsCardComponent(formBuilder, modalService) {
|
|
977
923
|
this.formBuilder = formBuilder;
|
|
924
|
+
this.modalService = modalService;
|
|
978
925
|
this.customFieldsConfig = [];
|
|
979
926
|
this.customFieldValues = {};
|
|
980
927
|
this.updateClick = new i0.EventEmitter();
|
|
@@ -1002,18 +949,42 @@
|
|
|
1002
949
|
this.customFieldForm.markAsPristine();
|
|
1003
950
|
this.editable = false;
|
|
1004
951
|
};
|
|
952
|
+
OrderCustomFieldsCardComponent.prototype.onCancelClick = function () {
|
|
953
|
+
var _this = this;
|
|
954
|
+
if (this.customFieldForm.dirty) {
|
|
955
|
+
this.modalService
|
|
956
|
+
.dialog({
|
|
957
|
+
title: ngxTranslateExtractMarker.marker('catalog.confirm-cancel'),
|
|
958
|
+
buttons: [
|
|
959
|
+
{ type: 'secondary', label: ngxTranslateExtractMarker.marker('common.keep-editing') },
|
|
960
|
+
{ type: 'danger', label: ngxTranslateExtractMarker.marker('common.discard-changes'), returnValue: true },
|
|
961
|
+
],
|
|
962
|
+
})
|
|
963
|
+
.subscribe(function (result) {
|
|
964
|
+
if (result) {
|
|
965
|
+
_this.customFieldForm.reset();
|
|
966
|
+
_this.customFieldForm.markAsPristine();
|
|
967
|
+
_this.editable = false;
|
|
968
|
+
}
|
|
969
|
+
});
|
|
970
|
+
}
|
|
971
|
+
else {
|
|
972
|
+
this.editable = false;
|
|
973
|
+
}
|
|
974
|
+
};
|
|
1005
975
|
return OrderCustomFieldsCardComponent;
|
|
1006
976
|
}());
|
|
1007
977
|
OrderCustomFieldsCardComponent.decorators = [
|
|
1008
978
|
{ type: i0.Component, args: [{
|
|
1009
979
|
selector: 'vdr-order-custom-fields-card',
|
|
1010
|
-
template: "<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\r\n <div class=\"card-header\">\r\n {{ 'common.custom-fields' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\r\n <
|
|
980
|
+
template: "<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\r\n <div class=\"card-header\">\r\n {{ 'common.custom-fields' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Order\"\r\n [customFields]=\"customFieldsConfig\"\r\n [customFieldsFormGroup]=\"customFieldForm\"\r\n [readonly]=\"!editable\"\r\n [compact]=\"true\"\r\n ></vdr-tabbed-custom-fields>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"editable = true\" *ngIf=\"!editable\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n (click)=\"onUpdateClick()\"\r\n *ngIf=\"editable\"\r\n [disabled]=\"customFieldForm.pristine || customFieldForm.invalid\"\r\n >\r\n <clr-icon shape=\"check\"></clr-icon>\r\n {{ 'common.update' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"onCancelClick()\"\r\n *ngIf=\"editable\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
|
|
1011
981
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1012
982
|
styles: ["vdr-custom-field-control{margin-bottom:6px;display:block}.custom-field-form ::ng-deep .clr-control-label{color:var(--color-grey-400)}.custom-field-form.editable ::ng-deep .clr-control-label{color:inherit}\n"]
|
|
1013
983
|
},] }
|
|
1014
984
|
];
|
|
1015
985
|
OrderCustomFieldsCardComponent.ctorParameters = function () { return [
|
|
1016
|
-
{ type: forms.FormBuilder }
|
|
986
|
+
{ type: forms.FormBuilder },
|
|
987
|
+
{ type: i1.ModalService }
|
|
1017
988
|
]; };
|
|
1018
989
|
OrderCustomFieldsCardComponent.propDecorators = {
|
|
1019
990
|
customFieldsConfig: [{ type: i0.Input }],
|
|
@@ -1504,28 +1475,72 @@
|
|
|
1504
1475
|
OrderDetailComponent.prototype.transitionPaymentState = function (_d) {
|
|
1505
1476
|
var _this = this;
|
|
1506
1477
|
var payment = _d.payment, state = _d.state;
|
|
1507
|
-
|
|
1508
|
-
.
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1478
|
+
if (state === 'Cancelled') {
|
|
1479
|
+
this.dataService.order.cancelPayment(payment.id).subscribe(function (_d) {
|
|
1480
|
+
var cancelPayment = _d.cancelPayment;
|
|
1481
|
+
switch (cancelPayment.__typename) {
|
|
1482
|
+
case 'Payment':
|
|
1483
|
+
_this.notificationService.success(ngxTranslateExtractMarker.marker('order.transitioned-payment-to-state-success'), {
|
|
1484
|
+
state: state,
|
|
1485
|
+
});
|
|
1486
|
+
_this.dataService.order.getOrder(_this.id).single$.subscribe();
|
|
1487
|
+
_this.fetchHistory.next();
|
|
1488
|
+
break;
|
|
1489
|
+
case 'PaymentStateTransitionError':
|
|
1490
|
+
_this.notificationService.error(cancelPayment.transitionError);
|
|
1491
|
+
break;
|
|
1492
|
+
case 'CancelPaymentError':
|
|
1493
|
+
_this.notificationService.error(cancelPayment.paymentErrorMessage);
|
|
1494
|
+
break;
|
|
1495
|
+
}
|
|
1496
|
+
});
|
|
1497
|
+
}
|
|
1498
|
+
else {
|
|
1499
|
+
this.dataService.order
|
|
1500
|
+
.transitionPaymentToState(payment.id, state)
|
|
1501
|
+
.subscribe(function (_d) {
|
|
1502
|
+
var transitionPaymentToState = _d.transitionPaymentToState;
|
|
1503
|
+
switch (transitionPaymentToState.__typename) {
|
|
1504
|
+
case 'Payment':
|
|
1505
|
+
_this.notificationService.success(ngxTranslateExtractMarker.marker('order.transitioned-payment-to-state-success'), {
|
|
1506
|
+
state: state,
|
|
1507
|
+
});
|
|
1508
|
+
_this.dataService.order.getOrder(_this.id).single$.subscribe();
|
|
1509
|
+
_this.fetchHistory.next();
|
|
1510
|
+
break;
|
|
1511
|
+
case 'PaymentStateTransitionError':
|
|
1512
|
+
_this.notificationService.error(transitionPaymentToState.message);
|
|
1513
|
+
break;
|
|
1514
|
+
}
|
|
1515
|
+
});
|
|
1516
|
+
}
|
|
1524
1517
|
};
|
|
1525
1518
|
OrderDetailComponent.prototype.canAddFulfillment = function (order) {
|
|
1526
|
-
var
|
|
1527
|
-
|
|
1528
|
-
|
|
1519
|
+
var e_1, _d;
|
|
1520
|
+
var _a;
|
|
1521
|
+
var allFulfillmentSummaryRows = ((_a = order.fulfillments) !== null && _a !== void 0 ? _a : []).reduce(function (all, fulfillment) { return __spreadArray(__spreadArray([], __read(all)), __read(fulfillment.summary)); }, []);
|
|
1522
|
+
var allItemsFulfilled = true;
|
|
1523
|
+
var _loop_1 = function (line) {
|
|
1524
|
+
var totalFulfilledCount = allFulfillmentSummaryRows
|
|
1525
|
+
.filter(function (row) { return row.orderLine.id === line.id; })
|
|
1526
|
+
.reduce(function (sum, row) { return sum + row.quantity; }, 0);
|
|
1527
|
+
if (totalFulfilledCount < line.quantity) {
|
|
1528
|
+
allItemsFulfilled = false;
|
|
1529
|
+
}
|
|
1530
|
+
};
|
|
1531
|
+
try {
|
|
1532
|
+
for (var _e = __values(order.lines), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
1533
|
+
var line = _f.value;
|
|
1534
|
+
_loop_1(line);
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
1538
|
+
finally {
|
|
1539
|
+
try {
|
|
1540
|
+
if (_f && !_f.done && (_d = _e.return)) _d.call(_e);
|
|
1541
|
+
}
|
|
1542
|
+
finally { if (e_1) throw e_1.error; }
|
|
1543
|
+
}
|
|
1529
1544
|
return (!allItemsFulfilled &&
|
|
1530
1545
|
!this.hasUnsettledModifications(order) &&
|
|
1531
1546
|
this.outstandingPaymentAmount(order) === 0 &&
|
|
@@ -1540,7 +1555,7 @@
|
|
|
1540
1555
|
return sharedUtils.summate(order.modifications.filter(function (m) { return !m.isSettled; }), 'priceChange');
|
|
1541
1556
|
};
|
|
1542
1557
|
OrderDetailComponent.prototype.outstandingPaymentAmount = function (order) {
|
|
1543
|
-
var
|
|
1558
|
+
var e_2, _d;
|
|
1544
1559
|
var _a, _b, _c;
|
|
1545
1560
|
var paymentIsValid = function (p) { return p.state !== 'Cancelled' && p.state !== 'Declined' && p.state !== 'Error'; };
|
|
1546
1561
|
var amountCovered = 0;
|
|
@@ -1552,12 +1567,12 @@
|
|
|
1552
1567
|
amountCovered += payment.amount - refundsTotal;
|
|
1553
1568
|
}
|
|
1554
1569
|
}
|
|
1555
|
-
catch (
|
|
1570
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
1556
1571
|
finally {
|
|
1557
1572
|
try {
|
|
1558
1573
|
if (_f && !_f.done && (_d = _e.return)) _d.call(_e);
|
|
1559
1574
|
}
|
|
1560
|
-
finally { if (
|
|
1575
|
+
finally { if (e_2) throw e_2.error; }
|
|
1561
1576
|
}
|
|
1562
1577
|
return order.totalWithTax - amountCovered;
|
|
1563
1578
|
};
|
|
@@ -2579,6 +2594,7 @@
|
|
|
2579
2594
|
_this.serverConfigService = serverConfigService;
|
|
2580
2595
|
_this.dataService = dataService;
|
|
2581
2596
|
_this.localStorageService = localStorageService;
|
|
2597
|
+
_this.searchControl = new forms.FormControl('');
|
|
2582
2598
|
_this.searchOrderCodeControl = new forms.FormControl('');
|
|
2583
2599
|
_this.searchLastNameControl = new forms.FormControl('');
|
|
2584
2600
|
_this.orderStates = _this.serverConfigService.getOrderProcessStates().map(function (item) { return item.name; });
|
|
@@ -2619,7 +2635,7 @@
|
|
|
2619
2635
|
// tslint:disable-next-line:no-shadowed-variable
|
|
2620
2636
|
function (take, skip) { return _this.dataService.order.getOrders({ take: take, skip: skip }).refetchOnChannelChange(); }, function (data) { return data.orders; },
|
|
2621
2637
|
// tslint:disable-next-line:no-shadowed-variable
|
|
2622
|
-
function (skip, take) { return _this.createQueryOptions(skip, take, _this.
|
|
2638
|
+
function (skip, take) { return _this.createQueryOptions(skip, take, _this.searchControl.value, _this.route.snapshot.queryParamMap.get('filter') || 'open'); });
|
|
2623
2639
|
var lastFilters = _this.localStorageService.get('orderListLastCustomFilters');
|
|
2624
2640
|
if (lastFilters) {
|
|
2625
2641
|
_this.setQueryParam(lastFilters, { replaceUrl: true });
|
|
@@ -2631,7 +2647,7 @@
|
|
|
2631
2647
|
var _a;
|
|
2632
2648
|
_super.prototype.ngOnInit.call(this);
|
|
2633
2649
|
this.activePreset$ = this.route.queryParamMap.pipe(operators.map(function (qpm) { return qpm.get('filter') || 'open'; }), operators.distinctUntilChanged());
|
|
2634
|
-
var searchTerms$ = rxjs.merge(this.
|
|
2650
|
+
var searchTerms$ = rxjs.merge(this.searchControl.valueChanges).pipe(operators.filter(function (value) { return 2 < value.length || value.length === 0; }), operators.debounceTime(250));
|
|
2635
2651
|
rxjs.merge(searchTerms$, this.route.queryParamMap)
|
|
2636
2652
|
.pipe(operators.takeUntil(this.destroy$))
|
|
2637
2653
|
.subscribe(function (val) {
|
|
@@ -2664,11 +2680,12 @@
|
|
|
2664
2680
|
};
|
|
2665
2681
|
OrderListComponent.prototype.createQueryOptions = function (
|
|
2666
2682
|
// tslint:disable-next-line:no-shadowed-variable
|
|
2667
|
-
skip, take,
|
|
2683
|
+
skip, take, searchTerm, activeFilterPreset) {
|
|
2668
2684
|
var _a;
|
|
2669
2685
|
var filterConfig = this.filterPresets.find(function (p) { return p.name === activeFilterPreset; });
|
|
2670
2686
|
// tslint:disable-next-line:no-shadowed-variable
|
|
2671
2687
|
var filter = {};
|
|
2688
|
+
var filterOperator = i1.LogicalOperator.AND;
|
|
2672
2689
|
if (filterConfig) {
|
|
2673
2690
|
if (filterConfig.config.active != null) {
|
|
2674
2691
|
filter.active = {
|
|
@@ -2710,15 +2727,19 @@
|
|
|
2710
2727
|
};
|
|
2711
2728
|
}
|
|
2712
2729
|
}
|
|
2713
|
-
if (
|
|
2714
|
-
filter
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2730
|
+
if (searchTerm) {
|
|
2731
|
+
filter = {
|
|
2732
|
+
customerLastName: {
|
|
2733
|
+
contains: searchTerm,
|
|
2734
|
+
},
|
|
2735
|
+
transactionId: {
|
|
2736
|
+
contains: searchTerm,
|
|
2737
|
+
},
|
|
2738
|
+
code: {
|
|
2739
|
+
contains: searchTerm,
|
|
2740
|
+
},
|
|
2721
2741
|
};
|
|
2742
|
+
filterOperator = i1.LogicalOperator.OR;
|
|
2722
2743
|
}
|
|
2723
2744
|
return {
|
|
2724
2745
|
options: {
|
|
@@ -2728,6 +2749,7 @@
|
|
|
2728
2749
|
sort: {
|
|
2729
2750
|
updatedAt: i1.SortOrder.DESC,
|
|
2730
2751
|
},
|
|
2752
|
+
filterOperator: filterOperator,
|
|
2731
2753
|
},
|
|
2732
2754
|
};
|
|
2733
2755
|
};
|
|
@@ -2744,7 +2766,7 @@
|
|
|
2744
2766
|
OrderListComponent.decorators = [
|
|
2745
2767
|
{ type: i0.Component, args: [{
|
|
2746
2768
|
selector: 'vdr-order-list',
|
|
2747
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"search-form\">\r\n <div class=\"btn-group btn-outline-primary\" *ngIf=\"activePreset$ | async as activePreset\">\r\n <button\r\n class=\"btn\"\r\n *ngFor=\"let preset of filterPresets\"\r\n [class.btn-primary]=\"activePreset === preset.name\"\r\n (click)=\"selectFilterPreset(preset.name)\"\r\n >\r\n {{ preset.label | translate }}\r\n </button>\r\n <button\r\n class=\"btn\"\r\n [class.btn-primary]=\"activePreset === 'custom'\"\r\n (click)=\"selectFilterPreset('custom')\"\r\n >\r\n {{ 'order.filter-custom' | translate }}\r\n <clr-icon shape=\"angle down\"></clr-icon>\r\n </button>\r\n </div>\r\n
|
|
2769
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"search-form\">\r\n <div class=\"btn-group btn-outline-primary\" *ngIf=\"activePreset$ | async as activePreset\">\r\n <button\r\n class=\"btn\"\r\n *ngFor=\"let preset of filterPresets\"\r\n [class.btn-primary]=\"activePreset === preset.name\"\r\n (click)=\"selectFilterPreset(preset.name)\"\r\n >\r\n {{ preset.label | translate }}\r\n </button>\r\n <button\r\n class=\"btn\"\r\n [class.btn-primary]=\"activePreset === 'custom'\"\r\n (click)=\"selectFilterPreset('custom')\"\r\n >\r\n {{ 'order.filter-custom' | translate }}\r\n <clr-icon shape=\"angle down\"></clr-icon>\r\n </button>\r\n </div>\r\n <input\r\n type=\"text\"\r\n name=\"searchTerm\"\r\n [formControl]=\"searchControl\"\r\n [placeholder]=\"'order.search-by-order-filters' | translate\"\r\n class=\"search-input\"\r\n />\r\n </div>\r\n <div class=\"custom-filters\" [class.expanded]=\"(activePreset$ | async) === 'custom'\">\r\n <form [formGroup]=\"customFilterForm\">\r\n <div class=\"flex align-center\">\r\n <ng-select\r\n [items]=\"orderStates\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n formControlName=\"states\"\r\n [placeholder]=\"'state.all-orders' | translate\"\r\n [clearable]=\"true\"\r\n [searchable]=\"false\"\r\n >\r\n <ng-template ng-option-tmp let-item=\"item\">{{ item | stateI18nToken | translate }}</ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\"> {{ item | stateI18nToken | translate }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\u00D7</span>\r\n </ng-template>\r\n </ng-select>\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"customFilterForm.pristine\"\r\n (click)=\"applyCustomFilters()\"\r\n >\r\n {{ 'order.apply-filters' | translate }}\r\n <clr-icon shape=\"filter\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"flex\">\r\n <div>\r\n <label>{{ 'order.placed-at-start' | translate }}</label>\r\n <vdr-datetime-picker formControlName=\"placedAtStart\"></vdr-datetime-picker>\r\n </div>\r\n <div>\r\n <label>{{ 'order.placed-at-end' | translate }}</label>\r\n <vdr-datetime-picker formControlName=\"placedAtEnd\"></vdr-datetime-picker>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\"></vdr-action-bar-items>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.customer' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.placed-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.shipping' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left align-middle\">{{ order.code }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-customer-label [customer]=\"order.customer\"></vdr-customer-label>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </td>\r\n <td class=\"left align-middle\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left align-middle\">{{ order.updatedAt | timeAgo }}</td>\r\n <td class=\"left align-middle\">{{ order.orderPlacedAt | localeDate: 'medium' }}</td>\r\n <td class=\"left align-middle\">{{ getShippingNames(order) }}</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"order.state === 'Modifying' ? ['./', order.id, 'modify'] : ['./', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
|
|
2748
2770
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
2749
2771
|
styles: [".search-form{display:flex;flex-direction:column;align-items:baseline;width:100%;margin-bottom:6px}@media screen and (min-width: 768px){.search-form{flex-direction:row}}.search-input{margin-left:6px;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"]
|
|
2750
2772
|
},] }
|
|
@@ -2770,7 +2792,7 @@
|
|
|
2770
2792
|
if (!this.payment) {
|
|
2771
2793
|
return [];
|
|
2772
2794
|
}
|
|
2773
|
-
return this.payment.nextStates.filter(function (s) { return s !== 'Settled'; });
|
|
2795
|
+
return this.payment.nextStates.filter(function (s) { return s !== 'Settled' && s !== 'Error'; });
|
|
2774
2796
|
};
|
|
2775
2797
|
return OrderPaymentCardComponent;
|
|
2776
2798
|
}());
|