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 DaffProduct = DaffProduct>> implements DaffConfigurableProductFacadeInterface {
configurableProductSelectors: DaffConfigurableProductAllSelectors<T> = getDaffConfigurableProductAllSelectors<T>()
getAllAttributes(id: T["id"]): Observable<Dictionary<string[]>>
getAllVariants(id: T["id"]): Observable<DaffConfigurableProductVariant[]>
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<DaffConfigurableProductVariant[]>
dispatch(action: Action<string>): void
}
Observable<Dictionary<string[]>>
All attributes of a configurable product.
Parameter | id: T["id"] |
---|---|
Description |
Observable<DaffConfigurableProductVariant[]>
All variants of a configurable product.
Parameter | id: T["id"] |
---|---|
Description |
Observable<Dictionary<string>>
The applied attributes of a configurable product.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current minimum price possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current maximum price possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current minimum discounted price possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current maximum discounted price possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current minimum percent discount possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<number>
Get the current maximum percent discount possible based on the applied attributes and remaining variants.
Parameter | id: T["id"] |
---|---|
Description |
Observable<boolean>
Returns whether the possible price for the configurable product is a range of different prices
Parameter | id: T["id"] |
---|---|
Description |
Observable<boolean>
Returns whether the variants of the configurable product have (a) discount(s)
Parameter | id: T["id"] |
---|---|
Description |
Observable<Dictionary<string[]>>
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<DaffConfigurableProductVariant[]>
The variants that match the applied attributes of a configurable product.
Parameter | id: T["id"] |
---|---|
Description |
void
Parameter | action: Action |
---|---|
Description |