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
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
Default –
Description

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

featureResolving$
Observable
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
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
Default –
Description

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

resolving$
Observable
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
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
Default –
Description

Whether there is a cart billing address operation in progress.

billingAddressResolving$
Observable
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
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
Default –
Description

Whether there is a cart shipping address operation in progress.

shippingAddressResolving$
Observable
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
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
Default –
Description

Whether there is a cart shipping information operation in progress.

shippingInformationResolving$
Observable
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
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
Default –
Description

Whether there is a cart shipping methods operation in progress.

shippingMethodsResolving$
Observable
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
Default –
Description

Whether there is a cart payment operation in progress.

paymentResolving$
Observable
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
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
Default –
Description

Whether there is a cart payment methods operation in progress.

paymentMethodsResolving$
Observable
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
Default –
Description

Whether there is a cart coupon operation in progress.

couponResolving$
Observable
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
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
Default –
Description

Whether there is a cart item operation in progress.

itemAdding$
Observable
Default –
Description

Whether there is a cart item add operation in progress.

itemResolving$
Observable
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
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[]>
Default –
Description

A list of the cart items.

totalItems$
Observable
Default –
Description

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

hasOutOfStockItems$
Observable
Default –
Description
outOfStockItems$
Observable<DaffOperationEntity[]>
Default –
Description

All cart items that are out of stock.

inStockItems$
Observable<DaffOperationEntity[]>
Default –
Description

All cart items that are in stock.

itemDictionary$
ObservableDaffOperationEntity>>
Default –
Description
paymentId$
Observable
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
Default –
Description
isBillingSameAsShipping$
Observable
Default –
Description

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

hasBillingAddress$
Observable
Default –
Description
hasShippingAddress$
Observable
Default –
Description
hasShippingMethod$
Observable
Default –
Description
hasPaymentMethod$
Observable
Default –
Description
canPlaceOrder$
Observable
Default –
Description
orderResultLoading$
Observable
Default –
Description
orderResultErrors$
Observable<DaffStateError[]>
Default –
Description
orderResult$
Observable
Default –
Description
orderResultId$
Observable
Default –
Description
orderResultCartId$
Observable
Default –
Description
hasOrderResult$
Observable
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
Parameters
ParameteritemId: T["items"][number]["id"]
Description
dispatch
void
Parameters
Parameteraction: Action
Description