@wix/headless-stores 0.0.12 → 0.0.14

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 (131) hide show
  1. package/cjs/dist/astro/actions/custom-checkout.d.ts +4 -2
  2. package/cjs/dist/astro/actions/custom-checkout.js +4 -8
  3. package/cjs/dist/astro/actions/index.d.ts +1 -1
  4. package/cjs/dist/astro/actions/index.js +1 -17
  5. package/cjs/dist/enums/index.d.ts +2 -2
  6. package/cjs/dist/enums/index.js +2 -18
  7. package/cjs/dist/enums/social-platform-enums.js +4 -7
  8. package/cjs/dist/enums/sort-enums.js +3 -6
  9. package/cjs/dist/react/BuyNow.js +6 -11
  10. package/cjs/dist/react/Category.d.ts +2 -2
  11. package/cjs/dist/react/Category.js +6 -10
  12. package/cjs/dist/react/Collection.d.ts +1 -1
  13. package/cjs/dist/react/Collection.js +31 -39
  14. package/cjs/dist/react/FilteredCollection.d.ts +6 -20
  15. package/cjs/dist/react/FilteredCollection.js +29 -57
  16. package/cjs/dist/react/PayNow.js +4 -9
  17. package/cjs/dist/react/Product.d.ts +3 -3
  18. package/cjs/dist/react/Product.js +6 -11
  19. package/cjs/dist/react/ProductActions.js +12 -17
  20. package/cjs/dist/react/ProductModifiers.d.ts +3 -1
  21. package/cjs/dist/react/ProductModifiers.js +23 -29
  22. package/cjs/dist/react/ProductVariantSelector.d.ts +1 -1
  23. package/cjs/dist/react/ProductVariantSelector.js +18 -28
  24. package/cjs/dist/react/RelatedProducts.d.ts +2 -2
  25. package/cjs/dist/react/RelatedProducts.js +35 -33
  26. package/cjs/dist/react/SelectedVariant.js +8 -14
  27. package/cjs/dist/react/SocialSharing.d.ts +2 -3
  28. package/cjs/dist/react/SocialSharing.js +35 -33
  29. package/cjs/dist/react/Sort.d.ts +4 -3
  30. package/cjs/dist/react/Sort.js +6 -10
  31. package/cjs/dist/react/index.d.ts +13 -13
  32. package/cjs/dist/react/index.js +13 -52
  33. package/cjs/dist/server-actions/custom-checkout-action.js +8 -11
  34. package/cjs/dist/server-actions/index.d.ts +1 -1
  35. package/cjs/dist/server-actions/index.js +1 -17
  36. package/cjs/dist/services/buy-now-service.d.ts +44 -3
  37. package/cjs/dist/services/buy-now-service.js +20 -22
  38. package/cjs/dist/services/catalog-options-service.d.ts +3 -3
  39. package/cjs/dist/services/catalog-options-service.js +45 -46
  40. package/cjs/dist/services/catalog-price-range-service.d.ts +3 -3
  41. package/cjs/dist/services/catalog-price-range-service.js +21 -25
  42. package/cjs/dist/services/category-service.d.ts +7 -7
  43. package/cjs/dist/services/category-service.js +20 -22
  44. package/cjs/dist/services/collection-service.d.ts +8 -8
  45. package/cjs/dist/services/collection-service.js +102 -133
  46. package/cjs/dist/services/filter-service.d.ts +4 -4
  47. package/cjs/dist/services/filter-service.js +47 -61
  48. package/cjs/dist/services/index.d.ts +13 -2
  49. package/cjs/dist/services/index.js +13 -9
  50. package/cjs/dist/services/pay-now-service.d.ts +4 -3
  51. package/cjs/dist/services/pay-now-service.js +11 -16
  52. package/cjs/dist/services/product-modifiers-service.d.ts +6 -6
  53. package/cjs/dist/services/product-modifiers-service.js +17 -21
  54. package/cjs/dist/services/product-service.d.ts +8 -8
  55. package/cjs/dist/services/product-service.js +22 -26
  56. package/cjs/dist/services/related-products-service.d.ts +5 -5
  57. package/cjs/dist/services/related-products-service.js +9 -13
  58. package/cjs/dist/services/selected-variant-service.d.ts +11 -8
  59. package/cjs/dist/services/selected-variant-service.js +73 -90
  60. package/cjs/dist/services/social-sharing-service.d.ts +2 -9
  61. package/cjs/dist/services/social-sharing-service.js +48 -60
  62. package/cjs/dist/services/sort-service.d.ts +3 -3
  63. package/cjs/dist/services/sort-service.js +14 -19
  64. package/cjs/dist/utils/index.js +6 -9
  65. package/cjs/dist/utils/url-params.js +5 -9
  66. package/dist/astro/actions/custom-checkout.d.ts +1 -1
  67. package/dist/astro/actions/custom-checkout.js +1 -1
  68. package/dist/astro/actions/index.d.ts +1 -1
  69. package/dist/astro/actions/index.js +1 -1
  70. package/dist/enums/index.d.ts +2 -2
  71. package/dist/enums/index.js +2 -2
  72. package/dist/react/BuyNow.js +4 -6
  73. package/dist/react/Category.d.ts +2 -2
  74. package/dist/react/Category.js +2 -2
  75. package/dist/react/Collection.d.ts +1 -1
  76. package/dist/react/Collection.js +20 -20
  77. package/dist/react/FilteredCollection.d.ts +6 -20
  78. package/dist/react/FilteredCollection.js +17 -35
  79. package/dist/react/PayNow.js +2 -4
  80. package/dist/react/Product.d.ts +3 -3
  81. package/dist/react/Product.js +2 -2
  82. package/dist/react/ProductActions.js +9 -10
  83. package/dist/react/ProductModifiers.d.ts +3 -1
  84. package/dist/react/ProductModifiers.js +14 -12
  85. package/dist/react/ProductVariantSelector.d.ts +1 -1
  86. package/dist/react/ProductVariantSelector.js +6 -8
  87. package/dist/react/RelatedProducts.d.ts +2 -2
  88. package/dist/react/RelatedProducts.js +25 -15
  89. package/dist/react/SelectedVariant.js +2 -2
  90. package/dist/react/SocialSharing.d.ts +2 -3
  91. package/dist/react/SocialSharing.js +24 -13
  92. package/dist/react/Sort.d.ts +4 -3
  93. package/dist/react/Sort.js +3 -4
  94. package/dist/react/index.d.ts +13 -13
  95. package/dist/react/index.js +13 -13
  96. package/dist/server-actions/index.d.ts +1 -1
  97. package/dist/server-actions/index.js +1 -1
  98. package/dist/services/buy-now-service.d.ts +44 -3
  99. package/dist/services/buy-now-service.js +7 -4
  100. package/dist/services/catalog-options-service.d.ts +3 -3
  101. package/dist/services/catalog-options-service.js +33 -30
  102. package/dist/services/catalog-price-range-service.d.ts +3 -3
  103. package/dist/services/catalog-price-range-service.js +18 -18
  104. package/dist/services/category-service.d.ts +7 -7
  105. package/dist/services/category-service.js +17 -15
  106. package/dist/services/collection-service.d.ts +8 -8
  107. package/dist/services/collection-service.js +80 -74
  108. package/dist/services/filter-service.d.ts +4 -4
  109. package/dist/services/filter-service.js +37 -48
  110. package/dist/services/index.d.ts +13 -2
  111. package/dist/services/index.js +13 -2
  112. package/dist/services/pay-now-service.d.ts +4 -3
  113. package/dist/services/pay-now-service.js +1 -1
  114. package/dist/services/product-modifiers-service.d.ts +6 -6
  115. package/dist/services/product-modifiers-service.js +13 -13
  116. package/dist/services/product-service.d.ts +8 -8
  117. package/dist/services/product-service.js +19 -19
  118. package/dist/services/related-products-service.d.ts +5 -5
  119. package/dist/services/related-products-service.js +6 -6
  120. package/dist/services/selected-variant-service.d.ts +11 -8
  121. package/dist/services/selected-variant-service.js +71 -85
  122. package/dist/services/social-sharing-service.d.ts +2 -9
  123. package/dist/services/social-sharing-service.js +29 -37
  124. package/dist/services/sort-service.d.ts +3 -3
  125. package/dist/services/sort-service.js +8 -10
  126. package/dist/utils/url-params.js +4 -4
  127. package/package.json +5 -5
  128. package/cjs/dist/services/product-media-gallery-service.d.ts +0 -25
  129. package/cjs/dist/services/product-media-gallery-service.js +0 -105
  130. package/dist/services/product-media-gallery-service.d.ts +0 -25
  131. package/dist/services/product-media-gallery-service.js +0 -101
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProductMediaGalleryService = exports.ProductMediaGalleryServiceDefinition = void 0;
4
- exports.loadProductMediaGalleryServiceConfig = loadProductMediaGalleryServiceConfig;
5
- const services_definitions_1 = require("@wix/services-definitions");
6
- const signals_1 = require("@wix/services-definitions/core-services/signals");
7
- const selected_variant_service_1 = require("./selected-variant-service");
8
- const product_service_1 = require("./product-service");
9
- exports.ProductMediaGalleryServiceDefinition = (0, services_definitions_1.defineService)("productMediaGallery");
10
- exports.ProductMediaGalleryService = services_definitions_1.implementService.withConfig()(exports.ProductMediaGalleryServiceDefinition, ({ getService }) => {
11
- const signalsService = getService(signals_1.SignalsServiceDefinition);
12
- const selectedVariantService = getService(selected_variant_service_1.SelectedVariantServiceDefinition);
13
- const productService = getService(product_service_1.ProductServiceDefinition);
14
- const selectedImageIndex = signalsService.signal(0);
15
- const relevantImages = signalsService.computed(() => {
16
- const product = productService.product.get();
17
- const selectedChoices = selectedVariantService.selectedChoices?.get() || {};
18
- // Get images based on selected choices if available
19
- let selectedChoicesImages = [];
20
- Object.keys(selectedChoices).forEach((choiceKey) => {
21
- const productOption = product?.options?.find((option) => option.name === choiceKey)?.choicesSettings?.choices?.find((choice) => choice.name === selectedChoices[choiceKey]);
22
- if (productOption) {
23
- selectedChoicesImages.push(...(productOption?.linkedMedia?.map((media) => media.image) || []));
24
- }
25
- });
26
- if (selectedChoicesImages?.length) {
27
- return selectedChoicesImages;
28
- }
29
- const productItemsImages = product?.media?.itemsInfo?.items?.map((item) => item.image).filter(Boolean);
30
- if (productItemsImages?.length) {
31
- return productItemsImages;
32
- }
33
- if (product?.media?.main) {
34
- return [product.media.main.image];
35
- }
36
- return [];
37
- });
38
- const product = productService.product;
39
- const isLoading = productService.isLoading;
40
- const totalImages = signalsService.computed(() => {
41
- return relevantImages.get().length;
42
- });
43
- const productName = signalsService.computed(() => {
44
- const prod = productService.product.get();
45
- return prod?.name || "Product";
46
- });
47
- const subscribeToVariantChanges = () => {
48
- return selectedVariantService.selectedChoices.subscribe(() => {
49
- selectedImageIndex.set(0);
50
- });
51
- };
52
- subscribeToVariantChanges();
53
- const setSelectedImageIndex = (index) => {
54
- const images = relevantImages.get();
55
- if (!images.length)
56
- return;
57
- const maxIndex = images.length - 1;
58
- const validIndex = Math.max(0, Math.min(index, maxIndex));
59
- selectedImageIndex.set(validIndex);
60
- };
61
- const nextImage = () => {
62
- const images = relevantImages.get();
63
- const currentIndex = selectedImageIndex.get();
64
- if (!images.length)
65
- return;
66
- const nextIndex = currentIndex >= images.length - 1
67
- ? 0
68
- : currentIndex + 1;
69
- selectedImageIndex.set(nextIndex);
70
- };
71
- const previousImage = () => {
72
- const images = relevantImages.get();
73
- const currentIndex = selectedImageIndex.get();
74
- if (!images.length)
75
- return;
76
- const prevIndex = currentIndex <= 0
77
- ? images.length - 1
78
- : currentIndex - 1;
79
- selectedImageIndex.set(prevIndex);
80
- };
81
- return {
82
- selectedImageIndex,
83
- relevantImages,
84
- setSelectedImageIndex,
85
- nextImage,
86
- previousImage,
87
- product,
88
- isLoading,
89
- totalImages,
90
- productName,
91
- };
92
- });
93
- async function loadProductMediaGalleryServiceConfig(
94
- // @ts-ignore
95
- productSlug) {
96
- try {
97
- // No need to fetch product data here since this service depends on ProductServiceDefinition
98
- // which already loads the product data. We just need to return an empty config.
99
- return {};
100
- }
101
- catch (error) {
102
- console.error("Failed to load product media gallery config:", error);
103
- throw error;
104
- }
105
- }
@@ -1,25 +0,0 @@
1
- import { type ServiceFactoryConfig } from "@wix/services-definitions";
2
- import type { Signal, ReadOnlySignal } from "../../Signal";
3
- import { V3Product } from "@wix/auto_sdk_stores_products-v-3";
4
- export interface ProductMediaGalleryServiceAPI {
5
- selectedImageIndex: Signal<number>;
6
- relevantImages: ReadOnlySignal<string[]>;
7
- product: ReadOnlySignal<V3Product | null>;
8
- isLoading: ReadOnlySignal<boolean>;
9
- totalImages: ReadOnlySignal<number>;
10
- productName: ReadOnlySignal<string>;
11
- setSelectedImageIndex: (index: number) => void;
12
- nextImage: () => void;
13
- previousImage: () => void;
14
- }
15
- export declare const ProductMediaGalleryServiceDefinition: string & {
16
- __api: ProductMediaGalleryServiceAPI;
17
- __config: {};
18
- isServiceDefinition?: boolean;
19
- } & ProductMediaGalleryServiceAPI;
20
- export declare const ProductMediaGalleryService: import("@wix/services-definitions").ServiceFactory<string & {
21
- __api: ProductMediaGalleryServiceAPI;
22
- __config: {};
23
- isServiceDefinition?: boolean;
24
- } & ProductMediaGalleryServiceAPI, {}, import("@wix/services-definitions").ThreadMode.MAIN>;
25
- export declare function loadProductMediaGalleryServiceConfig(productSlug: string): Promise<ServiceFactoryConfig<typeof ProductMediaGalleryService>>;
@@ -1,101 +0,0 @@
1
- import { defineService, implementService, } from "@wix/services-definitions";
2
- import { SignalsServiceDefinition } from "@wix/services-definitions/core-services/signals";
3
- import { SelectedVariantServiceDefinition } from "./selected-variant-service";
4
- import { ProductServiceDefinition } from "./product-service";
5
- export const ProductMediaGalleryServiceDefinition = defineService("productMediaGallery");
6
- export const ProductMediaGalleryService = implementService.withConfig()(ProductMediaGalleryServiceDefinition, ({ getService }) => {
7
- const signalsService = getService(SignalsServiceDefinition);
8
- const selectedVariantService = getService(SelectedVariantServiceDefinition);
9
- const productService = getService(ProductServiceDefinition);
10
- const selectedImageIndex = signalsService.signal(0);
11
- const relevantImages = signalsService.computed(() => {
12
- const product = productService.product.get();
13
- const selectedChoices = selectedVariantService.selectedChoices?.get() || {};
14
- // Get images based on selected choices if available
15
- let selectedChoicesImages = [];
16
- Object.keys(selectedChoices).forEach((choiceKey) => {
17
- const productOption = product?.options?.find((option) => option.name === choiceKey)?.choicesSettings?.choices?.find((choice) => choice.name === selectedChoices[choiceKey]);
18
- if (productOption) {
19
- selectedChoicesImages.push(...(productOption?.linkedMedia?.map((media) => media.image) || []));
20
- }
21
- });
22
- if (selectedChoicesImages?.length) {
23
- return selectedChoicesImages;
24
- }
25
- const productItemsImages = product?.media?.itemsInfo?.items?.map((item) => item.image).filter(Boolean);
26
- if (productItemsImages?.length) {
27
- return productItemsImages;
28
- }
29
- if (product?.media?.main) {
30
- return [product.media.main.image];
31
- }
32
- return [];
33
- });
34
- const product = productService.product;
35
- const isLoading = productService.isLoading;
36
- const totalImages = signalsService.computed(() => {
37
- return relevantImages.get().length;
38
- });
39
- const productName = signalsService.computed(() => {
40
- const prod = productService.product.get();
41
- return prod?.name || "Product";
42
- });
43
- const subscribeToVariantChanges = () => {
44
- return selectedVariantService.selectedChoices.subscribe(() => {
45
- selectedImageIndex.set(0);
46
- });
47
- };
48
- subscribeToVariantChanges();
49
- const setSelectedImageIndex = (index) => {
50
- const images = relevantImages.get();
51
- if (!images.length)
52
- return;
53
- const maxIndex = images.length - 1;
54
- const validIndex = Math.max(0, Math.min(index, maxIndex));
55
- selectedImageIndex.set(validIndex);
56
- };
57
- const nextImage = () => {
58
- const images = relevantImages.get();
59
- const currentIndex = selectedImageIndex.get();
60
- if (!images.length)
61
- return;
62
- const nextIndex = currentIndex >= images.length - 1
63
- ? 0
64
- : currentIndex + 1;
65
- selectedImageIndex.set(nextIndex);
66
- };
67
- const previousImage = () => {
68
- const images = relevantImages.get();
69
- const currentIndex = selectedImageIndex.get();
70
- if (!images.length)
71
- return;
72
- const prevIndex = currentIndex <= 0
73
- ? images.length - 1
74
- : currentIndex - 1;
75
- selectedImageIndex.set(prevIndex);
76
- };
77
- return {
78
- selectedImageIndex,
79
- relevantImages,
80
- setSelectedImageIndex,
81
- nextImage,
82
- previousImage,
83
- product,
84
- isLoading,
85
- totalImages,
86
- productName,
87
- };
88
- });
89
- export async function loadProductMediaGalleryServiceConfig(
90
- // @ts-ignore
91
- productSlug) {
92
- try {
93
- // No need to fetch product data here since this service depends on ProductServiceDefinition
94
- // which already loads the product data. We just need to return an empty config.
95
- return {};
96
- }
97
- catch (error) {
98
- console.error("Failed to load product media gallery config:", error);
99
- throw error;
100
- }
101
- }