@anker-in/shopify-react 0.1.1-beta.0 → 0.1.1-beta.2

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.
@@ -1,5 +1,5 @@
1
- export { A as AddCartLinesInput, b as AddToCartInput, f as ApplyCartCodesInput, w as AutoFreeGift, y as AutoFreeGiftConfig, Q as AutoFreeGiftItem, T as AutoFreeGiftList, x as AutoFreeGiftMainProduct, B as BuyNowInput, K as BuyRuleType, a5 as CODE_AMOUNT_KEY, a3 as CUSTOMER_ATTRIBUTE_KEY, a4 as CUSTOMER_SCRIPT_GIFT_KEY, P as CartLineInput, E as Config, C as CreateCartInput, bb as Customer, ba as CustomerOrder, D as DiscountLabel, N as FormattedGift, L as FunctionGiftResult, bo as GeoLocationData, G as GiftProduct, I as GiftProductItem, F as GiftTier, bg as HasPlusMemberInCartResult, ax as ImageMedia, bp as LocaleMapping, a7 as MAIN_PRODUCT_CODE, M as MainProductInfo, aq as Options, X as OrderBasePriceType, Z as OrderDiscountConfig, O as OrderDiscountResult, W as OrderDiscountType, a$ as PlusMemberContext, a_ as PlusMemberContextValue, bj as PlusMemberProvider, bi as PlusMemberProviderProps, $ as PriceBasePriceType, a0 as PriceDiscountConfig, _ as PriceDiscountType, h as RemoveCartCodesInput, R as RemoveCartLinesInput, H as RewardItem, z as RuleCondition, J as RuleType, a6 as SCRIPT_CODE_AMOUNT_KEY, aT as SearchResult, aS as SearchResultItem, aR as SearchResultType, aj as SelectedOptionsResult, aZ as ShippingMethodsContext, aW as SiteInfo, S as SpendMoneyType, Y as TieredDiscount, j as UpdateCartAttributesInput, U as UseAddToCartOptions, aJ as UseAllBlogsOptions, aD as UseAllCollectionsOptions, am as UseAllProductsOptions, aL as UseArticleOptions, aP as UseArticlesInBlogOptions, aN as UseArticlesOptions, bd as UseAutoRemovePlusMemberInCartProps, aH as UseBlogOptions, l as UseBuyNowOptions, aB as UseCollectionOptions, aF as UseCollectionsOptions, bm as UseExposureOptions, bq as UseGeoLocationOptions, bf as UseHasPlusMemberInCartProps, bk as UseIntersectionOptions, as as UsePriceOptions, at as UsePriceResult, ak as UseProductOptions, ao as UseProductsByHandlesOptions, s as UseScriptAutoFreeGiftResult, aU as UseSearchOptions, b3 as UseShippingMethodsOptions, b4 as UseShippingMethodsResult, aX as UseSiteOptions, V as VariantItem, az as VariantMedia, ay as VideoMedia, a9 as atobID, aa as btoaID, bt as clearGeoLocationCache, a1 as currencyCodeMapping, a2 as defaultSWRMutationConfiguration, ah as formatFunctionAutoFreeGift, ag as formatScriptAutoFreeGift, bs as getCachedGeoLocation, ac as getDiscountEnvAttributeValue, ab as getMatchedMainProductSubTotal, a8 as getQuery, p as getReferralAttributes, ad as isAttributesEqual, af as preCheck, ae as safeParseJson, a as useAddCartLines, c as useAddToCart, aK as useAllBlogs, aE as useAllCollections, an as useAllProducts, g as useApplyCartCodes, aM as useArticle, aO as useArticles, aQ as useArticlesInBlog, be as useAutoRemovePlusMemberInCart, aI as useBlog, m as useBuyNow, n as useCalcAutoFreeGift, o as useCalcOrderDiscount, q as useCartAttributes, r as useCartItemQuantityLimit, aC as useCollection, aG as useCollections, u as useCreateCart, bn as useExposure, br as useGeoLocation, bh as useHasPlusMemberInCart, bl as useIntersection, b2 as usePlusAnnualProductVariant, bc as usePlusMemberCheckoutCustomAttributes, b0 as usePlusMemberContext, b8 as usePlusMemberDeliveryCodes, b9 as usePlusMemberItemCustomAttributes, b1 as usePlusMonthlyProductVariant, au as usePrice, al as useProduct, av as useProductUrl, ap as useProductsByHandles, i as useRemoveCartCodes, e as useRemoveCartLines, b7 as useReplaceCartPlusMember, t as useScriptAutoFreeGift, aV as useSearch, ai as useSelectedOptions, b6 as useShippingMethodAvailableCheck, b5 as useShippingMethods, aY as useSite, k as useUpdateCartAttributes, d as useUpdateCartLines, v as useUpdateLineCodeAmountAttributes, aw as useUpdateVariantQuery, ar as useVariant, aA as useVariantMedia } from '../index-DenyuVGJ.mjs';
2
- export { g as DeliveryCustomData, h as DeliveryData, f as DeliveryOption, D as DeliveryPlusType, M as MailingAddress, P as PLUS_MEMBER_TYPE, a as PlusMemberMode, d as PlusMemberSettingsMetafields, c as PlusMemberShippingMethodConfig, b as PlusMemberShippingMethodMetafields, e as SelectedPlusMemberProduct, S as ShippingMethodMode } from '../types-CMA6_FML.mjs';
1
+ export { A as AddCartLinesInput, d as ApplyCartCodesInput, s as AutoFreeGift, v as AutoFreeGiftConfig, L as AutoFreeGiftItem, N as AutoFreeGiftList, t as AutoFreeGiftMainProduct, B as BuyNowInput, H as BuyRuleType, a2 as CODE_AMOUNT_KEY, a0 as CUSTOMER_ATTRIBUTE_KEY, a1 as CUSTOMER_SCRIPT_GIFT_KEY, K as CartLineInput, x as Config, C as CreateCartInput, b8 as Customer, b7 as CustomerOrder, D as DiscountLabel, J as FormattedGift, I as FunctionGiftResult, bn as GeoLocationData, G as GiftProduct, E as GiftProductItem, y as GiftTier, bd as HasPlusMemberInCartResult, au as ImageMedia, bo as LocaleMapping, a4 as MAIN_PRODUCT_CODE, M as MainProductInfo, an as Options, Q as OrderBasePriceType, W as OrderDiscountConfig, O as OrderDiscountResult, P as OrderDiscountType, aY as PlusMemberContext, aX as PlusMemberContextValue, bi as PlusMemberProvider, bh as PlusMemberProviderProps, Y as PriceBasePriceType, Z as PriceDiscountConfig, X as PriceDiscountType, f as RemoveCartCodesInput, R as RemoveCartLinesInput, z as RewardItem, w as RuleCondition, F as RuleType, a3 as SCRIPT_CODE_AMOUNT_KEY, aQ as SearchResult, aP as SearchResultItem, aO as SearchResultType, ag as SelectedOptionsResult, aW as ShippingMethodsContext, aT as SiteInfo, S as SpendMoneyType, T as TieredDiscount, U as UpdateCartAttributesInput, bf as UseAddPlusMemberProductsToCartProps, aG as UseAllBlogsOptions, aA as UseAllCollectionsOptions, aj as UseAllProductsOptions, aI as UseArticleOptions, aM as UseArticlesInBlogOptions, aK as UseArticlesOptions, ba as UseAutoRemovePlusMemberInCartProps, aE as UseBlogOptions, i as UseBuyNowOptions, ay as UseCollectionOptions, aC as UseCollectionsOptions, bl as UseExposureOptions, bp as UseGeoLocationOptions, bc as UseHasPlusMemberInCartProps, bj as UseIntersectionOptions, ap as UsePriceOptions, aq as UsePriceResult, ah as UseProductOptions, al as UseProductsByHandlesOptions, p as UseScriptAutoFreeGiftResult, aR as UseSearchOptions, b0 as UseShippingMethodsOptions, b1 as UseShippingMethodsResult, aU as UseSiteOptions, V as VariantItem, aw as VariantMedia, av as VideoMedia, a6 as atobID, a7 as btoaID, ab as checkAttributesUpdateNeeded, bs as clearGeoLocationCache, _ as currencyCodeMapping, $ as defaultSWRMutationConfiguration, ae as formatFunctionAutoFreeGift, ad as formatScriptAutoFreeGift, br as getCachedGeoLocation, aa as getDiscountEnvAttributeValue, a8 as getMatchedMainProductSubTotal, a5 as getQuery, m as getReferralAttributes, ac as preCheck, a9 as safeParse, a as useAddCartLines, bg as useAddPlusMemberProductsToCart, aH as useAllBlogs, aB as useAllCollections, ak as useAllProducts, e as useApplyCartCodes, aJ as useArticle, aL as useArticles, aN as useArticlesInBlog, bb as useAutoRemovePlusMemberInCart, aF as useBlog, j as useBuyNow, k as useCalcAutoFreeGift, l as useCalcOrderDiscount, n as useCartAttributes, o as useCartItemQuantityLimit, az as useCollection, aD as useCollections, u as useCreateCart, bm as useExposure, bq as useGeoLocation, be as useHasPlusMemberInCart, bk as useIntersection, a$ as usePlusAnnualProductVariant, b9 as usePlusMemberCheckoutCustomAttributes, aZ as usePlusMemberContext, b5 as usePlusMemberDeliveryCodes, b6 as usePlusMemberItemCustomAttributes, a_ as usePlusMonthlyProductVariant, ar as usePrice, ai as useProduct, as as useProductUrl, am as useProductsByHandles, g as useRemoveCartCodes, c as useRemoveCartLines, b4 as useReplaceCartPlusMember, q as useScriptAutoFreeGift, aS as useSearch, af as useSelectedOptions, b3 as useShippingMethodAvailableCheck, b2 as useShippingMethods, aV as useSite, h as useUpdateCartAttributes, b as useUpdateCartLines, r as useUpdateLineCodeAmountAttributes, at as useUpdateVariantQuery, ao as useVariant, ax as useVariantMedia } from '../index-Bea95u2X.mjs';
2
+ export { a as AddToCartInput, A as AddToCartLineItem, h as DeliveryCustomData, i as DeliveryData, g as DeliveryOption, D as DeliveryPlusType, M as MailingAddress, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, u as useAddToCart } from '../types-CICUnw0v.mjs';
3
3
  import 'swr/mutation';
4
4
  import '@anker-in/shopify-sdk';
5
5
  import 'decimal.js';
@@ -1,5 +1,5 @@
1
- export { A as AddCartLinesInput, b as AddToCartInput, f as ApplyCartCodesInput, w as AutoFreeGift, y as AutoFreeGiftConfig, Q as AutoFreeGiftItem, T as AutoFreeGiftList, x as AutoFreeGiftMainProduct, B as BuyNowInput, K as BuyRuleType, a5 as CODE_AMOUNT_KEY, a3 as CUSTOMER_ATTRIBUTE_KEY, a4 as CUSTOMER_SCRIPT_GIFT_KEY, P as CartLineInput, E as Config, C as CreateCartInput, bb as Customer, ba as CustomerOrder, D as DiscountLabel, N as FormattedGift, L as FunctionGiftResult, bo as GeoLocationData, G as GiftProduct, I as GiftProductItem, F as GiftTier, bg as HasPlusMemberInCartResult, ax as ImageMedia, bp as LocaleMapping, a7 as MAIN_PRODUCT_CODE, M as MainProductInfo, aq as Options, X as OrderBasePriceType, Z as OrderDiscountConfig, O as OrderDiscountResult, W as OrderDiscountType, a$ as PlusMemberContext, a_ as PlusMemberContextValue, bj as PlusMemberProvider, bi as PlusMemberProviderProps, $ as PriceBasePriceType, a0 as PriceDiscountConfig, _ as PriceDiscountType, h as RemoveCartCodesInput, R as RemoveCartLinesInput, H as RewardItem, z as RuleCondition, J as RuleType, a6 as SCRIPT_CODE_AMOUNT_KEY, aT as SearchResult, aS as SearchResultItem, aR as SearchResultType, aj as SelectedOptionsResult, aZ as ShippingMethodsContext, aW as SiteInfo, S as SpendMoneyType, Y as TieredDiscount, j as UpdateCartAttributesInput, U as UseAddToCartOptions, aJ as UseAllBlogsOptions, aD as UseAllCollectionsOptions, am as UseAllProductsOptions, aL as UseArticleOptions, aP as UseArticlesInBlogOptions, aN as UseArticlesOptions, bd as UseAutoRemovePlusMemberInCartProps, aH as UseBlogOptions, l as UseBuyNowOptions, aB as UseCollectionOptions, aF as UseCollectionsOptions, bm as UseExposureOptions, bq as UseGeoLocationOptions, bf as UseHasPlusMemberInCartProps, bk as UseIntersectionOptions, as as UsePriceOptions, at as UsePriceResult, ak as UseProductOptions, ao as UseProductsByHandlesOptions, s as UseScriptAutoFreeGiftResult, aU as UseSearchOptions, b3 as UseShippingMethodsOptions, b4 as UseShippingMethodsResult, aX as UseSiteOptions, V as VariantItem, az as VariantMedia, ay as VideoMedia, a9 as atobID, aa as btoaID, bt as clearGeoLocationCache, a1 as currencyCodeMapping, a2 as defaultSWRMutationConfiguration, ah as formatFunctionAutoFreeGift, ag as formatScriptAutoFreeGift, bs as getCachedGeoLocation, ac as getDiscountEnvAttributeValue, ab as getMatchedMainProductSubTotal, a8 as getQuery, p as getReferralAttributes, ad as isAttributesEqual, af as preCheck, ae as safeParseJson, a as useAddCartLines, c as useAddToCart, aK as useAllBlogs, aE as useAllCollections, an as useAllProducts, g as useApplyCartCodes, aM as useArticle, aO as useArticles, aQ as useArticlesInBlog, be as useAutoRemovePlusMemberInCart, aI as useBlog, m as useBuyNow, n as useCalcAutoFreeGift, o as useCalcOrderDiscount, q as useCartAttributes, r as useCartItemQuantityLimit, aC as useCollection, aG as useCollections, u as useCreateCart, bn as useExposure, br as useGeoLocation, bh as useHasPlusMemberInCart, bl as useIntersection, b2 as usePlusAnnualProductVariant, bc as usePlusMemberCheckoutCustomAttributes, b0 as usePlusMemberContext, b8 as usePlusMemberDeliveryCodes, b9 as usePlusMemberItemCustomAttributes, b1 as usePlusMonthlyProductVariant, au as usePrice, al as useProduct, av as useProductUrl, ap as useProductsByHandles, i as useRemoveCartCodes, e as useRemoveCartLines, b7 as useReplaceCartPlusMember, t as useScriptAutoFreeGift, aV as useSearch, ai as useSelectedOptions, b6 as useShippingMethodAvailableCheck, b5 as useShippingMethods, aY as useSite, k as useUpdateCartAttributes, d as useUpdateCartLines, v as useUpdateLineCodeAmountAttributes, aw as useUpdateVariantQuery, ar as useVariant, aA as useVariantMedia } from '../index-BUWkkUdh.js';
2
- export { g as DeliveryCustomData, h as DeliveryData, f as DeliveryOption, D as DeliveryPlusType, M as MailingAddress, P as PLUS_MEMBER_TYPE, a as PlusMemberMode, d as PlusMemberSettingsMetafields, c as PlusMemberShippingMethodConfig, b as PlusMemberShippingMethodMetafields, e as SelectedPlusMemberProduct, S as ShippingMethodMode } from '../types-CMA6_FML.js';
1
+ export { A as AddCartLinesInput, d as ApplyCartCodesInput, s as AutoFreeGift, v as AutoFreeGiftConfig, L as AutoFreeGiftItem, N as AutoFreeGiftList, t as AutoFreeGiftMainProduct, B as BuyNowInput, H as BuyRuleType, a2 as CODE_AMOUNT_KEY, a0 as CUSTOMER_ATTRIBUTE_KEY, a1 as CUSTOMER_SCRIPT_GIFT_KEY, K as CartLineInput, x as Config, C as CreateCartInput, b8 as Customer, b7 as CustomerOrder, D as DiscountLabel, J as FormattedGift, I as FunctionGiftResult, bn as GeoLocationData, G as GiftProduct, E as GiftProductItem, y as GiftTier, bd as HasPlusMemberInCartResult, au as ImageMedia, bo as LocaleMapping, a4 as MAIN_PRODUCT_CODE, M as MainProductInfo, an as Options, Q as OrderBasePriceType, W as OrderDiscountConfig, O as OrderDiscountResult, P as OrderDiscountType, aY as PlusMemberContext, aX as PlusMemberContextValue, bi as PlusMemberProvider, bh as PlusMemberProviderProps, Y as PriceBasePriceType, Z as PriceDiscountConfig, X as PriceDiscountType, f as RemoveCartCodesInput, R as RemoveCartLinesInput, z as RewardItem, w as RuleCondition, F as RuleType, a3 as SCRIPT_CODE_AMOUNT_KEY, aQ as SearchResult, aP as SearchResultItem, aO as SearchResultType, ag as SelectedOptionsResult, aW as ShippingMethodsContext, aT as SiteInfo, S as SpendMoneyType, T as TieredDiscount, U as UpdateCartAttributesInput, bf as UseAddPlusMemberProductsToCartProps, aG as UseAllBlogsOptions, aA as UseAllCollectionsOptions, aj as UseAllProductsOptions, aI as UseArticleOptions, aM as UseArticlesInBlogOptions, aK as UseArticlesOptions, ba as UseAutoRemovePlusMemberInCartProps, aE as UseBlogOptions, i as UseBuyNowOptions, ay as UseCollectionOptions, aC as UseCollectionsOptions, bl as UseExposureOptions, bp as UseGeoLocationOptions, bc as UseHasPlusMemberInCartProps, bj as UseIntersectionOptions, ap as UsePriceOptions, aq as UsePriceResult, ah as UseProductOptions, al as UseProductsByHandlesOptions, p as UseScriptAutoFreeGiftResult, aR as UseSearchOptions, b0 as UseShippingMethodsOptions, b1 as UseShippingMethodsResult, aU as UseSiteOptions, V as VariantItem, aw as VariantMedia, av as VideoMedia, a6 as atobID, a7 as btoaID, ab as checkAttributesUpdateNeeded, bs as clearGeoLocationCache, _ as currencyCodeMapping, $ as defaultSWRMutationConfiguration, ae as formatFunctionAutoFreeGift, ad as formatScriptAutoFreeGift, br as getCachedGeoLocation, aa as getDiscountEnvAttributeValue, a8 as getMatchedMainProductSubTotal, a5 as getQuery, m as getReferralAttributes, ac as preCheck, a9 as safeParse, a as useAddCartLines, bg as useAddPlusMemberProductsToCart, aH as useAllBlogs, aB as useAllCollections, ak as useAllProducts, e as useApplyCartCodes, aJ as useArticle, aL as useArticles, aN as useArticlesInBlog, bb as useAutoRemovePlusMemberInCart, aF as useBlog, j as useBuyNow, k as useCalcAutoFreeGift, l as useCalcOrderDiscount, n as useCartAttributes, o as useCartItemQuantityLimit, az as useCollection, aD as useCollections, u as useCreateCart, bm as useExposure, bq as useGeoLocation, be as useHasPlusMemberInCart, bk as useIntersection, a$ as usePlusAnnualProductVariant, b9 as usePlusMemberCheckoutCustomAttributes, aZ as usePlusMemberContext, b5 as usePlusMemberDeliveryCodes, b6 as usePlusMemberItemCustomAttributes, a_ as usePlusMonthlyProductVariant, ar as usePrice, ai as useProduct, as as useProductUrl, am as useProductsByHandles, g as useRemoveCartCodes, c as useRemoveCartLines, b4 as useReplaceCartPlusMember, q as useScriptAutoFreeGift, aS as useSearch, af as useSelectedOptions, b3 as useShippingMethodAvailableCheck, b2 as useShippingMethods, aV as useSite, h as useUpdateCartAttributes, b as useUpdateCartLines, r as useUpdateLineCodeAmountAttributes, at as useUpdateVariantQuery, ao as useVariant, ax as useVariantMedia } from '../index-BZ6WbAdZ.js';
2
+ export { a as AddToCartInput, A as AddToCartLineItem, h as DeliveryCustomData, i as DeliveryData, g as DeliveryOption, D as DeliveryPlusType, M as MailingAddress, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, u as useAddToCart } from '../types-CICUnw0v.js';
3
3
  import 'swr/mutation';
4
4
  import '@anker-in/shopify-sdk';
5
5
  import 'decimal.js';
@@ -110,25 +110,25 @@ var getMatchedMainProductSubTotal = (cartData, variant_list, main_product) => {
110
110
  return acc + (main_product?.spend_money_type === 1 /* ORIGIN_PRICE */ ? Number(line.subtotalAmount) || 0 : Number(line.totalAmount) || 0);
111
111
  }, 0) || 0;
112
112
  };
113
- var getDiscountEnvAttributeValue = (attributes = []) => {
114
- const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
115
- return safeParseJson(attr?.value ?? "") ?? {};
116
- };
117
- var isAttributesEqual = (attrs1 = [], attrs2 = []) => {
118
- if (attrs1.length !== attrs2.length) return false;
119
- const sorted1 = [...attrs1].sort((a, b) => a.key.localeCompare(b.key));
120
- const sorted2 = [...attrs2].sort((a, b) => a.key.localeCompare(b.key));
121
- return sorted1.every(
122
- (attr, i) => attr.key === sorted2[i]?.key && attr.value === sorted2[i]?.value
123
- );
124
- };
125
- var safeParseJson = (str) => {
113
+ var safeParse = (str) => {
126
114
  try {
127
115
  return JSON.parse(str);
128
116
  } catch (err) {
129
117
  return {};
130
118
  }
131
119
  };
120
+ var getDiscountEnvAttributeValue = (attributes = []) => {
121
+ const attr = attributes.find((attr2) => attr2.key === CUSTOMER_ATTRIBUTE_KEY);
122
+ return safeParse(attr?.value ?? "") ?? {};
123
+ };
124
+ var checkAttributesUpdateNeeded = (oldAttributes, newAttributes, customAttributesNeedRemove) => {
125
+ return oldAttributes.some((attr) => {
126
+ const newAttr = newAttributes.find((newAttr2) => newAttr2.key === attr.key);
127
+ return newAttr ? newAttr.value !== attr.value : true;
128
+ }) || newAttributes.some((attr) => !oldAttributes.some((oldAttr) => oldAttr.key === attr.key)) || customAttributesNeedRemove.some(
129
+ (removeAttr) => oldAttributes.some((oldAttr) => oldAttr.key === removeAttr.key)
130
+ );
131
+ };
132
132
  var containsAll = (source, requiredItems = []) => {
133
133
  if (!requiredItems?.length) return true;
134
134
  const sourceSet = new Set(source);
@@ -417,6 +417,14 @@ var useScriptAutoFreeGift = ({
417
417
  set_points_subscribe(!!isPointsSubscribe);
418
418
  }
419
419
  }, [locale]);
420
+ const isActivityAvailable = react.useMemo(() => {
421
+ if (!campaign) return false;
422
+ const query = getQuery();
423
+ const utmCampaign = Cookies5__default.default.get("utm_campaign") || query?.utm_campaign;
424
+ if (campaign.activityAvailableQuery && !utmCampaign?.includes(campaign.activityAvailableQuery))
425
+ return false;
426
+ return true;
427
+ }, [campaign]);
420
428
  const [upgrade_multiple, upgrade_value] = react.useMemo(() => {
421
429
  let upgrade_multiple2 = 1;
422
430
  let upgrade_value2 = 0;
@@ -433,8 +441,8 @@ var useScriptAutoFreeGift = ({
433
441
  return [upgrade_multiple2, upgrade_value2];
434
442
  }, [cart?.lineItems, points_subscribe]);
435
443
  const breakpoints = react.useMemo(() => {
436
- if (!campaign) return [];
437
- return (campaign.breakpoints || []).map((item) => ({
444
+ if (!isActivityAvailable) return [];
445
+ return (campaign?.breakpoints || []).map((item) => ({
438
446
  breakpoint: new Decimal2__default.default(item.breakpoint).minus(new Decimal2__default.default(upgrade_value)).dividedBy(new Decimal2__default.default(upgrade_multiple)).toFixed(2, Decimal2__default.default.ROUND_DOWN),
439
447
  giveawayProducts: item.giveawayProducts || []
440
448
  }));
@@ -458,25 +466,26 @@ var useScriptAutoFreeGift = ({
458
466
  return true;
459
467
  }, [giftHandles]);
460
468
  const involvedLines = react.useMemo(() => {
461
- if (!campaign) return [];
469
+ if (!isActivityAvailable) return [];
462
470
  return (cart?.lineItems || []).filter((line) => {
463
471
  const isNotGift = line?.totalAmount && Number(line.totalAmount) > 0 && line.customAttributes?.every(
464
472
  (item) => item.key !== _giveaway
465
473
  );
466
474
  const hasCampaignTag = line.product?.tags?.some(
467
- (tag) => campaign.includeTags?.includes(tag.trim()) && line.variant?.availableForSale
475
+ (tag) => campaign?.includeTags?.includes(tag.trim()) && line.variant?.availableForSale
468
476
  );
469
477
  return isNotGift && hasCampaignTag;
470
478
  });
471
- }, [cart?.lineItems, campaign, _giveaway]);
479
+ }, [cart?.lineItems, isActivityAvailable, _giveaway]);
472
480
  const involvedSubTotal = react.useMemo(() => {
473
- if (!campaign) return new Decimal2__default.default(0);
481
+ if (!isActivityAvailable) return new Decimal2__default.default(0);
474
482
  return involvedLines.reduce((prev, item) => {
475
- const amount = campaign.useTotalAmount ? item.totalAmount : item.subtotalAmount;
483
+ const amount = campaign?.useTotalAmount ? item.totalAmount : item.subtotalAmount;
476
484
  return new Decimal2__default.default(prev).plus(new Decimal2__default.default(amount || 0));
477
485
  }, new Decimal2__default.default(0));
478
- }, [involvedLines, campaign]);
486
+ }, [involvedLines, isActivityAvailable]);
479
487
  const [freeGiftLevel, nextFreeGiftLevel] = react.useMemo(() => {
488
+ if (!isActivityAvailable) return [null, null];
480
489
  const sortedLevels = [...breakpoints].sort(
481
490
  (a, b) => Number(b.breakpoint) - Number(a.breakpoint)
482
491
  );
@@ -606,8 +615,6 @@ function useAddCartLines(options) {
606
615
  );
607
616
  return useSWRMutation__default.default("add-cart-lines", addLines, options);
608
617
  }
609
-
610
- // src/tracking/ga.ts
611
618
  var gaTrack = (data) => {
612
619
  if (typeof window === "undefined") {
613
620
  return;
@@ -625,18 +632,19 @@ var gaTrack = (data) => {
625
632
  };
626
633
  var trackAddToCartGA = ({
627
634
  lineItems = [],
628
- gtmParams = {},
629
- brand
635
+ gtmParams = {}
630
636
  }) => {
631
637
  if (!lineItems.length || !lineItems[0]?.variant) {
632
638
  return;
633
639
  }
634
640
  const { variant } = lineItems[0];
635
- const currencyCode = variant?.price?.currencyCode;
636
- const totalPrice = lineItems.reduce((sum, item) => {
637
- const price = parseFloat(item.variant?.price?.amount || "0");
638
- return sum + price;
639
- }, 0);
641
+ const currencyCode = variant.product?.price?.currencyCode;
642
+ const totalPrice = lineItems?.reduce(
643
+ (prev, { variant: variant2 }) => prev.plus(
644
+ variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? variant2?.price?.amount ?? 0
645
+ ),
646
+ new Decimal2__default.default(0)
647
+ ).toNumber();
640
648
  gaTrack({
641
649
  event: "ga4Event",
642
650
  event_name: "add_to_cart",
@@ -647,11 +655,11 @@ var trackAddToCartGA = ({
647
655
  position: gtmParams?.position || "",
648
656
  items: lineItems.map(({ variant: variant2, quantity }) => ({
649
657
  item_id: variant2?.sku,
650
- item_name: variant2?.product?.title || variant2?.product?.name,
651
- item_brand: brand || gtmParams?.brand || "",
658
+ item_name: variant2?.product?.title || variant2?.product?.title,
659
+ item_brand: gtmParams?.brand || "",
652
660
  item_category: variant2?.product?.productType || "",
653
- item_variant: variant2?.title || variant2?.name,
654
- price: variant2?.finalPrice?.amount ?? variant2?.price?.amount,
661
+ item_variant: variant2?.title || variant2?.title,
662
+ price: variant2?.compareAtPrice?.amount ?? variant2?.price?.amount,
655
663
  quantity: quantity || 1
656
664
  })),
657
665
  ...gtmParams?.ga4Params
@@ -660,19 +668,19 @@ var trackAddToCartGA = ({
660
668
  };
661
669
  var trackBuyNowGA = ({
662
670
  lineItems = [],
663
- gtmParams = {},
664
- brand
671
+ gtmParams = {}
665
672
  }) => {
666
673
  if (!lineItems.length || !lineItems[0]?.variant) {
667
674
  return;
668
675
  }
669
676
  const { variant } = lineItems[0];
670
677
  const currencyCode = variant.price?.currencyCode;
671
- const totalPrice = lineItems.reduce((sum, item) => {
672
- const price = parseFloat(item.finalPrice?.amount || item.variant?.price?.amount || "0");
673
- const quantity = item.quantity || 1;
674
- return sum + price * quantity;
675
- }, 0);
678
+ const totalPrice = lineItems?.reduce(
679
+ (prev, { variant: variant2 }) => prev.plus(
680
+ variant2?.finalPrice?.amount ?? variant2?.compareAtPrice?.amount ?? (variant2?.price?.amount || 0)
681
+ ),
682
+ new Decimal2__default.default(0)
683
+ ).toNumber();
676
684
  gaTrack({
677
685
  event: "ga4Event",
678
686
  event_name: "begin_checkout",
@@ -684,10 +692,10 @@ var trackBuyNowGA = ({
684
692
  items: lineItems.map((item) => ({
685
693
  item_id: item.variant?.sku,
686
694
  item_name: item.variant?.product?.title || item.variant?.title,
687
- item_brand: item.variant?.product?.vendor || brand || gtmParams?.brand || "",
695
+ item_brand: gtmParams?.brand || "",
688
696
  item_category: item.variant?.product?.productType || "",
689
697
  item_variant: item.variant?.title,
690
- price: item.finalPrice?.amount || item.variant?.price?.amount,
698
+ price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
691
699
  quantity: item.quantity || 1
692
700
  })),
693
701
  ...gtmParams?.ga4Params
@@ -701,10 +709,10 @@ var trackAddToCartFBQ = ({ lineItems = [] }) => {
701
709
  return;
702
710
  }
703
711
  if (lineItems.length && lineItems[0]?.variant) {
704
- const { variant, quantity, finalPrice } = lineItems[0];
712
+ const { variant, quantity } = lineItems[0];
705
713
  try {
706
714
  window.fbq("track", "AddToCart", {
707
- value: finalPrice?.amount || variant?.price?.amount,
715
+ value: variant?.compareAtPrice?.amount ?? (variant?.price?.amount || variant?.price || 0),
708
716
  num_items: quantity,
709
717
  currency: variant?.price?.currencyCode,
710
718
  content_name: variant?.product?.title,
@@ -791,9 +799,9 @@ function useRemoveCartCodes(options) {
791
799
  }
792
800
 
793
801
  // src/hooks/cart/use-add-to-cart.ts
794
- function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
795
- const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
796
- const { mutateCart, cart, metafieldIdentifiers } = useCartContext();
802
+ function useAddToCart({ withTrack = true } = {}, swrOptions) {
803
+ const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
804
+ const { cart } = useCartContext();
797
805
  const { trigger: applyCartCodes } = useApplyCartCodes();
798
806
  const { trigger: removeInvalidCodes } = useRemoveCartCodes();
799
807
  const { trigger: addCartLines2 } = useAddCartLines();
@@ -815,7 +823,8 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
815
823
  const lines = lineItems.map((item) => ({
816
824
  merchandiseId: item.variant?.id || "",
817
825
  quantity: item.quantity || 1,
818
- attributes: item.attributes
826
+ attributes: item.attributes,
827
+ sellingPlanId: item.sellingPlanId
819
828
  })).filter((item) => item.merchandiseId && item.quantity);
820
829
  if (lines.length === 0) {
821
830
  return;
@@ -850,34 +859,16 @@ function useAddToCart({ withTrack = true, brand } = {}, swrOptions) {
850
859
  discountCodes
851
860
  });
852
861
  }
853
- if (withTrack && resultCart.lineItems) {
854
- const trackingLineItems = resultCart.lineItems.map((line) => ({
855
- variant: {
856
- id: line.variant.id,
857
- sku: line.variant.sku || "",
858
- title: line.variant.name,
859
- price: {
860
- amount: String(line.variant.price),
861
- currencyCode: resultCart.currency.code
862
- },
863
- product: line.product ? {
864
- title: line.product.title || line.name,
865
- productType: line.product.productType,
866
- vendor: line.product.vendor
867
- } : void 0
868
- },
869
- quantity: line.quantity
870
- }));
862
+ if (withTrack) {
871
863
  trackAddToCartGA({
872
- lineItems: trackingLineItems,
873
- gtmParams: { ...gtmParams, brand },
874
- brand
864
+ lineItems,
865
+ gtmParams: { ...gtmParams, brand: config.getBrand() }
875
866
  });
876
- trackAddToCartFBQ({ lineItems: trackingLineItems });
867
+ trackAddToCartFBQ({ lineItems });
877
868
  }
878
869
  return resultCart;
879
870
  },
880
- [client, locale, cartCookieAdapter, userAdapter, cart, withTrack, brand]
871
+ [client, locale, cartCookieAdapter, userAdapter, cart, withTrack]
881
872
  );
882
873
  return useSWRMutation__default.default("add-to-cart", addToCart, swrOptions);
883
874
  }
@@ -958,8 +949,8 @@ function useUpdateCartAttributes(mutate, metafieldIdentifiers, options) {
958
949
  );
959
950
  return useSWRMutation__default.default("update-cart-attributes", updateAttributes, options);
960
951
  }
961
- function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
962
- const { client, locale, cartCookieAdapter, userAdapter } = useShopify();
952
+ function useBuyNow({ withTrack = true } = {}, swrOptions) {
953
+ const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
963
954
  const isLoggedIn = userAdapter?.isLoggedIn || false;
964
955
  const buyNow = react.useCallback(
965
956
  async (_key, { arg }) => {
@@ -977,9 +968,10 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
977
968
  return;
978
969
  }
979
970
  const lines = lineItems.map((item) => ({
980
- merchandiseId: item.variant?.id || item.variantId || "",
971
+ merchandiseId: item.variant?.id || "",
981
972
  quantity: item.quantity || 1,
982
- attributes: item.attributes
973
+ attributes: item.attributes,
974
+ sellingPlanId: item.sellingPlanId
983
975
  })).filter((item) => item.merchandiseId && item.quantity);
984
976
  if (lines.length === 0) {
985
977
  return;
@@ -996,27 +988,9 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
996
988
  throw new Error("Failed to create cart for buy now");
997
989
  }
998
990
  if (withTrack && resultCart.lineItems) {
999
- const trackingLineItems = resultCart.lineItems.map((line) => ({
1000
- variant: {
1001
- id: line.variantId,
1002
- sku: line.variant.sku || "",
1003
- title: line.variant.name,
1004
- price: {
1005
- amount: String(line.variant.price),
1006
- currencyCode: resultCart.currency.code
1007
- },
1008
- product: line.product ? {
1009
- title: line.product.title || line.name,
1010
- productType: line.product.productType,
1011
- vendor: line.product.vendor
1012
- } : void 0
1013
- },
1014
- quantity: line.quantity
1015
- }));
1016
991
  trackBuyNowGA({
1017
- lineItems: trackingLineItems,
1018
- gtmParams: { ...gtmParams, brand },
1019
- brand
992
+ lineItems,
993
+ gtmParams: { ...gtmParams, brand: config.getBrand() }
1020
994
  });
1021
995
  if (fbqTrackConfig) {
1022
996
  trackBuyNowFBQ({ trackConfig: fbqTrackConfig });
@@ -1033,7 +1007,7 @@ function useBuyNow({ withTrack = true, brand } = {}, swrOptions) {
1033
1007
  }
1034
1008
  return resultCart;
1035
1009
  },
1036
- [client, locale, isLoggedIn, cartCookieAdapter, withTrack, brand]
1010
+ [client, locale, isLoggedIn, cartCookieAdapter, withTrack]
1037
1011
  );
1038
1012
  return useSWRMutation__default.default("buy-now", buyNow, swrOptions);
1039
1013
  }
@@ -2542,11 +2516,43 @@ function useAutoRemovePlusMemberInCart({
2542
2516
  removeCartLines2
2543
2517
  ]);
2544
2518
  }
2519
+ function useAddPlusMemberProductsToCart({
2520
+ cart,
2521
+ memberSetting,
2522
+ selectedPlusMemberMode,
2523
+ selectedPlusMemberProduct
2524
+ }) {
2525
+ const { hasMonthlyPlus, hasAnnualPlus } = useHasPlusMemberInCart({
2526
+ cart,
2527
+ memberSetting
2528
+ });
2529
+ const plusMemberProduct = react.useMemo(() => {
2530
+ if (selectedPlusMemberMode === "free" /* FREE */) {
2531
+ return void 0;
2532
+ }
2533
+ if (selectedPlusMemberMode === "monthly" /* MONTHLY */ && hasMonthlyPlus) {
2534
+ return void 0;
2535
+ }
2536
+ if (selectedPlusMemberMode === "annual" /* ANNUAL */ && hasAnnualPlus) {
2537
+ return void 0;
2538
+ }
2539
+ if (!selectedPlusMemberProduct) {
2540
+ return void 0;
2541
+ }
2542
+ return selectedPlusMemberProduct;
2543
+ }, [
2544
+ selectedPlusMemberMode,
2545
+ selectedPlusMemberProduct?.variant,
2546
+ selectedPlusMemberProduct?.product,
2547
+ hasMonthlyPlus,
2548
+ hasAnnualPlus
2549
+ ]);
2550
+ return plusMemberProduct;
2551
+ }
2545
2552
  var PlusMemberProvider = ({
2546
2553
  variant,
2547
2554
  product,
2548
- shopCommon,
2549
- metafields,
2555
+ memberSetting,
2550
2556
  initialSelectedPlusMemberMode = "free",
2551
2557
  profile,
2552
2558
  locale,
@@ -2566,14 +2572,14 @@ var PlusMemberProvider = ({
2566
2572
  const [deleteMarginBottom, setDeleteMarginBottom] = react.useState(false);
2567
2573
  const shippingMethodsContext = useShippingMethods({
2568
2574
  variant,
2569
- plusMemberMetafields: metafields,
2575
+ plusMemberMetafields: memberSetting,
2570
2576
  selectedPlusMemberMode});
2571
2577
  const plusMemberHandles = react.useMemo(() => {
2572
2578
  return [
2573
- metafields?.plus_monthly_product?.handle,
2574
- metafields?.plus_annual_product?.handle
2579
+ memberSetting?.plus_monthly_product?.handle,
2580
+ memberSetting?.plus_annual_product?.handle
2575
2581
  ].filter(Boolean);
2576
- }, [metafields]);
2582
+ }, [memberSetting]);
2577
2583
  const { data: plusMemberProducts = [] } = useProductsByHandles({
2578
2584
  handles: plusMemberHandles
2579
2585
  });
@@ -2581,25 +2587,24 @@ var PlusMemberProvider = ({
2581
2587
  if (selectedPlusMemberMode === "free" /* FREE */) {
2582
2588
  return null;
2583
2589
  }
2584
- const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? metafields?.plus_monthly_product?.handle : metafields?.plus_annual_product?.handle;
2585
- const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? metafields?.plus_monthly_product?.sku : metafields?.plus_annual_product?.sku;
2590
+ const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.handle : memberSetting?.plus_annual_product?.handle;
2591
+ const sku = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? memberSetting?.plus_monthly_product?.sku : memberSetting?.plus_annual_product?.sku;
2586
2592
  const product2 = plusMemberProducts?.find((p) => p.handle === handle);
2587
2593
  const variant2 = product2?.variants?.find((v) => v.sku === sku);
2588
2594
  return product2 && variant2 ? { product: product2, variant: variant2 } : null;
2589
- }, [plusMemberProducts, metafields, selectedPlusMemberMode]);
2595
+ }, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
2590
2596
  return /* @__PURE__ */ jsxRuntime.jsx(
2591
2597
  PlusMemberContext.Provider,
2592
2598
  {
2593
2599
  value: {
2594
2600
  variant,
2595
- shopCommon,
2596
2601
  zipCode,
2597
2602
  setZipCode,
2598
2603
  allowNextDayDelivery,
2599
2604
  setAllowNextDayDelivery,
2600
2605
  allowThirdDayDelivery,
2601
2606
  setAllowThirdDayDelivery,
2602
- plusMemberMetafields: metafields,
2607
+ plusMemberMetafields: memberSetting,
2603
2608
  selectedPlusMemberMode,
2604
2609
  setSelectedPlusMemberMode,
2605
2610
  showAreaCheckModal,
@@ -2825,6 +2830,7 @@ exports.ShippingMethodMode = ShippingMethodMode;
2825
2830
  exports.SpendMoneyType = SpendMoneyType;
2826
2831
  exports.atobID = atobID;
2827
2832
  exports.btoaID = btoaID;
2833
+ exports.checkAttributesUpdateNeeded = checkAttributesUpdateNeeded;
2828
2834
  exports.clearGeoLocationCache = clearGeoLocationCache;
2829
2835
  exports.currencyCodeMapping = currencyCodeMapping;
2830
2836
  exports.defaultSWRMutationConfiguration = defaultSWRMutationConfiguration;
@@ -2835,10 +2841,10 @@ exports.getDiscountEnvAttributeValue = getDiscountEnvAttributeValue;
2835
2841
  exports.getMatchedMainProductSubTotal = getMatchedMainProductSubTotal;
2836
2842
  exports.getQuery = getQuery;
2837
2843
  exports.getReferralAttributes = getReferralAttributes;
2838
- exports.isAttributesEqual = isAttributesEqual;
2839
2844
  exports.preCheck = preCheck;
2840
- exports.safeParseJson = safeParseJson;
2845
+ exports.safeParse = safeParse;
2841
2846
  exports.useAddCartLines = useAddCartLines;
2847
+ exports.useAddPlusMemberProductsToCart = useAddPlusMemberProductsToCart;
2842
2848
  exports.useAddToCart = useAddToCart;
2843
2849
  exports.useAllBlogs = useAllBlogs;
2844
2850
  exports.useAllCollections = useAllCollections;