@spartacus/checkout
Version:
Checkout feature library for Spartacus
1,137 lines (1,105 loc) • 100 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, NgModule, InjectionToken } from '@angular/core';
import * as i2 from '@spartacus/core';
import { StateUtils, PROCESS_FEATURE, MULTI_CART_DATA, UserAddressEvent, UpdateUserAddressEvent, DeleteUserAddressEvent, ProcessSelectors, getLastValueSync, OCC_USER_ID_ANONYMOUS, B2BPaymentTypeEnum, PageMetaResolver, PageType, normalizeHttpError, SiteContextActions, UserActions, withdrawOn, AuthActions, CartActions, ORDER_TYPE } from '@spartacus/core';
import * as i1 from '@spartacus/checkout/root';
import { OrderPlacedEvent, CheckoutDeliveryFacade, CheckoutPaymentFacade, CheckoutFacade, PaymentTypeFacade, CheckoutCostCenterFacade, ClearCheckoutFacade } from '@spartacus/checkout/root';
import { SavedCartEvent, SaveCartSuccessEvent, RestoreSavedCartSuccessEvent } from '@spartacus/cart/saved-cart/root';
import { Subscription, combineLatest, of, from } from 'rxjs';
import { filter, take, map, withLatestFrom, tap, pluck, shareReplay, switchMap, catchError, mergeMap, concatMap } from 'rxjs/operators';
import * as i1$1 from '@ngrx/store';
import { createFeatureSelector, createSelector, select, StoreModule } from '@ngrx/store';
import { CommonModule } from '@angular/common';
import * as i1$2 from '@ngrx/effects';
import { ofType, Effect, EffectsModule } from '@ngrx/effects';
import { __decorate } from 'tslib';
class CheckoutAdapter {
}
class CheckoutConnector {
constructor(adapter) {
this.adapter = adapter;
}
placeOrder(userId, cartId, termsChecked) {
return this.adapter.placeOrder(userId, cartId, termsChecked);
}
loadCheckoutDetails(userId, cartId) {
return this.adapter.loadCheckoutDetails(userId, cartId);
}
clearCheckoutDeliveryAddress(userId, cartId) {
return this.adapter.clearCheckoutDeliveryAddress(userId, cartId);
}
clearCheckoutDeliveryMode(userId, cartId) {
return this.adapter.clearCheckoutDeliveryMode(userId, cartId);
}
}
CheckoutConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConnector, deps: [{ token: CheckoutAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: CheckoutAdapter }]; } });
class CheckoutCostCenterAdapter {
}
class CheckoutCostCenterConnector {
constructor(adapter) {
this.adapter = adapter;
}
setCostCenter(userId, cartId, costCenterId) {
return this.adapter.setCostCenter(userId, cartId, costCenterId);
}
}
CheckoutCostCenterConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterConnector, deps: [{ token: CheckoutCostCenterAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutCostCenterConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: CheckoutCostCenterAdapter }]; } });
class CheckoutDeliveryAdapter {
}
class CheckoutDeliveryConnector {
constructor(adapter) {
this.adapter = adapter;
}
createAddress(userId, cartId, address) {
return this.adapter.createAddress(userId, cartId, address);
}
setAddress(userId, cartId, addressId) {
return this.adapter.setAddress(userId, cartId, addressId);
}
setMode(userId, cartId, deliveryModeId) {
return this.adapter.setMode(userId, cartId, deliveryModeId);
}
getMode(userId, cartId) {
return this.adapter.getMode(userId, cartId);
}
getSupportedModes(userId, cartId) {
return this.adapter.getSupportedModes(userId, cartId);
}
}
CheckoutDeliveryConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutDeliveryConnector, deps: [{ token: CheckoutDeliveryAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutDeliveryConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutDeliveryConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutDeliveryConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: CheckoutDeliveryAdapter }]; } });
class PaymentTypeAdapter {
}
class PaymentTypeConnector {
constructor(adapter) {
this.adapter = adapter;
}
getPaymentTypes() {
return this.adapter.loadPaymentTypes();
}
setPaymentType(userId, cartId, typeCode, poNumber) {
return this.adapter.setPaymentType(userId, cartId, typeCode, poNumber);
}
}
PaymentTypeConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PaymentTypeConnector, deps: [{ token: PaymentTypeAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
PaymentTypeConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PaymentTypeConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PaymentTypeConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: PaymentTypeAdapter }]; } });
class CheckoutPaymentAdapter {
}
class CheckoutPaymentConnector {
constructor(adapter) {
this.adapter = adapter;
}
create(userId, cartId, paymentDetails) {
return this.adapter.create(userId, cartId, paymentDetails);
}
set(userId, cartId, paymentDetailsId) {
return this.adapter.set(userId, cartId, paymentDetailsId);
}
getCardTypes() {
return this.adapter.loadCardTypes();
}
}
CheckoutPaymentConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutPaymentConnector, deps: [{ token: CheckoutPaymentAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutPaymentConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutPaymentConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutPaymentConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: CheckoutPaymentAdapter }]; } });
class CheckoutReplenishmentOrderAdapter {
}
class CheckoutReplenishmentOrderConnector {
constructor(adapter) {
this.adapter = adapter;
}
scheduleReplenishmentOrder(cartId, scheduleReplenishmentForm, termsChecked, userId) {
return this.adapter.scheduleReplenishmentOrder(cartId, scheduleReplenishmentForm, termsChecked, userId);
}
}
CheckoutReplenishmentOrderConnector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutReplenishmentOrderConnector, deps: [{ token: CheckoutReplenishmentOrderAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutReplenishmentOrderConnector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutReplenishmentOrderConnector });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutReplenishmentOrderConnector, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: CheckoutReplenishmentOrderAdapter }]; } });
const LOAD_CARD_TYPES = '[Checkout] Load Card Types';
const LOAD_CARD_TYPES_FAIL = '[Checkout] Load Card Fail';
const LOAD_CARD_TYPES_SUCCESS = '[Checkout] Load Card Success';
class LoadCardTypes {
constructor() {
this.type = LOAD_CARD_TYPES;
}
}
class LoadCardTypesFail {
constructor(payload) {
this.payload = payload;
this.type = LOAD_CARD_TYPES_FAIL;
}
}
class LoadCardTypesSuccess {
constructor(payload) {
this.payload = payload;
this.type = LOAD_CARD_TYPES_SUCCESS;
}
}
const CHECKOUT_FEATURE = 'checkout';
const CHECKOUT_DETAILS = '[Checkout] Checkout Details';
const SET_DELIVERY_ADDRESS_PROCESS_ID = 'setDeliveryAddress';
const SET_DELIVERY_MODE_PROCESS_ID = 'setDeliveryMode';
const SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID = 'setSupportedDeliveryMode';
const SET_PAYMENT_DETAILS_PROCESS_ID = 'setPaymentDetails';
const GET_PAYMENT_TYPES_PROCESS_ID = 'getPaymentTypes';
const SET_COST_CENTER_PROCESS_ID = 'setCostCenter';
const PLACED_ORDER_PROCESS_ID = 'placeOrder';
const CLEAR_CHECKOUT_DELIVERY_ADDRESS = '[Checkout] Clear Checkout Delivery Address';
const CLEAR_CHECKOUT_DELIVERY_ADDRESS_SUCCESS = '[Checkout] Clear Checkout Delivery Address Success';
const CLEAR_CHECKOUT_DELIVERY_ADDRESS_FAIL = '[Checkout] Clear Checkout Delivery Address Fail';
const CLEAR_CHECKOUT_DELIVERY_MODE = '[Checkout] Clear Checkout Delivery Mode';
const CLEAR_CHECKOUT_DELIVERY_MODE_SUCCESS = '[Checkout] Clear Checkout Delivery Mode Success';
const CLEAR_CHECKOUT_DELIVERY_MODE_FAIL = '[Checkout] Clear Checkout Delivery Mode Fail';
const ADD_DELIVERY_ADDRESS = '[Checkout] Add Delivery Address';
const ADD_DELIVERY_ADDRESS_FAIL = '[Checkout] Add Delivery Address Fail';
const ADD_DELIVERY_ADDRESS_SUCCESS = '[Checkout] Add Delivery Address Success';
const SET_DELIVERY_ADDRESS = '[Checkout] Set Delivery Address';
const SET_DELIVERY_ADDRESS_FAIL = '[Checkout] Set Delivery Address Fail';
const SET_DELIVERY_ADDRESS_SUCCESS = '[Checkout] Set Delivery Address Success';
const RESET_SET_DELIVERY_ADDRESS_PROCESS = '[Checkout] Reset Set Delivery Address Process';
const LOAD_SUPPORTED_DELIVERY_MODES = '[Checkout] Load Supported Delivery Modes';
const LOAD_SUPPORTED_DELIVERY_MODES_FAIL = '[Checkout] Load Supported Delivery Modes Fail';
const LOAD_SUPPORTED_DELIVERY_MODES_SUCCESS = '[Checkout] Load Supported Delivery Modes Success';
const CLEAR_SUPPORTED_DELIVERY_MODES = '[Checkout] Clear Supported Delivery Modes';
const SET_DELIVERY_MODE = '[Checkout] Set Delivery Mode';
const SET_DELIVERY_MODE_FAIL = '[Checkout] Set Delivery Mode Fail';
const SET_DELIVERY_MODE_SUCCESS = '[Checkout] Set Delivery Mode Success';
const RESET_SET_DELIVERY_MODE_PROCESS = '[Checkout] Reset Set Delivery Mode Process';
const SET_SUPPORTED_DELIVERY_MODES = '[Checkout] Set Supported Delivery Modes';
const SET_SUPPORTED_DELIVERY_MODES_FAIL = '[Checkout] Set Supported Delivery Modes Fail';
const SET_SUPPORTED_DELIVERY_MODES_SUCCESS = '[Checkout] Set Supported Delivery Modes Success';
const RESET_SUPPORTED_SET_DELIVERY_MODES_PROCESS = '[Checkout] Reset Set Supported Delivery Modes Process';
const CREATE_PAYMENT_DETAILS = '[Checkout] Create Payment Details';
const CREATE_PAYMENT_DETAILS_FAIL = '[Checkout] Create Payment Details Fail';
const CREATE_PAYMENT_DETAILS_SUCCESS = '[Checkout] Create Payment Details Success';
const SET_PAYMENT_DETAILS = '[Checkout] Set Payment Details';
const SET_PAYMENT_DETAILS_FAIL = '[Checkout] Set Payment Details Fail';
const SET_PAYMENT_DETAILS_SUCCESS = '[Checkout] Set Payment Details Success';
const RESET_SET_PAYMENT_DETAILS_PROCESS = '[Checkout] Reset Set Payment Details Process';
const PLACE_ORDER = '[Checkout] Place Order';
const PLACE_ORDER_FAIL = '[Checkout] Place Order Fail';
const PLACE_ORDER_SUCCESS = '[Checkout] Place Order Success';
const CLEAR_PLACE_ORDER = '[Checkout] Clear Place Order';
const CLEAR_CHECKOUT_STEP = '[Checkout] Clear One Checkout Step';
const CLEAR_CHECKOUT_DATA = '[Checkout] Clear Checkout Data';
const LOAD_CHECKOUT_DETAILS = '[Checkout] Load Checkout Details';
const LOAD_CHECKOUT_DETAILS_FAIL = '[Checkout] Load Checkout Details Fail';
const LOAD_CHECKOUT_DETAILS_SUCCESS = '[Checkout] Load Checkout Details Success';
const CHECKOUT_CLEAR_MISCS_DATA = '[Checkout] Clear Miscs Data';
const PAYMENT_PROCESS_SUCCESS = '[Checkout] Payment Process Success';
const SET_COST_CENTER = '[Checkout] Set Cost Center';
const SET_COST_CENTER_FAIL = '[Checkout] Set Cost Center Fail';
const SET_COST_CENTER_SUCCESS = '[Checkout] Set Cost Center Success';
const RESET_SET_COST_CENTER_PROCESS = '[Checkout] Reset Set Cost Center Process';
class AddDeliveryAddress {
constructor(payload) {
this.payload = payload;
this.type = ADD_DELIVERY_ADDRESS;
}
}
class AddDeliveryAddressFail {
constructor(payload) {
this.payload = payload;
this.type = ADD_DELIVERY_ADDRESS_FAIL;
}
}
class AddDeliveryAddressSuccess {
constructor(payload) {
this.payload = payload;
this.type = ADD_DELIVERY_ADDRESS_SUCCESS;
}
}
class SetDeliveryAddress extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_ADDRESS_PROCESS_ID);
this.payload = payload;
this.type = SET_DELIVERY_ADDRESS;
}
}
class SetDeliveryAddressFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_ADDRESS_PROCESS_ID, payload);
this.payload = payload;
this.type = SET_DELIVERY_ADDRESS_FAIL;
}
}
class SetDeliveryAddressSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_ADDRESS_PROCESS_ID);
this.payload = payload;
this.type = SET_DELIVERY_ADDRESS_SUCCESS;
}
}
class ResetSetDeliveryAddressProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, SET_DELIVERY_ADDRESS_PROCESS_ID);
this.type = RESET_SET_DELIVERY_ADDRESS_PROCESS;
}
}
class LoadSupportedDeliveryModes extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID);
this.payload = payload;
this.type = LOAD_SUPPORTED_DELIVERY_MODES;
}
}
class LoadSupportedDeliveryModesFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID);
this.payload = payload;
this.type = LOAD_SUPPORTED_DELIVERY_MODES_FAIL;
}
}
class LoadSupportedDeliveryModesSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID);
this.payload = payload;
this.type = LOAD_SUPPORTED_DELIVERY_MODES_SUCCESS;
}
}
class ResetLoadSupportedDeliveryModesProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID);
this.type = RESET_SUPPORTED_SET_DELIVERY_MODES_PROCESS;
}
}
class SetDeliveryMode extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_MODE_PROCESS_ID);
this.payload = payload;
this.type = SET_DELIVERY_MODE;
}
}
class SetDeliveryModeFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_MODE_PROCESS_ID, payload);
this.payload = payload;
this.type = SET_DELIVERY_MODE_FAIL;
}
}
class SetDeliveryModeSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_DELIVERY_MODE_PROCESS_ID);
this.payload = payload;
this.type = SET_DELIVERY_MODE_SUCCESS;
}
}
class ResetSetDeliveryModeProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, SET_DELIVERY_MODE_PROCESS_ID);
this.type = RESET_SET_DELIVERY_MODE_PROCESS;
}
}
class CreatePaymentDetails extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.payload = payload;
this.type = CREATE_PAYMENT_DETAILS;
}
}
class CreatePaymentDetailsFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.payload = payload;
this.type = CREATE_PAYMENT_DETAILS_FAIL;
}
}
class CreatePaymentDetailsSuccess {
constructor(payload) {
this.payload = payload;
this.type = CREATE_PAYMENT_DETAILS_SUCCESS;
}
}
class PaymentProcessSuccess extends StateUtils.EntitySuccessAction {
constructor() {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.type = PAYMENT_PROCESS_SUCCESS;
}
}
class SetPaymentDetails extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.payload = payload;
this.type = SET_PAYMENT_DETAILS;
}
}
class SetPaymentDetailsFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID, payload);
this.payload = payload;
this.type = SET_PAYMENT_DETAILS_FAIL;
}
}
class SetPaymentDetailsSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.payload = payload;
this.type = SET_PAYMENT_DETAILS_SUCCESS;
}
}
class ResetSetPaymentDetailsProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, SET_PAYMENT_DETAILS_PROCESS_ID);
this.type = RESET_SET_PAYMENT_DETAILS_PROCESS;
}
}
class PlaceOrder extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.payload = payload;
this.type = PLACE_ORDER;
}
}
class PlaceOrderFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID, payload);
this.payload = payload;
this.type = PLACE_ORDER_FAIL;
}
}
class PlaceOrderSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.payload = payload;
this.type = PLACE_ORDER_SUCCESS;
}
}
class ClearPlaceOrder extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.type = CLEAR_PLACE_ORDER;
}
}
class ClearSupportedDeliveryModes {
constructor() {
this.type = CLEAR_SUPPORTED_DELIVERY_MODES;
}
}
class ClearCheckoutStep {
constructor(payload) {
this.payload = payload;
this.type = CLEAR_CHECKOUT_STEP;
}
}
class ClearCheckoutData {
constructor() {
this.type = CLEAR_CHECKOUT_DATA;
}
}
class LoadCheckoutDetails extends StateUtils.LoaderLoadAction {
constructor(payload) {
super(CHECKOUT_DETAILS);
this.payload = payload;
this.type = LOAD_CHECKOUT_DETAILS;
}
}
class LoadCheckoutDetailsFail extends StateUtils.LoaderFailAction {
constructor(payload) {
super(CHECKOUT_DETAILS, payload);
this.payload = payload;
this.type = LOAD_CHECKOUT_DETAILS_FAIL;
}
}
class LoadCheckoutDetailsSuccess extends StateUtils.LoaderSuccessAction {
constructor(payload) {
super(CHECKOUT_DETAILS);
this.payload = payload;
this.type = LOAD_CHECKOUT_DETAILS_SUCCESS;
}
}
class CheckoutClearMiscsData {
constructor() {
this.type = CHECKOUT_CLEAR_MISCS_DATA;
}
}
class ClearCheckoutDeliveryAddress {
constructor(payload) {
this.payload = payload;
this.type = CLEAR_CHECKOUT_DELIVERY_ADDRESS;
}
}
class ClearCheckoutDeliveryAddressSuccess {
constructor() {
this.type = CLEAR_CHECKOUT_DELIVERY_ADDRESS_SUCCESS;
}
}
class ClearCheckoutDeliveryAddressFail {
constructor(payload) {
this.payload = payload;
this.type = CLEAR_CHECKOUT_DELIVERY_ADDRESS_FAIL;
}
}
class ClearCheckoutDeliveryMode extends StateUtils.EntityProcessesIncrementAction {
constructor(payload) {
super(MULTI_CART_DATA, payload.cartId);
this.payload = payload;
this.type = CLEAR_CHECKOUT_DELIVERY_MODE;
}
}
class ClearCheckoutDeliveryModeSuccess extends StateUtils.EntityProcessesDecrementAction {
constructor(payload) {
super(MULTI_CART_DATA, payload.cartId);
this.payload = payload;
this.type = CLEAR_CHECKOUT_DELIVERY_MODE_SUCCESS;
}
}
class ClearCheckoutDeliveryModeFail extends StateUtils.EntityProcessesDecrementAction {
constructor(payload) {
super(MULTI_CART_DATA, payload.cartId);
this.payload = payload;
this.type = CLEAR_CHECKOUT_DELIVERY_MODE_FAIL;
}
}
class SetCostCenter extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_COST_CENTER_PROCESS_ID);
this.payload = payload;
this.type = SET_COST_CENTER;
}
}
class SetCostCenterFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_COST_CENTER_PROCESS_ID, payload);
this.payload = payload;
this.type = SET_COST_CENTER_FAIL;
}
}
class SetCostCenterSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, SET_COST_CENTER_PROCESS_ID);
this.payload = payload;
this.type = SET_COST_CENTER_SUCCESS;
}
}
class ResetSetCostCenterProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, SET_COST_CENTER_PROCESS_ID);
this.type = RESET_SET_COST_CENTER_PROCESS;
}
}
const SET_ORDER_TYPE = '[Checkout] Set Order Type';
class SetOrderType {
constructor(payload) {
this.payload = payload;
this.type = SET_ORDER_TYPE;
}
}
const LOAD_PAYMENT_TYPES = '[Checkout] Load Payment Types';
const LOAD_PAYMENT_TYPES_FAIL = '[Checkout] Load Payment Types Fail';
const LOAD_PAYMENT_TYPES_SUCCESS = '[Checkout] Load Payment Types Success';
const RESET_LOAD_PAYMENT_TYPES_PROCESS_ID = '[Checkout] Reset Load Payment Type Process';
const SET_PAYMENT_TYPE = '[Checkout] Set Payment Type';
const SET_PAYMENT_TYPE_FAIL = '[Checkout] Set Payment Type Fail';
const SET_PAYMENT_TYPE_SUCCESS = '[Checkout] Set Payment Type Success';
class LoadPaymentTypes extends StateUtils.EntityLoadAction {
constructor() {
super(PROCESS_FEATURE, GET_PAYMENT_TYPES_PROCESS_ID);
this.type = LOAD_PAYMENT_TYPES;
}
}
class LoadPaymentTypesFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, GET_PAYMENT_TYPES_PROCESS_ID);
this.payload = payload;
this.type = LOAD_PAYMENT_TYPES_FAIL;
}
}
class LoadPaymentTypesSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, GET_PAYMENT_TYPES_PROCESS_ID);
this.payload = payload;
this.type = LOAD_PAYMENT_TYPES_SUCCESS;
}
}
class ResetLoadPaymentTypesProcess extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, GET_PAYMENT_TYPES_PROCESS_ID);
this.type = RESET_LOAD_PAYMENT_TYPES_PROCESS_ID;
}
}
class SetPaymentType {
constructor(payload) {
this.payload = payload;
this.type = SET_PAYMENT_TYPE;
}
}
class SetPaymentTypeFail {
constructor(payload) {
this.payload = payload;
this.type = SET_PAYMENT_TYPE_FAIL;
}
}
class SetPaymentTypeSuccess {
constructor(payload) {
this.payload = payload;
this.type = SET_PAYMENT_TYPE_SUCCESS;
}
}
const SCHEDULE_REPLENISHMENT_ORDER = '[Checkout] Schedule Replenishment Order';
const SCHEDULE_REPLENISHMENT_ORDER_SUCCESS = '[Checkout] Schedule Replenishment Order Success';
const SCHEDULE_REPLENISHMENT_ORDER_FAIL = '[Checkout] Schedule Replenishment Order Fail';
const CLEAR_SCHEDULE_REPLENISHMENT_ORDER = '[Checkout] Clear Schedule Replenishment Data';
class ScheduleReplenishmentOrder extends StateUtils.EntityLoadAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.payload = payload;
this.type = SCHEDULE_REPLENISHMENT_ORDER;
}
}
class ScheduleReplenishmentOrderSuccess extends StateUtils.EntitySuccessAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.payload = payload;
this.type = SCHEDULE_REPLENISHMENT_ORDER_SUCCESS;
}
}
class ScheduleReplenishmentOrderFail extends StateUtils.EntityFailAction {
constructor(payload) {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID, payload);
this.payload = payload;
this.type = SCHEDULE_REPLENISHMENT_ORDER_FAIL;
}
}
class ClearScheduleReplenishmentOrderAction extends StateUtils.EntityLoaderResetAction {
constructor() {
super(PROCESS_FEATURE, PLACED_ORDER_PROCESS_ID);
this.type = CLEAR_SCHEDULE_REPLENISHMENT_ORDER;
}
}
var checkoutGroup_actions = /*#__PURE__*/Object.freeze({
__proto__: null,
LOAD_CARD_TYPES: LOAD_CARD_TYPES,
LOAD_CARD_TYPES_FAIL: LOAD_CARD_TYPES_FAIL,
LOAD_CARD_TYPES_SUCCESS: LOAD_CARD_TYPES_SUCCESS,
LoadCardTypes: LoadCardTypes,
LoadCardTypesFail: LoadCardTypesFail,
LoadCardTypesSuccess: LoadCardTypesSuccess,
CLEAR_CHECKOUT_DELIVERY_ADDRESS: CLEAR_CHECKOUT_DELIVERY_ADDRESS,
CLEAR_CHECKOUT_DELIVERY_ADDRESS_SUCCESS: CLEAR_CHECKOUT_DELIVERY_ADDRESS_SUCCESS,
CLEAR_CHECKOUT_DELIVERY_ADDRESS_FAIL: CLEAR_CHECKOUT_DELIVERY_ADDRESS_FAIL,
CLEAR_CHECKOUT_DELIVERY_MODE: CLEAR_CHECKOUT_DELIVERY_MODE,
CLEAR_CHECKOUT_DELIVERY_MODE_SUCCESS: CLEAR_CHECKOUT_DELIVERY_MODE_SUCCESS,
CLEAR_CHECKOUT_DELIVERY_MODE_FAIL: CLEAR_CHECKOUT_DELIVERY_MODE_FAIL,
ADD_DELIVERY_ADDRESS: ADD_DELIVERY_ADDRESS,
ADD_DELIVERY_ADDRESS_FAIL: ADD_DELIVERY_ADDRESS_FAIL,
ADD_DELIVERY_ADDRESS_SUCCESS: ADD_DELIVERY_ADDRESS_SUCCESS,
SET_DELIVERY_ADDRESS: SET_DELIVERY_ADDRESS,
SET_DELIVERY_ADDRESS_FAIL: SET_DELIVERY_ADDRESS_FAIL,
SET_DELIVERY_ADDRESS_SUCCESS: SET_DELIVERY_ADDRESS_SUCCESS,
RESET_SET_DELIVERY_ADDRESS_PROCESS: RESET_SET_DELIVERY_ADDRESS_PROCESS,
LOAD_SUPPORTED_DELIVERY_MODES: LOAD_SUPPORTED_DELIVERY_MODES,
LOAD_SUPPORTED_DELIVERY_MODES_FAIL: LOAD_SUPPORTED_DELIVERY_MODES_FAIL,
LOAD_SUPPORTED_DELIVERY_MODES_SUCCESS: LOAD_SUPPORTED_DELIVERY_MODES_SUCCESS,
CLEAR_SUPPORTED_DELIVERY_MODES: CLEAR_SUPPORTED_DELIVERY_MODES,
SET_DELIVERY_MODE: SET_DELIVERY_MODE,
SET_DELIVERY_MODE_FAIL: SET_DELIVERY_MODE_FAIL,
SET_DELIVERY_MODE_SUCCESS: SET_DELIVERY_MODE_SUCCESS,
RESET_SET_DELIVERY_MODE_PROCESS: RESET_SET_DELIVERY_MODE_PROCESS,
SET_SUPPORTED_DELIVERY_MODES: SET_SUPPORTED_DELIVERY_MODES,
SET_SUPPORTED_DELIVERY_MODES_FAIL: SET_SUPPORTED_DELIVERY_MODES_FAIL,
SET_SUPPORTED_DELIVERY_MODES_SUCCESS: SET_SUPPORTED_DELIVERY_MODES_SUCCESS,
RESET_SUPPORTED_SET_DELIVERY_MODES_PROCESS: RESET_SUPPORTED_SET_DELIVERY_MODES_PROCESS,
CREATE_PAYMENT_DETAILS: CREATE_PAYMENT_DETAILS,
CREATE_PAYMENT_DETAILS_FAIL: CREATE_PAYMENT_DETAILS_FAIL,
CREATE_PAYMENT_DETAILS_SUCCESS: CREATE_PAYMENT_DETAILS_SUCCESS,
SET_PAYMENT_DETAILS: SET_PAYMENT_DETAILS,
SET_PAYMENT_DETAILS_FAIL: SET_PAYMENT_DETAILS_FAIL,
SET_PAYMENT_DETAILS_SUCCESS: SET_PAYMENT_DETAILS_SUCCESS,
RESET_SET_PAYMENT_DETAILS_PROCESS: RESET_SET_PAYMENT_DETAILS_PROCESS,
PLACE_ORDER: PLACE_ORDER,
PLACE_ORDER_FAIL: PLACE_ORDER_FAIL,
PLACE_ORDER_SUCCESS: PLACE_ORDER_SUCCESS,
CLEAR_PLACE_ORDER: CLEAR_PLACE_ORDER,
CLEAR_CHECKOUT_STEP: CLEAR_CHECKOUT_STEP,
CLEAR_CHECKOUT_DATA: CLEAR_CHECKOUT_DATA,
LOAD_CHECKOUT_DETAILS: LOAD_CHECKOUT_DETAILS,
LOAD_CHECKOUT_DETAILS_FAIL: LOAD_CHECKOUT_DETAILS_FAIL,
LOAD_CHECKOUT_DETAILS_SUCCESS: LOAD_CHECKOUT_DETAILS_SUCCESS,
CHECKOUT_CLEAR_MISCS_DATA: CHECKOUT_CLEAR_MISCS_DATA,
PAYMENT_PROCESS_SUCCESS: PAYMENT_PROCESS_SUCCESS,
SET_COST_CENTER: SET_COST_CENTER,
SET_COST_CENTER_FAIL: SET_COST_CENTER_FAIL,
SET_COST_CENTER_SUCCESS: SET_COST_CENTER_SUCCESS,
RESET_SET_COST_CENTER_PROCESS: RESET_SET_COST_CENTER_PROCESS,
AddDeliveryAddress: AddDeliveryAddress,
AddDeliveryAddressFail: AddDeliveryAddressFail,
AddDeliveryAddressSuccess: AddDeliveryAddressSuccess,
SetDeliveryAddress: SetDeliveryAddress,
SetDeliveryAddressFail: SetDeliveryAddressFail,
SetDeliveryAddressSuccess: SetDeliveryAddressSuccess,
ResetSetDeliveryAddressProcess: ResetSetDeliveryAddressProcess,
LoadSupportedDeliveryModes: LoadSupportedDeliveryModes,
LoadSupportedDeliveryModesFail: LoadSupportedDeliveryModesFail,
LoadSupportedDeliveryModesSuccess: LoadSupportedDeliveryModesSuccess,
ResetLoadSupportedDeliveryModesProcess: ResetLoadSupportedDeliveryModesProcess,
SetDeliveryMode: SetDeliveryMode,
SetDeliveryModeFail: SetDeliveryModeFail,
SetDeliveryModeSuccess: SetDeliveryModeSuccess,
ResetSetDeliveryModeProcess: ResetSetDeliveryModeProcess,
CreatePaymentDetails: CreatePaymentDetails,
CreatePaymentDetailsFail: CreatePaymentDetailsFail,
CreatePaymentDetailsSuccess: CreatePaymentDetailsSuccess,
PaymentProcessSuccess: PaymentProcessSuccess,
SetPaymentDetails: SetPaymentDetails,
SetPaymentDetailsFail: SetPaymentDetailsFail,
SetPaymentDetailsSuccess: SetPaymentDetailsSuccess,
ResetSetPaymentDetailsProcess: ResetSetPaymentDetailsProcess,
PlaceOrder: PlaceOrder,
PlaceOrderFail: PlaceOrderFail,
PlaceOrderSuccess: PlaceOrderSuccess,
ClearPlaceOrder: ClearPlaceOrder,
ClearSupportedDeliveryModes: ClearSupportedDeliveryModes,
ClearCheckoutStep: ClearCheckoutStep,
ClearCheckoutData: ClearCheckoutData,
LoadCheckoutDetails: LoadCheckoutDetails,
LoadCheckoutDetailsFail: LoadCheckoutDetailsFail,
LoadCheckoutDetailsSuccess: LoadCheckoutDetailsSuccess,
CheckoutClearMiscsData: CheckoutClearMiscsData,
ClearCheckoutDeliveryAddress: ClearCheckoutDeliveryAddress,
ClearCheckoutDeliveryAddressSuccess: ClearCheckoutDeliveryAddressSuccess,
ClearCheckoutDeliveryAddressFail: ClearCheckoutDeliveryAddressFail,
ClearCheckoutDeliveryMode: ClearCheckoutDeliveryMode,
ClearCheckoutDeliveryModeSuccess: ClearCheckoutDeliveryModeSuccess,
ClearCheckoutDeliveryModeFail: ClearCheckoutDeliveryModeFail,
SetCostCenter: SetCostCenter,
SetCostCenterFail: SetCostCenterFail,
SetCostCenterSuccess: SetCostCenterSuccess,
ResetSetCostCenterProcess: ResetSetCostCenterProcess,
SET_ORDER_TYPE: SET_ORDER_TYPE,
SetOrderType: SetOrderType,
LOAD_PAYMENT_TYPES: LOAD_PAYMENT_TYPES,
LOAD_PAYMENT_TYPES_FAIL: LOAD_PAYMENT_TYPES_FAIL,
LOAD_PAYMENT_TYPES_SUCCESS: LOAD_PAYMENT_TYPES_SUCCESS,
RESET_LOAD_PAYMENT_TYPES_PROCESS_ID: RESET_LOAD_PAYMENT_TYPES_PROCESS_ID,
SET_PAYMENT_TYPE: SET_PAYMENT_TYPE,
SET_PAYMENT_TYPE_FAIL: SET_PAYMENT_TYPE_FAIL,
SET_PAYMENT_TYPE_SUCCESS: SET_PAYMENT_TYPE_SUCCESS,
LoadPaymentTypes: LoadPaymentTypes,
LoadPaymentTypesFail: LoadPaymentTypesFail,
LoadPaymentTypesSuccess: LoadPaymentTypesSuccess,
ResetLoadPaymentTypesProcess: ResetLoadPaymentTypesProcess,
SetPaymentType: SetPaymentType,
SetPaymentTypeFail: SetPaymentTypeFail,
SetPaymentTypeSuccess: SetPaymentTypeSuccess,
SCHEDULE_REPLENISHMENT_ORDER: SCHEDULE_REPLENISHMENT_ORDER,
SCHEDULE_REPLENISHMENT_ORDER_SUCCESS: SCHEDULE_REPLENISHMENT_ORDER_SUCCESS,
SCHEDULE_REPLENISHMENT_ORDER_FAIL: SCHEDULE_REPLENISHMENT_ORDER_FAIL,
CLEAR_SCHEDULE_REPLENISHMENT_ORDER: CLEAR_SCHEDULE_REPLENISHMENT_ORDER,
ScheduleReplenishmentOrder: ScheduleReplenishmentOrder,
ScheduleReplenishmentOrderSuccess: ScheduleReplenishmentOrderSuccess,
ScheduleReplenishmentOrderFail: ScheduleReplenishmentOrderFail,
ClearScheduleReplenishmentOrderAction: ClearScheduleReplenishmentOrderAction
});
class CheckoutEventBuilder {
constructor(stateEventService) {
this.stateEventService = stateEventService;
this.register();
}
/**
* Registers checkout events
*/
register() {
this.orderPlacedEvent();
}
/**
* Register an order successfully placed event
*/
orderPlacedEvent() {
this.stateEventService.register({
action: PLACE_ORDER_SUCCESS,
event: OrderPlacedEvent,
});
}
}
CheckoutEventBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventBuilder, deps: [{ token: i2.StateEventService }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutEventBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventBuilder });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventBuilder, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i2.StateEventService }]; } });
class CheckoutEventListener {
constructor(checkoutDeliveryFacade, clearCheckoutFacade, eventService) {
this.checkoutDeliveryFacade = checkoutDeliveryFacade;
this.clearCheckoutFacade = clearCheckoutFacade;
this.eventService = eventService;
this.subscription = new Subscription();
this.onUserAddressChange();
this.onSavedCartChange();
}
/**
* Clears the checkout delivery info when an address in the address book is
* changed ( updated, set as default or deleted )
*
* Listens for UpdateUserAddressEvent or DeleteUserAddressEvent
*/
onUserAddressChange() {
this.subscription.add(this.eventService
.get(UserAddressEvent)
.pipe(filter((event) => {
return (event instanceof UpdateUserAddressEvent ||
event instanceof DeleteUserAddressEvent);
}))
.subscribe((_event) => {
this.checkoutDeliveryFacade.clearCheckoutDeliveryDetails();
}));
}
/**
* What te active cart is saved for later or when a saved card is restored,
* the whole checkout state is reset.
*
* Listens for SaveCartSuccessEvent or RestoreSavedCartSuccessEvent
*/
onSavedCartChange() {
this.subscription.add(this.eventService
.get(SavedCartEvent)
.pipe(filter((event) => {
return (event instanceof SaveCartSuccessEvent ||
event instanceof RestoreSavedCartSuccessEvent);
}))
.subscribe((_event) => {
this.clearCheckoutFacade.resetCheckoutProcesses();
}));
}
ngOnDestroy() {
var _a;
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
}
}
CheckoutEventListener.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventListener, deps: [{ token: i1.CheckoutDeliveryFacade }, { token: i1.ClearCheckoutFacade }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutEventListener.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventListener, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventListener, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.CheckoutDeliveryFacade }, { type: i1.ClearCheckoutFacade }, { type: i2.EventService }]; } });
class CheckoutEventModule {
constructor(_checkoutEventBuilder, _checkoutEventListener) { }
}
CheckoutEventModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventModule, deps: [{ token: CheckoutEventBuilder }, { token: CheckoutEventListener }], target: i0.ɵɵFactoryTarget.NgModule });
CheckoutEventModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventModule });
CheckoutEventModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventModule });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutEventModule, decorators: [{
type: NgModule,
args: [{}]
}], ctorParameters: function () { return [{ type: CheckoutEventBuilder }, { type: CheckoutEventListener }]; } });
const initialState$3 = {
entities: {},
};
function reducer$3(state = initialState$3, action) {
switch (action.type) {
case LOAD_CARD_TYPES_SUCCESS: {
const cardTypes = action.payload;
const entities = cardTypes.reduce((cardTypesEntities, name) => {
return Object.assign(Object.assign({}, cardTypesEntities), { [name.code]: name });
}, Object.assign({}, state.entities));
return Object.assign(Object.assign({}, state), { entities });
}
case CHECKOUT_CLEAR_MISCS_DATA: {
return initialState$3;
}
}
return state;
}
const getCardTypesEntites$1 = (state) => state.entities;
const getDeliveryAddressSelector = (state) => state.address;
const getDeliveryModeSelector = (state) => state.deliveryMode;
const getPaymentDetailsSelector = (state) => state.paymentDetails;
const getOrderDetailsSelector = (state) => state.orderDetails;
const getCheckoutState = createFeatureSelector(CHECKOUT_FEATURE);
const getCheckoutStepsState = createSelector(getCheckoutState, (checkoutState) => checkoutState.steps);
const getCheckoutSteps = createSelector(getCheckoutStepsState, (state) => StateUtils.loaderValueSelector(state));
const getDeliveryAddress = createSelector(getCheckoutSteps, getDeliveryAddressSelector);
const getDeliveryMode = createSelector(getCheckoutSteps, getDeliveryModeSelector);
const getSupportedDeliveryModes = createSelector(getDeliveryMode, (deliveryMode) => {
return (deliveryMode &&
Object.keys(deliveryMode.supported).map((code) => deliveryMode.supported[code]));
});
const getSelectedDeliveryModeCode = createSelector(getDeliveryMode, (deliveryMode) => {
return deliveryMode && deliveryMode.selected;
});
const getSelectedDeliveryMode = createSelector(getDeliveryMode, (deliveryMode) => {
if (deliveryMode.selected !== '') {
if (Object.keys(deliveryMode.supported).length === 0) {
return null;
}
return deliveryMode.supported[deliveryMode.selected];
}
});
const getPaymentDetails = createSelector(getCheckoutSteps, getPaymentDetailsSelector);
const getCheckoutOrderDetails = createSelector(getCheckoutSteps, getOrderDetailsSelector);
const getCheckoutDetailsLoaded = createSelector(getCheckoutStepsState, (state) => StateUtils.loaderSuccessSelector(state) &&
!StateUtils.loaderLoadingSelector(state));
const getCheckoutLoading = createSelector(getCheckoutStepsState, (state) => StateUtils.loaderLoadingSelector(state));
const getPoNumer = createSelector(getCheckoutSteps, (state) => state.poNumber.po);
const getCostCenter = createSelector(getCheckoutSteps, (state) => state.poNumber.costCenter);
const getCardTypesState = createSelector(getCheckoutState, (state) => state.cardTypes);
const getCardTypesEntites = createSelector(getCardTypesState, getCardTypesEntites$1);
const getAllCardTypes = createSelector(getCardTypesEntites, (entites) => {
return Object.keys(entites).map((code) => entites[code]);
});
const getSelectedOrderTypeSelector = (state) => state.selected;
const getOrderTypesState = createSelector(getCheckoutState, (state) => state.orderType);
const getSelectedOrderType = createSelector(getOrderTypesState, getSelectedOrderTypeSelector);
const initialState$2 = {
entities: {},
selected: undefined,
};
function reducer$2(state = initialState$2, action) {
var _a;
switch (action.type) {
case LOAD_PAYMENT_TYPES_SUCCESS: {
const paymentTypes = action.payload;
const entities = paymentTypes.reduce((paymentTypesEntities, name) => {
return Object.assign(Object.assign({}, paymentTypesEntities), { [name.code]: name });
}, Object.assign({}, state.entities));
return Object.assign(Object.assign({}, state), { entities });
}
case SET_PAYMENT_TYPE_SUCCESS: {
return Object.assign(Object.assign({}, state), { selected: (_a = action.payload.paymentType) === null || _a === void 0 ? void 0 : _a.code });
}
case CLEAR_CHECKOUT_DATA: {
return Object.assign(Object.assign({}, state), { selected: undefined });
}
case CHECKOUT_CLEAR_MISCS_DATA: {
return initialState$2;
}
}
return state;
}
const getPaymentTypesEntites$1 = (state) => state.entities;
const getSelectedPaymentType$1 = (state) => state.selected;
const getPaymentTypesState = createSelector(getCheckoutState, (state) => state.paymentTypes);
const getPaymentTypesEntites = createSelector(getPaymentTypesState, getPaymentTypesEntites$1);
const getAllPaymentTypes = createSelector(getPaymentTypesEntites, (entites) => {
return Object.keys(entites).map((code) => entites[code]);
});
const getSelectedPaymentType = createSelector(getPaymentTypesState, getSelectedPaymentType$1);
var checkoutGroup_selectors = /*#__PURE__*/Object.freeze({
__proto__: null,
getCardTypesState: getCardTypesState,
getCardTypesEntites: getCardTypesEntites,
getAllCardTypes: getAllCardTypes,
getCheckoutState: getCheckoutState,
getCheckoutStepsState: getCheckoutStepsState,
getCheckoutSteps: getCheckoutSteps,
getDeliveryAddress: getDeliveryAddress,
getDeliveryMode: getDeliveryMode,
getSupportedDeliveryModes: getSupportedDeliveryModes,
getSelectedDeliveryModeCode: getSelectedDeliveryModeCode,
getSelectedDeliveryMode: getSelectedDeliveryMode,
getPaymentDetails: getPaymentDetails,
getCheckoutOrderDetails: getCheckoutOrderDetails,
getCheckoutDetailsLoaded: getCheckoutDetailsLoaded,
getCheckoutLoading: getCheckoutLoading,
getPoNumer: getPoNumer,
getCostCenter: getCostCenter,
getSelectedOrderTypeSelector: getSelectedOrderTypeSelector,
getOrderTypesState: getOrderTypesState,
getSelectedOrderType: getSelectedOrderType,
getPaymentTypesState: getPaymentTypesState,
getPaymentTypesEntites: getPaymentTypesEntites,
getAllPaymentTypes: getAllPaymentTypes,
getSelectedPaymentType: getSelectedPaymentType
});
class CheckoutCostCenterService {
constructor(checkoutStore, activeCartService, userIdService) {
this.checkoutStore = checkoutStore;
this.activeCartService = activeCartService;
this.userIdService = userIdService;
}
/**
* Set cost center to cart
* @param costCenterId : cost center id
*/
setCostCenter(costCenterId) {
let cartId;
this.activeCartService
.getActiveCartId()
.pipe(take(1))
.subscribe((activeCartId) => (cartId = activeCartId));
this.userIdService.takeUserId(true).subscribe((userId) => {
if (cartId) {
this.checkoutStore.dispatch(new SetCostCenter({
userId: userId,
cartId: cartId,
costCenterId: costCenterId,
}));
}
}, () => {
// TODO: for future releases, refactor this part to thrown errors
});
}
/**
* Get cost center id from cart
*/
getCostCenter() {
return combineLatest([
this.activeCartService.getActive(),
this.checkoutStore.pipe(select(getCostCenter)),
]).pipe(filter(([cart]) => Boolean(cart)), map(([cart, costCenterId]) => {
if (costCenterId === undefined && cart.costCenter) {
costCenterId = cart.costCenter.code;
this.checkoutStore.dispatch(new SetCostCenterSuccess(cart.costCenter.code));
}
return costCenterId;
}));
}
}
CheckoutCostCenterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterService, deps: [{ token: i1$1.Store }, { token: i2.ActiveCartService }, { token: i2.UserIdService }], target: i0.ɵɵFactoryTarget.Injectable });
CheckoutCostCenterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CheckoutCostCenterService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1$1.Store }, { type: i2.ActiveCartService }, { type: i2.UserIdService }]; } });
class CheckoutDeliveryService {
constructor(checkoutStore, processStateStore, activeCartService, userIdService) {
this.checkoutStore = checkoutStore;
this.processStateStore = processStateStore;
this.activeCartService = activeCartService;
this.userIdService = userIdService;
}
/**
* Get supported delivery modes
*/
getSupportedDeliveryModes() {
return this.checkoutStore.pipe(select(getSupportedDeliveryModes), withLatestFrom(this.processStateStore.pipe(select(ProcessSelectors.getProcessStateFactory(SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID)))), tap(([, loadingState]) => {
if (!(loadingState.loading || loadingState.success || loadingState.error)) {
this.loadSupportedDeliveryModes();
}
}), pluck(0), shareReplay({ bufferSize: 1, refCount: true }));
}
/**
* Get selected delivery mode
*/
getSelectedDeliveryMode() {
return this.checkoutStore.pipe(select(getSelectedDeliveryMode));
}
/**
* Get selected delivery mode code
*/
getSelectedDeliveryModeCode() {
return this.checkoutStore.pipe(select(getSelectedDeliveryModeCode));
}
/**
* Get delivery address
*/
getDeliveryAddress() {
return this.checkoutStore.pipe(select(getDeliveryAddress));
}
/**
* Get status about successfully set Delivery Address
*/
getSetDeliveryAddressProcess() {
return this.processStateStore.pipe(select(ProcessSelectors.getProcessStateFactory(SET_DELIVERY_ADDRESS_PROCESS_ID)));
}
/**
* Clear info about process of setting Delivery Address
*/
resetSetDeliveryAddressProcess() {
this.checkoutStore.dispatch(new ResetSetDeliveryAddressProcess());
}
/**
* Get status about of set Delivery Mode process
*/
getSetDeliveryModeProcess() {
return this.processStateStore.pipe(select(ProcessSelectors.getProcessStateFactory(SET_DELIVERY_MODE_PROCESS_ID)));
}
/**
* Clear info about process of setting Delivery Mode
*/
resetSetDeliveryModeProcess() {
this.checkoutStore.dispatch(new ResetSetDeliveryModeProcess());
}
/**
* Clear info about process of setting Supported Delivery Modes
*/
resetLoadSupportedDeliveryModesProcess() {
this.checkoutStore.dispatch(new ResetLoadSupportedDeliveryModesProcess());
}
/**
* Get status about of set supported Delivery Modes process
*/
getLoadSupportedDeliveryModeProcess() {
return this.processStateStore.pipe(select(ProcessSelectors.getProcessStateFactory(SET_SUPPORTED_DELIVERY_MODE_PROCESS_ID)));
}
/**
* Clear supported delivery modes loaded in last checkout process
*/
clearCheckoutDeliveryModes() {
this.checkoutStore.dispatch(new ClearSupportedDeliveryModes());
}
/**
* Create and set a delivery address using the address param
* @param address : the Address to be created and set
*/
createAndSetAddress(address) {
if (this.actionAllowed()) {
let userId;
this.userIdService
.getUserId()
.subscribe((occUserId) => (userId = occUserId))
.unsubscribe();
let cartId;
this.activeCartService
.getActiveCartId()
.subscribe((activeCartId) => (cartId = activeCartId))
.unsubscribe();
if (userId && cartId) {
this.checkoutStore.dispatch(new AddDeliveryAddress({
userId,
cartId,
address: address,
}));
}
}
}
/**
* Load supported delivery modes
*/
loadSupportedDeliveryModes() {
if (this.actionAllowed()) {
let userId;
this.userIdService
.getUserId()
.subscribe((occUserId) => (userId = occUserId))
.unsubscribe();
let cartId;
this.activeCartService
.getActiveCartId()
.subscribe((activeCartId) => (cartId = activeCartId))
.unsubscribe();
if (userId && cartId) {
this.checkoutStore.dispatch(new LoadSupportedDeliveryModes({
userId,
cartId,
}));
}
}
}
/**
* Set delivery mode
* @param mode : The delivery mode to be set
*/
setDeliveryMode(mode) {
if (this.actionAllowed()) {
const userId = getLastValueSync(this.userIdService.getUserId());
const cartId = getLastValueSync(this.activeCartService.getActiveCartId());
if (userId && cartId) {
combineLatest([