UNPKG

@spartacus/checkout

Version:

Checkout feature library for Spartacus

72 lines 10.4 kB
import { Injectable } from '@angular/core'; import { DeliveryModePreferences, } from '@spartacus/checkout/root'; import * as i0 from "@angular/core"; import * as i1 from "@spartacus/checkout/root"; export class CheckoutConfigService { constructor(checkoutConfig) { var _a, _b, _c, _d, _e; this.checkoutConfig = checkoutConfig; this.express = (_b = (_a = this.checkoutConfig.checkout) === null || _a === void 0 ? void 0 : _a.express) !== null && _b !== void 0 ? _b : false; this.guest = (_d = (_c = this.checkoutConfig.checkout) === null || _c === void 0 ? void 0 : _c.guest) !== null && _d !== void 0 ? _d : false; this.defaultDeliveryMode = ((_e = this.checkoutConfig.checkout) === null || _e === void 0 ? void 0 : _e.defaultDeliveryMode) || []; } compareDeliveryCost(deliveryMode1, deliveryMode2) { var _a, _b; if (((_a = deliveryMode1.deliveryCost) === null || _a === void 0 ? void 0 : _a.value) && ((_b = deliveryMode2.deliveryCost) === null || _b === void 0 ? void 0 : _b.value)) { if (deliveryMode1.deliveryCost.value > deliveryMode2.deliveryCost.value) { return 1; } else if (deliveryMode1.deliveryCost.value < deliveryMode2.deliveryCost.value) { return -1; } } return 0; } findMatchingDeliveryMode(deliveryModes, index = 0) { var _a; switch (this.defaultDeliveryMode[index]) { case DeliveryModePreferences.FREE: if (((_a = deliveryModes[0].deliveryCost) === null || _a === void 0 ? void 0 : _a.value) === 0) { return deliveryModes[0].code; } break; case DeliveryModePreferences.LEAST_EXPENSIVE: const leastExpensiveFound = deliveryModes.find((deliveryMode) => { var _a; return ((_a = deliveryMode.deliveryCost) === null || _a === void 0 ? void 0 : _a.value) !== 0; }); if (leastExpensiveFound) { return leastExpensiveFound.code; } break; case DeliveryModePreferences.MOST_EXPENSIVE: return deliveryModes[deliveryModes.length - 1].code; default: const codeFound = deliveryModes.find((deliveryMode) => deliveryMode.code === this.defaultDeliveryMode[index]); if (codeFound) { return codeFound.code; } } const lastMode = this.defaultDeliveryMode.length - 1 <= index; return lastMode ? deliveryModes[0].code : this.findMatchingDeliveryMode(deliveryModes, index + 1); } getPreferredDeliveryMode(deliveryModes) { deliveryModes.sort(this.compareDeliveryCost); return this.findMatchingDeliveryMode(deliveryModes); } isExpressCheckout() { return this.express; } isGuestCheckout() { return this.guest; } } CheckoutConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConfigService, deps: [{ token: i1.CheckoutConfig }], target: i0.ɵɵFactoryTarget.Injectable }); CheckoutConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConfigService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConfigService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.CheckoutConfig }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mZWF0dXJlLWxpYnMvY2hlY2tvdXQvY29tcG9uZW50cy9zZXJ2aWNlcy9jaGVja291dC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBTWxDLE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFBb0IsY0FBOEI7O1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUwxQyxZQUFPLEdBQVksTUFBQSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSwwQ0FBRSxPQUFPLG1DQUFJLEtBQUssQ0FBQztRQUNsRSxVQUFLLEdBQVksTUFBQSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSwwQ0FBRSxLQUFLLG1DQUFJLEtBQUssQ0FBQztRQUM5RCx3QkFBbUIsR0FDekIsQ0FBQSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSwwQ0FBRSxtQkFBbUIsS0FBSSxFQUFFLENBQUM7SUFFTCxDQUFDO0lBRTVDLG1CQUFtQixDQUMzQixhQUEyQixFQUMzQixhQUEyQjs7UUFFM0IsSUFDRSxDQUFBLE1BQUEsYUFBYSxDQUFDLFlBQVksMENBQUUsS0FBSzthQUNqQyxNQUFBLGFBQWEsQ0FBQyxZQUFZLDBDQUFFLEtBQUssQ0FBQSxFQUNqQztZQUNBLElBQUksYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZFLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU0sSUFDTCxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssRUFDbkU7Z0JBQ0EsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNYO1NBQ0Y7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUyx3QkFBd0IsQ0FDaEMsYUFBNkIsRUFDN0IsS0FBSyxHQUFHLENBQUM7O1FBRVQsUUFBUSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkMsS0FBSyx1QkFBdUIsQ0FBQyxJQUFJO2dCQUMvQixJQUFJLENBQUEsTUFBQSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSwwQ0FBRSxLQUFLLE1BQUssQ0FBQyxFQUFFO29CQUM5QyxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQzlCO2dCQUNELE1BQU07WUFDUixLQUFLLHVCQUF1QixDQUFDLGVBQWU7Z0JBQzFDLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FDNUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxXQUFDLE9BQUEsQ0FBQSxNQUFBLFlBQVksQ0FBQyxZQUFZLDBDQUFFLEtBQUssTUFBSyxDQUFDLENBQUEsRUFBQSxDQUN6RCxDQUFDO2dCQUNGLElBQUksbUJBQW1CLEVBQUU7b0JBQ3ZCLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDO2lCQUNqQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyx1QkFBdUIsQ0FBQyxjQUFjO2dCQUN6QyxPQUFPLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RDtnQkFDRSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUNsQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2YsWUFBWSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQ3hELENBQUM7Z0JBQ0YsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO2lCQUN2QjtTQUNKO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQzlELE9BQU8sUUFBUTtZQUNiLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHdCQUF3QixDQUFDLGFBQTZCO1FBQ3BELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztrSEF6RVUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hlY2tvdXRDb25maWcsXG4gIERlbGl2ZXJ5TW9kZVByZWZlcmVuY2VzLFxufSBmcm9tICdAc3BhcnRhY3VzL2NoZWNrb3V0L3Jvb3QnO1xuaW1wb3J0IHsgRGVsaXZlcnlNb2RlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0Q29uZmlnU2VydmljZSB7XG4gIHByaXZhdGUgZXhwcmVzczogYm9vbGVhbiA9IHRoaXMuY2hlY2tvdXRDb25maWcuY2hlY2tvdXQ/LmV4cHJlc3MgPz8gZmFsc2U7XG4gIHByaXZhdGUgZ3Vlc3Q6IGJvb2xlYW4gPSB0aGlzLmNoZWNrb3V0Q29uZmlnLmNoZWNrb3V0Py5ndWVzdCA/PyBmYWxzZTtcbiAgcHJpdmF0ZSBkZWZhdWx0RGVsaXZlcnlNb2RlOiBBcnJheTxEZWxpdmVyeU1vZGVQcmVmZXJlbmNlcyB8IHN0cmluZz4gPVxuICAgIHRoaXMuY2hlY2tvdXRDb25maWcuY2hlY2tvdXQ/LmRlZmF1bHREZWxpdmVyeU1vZGUgfHwgW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGVja291dENvbmZpZzogQ2hlY2tvdXRDb25maWcpIHt9XG5cbiAgcHJvdGVjdGVkIGNvbXBhcmVEZWxpdmVyeUNvc3QoXG4gICAgZGVsaXZlcnlNb2RlMTogRGVsaXZlcnlNb2RlLFxuICAgIGRlbGl2ZXJ5TW9kZTI6IERlbGl2ZXJ5TW9kZVxuICApOiBudW1iZXIge1xuICAgIGlmIChcbiAgICAgIGRlbGl2ZXJ5TW9kZTEuZGVsaXZlcnlDb3N0Py52YWx1ZSAmJlxuICAgICAgZGVsaXZlcnlNb2RlMi5kZWxpdmVyeUNvc3Q/LnZhbHVlXG4gICAgKSB7XG4gICAgICBpZiAoZGVsaXZlcnlNb2RlMS5kZWxpdmVyeUNvc3QudmFsdWUgPiBkZWxpdmVyeU1vZGUyLmRlbGl2ZXJ5Q29zdC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGRlbGl2ZXJ5TW9kZTEuZGVsaXZlcnlDb3N0LnZhbHVlIDwgZGVsaXZlcnlNb2RlMi5kZWxpdmVyeUNvc3QudmFsdWVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbmRNYXRjaGluZ0RlbGl2ZXJ5TW9kZShcbiAgICBkZWxpdmVyeU1vZGVzOiBEZWxpdmVyeU1vZGVbXSxcbiAgICBpbmRleCA9IDBcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGVmYXVsdERlbGl2ZXJ5TW9kZVtpbmRleF0pIHtcbiAgICAgIGNhc2UgRGVsaXZlcnlNb2RlUHJlZmVyZW5jZXMuRlJFRTpcbiAgICAgICAgaWYgKGRlbGl2ZXJ5TW9kZXNbMF0uZGVsaXZlcnlDb3N0Py52YWx1ZSA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBkZWxpdmVyeU1vZGVzWzBdLmNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERlbGl2ZXJ5TW9kZVByZWZlcmVuY2VzLkxFQVNUX0VYUEVOU0lWRTpcbiAgICAgICAgY29uc3QgbGVhc3RFeHBlbnNpdmVGb3VuZCA9IGRlbGl2ZXJ5TW9kZXMuZmluZChcbiAgICAgICAgICAoZGVsaXZlcnlNb2RlKSA9PiBkZWxpdmVyeU1vZGUuZGVsaXZlcnlDb3N0Py52YWx1ZSAhPT0gMFxuICAgICAgICApO1xuICAgICAgICBpZiAobGVhc3RFeHBlbnNpdmVGb3VuZCkge1xuICAgICAgICAgIHJldHVybiBsZWFzdEV4cGVuc2l2ZUZvdW5kLmNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERlbGl2ZXJ5TW9kZVByZWZlcmVuY2VzLk1PU1RfRVhQRU5TSVZFOlxuICAgICAgICByZXR1cm4gZGVsaXZlcnlNb2Rlc1tkZWxpdmVyeU1vZGVzLmxlbmd0aCAtIDFdLmNvZGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBjb2RlRm91bmQgPSBkZWxpdmVyeU1vZGVzLmZpbmQoXG4gICAgICAgICAgKGRlbGl2ZXJ5TW9kZSkgPT5cbiAgICAgICAgICAgIGRlbGl2ZXJ5TW9kZS5jb2RlID09PSB0aGlzLmRlZmF1bHREZWxpdmVyeU1vZGVbaW5kZXhdXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjb2RlRm91bmQpIHtcbiAgICAgICAgICByZXR1cm4gY29kZUZvdW5kLmNvZGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbGFzdE1vZGUgPSB0aGlzLmRlZmF1bHREZWxpdmVyeU1vZGUubGVuZ3RoIC0gMSA8PSBpbmRleDtcbiAgICByZXR1cm4gbGFzdE1vZGVcbiAgICAgID8gZGVsaXZlcnlNb2Rlc1swXS5jb2RlXG4gICAgICA6IHRoaXMuZmluZE1hdGNoaW5nRGVsaXZlcnlNb2RlKGRlbGl2ZXJ5TW9kZXMsIGluZGV4ICsgMSk7XG4gIH1cblxuICBnZXRQcmVmZXJyZWREZWxpdmVyeU1vZGUoZGVsaXZlcnlNb2RlczogRGVsaXZlcnlNb2RlW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGRlbGl2ZXJ5TW9kZXMuc29ydCh0aGlzLmNvbXBhcmVEZWxpdmVyeUNvc3QpO1xuICAgIHJldHVybiB0aGlzLmZpbmRNYXRjaGluZ0RlbGl2ZXJ5TW9kZShkZWxpdmVyeU1vZGVzKTtcbiAgfVxuXG4gIGlzRXhwcmVzc0NoZWNrb3V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cHJlc3M7XG4gIH1cblxuICBpc0d1ZXN0Q2hlY2tvdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3Q7XG4gIH1cbn1cbiJdfQ==