Selectors API Examples
This page demonstrates usage of some of the selectors provided Quasar.
ProductTagSelector
Definition
typescript
declare class ProductTagSelector {
comparisonType: 'does' | 'does_not';
operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with';
tags: string[];
returnType: 'ALL' | 'ID';
constructor(comparisonType: 'does' | 'does_not', operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with', tags: string[], returnType?: string);
select(lines: any[]): any[];
}
Usage
The ProductTagSelector
class is used to select lines based on product tags.
Parameters:
comparisonType
: Specifies whether the tags should match ('does'
) or not match ('does_not'
).operationType
: Specifies the type of operation ('match_one'
,'contains_one'
,'starts_with'
,'ends_with'
).tags
: An array of tags to compare against.returnType
: Specifies the type of return value ('ALL'
for all line items,'ID'
for just the IDs).
Example:
javascript
const selector = new ProductTagSelector('does', 'match_one', ['SALE', 'NEW'], 'ID');
const selectedLines = selector.select(cart.lines);
ProductVendorSelector
Definition
typescript
declare class ProductVendorSelector {
comparisonType: 'does' | 'does_not';
operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with';
productVendors: string[];
returnType: 'ALL' | 'ID';
constructor(comparisonType: 'does' | 'does_not', operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with', productVendors: string[], returnType?: string);
select(lines: any[]): any[];
}
Usage
The ProductVendorSelector
class is used to select lines based on product vendors.
Parameters:
comparisonType
: Specifies whether the vendors should match ('does'
) or not match ('does_not'
).operationType
: Specifies the type of operation ('match_one'
,'contains_one'
,'starts_with'
,'ends_with'
).productVendors
: An array of vendors to compare against.returnType
: Specifies the type of return value ('ALL'
for all line items,'ID'
for just the IDs).
Example:
javascript
const selector = new ProductVendorSelector('does', 'contains_one', ['Nike', 'Adidas'], 'ALL');
const selectedLines = selector.select(cart.lines);
ProductTypeSelector
Definition
typescript
declare class ProductTypeSelector {
comparisonType: 'does' | 'does_not';
operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with';
productTypes: string[];
returnType: 'ALL' | 'ID';
constructor(comparisonType: 'does' | 'does_not', operationType: 'match_one' | 'contains_one' | 'starts_with' | 'ends_with', productTypes: string[], returnType?: string);
select(lines: any[]): any[];
}
Usage
The ProductTypeSelector
class is used to select lines based on product types.
Parameters:
comparisonType
: Specifies whether the types should match ('does'
) or not match ('does_not'
).operationType
: Specifies the type of operation ('match_one'
,'contains_one'
,'starts_with'
,'ends_with'
).productTypes
: An array of product types to compare against.returnType
: Specifies the type of return value ('ALL'
for all line items,'ID'
for just the IDs).
Example:
javascript
const selector = new ProductTypeSelector('does', 'starts_with', ['Electronics', 'Clothing'], 'ID');
const selectedLines = selector.select(cart.lines);
ReducedItemSelector
Definition
typescript
declare class ReducedItemSelector {
comparisonType: 'is' | 'is_not';
constructor(comparisonType: 'is' | 'is_not');
select(lines: any[]): any[];
}
Usage
The ReducedItemSelector
class is used to select lines based on whether the items are reduced in price.
Parameters:
comparisonType
: Specifies whether the items should be reduced ('is'
) or not reduced ('is_not'
).
Example:
javascript
const selector = new ReducedItemSelector('is');
const selectedLines = selector.select(cart.lines);
RatePriceSelector
Definition
typescript
declare class RatePriceSelector {
comparisonType: 'less_than' | 'greater_than' | 'equal_to';
amount: number;
constructor(comparisonType: 'less_than' | 'greater_than' | 'equal_to', amount: number);
qualifies(rate: any): boolean;
}
Usage
The RatePriceSelector
class is used to qualify rates based on their price.
Parameters:
comparisonType
: Specifies the type of comparison ('less_than'
,'greater_than'
,'equal_to'
).amount
: The amount to compare against.
Example:
javascript
const selector = new RatePriceSelector('less_than', 50);
const isQualified = selector.qualifies(rate);
RateNameSelector
Definition
typescript
declare class RateNameSelector extends QualifierBase {
name: string[];
constructor(comparisonType: 'contains' | 'not_contains' | 'is_one' | 'is_not_one', name: string | string[]);
qualifies(rate: any): boolean;
}
Usage
The RateNameSelector
class is used to qualify rates based on their name.
Parameters:
comparisonType
: Specifies the type of comparison ('contains'
,'not_contains'
,'is_one'
,'is_not_one'
).name
: A string or array of strings to compare against.
Example:
javascript
const selector = new RateNameSelector('contains', 'Express');
const isQualified = selector.qualifies(rate);
AndSelector
Definition
typescript
declare class AndSelector {
selectors: any[];
constructor(selectors: any[]);
select(lines: any[]): any[];
}
Usage
The AndSelector
class is used to combine multiple selectors with AND logic.
Parameters:
selectors
: An array of selectors to combine.
Example:
javascript
const tagSelector = new ProductTagSelector('does', 'match_one', ['SALE']);
const vendorSelector = new ProductVendorSelector('does', 'contains_one', ['Nike']);
const andSelector = new AndSelector([tagSelector, vendorSelector]);
const selectedLines = andSelector.select(cart.lines);
OrSelector
Definition
typescript
declare class OrSelector {
selectors: any[];
constructor(selectors: any[]);
select(lines: any[]): any[];
}
Usage
The OrSelector
class is used to combine multiple selectors with OR logic.
Parameters:
selectors
: An array of selectors to combine.
Example:
javascript
const tagSelector = new ProductTagSelector('does', 'match_one', ['SALE']);
const vendorSelector = new ProductVendorSelector('does', 'contains_one', ['Nike']);
const orSelector = new OrSelector([tagSelector, vendorSelector]);
const selectedLines = orSelector.select(cart.lines);