widget-integration package
Classes
|
Class |
Description |
|---|---|
|
Back-In-Stock module constants for Widget Integration. This injectable class contains all constant values used throughout the back-in-stock widget, including CSS class names, element IDs, CSS selectors, and configuration defaults. | |
|
Cart controller managing UI interactions, modal display, and cart operations This controller provides extensive customization capabilities for Technical Support teams through protected extension points. All timing, selectors, translations, and behavior can be customized per-shop without modifying core code. ## Key Extension Points ### Button State Management - ### Cart Opening Behavior - ### Theme Integration - ### Accessibility & Focus Management - ## Common Customization Patterns | |
|
Cart Drawer Recommendation (RCU) Constants. ## Customization
| |
|
Controller for managing recommendation widget interactions within the cart drawer. NOTE: This controller does NOT extend RecommendationWidgetController to avoid circular dependency (RecommendationModule imports CartModule). Instead, it implements its own This controller handles user interactions with recommendation products that are rendered by the backend cart template. The template renders the recommendation widget using data from CartService.getCartDrawerRecommendationData(). ## Key Responsibilities - Handles "Add to Cart" button clicks from recommendation products - Manages native CSS/JS carousel (not Slick) for recommendation products - Dispatches cart updated events after adding products - Manages event listeners for cart drawer lifecycle ## Extension Points - | |
|
Service for preparing cart-drawer recommendation data. This service acts as a **shared renderer** that bridges RecommendationService to consumers (CartService for Phase 1, ThemeAppBlock for Phase 2). ## Architecture
## Key Responsibilities - Check if cart-drawer recommendation is enabled - Fetch recommendation products via RecommendationService - Format products/variants for template rendering (price formatting) - Provide data structure ready for Liquid template ## Extension Points for TS Team - | |
|
Cart module managing cart functionality via Widget Integration framework This module orchestrates cart operations including: - Cart modal display and interactions - Add to cart functionality - Cart state management - Theme-specific cart icon handling Technical Support teams can extend this module for shop-specific customization: - Override block listener setup via - Customize block initialization via - Add custom error handling via | |
|
Cart selectors managing theme-specific cart icon configurations Provides cart icon selectors and update actions for 30+ Shopify themes including: - Dawn, Debut, Sense, Craft, Refresh, Studio, Taste, Ride, Crave - Prestige, Empire, Impulse, Motion, Flex, Flow, Venue, Warehouse - Turbo, Testament, Venture, Symetry, Superstore, Icon, Ella - BlockShop, ColorBlock, Broadcast, Focal, Expanse - And more custom themes Technical Support teams can: - Add custom theme configurations via window.boostWidgetIntegrationConfig - Override theme detection logic - Customize cart count update behavior | |
|
Cart service managing cart operations and business logic Provides cart functionality including: - Adding products to cart (single or multi-product) - Cart quantity management with queue to prevent race conditions - Cart modal rendering with template customization - Post-add-to-cart action handling (redirect, drawer, etc.) - Cart backup/restore functionality Extension points for Technical Support customization: - - Custom redirect/drawer behavior after adding items - - Custom cart page redirect logic - - Shop-specific cart rendering defaults - - Custom cart item formatting and enrichment - - Custom cart template loading - - Custom validation rules for cart items - - Add shop-specific data to cart responses - - Custom error handling and user feedback | |
|
API service for fetching countdown timer campaigns from the backend. Resolves the current page context (product/cart) and fetches the most relevant active campaign. The backend handles scope filtering, country targeting, and time-window validation — this class only needs to identify the page scope and make the request. | |
|
Controller that manages the countdown timer widget lifecycle. Handles the full flow: fetching the active campaign from the API, rendering the timer into the DOM, ticking every second, and handling expiration behavior (repeat, disable, or freeze at 00:00:00). | |
|
Module for the countdown timer widget. Registers CountdownTimerAPI, CountdownTimerController, and as providers and listens for | |
|
Service for maintaining backward compatibility with legacy customization patterns. This service enables shops that used legacy | |
|
API service for handling filter widget requests to the Boost filter engine. This service provides functionality for fetching filtered product results from the Boost API. It manages request construction, caching, and response processing through extensible methods that allow customization for shop-specific requirements. | |
|
Main controller for managing filter functionality in collection and search pages. This controller orchestrates all filter-related operations including: - Filter tree rendering and state management - Product list updates and pagination - Event handling for user interactions - Price transformation and currency formatting - Mobile and desktop responsive behaviors - Integration with cart, bundles, and recommendations The class is designed to be extended by Technical Support teams for shop-specific customizations. Protected methods provide clear extension points for modifying filter behavior, product rendering, and UI interactions. | |
|
Handler service for filter widget user interactions and UI state management. This service orchestrates all user interaction handlers for the filter system including product clicks, sorting, pagination, view switching, and filter tree interactions. It acts as the central event router that processes DOM events and translates them into filter state changes and custom events. Can be extended by Technical Support teams to customize interaction behaviors for shop-specific requirements. | |
|
Central helper service providing utility functions for the filter module. This service acts as a unified facade for filter-related operations, delegating to specialized helper services (URL, Format, Storage, Validation) while also providing core utilities for JSON parsing, debouncing, event management, template handling, and product URL construction. It can be extended by Technical Support teams to customize filter behaviors, add shop-specific logic, or override default implementations. | |
|
Filter widget module for Widget Integration. Manages the initialization, registration, and lifecycle of filter widgets on collection and search pages. Handles widget connection with TAE framework and dependency injection for all filter-related services. | |
|
Rendering service for filter widget UI components. Manages all DOM rendering operations for the filter widget, including filter options, refine-by tags, view more buttons, collection headers, and mobile/desktop layouts. Coordinates with FilterStore for state management and FilterHelper for utilities. | |
|
Core business logic service for filter widget operations. Orchestrates filter API calls, state management, URL handling, pagination, and filter option processing. Coordinates between FilterAPI, FilterStore, and various helper services to provide complete filter functionality. | |
|
Storage helper for filter module operations. Provides a unified interface for localStorage and sessionStorage operations with built-in error handling, type safety, and JSON serialization. Manages filter-related storage including collection data, pagination state, and temporary filter selections. | |
|
Store for managing filter state, URL parameter mappings, and filter cache. This store manages filter-related state including URL parameter shortening, request caching, and state change notifications. It can be extended by Technical Support teams to customize filter behavior for specific shops. | |
|
Service for managing filter translations and applying them to filter UI elements. This service handles translation of filter options, labels, and UI text using the app's translation configuration. It supports nested translation keys, template variable replacement, and automatic XSS sanitization. It can be extended by Technical Support teams to customize translation behavior for specific shops or languages. | |
|
URL Management Helper for Filter Module Manages all URL and query parameter operations for the filter system, including parameter get/set/delete operations, history management, and URL shortening schemes. This helper can be extended by Technical Support teams to customize URL handling for specific shops, including custom parameter formats, separators, and history behavior. | |
|
Validation Helper for Filter Module Provides comprehensive validation and sanitization utilities for the filter system, including XSS detection, input validation, and data sanitization for secure filter operations. This helper can be extended by Technical Support teams to customize validation rules for specific shops, including custom XSS patterns, allowed characters, or sanitization behavior. | |
|
API service for instant search operations. Technical Support teams can extend this service for custom API behavior: | |
|
Controller for instant search UI interactions. | |
|
Instant Search Widget Module Provides a unified, framework-based instant search system for Shopify themes. **Features**: - Search-as-you-type with debounced API requests - Multiple display styles (dropdown, full-width overlay) - 20+ theme auto-detection and integration - Full keyboard accessibility (WCAG compliant) - Recent searches management - Custom events for extensibility **Migration from Legacy**: | Legacy | New Module | |-------------------------------------|-------------------------------------| | handleInstantSearchWidget(context) | window.boostISWModule.initISWWithContext(settings) | | Global functions with context param | DI-based services | | Hard-coded selectors | Theme config map | | Inline event handling | Controller with state management | **Technical Support Extension**:
| |
|
Service for theme detection and selector management. Technical Support teams can extend this service for custom themes: | |
|
Service for instant search business logic. Technical Support teams can extend this service for custom search behavior: | |
|
Service for calculating ISW dropdown position. Technical Support teams can extend this service for custom positioning: | |
|
Fetches predictive bundle data and applies shop-specific request enrichment. Override request-building methods to add custom segmentation, localization, or analytics parameters for Technical Support customizations. | |
|
Manages predictive bundle rendering, modal behavior, and interaction handling. Override public methods in this controller to customize modal opening behavior, rendering hooks, or interaction responses without replacing the full module. | |
|
Wires predictive bundle blocks into TAE and bridges the legacy global open event. Override this module to customize block discovery, controller connection, or validation of externally dispatched bundle payloads before the modal opens. | |
|
Provides predictive bundle business logic, pricing calculations, and template access. Most shop-specific customization should happen by extending this service instead of editing controller flows directly. | |
|
Stores transient predictive bundle UI state shared across bundle surfaces. Keep overrides lightweight and prefer clearing state when a custom flow no longer needs cached bundle data. | |
|
API service for fetching product details used in Quick View modal. Returns pre-rendered HTML from server including product images, variant swatches, price display, and add to cart functionality. | |
|
Product Item Model - Data model for product item state | |
|
Service for managing recent searches in localStorage. Technical Support teams can extend this service for custom storage strategies: | |
|
Service for handling recommendation widget analytics and tracking data storage. This service manages the persistence of recommendation widget tracking data to localStorage, enabling analytics and tracking of user interactions with recommendation widgets. It provides customizable storage key generation and error handling that can be extended by Technical Support teams for shop-specific requirements. | |
|
API service for handling recommendation widget requests to the Boost recommendation engine. This service extends BoostAPI to provide specialized functionality for fetching product recommendations from the Boost API. It manages request construction through extensible protected methods that allow Technical Support teams to customize query parameters and body payloads for shop-specific requirements. The service uses a functional pipeline approach to transform request parameters, applying currency settings and B2B configurations automatically while allowing additional customizations through method overrides. | |
|
Data model for recommendation widgets containing configuration and product data. | |
|
Service for managing recommendation widgets and their data. | |
|
Controller for managing recommendation widget lifecycle, rendering, and carousel functionality. This controller orchestrates the complete lifecycle of recommendation widgets, from data fetching to rendering and carousel initialization. It provides numerous extension points for Technical Support teams to customize widget behavior for specific shops without modifying core code. | |
|
Module for tier discount bundle widgets. Integrates tier discount functionality into the TAE framework, providing: - Automatic widget initialization from Shopify blocks - Dependency injection for all services - Lazy loading of widgets - Extensibility for shop-specific customizations Technical Support teams can extend this module to customize initialization or add shop-specific services to the dependency injection container. | |
|
Service for managing tier discount bundle business logic. Provides methods for: - Calculating tier achievements and discounts - Managing bundle cart state - Processing product selections - Validating bundle configurations Technical Support teams can extend this class to customize business logic for specific shops without modifying core functionality. | |
Abstract Classes
|
Abstract Class |
Description |
|---|---|
Enumerations
|
Enumeration |
Description |
|---|---|
|
Cart error types for categorization and handling Used to categorize cart errors for logging, analytics, and customized error handling by Technical Support teams. | |
|
Cart update operation types Defines the types of cart update operations for queue management and conflict prevention. |
Functions
|
Function |
Description |
|---|---|
|
dynamicBundleData(_context, bundle, _optionData, action, _target) | |
|
Initializes tier discount widget on search page Uses static method from TierDiscountModule to access DI container | |
|
Resets initialization guards and re-injects the tier discount widget. Called after each filter/sort/pagination update when tiered bundle is the latest, ensuring the widget always reflects current filter results. | |
|
volumeBundleData(_context, bundle, _optionData, _action, _target) |
Interfaces
|
Interface |
Description |
|---|---|
|
Configuration for cart item addition Supports both single product and multi-product addition patterns. Can be extended with custom properties for shop-specific needs. | |
|
Result of add to cart operation Provides structured response for cart operations with success/error status. Includes optional response data and error messages. | |
|
Main thread blocking metrics | |
|
Structure for cached suggestion data. | |
|
Carousel state for tracking slide position and configuration. Used internally by the controller to manage the native CSS/JS carousel. | |
|
Interface for cart item to be added | |
|
Interface for cart change response | |
|
Template data for cart-drawer recommendation rendering. This is the primary data structure passed to the cart template and received by custom | |
|
Cart error context for debugging and logging Provides additional context about errors for better debugging and error tracking in production. | |
|
Rendered cart modal data Contains the rendered HTML and metadata for displaying the cart. | |
|
Configuration for cart rendering Controls how the cart is displayed to users including style, currency formatting, and other display preferences. | |
|
Cart update request for queue management Used internally to queue cart updates and prevent race conditions. | |
|
Collection information with label/value structure for UI display. Used in rule conditions and consequences for collection filters. | |
|
Condition type for rule-based recommendations. Defines the "IF" part of a rule - what criteria must be met. | |
|
Campaign data as returned by sip-api | |
|
General display and interaction settings for the countdown timer. | |
|
Style settings from BE. | |
|
API response shape from | |
|
Timer labels from BE (singular keys) | |
|
Timer settings nested object from BE. | |
|
Data passed to Liquid template for rendering. | |
|
Default suggestion data built on initialization. **Legacy**: Built in buildDefaultDataSuggestion() function **New**: Typed interface for the default data structure | |
|
Drag state for tracking touch/mouse drag interactions in the native carousel. | |
|
Base payload structure for filter events. Contains the event key, new value, and optionally the previous value for tracking state transitions. | |
|
Formatted price result | |
|
Product formatted for template rendering. Primary values (price_min, etc.) are formatted strings for direct display. Raw numeric values are available with _raw suffix. | |
|
Variant formatted for template rendering. Primary values (price, compare_at_price) are formatted strings for direct display. Raw numeric values are available with _raw suffix. | |
|
Performance tracker interface | |
|
Payload for boost-sd-isw-rendered custom event. | |
|
Internal state management for the ISW controller. **Legacy**: State was managed via global variables (keyboardNavIndex, currentSearch) **New**: Encapsulated in ISWState interface with proper typing | |
|
JavaScript execution timing metrics | |
|
Options for dynamically loading modules via loadModule() | |
|
Memory consumption metrics | |
|
Payload for boost-sd-open-isw custom event. | |
|
Options with values for variant selection | |
|
Performance issue with severity and recommendations | |
|
Performance measurement entry for tracking individual operations | |
|
Performance metrics and timing data | |
|
Performance report containing analysis and recommendations | |
|
Detailed breakdown section of performance report | |
|
Summary section of performance report | |
|
Configuration options for performance tracking | |
|
Position configuration for dropdown styles. **Legacy**: Calculated inline in calcPositionSuggestionResult() **New**: Dedicated PositionService with typed config | |
|
Add to cart payload for pre-order items | |
|
Pre-order data attached to a variant | |
|
Pre-order product data | |
|
Selling plan configuration for pre-orders | |
|
Pre-order settings from variant configuration | |
|
UI elements for pre-order display | |
|
Variant with pre-order information | |
|
Price display settings from theme configuration | |
|
Price formatting settings from theme configuration. | |
|
Price calculation result | |
|
Parameters for price HTML generation | |
|
Price transformation context with DOM and settings | |
|
Processed cart item ready for template rendering Extends the base Product type with formatted display fields and filtered options. Used by cart templates for rendering. | |
|
Product data structure from data-product attribute | |
|
Product data extracted from DOM element | |
|
Represents a product image with position information | |
|
Price display settings from theme configuration | |
|
Product information in simplified format for rule conditions and consequences. Used when backend transforms product IDs into UI-friendly format. | |
|
Quick Add to Cart item payload | |
|
Quick View action payload | |
|
Quick View template params for API | |
|
Shared context object passed between range slider helper methods. Collects all DOM references, computed settings, and mutable slider state so that each helper function has a single, explicit parameter instead of relying on shared closure variables. | |
|
Raw product data from Recommendation API before formatting. Note: Prices are in the store's currency unit (e.g., 19.99 for $19.99, 100 for 100 VND), NOT in cents like Shopify Cart API. | |
|
Raw variant data from Recommendation API before formatting. Note: Prices are in the store's currency unit (e.g., 19.99 for $19.99, 100 for 100 VND), NOT in cents like Shopify Cart API. | |
|
Recent search item structure. **Legacy**: Stored as { title, extraParam, scope } **New**: Same structure but properly typed | |
|
Rendering performance metrics | |
|
Rule group combining conditions and consequences. Represents a complete rule: IF conditions THEN show consequences. | |
|
Search box on-click configuration from admin settings. | |
|
Payload for boost-sd-search custom event. | |
|
Search settings from admin configuration. **Legacy**: Retrieved via getSearchSettings(context) utility **New**: Same data but with full TypeScript interface | |
|
Selling plan allocation from Shopify cart item | |
|
Shopify cart item with selling plan | |
|
Slick carousel instance interface for type-safe method calls. Provides type definitions for interacting with an initialized Slick carousel. Represents the jQuery plugin instance returned by $('.element').slick(). | |
|
Slick carousel configuration options. Defines the behavior and appearance of the Slick carousel used for recommendation widgets with carousel layout. For complete options reference, see: https://kenwheeler.github.io/slick/ | |
|
Suggestion block configuration from admin settings. | |
|
Bundle information returned from the suggestion API. | |
|
Collection item returned from the suggestion API. | |
|
No result fallback configuration from admin settings. | |
|
Page item returned from the suggestion API. | |
|
Parameters for suggestion API request. | |
|
Response from the suggestion search API. **Legacy**: Untyped object returned from getSuggestionSearch() **New**: Fully typed interface with JSDoc comments | |
|
Swatch settings from filter configuration | |
|
CTA data for template rendering | |
|
Labels for template rendering (plural keys) | |
|
Theme-specific search configuration. **Legacy**: Hard-coded selectors scattered in index.js **New**: Configurable per-theme with extensibility via window config | |
|
Variant selection state | |
Variables
|
Variable |
Description |
|---|---|
|
API action types for different filter widget operations. Categorizes the type of API request being made for analytics and routing. | |
|
Common HTML attribute values used in filter widget. Pre-defined values for standard attributes to ensure consistency. | |
|
Pagination behavior types for filter API requests. Defines how new results should be integrated with existing content when paginating. | |
|
Storage key for current collection ID in session storage. Stores the active collection ID to maintain state across page navigations and filter operations. | |
|
Storage key for current collection tags in session storage. Stores collection tags to support tag-based filtering within collections. | |
|
Storage key for filter collapse state. Stores which filter options are expanded or collapsed. | |
|
Storage key for tracking the "All Products" collection ID. Used to store the special collection ID that represents all products in local storage for session persistence. | |
|
Storage key for currently selected collection. Stores the active collection identifier. | |
|
Standard CSS class names used in filter widget styling. Contains reusable class names for common UI states and components. Technical Support teams can reference these when adding custom styles. | |
|
Default separator for joining multiple filter values in URLs. Used when constructing URL parameters with multiple selected values (e.g., "red,blue,green" for color filters). | |
|
Static list of DOM event names used for XSS detection. Contains 100+ DOM event handler names that could be exploited in XSS attacks. This array is used to build the EVENT_REGEX pattern for comprehensive security scanning. | |
|
CSS selectors for filter widget DOM elements. Pre-defined selectors for querying filter widget elements in the DOM. Technical Support teams can use these for custom DOM manipulation. | |
|
Cached regex patterns for validation. Pre-compiled regular expressions for common validation tasks, shared across the filter module for optimal performance. | |
|
Standard event names used throughout the filter widget. These constants define all available events for filter state changes, user interactions, and UI updates. Technical Support teams can listen to these events to hook into filter behavior. | |
|
Cached regex for DOM event detection. Pre-compiled regular expression pattern built from the DOM_EVENTS array. Used by FilterValidationHelper for efficient XSS pattern detection without recompiling the regex on every validation call. | |
|
CSS selector for desktop filter tree wrapper element. Targets the left sidebar container for desktop filter display. | |
|
Prefix for all Boost filter URL parameters. All filter parameters in the URL start with this prefix to avoid conflicts with other query parameters (e.g., "pf_st_color", "pf_t_vendor"). | |
|
CSS class for full-height filter option wrapper on mobile. Applied to filter option containers that should take full viewport height. | |
|
CSS selector combining full-height class for mobile filter wrapper. | |
|
CSS selector for mobile filter tree wrapper element. Targets the main container for the mobile filter tree overlay. | |
|
Filter option display type variants. Defines how filter options are visually rendered in the UI. Each display type has different HTML structure and styling requirements. | |
|
Available filter option types. Defines all supported filter types in the filter widget. Each type has specific behavior, display format, and data structure requirements. | |
|
URL parameter key for tag filters. The query parameter name used for tag-based filtering (e.g., "?pf_tag=summer"). | |
|
Filter tree UI state storage keys. Keys used to persist filter tree open/closed states and focus information in session storage for consistent user experience across page loads. | |
|
HTML attribute names used in filter widget elements. Standard attribute names for accessibility, data storage, and behavior. | |
|
Storage key for the starting page of an infinite-scroll / load-more session. Used by trackSelectedProductPage to calculate the correct absolute page offset when the user navigates back after scrolling through multiple pages. | |
|
Storage key for tracking the initial page number. Stores the starting page when pagination is used, allowing reset to initial state. | |
|
Initial scale factor for zoom animations. Starting scale value for image or element zoom effects. | |
|
Keyboard keys that trigger filter option selection. Array of key values that should activate filter options when focused, supporting keyboard accessibility (Enter and Space). | |
|
Storage key for limit setting configuration. Stores the configured page size options available to users. | |
|
Storage key for current result limit/page size. Stores how many products per page are currently displayed. | |
|
Pre-defined metadata JSON strings for common filter actions. Contains stringified JSON metadata used in data-metadata attributes. | |
|
Storage key for tracking the next page URL/state. Used for forward button functionality in pagination to load next page state. | |
|
Parallax scroll speed multiplier for visual effects. Controls the speed of parallax scrolling animations. | |
|
Widget placement locations for analytics and behavior customization. Defines where the filter widget is rendered on the site, affecting analytics tracking and behavior patterns. | |
|
Storage key for previous user action. Tracks the last filter action taken by the user for analytics and state management. | |
|
Storage key for previous request IDs to prevent duplicate requests. Stores recent API request IDs to detect and cancel redundant calls. | |
|
Storage key for tracking the previous page URL/state. Used for back button functionality in pagination to restore previous page state. | |
|
Swatch option type enum | |
|
Standard URL query parameter names for filter API requests. Defines the parameter keys used when making requests to the Boost filter API. Technical Support teams can use these when building custom filter parameters. | |
|
Regular expression pattern for escaping special regex characters. Used to safely escape user input before using it in regular expressions to prevent regex injection vulnerabilities. | |
|
Responsive breakpoints for mobile and tablet detection. Maximum pixel widths for device type classification. | |
|
API response format types. Specifies whether the filter API should return JSON data or pre-rendered HTML. | |
|
Storage key for currently selected product ID. Tracks which product is currently selected/focused. | |
|
Storage key for currently selected product page number. Tracks which page of products is currently displayed. | |
|
Filter option "Show More" behavior types. Defines how filter options are displayed when there are many values, controlling the expansion/collapse mechanism. | |
|
Template identifier mapping for filter widget components. Maps template keys to their corresponding template IDs in the template system. Used by FilterHelper.getTemplate() to retrieve the correct HTML template. | |
Type Aliases
|
Type Alias |
Description |
|---|---|
|
AdditionalElement Settings | |
|
Base properties shared by all filter value types. Contains the document count (number of products) matching this filter value. | |
|
Cached API response with timestamp. Used by FilterAPI to cache responses and avoid redundant network requests. Technical Support teams can extend FilterAPI to customize cache invalidation logic. | |
|
Event callback function signature. | |
|
Cart Settings | |
|
Design settings for cart-drawer recommendation widget. Configured in TAE Admin under recommendationWidgets['cart-drawer'][widgetId] | |
|
Collection filter value with extended metadata. Used specifically for collection-type filters that include Shopify collection data like handles, tags, images, and HTML descriptions. | |
|
Consequence type for rule-based recommendations. Defines the "THEN" part of a rule - what products to show when conditions are met. | |
|
CTA action type | |
|
Behavior when timer ends | |
|
Placement scope | |
|
Position of the countdown timer bar relative to the page viewport. | |
|
Countdown display type | |
|
Pair of event name and callback for bulk subscription operations. | |
|
Typed event handler that receives both custom data and base EventPayload. | |
|
Valid event name - either string literal or typed EVENT_NAMES key. | |
|
Map storing event subscriptions: event name -> array of callbacks. | |
|
Additional options for customizing filter API requests. Provides hooks for Technical Support teams to modify request parameters, control response format, and specify pagination behavior. | |
|
URL parameters sent to the Boost filter API. Key-value pairs representing filter selections, sorting, pagination, and other query parameters. Values can be arrays for multi-select filters or primitives for single-select options. | |
|
Response data from the Boost filter API. Contains rendered HTML, updated filter options, dynamic bundles, and metadata including currency formatting and request tracking. | |
|
Base configuration properties shared by all filter types. Contains display settings, behavior flags, and styling options that apply to every filter regardless of its value type (simple, collection, rating, tags). | |
|
Complete filter configuration using discriminated union based on valueType. This type ensures type safety when working with different filter value types. Use the valueType property to narrow the type and access the correctly-typed values array. | |
|
Container for all filter options returned by the filter API. This is the main data structure received from the Boost filter engine, containing all available filters and their current values. | |
|
Initial properties for filter widget initialization. These properties are passed when creating a new filter widget instance, containing configuration, DOM context, and initial data. | |
|
Complete runtime state for an active filter widget. Extends FilterProps with all runtime state management properties including loading states, user interactions, URL parameter mappings, and UI state. | |
|
UI state to preserve during DOM updates | |
|
Type guard function for runtime type checking. Used throughout the filter module to safely validate data structures from API responses or configuration. | |
|
A lazy module import is a function that returns a Promise resolving to a module class. This enables code-splitting and dynamic imports for modules. | |
|
A module import can be either a static module class or a lazy import function | |
|
Function type for rendering price HTML | |
|
QuickView Settings | |
|
Range filter value for price and other numeric range filters. Used for filters that have minimum and maximum numeric bounds, such as price ranges or other continuous numeric values. | |
|
Rating filter value for star rating filters. Represents a rating range (e.g., "4 stars and up") with numeric bounds. Typically used with review integrations like Reviews.io. | |
|
Configuration properties for initializing the RecommendationWidgetController. | |
|
Internal state management for the recommendation widget controller. | |
|
Tracking data structure for recommendation widgets. Defines the shape of data stored for recommendation widget analytics and tracking. This data is persisted to localStorage to track user interactions with recommendation widgets and enable analytics reporting. | |
|
Simple filter value for standard filters (color, size, vendor, tags, etc.). Used for most filter types where each option has a key and display label. | |
|
Combined suggestion data for rendering. | |
|
Tag filter value supporting hierarchical multi-level tag structures. Used for nested tag filters where tags can have sub-tags (children). Includes action IDs and metadata for interactive expand/collapse behavior. | |
|
Metadata for tag filter option list actions. Defines behavior when clicking on a tag filter option, including filter type, selection mode, and display format. | |
|
Metadata containing action definitions for tag filter interactions. Supports both option list actions and multi-level expand/collapse behavior. | |
|
Map of theme names to their configurations. | |
|
Timer type as stored in BE | |