@gem-sdk/components 12.0.0-staging.63 → 12.0.0-staging.66

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";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),React=require("react"),index=require("../../constants/index.js"),classes=require("./common/classes.js"),styles=require("./common/styles.js"),useSellingPlanChange=require("./hooks/useSellingPlanChange.js"),useSellingSubscription=require("./hooks/useSellingSubscription.js"),useSellingPlanOptions=require("./hooks/useSellingPlanOptions.js"),useSubscriptionVisibility=require("./hooks/useSubscriptionVisibility.js"),OneTimePurchaseTooltip=require("./components/OneTimePurchaseTooltip.js"),SellingPlanDropdown=require("./components/SellingPlanDropdown.js"),SellingPlanLabel=require("./components/SellingPlanLabel.js"),SellingPlanRadio=require("./components/SellingPlanRadio.js"),SubscriptionDetail=require("./components/SubscriptionDetail.js"),SubscriptionRadio=require("./components/SubscriptionRadio.js"),useDynamicProduct=require("../../hooks/useDynamicProduct.js"),helpers=require("../../../../helpers.js");const DEFAULT_DIRECTION="ltr",ProductSubscription=({styles:e,setting:s,builderProps:i,builderAttrs:n,style:t,children:l})=>{let{isEditMode:r}=core.useRenderMode(),o=core.useProduct(),u=core.usePageStore(e=>e.setSubscriptionVisible),a=core.usePageStore(e=>e.getSubscriptionVisible),{defaultValue:c,selectedSellingPlan:d,setSelectedSellingPlan:p}=useSellingSubscription.useSellingSubscription(s),S=useSellingPlanOptions.useSellingPlanOptions(s),{selectedValue:m,handleSellingPlanChange:g}=useSellingPlanChange.useSellingPlanChange({defaultValue:c,selectedSellingPlan:d,setSelectedSellingPlan:p,sellingPlanOptions:S}),b=React.useRef(null),P=React.useId(),{selectedType:j,shouldShowRadio:x,isOneTimeHidden:y,isOnetimeOnly:R,hasNoSellingPlanOptions:h,setSubscriptionSellingType:T}=useSubscriptionVisibility.useSubscriptionVisibility({setting:s}),q=system.createStyle(styles.getSubscriptionStyles(e)),I=system.createStyle(styles.getSubscriptionWrapperStyles(e?.align)),O=system.createClass(classes.getWrapperClasses()),D=system.createClass(classes.getContainerClasses()),C=system.createStyle({...t}),E=`product-subscription-${helpers.extractProductID(o?.baseID??"")}`,f=helpers.extractProductID(o?.baseID??""),N=`subscription-type-selection-${P}`,k=s?.sellingType===index.SubscriptionEnum.ONE_TIME,v=s?.sellingType===index.SubscriptionEnum.SUBSCRIPTION,{isDynamicProduct:V}=useDynamicProduct.useDynamicProduct(),{sellingTitleDirection:$,sellingTitleOneTimeDirection:w}=e??{},_=e=>e===index.SubscriptionEnum.ONE_TIME?w??"ltr":$??"ltr";if(React.useEffect(()=>{if(!o?.id||!v)return;let e=o?.id,s=`${i?.uid}-${e}`,n=!(h||V),t=a()??{};if(!n){u({...t,[e]:(t[e]??[]).filter(e=>e!==s)});return}u({...t,[e]:[...t[e]??[],s]})},[i?.uid,a,h,V,v,o?.id,u]),y||h||V)return r?jsxRuntime.jsxs("div",{...n,style:C,children:[jsxRuntime.jsx(OneTimePurchaseTooltip.OneTimePurchaseTooltip,{ref:b,setting:s}),core.filterToolbarPreview(l,!0)]}):null;let L=e=>jsxRuntime.jsx(SubscriptionRadio.SubscriptionRadio,{id:`${f}-${e}-radio`,name:N,value:e,checked:j===e,className:"!gp-items-start",onChange:s=>{s.target.checked&&T(e)}}),M=i=>jsxRuntime.jsxs("div",{...n,style:C,children:[jsxRuntime.jsxs("div",{ref:b,dir:_(i),"data-selling-type":s?.sellingType,id:E,className:O,style:I,children:[x&&L(i),jsxRuntime.jsxs("div",{"data-component-container":!0,className:D,style:q,children:[jsxRuntime.jsx(SellingPlanLabel.SellingPlanLabel,{setting:s,styles:e,id:`${f}-${i}-radio`}),i===index.SubscriptionEnum.SUBSCRIPTION&&j===i&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[U(),jsxRuntime.jsx(SubscriptionDetail.SubscriptionDetail,{setting:s,styles:e})]})]})]}),core.filterToolbarPreview(l,!0)]}),U=()=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:s?.sellingStyle==="radio"?jsxRuntime.jsx(SellingPlanRadio.SellingPlanRadio,{setting:s,styles:e,builderProps:i,productId:f??"",sellingPlanOptions:S,selectedValue:m,onChange:g}):jsxRuntime.jsx(SellingPlanDropdown.SellingPlanDropdown,{dir:_(index.SubscriptionEnum.SUBSCRIPTION),setting:s,sellingPlanOptions:S,selectedValue:m,onChange:g})});return R&&!r?"":M(k?index.SubscriptionEnum.ONE_TIME:index.SubscriptionEnum.SUBSCRIPTION)};exports.default=ProductSubscription;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),React=require("react"),index=require("../../constants/index.js"),classes=require("./common/classes.js"),styles=require("./common/styles.js"),useSellingPlanChange=require("./hooks/useSellingPlanChange.js"),useSellingSubscription=require("./hooks/useSellingSubscription.js"),useSellingPlanOptions=require("./hooks/useSellingPlanOptions.js"),useSubscriptionVisibility=require("./hooks/useSubscriptionVisibility.js"),OneTimePurchaseTooltip=require("./components/OneTimePurchaseTooltip.js"),SellingPlanDropdown=require("./components/SellingPlanDropdown.js"),SellingPlanLabel=require("./components/SellingPlanLabel.js"),SellingPlanRadio=require("./components/SellingPlanRadio.js"),SubscriptionDetail=require("./components/SubscriptionDetail.js"),SubscriptionRadio=require("./components/SubscriptionRadio.js"),useDynamicProduct=require("../../hooks/useDynamicProduct.js"),helpers=require("../../../../helpers.js");const DEFAULT_DIRECTION="ltr",ProductSubscription=({styles:e,setting:i,builderProps:s,builderAttrs:n,style:t,children:l})=>{let{isEditMode:r}=core.useRenderMode(),u=core.useProduct(),o=core.usePageStore(e=>e.setSubscriptionVisible),a=core.usePageStore(e=>e.getSubscriptionVisible),{defaultValue:c,selectedSellingPlan:d,setSelectedSellingPlan:p}=useSellingSubscription.useSellingSubscription(i),S=useSellingPlanOptions.useSellingPlanOptions(i),{selectedValue:m,handleSellingPlanChange:g}=useSellingPlanChange.useSellingPlanChange({defaultValue:c,selectedSellingPlan:d,setSelectedSellingPlan:p,sellingPlanOptions:S}),b=React.useRef(null),P=React.useId(),{selectedType:j,shouldShowRadio:x,isOneTimeHidden:y,isOnetimeOnly:R,hasNoSellingPlanOptions:h,setSubscriptionSellingType:T}=useSubscriptionVisibility.useSubscriptionVisibility({setting:i}),q=system.createStyle(styles.getSubscriptionStyles(e)),I=system.createStyle(styles.getSubscriptionWrapperStyles(e?.align)),O=system.createClass(classes.getWrapperClasses()),D=system.createClass(classes.getContainerClasses()),C=system.createStyle({...t}),E=`product-subscription-${helpers.extractProductID(u?.baseID??"")}`,f=helpers.extractProductID(u?.baseID??""),N=`subscription-type-selection-${P}`,$=i?.sellingType===index.SubscriptionEnum.ONE_TIME,k=i?.sellingType===index.SubscriptionEnum.SUBSCRIPTION,{isDynamicProduct:v}=useDynamicProduct.useDynamicProduct(),{sellingTitleDirection:V,sellingTitleOneTimeDirection:w}=e??{},_=e=>e===index.SubscriptionEnum.ONE_TIME?w??"ltr":V??"ltr";if(React.useEffect(()=>{if(!u?.id||!k)return;let e=u?.id,i=`${s?.uid}-${e}`,n=!(h||v),t=a()??{};if(!n){o({...t,[e]:(t[e]??[]).filter(e=>e!==i)});return}o({...t,[e]:[...t[e]??[],i]})},[s?.uid,a,h,v,k,u?.id,o]),y||h||v)return r?jsxRuntime.jsxs("div",{...n,style:C,children:[jsxRuntime.jsx(OneTimePurchaseTooltip.OneTimePurchaseTooltip,{ref:b,setting:i}),core.filterToolbarPreview(l,!0)]}):null;let L=e=>jsxRuntime.jsx(SubscriptionRadio.SubscriptionRadio,{id:`${s?.uid??""}-${f}-${e}-radio`,name:N,value:e,checked:j===e,className:"!gp-items-start",onChange:i=>{i.target.checked&&T(e)}}),M=t=>jsxRuntime.jsxs("div",{...n,style:C,children:[jsxRuntime.jsxs("div",{ref:b,dir:_(t),"data-selling-type":i?.sellingType,id:E,className:O,style:I,children:[x&&L(t),jsxRuntime.jsxs("div",{"data-component-container":!0,className:D,style:q,children:[jsxRuntime.jsx(SellingPlanLabel.SellingPlanLabel,{setting:i,styles:e,id:`${s?.uid??""}-${f}-${t}-radio`}),t===index.SubscriptionEnum.SUBSCRIPTION&&j===t&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[U(),jsxRuntime.jsx(SubscriptionDetail.SubscriptionDetail,{setting:i,styles:e})]})]})]}),core.filterToolbarPreview(l,!0)]}),U=()=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:i?.sellingStyle==="radio"?jsxRuntime.jsx(SellingPlanRadio.SellingPlanRadio,{setting:i,styles:e,builderProps:s,productId:f??"",sellingPlanOptions:S,selectedValue:m,onChange:g}):jsxRuntime.jsx(SellingPlanDropdown.SellingPlanDropdown,{dir:_(index.SubscriptionEnum.SUBSCRIPTION),setting:i,sellingPlanOptions:S,selectedValue:m,onChange:g})});return R&&!r?"":M($?index.SubscriptionEnum.ONE_TIME:index.SubscriptionEnum.SUBSCRIPTION)};exports.default=ProductSubscription;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),common=require("../utils/common.js"),getShapePosition=require("../utils/getShapePosition.js"),getRotateShape=require("../utils/getRotateShape.js"),getStyleAdvanced=require("../utils/getStyleAdvanced.js"),getWhiteSpace=require("../utils/getWhiteSpace.js"),stylesV2=require("../utils/stylesV2.js"),shape=require("../utils/shape.js"),renderBadgeILP=require("../utils/renderBadgeILP.js");const getSizeStyles=e=>{let{setting:t,styles:o}=e,r=shape.getShape(t?.shape),a=t?.contentType==="text",i=a?o?.textSizeV2:o?.imageSizeV2;return a?common.getSize(r,i):common.getSize(void 0,i)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:a,navigationPosition:i,imageData:s,dotData:n}=e,g=o?.positionWithImage==="outside",l=common.getWrapperStyle(t),p=getShapePosition.getShapePosition({positionType:r?.position,isLiquid:!1,navigationPosition:i,dataImage:{...s,...n}}),S=getSizeStyles(e),d=getStyleAdvanced.getStyleAdvanced(g?{}:{...p,...S},a);return{...!g&&{"--pos":"absolute"},...l,...d}},getTextContentStyle=({styles:e,setting:t})=>{let o=core.makeGlobalSize(e?.textSizeV2).padding,r=shape.getShape(t?.shape),a=t?.positionWithImage==="outside";return{...getWhiteSpace.getWhiteSpaceStyle(e?.textSizeV2),...common.convertToStyle(r?.textStyle),...getRotateShape.composeTextStyleByPosition(r,e?.position,a),...core.composeTypographyStyle(e?.typo),...core.getStyleShadow({value:e?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:e?.typo?.custom?.hasShadowText}),...stylesV2.getStyleBackground(!!r?.backgroundColorInText,e?.badgeColorV2),...o}},getBorderStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?stylesV2.getStyleBorder(e?.textBadgeBorder):stylesV2.getStyleBorder(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?stylesV2.getStyleCornerRadius(e?.textBadgeCorner,o?.shapeRadius):stylesV2.getStyleCornerRadius(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=getBorderStyles({setting:t,styles:e}),a=t?.positionWithImage==="outside",i=getCornerStyles({setting:t,styles:e}),s=common.getShapeWrapperPadding(o?.ratio);return{...r,...i,...getRotateShape.composeShapeStyleByPosition(o,e?.position,a),...stylesV2.getStyleBackground(!o?.backgroundColorInText,e?.badgeColorV2),...s,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:e,setting:t})=>{let o=getBorderStyles({setting:t,styles:e}),r=getCornerStyles({setting:t,styles:e}),a=core.makeGlobalSize(e?.imageSizeV2).padding;return{...o,...r,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:r})=>{let{"bundle-item":a,setting:i}=e;if(a)return 1;let s=i?.contentType==="text",n=s&&!i?.displayContent?.trim(),g=common.checkDiscountContentProductBadge(i?.displayContent);if(n)return r?.2:0;let l=core.convertDecimalToNumber(t?.price)??0,p=core.convertDecimalToNumber(t?.salePrice)??0,S=p-l>0,d=renderBadgeILP.checkShowBadge(i?.displayTrigger,o,t);return(S||!g)&&d?1:r?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:a}=e,i=a?.positionWithImage==="outside",s=getSizeStyles(e),n=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...i?{...s,"--mb":0}:{},opacity:n}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,a=o?.contentType==="text";return stylesV2.generateShadowCSS(`[id="${r?.uid}"] .product-badge-item`,a?t?.textBadgeShadow:t?.imageBadgeShadow)};exports.getContainerStyle=getContainerStyle,exports.getContentStyleInternal=getContentStyleInternal,exports.getImageContainerStyles=getImageContainerStyles,exports.getSubWrapperStyle=getSubWrapperStyle,exports.getTextBadgeWrapperStyles=getTextBadgeWrapperStyles,exports.getTextContentStyle=getTextContentStyle;
1
+ "use strict";var core=require("@gem-sdk/core"),common=require("../utils/common.js"),getShapePosition=require("../utils/getShapePosition.js"),getRotateShape=require("../utils/getRotateShape.js"),getStyleAdvanced=require("../utils/getStyleAdvanced.js"),getWhiteSpace=require("../utils/getWhiteSpace.js"),stylesV2=require("../utils/stylesV2.js"),shape=require("../utils/shape.js"),renderBadgeILP=require("../utils/renderBadgeILP.js");const getSizeStyles=e=>{let{setting:t,styles:o}=e,r=shape.getShape(t?.shape),a=t?.contentType==="text",i=a?o?.textSizeV2:o?.imageSizeV2;return a?common.getSize(r,i):common.getSize(void 0,i)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:a,navigationPosition:i,imageData:s,dotData:n}=e,g=o?.positionWithImage==="outside",l=common.getWrapperStyle(t),p=getShapePosition.getShapePosition({positionType:r?.position,isLiquid:!1,navigationPosition:i,dataImage:{...s,...n}}),S=getSizeStyles(e),d=getStyleAdvanced.getStyleAdvanced(g?{}:{...p,...S},a);return{...!g&&{"--pos":"absolute"},...l,...d}},getTextContentStyle=({styles:e,setting:t})=>{let o=core.makeGlobalSize(e?.textSizeV2).padding,r=shape.getShape(t?.shape),a=t?.positionWithImage==="outside";return{...getWhiteSpace.getWhiteSpaceStyle(e?.textSizeV2),...common.convertToStyle(r?.textStyle),...getRotateShape.composeTextStyleByPosition(r,e?.position,a),...core.composeTypographyStyle(e?.typo),...core.getStyleShadow({value:e?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:e?.typo?.custom?.hasShadowText}),...stylesV2.getStyleBackground(!!r?.backgroundColorInText,e?.badgeColorV2),...o}},getBorderStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?stylesV2.getStyleBorder(e?.textBadgeBorder):stylesV2.getStyleBorder(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?stylesV2.getStyleCornerRadius(e?.textBadgeCorner,o?.shapeRadius):stylesV2.getStyleCornerRadius(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=getBorderStyles({setting:t,styles:e}),a=t?.positionWithImage==="outside",i=getCornerStyles({setting:t,styles:e}),s=common.getShapeWrapperPadding(o?.ratio);return{...r,...i,...getRotateShape.composeShapeStyleByPosition(o,e?.position,a),...stylesV2.getStyleBackground(!o?.backgroundColorInText,e?.badgeColorV2),...s,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:e,setting:t})=>{let o=getBorderStyles({setting:t,styles:e}),r=getCornerStyles({setting:t,styles:e}),a=core.makeGlobalSize(e?.imageSizeV2).padding;return{...o,...r,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:r})=>{let{setting:a}=e,i=a?.contentType==="text",s=i&&!a?.displayContent?.trim(),n=common.checkDiscountContentProductBadge(a?.displayContent);if(s)return r?.2:0;let g=core.convertDecimalToNumber(t?.price)??0,l=core.convertDecimalToNumber(t?.salePrice)??0,p=l-g>0,S=renderBadgeILP.checkShowBadge(a?.displayTrigger,o,t);return(p||!n)&&S?1:r?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:a}=e,i=a?.positionWithImage==="outside",s=getSizeStyles(e),n=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...i?{...s,"--mb":0}:{},opacity:n}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,a=o?.contentType==="text";return stylesV2.generateShadowCSS(`[id="${r?.uid}"] .product-badge-item`,a?t?.textBadgeShadow:t?.imageBadgeShadow)};exports.getContainerStyle=getContainerStyle,exports.getContentStyleInternal=getContentStyleInternal,exports.getImageContainerStyles=getImageContainerStyles,exports.getSubWrapperStyle=getSubWrapperStyle,exports.getTextBadgeWrapperStyles=getTextBadgeWrapperStyles,exports.getTextContentStyle=getTextContentStyle;
@@ -1 +1 @@
1
- import{jsxs as e,jsx as i,Fragment as o}from"react/jsx-runtime";import{useRenderMode as s,useProduct as t,usePageStore as r,filterToolbarPreview as n}from"@gem-sdk/core";import{createStyle as l,createClass as m}from"@gem-sdk/system";import{useRef as p,useId as c,useEffect as a}from"react";import{SubscriptionEnum as d}from"../../constants/index.js";import{getWrapperClasses as u,getContainerClasses as g}from"./common/classes.js";import{getSubscriptionStyles as f,getSubscriptionWrapperStyles as S}from"./common/styles.js";import{useSellingPlanChange as h}from"./hooks/useSellingPlanChange.js";import{useSellingSubscription as b}from"./hooks/useSellingSubscription.js";import{useSellingPlanOptions as y}from"./hooks/useSellingPlanOptions.js";import{useSubscriptionVisibility as j}from"./hooks/useSubscriptionVisibility.js";import{OneTimePurchaseTooltip as I}from"./components/OneTimePurchaseTooltip.js";import{SellingPlanDropdown as P}from"./components/SellingPlanDropdown.js";import{SellingPlanLabel as T}from"./components/SellingPlanLabel.js";import{SellingPlanRadio as O}from"./components/SellingPlanRadio.js";import{SubscriptionDetail as N}from"./components/SubscriptionDetail.js";import{SubscriptionRadio as k}from"./components/SubscriptionRadio.js";import{useDynamicProduct as C}from"../../hooks/useDynamicProduct.js";import{extractProductID as E}from"../../../../helpers.js";let DEFAULT_DIRECTION="ltr",ProductSubscription=({styles:$,setting:D,builderProps:R,builderAttrs:v,style:U,children:V})=>{let{isEditMode:B}=s(),_=t(),x=r(e=>e.setSubscriptionVisible),M=r(e=>e.getSubscriptionVisible),{defaultValue:L,selectedSellingPlan:w,setSelectedSellingPlan:A}=b(D),F=y(D),{selectedValue:q,handleSellingPlanChange:z}=h({defaultValue:L,selectedSellingPlan:w,setSelectedSellingPlan:A,sellingPlanOptions:F}),G=p(null),H=c(),{selectedType:J,shouldShowRadio:K,isOneTimeHidden:Q,isOnetimeOnly:W,hasNoSellingPlanOptions:X,setSubscriptionSellingType:Y}=j({setting:D}),Z=l(f($)),ee=l(S($?.align)),ei=m(u()),eo=m(g()),es=l({...U}),et=`product-subscription-${E(_?.baseID??"")}`,er=E(_?.baseID??""),en=`subscription-type-selection-${H}`,el=D?.sellingType===d.ONE_TIME,em=D?.sellingType===d.SUBSCRIPTION,{isDynamicProduct:ep}=C(),{sellingTitleDirection:ec,sellingTitleOneTimeDirection:ea}=$??{},ed=e=>e===d.ONE_TIME?ea??"ltr":ec??"ltr";if(a(()=>{if(!_?.id||!em)return;let e=_?.id,i=`${R?.uid}-${e}`,o=!(X||ep),s=M()??{};if(!o){x({...s,[e]:(s[e]??[]).filter(e=>e!==i)});return}x({...s,[e]:[...s[e]??[],i]})},[R?.uid,M,X,ep,em,_?.id,x]),Q||X||ep)return B?e("div",{...v,style:es,children:[i(I,{ref:G,setting:D}),n(V,!0)]}):null;let eu=e=>i(k,{id:`${er}-${e}-radio`,name:en,value:e,checked:J===e,className:"!gp-items-start",onChange:i=>{i.target.checked&&Y(e)}}),eg=s=>e("div",{...v,style:es,children:[e("div",{ref:G,dir:ed(s),"data-selling-type":D?.sellingType,id:et,className:ei,style:ee,children:[K&&eu(s),e("div",{"data-component-container":!0,className:eo,style:Z,children:[i(T,{setting:D,styles:$,id:`${er}-${s}-radio`}),s===d.SUBSCRIPTION&&J===s&&e(o,{children:[ef(),i(N,{setting:D,styles:$})]})]})]}),n(V,!0)]}),ef=()=>i(o,{children:D?.sellingStyle==="radio"?i(O,{setting:D,styles:$,builderProps:R,productId:er??"",sellingPlanOptions:F,selectedValue:q,onChange:z}):i(P,{dir:ed(d.SUBSCRIPTION),setting:D,sellingPlanOptions:F,selectedValue:q,onChange:z})});return W&&!B?"":eg(el?d.ONE_TIME:d.SUBSCRIPTION)};export{ProductSubscription as default};
1
+ import{jsxs as e,jsx as i,Fragment as o}from"react/jsx-runtime";import{useRenderMode as s,useProduct as t,usePageStore as r,filterToolbarPreview as n}from"@gem-sdk/core";import{createStyle as l,createClass as m}from"@gem-sdk/system";import{useRef as p,useId as c,useEffect as a}from"react";import{SubscriptionEnum as d}from"../../constants/index.js";import{getWrapperClasses as u,getContainerClasses as g}from"./common/classes.js";import{getSubscriptionStyles as f,getSubscriptionWrapperStyles as S}from"./common/styles.js";import{useSellingPlanChange as h}from"./hooks/useSellingPlanChange.js";import{useSellingSubscription as b}from"./hooks/useSellingSubscription.js";import{useSellingPlanOptions as y}from"./hooks/useSellingPlanOptions.js";import{useSubscriptionVisibility as j}from"./hooks/useSubscriptionVisibility.js";import{OneTimePurchaseTooltip as I}from"./components/OneTimePurchaseTooltip.js";import{SellingPlanDropdown as P}from"./components/SellingPlanDropdown.js";import{SellingPlanLabel as T}from"./components/SellingPlanLabel.js";import{SellingPlanRadio as O}from"./components/SellingPlanRadio.js";import{SubscriptionDetail as N}from"./components/SubscriptionDetail.js";import{SubscriptionRadio as $}from"./components/SubscriptionRadio.js";import{useDynamicProduct as k}from"../../hooks/useDynamicProduct.js";import{extractProductID as C}from"../../../../helpers.js";let DEFAULT_DIRECTION="ltr",ProductSubscription=({styles:E,setting:D,builderProps:R,builderAttrs:v,style:U,children:V})=>{let{isEditMode:B}=s(),_=t(),x=r(e=>e.setSubscriptionVisible),M=r(e=>e.getSubscriptionVisible),{defaultValue:L,selectedSellingPlan:w,setSelectedSellingPlan:A}=b(D),F=y(D),{selectedValue:q,handleSellingPlanChange:z}=h({defaultValue:L,selectedSellingPlan:w,setSelectedSellingPlan:A,sellingPlanOptions:F}),G=p(null),H=c(),{selectedType:J,shouldShowRadio:K,isOneTimeHidden:Q,isOnetimeOnly:W,hasNoSellingPlanOptions:X,setSubscriptionSellingType:Y}=j({setting:D}),Z=l(f(E)),ee=l(S(E?.align)),ei=m(u()),eo=m(g()),es=l({...U}),et=`product-subscription-${C(_?.baseID??"")}`,er=C(_?.baseID??""),en=`subscription-type-selection-${H}`,el=D?.sellingType===d.ONE_TIME,em=D?.sellingType===d.SUBSCRIPTION,{isDynamicProduct:ep}=k(),{sellingTitleDirection:ec,sellingTitleOneTimeDirection:ea}=E??{},ed=e=>e===d.ONE_TIME?ea??"ltr":ec??"ltr";if(a(()=>{if(!_?.id||!em)return;let e=_?.id,i=`${R?.uid}-${e}`,o=!(X||ep),s=M()??{};if(!o){x({...s,[e]:(s[e]??[]).filter(e=>e!==i)});return}x({...s,[e]:[...s[e]??[],i]})},[R?.uid,M,X,ep,em,_?.id,x]),Q||X||ep)return B?e("div",{...v,style:es,children:[i(I,{ref:G,setting:D}),n(V,!0)]}):null;let eu=e=>i($,{id:`${R?.uid??""}-${er}-${e}-radio`,name:en,value:e,checked:J===e,className:"!gp-items-start",onChange:i=>{i.target.checked&&Y(e)}}),eg=s=>e("div",{...v,style:es,children:[e("div",{ref:G,dir:ed(s),"data-selling-type":D?.sellingType,id:et,className:ei,style:ee,children:[K&&eu(s),e("div",{"data-component-container":!0,className:eo,style:Z,children:[i(T,{setting:D,styles:E,id:`${R?.uid??""}-${er}-${s}-radio`}),s===d.SUBSCRIPTION&&J===s&&e(o,{children:[ef(),i(N,{setting:D,styles:E})]})]})]}),n(V,!0)]}),ef=()=>i(o,{children:D?.sellingStyle==="radio"?i(O,{setting:D,styles:E,builderProps:R,productId:er??"",sellingPlanOptions:F,selectedValue:q,onChange:z}):i(P,{dir:ed(d.SUBSCRIPTION),setting:D,sellingPlanOptions:F,selectedValue:q,onChange:z})});return W&&!B?"":eg(el?d.ONE_TIME:d.SUBSCRIPTION)};export{ProductSubscription as default};
@@ -1 +1 @@
1
- import{makeGlobalSize as e,composeTypographyStyle as t,getStyleShadow as o,convertDecimalToNumber as r}from"@gem-sdk/core";import{convertToStyle as i,getSize as a,getWrapperStyle as n,getShapeWrapperPadding as s,checkDiscountContentProductBadge as p}from"../utils/common.js";import{getShapePosition as g}from"../utils/getShapePosition.js";import{composeTextStyleByPosition as l,composeShapeStyleByPosition as d}from"../utils/getRotateShape.js";import{getStyleAdvanced as u}from"../utils/getStyleAdvanced.js";import{getWhiteSpaceStyle as S}from"../utils/getWhiteSpace.js";import{getStyleBackground as y,generateShadowCSS as m,getStyleBorder as h,getStyleCornerRadius as x}from"../utils/stylesV2.js";import{getShape as c}from"../utils/shape.js";import{checkShowBadge as C}from"../utils/renderBadgeILP.js";let getSizeStyles=e=>{let{setting:t,styles:o}=e,r=c(t?.shape),i=t?.contentType==="text",n=i?o?.textSizeV2:o?.imageSizeV2;return i?a(r,n):a(void 0,n)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:i,navigationPosition:a,imageData:s,dotData:p}=e,l=o?.positionWithImage==="outside",d=n(t),S=g({positionType:r?.position,isLiquid:!1,navigationPosition:a,dataImage:{...s,...p}}),y=getSizeStyles(e),m=u(l?{}:{...S,...y},i);return{...!l&&{"--pos":"absolute"},...d,...m}},getTextContentStyle=({styles:r,setting:a})=>{let n=e(r?.textSizeV2).padding,s=c(a?.shape),p=a?.positionWithImage==="outside";return{...S(r?.textSizeV2),...i(s?.textStyle),...l(s,r?.position,p),...t(r?.typo),...o({value:r?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:r?.typo?.custom?.hasShadowText}),...y(!!s?.backgroundColorInText,r?.badgeColorV2),...n}},getBorderStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?h(e?.textBadgeBorder):h(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?x(e?.textBadgeCorner,o?.shapeRadius):x(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=getBorderStyles({setting:t,styles:e}),i=t?.positionWithImage==="outside",a=getCornerStyles({setting:t,styles:e}),n=s(o?.ratio);return{...r,...a,...d(o,e?.position,i),...y(!o?.backgroundColorInText,e?.badgeColorV2),...n,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:t,setting:o})=>{let r=getBorderStyles({setting:o,styles:t}),i=getCornerStyles({setting:o,styles:t}),a=e(t?.imageSizeV2).padding;return{...r,...i,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:i})=>{let{"bundle-item":a,setting:n}=e;if(a)return 1;let s=n?.contentType==="text",g=s&&!n?.displayContent?.trim(),l=p(n?.displayContent);if(g)return i?.2:0;let d=r(t?.price)??0,u=r(t?.salePrice)??0,S=u-d>0,y=C(n?.displayTrigger,o,t);return(S||!l)&&y?1:i?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:i}=e,a=i?.positionWithImage==="outside",n=getSizeStyles(e),s=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...a?{...n,"--mb":0}:{},opacity:s}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,i=o?.contentType==="text";return m(`[id="${r?.uid}"] .product-badge-item`,i?t?.textBadgeShadow:t?.imageBadgeShadow)};export{getContainerStyle,getContentStyleInternal,getImageContainerStyles,getSubWrapperStyle,getTextBadgeWrapperStyles,getTextContentStyle};
1
+ import{makeGlobalSize as e,composeTypographyStyle as t,getStyleShadow as o,convertDecimalToNumber as r}from"@gem-sdk/core";import{convertToStyle as i,getSize as a,getWrapperStyle as n,getShapeWrapperPadding as s,checkDiscountContentProductBadge as p}from"../utils/common.js";import{getShapePosition as g}from"../utils/getShapePosition.js";import{composeTextStyleByPosition as l,composeShapeStyleByPosition as d}from"../utils/getRotateShape.js";import{getStyleAdvanced as S}from"../utils/getStyleAdvanced.js";import{getWhiteSpaceStyle as u}from"../utils/getWhiteSpace.js";import{getStyleBackground as y,generateShadowCSS as m,getStyleBorder as h,getStyleCornerRadius as x}from"../utils/stylesV2.js";import{getShape as c}from"../utils/shape.js";import{checkShowBadge as C}from"../utils/renderBadgeILP.js";let getSizeStyles=e=>{let{setting:t,styles:o}=e,r=c(t?.shape),i=t?.contentType==="text",n=i?o?.textSizeV2:o?.imageSizeV2;return i?a(r,n):a(void 0,n)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:i,navigationPosition:a,imageData:s,dotData:p}=e,l=o?.positionWithImage==="outside",d=n(t),u=g({positionType:r?.position,isLiquid:!1,navigationPosition:a,dataImage:{...s,...p}}),y=getSizeStyles(e),m=S(l?{}:{...u,...y},i);return{...!l&&{"--pos":"absolute"},...d,...m}},getTextContentStyle=({styles:r,setting:a})=>{let n=e(r?.textSizeV2).padding,s=c(a?.shape),p=a?.positionWithImage==="outside";return{...u(r?.textSizeV2),...i(s?.textStyle),...l(s,r?.position,p),...t(r?.typo),...o({value:r?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:r?.typo?.custom?.hasShadowText}),...y(!!s?.backgroundColorInText,r?.badgeColorV2),...n}},getBorderStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?h(e?.textBadgeBorder):h(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?x(e?.textBadgeCorner,o?.shapeRadius):x(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=getBorderStyles({setting:t,styles:e}),i=t?.positionWithImage==="outside",a=getCornerStyles({setting:t,styles:e}),n=s(o?.ratio);return{...r,...a,...d(o,e?.position,i),...y(!o?.backgroundColorInText,e?.badgeColorV2),...n,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:t,setting:o})=>{let r=getBorderStyles({setting:o,styles:t}),i=getCornerStyles({setting:o,styles:t}),a=e(t?.imageSizeV2).padding;return{...r,...i,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:i})=>{let{setting:a}=e,n=a?.contentType==="text",s=n&&!a?.displayContent?.trim(),g=p(a?.displayContent);if(s)return i?.2:0;let l=r(t?.price)??0,d=r(t?.salePrice)??0,S=d-l>0,u=C(a?.displayTrigger,o,t);return(S||!g)&&u?1:i?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:i}=e,a=i?.positionWithImage==="outside",n=getSizeStyles(e),s=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...a?{...n,"--mb":0}:{},opacity:s}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,i=o?.contentType==="text";return m(`[id="${r?.uid}"] .product-badge-item`,i?t?.textBadgeShadow:t?.imageBadgeShadow)};export{getContainerStyle,getContentStyleInternal,getImageContainerStyles,getSubWrapperStyle,getTextBadgeWrapperStyles,getTextContentStyle};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "12.0.0-staging.63",
3
+ "version": "12.0.0-staging.66",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,9 +26,9 @@
26
26
  "i18n:extract": "rollup -c ./scripts/rollup.config.settings.mjs && node ./scripts/translate/extract-texts-to-locales.js && node ./scripts/translate/en-keys-usage.js"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "12.0.0-staging.56",
30
- "@gem-sdk/styles": "12.0.0-staging.55",
31
- "@gem-sdk/system": "12.0.0-staging.52",
29
+ "@gem-sdk/core": "12.0.0-staging.66",
30
+ "@gem-sdk/styles": "12.0.0-staging.66",
31
+ "@gem-sdk/system": "12.0.0-staging.66",
32
32
  "@types/react-transition-group": "^4.4.12",
33
33
  "tsup": "8.5.1",
34
34
  "postcss-import": "16.1.1",