@liquidcommerce/elements-sdk 2.7.7 → 2.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/index.checkout.esm.js +6890 -6861
  2. package/dist/index.esm.js +10891 -10818
  3. package/dist/types/auto-initialize/shared-utils.d.ts +3 -2
  4. package/dist/types/core/store/interfaces/product-list.interface.d.ts +2 -1
  5. package/dist/types/interfaces/api/product-list.interface.d.ts +1 -1
  6. package/dist/types/modules/product/components/product-retailers-popup-list.component.d.ts +1 -1
  7. package/dist/types/modules/product-list/components/card-components/product-quantity-selector.d.ts +1 -1
  8. package/dist/types/modules/product-list/components/card-components/product-sizes-list.d.ts +1 -1
  9. package/dist/types/modules/product-list/components/filter-components/product-list-filters-chips.d.ts +1 -1
  10. package/dist/types/modules/product-list/components/filter-components/product-list-fulfillment-filter.d.ts +2 -2
  11. package/dist/types/modules/product-list/components/filter-components/product-list-toggle-filters.d.ts +1 -1
  12. package/dist/types/modules/product-list/components/index.d.ts +1 -1
  13. package/dist/types/modules/product-list/components/product-list-card-loading.component.d.ts +1 -1
  14. package/dist/types/modules/product-list/{product-list-card.component.d.ts → components/product-list-card.component.d.ts} +1 -1
  15. package/dist/types/modules/product-list/components/product-list-engraving.component.d.ts +3 -3
  16. package/dist/types/modules/product-list/components/product-list-filters.component.d.ts +4 -5
  17. package/dist/types/modules/product-list/components/product-list-product-engraving-lines.component.d.ts +2 -2
  18. package/dist/types/modules/product-list/components/product-list-product-pre-cart.component.d.ts +2 -2
  19. package/dist/types/modules/product-list/product-list.commands.d.ts +3 -2
  20. package/dist/types/modules/product-list/product-list.component.d.ts +2 -1
  21. package/dist/types/modules/product-list/product-list.interface.d.ts +9 -0
  22. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import type { IAddProductParams } from '@/core/client/actions/client-cart-action.service';
2
2
  import type { IAnonymousCheckoutAddProductItem } from '@/interfaces/api/checkout.interface';
3
3
  import type { IInjectedComponent } from '@/interfaces/component.interface';
4
- import type { ILiquidCommerceElementsDevelopmentConfig } from '@/interfaces/config.interface';
4
+ import type { IClientCustomThemeConfig, ILiquidCommerceElementsDevelopmentConfig } from '@/interfaces/config.interface';
5
5
  import type { IInjectCheckoutParams } from '@/interfaces/injection.interface';
6
6
  export interface IQueryParamActions {
7
7
  addProduct: (params: IAddProductParams[], open?: boolean) => Promise<void>;
@@ -27,13 +27,14 @@ export declare const SHARED_ATTR: {
27
27
  };
28
28
  readonly JSON_SCRIPT: {
29
29
  readonly DEVELOPMENT: "data-liquid-commerce-elements-development";
30
+ readonly CUSTOM_THEME: "data-liquid-commerce-elements-custom-theme";
30
31
  };
31
32
  };
32
33
  export declare function startsWithLcePrefix(value: string | null): boolean;
33
34
  export declare function getDevelopmentConfigs(): ILiquidCommerceElementsDevelopmentConfig | undefined;
35
+ export declare function getCustomThemeConfig(): IClientCustomThemeConfig | undefined;
34
36
  export declare function triggerAutoInit(initFunction: () => Promise<void>, errorPrefix: string): void;
35
37
  export declare function setupCheckout(script: HTMLScriptElement, injectFn: (params: IInjectCheckoutParams) => Promise<IInjectedComponent | null>, exitCheckoutFn: () => void, options: {
36
- requireCheckoutId?: boolean;
37
38
  errorPrefix: string;
38
39
  }): Promise<void>;
39
40
  export declare function setupExitCheckoutHandlers(exitCheckoutFn: () => void): void;
@@ -1,7 +1,7 @@
1
- import type { IPagination } from 'modules/product-list/product-list.interface';
2
1
  import type { FulfillmentType } from '@/enums';
3
2
  import type { IProduct } from '@/interfaces/api/product.interface';
4
3
  import type { IFilterSchema } from '@/interfaces/api/product-list.interface';
4
+ import type { IPagination } from '@/modules/product-list/product-list.interface';
5
5
  import type { IProductFulfillmentStore, IProductSizeStore } from './product.interface';
6
6
  export interface IPLProductStore extends Omit<IProduct, 'sizes'> {
7
7
  id: string;
@@ -26,4 +26,5 @@ export interface IProductListStore {
26
26
  rows: number;
27
27
  columns: number;
28
28
  loading: boolean;
29
+ rerender: boolean;
29
30
  }
@@ -1,6 +1,6 @@
1
- import type { FILTER_KEYS } from 'modules/product-list/product-list.constants';
2
1
  import type { ILocation } from '@/interfaces/api/address.interface';
3
2
  import type { IProductAvailabilityResponse } from '@/interfaces/api/product.interface';
3
+ import type { FILTER_KEYS } from '@/modules/product-list/product-list.constants';
4
4
  export interface IProductSearchParams {
5
5
  slug: string;
6
6
  location?: ILocation;
@@ -8,7 +8,7 @@ export interface IProductRetailersPopupListComponentParams {
8
8
  }
9
9
  export declare class ProductRetailersPopupListComponent extends BaseComponent<IProductRetailersPopupListComponentParams, IProductComponent> {
10
10
  get hostClasses(): string[];
11
- private get isProductListContext();
11
+ private get isProductContext();
12
12
  beforeSetupStoreWatchers(): void;
13
13
  private onFulfillmentTabClick;
14
14
  private onRetailerCardClick;
@@ -1,4 +1,4 @@
1
- import type { PLCCardStyle } from 'interfaces/configs/product-list.interface';
1
+ import type { PLCCardStyle } from '@/interfaces/configs/product-list.interface';
2
2
  export interface IQuantitySelectorParams {
3
3
  initialQuantity: number;
4
4
  minQuantity: number;
@@ -1,5 +1,5 @@
1
- import type { IProductSizeStore } from 'core/store/interfaces/product.interface';
2
1
  import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductSizeStore } from '@/core/store/interfaces/product.interface';
3
3
  export interface IProductListSizeSelectorParams {
4
4
  sizes: Record<string, IProductSizeStore>;
5
5
  selectedSizeId: string | null;
@@ -1,4 +1,4 @@
1
- import type { IExtendedFilterSchema, IProductListFilters } from 'modules/product-list/product-list.interface';
1
+ import type { IExtendedFilterSchema, IProductListFilters } from '@/modules/product-list/product-list.interface';
2
2
  export interface ICreateChipsContainerParams {
3
3
  currentFilters?: IProductListFilters;
4
4
  sanitizedFilters?: IExtendedFilterSchema[];
@@ -1,5 +1,5 @@
1
- import { FULFILLMENT_OPTIONS } from 'modules/product-list/product-list.constants';
2
- import type { IProductListFilters } from 'modules/product-list/product-list.interface';
1
+ import { FULFILLMENT_OPTIONS } from '@/modules/product-list/product-list.constants';
2
+ import type { IProductListFilters } from '@/modules/product-list/product-list.interface';
3
3
  export interface ICreateFulfillmentFilterParams {
4
4
  currentFilters?: IProductListFilters;
5
5
  deliveryCollapsed: boolean;
@@ -1,4 +1,4 @@
1
- import type { IProductListFilters } from 'modules/product-list/product-list.interface';
1
+ import type { IProductListFilters } from '@/modules/product-list/product-list.interface';
2
2
  export interface ICreateEngravingFilterParams {
3
3
  currentFilters?: IProductListFilters;
4
4
  isPersonalizationDisabled: boolean;
@@ -1,6 +1,6 @@
1
- export * from '../product-list-card.component';
2
1
  export * from './filter-components';
3
2
  export * from './filter-components/product-list-apply-filter-button';
3
+ export * from './product-list-card.component';
4
4
  export * from './product-list-card-loading.component';
5
5
  export * from './product-list-engraving.component';
6
6
  export * from './product-list-filters.component';
@@ -1,5 +1,5 @@
1
- import type { IProductListComponent } from 'interfaces/configs';
2
1
  import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
3
  import type { IProductListComponentParams } from '@/modules/product-list/product-list.component';
4
4
  export declare class ProductListCardLoadingComponent extends BaseComponent<IProductListComponentParams, IProductListComponent> {
5
5
  get hostClasses(): string[];
@@ -1,5 +1,5 @@
1
- import type { IProductListComponent } from 'interfaces/configs';
2
1
  import { BaseComponent, type IOnStoreChanged } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
3
  export interface IProductListCardParams {
4
4
  slug: string;
5
5
  productId: string;
@@ -1,6 +1,6 @@
1
- import { BaseComponent } from 'core/base-component.service';
2
- import type { IProductListComponent } from 'interfaces/configs';
3
- import type { IEngravingFormComponentParams } from 'modules/ui-components/engraving';
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
+ import type { IEngravingFormComponentParams } from '@/modules/ui-components/engraving';
4
4
  interface IProductListEngravingParams extends IEngravingFormComponentParams {
5
5
  slug: string;
6
6
  }
@@ -1,12 +1,10 @@
1
- import { BaseComponent } from 'core/base-component.service';
2
- import type { ProductListFilterType } from 'interfaces/injection.interface';
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
3
3
  export interface IProductListFiltersParams {
4
4
  slug: string;
5
5
  filters: ProductListFilterType[];
6
6
  }
7
7
  export declare class ProductListFiltersComponent extends BaseComponent<IProductListFiltersParams> {
8
- private readonly DEFAULT_MIN_PRICE;
9
- private readonly DEFAULT_MAX_PRICE;
10
8
  private readonly FILTER_DEBOUNCE_DELAY_MS;
11
9
  private isRenderedInDrawerMode;
12
10
  private permanentFilters;
@@ -34,6 +32,8 @@ export declare class ProductListFiltersComponent extends BaseComponent<IProductL
34
32
  private detectIfRenderedInDrawer;
35
33
  onStoreWatch(): void;
36
34
  private syncFiltersFromStore;
35
+ private createFilterSection;
36
+ private rebuildContainer;
37
37
  private refreshUIStates;
38
38
  private transformFilterValue;
39
39
  private fetchFilters;
@@ -55,7 +55,6 @@ export declare class ProductListFiltersComponent extends BaseComponent<IProductL
55
55
  private togglePriceFilterCollapse;
56
56
  private buildPriceFilterElements;
57
57
  private buildDynamicFiltersElements;
58
- private getFilterElements;
59
58
  private buildCheckboxFilterElements;
60
59
  private toggleCheckboxFilterExpansion;
61
60
  private renderCheckboxItemsForFilter;
@@ -1,5 +1,5 @@
1
- import { BaseComponent } from 'core/base-component.service';
2
- import type { IProductListComponent } from 'interfaces/configs';
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
3
  export interface IProductListProductEngravingLinesComponentParams {
4
4
  slug: string;
5
5
  identifier: string;
@@ -1,5 +1,5 @@
1
- import { BaseComponent, type IOnStoreChanged } from 'core/base-component.service';
2
- import type { IProductListComponent } from 'interfaces/configs';
1
+ import { BaseComponent, type IOnStoreChanged } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
3
  export interface IProductListProductPreCartComponentParams {
4
4
  slug: string;
5
5
  productId: string;
@@ -3,7 +3,7 @@ import { type FulfillmentType } from '@/enums';
3
3
  import type { IFilterSchema, INavigationResponse, IProductSearchParams, IProductSearchResponse } from '@/interfaces/api/product-list.interface';
4
4
  import type { ProductListFilterType } from '@/interfaces/injection.interface';
5
5
  import { type AddItemParams } from '@/modules/cart/cart.commands';
6
- import type { IExtendedFilterSchema, IPagination, IProductListFilters } from './product-list.interface';
6
+ import type { IExtendedFilterSchema, ILoadInitialProductsParams, IPagination, IProductListFilters } from './product-list.interface';
7
7
  export declare class ProductListCommands extends BaseCommand {
8
8
  private readonly uiCommands;
9
9
  private readonly cartCommands;
@@ -12,7 +12,8 @@ export declare class ProductListCommands extends BaseCommand {
12
12
  initializeListStore(slug: string): void;
13
13
  updateSearchTerm(slug: string, searchTerm: string): void;
14
14
  setLoading(slug: string, isLoading: boolean): void;
15
- loadInitialProducts(slug: string, page: number, perPage: number, searchTerm: string, currentFilters: IProductListFilters, configuredFilters: ProductListFilterType[]): Promise<void>;
15
+ rerenderProductLists(): void;
16
+ loadInitialProducts({ slug, page, perPage, searchTerm, currentFilters, configuredFilters, }: ILoadInitialProductsParams): Promise<void>;
16
17
  loadMoreProducts(slug: string, perPage: number, searchTerm: string, currentFilters: IProductListFilters, configuredFilters: ProductListFilterType[]): Promise<void>;
17
18
  getProductList(params: IProductSearchParams): Promise<IProductSearchResponse>;
18
19
  syncFiltersFromComponent(slug: string, filters: IProductListFilters): void;
@@ -1,5 +1,5 @@
1
- import type { IProductListComponent } from 'interfaces/configs';
2
1
  import { BaseComponent, type IOnStoreChanged } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
3
  import type { ProductListFilterType } from '@/interfaces/injection.interface';
4
4
  export interface IProductListComponentParams {
5
5
  slug: string;
@@ -45,5 +45,6 @@ export declare class ProductListComponent extends BaseComponent<IProductListComp
45
45
  private cleanupScrollObserver;
46
46
  private doCleanup;
47
47
  onStoreWatch(changes: IOnStoreChanged[]): Promise<void>;
48
+ onStoreChanged(): boolean;
48
49
  protected template(): HTMLElement[];
49
50
  }
@@ -1,4 +1,5 @@
1
1
  import type { IFilterValue } from '@/interfaces/api/product-list.interface';
2
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
2
3
  export interface IPriceConfig {
3
4
  min?: string;
4
5
  max?: string;
@@ -54,3 +55,11 @@ export interface IRenderCheckboxItemsParams {
54
55
  state: ICheckboxLabelStates;
55
56
  onCheckboxChange: (value: string, checked: boolean) => void;
56
57
  }
58
+ export interface ILoadInitialProductsParams {
59
+ slug: string;
60
+ page: number;
61
+ perPage: number;
62
+ searchTerm: string;
63
+ currentFilters: IProductListFilters;
64
+ configuredFilters: ProductListFilterType[];
65
+ }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "LiquidCommerce Elements SDK",
4
4
  "license": "UNLICENSED",
5
5
  "author": "LiquidCommerce Team",
6
- "version": "2.7.7",
6
+ "version": "2.7.8",
7
7
  "homepage": "https://docs.liquidcommerce.co/elements-sdk",
8
8
  "repository": {
9
9
  "type": "git",