@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.
- package/cjs/dist/astro/actions/custom-checkout.d.ts +4 -2
- package/cjs/dist/astro/actions/custom-checkout.js +4 -8
- package/cjs/dist/astro/actions/index.d.ts +1 -1
- package/cjs/dist/astro/actions/index.js +1 -17
- package/cjs/dist/enums/index.d.ts +2 -2
- package/cjs/dist/enums/index.js +2 -18
- package/cjs/dist/enums/social-platform-enums.js +4 -7
- package/cjs/dist/enums/sort-enums.js +3 -6
- package/cjs/dist/react/BuyNow.js +6 -11
- package/cjs/dist/react/Category.d.ts +2 -2
- package/cjs/dist/react/Category.js +6 -10
- package/cjs/dist/react/Collection.d.ts +1 -1
- package/cjs/dist/react/Collection.js +31 -39
- package/cjs/dist/react/FilteredCollection.d.ts +6 -20
- package/cjs/dist/react/FilteredCollection.js +29 -57
- package/cjs/dist/react/PayNow.js +4 -9
- package/cjs/dist/react/Product.d.ts +3 -3
- package/cjs/dist/react/Product.js +6 -11
- package/cjs/dist/react/ProductActions.js +12 -17
- package/cjs/dist/react/ProductModifiers.d.ts +3 -1
- package/cjs/dist/react/ProductModifiers.js +23 -29
- package/cjs/dist/react/ProductVariantSelector.d.ts +1 -1
- package/cjs/dist/react/ProductVariantSelector.js +18 -28
- package/cjs/dist/react/RelatedProducts.d.ts +2 -2
- package/cjs/dist/react/RelatedProducts.js +35 -33
- package/cjs/dist/react/SelectedVariant.js +8 -14
- package/cjs/dist/react/SocialSharing.d.ts +2 -3
- package/cjs/dist/react/SocialSharing.js +35 -33
- package/cjs/dist/react/Sort.d.ts +4 -3
- package/cjs/dist/react/Sort.js +6 -10
- package/cjs/dist/react/index.d.ts +13 -13
- package/cjs/dist/react/index.js +13 -52
- package/cjs/dist/server-actions/custom-checkout-action.js +8 -11
- package/cjs/dist/server-actions/index.d.ts +1 -1
- package/cjs/dist/server-actions/index.js +1 -17
- package/cjs/dist/services/buy-now-service.d.ts +44 -3
- package/cjs/dist/services/buy-now-service.js +20 -22
- package/cjs/dist/services/catalog-options-service.d.ts +3 -3
- package/cjs/dist/services/catalog-options-service.js +45 -46
- package/cjs/dist/services/catalog-price-range-service.d.ts +3 -3
- package/cjs/dist/services/catalog-price-range-service.js +21 -25
- package/cjs/dist/services/category-service.d.ts +7 -7
- package/cjs/dist/services/category-service.js +20 -22
- package/cjs/dist/services/collection-service.d.ts +8 -8
- package/cjs/dist/services/collection-service.js +102 -133
- package/cjs/dist/services/filter-service.d.ts +4 -4
- package/cjs/dist/services/filter-service.js +47 -61
- package/cjs/dist/services/index.d.ts +13 -2
- package/cjs/dist/services/index.js +13 -9
- package/cjs/dist/services/pay-now-service.d.ts +4 -3
- package/cjs/dist/services/pay-now-service.js +11 -16
- package/cjs/dist/services/product-modifiers-service.d.ts +6 -6
- package/cjs/dist/services/product-modifiers-service.js +17 -21
- package/cjs/dist/services/product-service.d.ts +8 -8
- package/cjs/dist/services/product-service.js +22 -26
- package/cjs/dist/services/related-products-service.d.ts +5 -5
- package/cjs/dist/services/related-products-service.js +9 -13
- package/cjs/dist/services/selected-variant-service.d.ts +11 -8
- package/cjs/dist/services/selected-variant-service.js +73 -90
- package/cjs/dist/services/social-sharing-service.d.ts +2 -9
- package/cjs/dist/services/social-sharing-service.js +48 -60
- package/cjs/dist/services/sort-service.d.ts +3 -3
- package/cjs/dist/services/sort-service.js +14 -19
- package/cjs/dist/utils/index.js +6 -9
- package/cjs/dist/utils/url-params.js +5 -9
- package/dist/astro/actions/custom-checkout.d.ts +1 -1
- package/dist/astro/actions/custom-checkout.js +1 -1
- package/dist/astro/actions/index.d.ts +1 -1
- package/dist/astro/actions/index.js +1 -1
- package/dist/enums/index.d.ts +2 -2
- package/dist/enums/index.js +2 -2
- package/dist/react/BuyNow.js +4 -6
- package/dist/react/Category.d.ts +2 -2
- package/dist/react/Category.js +2 -2
- package/dist/react/Collection.d.ts +1 -1
- package/dist/react/Collection.js +20 -20
- package/dist/react/FilteredCollection.d.ts +6 -20
- package/dist/react/FilteredCollection.js +17 -35
- package/dist/react/PayNow.js +2 -4
- package/dist/react/Product.d.ts +3 -3
- package/dist/react/Product.js +2 -2
- package/dist/react/ProductActions.js +9 -10
- package/dist/react/ProductModifiers.d.ts +3 -1
- package/dist/react/ProductModifiers.js +14 -12
- package/dist/react/ProductVariantSelector.d.ts +1 -1
- package/dist/react/ProductVariantSelector.js +6 -8
- package/dist/react/RelatedProducts.d.ts +2 -2
- package/dist/react/RelatedProducts.js +25 -15
- package/dist/react/SelectedVariant.js +2 -2
- package/dist/react/SocialSharing.d.ts +2 -3
- package/dist/react/SocialSharing.js +24 -13
- package/dist/react/Sort.d.ts +4 -3
- package/dist/react/Sort.js +3 -4
- package/dist/react/index.d.ts +13 -13
- package/dist/react/index.js +13 -13
- package/dist/server-actions/index.d.ts +1 -1
- package/dist/server-actions/index.js +1 -1
- package/dist/services/buy-now-service.d.ts +44 -3
- package/dist/services/buy-now-service.js +7 -4
- package/dist/services/catalog-options-service.d.ts +3 -3
- package/dist/services/catalog-options-service.js +33 -30
- package/dist/services/catalog-price-range-service.d.ts +3 -3
- package/dist/services/catalog-price-range-service.js +18 -18
- package/dist/services/category-service.d.ts +7 -7
- package/dist/services/category-service.js +17 -15
- package/dist/services/collection-service.d.ts +8 -8
- package/dist/services/collection-service.js +80 -74
- package/dist/services/filter-service.d.ts +4 -4
- package/dist/services/filter-service.js +37 -48
- package/dist/services/index.d.ts +13 -2
- package/dist/services/index.js +13 -2
- package/dist/services/pay-now-service.d.ts +4 -3
- package/dist/services/pay-now-service.js +1 -1
- package/dist/services/product-modifiers-service.d.ts +6 -6
- package/dist/services/product-modifiers-service.js +13 -13
- package/dist/services/product-service.d.ts +8 -8
- package/dist/services/product-service.js +19 -19
- package/dist/services/related-products-service.d.ts +5 -5
- package/dist/services/related-products-service.js +6 -6
- package/dist/services/selected-variant-service.d.ts +11 -8
- package/dist/services/selected-variant-service.js +71 -85
- package/dist/services/social-sharing-service.d.ts +2 -9
- package/dist/services/social-sharing-service.js +29 -37
- package/dist/services/sort-service.d.ts +3 -3
- package/dist/services/sort-service.js +8 -10
- package/dist/utils/url-params.js +4 -4
- package/package.json +5 -5
- package/cjs/dist/services/product-media-gallery-service.d.ts +0 -25
- package/cjs/dist/services/product-media-gallery-service.js +0 -105
- package/dist/services/product-media-gallery-service.d.ts +0 -25
- 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
|
-
}
|