@anker-in/shopify-react 0.1.1-beta.1 → 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,4 +1,4 @@
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, bl as GeoLocationData, G as GiftProduct, E as GiftProductItem, y as GiftTier, bd as HasPlusMemberInCartResult, au as ImageMedia, bm 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, bg as PlusMemberProvider, bf 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, 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, bj as UseExposureOptions, bn as UseGeoLocationOptions, bc as UseHasPlusMemberInCartProps, bh 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, bq as clearGeoLocationCache, _ as currencyCodeMapping, $ as defaultSWRMutationConfiguration, ae as formatFunctionAutoFreeGift, ad as formatScriptAutoFreeGift, bp as getCachedGeoLocation, a9 as getDiscountEnvAttributeValue, a8 as getMatchedMainProductSubTotal, a5 as getQuery, m as getReferralAttributes, aa as isAttributesEqual, ac as preCheck, ab as safeParseJson, a as useAddCartLines, 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, bk as useExposure, bo as useGeoLocation, be as useHasPlusMemberInCart, bi 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-RevQokdZ.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
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';
@@ -1,4 +1,4 @@
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, bl as GeoLocationData, G as GiftProduct, E as GiftProductItem, y as GiftTier, bd as HasPlusMemberInCartResult, au as ImageMedia, bm 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, bg as PlusMemberProvider, bf 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, 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, bj as UseExposureOptions, bn as UseGeoLocationOptions, bc as UseHasPlusMemberInCartProps, bh 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, bq as clearGeoLocationCache, _ as currencyCodeMapping, $ as defaultSWRMutationConfiguration, ae as formatFunctionAutoFreeGift, ad as formatScriptAutoFreeGift, bp as getCachedGeoLocation, a9 as getDiscountEnvAttributeValue, a8 as getMatchedMainProductSubTotal, a5 as getQuery, m as getReferralAttributes, aa as isAttributesEqual, ac as preCheck, ab as safeParseJson, a as useAddCartLines, 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, bk as useExposure, bo as useGeoLocation, be as useHasPlusMemberInCart, bi 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-CCMIeIUh.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
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';
@@ -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
  );
@@ -630,8 +639,12 @@ var trackAddToCartGA = ({
630
639
  }
631
640
  const { variant } = lineItems[0];
632
641
  const currencyCode = variant.product?.price?.currencyCode;
633
- const price = variant.compareAtPrice?.amount ?? (variant.price?.amount || 0);
634
- const totalPrice = lineItems?.reduce((prev, { variant: variant2 }) => prev.plus(variant2?.finalPrice?.amount ?? price), new Decimal2__default.default(0)).toNumber();
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();
635
648
  gaTrack({
636
649
  event: "ga4Event",
637
650
  event_name: "add_to_cart",
@@ -646,7 +659,7 @@ var trackAddToCartGA = ({
646
659
  item_brand: gtmParams?.brand || "",
647
660
  item_category: variant2?.product?.productType || "",
648
661
  item_variant: variant2?.title || variant2?.title,
649
- price,
662
+ price: variant2?.compareAtPrice?.amount ?? variant2?.price?.amount,
650
663
  quantity: quantity || 1
651
664
  })),
652
665
  ...gtmParams?.ga4Params
@@ -662,8 +675,12 @@ var trackBuyNowGA = ({
662
675
  }
663
676
  const { variant } = lineItems[0];
664
677
  const currencyCode = variant.price?.currencyCode;
665
- const price = variant.compareAtPrice?.amount ?? (variant.price?.amount || 0);
666
- const totalPrice = lineItems?.reduce((prev, { variant: variant2 }) => prev.plus(variant2?.finalPrice?.amount ?? price), new Decimal2__default.default(0)).toNumber();
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();
667
684
  gaTrack({
668
685
  event: "ga4Event",
669
686
  event_name: "begin_checkout",
@@ -678,7 +695,7 @@ var trackBuyNowGA = ({
678
695
  item_brand: gtmParams?.brand || "",
679
696
  item_category: item.variant?.product?.productType || "",
680
697
  item_variant: item.variant?.title,
681
- price,
698
+ price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
682
699
  quantity: item.quantity || 1
683
700
  })),
684
701
  ...gtmParams?.ga4Params
@@ -2499,11 +2516,43 @@ function useAutoRemovePlusMemberInCart({
2499
2516
  removeCartLines2
2500
2517
  ]);
2501
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
+ }
2502
2552
  var PlusMemberProvider = ({
2503
2553
  variant,
2504
2554
  product,
2505
- shopCommon,
2506
- metafields,
2555
+ memberSetting,
2507
2556
  initialSelectedPlusMemberMode = "free",
2508
2557
  profile,
2509
2558
  locale,
@@ -2523,14 +2572,14 @@ var PlusMemberProvider = ({
2523
2572
  const [deleteMarginBottom, setDeleteMarginBottom] = react.useState(false);
2524
2573
  const shippingMethodsContext = useShippingMethods({
2525
2574
  variant,
2526
- plusMemberMetafields: metafields,
2575
+ plusMemberMetafields: memberSetting,
2527
2576
  selectedPlusMemberMode});
2528
2577
  const plusMemberHandles = react.useMemo(() => {
2529
2578
  return [
2530
- metafields?.plus_monthly_product?.handle,
2531
- metafields?.plus_annual_product?.handle
2579
+ memberSetting?.plus_monthly_product?.handle,
2580
+ memberSetting?.plus_annual_product?.handle
2532
2581
  ].filter(Boolean);
2533
- }, [metafields]);
2582
+ }, [memberSetting]);
2534
2583
  const { data: plusMemberProducts = [] } = useProductsByHandles({
2535
2584
  handles: plusMemberHandles
2536
2585
  });
@@ -2538,25 +2587,24 @@ var PlusMemberProvider = ({
2538
2587
  if (selectedPlusMemberMode === "free" /* FREE */) {
2539
2588
  return null;
2540
2589
  }
2541
- const handle = selectedPlusMemberMode === "monthly" /* MONTHLY */ ? metafields?.plus_monthly_product?.handle : metafields?.plus_annual_product?.handle;
2542
- 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;
2543
2592
  const product2 = plusMemberProducts?.find((p) => p.handle === handle);
2544
2593
  const variant2 = product2?.variants?.find((v) => v.sku === sku);
2545
2594
  return product2 && variant2 ? { product: product2, variant: variant2 } : null;
2546
- }, [plusMemberProducts, metafields, selectedPlusMemberMode]);
2595
+ }, [plusMemberProducts, memberSetting, selectedPlusMemberMode]);
2547
2596
  return /* @__PURE__ */ jsxRuntime.jsx(
2548
2597
  PlusMemberContext.Provider,
2549
2598
  {
2550
2599
  value: {
2551
2600
  variant,
2552
- shopCommon,
2553
2601
  zipCode,
2554
2602
  setZipCode,
2555
2603
  allowNextDayDelivery,
2556
2604
  setAllowNextDayDelivery,
2557
2605
  allowThirdDayDelivery,
2558
2606
  setAllowThirdDayDelivery,
2559
- plusMemberMetafields: metafields,
2607
+ plusMemberMetafields: memberSetting,
2560
2608
  selectedPlusMemberMode,
2561
2609
  setSelectedPlusMemberMode,
2562
2610
  showAreaCheckModal,
@@ -2782,6 +2830,7 @@ exports.ShippingMethodMode = ShippingMethodMode;
2782
2830
  exports.SpendMoneyType = SpendMoneyType;
2783
2831
  exports.atobID = atobID;
2784
2832
  exports.btoaID = btoaID;
2833
+ exports.checkAttributesUpdateNeeded = checkAttributesUpdateNeeded;
2785
2834
  exports.clearGeoLocationCache = clearGeoLocationCache;
2786
2835
  exports.currencyCodeMapping = currencyCodeMapping;
2787
2836
  exports.defaultSWRMutationConfiguration = defaultSWRMutationConfiguration;
@@ -2792,10 +2841,10 @@ exports.getDiscountEnvAttributeValue = getDiscountEnvAttributeValue;
2792
2841
  exports.getMatchedMainProductSubTotal = getMatchedMainProductSubTotal;
2793
2842
  exports.getQuery = getQuery;
2794
2843
  exports.getReferralAttributes = getReferralAttributes;
2795
- exports.isAttributesEqual = isAttributesEqual;
2796
2844
  exports.preCheck = preCheck;
2797
- exports.safeParseJson = safeParseJson;
2845
+ exports.safeParse = safeParse;
2798
2846
  exports.useAddCartLines = useAddCartLines;
2847
+ exports.useAddPlusMemberProductsToCart = useAddPlusMemberProductsToCart;
2799
2848
  exports.useAddToCart = useAddToCart;
2800
2849
  exports.useAllBlogs = useAllBlogs;
2801
2850
  exports.useAllCollections = useAllCollections;