@liquidcommerce/elements-sdk 2.6.0-beta.1 → 2.6.0-beta.100

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 (274) hide show
  1. package/README.md +99 -2517
  2. package/dist/index.checkout.esm.js +17794 -0
  3. package/dist/index.esm.js +26010 -20601
  4. package/dist/ssr-stub.checkout.esm.js +18 -0
  5. package/dist/ssr-stub.esm.js +270 -0
  6. package/dist/types/auto-initialize/checkout.d.ts +2 -0
  7. package/dist/types/auto-initialize/shared-utils.d.ts +50 -0
  8. package/dist/types/{elements-base-client.d.ts → clients/base.d.ts} +15 -2
  9. package/dist/types/clients/builder.d.ts +3 -0
  10. package/dist/types/clients/checkout.d.ts +6 -0
  11. package/dist/types/{elements-client-helper.d.ts → clients/helpers.d.ts} +2 -1
  12. package/dist/types/clients/main.d.ts +3 -0
  13. package/dist/types/constants/core.constant.d.ts +13 -6
  14. package/dist/types/core/a11y/announcer.service.d.ts +16 -0
  15. package/dist/types/core/a11y/focus-manager.service.d.ts +21 -0
  16. package/dist/types/core/a11y/focusable.d.ts +5 -0
  17. package/dist/types/core/a11y/glyph-button.d.ts +8 -0
  18. package/dist/types/core/a11y/index.d.ts +5 -0
  19. package/dist/types/core/a11y/single-select.d.ts +16 -0
  20. package/dist/types/core/api/api-client.service.d.ts +23 -22
  21. package/dist/types/core/api/api-result.d.ts +19 -0
  22. package/dist/types/core/api/auth-client.service.d.ts +39 -26
  23. package/dist/types/core/api/http-client.service.d.ts +0 -8
  24. package/dist/types/core/base-component.service.d.ts +4 -1
  25. package/dist/types/core/client/actions/base-action.service.d.ts +22 -0
  26. package/dist/types/core/client/actions/client-address-action.service.d.ts +18 -0
  27. package/dist/types/core/client/actions/client-cart-action.service.d.ts +38 -0
  28. package/dist/types/core/client/actions/client-checkout-action.service.d.ts +69 -0
  29. package/dist/types/core/client/actions/client-product-action.service.d.ts +15 -0
  30. package/dist/types/core/client/client-action.service.d.ts +6 -67
  31. package/dist/types/core/client/client-config.service.d.ts +9 -5
  32. package/dist/types/core/command/base-command.service.d.ts +2 -2
  33. package/dist/types/core/command/common-command.service.d.ts +2 -1
  34. package/dist/types/core/google-tag-manager.service.d.ts +15 -11
  35. package/dist/types/core/logger/logger.service.d.ts +1 -1
  36. package/dist/types/core/pubsub/interfaces/address.interface.d.ts +6 -12
  37. package/dist/types/core/pubsub/interfaces/cart.interface.d.ts +27 -64
  38. package/dist/types/core/pubsub/interfaces/checkout.interface.d.ts +45 -50
  39. package/dist/types/core/pubsub/interfaces/core.interface.d.ts +11 -6
  40. package/dist/types/core/pubsub/interfaces/product.interface.d.ts +16 -81
  41. package/dist/types/core/pubsub/pubsub.service.d.ts +1 -2
  42. package/dist/types/core/singleton-manager.service.d.ts +12 -8
  43. package/dist/types/core/store/interfaces/address.interface.d.ts +3 -12
  44. package/dist/types/core/store/interfaces/cart.interface.d.ts +16 -55
  45. package/dist/types/core/store/interfaces/checkout.interface.d.ts +18 -108
  46. package/dist/types/core/store/interfaces/core.interface.d.ts +16 -5
  47. package/dist/types/core/store/interfaces/metadata.interface.d.ts +11 -0
  48. package/dist/types/core/store/interfaces/product-list.interface.d.ts +30 -0
  49. package/dist/types/core/store/interfaces/product.interface.d.ts +13 -66
  50. package/dist/types/core/store/store.constant.d.ts +6 -1
  51. package/dist/types/core/store/store.service.d.ts +1 -0
  52. package/dist/types/core/telemetry/telemetry.interface.d.ts +0 -1
  53. package/dist/types/core/telemetry/telemetry.service.d.ts +1 -0
  54. package/dist/types/enums/core.enum.d.ts +40 -1
  55. package/dist/types/enums/index.d.ts +0 -1
  56. package/dist/types/index.checkout.d.ts +8 -0
  57. package/dist/types/index.checkout.umd.d.ts +4 -0
  58. package/dist/types/index.d.ts +8 -3
  59. package/dist/types/interfaces/api/address.interface.d.ts +28 -0
  60. package/dist/types/interfaces/api/cart.interface.d.ts +96 -0
  61. package/dist/types/interfaces/api/checkout.interface.d.ts +239 -0
  62. package/dist/types/interfaces/{cloud → api}/index.d.ts +1 -3
  63. package/dist/types/interfaces/api/product-list.interface.d.ts +39 -0
  64. package/dist/types/interfaces/api/product.interface.d.ts +112 -0
  65. package/dist/types/interfaces/client.interface.d.ts +72 -0
  66. package/dist/types/interfaces/component.interface.d.ts +7 -0
  67. package/dist/types/interfaces/config.interface.d.ts +40 -0
  68. package/dist/types/interfaces/configs/address.interface.d.ts +1 -1
  69. package/dist/types/interfaces/configs/cart.interface.d.ts +1 -1
  70. package/dist/types/interfaces/configs/checkout.interface.d.ts +2 -1
  71. package/dist/types/interfaces/configs/configurations.interface.d.ts +5 -5
  72. package/dist/types/interfaces/configs/global.interface.d.ts +10 -3
  73. package/dist/types/interfaces/configs/index.d.ts +1 -0
  74. package/dist/types/interfaces/configs/product-list.interface.d.ts +49 -0
  75. package/dist/types/interfaces/configs/product.interface.d.ts +4 -1
  76. package/dist/types/interfaces/injection.interface.d.ts +49 -0
  77. package/dist/types/modules/address/address-display.component.d.ts +3 -1
  78. package/dist/types/modules/address/address-input.component.d.ts +10 -1
  79. package/dist/types/modules/address/address.command.d.ts +4 -4
  80. package/dist/types/modules/address/address.interface.d.ts +0 -7
  81. package/dist/types/modules/address/styles/register-styles.d.ts +1 -0
  82. package/dist/types/modules/cart/cart.commands.d.ts +4 -5
  83. package/dist/types/modules/cart/components/cart-body.component.d.ts +3 -1
  84. package/dist/types/modules/cart/components/cart-footer.component.d.ts +0 -1
  85. package/dist/types/modules/cart/components/cart-fulfillment.component.d.ts +0 -2
  86. package/dist/types/modules/cart/components/cart-item-quantity-price.component.d.ts +5 -0
  87. package/dist/types/modules/cart/components/cart-item.component.d.ts +6 -0
  88. package/dist/types/modules/cart/styles/register-styles.d.ts +1 -0
  89. package/dist/types/modules/checkout/checkout.commands.d.ts +27 -10
  90. package/dist/types/modules/checkout/checkout.component.d.ts +2 -0
  91. package/dist/types/modules/checkout/components/checkout-billing.component.d.ts +2 -2
  92. package/dist/types/modules/checkout/components/checkout-completed.component.d.ts +5 -0
  93. package/dist/types/modules/checkout/components/checkout-header.component.d.ts +1 -0
  94. package/dist/types/modules/checkout/components/checkout-item-quantity.component.d.ts +4 -0
  95. package/dist/types/modules/checkout/components/checkout-items.component.d.ts +4 -3
  96. package/dist/types/modules/checkout/components/checkout-payment.component.d.ts +2 -1
  97. package/dist/types/modules/checkout/components/checkout-place-order-button.component.d.ts +2 -0
  98. package/dist/types/modules/checkout/components/checkout-presale-countdown.component.d.ts +14 -1
  99. package/dist/types/modules/checkout/components/checkout-presale-expired.component.d.ts +7 -1
  100. package/dist/types/modules/checkout/components/checkout-stripe-form.component.d.ts +2 -1
  101. package/dist/types/modules/checkout/components/checkout-tips.component.d.ts +2 -2
  102. package/dist/types/modules/checkout/components/promo-pc-gc.component.d.ts +0 -2
  103. package/dist/types/modules/checkout/constant.d.ts +3 -0
  104. package/dist/types/modules/checkout/styles/register-styles.d.ts +1 -0
  105. package/dist/types/modules/product/components/components.d.ts +7 -4
  106. package/dist/types/modules/product/components/product-add-to-cart-section.component.d.ts +7 -1
  107. package/dist/types/modules/product/components/product-description.component.d.ts +1 -0
  108. package/dist/types/modules/product/components/product-drawer.component.d.ts +6 -0
  109. package/dist/types/modules/product/components/product-image-carousel.component.d.ts +5 -0
  110. package/dist/types/modules/product/components/product-options.component.d.ts +2 -1
  111. package/dist/types/modules/product/components/product-retailers-carousel.component.d.ts +4 -0
  112. package/dist/types/modules/product/components/product-retailers-popup-list.component.d.ts +10 -2
  113. package/dist/types/modules/product/product.commands.d.ts +7 -7
  114. package/dist/types/modules/product/styles/register-styles.d.ts +1 -0
  115. package/dist/types/modules/product-list/components/card-components/index.d.ts +5 -0
  116. package/dist/types/modules/product-list/components/card-components/product-badge.d.ts +9 -0
  117. package/dist/types/modules/product-list/components/card-components/product-button.d.ts +11 -0
  118. package/dist/types/modules/product-list/components/card-components/product-price-and-personalization.d.ts +14 -0
  119. package/dist/types/modules/product-list/components/card-components/product-quantity-selector.d.ts +11 -0
  120. package/dist/types/modules/product-list/components/card-components/product-sizes-list.d.ts +14 -0
  121. package/dist/types/modules/product-list/components/filter-components/index.d.ts +7 -0
  122. package/dist/types/modules/product-list/components/filter-components/product-list-apply-filter-button.d.ts +1 -0
  123. package/dist/types/modules/product-list/components/filter-components/product-list-checkbox-filter.d.ts +7 -0
  124. package/dist/types/modules/product-list/components/filter-components/product-list-chip.d.ts +5 -0
  125. package/dist/types/modules/product-list/components/filter-components/product-list-filters-chips.d.ts +13 -0
  126. package/dist/types/modules/product-list/components/filter-components/product-list-fulfillment-filter.d.ts +15 -0
  127. package/dist/types/modules/product-list/components/filter-components/product-list-price-filter.d.ts +22 -0
  128. package/dist/types/modules/product-list/components/filter-components/product-list-toggle-filters.d.ts +7 -0
  129. package/dist/types/modules/product-list/components/index.d.ts +6 -0
  130. package/dist/types/modules/product-list/components/product-list-card-loading.component.d.ts +3 -1
  131. package/dist/types/modules/product-list/components/product-list-card.component.d.ts +36 -30
  132. package/dist/types/modules/product-list/components/product-list-engraving.component.d.ts +12 -0
  133. package/dist/types/modules/product-list/components/product-list-filters.component.d.ts +56 -14
  134. package/dist/types/modules/product-list/components/product-list-product-engraving-lines.component.d.ts +22 -0
  135. package/dist/types/modules/product-list/components/product-list-product-pre-cart.component.d.ts +53 -0
  136. package/dist/types/modules/product-list/components/product-list-search.component.d.ts +25 -0
  137. package/dist/types/modules/product-list/product-list-filter.utils.d.ts +8 -0
  138. package/dist/types/modules/product-list/product-list-query-params.utils.d.ts +3 -0
  139. package/dist/types/modules/product-list/product-list.commands.d.ts +23 -7
  140. package/dist/types/modules/product-list/product-list.component.d.ts +17 -39
  141. package/dist/types/modules/product-list/product-list.constants.d.ts +38 -0
  142. package/dist/types/modules/product-list/product-list.interface.d.ts +65 -0
  143. package/dist/types/modules/product-list/styles/product-list-card.style.d.ts +1 -0
  144. package/dist/types/modules/product-list/styles/product-list-filters.style.d.ts +1 -0
  145. package/dist/types/modules/product-list/styles/register-styles.d.ts +1 -0
  146. package/dist/types/modules/theme-provider/constants/component-groupings.d.ts +1 -0
  147. package/dist/types/modules/theme-provider/constants/css-variable-mappings.d.ts +1 -1
  148. package/dist/types/modules/theme-provider/services/style-registry.service.d.ts +16 -0
  149. package/dist/types/modules/theme-provider/services/stylesheet-generator.service.d.ts +0 -1
  150. package/dist/types/modules/theme-provider/styles/register-styles.d.ts +1 -0
  151. package/dist/types/modules/theme-provider/theme-provider.service.d.ts +2 -2
  152. package/dist/types/modules/ui-components/alert/alert.component.d.ts +1 -1
  153. package/dist/types/modules/ui-components/buttons/buttons-open-cart.component.d.ts +5 -0
  154. package/dist/types/modules/ui-components/drawer/drawer.component.d.ts +15 -0
  155. package/dist/types/modules/ui-components/engraving/engraving-form.component.d.ts +8 -1
  156. package/dist/types/modules/ui-components/engraving/engraving-view.component.d.ts +7 -1
  157. package/dist/types/modules/ui-components/input/index.d.ts +0 -1
  158. package/dist/types/modules/ui-components/input/input.component.d.ts +14 -1
  159. package/dist/types/modules/ui-components/lce-element/lce-element.component.d.ts +2 -1
  160. package/dist/types/modules/ui-components/promo-code-ticker/promo-code-ticker.component.d.ts +1 -1
  161. package/dist/types/modules/ui-components/purchase-min-alert/index.d.ts +0 -1
  162. package/dist/types/modules/ui-components/ui.commands.d.ts +7 -1
  163. package/dist/types/ssr/stub.checkout.d.ts +6 -0
  164. package/dist/types/ssr/stub.d.ts +10 -0
  165. package/dist/types/static/icon/arrow-right.icon.d.ts +1 -1
  166. package/dist/types/static/icon/bag.icon.d.ts +1 -1
  167. package/dist/types/static/icon/check.icon.d.ts +2 -0
  168. package/dist/types/static/icon/checkbox.icon.d.ts +1 -1
  169. package/dist/types/static/icon/chevron-down.icon.d.ts +1 -1
  170. package/dist/types/static/icon/chevron-left.icon.d.ts +1 -1
  171. package/dist/types/static/icon/chevron-up.icon.d.ts +2 -0
  172. package/dist/types/static/icon/close.icon.d.ts +1 -1
  173. package/dist/types/static/icon/error-info.icon.d.ts +1 -1
  174. package/dist/types/static/icon/filter.icon.d.ts +2 -0
  175. package/dist/types/static/icon/icon.a11y.d.ts +1 -0
  176. package/dist/types/static/icon/icon.types.d.ts +1 -0
  177. package/dist/types/static/icon/index.d.ts +3 -0
  178. package/dist/types/static/icon/info.icon.d.ts +1 -1
  179. package/dist/types/static/icon/loading-spinner.icon.d.ts +1 -1
  180. package/dist/types/static/icon/search.icon.d.ts +1 -1
  181. package/dist/types/static/icon/success.icon.d.ts +1 -1
  182. package/dist/types/static/icon/trash.icon.d.ts +1 -1
  183. package/dist/types/static/icon/warning.icon.d.ts +1 -1
  184. package/dist/types/utils/dom-compat.d.ts +2 -0
  185. package/dist/types/utils/format.d.ts +4 -14
  186. package/dist/types/utils/image-bg-removal.d.ts +3 -0
  187. package/dist/types/utils/product-selection.d.ts +16 -0
  188. package/dist/types/utils/product.d.ts +15 -0
  189. package/docs/v1/README.md +213 -0
  190. package/docs/v1/api/actions/address-actions.md +286 -0
  191. package/docs/v1/api/actions/cart-actions.md +364 -0
  192. package/docs/v1/api/actions/checkout-actions.md +527 -0
  193. package/docs/v1/api/actions/product-actions.md +204 -0
  194. package/docs/v1/api/client.md +596 -0
  195. package/docs/v1/api/configuration.md +555 -0
  196. package/docs/v1/api/injection-methods.md +292 -0
  197. package/docs/v1/api/typescript-types.md +423 -0
  198. package/docs/v1/api/ui-helpers.md +200 -0
  199. package/docs/v1/examples/advanced-patterns.md +199 -0
  200. package/docs/v1/examples/checkout-flow.md +90 -0
  201. package/docs/v1/examples/custom-theming.md +63 -0
  202. package/docs/v1/examples/multi-product-page.md +90 -0
  203. package/docs/v1/examples/simple-product-page.md +89 -0
  204. package/docs/v1/getting-started/concepts.md +521 -0
  205. package/docs/v1/getting-started/installation.md +349 -0
  206. package/docs/v1/getting-started/quick-start.md +410 -0
  207. package/docs/v1/guides/accessibility.md +173 -0
  208. package/docs/v1/guides/address-component.md +435 -0
  209. package/docs/v1/guides/best-practices.md +365 -0
  210. package/docs/v1/guides/cart-component.md +757 -0
  211. package/docs/v1/guides/checkout-component.md +670 -0
  212. package/docs/v1/guides/events.md +939 -0
  213. package/docs/v1/guides/product-component.md +735 -0
  214. package/docs/v1/guides/product-list-component.md +630 -0
  215. package/docs/v1/guides/theming.md +228 -0
  216. package/docs/v1/integration/angular.md +39 -0
  217. package/docs/v1/integration/laravel.md +41 -0
  218. package/docs/v1/integration/nextjs.md +69 -0
  219. package/docs/v1/integration/proxy-setup.md +106 -0
  220. package/docs/v1/integration/react.md +64 -0
  221. package/docs/v1/integration/vanilla-js.md +84 -0
  222. package/docs/v1/integration/vue.md +58 -0
  223. package/docs/v1/reference/analytics.md +108 -0
  224. package/docs/v1/reference/browser-support.md +47 -0
  225. package/docs/v1/reference/error-handling.md +83 -0
  226. package/docs/v1/reference/performance.md +52 -0
  227. package/docs/v1/reference/telemetry.md +85 -0
  228. package/docs/v1/reference/troubleshooting.md +135 -0
  229. package/package.json +69 -45
  230. package/dist/types/elements-builder-client.d.ts +0 -2
  231. package/dist/types/elements-client.d.ts +0 -2
  232. package/dist/types/enums/cloud.enum.d.ts +0 -77
  233. package/dist/types/interfaces/cloud/address.interface.d.ts +0 -36
  234. package/dist/types/interfaces/cloud/cart.interface.d.ts +0 -132
  235. package/dist/types/interfaces/cloud/catalog.interface.d.ts +0 -43
  236. package/dist/types/interfaces/cloud/checkout.interface.d.ts +0 -214
  237. package/dist/types/interfaces/cloud/core.interface.d.ts +0 -22
  238. package/dist/types/interfaces/cloud/product.interface.d.ts +0 -158
  239. package/dist/types/interfaces/cloud/retailer.interface.d.ts +0 -67
  240. package/dist/types/interfaces/cloud/user.interface.d.ts +0 -100
  241. package/dist/types/interfaces/core.interface.d.ts +0 -111
  242. package/dist/types/modules/cart/cart.commands.helper.d.ts +0 -9
  243. package/dist/types/modules/checkout/components/checkout.type.d.ts +0 -4
  244. package/dist/types/modules/product/utils/helpers.d.ts +0 -3
  245. package/dist/types/modules/product/utils/retailer-hours.d.ts +0 -9
  246. package/dist/types/modules/theme-provider/styles/address/index.d.ts +0 -1
  247. package/dist/types/modules/theme-provider/styles/cart/index.d.ts +0 -1
  248. package/dist/types/modules/theme-provider/styles/checkout/index.d.ts +0 -1
  249. package/dist/types/modules/theme-provider/styles/product/index.d.ts +0 -3
  250. package/dist/types/modules/theme-provider/styles/product-list/index.d.ts +0 -1
  251. package/dist/types/modules/theme-provider/styles/ui/index.d.ts +0 -3
  252. package/dist/types/modules/ui-components/input/birthdate-input.component.d.ts +0 -53
  253. package/dist/types/modules/ui-components/purchase-min-alert/helpers.d.ts +0 -7
  254. package/dist/types/utils/helper.d.ts +0 -27
  255. package/docs/ACTIONS.md +0 -1300
  256. package/docs/BROWSER_SUPPORT.md +0 -279
  257. package/docs/CONFIGURATION.md +0 -853
  258. package/docs/DOCUMENTATION_INDEX.md +0 -311
  259. package/docs/EVENTS.md +0 -798
  260. package/docs/PROXY.md +0 -228
  261. package/docs/THEMING.md +0 -589
  262. package/docs/TROUBLESHOOTING.md +0 -793
  263. package/umd/elements.js +0 -1
  264. /package/dist/types/{auto-initialize.d.ts → auto-initialize/main.d.ts} +0 -0
  265. /package/dist/types/modules/{theme-provider/styles/address → address/styles}/address.style.d.ts +0 -0
  266. /package/dist/types/modules/{theme-provider/styles/cart → cart/styles}/cart.style.d.ts +0 -0
  267. /package/dist/types/modules/{theme-provider/styles/checkout → checkout/styles}/checkout.style.d.ts +0 -0
  268. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/image-carousel.style.d.ts +0 -0
  269. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/product.style.d.ts +0 -0
  270. /package/dist/types/modules/{theme-provider/styles/product → product/styles}/retailers.style.d.ts +0 -0
  271. /package/dist/types/modules/{theme-provider/styles/product-list → product-list/styles}/product-list.style.d.ts +0 -0
  272. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/drawer.style.d.ts +0 -0
  273. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/loading.style.d.ts +0 -0
  274. /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/promo-code-ticker.style.d.ts +0 -0
@@ -8,6 +8,7 @@ export interface IImageCarouselParams {
8
8
  export declare class ProductImageCarouselComponent extends BaseComponent<IImageCarouselParams, IProductComponent> {
9
9
  get hostClasses(): string[];
10
10
  private mainImageElement;
11
+ private mainImageMediaElement;
11
12
  private galleryViewport;
12
13
  private galleryContainer;
13
14
  private thumbnails;
@@ -17,6 +18,8 @@ export declare class ProductImageCarouselComponent extends BaseComponent<IImageC
17
18
  private startX;
18
19
  private currentTranslateX;
19
20
  private translateX;
21
+ private boundDragMove;
22
+ private boundDragEnd;
20
23
  constructor();
21
24
  afterRender(): void;
22
25
  onStoreWatch(changes: IOnStoreChanged[]): void;
@@ -26,11 +29,13 @@ export declare class ProductImageCarouselComponent extends BaseComponent<IImageC
26
29
  private scrollToIndex;
27
30
  private setupMainImageSwipe;
28
31
  private setupGalleryDrag;
32
+ protected disconnected(): void;
29
33
  private handleDragStart;
30
34
  private handleDragMove;
31
35
  private handleDragEnd;
32
36
  private updateTransform;
33
37
  private nextImage;
34
38
  private previousImage;
39
+ private mainImageLabel;
35
40
  protected template(): HTMLElement[];
36
41
  }
@@ -8,5 +8,6 @@ export declare class ProductOptionsComponent extends BaseComponent<IProductOptio
8
8
  constructor();
9
9
  private getProductId;
10
10
  onStoreWatch(changes: IOnStoreChanged[]): void;
11
- protected template(): HTMLElement;
11
+ protected template(): HTMLElement | HTMLElement[];
12
+ private buildDescriptionElement;
12
13
  }
@@ -8,11 +8,14 @@ export declare class ProductRetailersCarouselComponent extends BaseComponent<IPr
8
8
  private listViewport;
9
9
  private listContainer;
10
10
  private retailerCards;
11
+ private pendingTabFocus;
11
12
  private isDragging;
12
13
  private hasMoved;
13
14
  private startX;
14
15
  private currentTranslateX;
15
16
  private translateX;
17
+ private boundDragMove;
18
+ private boundDragEnd;
16
19
  constructor();
17
20
  afterRender(): void;
18
21
  private cacheElements;
@@ -21,6 +24,7 @@ export declare class ProductRetailersCarouselComponent extends BaseComponent<IPr
21
24
  private updateSelectedCard;
22
25
  private scrollToIndex;
23
26
  private setupDrag;
27
+ protected disconnected(): void;
24
28
  private handleDragStart;
25
29
  private handleDragMove;
26
30
  private handleDragEnd;
@@ -1,13 +1,21 @@
1
1
  import { BaseComponent } from '@/core/base-component.service';
2
+ import { type NavigationSourceType } from '@/enums';
2
3
  import type { IProductComponent } from '@/interfaces/configs';
3
4
  export interface IProductRetailersPopupListComponentParams {
4
5
  productId: string;
6
+ navigationSource: NavigationSourceType;
7
+ slug?: string;
5
8
  }
6
9
  export declare class ProductRetailersPopupListComponent extends BaseComponent<IProductRetailersPopupListComponentParams, IProductComponent> {
7
10
  get hostClasses(): string[];
8
- constructor();
9
- private getProductId;
11
+ private get isProductContext();
12
+ private productPath;
13
+ beforeSetupStoreWatchers(): void;
14
+ private pendingTabFocus;
15
+ protected afterRender(): void;
10
16
  private onFulfillmentTabClick;
17
+ private announceSelectedFulfillment;
18
+ private announceFulfillmentTypeChange;
11
19
  private onRetailerCardClick;
12
20
  protected template(): HTMLElement[];
13
21
  }
@@ -2,27 +2,27 @@ import { BaseCommand } from '@/core/command/base-command.service';
2
2
  import type { IBaseProductEventData } from '@/core/pubsub/interfaces/product.interface';
3
3
  import type { IProductDrawerContentConfig } from '@/core/store/interfaces/product.interface';
4
4
  import { type FulfillmentType } from '@/enums';
5
- import type { IProductData } from '@/interfaces/cloud';
5
+ import type { IProductAvailabilityResponse } from '@/interfaces/api/product.interface';
6
6
  import { type AddItemParams } from '@/modules/cart/cart.commands';
7
7
  export declare class ProductCommands extends BaseCommand {
8
8
  private readonly uiCommands;
9
9
  private readonly cartCommands;
10
+ private readonly checkoutCommands;
10
11
  constructor();
11
12
  static getInstance(): ProductCommands;
12
13
  createProductInstance(productId: string, firstTime?: boolean): Promise<void>;
13
14
  loadMultipleProducts(productIds: string[]): Promise<void>;
14
- loadProduct(productId: string, customProductData?: IProductData | null): Promise<void>;
15
+ loadProduct(productId: string, customProductData?: IProductAvailabilityResponse | null): Promise<void>;
16
+ cacheProductFromApiData(identifier: string, apiData: IProductAvailabilityResponse): void;
15
17
  selectSize(productId: string, sizeId: string): Promise<void>;
16
18
  selectFulfillment(productId: string, selectedFulfillmentId: string): Promise<void>;
17
19
  updateQuantity(productId: string, delta: number): Promise<void>;
18
- changeFulfillmentType(productId: string, selectedFulfillmentType: FulfillmentType): Promise<void>;
20
+ changeFulfillmentType(productId: string, newFulfillmentType: FulfillmentType): Promise<void>;
19
21
  removeProduct(productId: string): Promise<void>;
20
- openProductDrawer(productId: string, contentType: IProductDrawerContentConfig['type'], data?: Record<string, any>): Promise<void>;
22
+ openProductDrawer(productId: string, contentType: IProductDrawerContentConfig['type'], data?: Record<string, any>, trigger?: HTMLElement | null): Promise<void>;
21
23
  closeProductDrawer(productId: string): Promise<void>;
22
24
  rerenderAllProducts(): Promise<void>;
23
- addToCart(productId: string, params: AddItemParams): Promise<void>;
25
+ addToCart(productId: string, params: AddItemParams, trigger?: HTMLElement | null): Promise<void>;
24
26
  addPresaleToCart(productId: string, params: AddItemParams): Promise<void>;
25
27
  productDataForEventFromStore(identifier: string): IBaseProductEventData;
26
- private findFirstAvailableSize;
27
- private loadProductStoreUpdate;
28
28
  }
@@ -0,0 +1,5 @@
1
+ export * from './product-badge';
2
+ export * from './product-button';
3
+ export * from './product-price-and-personalization';
4
+ export * from './product-quantity-selector';
5
+ export * from './product-sizes-list';
@@ -0,0 +1,9 @@
1
+ export interface IBadgesParams {
2
+ badges: Array<{
3
+ text: string;
4
+ className?: string;
5
+ }>;
6
+ separatorText?: string;
7
+ }
8
+ export declare const createProductBadge: (name: string, className?: string) => HTMLElement;
9
+ export declare const createProductBadges: ({ badges, separatorText }: IBadgesParams) => HTMLElement;
@@ -0,0 +1,11 @@
1
+ export interface IAddToCartButtonState {
2
+ isPresale: boolean;
3
+ hasAvailability: boolean;
4
+ hasAddress: boolean;
5
+ disabled?: boolean;
6
+ }
7
+ export interface IAddToCartButtonParams extends IAddToCartButtonState {
8
+ onClick?: (e: MouseEvent) => void | Promise<void>;
9
+ }
10
+ export declare const applyAddToCartButtonState: (button: HTMLButtonElement, state: IAddToCartButtonState) => void;
11
+ export declare const createAddToCartButton: ({ isPresale, hasAvailability, disabled, hasAddress, onClick, }: IAddToCartButtonParams) => HTMLButtonElement;
@@ -0,0 +1,14 @@
1
+ export interface IPricePersonalizationSectionParams {
2
+ price: number;
3
+ showPrice: boolean;
4
+ hasPersonalization: boolean;
5
+ showPersonalization: boolean;
6
+ hasAddress: boolean;
7
+ wrapperClassName?: string;
8
+ priceClassName?: string;
9
+ personalizeClassName?: string;
10
+ personalizeText?: string;
11
+ productName?: string;
12
+ onPersonalizeClick?: () => void;
13
+ }
14
+ export declare const createPricePersonalizationSection: ({ price, showPrice, hasPersonalization, showPersonalization, hasAddress, wrapperClassName, priceClassName, personalizeClassName, personalizeText, productName, onPersonalizeClick, }: IPricePersonalizationSectionParams) => HTMLElement | null;
@@ -0,0 +1,11 @@
1
+ import type { PLCCardStyle } from '@/interfaces/configs/product-list.interface';
2
+ export interface IQuantitySelectorParams {
3
+ initialQuantity: number;
4
+ minQuantity: number;
5
+ maxQuantity: number;
6
+ cardStyle: PLCCardStyle;
7
+ disabled?: boolean;
8
+ productName?: string;
9
+ onChange: (quantity: number) => void;
10
+ }
11
+ export declare const createQuantitySelector: ({ initialQuantity, minQuantity, maxQuantity, cardStyle, disabled, productName, onChange, }: IQuantitySelectorParams) => HTMLElement;
@@ -0,0 +1,14 @@
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductSizeStore } from '@/core/store/interfaces/product.interface';
3
+ export interface IProductListSizeSelectorParams {
4
+ sizes: Record<string, IProductSizeStore>;
5
+ selectedSizeId: string | null;
6
+ onSelect?: (size: IProductSizeStore) => void;
7
+ }
8
+ export declare class ProductListSizeSelectorComponent extends BaseComponent<IProductListSizeSelectorParams> {
9
+ private onOutsideClick;
10
+ private readonly uid;
11
+ get hostClasses(): string[];
12
+ protected disconnected?(): void;
13
+ protected template(): HTMLElement[];
14
+ }
@@ -0,0 +1,7 @@
1
+ export * from './product-list-apply-filter-button';
2
+ export * from './product-list-checkbox-filter';
3
+ export * from './product-list-chip';
4
+ export * from './product-list-filters-chips';
5
+ export * from './product-list-fulfillment-filter';
6
+ export * from './product-list-price-filter';
7
+ export * from './product-list-toggle-filters';
@@ -0,0 +1 @@
1
+ export declare function createApplyFiltersButton(onApplyFilters: VoidFunction): HTMLElement;
@@ -0,0 +1,7 @@
1
+ import type { ICheckboxLabelStates, ICreateCheckboxFilterHeaderParams, ICreateCheckboxFilterSearchContainerParams, ICreateCheckboxItemParams, IHandleCheckboxFilterSearchParams, IRenderCheckboxItemsParams } from '../../product-list.interface';
2
+ export declare function createCheckboxItem(params: ICreateCheckboxItemParams): HTMLElement;
3
+ export declare function handleCheckboxFilterSearch(params: IHandleCheckboxFilterSearchParams): void;
4
+ export declare function createCheckboxFilterHeader(params: ICreateCheckboxFilterHeaderParams): HTMLElement;
5
+ export declare function createCheckboxFilterSearchContainer(params: ICreateCheckboxFilterSearchContainerParams): HTMLElement;
6
+ export declare function renderCheckboxItems(params: IRenderCheckboxItemsParams): void;
7
+ export declare function updateFilterExpandState(state: ICheckboxLabelStates): void;
@@ -0,0 +1,5 @@
1
+ export interface IChipComponentParams {
2
+ text: string;
3
+ onRemove?: VoidFunction;
4
+ }
5
+ export declare function createChip(params: IChipComponentParams): HTMLElement;
@@ -0,0 +1,13 @@
1
+ import type { IExtendedFilterSchema, IProductListFilters } from '@/modules/product-list/product-list.interface';
2
+ export interface ICreateChipsContainerParams {
3
+ currentFilters?: IProductListFilters;
4
+ sanitizedFilters?: IExtendedFilterSchema[];
5
+ onRemoveFilter: (key: string, value: string) => void;
6
+ onClearAllFilters: VoidFunction;
7
+ }
8
+ export interface IActiveFilter {
9
+ key: string;
10
+ value: string;
11
+ label: string;
12
+ }
13
+ export declare function createChipsContainer(params: ICreateChipsContainerParams): HTMLElement;
@@ -0,0 +1,15 @@
1
+ import { FULFILLMENT_OPTIONS } from '@/modules/product-list/product-list.constants';
2
+ import type { IProductListFilters } from '@/modules/product-list/product-list.interface';
3
+ export interface ICreateFulfillmentFilterParams {
4
+ currentFilters?: IProductListFilters;
5
+ deliveryCollapsed: boolean;
6
+ isSameDayDeliveryDisabled: boolean;
7
+ onFulfillmentOptionsChange?: (value: typeof FULFILLMENT_OPTIONS.ALL | typeof FULFILLMENT_OPTIONS.SHIPPING | typeof FULFILLMENT_OPTIONS.ON_DEMAND) => void;
8
+ onToggleCollapse: () => void;
9
+ }
10
+ export declare function createFulfillmentFilter(params: ICreateFulfillmentFilterParams): {
11
+ elements: HTMLElement[];
12
+ chevronContainer: HTMLElement;
13
+ fulfillmentList: HTMLElement;
14
+ headerButton: HTMLButtonElement;
15
+ };
@@ -0,0 +1,22 @@
1
+ export interface ICreatePriceFilterParams {
2
+ priceConfig?: {
3
+ min?: string;
4
+ max?: string;
5
+ };
6
+ currentFilters?: {
7
+ price?: {
8
+ min?: string;
9
+ max?: string;
10
+ };
11
+ };
12
+ priceCollapsed: boolean;
13
+ onPriceChange?: (min: string, max: string) => void;
14
+ onToggleCollapse: VoidFunction;
15
+ DEFAULT_MIN: string;
16
+ DEFAULT_MAX: string;
17
+ }
18
+ export declare function createPriceFilter(params: ICreatePriceFilterParams): {
19
+ elements: HTMLElement[];
20
+ chevronContainer: HTMLElement;
21
+ sliderContainer: HTMLElement;
22
+ };
@@ -0,0 +1,7 @@
1
+ import type { IProductListFilters } from '@/modules/product-list/product-list.interface';
2
+ export interface ICreateEngravingFilterParams {
3
+ currentFilters?: IProductListFilters;
4
+ isPersonalizationDisabled: boolean;
5
+ onEngravingChange?: (enabled: boolean) => void;
6
+ }
7
+ export declare function createEngravingFilter(params: ICreateEngravingFilterParams): HTMLElement[];
@@ -1,3 +1,9 @@
1
+ export * from './filter-components';
2
+ export * from './filter-components/product-list-apply-filter-button';
1
3
  export * from './product-list-card.component';
2
4
  export * from './product-list-card-loading.component';
5
+ export * from './product-list-engraving.component';
3
6
  export * from './product-list-filters.component';
7
+ export * from './product-list-product-engraving-lines.component';
8
+ export * from './product-list-product-pre-cart.component';
9
+ export * from './product-list-search.component';
@@ -1,7 +1,9 @@
1
1
  import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
2
3
  import type { IProductListComponentParams } from '@/modules/product-list/product-list.component';
3
- export declare class ProductListCardLoadingComponent extends BaseComponent<IProductListComponentParams> {
4
+ export declare class ProductListCardLoadingComponent extends BaseComponent<IProductListComponentParams, IProductListComponent> {
4
5
  get hostClasses(): string[];
6
+ protected get hostAttributes(): Record<string, string>;
5
7
  private createSkeletonCard;
6
8
  protected template(): HTMLElement[];
7
9
  }
@@ -1,36 +1,42 @@
1
- import { BaseComponent } from '@/core/base-component.service';
2
- import type { IProduct, IRetailerFulfillments } from '@/interfaces/cloud';
3
- import type { ProductListCardVariantType } from '@/interfaces/core.interface';
1
+ import { BaseComponent, type IOnStoreChanged } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
+ import type { PLCProductUrl } from '@/interfaces/configs/product-list.interface';
4
4
  export interface IProductListCardParams {
5
- variant: ProductListCardVariantType;
6
- fillCard: boolean;
7
- product: IProduct;
8
- fulfillments: IRetailerFulfillments[];
9
- productUrl?: string;
5
+ slug: string;
6
+ productId: string;
7
+ productUrl?: PLCProductUrl;
10
8
  }
11
- export interface IProductAvailabilityData {
12
- hasAvailability: boolean;
13
- upc: string;
14
- fulfillmentId: string;
15
- partNumber: string;
16
- quantity: number;
17
- state: string;
18
- isPresale: boolean;
19
- isPresaleActive: boolean;
20
- }
21
- export interface IProductVariantParams {
22
- image: string;
23
- name: string;
24
- size: string | null;
25
- price: number;
26
- availability: IProductAvailabilityData;
27
- }
28
- export declare class ProductListCardComponent extends BaseComponent<IProductListCardParams> {
9
+ export declare class ProductListCardComponent extends BaseComponent<IProductListCardParams, IProductListComponent> {
10
+ private imageElement;
11
+ private priceElement;
12
+ private personalizeElement;
13
+ private fulfillmentTextElement;
14
+ private fulfillmentWrapperElement;
15
+ private addToCartButton;
16
+ private noAvailabilityElement;
17
+ private previousSelectedSizeId;
18
+ private previousSelectedFulfillmentId;
19
+ constructor();
20
+ private getListConfig;
29
21
  get hostClasses(): string[];
30
- private getAvailabilityData;
31
- private isPresaleActive;
32
- private handleAddToCart;
22
+ protected beforeConnected(): void;
23
+ protected disconnected?(): void;
24
+ onStoreWatch(changes: IOnStoreChanged[]): void;
25
+ private getSelectedSize;
26
+ private getDisplayPrice;
33
27
  protected template(): HTMLElement[];
28
+ private updatePriceDisplay;
29
+ private updateFulfillmentText;
30
+ private updateImage;
31
+ private updatePersonalizeVisibility;
32
+ private updateAddToCartButton;
33
+ private syncFulfillmentWrapperContent;
34
34
  private generateProductUrl;
35
- private createVariantStandard;
35
+ private createImageSection;
36
+ private createContentSection;
37
+ private createNoAvailabilityMessage;
38
+ private createFulfillmentSectionWrapper;
39
+ private createDeliveryOptionsButton;
40
+ private createFulfillmentTextSection;
41
+ private createAddToCartSection;
36
42
  }
@@ -0,0 +1,12 @@
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
+ interface IProductListEngravingParams extends IEngravingFormComponentParams {
5
+ slug: string;
6
+ }
7
+ export declare class ProductListEngravingComponent extends BaseComponent<IProductListEngravingParams, IProductListComponent> {
8
+ private getListConfig;
9
+ protected template(): HTMLElement[];
10
+ private createHeader;
11
+ }
12
+ export {};
@@ -1,21 +1,63 @@
1
1
  import { BaseComponent } from '@/core/base-component.service';
2
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
2
3
  export interface IProductListFiltersParams {
3
- enablePersonalized: boolean;
4
- enablePreOrder: boolean;
5
- enableDeliveryOptions: boolean;
6
- onPersonalizedChange?: (enabled: boolean) => void;
7
- onPreOrderChange?: (enabled: boolean) => void;
8
- onDeliveryOptionsChange?: (value: 'all' | 'shipping' | 'onDemand') => void;
9
- currentFilters?: {
10
- personalized: boolean;
11
- preOrder: boolean;
12
- deliveryOptions: 'all' | 'shipping' | 'onDemand';
13
- };
4
+ slug: string;
5
+ filters: ProductListFilterType[];
14
6
  }
15
7
  export declare class ProductListFiltersComponent extends BaseComponent<IProductListFiltersParams> {
8
+ private readonly FILTER_DEBOUNCE_DELAY_MS;
9
+ private isRenderedInDrawerMode;
10
+ private permanentFilters;
11
+ private availableDynamicFilters;
12
+ private checkboxFilterStateMap;
13
+ private isPriceFilterCollapsed;
14
+ private isFulfillmentFilterCollapsed;
15
+ private appliedFiltersChipsContainer;
16
+ private engravingFiltersContainer?;
17
+ private fulfillmentFilterContainer?;
18
+ private priceFiltersContainer?;
19
+ private dynamicFiltersContainer?;
20
+ private filterButtonContainer?;
21
+ private fulfillmentOptionsList?;
22
+ private priceFilterChevronIcon?;
23
+ private fulfillmentFilterChevronIcon?;
24
+ private priceSliderWrapper?;
25
+ private boundDrawerClosedHandler;
26
+ private priceFilterDebounceTimer;
27
+ constructor();
16
28
  get hostClasses(): string[];
17
- private isSameDayDeliveryDisabled;
18
- private isPersonalizationDisabled;
19
- private isPreOrderDisabled;
29
+ protected connected(): Promise<void>;
30
+ private setupDrawerCloseListener;
31
+ protected disconnected(): void;
32
+ private detectIfRenderedInDrawer;
33
+ onStoreWatch(): void;
34
+ private syncFiltersFromStore;
35
+ private createFilterSection;
36
+ private rebuildContainer;
37
+ private refreshUIStates;
38
+ private transformFilterValue;
39
+ private fetchFilters;
40
+ private applyFiltersAndCloseDrawer;
20
41
  protected template(): HTMLElement[];
42
+ private buildFilterButton;
43
+ private openFilterDrawer;
44
+ private buildFilterHeader;
45
+ private clearAllActiveFilters;
46
+ private removeSingleFilter;
47
+ private getFilteredAndSanitizedFilters;
48
+ private buildAppliedFiltersChipsContainer;
49
+ private handleFilterChange;
50
+ private isEngravingCurrentlyDisabled;
51
+ private buildEngravingFilterElements;
52
+ private isSameDayDeliveryCurrentlyDisabled;
53
+ private fulfillmentFilterHeaderButton;
54
+ private toggleFulfillmentFilterCollapse;
55
+ private buildFulfillmentFilterElements;
56
+ private togglePriceFilterCollapse;
57
+ private buildPriceFilterElements;
58
+ private buildDynamicFiltersElements;
59
+ private buildCheckboxFilterElements;
60
+ private toggleCheckboxFilterExpansion;
61
+ private renderCheckboxItemsForFilter;
62
+ private handleCheckboxSelectionChange;
21
63
  }
@@ -0,0 +1,22 @@
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
+ export interface IProductListProductEngravingLinesComponentParams {
4
+ slug: string;
5
+ identifier: string;
6
+ lines: string[];
7
+ maxLines: number;
8
+ maxCharsPerLine: number;
9
+ location?: string;
10
+ fee: number;
11
+ }
12
+ export declare class ProductListProductEngravingLinesComponent extends BaseComponent<IProductListProductEngravingLinesComponentParams, IProductListComponent> {
13
+ private engravingLines;
14
+ private addEngravingButton;
15
+ constructor();
16
+ protected disconnected?(): void;
17
+ template(): HTMLElement;
18
+ private engravingLinesSection;
19
+ private actionButtonsSection;
20
+ private calculateTotalPrice;
21
+ private addToCartButtonText;
22
+ }
@@ -0,0 +1,53 @@
1
+ import { BaseComponent, type IOnStoreChanged } from '@/core/base-component.service';
2
+ import type { IProductListComponent } from '@/interfaces/configs';
3
+ export interface IProductListProductPreCartComponentParams {
4
+ slug: string;
5
+ productId: string;
6
+ }
7
+ export declare class ProductListProductPreCartComponent extends BaseComponent<IProductListProductPreCartComponentParams, IProductListComponent> {
8
+ get hostClasses(): string[];
9
+ private showRetailersContent;
10
+ private showEngravingForm;
11
+ private isInitialRender;
12
+ private priceElement;
13
+ private imageElement;
14
+ private fulfillmentTextElement;
15
+ private addToCartButton;
16
+ private personalizeElement;
17
+ private previousSelectedSizeId;
18
+ private previousSelectedFulfillmentId;
19
+ constructor();
20
+ private getListConfig;
21
+ protected connected?(): void;
22
+ private pendingViewFocus;
23
+ private handleRetailersBack;
24
+ private handleEngravingBack;
25
+ private handleEngravingEdit;
26
+ protected afterRender(): void;
27
+ protected disconnected?(): void;
28
+ private getSelectedSize;
29
+ onStoreWatch(changes: IOnStoreChanged[]): void;
30
+ private updatePriceDisplay;
31
+ private updateFulfillmentText;
32
+ private updateImage;
33
+ private updatePersonalizeVisibility;
34
+ private updateAddToCartButton;
35
+ private getEngravingFee;
36
+ protected beforeConnected(): void;
37
+ protected template(): HTMLElement[];
38
+ private createAnimatedContentElement;
39
+ private buildLayout;
40
+ private createEngravingFormContent;
41
+ private renderPreCartContent;
42
+ private createDeliversToSectionWrapper;
43
+ private createShippingFromSectionWrapper;
44
+ private createDescriptionSection;
45
+ private createCartHeader;
46
+ private createImageSection;
47
+ private createPricePersonalizationSection;
48
+ private createDeliversToSection;
49
+ private createFulfillmentSectionWrapper;
50
+ private createFulfillmentTextSection;
51
+ private createAddToCartSection;
52
+ private handleAddToCart;
53
+ }
@@ -0,0 +1,25 @@
1
+ import { BaseComponent } from '@/core/base-component.service';
2
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
3
+ export interface IProductListSearchParams {
4
+ slug: string;
5
+ filters?: ProductListFilterType[];
6
+ }
7
+ export declare class ProductListSearchComponent extends BaseComponent<IProductListSearchParams> {
8
+ private searchInput?;
9
+ private clearButton?;
10
+ private debounceTimer;
11
+ private currentSearchTerm;
12
+ private readonly ALLOWED_CHARACTERS;
13
+ private readonly MAX_LENGTH;
14
+ private readonly DEFAULT_DEBOUNCE_MS;
15
+ get hostClasses(): string[];
16
+ disconnectedCallback(): void;
17
+ private fetchProducts;
18
+ protected template(): HTMLElement[];
19
+ private handleDebouncedSearch;
20
+ private handleClearSearch;
21
+ private cleanInput;
22
+ private normalizeForSearch;
23
+ private updateClearButtonVisibility;
24
+ private cleanupDebounceTimer;
25
+ }
@@ -0,0 +1,8 @@
1
+ import type { IFilterSchema, IProductSearchParams } from '@/interfaces/api/product-list.interface';
2
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
3
+ import type { IExtendedFilterSchema, IProductListFilters } from './product-list.interface';
4
+ export declare const FILTER_TYPE_MAP: Record<string, string>;
5
+ export declare function getSanitizedFilters(filters: IFilterSchema[], configuredFilters: ProductListFilterType[]): IExtendedFilterSchema[];
6
+ export declare function syncFiltersToAppliedFormat(filters: IProductListFilters): Record<string, string[]>;
7
+ export declare function buildSearchParams(slug: string, page: number, perPage: number, searchTerm: string, currentFilters: IProductListFilters, configuredFilters: ProductListFilterType[]): IProductSearchParams;
8
+ export declare function buildCurrentFiltersFromState(stateFilters: Record<string, string[]>): IProductListFilters;
@@ -0,0 +1,3 @@
1
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
2
+ import type { IProductListFilters } from './product-list.interface';
3
+ export declare function parseQueryParamsToFilters(configuredFilters: ProductListFilterType[], search?: string): IProductListFilters | null;
@@ -1,15 +1,31 @@
1
1
  import { BaseCommand } from '@/core/command/base-command.service';
2
- import type { ICatalog, ICatalogParams, IProduct } from '@/interfaces/cloud';
2
+ import { type FulfillmentType } from '@/enums';
3
+ import type { IFilterSchema, INavigationResponse, IProductSearchParams, IProductSearchResponse } from '@/interfaces/api/product-list.interface';
4
+ import type { ProductListFilterType } from '@/interfaces/injection.interface';
3
5
  import { type AddItemParams } from '@/modules/cart/cart.commands';
6
+ import type { IExtendedFilterSchema, ILoadInitialProductsParams, IPagination, IProductListFilters } from './product-list.interface';
4
7
  export declare class ProductListCommands extends BaseCommand {
5
8
  private readonly uiCommands;
6
9
  private readonly cartCommands;
7
10
  constructor();
8
11
  static getInstance(): ProductListCommands;
9
- getProductList(params: ICatalogParams): Promise<ICatalog>;
10
- addToCart(params: AddItemParams): Promise<void>;
11
- addPresaleToCart(params: AddItemParams): Promise<void>;
12
- trackViewItemList(products: IProduct[]): void;
13
- trackSelectItem(product: IProduct): void;
14
- private convertProductToBaseItem;
12
+ initializeListStore(slug: string, configuredFilters?: ProductListFilterType[]): void;
13
+ updateSearchTerm(slug: string, searchTerm: string): void;
14
+ setLoading(slug: string, isLoading: boolean): void;
15
+ rerenderProductLists(): void;
16
+ loadInitialProducts({ slug, page, perPage, searchTerm, currentFilters, configuredFilters, }: ILoadInitialProductsParams): Promise<void>;
17
+ loadMoreProducts(slug: string, perPage: number, searchTerm: string, currentFilters: IProductListFilters, configuredFilters: ProductListFilterType[]): Promise<void>;
18
+ getProductList(params: IProductSearchParams): Promise<IProductSearchResponse>;
19
+ syncFiltersFromComponent(slug: string, filters: IProductListFilters): void;
20
+ getSanitizedFilters(filters: IFilterSchema[], configuredFilters: ProductListFilterType[]): IExtendedFilterSchema[];
21
+ setGridConfig(slug: string, rows: number, columns: number): void;
22
+ getItemsPerPage(slug: string): number;
23
+ updatePagination(navigation: INavigationResponse | undefined): IPagination;
24
+ createInitialPagination(): IPagination;
25
+ addToCart(slug: string, productId: string, params: AddItemParams, trigger?: HTMLElement | null): Promise<void>;
26
+ selectSize(slug: string, productId: string, sizeId: string): Promise<void>;
27
+ changeFulfillmentType: (slug: string, productId: string, newFulfillmentType: FulfillmentType) => Promise<void>;
28
+ selectFulfillment: (slug: string, productId: string, selectedFulfillmentId: string) => Promise<void>;
29
+ updateQuantity: (slug: string, productId: string, quantity: number) => void;
30
+ saveEngravingLines(slug: string, productId: string, engravingLines: string[]): void;
15
31
  }