UNPKG

@spartacus/storefront

Version:

Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.

89 lines 13.4 kB
import { formatCurrency, getCurrencySymbol } from '@angular/common'; import { Injectable } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { map, switchMap, tap } from 'rxjs/operators'; import { AmendOrderType } from './amend-order.model'; import * as i0 from "@angular/core"; import * as i1 from "../order-details/order-details.service"; function ValidateQuantityToCancel(control) { if (!control.value) { return null; } const quantity = Object.values(control.value).reduce((acc, val) => acc + val, 0); return quantity > 0 ? null : { cxNoSelectedItemToCancel: true }; } /** * @deprecated since 4.2 - use order lib instead */ export class OrderAmendService { constructor(orderDetailsService) { this.orderDetailsService = orderDetailsService; } /** * Returns entries with an amended quantity. */ getAmendedEntries() { return this.getForm().pipe(switchMap((form) => { return this.getEntries().pipe(map((entries) => entries.filter((entry) => this.getFormControl(form, entry).value > 0))); })); } getOrder() { return this.orderDetailsService.getOrderDetails(); } /** * returns the form with form data at runtime */ getForm() { return this.getOrder().pipe(tap((order) => { if (!this.form || this.form.get('orderCode').value !== order.code) { this.buildForm(order); } }), map(() => this.form)); } buildForm(order) { this.form = new FormGroup({}); this.form.addControl('orderCode', new FormControl(order.code)); const entryGroup = new FormGroup({}, { validators: [ValidateQuantityToCancel] }); this.form.addControl('entries', entryGroup); (order.entries || []).forEach((entry) => { const key = entry.entryNumber.toString(); entryGroup.addControl(key, new FormControl(0, { validators: [ Validators.min(0), Validators.max(this.getMaxAmendQuantity(entry)), ], })); }); } getFormControl(form, entry) { return form.get('entries').get(entry.entryNumber.toString()); } /** * As discussed, this calculation is moved to SPA side. * The calculation and validation should be in backend facade layer. */ getAmendedPrice(entry) { const amendedQuantity = this.getFormControl(this.form, entry).value; const amendedPrice = Object.assign({}, entry.basePrice); amendedPrice.value = Math.round(entry.basePrice.value * amendedQuantity * 100) / 100; amendedPrice.formattedValue = formatCurrency(amendedPrice.value, // TODO: user current language 'en', getCurrencySymbol(amendedPrice.currencyIso, 'narrow'), amendedPrice.currencyIso); return amendedPrice; } getMaxAmendQuantity(entry) { return ((this.isCancellation() ? entry.cancellableQuantity : entry.returnableQuantity) || entry.quantity); } isCancellation() { return this.amendType === AmendOrderType.CANCEL; } } OrderAmendService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderAmendService, deps: [{ token: i1.OrderDetailsService }], target: i0.ɵɵFactoryTarget.Injectable }); OrderAmendService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderAmendService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderAmendService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.OrderDetailsService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1lbmQtb3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvbXlhY2NvdW50L29yZGVyL2FtZW5kLW9yZGVyL2FtZW5kLW9yZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFckQsU0FBUyx3QkFBd0IsQ0FBQyxPQUFvQjtJQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNsQixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUNsRCxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQ3ZDLENBQUMsQ0FDRixDQUFDO0lBQ0YsT0FBTyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDbEUsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFnQixpQkFBaUI7SUFJckMsWUFBc0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7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QyxLQUFLO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUVsRSxZQUFZLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FDMUMsWUFBWSxDQUFDLEtBQUs7UUFDbEIsOEJBQThCO1FBQzlCLElBQUksRUFDSixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUNyRCxZQUFZLENBQUMsV0FBVyxDQUN6QixDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWlCO1FBQ25DLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUI7WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQ2hELENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ2xELENBQUM7OzhHQTlHbUIsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdEN1cnJlbmN5LCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3JkZXIsIE9yZGVyRW50cnksIFByaWNlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcmRlckRldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW1lbmRPcmRlclR5cGUgfSBmcm9tICcuL2FtZW5kLW9yZGVyLm1vZGVsJztcblxuZnVuY3Rpb24gVmFsaWRhdGVRdWFudGl0eVRvQ2FuY2VsKGNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG4gIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHF1YW50aXR5ID0gT2JqZWN0LnZhbHVlcyhjb250cm9sLnZhbHVlKS5yZWR1Y2UoXG4gICAgKGFjYzogbnVtYmVyLCB2YWw6IG51bWJlcikgPT4gYWNjICsgdmFsLFxuICAgIDBcbiAgKTtcbiAgcmV0dXJuIHF1YW50aXR5ID4gMCA/IG51bGwgOiB7IGN4Tm9TZWxlY3RlZEl0ZW1Ub0NhbmNlbDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHNpbmNlIDQuMiAtIHVzZSBvcmRlciBsaWIgaW5zdGVhZFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT3JkZXJBbWVuZFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgYW1lbmRUeXBlOiBBbWVuZE9yZGVyVHlwZTtcbiAgcHJvdGVjdGVkIGZvcm06IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3JkZXJEZXRhaWxzU2VydmljZTogT3JkZXJEZXRhaWxzU2VydmljZSkge31cblxuICAvKipcbiAgICogUmV0dXJucyBlbnRyaWVzIGZvciB0aGUgZ2l2ZW4gb3JkZXIuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRFbnRyaWVzKCk6IE9ic2VydmFibGU8T3JkZXJFbnRyeVtdPjtcblxuICAvKipcbiAgICogUmV0dXJucyBlbnRyaWVzIHdpdGggYW4gYW1lbmRlZCBxdWFudGl0eS5cbiAgICovXG4gIGdldEFtZW5kZWRFbnRyaWVzKCk6IE9ic2VydmFibGU8T3JkZXJFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGZvcm0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50cmllcygpLnBpcGUoXG4gICAgICAgICAgbWFwKChlbnRyaWVzKSA9PlxuICAgICAgICAgICAgZW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChlbnRyeSkgPT4gdGhpcy5nZXRGb3JtQ29udHJvbChmb3JtLCBlbnRyeSkudmFsdWUgPiAwXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdHMgdGhlIGFtZW5kZWQgb3JkZXIuXG4gICAqL1xuICBhYnN0cmFjdCBzYXZlKCk6IHZvaWQ7XG5cbiAgZ2V0T3JkZXIoKTogT2JzZXJ2YWJsZTxPcmRlcj4ge1xuICAgIHJldHVybiB0aGlzLm9yZGVyRGV0YWlsc1NlcnZpY2UuZ2V0T3JkZXJEZXRhaWxzKCk7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJucyB0aGUgZm9ybSB3aXRoIGZvcm0gZGF0YSBhdCBydW50aW1lXG4gICAqL1xuICBnZXRGb3JtKCk6IE9ic2VydmFibGU8Rm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3JkZXIoKS5waXBlKFxuICAgICAgdGFwKChvcmRlcikgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCB0aGlzLmZvcm0uZ2V0KCdvcmRlckNvZGUnKS52YWx1ZSAhPT0gb3JkZXIuY29kZSkge1xuICAgICAgICAgIHRoaXMuYnVpbGRGb3JtKG9yZGVyKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybShvcmRlcjogT3JkZXIpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3JkZXJDb2RlJywgbmV3IEZvcm1Db250cm9sKG9yZGVyLmNvZGUpKTtcblxuICAgIGNvbnN0IGVudHJ5R3JvdXAgPSBuZXcgRm9ybUdyb3VwKFxuICAgICAge30sXG4gICAgICB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0ZVF1YW50aXR5VG9DYW5jZWxdIH1cbiAgICApO1xuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdlbnRyaWVzJywgZW50cnlHcm91cCk7XG5cbiAgICAob3JkZXIuZW50cmllcyB8fCBbXSkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGVudHJ5LmVudHJ5TnVtYmVyLnRvU3RyaW5nKCk7XG4gICAgICBlbnRyeUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgIGtleSxcbiAgICAgICAgbmV3IEZvcm1Db250cm9sKDAsIHtcbiAgICAgICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigwKSxcbiAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4KHRoaXMuZ2V0TWF4QW1lbmRRdWFudGl0eShlbnRyeSkpLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZvcm1Db250cm9sKGZvcm06IEZvcm1Hcm91cCwgZW50cnk6IE9yZGVyRW50cnkpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIDxGb3JtQ29udHJvbD5mb3JtLmdldCgnZW50cmllcycpLmdldChlbnRyeS5lbnRyeU51bWJlci50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcyBkaXNjdXNzZWQsIHRoaXMgY2FsY3VsYXRpb24gaXMgbW92ZWQgdG8gU1BBIHNpZGUuXG4gICAqIFRoZSBjYWxjdWxhdGlvbiBhbmQgdmFsaWRhdGlvbiBzaG91bGQgYmUgaW4gYmFja2VuZCBmYWNhZGUgbGF5ZXIuXG4gICAqL1xuICBnZXRBbWVuZGVkUHJpY2UoZW50cnk6IE9yZGVyRW50cnkpOiBQcmljZSB7XG4gICAgY29uc3QgYW1lbmRlZFF1YW50aXR5ID0gdGhpcy5nZXRGb3JtQ29udHJvbCh0aGlzLmZvcm0sIGVudHJ5KS52YWx1ZTtcbiAgICBjb25zdCBhbWVuZGVkUHJpY2UgPSBPYmplY3QuYXNzaWduKHt9LCBlbnRyeS5iYXNlUHJpY2UpO1xuICAgIGFtZW5kZWRQcmljZS52YWx1ZSA9XG4gICAgICBNYXRoLnJvdW5kKGVudHJ5LmJhc2VQcmljZS52YWx1ZSAqIGFtZW5kZWRRdWFudGl0eSAqIDEwMCkgLyAxMDA7XG5cbiAgICBhbWVuZGVkUHJpY2UuZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXRDdXJyZW5jeShcbiAgICAgIGFtZW5kZWRQcmljZS52YWx1ZSxcbiAgICAgIC8vIFRPRE86IHVzZXIgY3VycmVudCBsYW5ndWFnZVxuICAgICAgJ2VuJyxcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKGFtZW5kZWRQcmljZS5jdXJyZW5jeUlzbywgJ25hcnJvdycpLFxuICAgICAgYW1lbmRlZFByaWNlLmN1cnJlbmN5SXNvXG4gICAgKTtcblxuICAgIHJldHVybiBhbWVuZGVkUHJpY2U7XG4gIH1cblxuICBnZXRNYXhBbWVuZFF1YW50aXR5KGVudHJ5OiBPcmRlckVudHJ5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmlzQ2FuY2VsbGF0aW9uKClcbiAgICAgICAgPyBlbnRyeS5jYW5jZWxsYWJsZVF1YW50aXR5XG4gICAgICAgIDogZW50cnkucmV0dXJuYWJsZVF1YW50aXR5KSB8fCBlbnRyeS5xdWFudGl0eVxuICAgICk7XG4gIH1cblxuICBpc0NhbmNlbGxhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hbWVuZFR5cGUgPT09IEFtZW5kT3JkZXJUeXBlLkNBTkNFTDtcbiAgfVxufVxuIl19