GitHub

DaffCartFacade

class

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