@gem-sdk/components 17.0.0-dev.45 → 17.0.0-dev.47

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 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./common/styles.js");require("@gem-sdk/swiper/element/bundle").register(),exports.Swiper=function(s){let i=r.useRef(null),{children:n,totalSlides:u,onSwiperReset:c,onSwiperReady:p,sliderClass:l,sliderOrder:w,thumbsSwiper:a,...f}=s,o=JSON.stringify(f),d=r.useMemo(()=>a?{"thumbs-swiper":a}:{},[a]),m=t.getStyleSwiperContainer(),y=r.useCallback(()=>{i.current?.swiper&&i.current.swiper.wrapperEl.style.setProperty("width",`${i.current.swiper.width}px`)},[]);return r.useEffect(()=>{let e=i.current;if(e)return Object.assign(e,f),e.initialize?.(),p?.(e.swiper),y(),e.swiper.on("resize",y),()=>{e.swiper.off("resize",y),c()}},[]),r.useEffect(()=>{let e=i.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,f),r.update(),y())},[o]),r.useEffect(()=>{c()},[w,c]),e.jsx("swiper-container",{init:!1,ref:i,class:l,style:{...m},...d,children:n})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./common/styles.js"),s=require("@gem-sdk/swiper/element/bundle"),i=require("@gem-sdk/core");s.register(),exports.Swiper=function(s){let n=r.useRef(null),{children:u,totalSlides:c,onSwiperReset:l,onSwiperReady:p,sliderClass:w,sliderOrder:o,thumbsSwiper:a,...f}=s,{isEditMode:d}=i.useRenderMode(),g=JSON.stringify(f),m=r.useMemo(()=>a?{"thumbs-swiper":a}:{},[a]),b=t.getStyleSwiperContainer(),h=r.useCallback(({width:e}={})=>{n.current?.swiper&&n.current.swiper.wrapperEl.style.setProperty("width",`${e??n.current.swiper.width}px`)},[]);return r.useEffect(()=>{let e=n.current;if(e){if(Object.assign(e,f),e.initialize?.(),p?.(e.swiper),h(),d){let r=new ResizeObserver(r=>{r.forEach(r=>{r.target===e&&h({width:r.contentRect.width})})});return r.observe(e),()=>{r.disconnect()}}return e.swiper.on("resize",h),()=>{e.swiper.off("resize",h),l()}}},[]),r.useEffect(()=>{let e=n.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,f),r.update(),h())},[g]),r.useEffect(()=>{l()},[o,l]),e.jsx("swiper-container",{init:!1,ref:n,class:w,style:{...b},...m,children:u})};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var e=require("react/jsx-runtime"),r=require("@gem-sdk/core"),t=require("react"),s=require("../../../../../grid/components/row/Row.js"),i=require("../../../../../grid/components/ChildrenDroppable.js"),d=require("@gem-sdk/system"),c=require("../common/attrs.js"),n=require("../common/classes.js"),u=require("../context/PrdOfferSubscriptionPresenceContext.js");exports.ProductOfferItem=o=>{let{product:l,setting:a,builderProps:f,children:m,index:j,totalProduct:x,builderAttrs:P,styles:p}=o,{isEditMode:q}=r.useRenderMode(),{variantSelected:h,productOfferLayout:g,layout:O,...b}=a??{};Object.keys(O||{}).forEach(e=>{g?.[e]==="2col"&&O?.[e]&&(O[e].display="fill")});let v=h?.[l?.baseID??""]?.variantId,y=d.createAttr({...c.getProductOfferAttrs(l,f?.uid)}),C=d.createClass({...n.getProductOfferItemClasses(j,a,x)}),I=t.useRef(null),R=e.jsx("div",{ref:I,...q?{...y}:{},children:e.jsx(s.default,{builderAttrs:P,setting:{...b,layout:O},styles:p,children:r.isEmptyChildren(m)?e.jsx(i.default,{}):m})});return e.jsx("div",{className:C,children:e.jsx(r.ProductProvider,{product:l,readOnly:!0,initialVariantId:v??"Latest",uid:f?.uid,children:q?e.jsx(u.ProductOfferSubscriptionPresenceProvider,{containerRef:I,children:R}):R})},`uid-${l?.id}`)};
2
+ "use strict";var e=require("react/jsx-runtime"),r=require("@gem-sdk/core"),t=require("react"),s=require("../../../../../grid/components/row/Row.js"),i=require("../../../../../grid/components/ChildrenDroppable.js"),d=require("@gem-sdk/system"),c=require("../common/attrs.js"),n=require("../common/classes.js"),u=require("../context/PrdOfferSubscriptionPresenceContext.js");exports.ProductOfferItem=o=>{let{product:l,setting:a,builderProps:f,children:m,index:j,totalProduct:x,builderAttrs:P,styles:p}=o,{isEditMode:q}=r.useRenderMode(),{variantSelected:h,productOfferLayout:g,layout:O,...b}=a??{};Object.keys(O||{}).forEach(e=>{g?.[e]==="2col"&&O?.[e]&&(O[e].display="fill")});let v=h?.[l?.baseID??""]?.variantId,y=d.createAttr({...c.getProductOfferAttrs(l,f?.uid)}),C=d.createClass({...n.getProductOfferItemClasses(j,a,x)}),I=t.useRef(null),R=e.jsx("div",{ref:I,...q?{...y}:{},children:e.jsx(s.default,{builderAttrs:P,setting:{...b,layout:O},styles:p,children:r.isEmptyChildren(m)?e.jsx(i.default,{}):m})});return e.jsx("div",{className:C,children:e.jsx(r.ProductProvider,{product:l,readOnly:!0,initialVariantId:v??"Latest",uid:f?.uid,children:e.jsx(u.ProductOfferSubscriptionPresenceProvider,{containerRef:I,children:R})})},`uid-${l?.id}`)};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),i=require("@gem-sdk/core"),s=require("../../../constants/index.js"),n=require("../../product-offer/context/PrdOfferSubscriptionPresenceContext.js"),u=require("./useSellingPlanOptions.js"),r=require("../../../hooks/useSubscriptionSellingType.js");exports.useSubscriptionVisibility=({setting:t})=>{let{isEditMode:o}=i.useRenderMode(),l=i.useProductStore(e=>e.setSubscriptionSellingType),{isOneTime:S,subscriptionSellingType:c}=r.useSubscriptionSellingType(),p=u.useSellingPlanOptions(t),E=i.useProduct(),T=n.useProductOfferSubscriptionPresence(),b=p&&p.length>0,O=T?.hasBoth??!1,g=e.useMemo(()=>E?.requiresSellingPlan,[E?.requiresSellingPlan]),m=e.useMemo(()=>S?s.SubscriptionEnum.ONE_TIME:s.SubscriptionEnum.SUBSCRIPTION,[S]);e.useEffect(()=>{c||(t?.sellingType===s.SubscriptionEnum.ONE_TIME?l(s.SubscriptionEnum.ONE_TIME):l(t?.sellingType??s.SubscriptionEnum.SUBSCRIPTION))},[l,t?.sellingType,c]);let P=o&&!!T?.hasSubscriptionBlock&&!T?.hasOneTimeBlock&&c===s.SubscriptionEnum.ONE_TIME;e.useEffect(()=>{P&&l(s.SubscriptionEnum.SUBSCRIPTION)},[l,P]);let I=!o||O,a=t?.sellingType===s.SubscriptionEnum.SUBSCRIPTION&&!b,d=t?.sellingType===s.SubscriptionEnum.ONE_TIME&&g;return{selectedType:m,shouldShowRadio:!g&&b&&I,isOneTimeHidden:d,requiresSellingPlan:g,isOnetimeOnly:!b&&!g,hasNoSellingPlanOptions:a,setSubscriptionSellingType:l}};
1
+ "use strict";var e=require("react"),i=require("@gem-sdk/core"),s=require("../../../constants/index.js"),n=require("../../product-offer/context/PrdOfferSubscriptionPresenceContext.js"),u=require("./useSellingPlanOptions.js"),r=require("../../../hooks/useSubscriptionSellingType.js");exports.useSubscriptionVisibility=({setting:t})=>{let o=i.useProductStore(e=>e.setSubscriptionSellingType),{isOneTime:l,subscriptionSellingType:S}=r.useSubscriptionSellingType(),c=u.useSellingPlanOptions(t),p=i.useProduct(),E=n.useProductOfferSubscriptionPresence(),T=c&&c.length>0,b=void 0!==E,O=e.useMemo(()=>void 0===E||E.hasBoth,[E]),m=e.useMemo(()=>p?.requiresSellingPlan,[p?.requiresSellingPlan]),g=e.useMemo(()=>l?s.SubscriptionEnum.ONE_TIME:s.SubscriptionEnum.SUBSCRIPTION,[l]);e.useEffect(()=>{S||(t?.sellingType===s.SubscriptionEnum.ONE_TIME?o(s.SubscriptionEnum.ONE_TIME):o(t?.sellingType??s.SubscriptionEnum.SUBSCRIPTION))},[o,t?.sellingType,S]);let P=b&&!!E?.hasSubscriptionBlock&&!E?.hasOneTimeBlock&&S===s.SubscriptionEnum.ONE_TIME;e.useEffect(()=>{P&&o(s.SubscriptionEnum.SUBSCRIPTION)},[o,P]);let I=t?.sellingType===s.SubscriptionEnum.SUBSCRIPTION&&!T,a=t?.sellingType===s.SubscriptionEnum.ONE_TIME&&m;return{selectedType:g,shouldShowRadio:!m&&T&&O,isOneTimeHidden:a,requiresSellingPlan:m,isOnetimeOnly:!T&&!m,hasNoSellingPlanOptions:I,setSubscriptionSellingType:o}};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let u=e.useRef(null),s=e.useRef(!1),[n,i]=e.useState(!1),[l,c]=e.useState(!1),[o,a]=e.useState(!1),m=t.useProduct(),d=t.useCurrentDevice(),f=t.getResponsiveValueByScreen(r?.hasLineClamp,d),p=t.getResponsiveValueByScreen(r?.lineClamp,d),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),h=t.useEditorMode(),y=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),H=e.useCallback(e=>f&&p&&e||"auto",[f,p]),v=e.useCallback(()=>{if(!u.current)return;let e=!n;s.current=e,u.current.style.maxHeight=e?"none":y(),i(e)},[n,y]);return e.useEffect(()=>{H(y())},[r?.typo?.custom,H,y]),e.useEffect(()=>{let e=u.current;if(s.current=!1,i(!1),a(!1),!e)return;if(!f||!m?.descriptionHtml||!p){e.style.maxHeight="none",c(!1),a(!0);return}let t=()=>{if(s.current){e.style.maxHeight="none";return}e.style.maxHeight=y();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),c(t),a(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[f,p,m?.descriptionHtml,y]),{ref:u,open:n,isShowViewMore:l,isOverflowChecked:o,handleToggleShowMore:v,mode:h,redirectProductShopifyLink:g}};
1
+ "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let u=e.useRef(null),s=e.useRef(!1),[n,i]=e.useState(!1),[l,c]=e.useState(!1),[o,a]=e.useState(!1),m=t.useProduct(),d=t.useCurrentDevice(),f=t.getResponsiveValueByScreen(r?.hasLineClamp,d),p=t.getResponsiveValueByScreen(r?.lineClamp,d),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),h=t.useEditorMode(),y=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),H=e.useCallback(e=>f&&p&&e||"auto",[f,p]),v=e.useCallback(()=>{if(!u.current)return;let e=!n;s.current=e,u.current.style.maxHeight=e?"none":y(),i(e)},[n,y]);return e.useEffect(()=>{H(y())},[r?.typo?.custom,H,y]),e.useEffect(()=>{let e=u.current;if(s.current=!1,i(!1),a(!1),!e)return;if(!f||!m?.descriptionHtml||!p){e.style.maxHeight="none",c(!1),a(!0);return}let t=()=>{if(s.current){e.style.maxHeight="none";return}e.style.maxHeight=y();let t=e.scrollHeight-e.clientHeight>1;t||(e.style.maxHeight="none"),c(t),a(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[f,p,m?.descriptionHtml,y]),{ref:u,open:n,isShowViewMore:l,isOverflowChecked:o,handleToggleShowMore:v,mode:h,redirectProductShopifyLink:g}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("react");exports.default=o=>{let{width:s,position:l}=o??{},{desktop:r,tablet:i,mobile:b}=o?.display||{},p=e.makeStyleResponsive("w",s),a=e.usePageStore(e=>"interaction"===e.sidebarMode),u=e.useCurrentDevice(),[d,n]=t.useState(!1),m=e.useStickyStore(e=>e.getFirstVisibleElement(u)),k=(e,t)=>({[`--left${t}`]:"top"==e?"0":"50%",[`--t${t}`]:"top"==e?"unset":"translateX(-50%)"}),c=t.useMemo(()=>({...k(l?.desktop,""),...k(l?.tablet??l?.desktop,"-tablet"),...k(l?.mobile??l?.tablet??l?.desktop,"-mobile")}),[l?.desktop,l?.mobile,l?.tablet]),f=t.useMemo(()=>{if(a&&l?.[u]==="top")return"40px"},[u,a,l]),x=t.useMemo(()=>{let e=e=>"after-first-cart-button"!==e||d?"block":"none";return{"--d":e(r),"--d-tablet":e(i??r),"--d-mobile":e(b??i??r)}},[r,i,b,d]),M=t.useMemo(()=>({"--top":f??"auto","--top-tablet":f??"auto","--top-mobile":f??"auto",[`--${l?.desktop}`]:f??"0px",[`--${l?.tablet??l?.desktop}-tablet`]:f??"0px",[`--${l?.mobile??l?.tablet??l?.desktop}-mobile`]:f??"0px"}),[f,l?.desktop,l?.mobile,l?.tablet]),v=e=>"top"==e?"sticky":"fixed",g=t.useMemo(()=>({"--pos":v(l?.desktop),"--pos-tablet":v(l?.tablet??l?.desktop),"--pos-mobile":v(l?.mobile??l?.tablet??l?.desktop)}),[l?.desktop,l?.mobile,l?.tablet]);return t.useEffect(()=>{if(!m)return;let e=new IntersectionObserver(([e])=>{e&&n(e.isIntersecting||e.boundingClientRect.top<=0)});return e.observe(m),()=>e.disconnect()},[m,u]),{w:p,displayStyle:M,positionStyle:g,getCSSAlign:c,makeDisplaySettingStyles:x}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("react");exports.default=o=>{let{width:s,position:l}=o??{},{desktop:i,tablet:r,mobile:b}=o?.display||{},n=e.makeStyleResponsive("w",s),p=e.usePageStore(e=>"interaction"===e.sidebarMode),a=e.useCurrentDevice(),[u,d]=t.useState(!1),m=e.useStickyStore(e=>e.getFirstVisibleElement(a)),c=(e,t)=>({[`--left${t}`]:"top"==e?"0":"50%",[`--t${t}`]:"top"==e?"unset":"translateX(-50%)"}),k=t.useMemo(()=>({...c(l?.desktop,""),...c(l?.tablet??l?.desktop,"-tablet"),...c(l?.mobile??l?.tablet??l?.desktop,"-mobile")}),[l?.desktop,l?.mobile,l?.tablet]),f=t.useMemo(()=>{if(p&&l?.[a]==="top")return"40px"},[a,p,l]),g=t.useMemo(()=>{let e=e=>"after-first-cart-button"!==e||u?"block":"none";return{"--d":e(i),"--d-tablet":e(r??i),"--d-mobile":e(b??r??i)}},[i,r,b,u]),v=t.useMemo(()=>({"--top":f??"auto","--top-tablet":f??"auto","--top-mobile":f??"auto",[`--${l?.desktop}`]:f??"0px",[`--${l?.tablet??l?.desktop}-tablet`]:f??"0px",[`--${l?.mobile??l?.tablet??l?.desktop}-mobile`]:f??"0px"}),[f,l?.desktop,l?.mobile,l?.tablet]),x=e=>"top"==e?"sticky":"fixed",M=t.useMemo(()=>({"--pos":x(l?.desktop),"--pos-tablet":x(l?.tablet??l?.desktop),"--pos-mobile":x(l?.mobile??l?.tablet??l?.desktop)}),[l?.desktop,l?.mobile,l?.tablet]);return t.useEffect(()=>{if(!m)return;let e=new IntersectionObserver(([e])=>{if(!e)return;let t=e.isIntersecting,o=e.boundingClientRect.top<=0;d(t||o)});e.observe(m);let t=null,o=new ResizeObserver(()=>{t&&clearTimeout(t),t=setTimeout(()=>{let e=m.getBoundingClientRect(),t=e.top<window.innerHeight&&e.bottom>0,o=e.top<=0;d(t||o)},100)});return o.observe(m),()=>{e.disconnect(),o.disconnect(),t&&clearTimeout(t)}},[m]),{w:n,displayStyle:v,positionStyle:M,getCSSAlign:k,makeDisplaySettingStyles:g}};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useRef as r,useMemo as t,useCallback as i,useEffect as s}from"react";import{getStyleSwiperContainer as n}from"./common/styles.js";import{register as p}from"@gem-sdk/swiper/element/bundle";function o(p){let o=r(null),{children:c,totalSlides:l,onSwiperReset:m,onSwiperReady:w,sliderClass:u,sliderOrder:f,thumbsSwiper:a,...d}=p,y=JSON.stringify(d),b=t(()=>a?{"thumbs-swiper":a}:{},[a]),g=n(),h=i(()=>{o.current?.swiper&&o.current.swiper.wrapperEl.style.setProperty("width",`${o.current.swiper.width}px`)},[]);return s(()=>{let e=o.current;if(e)return Object.assign(e,d),e.initialize?.(),w?.(e.swiper),h(),e.swiper.on("resize",h),()=>{e.swiper.off("resize",h),m()}},[]),s(()=>{let e=o.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,d),r.update(),h())},[y]),s(()=>{m()},[f,m]),e("swiper-container",{init:!1,ref:o,class:u,style:{...g},...b,children:c})}p();export{o as Swiper};
1
+ import{jsx as e}from"react/jsx-runtime";import{useRef as r,useMemo as t,useCallback as i,useEffect as s}from"react";import{getStyleSwiperContainer as n}from"./common/styles.js";import{register as o}from"@gem-sdk/swiper/element/bundle";import{useRenderMode as p}from"@gem-sdk/core";function c(o){let c=r(null),{children:m,totalSlides:w,onSwiperReset:l,onSwiperReady:u,sliderClass:f,sliderOrder:d,thumbsSwiper:a,...h}=o,{isEditMode:b}=p(),g=JSON.stringify(h),y=t(()=>a?{"thumbs-swiper":a}:{},[a]),j=n(),z=i(({width:e}={})=>{c.current?.swiper&&c.current.swiper.wrapperEl.style.setProperty("width",`${e??c.current.swiper.width}px`)},[]);return s(()=>{let e=c.current;if(e){if(Object.assign(e,h),e.initialize?.(),u?.(e.swiper),z(),b){let r=new ResizeObserver(r=>{r.forEach(r=>{r.target===e&&z({width:r.contentRect.width})})});return r.observe(e),()=>{r.disconnect()}}return e.swiper.on("resize",z),()=>{e.swiper.off("resize",z),l()}}},[]),s(()=>{let e=c.current,r=e?.swiper;e&&r&&!r.destroyed&&(Object.assign(e,h),r.update(),z())},[g]),s(()=>{l()},[d,l]),e("swiper-container",{init:!1,ref:c,class:f,style:{...j},...y,children:m})}o();export{c as Swiper};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as r}from"react/jsx-runtime";import{useRenderMode as e,isEmptyChildren as t,ProductProvider as o}from"@gem-sdk/core";import{useRef as i}from"react";import m from"../../../../../grid/components/row/Row.js";import s from"../../../../../grid/components/ChildrenDroppable.js";import{createAttr as n,createClass as d}from"@gem-sdk/system";import{getProductOfferAttrs as c}from"../common/attrs.js";import{getProductOfferItemClasses as l}from"../common/classes.js";import{ProductOfferSubscriptionPresenceProvider as a}from"../context/PrdOfferSubscriptionPresenceContext.js";let f=f=>{let{product:p,setting:u,builderProps:h,children:j,index:b,totalProduct:g,builderAttrs:y,styles:x}=f,{isEditMode:I}=e(),{variantSelected:O,productOfferLayout:k,layout:v,...P}=u??{};Object.keys(v||{}).forEach(r=>{k?.[r]==="2col"&&v?.[r]&&(v[r].display="fill")});let w=O?.[p?.baseID??""]?.variantId,C=n({...c(p,h?.uid)}),D=d({...l(b,u,g)}),R=i(null),A=r("div",{ref:R,...I?{...C}:{},children:r(m,{builderAttrs:y,setting:{...P,layout:v},styles:x,children:t(j)?r(s,{}):j})});return r("div",{className:D,children:r(o,{product:p,readOnly:!0,initialVariantId:w??"Latest",uid:h?.uid,children:I?r(a,{containerRef:R,children:A}):A})},`uid-${p?.id}`)};export{f as ProductOfferItem};
2
+ import{jsx as r}from"react/jsx-runtime";import{useRenderMode as e,isEmptyChildren as t,ProductProvider as o}from"@gem-sdk/core";import{useRef as i}from"react";import m from"../../../../../grid/components/row/Row.js";import s from"../../../../../grid/components/ChildrenDroppable.js";import{createAttr as n,createClass as d}from"@gem-sdk/system";import{getProductOfferAttrs as c}from"../common/attrs.js";import{getProductOfferItemClasses as l}from"../common/classes.js";import{ProductOfferSubscriptionPresenceProvider as a}from"../context/PrdOfferSubscriptionPresenceContext.js";let f=f=>{let{product:p,setting:u,builderProps:h,children:j,index:b,totalProduct:g,builderAttrs:y,styles:x}=f,{isEditMode:I}=e(),{variantSelected:O,productOfferLayout:k,layout:v,...P}=u??{};Object.keys(v||{}).forEach(r=>{k?.[r]==="2col"&&v?.[r]&&(v[r].display="fill")});let w=O?.[p?.baseID??""]?.variantId,C=n({...c(p,h?.uid)}),D=d({...l(b,u,g)}),R=i(null),A=r("div",{ref:R,...I?{...C}:{},children:r(m,{builderAttrs:y,setting:{...P,layout:v},styles:x,children:t(j)?r(s,{}):j})});return r("div",{className:D,children:r(o,{product:p,readOnly:!0,initialVariantId:w??"Latest",uid:h?.uid,children:r(a,{containerRef:R,children:A})})},`uid-${p?.id}`)};export{f as ProductOfferItem};
@@ -1 +1 @@
1
- import{useMemo as e,useEffect as i}from"react";import{useRenderMode as l,useProductStore as o,useProduct as s}from"@gem-sdk/core";import{SubscriptionEnum as r}from"../../../constants/index.js";import{useProductOfferSubscriptionPresence as t}from"../../product-offer/context/PrdOfferSubscriptionPresenceContext.js";import{useSellingPlanOptions as n}from"./useSellingPlanOptions.js";import{useSubscriptionSellingType as p}from"../../../hooks/useSubscriptionSellingType.js";let S=({setting:S})=>{let{isEditMode:T}=l(),m=o(e=>e.setSubscriptionSellingType),{isOneTime:O,subscriptionSellingType:c}=p(),u=n(S),I=s(),g=t(),f=u&&u.length>0,E=g?.hasBoth??!1,a=e(()=>I?.requiresSellingPlan,[I?.requiresSellingPlan]),y=e(()=>O?r.ONE_TIME:r.SUBSCRIPTION,[O]);i(()=>{c||(S?.sellingType===r.ONE_TIME?m(r.ONE_TIME):m(S?.sellingType??r.SUBSCRIPTION))},[m,S?.sellingType,c]);let N=T&&!!g?.hasSubscriptionBlock&&!g?.hasOneTimeBlock&&c===r.ONE_TIME;i(()=>{N&&m(r.SUBSCRIPTION)},[m,N]);let P=!T||E,h=S?.sellingType===r.SUBSCRIPTION&&!f,B=S?.sellingType===r.ONE_TIME&&a;return{selectedType:y,shouldShowRadio:!a&&f&&P,isOneTimeHidden:B,requiresSellingPlan:a,isOnetimeOnly:!f&&!a,hasNoSellingPlanOptions:h,setSubscriptionSellingType:m}};export{S as useSubscriptionVisibility};
1
+ import{useMemo as e,useEffect as i}from"react";import{useProductStore as o,useProduct as l}from"@gem-sdk/core";import{SubscriptionEnum as s}from"../../../constants/index.js";import{useProductOfferSubscriptionPresence as r}from"../../product-offer/context/PrdOfferSubscriptionPresenceContext.js";import{useSellingPlanOptions as t}from"./useSellingPlanOptions.js";import{useSubscriptionSellingType as n}from"../../../hooks/useSubscriptionSellingType.js";let p=({setting:p})=>{let S=o(e=>e.setSubscriptionSellingType),{isOneTime:T,subscriptionSellingType:m}=n(),O=t(p),c=l(),u=r(),I=O&&O.length>0,g=void 0!==u,f=e(()=>void 0===u||u.hasBoth,[u]),E=e(()=>c?.requiresSellingPlan,[c?.requiresSellingPlan]),a=e(()=>T?s.ONE_TIME:s.SUBSCRIPTION,[T]);i(()=>{m||(p?.sellingType===s.ONE_TIME?S(s.ONE_TIME):S(p?.sellingType??s.SUBSCRIPTION))},[S,p?.sellingType,m]);let y=g&&!!u?.hasSubscriptionBlock&&!u?.hasOneTimeBlock&&m===s.ONE_TIME;i(()=>{y&&S(s.SUBSCRIPTION)},[S,y]);let N=p?.sellingType===s.SUBSCRIPTION&&!I,P=p?.sellingType===s.ONE_TIME&&E;return{selectedType:a,shouldShowRadio:!E&&I&&f,isOneTimeHidden:P,requiresSellingPlan:E,isOnetimeOnly:!I&&!E,hasNoSellingPlanOptions:N,setSubscriptionSellingType:S}};export{p as useSubscriptionVisibility};
@@ -1 +1 @@
1
- import{useRef as e,useState as t,useCallback as r,useEffect as n}from"react";import{useProduct as i,useCurrentDevice as l,getResponsiveValueByScreen as o,useProductShopifyEditLink as c,useEditorMode as s}from"@gem-sdk/core";let u=u=>{let m=e(null),a=e(!1),[p,h]=t(!1),[H,g]=t(!1),[d,f]=t(!1),x=i(),y=l(),w=o(u?.hasLineClamp,y),b=o(u?.lineClamp,y),{redirectProductShopifyLink:v}=c(),C=s(),T=r(()=>`calc(${b} * 1lh)`,[b]),k=r(e=>w&&b&&e||"auto",[w,b]),z=r(()=>{if(!m.current)return;let e=!p;a.current=e,m.current.style.maxHeight=e?"none":T(),h(e)},[p,T]);return n(()=>{k(T())},[u?.typo?.custom,k,T]),n(()=>{let e=m.current;if(a.current=!1,h(!1),f(!1),!e)return;if(!w||!x?.descriptionHtml||!b){e.style.maxHeight="none",g(!1),f(!0);return}let t=()=>{if(a.current){e.style.maxHeight="none";return}e.style.maxHeight=T();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),g(t),f(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[w,b,x?.descriptionHtml,T]),{ref:m,open:p,isShowViewMore:H,isOverflowChecked:d,handleToggleShowMore:z,mode:C,redirectProductShopifyLink:v}};export{u as useGpDescription};
1
+ import{useRef as e,useState as t,useCallback as r,useEffect as n}from"react";import{useProduct as i,useCurrentDevice as l,getResponsiveValueByScreen as o,useProductShopifyEditLink as c,useEditorMode as s}from"@gem-sdk/core";let u=u=>{let m=e(null),a=e(!1),[p,h]=t(!1),[H,g]=t(!1),[d,f]=t(!1),x=i(),y=l(),w=o(u?.hasLineClamp,y),b=o(u?.lineClamp,y),{redirectProductShopifyLink:v}=c(),C=s(),T=r(()=>`calc(${b} * 1lh)`,[b]),k=r(e=>w&&b&&e||"auto",[w,b]),z=r(()=>{if(!m.current)return;let e=!p;a.current=e,m.current.style.maxHeight=e?"none":T(),h(e)},[p,T]);return n(()=>{k(T())},[u?.typo?.custom,k,T]),n(()=>{let e=m.current;if(a.current=!1,h(!1),f(!1),!e)return;if(!w||!x?.descriptionHtml||!b){e.style.maxHeight="none",g(!1),f(!0);return}let t=()=>{if(a.current){e.style.maxHeight="none";return}e.style.maxHeight=T();let t=e.scrollHeight-e.clientHeight>1;t||(e.style.maxHeight="none"),g(t),f(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[w,b,x?.descriptionHtml,T]),{ref:m,open:p,isShowViewMore:H,isOverflowChecked:d,handleToggleShowMore:z,mode:C,redirectProductShopifyLink:v}};export{u as useGpDescription};
@@ -1 +1 @@
1
- import{makeStyleResponsive as t,usePageStore as e,useCurrentDevice as o,useStickyStore as l}from"@gem-sdk/core";import{useState as b,useMemo as i,useEffect as s}from"react";let p=p=>{let{width:r,position:a}=p??{},{desktop:d,tablet:n,mobile:m}=p?.display||{},k=t("w",r),u=e(t=>"interaction"===t.sidebarMode),c=o(),[f,x]=b(!1),$=l(t=>t.getFirstVisibleElement(c)),g=(t,e)=>({[`--left${e}`]:"top"==t?"0":"50%",[`--t${e}`]:"top"==t?"unset":"translateX(-50%)"}),y=i(()=>({...g(a?.desktop,""),...g(a?.tablet??a?.desktop,"-tablet"),...g(a?.mobile??a?.tablet??a?.desktop,"-mobile")}),[a?.desktop,a?.mobile,a?.tablet]),v=i(()=>{if(u&&a?.[c]==="top")return"40px"},[c,u,a]),w=i(()=>{let t=t=>"after-first-cart-button"!==t||f?"block":"none";return{"--d":t(d),"--d-tablet":t(n??d),"--d-mobile":t(m??n??d)}},[d,n,m,f]),I=i(()=>({"--top":v??"auto","--top-tablet":v??"auto","--top-mobile":v??"auto",[`--${a?.desktop}`]:v??"0px",[`--${a?.tablet??a?.desktop}-tablet`]:v??"0px",[`--${a?.mobile??a?.tablet??a?.desktop}-mobile`]:v??"0px"}),[v,a?.desktop,a?.mobile,a?.tablet]),C=t=>"top"==t?"sticky":"fixed",E=i(()=>({"--pos":C(a?.desktop),"--pos-tablet":C(a?.tablet??a?.desktop),"--pos-mobile":C(a?.mobile??a?.tablet??a?.desktop)}),[a?.desktop,a?.mobile,a?.tablet]);return s(()=>{if(!$)return;let t=new IntersectionObserver(([t])=>{t&&x(t.isIntersecting||t.boundingClientRect.top<=0)});return t.observe($),()=>t.disconnect()},[$,c]),{w:k,displayStyle:I,positionStyle:E,getCSSAlign:y,makeDisplaySettingStyles:w}};export{p as default};
1
+ import{makeStyleResponsive as t,usePageStore as e,useCurrentDevice as o,useStickyStore as l}from"@gem-sdk/core";import{useState as i,useMemo as s,useEffect as b}from"react";let r=r=>{let{width:n,position:p}=r??{},{desktop:a,tablet:d,mobile:m}=r?.display||{},u=t("w",n),c=e(t=>"interaction"===t.sidebarMode),k=o(),[f,g]=i(!1),x=l(t=>t.getFirstVisibleElement(k)),w=(t,e)=>({[`--left${e}`]:"top"==t?"0":"50%",[`--t${e}`]:"top"==t?"unset":"translateX(-50%)"}),$=s(()=>({...w(p?.desktop,""),...w(p?.tablet??p?.desktop,"-tablet"),...w(p?.mobile??p?.tablet??p?.desktop,"-mobile")}),[p?.desktop,p?.mobile,p?.tablet]),v=s(()=>{if(c&&p?.[k]==="top")return"40px"},[k,c,p]),y=s(()=>{let t=t=>"after-first-cart-button"!==t||f?"block":"none";return{"--d":t(a),"--d-tablet":t(d??a),"--d-mobile":t(m??d??a)}},[a,d,m,f]),R=s(()=>({"--top":v??"auto","--top-tablet":v??"auto","--top-mobile":v??"auto",[`--${p?.desktop}`]:v??"0px",[`--${p?.tablet??p?.desktop}-tablet`]:v??"0px",[`--${p?.mobile??p?.tablet??p?.desktop}-mobile`]:v??"0px"}),[v,p?.desktop,p?.mobile,p?.tablet]),T=t=>"top"==t?"sticky":"fixed",C=s(()=>({"--pos":T(p?.desktop),"--pos-tablet":T(p?.tablet??p?.desktop),"--pos-mobile":T(p?.mobile??p?.tablet??p?.desktop)}),[p?.desktop,p?.mobile,p?.tablet]);return b(()=>{if(!x)return;let t=new IntersectionObserver(([t])=>{if(!t)return;let e=t.isIntersecting,o=t.boundingClientRect.top<=0;g(e||o)});t.observe(x);let e=null,o=new ResizeObserver(()=>{e&&clearTimeout(e),e=setTimeout(()=>{let t=x.getBoundingClientRect(),e=t.top<window.innerHeight&&t.bottom>0,o=t.top<=0;g(e||o)},100)});return o.observe(x),()=>{t.disconnect(),o.disconnect(),e&&clearTimeout(e)}},[x]),{w:u,displayStyle:R,positionStyle:C,getCSSAlign:$,makeDisplaySettingStyles:y}};export{r as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.45",
3
+ "version": "17.0.0-dev.47",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",