import { DaffConfigurableProductFacade } from '@daffodil/product-configurable/state'
A facade for interacting with the configurable product state. Exposes many parts of the state for easy access and allows dispatching of actions.
@Injectable()
class DaffConfigurableProductFacade<<T extends DaffConfigurableProduct = DaffConfigurableProduct>> implements DaffConfigurableProductFacadeInterface<T> {
configurableProductSelectors: DaffConfigurableProductAllSelectors<T> = getDaffConfigurableProductAllSelectors<T>()
getAllAttributes(id: T["id"]): Observable<Dictionary<string[]>>
getAllVariants(id: T["id"]): Observable<Array<T['variants'][number]>>
getAppliedAttributes(id: T["id"]): Observable<Dictionary<string>>
getMinimumPrice(id: T["id"]): Observable<number>
getMaximumPrice(id: T["id"]): Observable<number>
getMinimumDiscountedPrice(id: T["id"]): Observable<number>
getMaximumDiscountedPrice(id: T["id"]): Observable<number>
getMinimumPercentDiscount(id: T["id"]): Observable<number>
getMaximumPercentDiscount(id: T["id"]): Observable<number>
isPriceRanged(id: T["id"]): Observable<boolean>
hasDiscount(id: T["id"]): Observable<boolean>
getSelectableAttributes(id: T["id"]): Observable<Dictionary<string[]>>
getMatchingVariants(id: T["id"]): Observable<Array<T['variants'][number]>>
dispatch(action: Action<string>): void
}
Observable> All attributes of a configurable product.
| Parameter | id: T["id"] |
|---|---|
| Description |
Observable> All variants of a configurable product.
| Parameter | id: T["id"] |
|---|---|
| Description |
Observable> The applied attributes of a configurable product.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current minimum price possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current maximum price possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current minimum discounted price possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current maximum discounted price possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current minimum percent discount possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableGet the current maximum percent discount possible based on the applied attributes and remaining variants.
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableReturns whether the possible price for the configurable product is a range of different prices
| Parameter | id: T["id"] |
|---|---|
| Description |
ObservableReturns whether the variants of the configurable product have (a) discount(s)
| Parameter | id: T["id"] |
|---|---|
| Description |
Observable> Selectable configurable product attributes derived from the remaining variants and the order of currently applied attributes. The remaining variants of the product are derived from the currently applied attributes.
| Parameter | id: T["id"] |
|---|---|
| Description |
Observable> The variants that match the applied attributes of a configurable product.
| Parameter | id: T["id"] |
|---|---|
| Description |
void| Parameter | action: Action |
|---|---|
| Description |