@wix/headless-stores 0.0.40 → 0.0.42

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 (49) hide show
  1. package/cjs/dist/react/CategoryList.d.ts +2 -2
  2. package/cjs/dist/react/ProductList.d.ts +31 -3
  3. package/cjs/dist/react/ProductList.js +33 -5
  4. package/cjs/dist/react/ProductListFilters.d.ts +91 -111
  5. package/cjs/dist/react/ProductListFilters.js +98 -115
  6. package/cjs/dist/react/ProductListPagination.d.ts +89 -96
  7. package/cjs/dist/react/ProductListPagination.js +96 -104
  8. package/cjs/dist/react/ProductListSort.d.ts +26 -57
  9. package/cjs/dist/react/ProductListSort.js +26 -58
  10. package/cjs/dist/services/categories-list-service.d.ts +8 -8
  11. package/cjs/dist/services/categories-list-service.js +2 -2
  12. package/cjs/dist/services/category-service.d.ts +12 -5
  13. package/cjs/dist/services/index.d.ts +2 -4
  14. package/cjs/dist/services/index.js +1 -3
  15. package/cjs/dist/services/products-list-search-service.d.ts +219 -0
  16. package/cjs/dist/services/products-list-search-service.js +794 -0
  17. package/cjs/dist/services/products-list-service.d.ts +28 -11
  18. package/cjs/dist/services/products-list-service.js +26 -6
  19. package/dist/react/CategoryList.d.ts +2 -2
  20. package/dist/react/ProductList.d.ts +31 -3
  21. package/dist/react/ProductList.js +33 -5
  22. package/dist/react/ProductListFilters.d.ts +91 -111
  23. package/dist/react/ProductListFilters.js +98 -115
  24. package/dist/react/ProductListPagination.d.ts +89 -96
  25. package/dist/react/ProductListPagination.js +96 -104
  26. package/dist/react/ProductListSort.d.ts +26 -57
  27. package/dist/react/ProductListSort.js +26 -58
  28. package/dist/services/categories-list-service.d.ts +8 -8
  29. package/dist/services/categories-list-service.js +2 -2
  30. package/dist/services/category-service.d.ts +12 -5
  31. package/dist/services/index.d.ts +2 -4
  32. package/dist/services/index.js +1 -3
  33. package/dist/services/products-list-search-service.d.ts +219 -0
  34. package/dist/services/products-list-search-service.js +794 -0
  35. package/dist/services/products-list-service.d.ts +28 -11
  36. package/dist/services/products-list-service.js +26 -6
  37. package/package.json +2 -2
  38. package/cjs/dist/services/products-list-filters-service.d.ts +0 -309
  39. package/cjs/dist/services/products-list-filters-service.js +0 -504
  40. package/cjs/dist/services/products-list-pagination-service.d.ts +0 -186
  41. package/cjs/dist/services/products-list-pagination-service.js +0 -179
  42. package/cjs/dist/services/products-list-sort-service.d.ts +0 -117
  43. package/cjs/dist/services/products-list-sort-service.js +0 -144
  44. package/dist/services/products-list-filters-service.d.ts +0 -309
  45. package/dist/services/products-list-filters-service.js +0 -504
  46. package/dist/services/products-list-pagination-service.d.ts +0 -186
  47. package/dist/services/products-list-pagination-service.js +0 -179
  48. package/dist/services/products-list-sort-service.d.ts +0 -117
  49. package/dist/services/products-list-sort-service.js +0 -144
@@ -0,0 +1,219 @@
1
+ import type { Signal } from "@wix/services-definitions/core-services/signals";
2
+ import { productsV3, customizationsV3 } from "@wix/stores";
3
+ import { SortType } from "./../enums/sort-enums.js";
4
+ export { SortType } from "./../enums/sort-enums.js";
5
+ /**
6
+ * Enumeration of inventory status types available for filtering.
7
+ * Re-exports the Wix inventory availability status enum values.
8
+ */
9
+ export declare const InventoryStatusType: typeof productsV3.InventoryAvailabilityStatus;
10
+ /**
11
+ * Type for inventory status values.
12
+ * Re-exports the Wix inventory availability status enum type.
13
+ */
14
+ export type InventoryStatusType = productsV3.InventoryAvailabilityStatus;
15
+ /**
16
+ * Interface representing a product option (like Size, Color, etc.).
17
+ */
18
+ export interface ProductOption {
19
+ id: string;
20
+ name: string;
21
+ choices: ProductChoice[];
22
+ optionRenderType?: string;
23
+ }
24
+ /**
25
+ * Interface representing a choice within a product option.
26
+ */
27
+ export interface ProductChoice {
28
+ id: string;
29
+ name: string;
30
+ colorCode?: string;
31
+ }
32
+ /**
33
+ * Initial search state that can be loaded from URL parameters.
34
+ */
35
+ type InitialSearchState = {
36
+ sort?: SortType;
37
+ limit?: number;
38
+ cursor?: string | null;
39
+ priceRange?: {
40
+ min?: number;
41
+ max?: number;
42
+ };
43
+ inventoryStatuses?: InventoryStatusType[];
44
+ productOptions?: Record<string, string[]>;
45
+ category?: string;
46
+ visible?: boolean;
47
+ productType?: string;
48
+ };
49
+ /**
50
+ * Configuration interface for the Products List Search service.
51
+ */
52
+ export type ProductsListSearchServiceConfig = {
53
+ customizations: customizationsV3.Customization[];
54
+ initialSearchState?: InitialSearchState;
55
+ };
56
+ /**
57
+ * Service definition for the Products List Search service.
58
+ * This consolidates sort, pagination, and filtering functionality.
59
+ */
60
+ export declare const ProductsListSearchServiceDefinition: string & {
61
+ __api: {
62
+ selectedSortOption: Signal<string>;
63
+ sortOptions: SortType[];
64
+ setSelectedSortOption: (sort: string) => void;
65
+ currentLimit: Signal<number>;
66
+ currentCursor: Signal<string | null>;
67
+ hasNextPage: {
68
+ get: () => boolean;
69
+ };
70
+ hasPrevPage: {
71
+ get: () => boolean;
72
+ };
73
+ setLimit: (limit: number) => void;
74
+ nextPage: () => void;
75
+ prevPage: () => void;
76
+ navigateToFirstPage: () => void;
77
+ loadMore: (count: number) => void;
78
+ selectedMinPrice: Signal<number>;
79
+ selectedMaxPrice: Signal<number>;
80
+ availableMinPrice: Signal<number>;
81
+ availableMaxPrice: Signal<number>;
82
+ availableInventoryStatuses: Signal<InventoryStatusType[]>;
83
+ selectedInventoryStatuses: Signal<InventoryStatusType[]>;
84
+ availableProductOptions: Signal<ProductOption[]>;
85
+ selectedProductOptions: Signal<Record<string, string[]>>;
86
+ selectedCategory: Signal<string | null>;
87
+ setSelectedMinPrice: (minPrice: number) => void;
88
+ setSelectedMaxPrice: (maxPrice: number) => void;
89
+ toggleInventoryStatus: (status: InventoryStatusType) => void;
90
+ toggleProductOption: (optionId: string, choiceId: string) => void;
91
+ setSelectedCategory: (category: string | null) => void;
92
+ isFiltered: Signal<boolean>;
93
+ reset: () => void;
94
+ };
95
+ __config: {};
96
+ isServiceDefinition?: boolean;
97
+ } & {
98
+ selectedSortOption: Signal<string>;
99
+ sortOptions: SortType[];
100
+ setSelectedSortOption: (sort: string) => void;
101
+ currentLimit: Signal<number>;
102
+ currentCursor: Signal<string | null>;
103
+ hasNextPage: {
104
+ get: () => boolean;
105
+ };
106
+ hasPrevPage: {
107
+ get: () => boolean;
108
+ };
109
+ setLimit: (limit: number) => void;
110
+ nextPage: () => void;
111
+ prevPage: () => void;
112
+ navigateToFirstPage: () => void;
113
+ loadMore: (count: number) => void;
114
+ selectedMinPrice: Signal<number>;
115
+ selectedMaxPrice: Signal<number>;
116
+ availableMinPrice: Signal<number>;
117
+ availableMaxPrice: Signal<number>;
118
+ availableInventoryStatuses: Signal<InventoryStatusType[]>;
119
+ selectedInventoryStatuses: Signal<InventoryStatusType[]>;
120
+ availableProductOptions: Signal<ProductOption[]>;
121
+ selectedProductOptions: Signal<Record<string, string[]>>;
122
+ selectedCategory: Signal<string | null>;
123
+ setSelectedMinPrice: (minPrice: number) => void;
124
+ setSelectedMaxPrice: (maxPrice: number) => void;
125
+ toggleInventoryStatus: (status: InventoryStatusType) => void;
126
+ toggleProductOption: (optionId: string, choiceId: string) => void;
127
+ setSelectedCategory: (category: string | null) => void;
128
+ isFiltered: Signal<boolean>;
129
+ reset: () => void;
130
+ };
131
+ /**
132
+ * Convert URL sort format to SortType enum
133
+ */
134
+ export declare function convertUrlSortToSortType(urlSort: string): SortType | null;
135
+ /**
136
+ * Parse URL and build complete search options with all filters, sort, and pagination
137
+ */
138
+ export declare function parseUrlForProductsListSearch(url: string, defaultSearchOptions?: productsV3.V3ProductSearch): Promise<{
139
+ searchOptions: productsV3.V3ProductSearch;
140
+ initialSearchState: InitialSearchState;
141
+ }>;
142
+ /**
143
+ * Load search service configuration from URL
144
+ */
145
+ export declare function loadProductsListSearchServiceConfig(url: string): Promise<ProductsListSearchServiceConfig>;
146
+ /**
147
+ * Implementation of the Products List Search service
148
+ */
149
+ export declare const ProductsListSearchService: import("@wix/services-definitions").ServiceFactory<string & {
150
+ __api: {
151
+ selectedSortOption: Signal<string>;
152
+ sortOptions: SortType[];
153
+ setSelectedSortOption: (sort: string) => void;
154
+ currentLimit: Signal<number>;
155
+ currentCursor: Signal<string | null>;
156
+ hasNextPage: {
157
+ get: () => boolean;
158
+ };
159
+ hasPrevPage: {
160
+ get: () => boolean;
161
+ };
162
+ setLimit: (limit: number) => void;
163
+ nextPage: () => void;
164
+ prevPage: () => void;
165
+ navigateToFirstPage: () => void;
166
+ loadMore: (count: number) => void;
167
+ selectedMinPrice: Signal<number>;
168
+ selectedMaxPrice: Signal<number>;
169
+ availableMinPrice: Signal<number>;
170
+ availableMaxPrice: Signal<number>;
171
+ availableInventoryStatuses: Signal<InventoryStatusType[]>;
172
+ selectedInventoryStatuses: Signal<InventoryStatusType[]>;
173
+ availableProductOptions: Signal<ProductOption[]>;
174
+ selectedProductOptions: Signal<Record<string, string[]>>;
175
+ selectedCategory: Signal<string | null>;
176
+ setSelectedMinPrice: (minPrice: number) => void;
177
+ setSelectedMaxPrice: (maxPrice: number) => void;
178
+ toggleInventoryStatus: (status: InventoryStatusType) => void;
179
+ toggleProductOption: (optionId: string, choiceId: string) => void;
180
+ setSelectedCategory: (category: string | null) => void;
181
+ isFiltered: Signal<boolean>;
182
+ reset: () => void;
183
+ };
184
+ __config: {};
185
+ isServiceDefinition?: boolean;
186
+ } & {
187
+ selectedSortOption: Signal<string>;
188
+ sortOptions: SortType[];
189
+ setSelectedSortOption: (sort: string) => void;
190
+ currentLimit: Signal<number>;
191
+ currentCursor: Signal<string | null>;
192
+ hasNextPage: {
193
+ get: () => boolean;
194
+ };
195
+ hasPrevPage: {
196
+ get: () => boolean;
197
+ };
198
+ setLimit: (limit: number) => void;
199
+ nextPage: () => void;
200
+ prevPage: () => void;
201
+ navigateToFirstPage: () => void;
202
+ loadMore: (count: number) => void;
203
+ selectedMinPrice: Signal<number>;
204
+ selectedMaxPrice: Signal<number>;
205
+ availableMinPrice: Signal<number>;
206
+ availableMaxPrice: Signal<number>;
207
+ availableInventoryStatuses: Signal<InventoryStatusType[]>;
208
+ selectedInventoryStatuses: Signal<InventoryStatusType[]>;
209
+ availableProductOptions: Signal<ProductOption[]>;
210
+ selectedProductOptions: Signal<Record<string, string[]>>;
211
+ selectedCategory: Signal<string | null>;
212
+ setSelectedMinPrice: (minPrice: number) => void;
213
+ setSelectedMaxPrice: (maxPrice: number) => void;
214
+ toggleInventoryStatus: (status: InventoryStatusType) => void;
215
+ toggleProductOption: (optionId: string, choiceId: string) => void;
216
+ setSelectedCategory: (category: string | null) => void;
217
+ isFiltered: Signal<boolean>;
218
+ reset: () => void;
219
+ }, ProductsListSearchServiceConfig>;