GitHub

DaffCartFacade

import { DaffCartFacade } from '@daffodil/cart/state'

@Injectable()
class DaffCartFacade<<T extends DaffCart = DaffCart, V extends DaffCartOrderResult = DaffCartOrderResult>>  implements DaffCartFacadeInterface<T, V> {
  cart$: Observable<T>
  resolved$: Observable<DaffCartResolveState>
  loadingObject$: Observable<DaffCartLoading>
  featureLoading$: Observable<boolean>
  featureResolving$: Observable<boolean>
  featureMutating$: Observable<boolean>
  loading$: Observable<boolean>
  resolving$: Observable<boolean>
  mutating$: Observable<boolean>
  billingAddressLoading$: Observable<boolean>
  billingAddressResolving$: Observable<boolean>
  billingAddressMutating$: Observable<boolean>
  shippingAddressLoading$: Observable<boolean>
  shippingAddressResolving$: Observable<boolean>
  shippingAddressMutating$: Observable<boolean>
  shippingInformationLoading$: Observable<boolean>
  shippingInformationResolving$: Observable<boolean>
  shippingInformationMutating$: Observable<boolean>
  shippingMethodsLoading$: Observable<boolean>
  shippingMethodsResolving$: Observable<boolean>
  paymentLoading$: Observable<boolean>
  paymentResolving$: Observable<boolean>
  paymentMutating$: Observable<boolean>
  paymentMethodsLoading$: Observable<boolean>
  paymentMethodsResolving$: Observable<boolean>
  couponLoading$: Observable<boolean>
  couponResolving$: Observable<boolean>
  couponMutating$: Observable<boolean>
  itemLoading$: Observable<boolean>
  itemAdding$: Observable<boolean>
  itemResolving$: Observable<boolean>
  itemMutating$: Observable<boolean>
  errors$: Observable<DaffCartErrors>
  cartErrors$: Observable<DaffCartErrors[DaffCartOperationType.Cart]>
  itemErrors$: Observable<DaffCartErrors[DaffCartOperationType.Item]>
  billingAddressErrors$: Observable<DaffCartErrors[DaffCartOperationType.BillingAddress]>
  shippingAddressErrors$: Observable<DaffCartErrors[DaffCartOperationType.ShippingAddress]>
  shippingInformationErrors$: Observable<DaffCartErrors[DaffCartOperationType.ShippingInformation]>
  shippingMethodsErrors$: Observable<DaffCartErrors[DaffCartOperationType.ShippingMethods]>
  paymentErrors$: Observable<DaffCartErrors[DaffCartOperationType.Payment]>
  paymentMethodsErrors$: Observable<DaffCartErrors[DaffCartOperationType.PaymentMethods]>
  couponErrors$: Observable<DaffCartErrors[DaffCartOperationType.Coupon]>
  itemEntities$: Observable<DaffOperationEntity<T['items'][number]>[]>
  totalItems$: Observable<number>
  hasOutOfStockItems$: Observable<boolean>
  outOfStockItems$: Observable<DaffOperationEntity<T['items'][number]>[]>
  inStockItems$: Observable<DaffOperationEntity<T['items'][number]>[]>
  itemDictionary$: Observable<Dictionary<DaffOperationEntity<T['items'][number]>>>
  paymentId$: Observable<any>
  isCartEmpty$: Observable<boolean>
  isBillingSameAsShipping$: Observable<boolean>
  hasBillingAddress$: Observable<boolean>
  hasShippingAddress$: Observable<boolean>
  hasShippingMethod$: Observable<boolean>
  hasPaymentMethod$: Observable<boolean>
  canPlaceOrder$: Observable<boolean>
  orderResultLoading$: Observable<boolean>
  orderResultErrors$: Observable<DaffStateError[]>
  orderResult$: Observable<V>
  orderResultId$: Observable<V['orderId']>
  orderResultCartId$: Observable<V['cartId']>
  hasOrderResult$: Observable<boolean>

  getConfiguredCartItemAttributes(itemId: T["items"][number]["id"]): Observable<DaffConfigurableCartItemAttribute[]>
  getCompositeCartItemOptions(itemId: T["items"][number]["id"]): Observable<DaffCompositeCartItemOption[]>
  isCartItemOutOfStock(itemId: T["items"][number]["id"]): Observable<boolean>
  dispatch(action: Action<string>): void
}

Properties

cart$
Observable<T>
Default
Description
resolved$
Observable<DaffCartResolveState>
Default
Description
loadingObject$
Observable<DaffCartLoading>
Default
Description

The object that holds all the loading states for cart operations.

featureLoading$
Observable<boolean>
Default
Description

Whether there is any cart operation in progress. This includes operations specifically for cart subfields.

featureResolving$
Observable<boolean>
Default
Description

Whether there is any cart resolve operation in progress. This includes operations for cart subfields. This pertains only to requests that do not mutate data such as "load" or "list".

featureMutating$
Observable<boolean>
Default
Description

Whether there is any cart mutate operation in progress. This includes operations for cart subfields. This pertains only to requests that mutate data such as "update".

loading$
Observable<boolean>
Default
Description

Whether there is a cart operation in progress. This does not include operations specifically for cart subfields.

resolving$
Observable<boolean>
Default
Description

Whether there is a cart resolve operation in progress. This does not include operations specifically for cart subfields. This pertains only to requests that do not mutate data such as "load" or "list".

mutating$
Observable<boolean>
Default
Description

Whether there is a cart mutate operation in progress. This does not include operations specifically for cart subfields. This pertains only to requests that mutate data such as "update".

billingAddressLoading$
Observable<boolean>
Default
Description

Whether there is a cart billing address operation in progress.

billingAddressResolving$
Observable<boolean>
Default
Description

Whether there is a cart billing address resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

billingAddressMutating$
Observable<boolean>
Default
Description

Whether there is a cart billing address mutate operation in progress. This pertains only to requests that mutate data such as "update".

shippingAddressLoading$
Observable<boolean>
Default
Description

Whether there is a cart shipping address operation in progress.

shippingAddressResolving$
Observable<boolean>
Default
Description

Whether there is a cart shipping address resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

shippingAddressMutating$
Observable<boolean>
Default
Description

Whether there is a cart shipping address mutate operation in progress. This pertains only to requests that mutate data such as "update".

shippingInformationLoading$
Observable<boolean>
Default
Description

Whether there is a cart shipping information operation in progress.

shippingInformationResolving$
Observable<boolean>
Default
Description

Whether there is a cart shipping information resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

shippingInformationMutating$
Observable<boolean>
Default
Description

Whether there is a cart shipping information mutate operation in progress. This pertains only to requests that mutate data such as "update".

shippingMethodsLoading$
Observable<boolean>
Default
Description

Whether there is a cart shipping methods operation in progress.

shippingMethodsResolving$
Observable<boolean>
Default
Description

Whether there is a cart shipping methods resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

paymentLoading$
Observable<boolean>
Default
Description

Whether there is a cart payment operation in progress.

paymentResolving$
Observable<boolean>
Default
Description

Whether there is a cart payment resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

paymentMutating$
Observable<boolean>
Default
Description

Whether there is a cart payment mutate operation in progress. This pertains only to requests that mutate data such as "update".

paymentMethodsLoading$
Observable<boolean>
Default
Description

Whether there is a cart payment methods operation in progress.

paymentMethodsResolving$
Observable<boolean>
Default
Description

Whether there is a cart payment methods resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

couponLoading$
Observable<boolean>
Default
Description

Whether there is a cart coupon operation in progress.

couponResolving$
Observable<boolean>
Default
Description

Whether there is a cart coupon resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

couponMutating$
Observable<boolean>
Default
Description

Whether there is a cart coupon mutate operation in progress. This pertains only to requests that mutate data such as "update".

itemLoading$
Observable<boolean>
Default
Description

Whether there is a cart item operation in progress.

itemAdding$
Observable<boolean>
Default
Description

Whether there is a cart item add operation in progress.

itemResolving$
Observable<boolean>
Default
Description

Whether there is a cart item resolve operation in progress. This pertains only to requests that do not mutate data such as "load" or "list".

itemMutating$
Observable<boolean>
Default
Description

Whether there is a cart item mutate operation in progress. This pertains only to requests that mutate data such as "update".

errors$
Observable<DaffCartErrors>
Default
Description
cartErrors$
Observable<DaffCartErrors[DaffCartOperationType.Cart]>
Default
Description
itemErrors$
Observable<DaffCartErrors[DaffCartOperationType.Item]>
Default
Description
billingAddressErrors$
Observable<DaffCartErrors[DaffCartOperationType.BillingAddress]>
Default
Description
shippingAddressErrors$
Observable<DaffCartErrors[DaffCartOperationType.ShippingAddress]>
Default
Description
shippingInformationErrors$
Observable<DaffCartErrors[DaffCartOperationType.ShippingInformation]>
Default
Description
shippingMethodsErrors$
Observable<DaffCartErrors[DaffCartOperationType.ShippingMethods]>
Default
Description
paymentErrors$
Observable<DaffCartErrors[DaffCartOperationType.Payment]>
Default
Description
paymentMethodsErrors$
Observable<DaffCartErrors[DaffCartOperationType.PaymentMethods]>
Default
Description
couponErrors$
Observable<DaffCartErrors[DaffCartOperationType.Coupon]>
Default
Description
itemEntities$
Observable<DaffOperationEntity<T['items'][number]>[]>
Default
Description

A list of the cart items.

totalItems$
Observable<number>
Default
Description

The total number of cart items, taking into account the quantity of each cart item.

hasOutOfStockItems$
Observable<boolean>
Default
Description
outOfStockItems$
Observable<DaffOperationEntity<T['items'][number]>[]>
Default
Description

All cart items that are out of stock.

inStockItems$
Observable<DaffOperationEntity<T['items'][number]>[]>
Default
Description

All cart items that are in stock.

itemDictionary$
Observable<Dictionary<DaffOperationEntity<T['items'][number]>>>
Default
Description
paymentId$
Observable<any>
Default
Description

The user-defined platform-agnostic payment identifier that corresponds to the cart's current (platform-specific) payment method. Define the mapping with the DaffCartPaymentMethodIdMap injection token.

@see DaffCartPaymentMethodIdMap

isCartEmpty$
Observable<boolean>
Default
Description
isBillingSameAsShipping$
Observable<boolean>
Default
Description

Whether the cart's shipping address equals the billing address. Returns false if either address is null or undefined.

hasBillingAddress$
Observable<boolean>
Default
Description
hasShippingAddress$
Observable<boolean>
Default
Description
hasShippingMethod$
Observable<boolean>
Default
Description
hasPaymentMethod$
Observable<boolean>
Default
Description
canPlaceOrder$
Observable<boolean>
Default
Description
orderResultLoading$
Observable<boolean>
Default
Description
orderResultErrors$
Observable<DaffStateError[]>
Default
Description
orderResult$
Observable<V>
Default
Description
orderResultId$
Observable<V['orderId']>
Default
Description
orderResultCartId$
Observable<V['cartId']>
Default
Description
hasOrderResult$
Observable<boolean>
Default
Description

() Methods

getConfiguredCartItemAttributes
Observable<DaffConfigurableCartItemAttribute[]>
Parameters
ParameteritemId: T["items"][number]["id"]
Description
getCompositeCartItemOptions
Observable<DaffCompositeCartItemOption[]>
Parameters
ParameteritemId: T["items"][number]["id"]
Description
isCartItemOutOfStock
Observable<boolean>
Parameters
ParameteritemId: T["items"][number]["id"]
Description
dispatch
void
Parameters
Parameteraction: Action
Description