@spartacus/checkout
Version:
Checkout feature library for Spartacus
72 lines • 10.4 kB
JavaScript
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==