@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
135 lines (134 loc) • 4.72 kB
TypeScript
import { OnDestroy } from '@angular/core';
import { QuickOrderAddEntryEvent, QuickOrderFacade } from '@spartacus/cart/quick-order/root';
import { ActiveCartService, EventService, OrderEntry, Product, ProductAdapter, ProductSearchConnector } from '@spartacus/core';
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class QuickOrderService implements QuickOrderFacade, OnDestroy {
protected activeCartService: ActiveCartService;
protected productAdapter: ProductAdapter;
protected eventService: EventService;
protected productSearchConnector?: ProductSearchConnector | undefined;
protected productAdded$: Subject<string>;
protected entries$: BehaviorSubject<OrderEntry[]>;
protected softDeletedEntries$: BehaviorSubject<Record<string, OrderEntry>>;
protected nonPurchasableProductError$: BehaviorSubject<Product | null>;
protected hardDeleteTimeout: number;
protected quickOrderListLimit: number;
protected clearDeleteTimeouts: Record<string, Subscription>;
/**
* @deprecated since version 4.2
* Use constructor(activeCartService: ActiveCartService, productAdapter: ProductAdapter, eventService: EventService, productSearchConnector: ProductSearchConnector); instead
*/
constructor(activeCartService: ActiveCartService, productAdapter: ProductAdapter, eventService: EventService);
ngOnDestroy(): void;
/**
* Get entries
*/
getEntries(): BehaviorSubject<OrderEntry[]>;
/**
* @deprecated since 4.2 - use searchProducts instead
* Search product using SKU
*/
search(productCode: string): Observable<Product>;
/**
* Search products using query
*/
searchProducts(query: string, maxProducts?: number): Observable<Product[]>;
/**
* Clear a list of added entries
*/
clearList(): void;
/**
* Get information about the possibility to add the next product
*/
canAdd(code?: string): Observable<boolean>;
/**
* Set quick order list limit property
*/
setListLimit(limit: number): void;
/**
* Load a list of entries
*/
loadEntries(entries?: OrderEntry[]): void;
/**
* Load a list of entries
*/
updateEntryQuantity(entryIndex: number, quantity: number): void;
/**
* Delete single entry from the list
*/
softDeleteEntry(index: number): void;
/**
* @deprecated since 4.2 - use softDeleteEntry instead
*/
removeEntry(index: number): void;
/**
* Add product to the quick order list
*/
addProduct(product: Product, quantity?: number): void;
/**
* Return product added subject
*/
getProductAdded(): Subject<string>;
/**
* Set product added subject
*/
setProductAdded(productCode: string): void;
/**
* Adding to cart all products from the list
*/
addToCart(): Observable<[OrderEntry[], QuickOrderAddEntryEvent[]]>;
/**
* Return soft deleted entries
*/
getSoftDeletedEntries(): Observable<Record<string, OrderEntry>>;
/**
* Restore soft deleted entry
*/
restoreSoftDeletedEntry(productCode: string): void;
/**
* Clear deleted entry from the list
*/
hardDeleteEntry(productCode: string): void;
/**
* Clear all deleted entries and timeout subscriptions
*/
clearDeletedEntries(): void;
/**
* Return non purchasable product error
*/
getNonPurchasableProductError(): Observable<Product | null>;
/**
* Set error that selected product is not purchasable
*/
setNonPurchasableProductError(product: Product): void;
/**
* Clear not purchasable product error
*/
clearNonPurchasableProductError(): void;
/**
* Add soft deleted entry to the cached list
*/
protected addSoftEntryDeletion(entry: OrderEntry, clearTimeout?: boolean): void;
/**
* Get soft deletion entry
*/
protected getSoftDeletedEntry(productCode: string): OrderEntry;
/**
* Generate Order Entry from Product
*/
protected generateOrderEntry(product: Product, quantity?: number): OrderEntry;
/**
* Add single entry to the list
*/
protected addEntry(entry: OrderEntry): void;
/**
* Verify if product is already on the list
*/
protected isProductOnTheList(productCode: string): boolean;
protected isLimitExceeded(): boolean;
private createQuickOrderResultEvent;
protected clearDeleteTimeout(productCode: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<QuickOrderService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<QuickOrderService>;
}