@gem-sdk/components 17.0.0-dev.103 → 17.0.0-dev.106

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,6 +1,6 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("../../text/components/Text.liquid.js"),l=require("../../button/components/Button.liquid.js"),r=require("../settings/configs/translate.js");exports.default=({setting:a,styles:n,builderAttrs:o,builderProps:s,advanced:i,style:u})=>{let{readMoreType:p,label:d}=a??{},{typoBtn:g,typoText:c,globalSizeText:b,globalSizeBtn:x,textColorTextState:f,alignBtn:y,alignText:m,enableHoverEffectText:q}=n??{};return e.template`
3
- ${e.RenderIf("text"===p,t.default({builderAttrs:o,builderProps:s,advanced:i,styles:{...n,color:f,typo:c,spacing:"0px",align:m,textColor:void 0,enableHoverEffect:q},style:u??{},setting:{...a,text:d,globalSize:b,excludeFlex:!0},translateSetting:r.ArticleReadMore?.label?.id}))}
4
- ${e.RenderIf("text"!==p,e.template`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
- ${l.default({builderAttrs:o,builderProps:s,advanced:i,styles:{...n,typo:g,globalSize:x,align:y},style:u??{},setting:{...a,label:d,htmlType:"button"},translateSetting:r.ArticleReadMore?.label?.id})}</a>`)}
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("../../text/components/Text.liquid.js"),l=require("../../button/components/Button.liquid.js"),r=require("../settings/configs/translate.js");exports.default=({setting:a,styles:n,builderAttrs:o,builderProps:s,advanced:i,style:u,pageContext:p})=>{let{readMoreType:d,label:g}=a??{},{typoBtn:c,typoText:b,globalSizeText:x,globalSizeBtn:f,textColorTextState:y,alignBtn:m,alignText:q,enableHoverEffectText:v}=n??{};return e.template`
3
+ ${e.RenderIf("text"===d,t.default({builderAttrs:o,builderProps:s,advanced:i,styles:{...n,color:y,typo:b,spacing:"0px",align:q,textColor:void 0,enableHoverEffect:v},style:u??{},setting:{...a,text:g,globalSize:x,excludeFlex:!0},translateSetting:r.ArticleReadMore?.label?.id}))}
4
+ ${e.RenderIf("text"!==d,e.template`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
+ ${l.default({builderAttrs:o,builderProps:s,advanced:i,styles:{...n,typo:c,globalSize:f,align:m},style:u??{},setting:{...a,label:g,htmlType:"button"},translateSetting:r.ArticleReadMore?.label?.id,pageContext:p})}</a>`)}
6
6
  `};
@@ -1,4 +1,4 @@
1
- "use strict";var e=require("@gem-sdk/core"),t=require("../../helpers.js"),r=require("../../link/components/Link.js"),l=require("../../constant.js"),s=require("./styles.js"),i=require("../settings/configs/translate.js");const o=(e,t)=>{if(!t)return e;let r={...e};return["hover","focus"].forEach(e=>{delete r?.backgroundColorV2?.[e]}),r},a=({label:r,translateSetting:l,styles:s,pageContext:o,isUseTranslatedValue:a,builderProps:n,isLiquid:c=!1,isForceValue:p})=>{let g=!a||p?r:t.getDynamicSourceLocales({val:r,pageContext:o,settingId:t.createSettingId({id:l??i.Button?.label?.id}),uid:n?.uidTranslate??n?.uid,isCapitalize:s?.typo?.attrs?.transform==="capitalize"});return c?g?.toString()??"":e.convertHTML(r)},n=(e,t)=>!!e&&t,c=(e,t)=>!!e||!t,p=({mode:e,options:t,isLiquid:r=!1})=>r?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,g=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),u=t=>e.splitStyle(["pos","top","left","bottom","right","z"],t),d=e=>e?"loading":"idle",h=(e,t,r)=>e??(t||r)??"",f=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",S=`
1
+ "use strict";var e=require("@gem-sdk/core"),t=require("../../helpers.js"),r=require("../../link/components/Link.js"),l=require("../../constant.js"),s=require("./styles.js"),o=require("../settings/configs/translate.js");const i=(e,t)=>{if(!t)return e;let r={...e};return["hover","focus"].forEach(e=>{delete r?.backgroundColorV2?.[e]}),r},a=({label:r,translateSetting:l,styles:s,pageContext:i,isUseTranslatedValue:a,builderProps:n,isLiquid:p=!1,isForceValue:c})=>{let g=!a||c?r:t.getDynamicSourceLocales({val:r,pageContext:i,settingId:t.createSettingId({id:l??o.Button?.label?.id}),uid:n?.uidTranslate??n?.uid,isCapitalize:s?.typo?.attrs?.transform==="capitalize"});return p?g?.toString()??"":e.convertHTML(r)},n=(e,t)=>!!e&&t,p=(e,t)=>!!e||!t,c=({mode:e,options:t,isLiquid:r=!1})=>r?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,g=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),u=t=>e.splitStyle(["pos","top","left","bottom","right","z"],t),d=e=>e?"loading":"idle",h=(e,t,r)=>e??(t||r)??"",f=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",S=`
2
2
  <svg
3
3
  class="gp-invisible gp-absolute gp-h-5 gp-w-5 group-data-[state=loading]:gp-animate-spin group-data-[state=loading]:gp-visible"
4
4
  xmlns="http://www.w3.org/2000/svg"
@@ -19,4 +19,4 @@
19
19
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
20
20
  ></path>
21
21
  </svg>
22
- `;exports.LOADING_INDICATOR=S,exports.checkIsScrollToElement=g,exports.checkIsShowIcon=n,exports.getCleanedStyles=o,exports.getData=e=>{let{style:t,dataId:r,pageContext:l,styles:i={},setting:S={},builderProps:k,builderAttrs:y,isUseTranslatedValue:x=!0}=e,{label:I,iconSvg:b,btnLink:C,loading:m,options:L,disabled:w,iconVisible:v,shouldClearSpace:E}=S,[T,A]=u(t),D=o(i,w),q=s.getCustomCssStyles({styles:i,uid:k?.uid,builderAttrs:y,enableHoverEffect:S.enableHoverEffect??!0}),_=d(m),j=h(k?.uidInteraction,r,k?.uid),z=e=>{let{isLiquid:t,translateSetting:r,isForceValue:s}=e??{};return a({pageContext:l??{},label:I,translateSetting:r,isForceValue:s,builderProps:k,styles:D,isLiquid:t,...t&&{pageContext:l},...t&&{isUseTranslatedValue:x}})},H=n(b,v),O=g(C);return{customCss:q,wrapStyle:T,restStyle:A,dataState:_,dataIdAttr:j,isShowIcon:H,isScrollToElement:O,getArialLabel:e=>{let{isLiquid:t}=e??{};return f({label:I,isLiquid:t})},getLabelToDisplay:z,checkIsShowLabel:e=>{let{isLiquid:t}=e??{},r=z({isLiquid:t});return c(r,E)},checkIsEditableLabel:e=>{let{isLiquid:t,mode:r}=e??{};return p({options:L,isLiquid:t,...!t&&r&&{mode:r}})}}},exports.getDataId=h,exports.getDataState=d,exports.getInsertLinkData=({setting:e,htmlType:s,defaultTag:i,enableBtnLink:o,isLiquid:a=!1,pageType:n})=>{let c=["product.url"],p=["#","mailto:","tel:"],g=e?.link??"",u="/"===g,d=e?.link!==void 0&&""!==e.link,h=new RegExp(/^https?:\/\//i),f=d&&h.test(g);d&&g.toLowerCase().startsWith("mailto:")&&g.includes("+")&&(g=t.normalizeMailto(g));let S=t.isLinkedToSalesPage(e?.type),k=!!o&&(f||t.isShopifyDomain(d,g)||(()=>{if(c.find(e=>g.includes(e)))return!0;let r=p.find(e=>g.startsWith(e));return!(!r||t.checkIsScrollToTop(e)||"STATIC"===n&&t.checkIsOpenPopup(e))})()||u||S),y=g;a&&(t.isShopifyDomain(d,g)||u)&&(y=e?.isTranslate?"$locationOrigin"+g:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+g);let x=k?a?"a":r.default:i,I={href:y,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},b=k?I:d?{...I,type:s}:{type:s};return S&&(b={href:l.HREF_TO_SALES_PAGE,target:"_self"}),{HTMLTag:x,urlData:b,shouldRenderLink:k}},exports.getSplitStyles=u,exports.handleCheckIsEditableLabel=p,exports.handleCheckIsShowLabel=c,exports.handleGetArialLabel=f,exports.handleGetLabelToDisplay=a;
22
+ `;exports.LOADING_INDICATOR=S,exports.checkIsScrollToElement=g,exports.checkIsShowIcon=n,exports.getCleanedStyles=i,exports.getData=e=>{let{style:t,dataId:r,pageContext:l,styles:o={},setting:S={},builderProps:k,builderAttrs:x,isUseTranslatedValue:y=!0}=e,{label:C,iconSvg:I,btnLink:b,loading:m,options:L,disabled:w,iconVisible:v,shouldClearSpace:E}=S,[T,A]=u(t),D=i(o,w),q=s.getCustomCssStyles({styles:o,uid:k?.uid,builderAttrs:x,enableHoverEffect:S.enableHoverEffect??!0}),_=d(m),j=h(k?.uidInteraction,r,k?.uid),z=e=>{let{isLiquid:t,translateSetting:r,isForceValue:s,pageContext:o}=e??{};return a({pageContext:o??l??{},label:C,translateSetting:r,isForceValue:s,builderProps:k,styles:D,isLiquid:t,...t&&{isUseTranslatedValue:y}})},H=n(I,v),O=g(b);return{customCss:q,wrapStyle:T,restStyle:A,dataState:_,dataIdAttr:j,isShowIcon:H,isScrollToElement:O,getArialLabel:e=>{let{isLiquid:t}=e??{};return f({label:C,isLiquid:t})},getLabelToDisplay:z,checkIsShowLabel:e=>{let{isLiquid:t,translateSetting:r,isForceValue:s,pageContext:o}=e??{},i=z({isLiquid:t,translateSetting:r,isForceValue:s,pageContext:o??l??{}});return p(i,E)},checkIsEditableLabel:e=>{let{isLiquid:t,mode:r}=e??{};return c({options:L,isLiquid:t,...!t&&r&&{mode:r}})}}},exports.getDataId=h,exports.getDataState=d,exports.getInsertLinkData=({setting:e,htmlType:s,defaultTag:o,enableBtnLink:i,isLiquid:a=!1,pageType:n})=>{let p=["product.url"],c=["#","mailto:","tel:"],g=e?.link??"",u="/"===g,d=e?.link!==void 0&&""!==e.link,h=new RegExp(/^https?:\/\//i),f=d&&h.test(g);d&&g.toLowerCase().startsWith("mailto:")&&g.includes("+")&&(g=t.normalizeMailto(g));let S=t.isLinkedToSalesPage(e?.type),k=!!i&&(f||t.isShopifyDomain(d,g)||(()=>{if(p.find(e=>g.includes(e)))return!0;let r=c.find(e=>g.startsWith(e));return!(!r||t.checkIsScrollToTop(e)||"STATIC"===n&&t.checkIsOpenPopup(e))})()||u||S),x=g;a&&(t.isShopifyDomain(d,g)||u)&&(x=e?.isTranslate?"$locationOrigin"+g:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+g);let y=k?a?"a":r.default:o,C={href:x,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},I=k?C:d?{...C,type:s}:{type:s};return S&&(I={href:l.HREF_TO_SALES_PAGE,target:"_self"}),{HTMLTag:y,urlData:I,shouldRenderLink:k}},exports.getSplitStyles=u,exports.handleCheckIsEditableLabel=c,exports.handleCheckIsShowLabel=p,exports.handleGetArialLabel=f,exports.handleGetLabelToDisplay=a;
@@ -1,30 +1,30 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("@gem-sdk/system"),s=require("../common/attrs.js"),a=require("../common/styles.js"),r=require("../common/classes.js"),l=require("../../helpers.js"),i=require("./ButtonIcon.liquid.js"),n=require("./ButtonLabel.liquid.js"),u=require("./ButtonLoadingIndicator.liquid.js"),o=require("../common/helpers.js");exports.default=c=>{let{advanced:d,className:g,nodePrice:p,customAttrs:y,styles:$={},setting:f={},builderProps:q,wrapClassName:S="",translateSetting:L,isForceValue:b}=c,{iconSvg:C,btnLink:m,htmlType:v,disabled:B,enableBtnLink:I,shouldClearSpace:j,disabledLoading:k=!0}=f,{enableTextStyle:h=!0}=$,{customCss:E,wrapStyle:T,restStyle:A,dataState:D,dataIdAttr:P,isShowIcon:_,isScrollToElement:x,getArialLabel:M,getLabelToDisplay:O,checkIsShowLabel:W,checkIsEditableLabel:G}=o.getData(c),{HTMLTag:H,urlData:R,shouldRenderLink:N}=o.getInsertLinkData({enableBtnLink:I,htmlType:v,setting:m,defaultTag:"button",isLiquid:!0}),U=t.createStyle({...a.getButtonStyles($,f?.enableHoverEffect)}),V=t.createStyle({...a.getTypoStyles($)}),w=t.createStyle({...a.getTypoStyles($),...a.getButtonIconStyles($,f)}),z=t.createStyle({...a.getButtonWrapperStyles(A,$)}),F=t.createClass({...r.getButtonClasses({styles:$,className:g,shouldRenderLink:N,uid:q?.uid,advanced:d})}),J=t.createClass({...r.getButtonIconClasses(O({isLiquid:!0,translateSetting:L,isForceValue:b}),j,h)}),K=t.createClass({...r.getButtonLabelClasses($,G({isLiquid:!0}))}),Q=t.createClass({...r.getButtonWrapperClasses(S,g,d?.cssClass)}),X=t.createClass({...r.getButtonContentWrapperClasses(f)}),Y=t.createClass({...r.getButtonContainerClasses()}),Z=t.createAttr({...s.getButtonAttributes({disabled:B,dataState:D,dataId:P,arialLabel:M({isLiquid:!0})})}),ee=t.createStateOrContext({btnLink:f?.btnLink});return t.Liquid(e.template`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@gem-sdk/core"),t=require("@gem-sdk/system"),s=require("../common/attrs.js"),a=require("../common/styles.js"),r=require("../common/classes.js"),l=require("../../helpers.js"),i=require("./ButtonIcon.liquid.js"),n=require("./ButtonLabel.liquid.js"),o=require("./ButtonLoadingIndicator.liquid.js"),u=require("../common/helpers.js");exports.default=c=>{let{advanced:g,className:d,nodePrice:p,customAttrs:y,styles:$={},setting:f={},builderProps:q,wrapClassName:S="",translateSetting:C,isForceValue:L,pageContext:b}=c,{iconSvg:m,btnLink:v,htmlType:B,disabled:I,enableBtnLink:j,shouldClearSpace:k,disabledLoading:h=!0}=f,{enableTextStyle:x=!0}=$,{customCss:E,wrapStyle:T,restStyle:A,dataState:D,dataIdAttr:P,isShowIcon:_,isScrollToElement:M,getArialLabel:O,getLabelToDisplay:W,checkIsShowLabel:G,checkIsEditableLabel:H}=u.getData(c),{HTMLTag:R,urlData:N,shouldRenderLink:U}=u.getInsertLinkData({enableBtnLink:j,htmlType:B,setting:v,defaultTag:"button",isLiquid:!0}),V=t.createStyle({...a.getButtonStyles($,f?.enableHoverEffect)}),w=t.createStyle({...a.getTypoStyles($)}),z=t.createStyle({...a.getTypoStyles($),...a.getButtonIconStyles($,f)}),F=t.createStyle({...a.getButtonWrapperStyles(A,$)}),J=t.createClass({...r.getButtonClasses({styles:$,className:d,shouldRenderLink:U,uid:q?.uid,advanced:g})}),K=t.createClass({...r.getButtonIconClasses(W({isLiquid:!0,translateSetting:C,isForceValue:L,pageContext:b??{}}),k,x)}),Q=t.createClass({...r.getButtonLabelClasses($,H({isLiquid:!0}))}),X=t.createClass({...r.getButtonWrapperClasses(S,d,g?.cssClass)}),Y=t.createClass({...r.getButtonContentWrapperClasses(f)}),Z=t.createClass({...r.getButtonContainerClasses()}),ee=t.createAttr({...s.getButtonAttributes({disabled:I,dataState:D,dataId:P,arialLabel:O({isLiquid:!0})})}),et=t.createStateOrContext({btnLink:f?.btnLink});return t.Liquid(e.template`
2
2
  <gp-button
3
- gp-data='${e.dataStringify(ee)}'
3
+ gp-data='${e.dataStringify(et)}'
4
4
  style="${{...T}}"
5
- class="${Y}"
5
+ class="${Z}"
6
6
  >
7
- <div style="${z}" class="${Q}">
7
+ <div style="${F}" class="${X}">
8
8
  <style>${E}</style>
9
- ${t.If(x,`<a
9
+ ${t.If(M,`<a
10
10
  class="gp-trigger-button-link gp-hidden"
11
- href=${R.href}
12
- target=${R.target}
11
+ href=${N.href}
12
+ target=${N.target}
13
13
  ></a>`)}
14
- <${H}
15
- ${{...Z}}
14
+ <${R}
15
+ ${{...ee}}
16
16
  ${{...y}}
17
- ${{...R}}
18
- style="${U}"
19
- class="${F}"
17
+ ${{...N}}
18
+ style="${V}"
19
+ class="${J}"
20
20
  >
21
- ${t.If(!k,u.default(),"")}
22
- <div class="${X}">
23
- ${t.If(_,i.default({iconSvg:C??"",styles:w,classes:J}))}
24
- ${t.If(h&&W({isLiquid:!0}),n.default({label:O({isLiquid:!0,translateSetting:L,isForceValue:b}),styles:V,classes:K}))}
21
+ ${t.If(!h,o.default(),"")}
22
+ <div class="${Y}">
23
+ ${t.If(_,i.default({iconSvg:m??"",styles:z,classes:K}))}
24
+ ${t.If(x&&G({isLiquid:!0,translateSetting:C,isForceValue:L,pageContext:b??{}}),n.default({label:W({isLiquid:!0,translateSetting:C,isForceValue:L,pageContext:b??{}}),styles:w,classes:Q}))}
25
25
  </div>
26
26
  ${t.If(!!p,p?.toString()??"","")}
27
- </${H}>
27
+ </${R}>
28
28
  </div>
29
29
  ${t.If(e.isLocalEnv,`<script ${l.getSettingPreloadData('class="gps-link" delay',"src")}="{{ 'gp-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${l.getSettingPreloadData('class="gps-link" delay',"src")}="${e.baseAssetURL}/assets-v2/gp-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
30
30
  </gp-button>
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@gem-sdk/core"),n=require("./useTrackPreviewPause.js");exports.useCarousel=(r,s,a,i)=>{let l;let{builderProps:u,moveToIdx:o,styles:c,setting:d,isHiddenArrowWhenDisabled:p=!0,elmRef:f,isEnableCheckHasScrollableContent:m,isDisableResetSlide:g,onClickArrow:y,onHandleChangeSlideByInteraction:v,onChangeActive:S}=r,[k,h]=e.useState(!0),[V,b]=e.useState(!0),[B,R]=e.useState(!1),[P,T]=e.useState(!0),[w,N]=e.useState(!1),{loop:E,navigationEnable:x={desktop:!0},navigationStyle:C}=d??{},[M,I]=e.useState(i),[O,L]=e.useState(d?.defaultCurrentSlider??0),{isFirstPreviewClicked:D}=n.default(d?.runPreview),z=e.useRef(),q=e.useRef(o??0),A=t.useCurrentDevice(),H=t.useEditorMode(),{onListener:j,saveToElementInteractionData:F,getInteractionPreviousData:$,trigger:U}=t.useInteraction(),W=e.useMemo(()=>t.getResponsiveValueByScreen(E,A,!1),[E,A]),G=e.useCallback(()=>{if(!d?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(d?.slidesToShow,n);e[n]=r?"auto"===r?4:Math.floor(r):0}),e},[d?.slidesToShow]),J=e.useCallback(()=>{if(!d?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(d?.slidesToShow,n);e[n]=r?"auto"===r?4:r:0}),e},[d?.slidesToShow]),K=e.useMemo(()=>{let e=J();if(e)return e;let n={};return t.DEVICES.forEach(e=>{let r=t.getResponsiveValueByScreen(d?.sneakPeak,e),s=r?"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?t.getResponsiveValueByScreen(d?.sneakPeakOffsetCenter,e)??0:t.getResponsiveValueByScreen(d?.sneakPeakOffsetForward,e)??0:0,a="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?-2:-1,i=t.getResponsiveValueByScreen(d?.itemNumber,e);n[e]="number"==typeof i?i+s/100*a:"auto"}),n},[J,d?.itemNumber,d?.sneakPeak,d?.sneakPeakOffsetCenter,d?.sneakPeakOffsetForward,d?.sneakPeakType]),Q=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(K,A),n=t.getResponsiveValueByScreen(E,A,!1);return n&&Number(e??0)>i||!n&&Number(e??0)>=i},[K,A,E,i]),X=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(x,A),n=t.getResponsiveValueByScreen(C,A);return a&&e&&"none"!==n&&k&&!Q},[x,A,C,a,k,Q]),Y=e.useMemo(()=>{let e=G();return e||d?.itemNumber},[G,d?.itemNumber]),Z=e.useCallback(e=>{let n="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?2:1;return"number"==typeof t.getResponsiveValueByScreen(Y,e,4)?t.getResponsiveValueByScreen(Y,e,4)-n:void 0},[d?.sneakPeakType,Y]),_=()=>{let e="auto"===t.getResponsiveValueByScreen(K,A,1)?1:t.getResponsiveValueByScreen(K,A,1);return e??1},ee=e.useCallback(()=>{let e=t.getResponsiveValueByScreen(K,A,1),n=Z(A)??1,r=t.getResponsiveValueByScreen(d?.sneakPeak,A,!1);return Array.from({length:Math.max(W?i:r?i-n+1:"auto"===e?0:Math.ceil(i/Number(e)),0)},(e,t)=>t)},[i,K,A,Z,d?.sneakPeak,W]),et=e=>{let t=e*_();return t>=M-_()&&(t=M-_()),t},en=e=>{let n="edit"===H?{[e]:!1}:d?.enableDrag;return t.getResponsiveValueByScreen(n,e)};e.useImperativeHandle(s,()=>({nextSlideInteraction:ea,previousSlideInteraction:ei,moveToSlideInteraction:el,getSwiper:()=>a}));let er=e=>{a?.slideTo(e),v&&v(e)},es=(e,t)=>{let{key:n,data:r,isRollback:s,element:i}=e,l=Math.max(a?.activeIndex??0,0);if(s&&void 0===r)return;if(s){if("specific"===t){let{previousData:e}=$(i,n);er(Number(e))}else er("next"===t?l-1:l+1);return}let u="specific"===t?Math.max(q.current,0):l;F(i,n,u.toString());let o="specific"===t?Number(r):"next"===t?l+1:l-1;er(o)},ea=e=>{es(e,"next")},ei=e=>{es(e,"previous")},el=e=>{es(e,"specific")},eu=_(),eo=e.useMemo(()=>!!M&&a&&t.getResponsiveValueByScreen(d?.dot,A)&&!Q&&i>1,[M,a,d?.dot,A,Q,i]),ec=t.getResponsiveValueByScreen(d?.vertical,A,!1)?"vertical":"horizontal",ed=e.useMemo(()=>"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))>1,[d?.sneakPeakType,d?.itemNumber,A]),ep=e=>{let{swiperWidth:t,slidesPerView:n,itemNumberByDevice:r,centeredSlides:s}=e;if(!s||!r)return 0;let a=t/n,i=(Number(r)-2)/2-1;return-(a/2+i*a)},ef=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(E,A,!1),n=a?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},s=Number(Object.entries(r).find(([,e])=>e===A)?.[0]??1025),i=Object.entries(r).reduce((e,[r,s])=>{if(!e)return;let a=Number(r),i=t.getResponsiveValueByScreen(d?.sneakPeak,s,!1),l=i&&"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,s),u=t.getResponsiveValueByScreen(d?.itemNumber,s),c=en(s),p=ep({swiperWidth:n,slidesPerView:eu,itemNumberByDevice:u,centeredSlides:l}),f=d?.initialSlide||o||0;return e[a]={allowTouchMove:c,slidesOffsetBefore:p,slidesOffsetAfter:p,initialSlide:f,centeredSlides:l},e},{}),l="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))>1;return{speed:c?.playSpeed??500,dir:d?.rtl?"rtl":"ltr",spaceBetween:t.getResponsiveValueByScreen(c?.spacing,A)||0,loop:e,slidesPerView:"auto"===t.getResponsiveValueByScreen(K,A,1)?"auto":eu,direction:ec,breakpoints:i,isSneakPeekCenter:l,slidesOffsetBefore:i?.[s]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(d?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:d?.pauseOnHover,stopOnLastSlide:!e}}},[c?.playSpeed,d?.rtl,c?.spacing,A,E,eu,d?.sneakPeakType,d?.pauseOnHover,d?.autoplayTimeout,a?.width,M]),em=t.getResponsiveValueByScreen(d?.sneakPeak,A),eg=e.useCallback(e=>{let n=a&&a.params?.slidesPerView,r=n?a?.slidesPerViewDynamic():1;if(e<=1)return!1;let s="auto"===ef.slidesPerView?r:ef.slidesPerView;if(!W||e<Number(s)||!k)return!1;let i=t.getResponsiveValueByScreen(d?.sneakPeak,A,!1),l=i&&"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A),u=Number.isNaN(Number(s))?1:Math.ceil(Number(s));l&&u%2==0&&(u+=1);let o=l?Math.max(1,Math.ceil(u/2)):1;return e<u+o},[a,ef.slidesPerView,W,k,d?.sneakPeak,d?.sneakPeakType,A]);e.useEffect(()=>{let e=`[data-id="${u?.uid}"]`;j({event:"gp:change-next-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};ea({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-previous-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};ei({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-image-step",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};el({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-index-slide",selector:e},t=>{let n=document.querySelector(e),{data:r,isRollback:s,uniqueStorageKey:a}=t||{};el({element:n,data:r,isRollback:s,key:a})})},[]),e.useEffect(()=>{I(i)},[i]);let ey=e.useCallback(()=>{g||(L(0),b(!0),R(!1),T(!0),N(!1))},[g]);e.useEffect(()=>{if("number"==typeof o){if(q.current=o,a?.params?.loop){a?.slideToLoop(o);return}a?.slideTo(o)}},[a,o,p]);let ev=()=>{let e=t.getResponsiveValueByScreen(d?.loop,A,!1);if(!a||!ed||e)return;let n=ee().length;if(!n)return;let r=a.snapIndex>=n-1;a.isEnd=r,a.allowSlideNext=!r};return e.useEffect(()=>{if(!a)return;let e=()=>{I(a.slides.length),ev(),T(a.isBeginning),N(a.isEnd)},t=()=>{S&&S(a.realIndex)},n=()=>{L(a.realIndex),b(a?.translate===0),R(a?.translate<=a?.maxTranslate())};return a.on("transitionEnd",n),a.on("slideChange",e),a.on("slideChangeTransitionStart",t),()=>{a?.off("slideChange",e),a?.off("slideChangeTransitionStart",t),a?.off("transitionEnd",n)}},[ef.loop,a]),e.useEffect(()=>{a&&(T(a.isBeginning),N(a.isEnd))},[Q,a]),e.useEffect(()=>{a?.wrapperEl&&(a.wrapperEl.style.transitionTimingFunction=d?.animationMode??"ease")},[a,d?.animationMode]),e.useEffect(()=>{if(a&&a.autoplay){let e="edit"===H?!!D&&d?.runPreview&&d?.autoplay:d?.autoplay;e?a.autoplay.start():a.autoplay.stop()}},[a,d?.autoplay,H,D,d?.runPreview]),e.useEffect(()=>{let e=e=>{if(u?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;a?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[a,u?.uid]),e.useEffect(()=>{if(!a)return;let e=a.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let n=t.getResponsiveValueByScreen(d?.vertical,A)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(n),a?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),a?.update()},[A,d?.vertical,a,a?.params]),e.useEffect(()=>{if(!a||!m)return;let e=()=>{let e=a?.slides?.slice(0,i)||[],t=Number(ef?.spaceBetween||0),n=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),r=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),s=a.params?.direction==="horizontal"?r>(a.width||0):n>(a.height||0);h(s)};return e(),a.on("resize",e),a.on("update",e),a.on("slidesLengthChange",e),a.on("orientationchange",e),()=>{a.off("resize",e),a.off("update",e),a.off("slidesLengthChange",e),a.off("orientationchange",e)}},[a]),{isInfinity:W,sliderSettings:ef,totalSlideItem:M,currentSlide:O,localRef:z,isRenderDots:eo,showNavigation:X,isScrollToStart:V,isScrollToEnd:B,handleDotClick:(e,n)=>{let r=d?.sneakPeak?.[A]?e:n?e:et(e);if(n){if(i<eu){a?.slideTo(r);return}if(a?.realIndex===r)return;if(r===Number(a?.realIndex)+1||0===r&&a?.realIndex===i-1)return a?.slideNext();if(r===Number(a?.realIndex)-1||r===i-1&&a?.realIndex===0)return a?.slidePrev();let e="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))%2==0;e?a?.slideToLoopCenterSneakPeek(r):a?.slideToLoop(r)}else a?.slideTo(r);q.current=r},getItemsPerPage:_,handleNextAndPrevSlide:e=>{"next"===e?a?.slideNext():a?.slidePrev(),y&&(l&&clearTimeout(l),l=setTimeout(()=>y&&y(),500))},dispatchEventSelectSlide:e=>{U({event:"gp:rollback:select-slide",selector:`[data-id="${u?.uid}"]`,element:f?.current}),U({event:"gp:select-slide",selector:`[data-id="${u?.uid}"]`,data:e,element:f?.current})},getNumberOfFullWidthShow:Z,shouldDuplicateSlides:eg,isHideNavigation:Q,sneakPeak:em,swiperIsBeginning:P,swiperIsEnd:w,handleSwiperReset:ey}};
1
+ "use strict";var e=require("react"),t=require("@gem-sdk/core"),n=require("./useTrackPreviewPause.js");exports.useCarousel=(r,s,a,i)=>{let l;let{builderProps:u,moveToIdx:o,styles:c,setting:d,isHiddenArrowWhenDisabled:p=!0,elmRef:f,isEnableCheckHasScrollableContent:m,isDisableResetSlide:g,onClickArrow:y,onHandleChangeSlideByInteraction:v,onChangeActive:S}=r,[k,h]=e.useState(!0),[V,b]=e.useState(!0),[B,R]=e.useState(!1),[P,T]=e.useState(!0),[w,N]=e.useState(!1),{loop:E,navigationEnable:x={desktop:!0},navigationStyle:C}=d??{},[M,I]=e.useState(i),[O,L]=e.useState(d?.defaultCurrentSlider??0),{isFirstPreviewClicked:D}=n.default(d?.runPreview),z=e.useRef(),q=e.useRef(o??0),A=t.useCurrentDevice(),H=t.useEditorMode(),{onListener:j,saveToElementInteractionData:F,getInteractionPreviousData:$,trigger:U}=t.useInteraction(),W=e.useMemo(()=>t.getResponsiveValueByScreen(E,A,!1),[E,A]),G=e.useCallback(()=>{if(!d?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(d?.slidesToShow,n);e[n]=r?"auto"===r?4:Math.floor(r):0}),e},[d?.slidesToShow]),J=e.useCallback(()=>{if(!d?.slidesToShow)return null;let e={};return t.DEVICES.forEach(n=>{let r=t.getResponsiveValueByScreen(d?.slidesToShow,n);e[n]=r?"auto"===r?4:r:0}),e},[d?.slidesToShow]),K=e.useMemo(()=>{let e=J();if(e)return e;let n={};return t.DEVICES.forEach(e=>{let r=t.getResponsiveValueByScreen(d?.sneakPeak,e),s=r?"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?t.getResponsiveValueByScreen(d?.sneakPeakOffsetCenter,e)??0:t.getResponsiveValueByScreen(d?.sneakPeakOffsetForward,e)??0:0,a="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?-2:-1,i=t.getResponsiveValueByScreen(d?.itemNumber,e);n[e]="number"==typeof i?i+s/100*a:"auto"}),n},[J,d?.itemNumber,d?.sneakPeak,d?.sneakPeakOffsetCenter,d?.sneakPeakOffsetForward,d?.sneakPeakType]),Q=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(K,A),n=t.getResponsiveValueByScreen(E,A,!1);return n&&Number(e??0)>i||!n&&Number(e??0)>=i},[K,A,E,i]),X=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(x,A),n=t.getResponsiveValueByScreen(C,A);return a&&e&&"none"!==n&&k&&!Q},[x,A,C,a,k,Q]),Y=e.useMemo(()=>{let e=G();return e||d?.itemNumber},[G,d?.itemNumber]),Z=e.useCallback(e=>{let n="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,e)?2:1;return"number"==typeof t.getResponsiveValueByScreen(Y,e,4)?t.getResponsiveValueByScreen(Y,e,4)-n:void 0},[d?.sneakPeakType,Y]),_=()=>{let e="auto"===t.getResponsiveValueByScreen(K,A,1)?1:t.getResponsiveValueByScreen(K,A,1);return e??1},ee=e.useCallback(()=>{let e=t.getResponsiveValueByScreen(K,A,1),n=Z(A)??1,r=t.getResponsiveValueByScreen(d?.sneakPeak,A,!1);return Array.from({length:Math.max(W?i:r?i-n+1:"auto"===e?0:Math.ceil(i/Number(e)),0)},(e,t)=>t)},[i,K,A,Z,d?.sneakPeak,W]),et=e=>{let t=e*_();return t>=M-_()&&(t=M-_()),t},en=e=>{let n="edit"===H?{[e]:!1}:d?.enableDrag;return t.getResponsiveValueByScreen(n,e)};e.useImperativeHandle(s,()=>({nextSlideInteraction:ea,previousSlideInteraction:ei,moveToSlideInteraction:el,getSwiper:()=>a}));let er=e=>{a?.slideTo(e),v&&v(e)},es=(e,t)=>{let{key:n,data:r,isRollback:s,element:i}=e,l=Math.max(a?.activeIndex??0,0);if(s&&void 0===r)return;if(s){if("specific"===t){let{previousData:e}=$(i,n);er(Number(e))}else er("next"===t?l-1:l+1);return}let u="specific"===t?Math.max(q.current,0):l;F(i,n,u.toString());let o="specific"===t?Number(r):"next"===t?l+1:l-1;er(o)},ea=e=>{es(e,"next")},ei=e=>{es(e,"previous")},el=e=>{es(e,"specific")},eu=_(),eo=e.useMemo(()=>!!M&&a&&t.getResponsiveValueByScreen(d?.dot,A)&&!Q&&i>1,[M,a,d?.dot,A,Q,i]),ec=t.getResponsiveValueByScreen(d?.vertical,A,!1)?"vertical":"horizontal",ed=e.useMemo(()=>"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))>1,[d?.sneakPeakType,d?.itemNumber,A]),ep=e=>{let{swiperWidth:t,slidesPerView:n,itemNumberByDevice:r,centeredSlides:s}=e;if(!s||!r)return 0;let a=t/n,i=(Number(r)-2)/2-1;return-(a/2+i*a)},ef=e.useMemo(()=>{let e=t.getResponsiveValueByScreen(E,A,!1),n=a?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},s=Number(Object.entries(r).find(([,e])=>e===A)?.[0]??1025),i=Object.entries(r).reduce((e,[r,s])=>{if(!e)return;let a=Number(r),i=t.getResponsiveValueByScreen(d?.sneakPeak,s,!1),l=i&&"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,s),u=t.getResponsiveValueByScreen(d?.itemNumber,s),c=en(s),p=ep({swiperWidth:n,slidesPerView:eu,itemNumberByDevice:u,centeredSlides:l}),f=d?.initialSlide||o||0;return e[a]={allowTouchMove:c,slidesOffsetBefore:p,slidesOffsetAfter:p,initialSlide:f,centeredSlides:l},e},{}),l="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))>1;return{speed:c?.playSpeed??500,dir:d?.rtl?"rtl":"ltr",spaceBetween:t.getResponsiveValueByScreen(c?.spacing,A)||0,loop:e,slidesPerView:"auto"===t.getResponsiveValueByScreen(K,A,1)?"auto":eu,direction:ec,breakpoints:i,isSneakPeekCenter:l,slidesOffsetBefore:i?.[s]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(d?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:d?.pauseOnHover,stopOnLastSlide:!e}}},[c?.playSpeed,d?.rtl,c?.spacing,A,E,eu,d?.sneakPeakType,d?.pauseOnHover,d?.autoplayTimeout,a?.width,M]),em=t.getResponsiveValueByScreen(d?.sneakPeak,A),eg=e.useCallback(e=>{let n=a&&a.params?.slidesPerView,r=n?a?.slidesPerViewDynamic():1;if(e<=1)return!1;let s="auto"===ef.slidesPerView?r:ef.slidesPerView;if(!W||e<Number(s)||!k)return!1;let i=t.getResponsiveValueByScreen(d?.sneakPeak,A,!1),l=i&&"center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A),u=Number.isNaN(Number(s))?1:Math.ceil(Number(s));l&&u%2==0&&(u+=1);let o=l?Math.max(1,Math.ceil(u/2)):1;return e<u+o},[a,ef.slidesPerView,W,k,d?.sneakPeak,d?.sneakPeakType,A]);e.useEffect(()=>{let e=`[data-id="${u?.uid}"]`;j({event:"gp:change-next-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};ea({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-previous-slide",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};ei({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-image-step",selector:e,elementRef:z},e=>{let{data:t,isRollback:n,uniqueStorageKey:r}=e||{};el({element:z.current,data:t,isRollback:n,key:r})}),j({event:"gp:change-index-slide",selector:e},t=>{let n=document.querySelector(e),{data:r,isRollback:s,uniqueStorageKey:a}=t||{};el({element:n,data:r,isRollback:s,key:a})})},[]),e.useEffect(()=>{I(i)},[i]);let ey=e.useCallback(()=>{g||(L(0),b(!0),R(!1),T(!0),N(!1))},[g]);e.useEffect(()=>{if("number"==typeof o){if(q.current=o,a?.params?.loop){a?.slideToLoop(o);return}a?.slideTo(o)}},[a,o,p]);let ev=()=>{let e=t.getResponsiveValueByScreen(d?.loop,A,!1);if(!a||!ed||e)return;let n=ee().length;if(!n)return;let r=a.snapIndex>=n-1;a.isEnd=r,a.allowSlideNext=!r};return e.useEffect(()=>{if(!a)return;let e=()=>{I(a.slides.length),ev(),T(a.isBeginning),N(a.isEnd)},t=()=>{S&&S(a.realIndex)},n=()=>{L(a.realIndex),b(a?.translate===0),R(a?.translate<=a?.maxTranslate())};return a.on("transitionEnd",n),a.on("slideChange",e),a.on("slideChangeTransitionStart",t),()=>{a?.off("slideChange",e),a?.off("slideChangeTransitionStart",t),a?.off("transitionEnd",n)}},[ef.loop,a]),e.useEffect(()=>{a&&(ev(),T(a.isBeginning),N(a.isEnd))},[Q,a,K]),e.useEffect(()=>{a?.wrapperEl&&(a.wrapperEl.style.transitionTimingFunction=d?.animationMode??"ease")},[a,d?.animationMode]),e.useEffect(()=>{if(a&&a.autoplay){let e="edit"===H?!!D&&d?.runPreview&&d?.autoplay:d?.autoplay;e?a.autoplay.start():a.autoplay.stop()}},[a,d?.autoplay,H,D,d?.runPreview]),e.useEffect(()=>{let e=e=>{if(u?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;a?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[a,u?.uid]),e.useEffect(()=>{if(!a)return;let e=a.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let n=t.getResponsiveValueByScreen(d?.vertical,A)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(n),a?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),a?.update()},[A,d?.vertical,a,a?.params]),e.useEffect(()=>{if(!a||!m)return;let e=()=>{let e=a?.slides?.slice(0,i)||[],t=Number(ef?.spaceBetween||0),n=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),r=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),s=a.params?.direction==="horizontal"?r>(a.width||0):n>(a.height||0);h(s)};return e(),a.on("resize",e),a.on("update",e),a.on("slidesLengthChange",e),a.on("orientationchange",e),()=>{a.off("resize",e),a.off("update",e),a.off("slidesLengthChange",e),a.off("orientationchange",e)}},[a]),{isInfinity:W,sliderSettings:ef,totalSlideItem:M,currentSlide:O,localRef:z,isRenderDots:eo,showNavigation:X,isScrollToStart:V,isScrollToEnd:B,handleDotClick:(e,n)=>{let r=d?.sneakPeak?.[A]?e:n?e:et(e);if(n){if(i<eu){a?.slideTo(r);return}if(a?.realIndex===r)return;if(r===Number(a?.realIndex)+1||0===r&&a?.realIndex===i-1)return a?.slideNext();if(r===Number(a?.realIndex)-1||r===i-1&&a?.realIndex===0)return a?.slidePrev();let e="center"===t.getResponsiveValueByScreen(d?.sneakPeakType,A)&&"number"==typeof t.getResponsiveValueByScreen(d?.itemNumber,A)&&Number(t.getResponsiveValueByScreen(d?.itemNumber,A))%2==0;e?a?.slideToLoopCenterSneakPeek(r):a?.slideToLoop(r)}else a?.slideTo(r);q.current=r},getItemsPerPage:_,handleNextAndPrevSlide:e=>{"next"===e?a?.slideNext():a?.slidePrev(),y&&(l&&clearTimeout(l),l=setTimeout(()=>y&&y(),500))},dispatchEventSelectSlide:e=>{U({event:"gp:rollback:select-slide",selector:`[data-id="${u?.uid}"]`,element:f?.current}),U({event:"gp:select-slide",selector:`[data-id="${u?.uid}"]`,data:e,element:f?.current})},getNumberOfFullWidthShow:Z,shouldDuplicateSlides:eg,isHideNavigation:Q,sneakPeak:em,swiperIsBeginning:P,swiperIsEnd:w,handleSwiperReset:ey}};
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import{RenderIf as t,template as e}from"@gem-sdk/core";import o from"../../text/components/Text.liquid.js";import l from"../../button/components/Button.liquid.js";import{ArticleReadMore as r}from"../settings/configs/translate.js";let n=({setting:n,styles:a,builderAttrs:s,builderProps:i,advanced:p,style:g})=>{let{readMoreType:c,label:u}=n??{},{typoBtn:m,typoText:b,globalSizeText:d,globalSizeBtn:x,textColorTextState:f,alignBtn:y,alignText:v,enableHoverEffectText:S}=a??{};return e`
3
- ${t("text"===c,o({builderAttrs:s,builderProps:i,advanced:p,styles:{...a,color:f,typo:b,spacing:"0px",align:v,textColor:void 0,enableHoverEffect:S},style:g??{},setting:{...n,text:u,globalSize:d,excludeFlex:!0},translateSetting:r?.label?.id}))}
4
- ${t("text"!==c,e`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
- ${l({builderAttrs:s,builderProps:i,advanced:p,styles:{...a,typo:m,globalSize:x,align:y},style:g??{},setting:{...n,label:u,htmlType:"button"},translateSetting:r?.label?.id})}</a>`)}
2
+ import{RenderIf as t,template as e}from"@gem-sdk/core";import o from"../../text/components/Text.liquid.js";import l from"../../button/components/Button.liquid.js";import{ArticleReadMore as r}from"../settings/configs/translate.js";let n=({setting:n,styles:a,builderAttrs:s,builderProps:i,advanced:p,style:g,pageContext:c})=>{let{readMoreType:u,label:m}=n??{},{typoBtn:b,typoText:d,globalSizeText:x,globalSizeBtn:f,textColorTextState:y,alignBtn:v,alignText:S,enableHoverEffectText:j}=a??{};return e`
3
+ ${t("text"===u,o({builderAttrs:s,builderProps:i,advanced:p,styles:{...a,color:y,typo:d,spacing:"0px",align:S,textColor:void 0,enableHoverEffect:j},style:g??{},setting:{...n,text:m,globalSize:x,excludeFlex:!0},translateSetting:r?.label?.id}))}
4
+ ${t("text"!==u,e`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
+ ${l({builderAttrs:s,builderProps:i,advanced:p,styles:{...a,typo:b,globalSize:f,align:v},style:g??{},setting:{...n,label:m,htmlType:"button"},translateSetting:r?.label?.id,pageContext:c})}</a>`)}
6
6
  `};export{n as default};
@@ -1,4 +1,4 @@
1
- import{splitStyle as t,convertHTML as e}from"@gem-sdk/core";import{normalizeMailto as l,isShopifyDomain as r,checkIsScrollToTop as i,checkIsOpenPopup as a,isLinkedToSalesPage as o,getDynamicSourceLocales as n,createSettingId as s}from"../../helpers.js";import c from"../../link/components/Link.js";import{HREF_TO_SALES_PAGE as g}from"../../constant.js";import{getCustomCssStyles as p}from"./styles.js";import{Button as d}from"../settings/configs/translate.js";let u=(t,e)=>{if(!e)return t;let l={...t};return["hover","focus"].forEach(t=>{delete l?.backgroundColorV2?.[t]}),l},h=({label:t,translateSetting:l,styles:r,pageContext:i,isUseTranslatedValue:a,builderProps:o,isLiquid:c=!1,isForceValue:g})=>{let p=!a||g?t:n({val:t,pageContext:i,settingId:s({id:l??d?.label?.id}),uid:o?.uidTranslate??o?.uid,isCapitalize:r?.typo?.attrs?.transform==="capitalize"});return c?p?.toString()??"":e(t)},f=(t,e)=>!!t&&e,m=(t,e)=>!!t||!e,b=({mode:t,options:e,isLiquid:l=!1})=>l?!e?.isCannotEditing:"edit"===t&&!e?.isCannotEditing,k=t=>!!t?.link?.startsWith("#")&&("_self"===t.target||"scroll-to"===t.type),I=e=>t(["pos","top","left","bottom","right","z"],e),w=t=>t?"loading":"idle",C=(t,e,l)=>t??(e||l)??"",y=({label:t,isLiquid:e=!1})=>e?t?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":t?.toString()??"",L=({setting:t,htmlType:e,defaultTag:n,enableBtnLink:s,isLiquid:p=!1,pageType:d})=>{let u=["product.url"],h=["#","mailto:","tel:"],f=t?.link??"",m="/"===f,b=t?.link!==void 0&&""!==t.link,k=new RegExp(/^https?:\/\//i),I=b&&k.test(f);b&&f.toLowerCase().startsWith("mailto:")&&f.includes("+")&&(f=l(f));let w=o(t?.type),C=!!s&&(I||r(b,f)||(()=>{if(u.find(t=>f.includes(t)))return!0;let e=h.find(t=>f.startsWith(t));return!(!e||i(t)||"STATIC"===d&&a(t))})()||m||w),y=f;p&&(r(b,f)||m)&&(y=t?.isTranslate?"$locationOrigin"+f:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+f);let L={href:y,target:t?.target,...t?.noFollow&&{rel:"nofollow"}},S=C?L:b?{...L,type:e}:{type:e};return w&&(S={href:g,target:"_self"}),{HTMLTag:C?p?"a":c:n,urlData:S,shouldRenderLink:C}},S=t=>{let{style:e,dataId:l,pageContext:r,styles:i={},setting:a={},builderProps:o,builderAttrs:n,isUseTranslatedValue:s=!0}=t,{label:c,iconSvg:g,btnLink:d,loading:L,options:S,disabled:v,iconVisible:E,shouldClearSpace:T}=a,[A,D]=I(e),j=u(i,v),x=p({styles:i,uid:o?.uid,builderAttrs:n,enableHoverEffect:a.enableHoverEffect??!0}),z=w(L),H=C(o?.uidInteraction,l,o?.uid),_=t=>{let{isLiquid:e,translateSetting:l,isForceValue:i}=t??{};return h({pageContext:r??{},label:c,translateSetting:l,isForceValue:i,builderProps:o,styles:j,isLiquid:e,...e&&{pageContext:r},...e&&{isUseTranslatedValue:s}})},G=f(g,E),O=k(d);return{customCss:x,wrapStyle:A,restStyle:D,dataState:z,dataIdAttr:H,isShowIcon:G,isScrollToElement:O,getArialLabel:t=>{let{isLiquid:e}=t??{};return y({label:c,isLiquid:e})},getLabelToDisplay:_,checkIsShowLabel:t=>{let{isLiquid:e}=t??{},l=_({isLiquid:e});return m(l,T)},checkIsEditableLabel:t=>{let{isLiquid:e,mode:l}=t??{};return b({options:S,isLiquid:e,...!e&&l&&{mode:l}})}}},v=`
1
+ import{splitStyle as t,convertHTML as e}from"@gem-sdk/core";import{normalizeMailto as l,isShopifyDomain as r,checkIsScrollToTop as i,checkIsOpenPopup as a,isLinkedToSalesPage as o,getDynamicSourceLocales as n,createSettingId as s}from"../../helpers.js";import g from"../../link/components/Link.js";import{HREF_TO_SALES_PAGE as p}from"../../constant.js";import{getCustomCssStyles as c}from"./styles.js";import{Button as d}from"../settings/configs/translate.js";let u=(t,e)=>{if(!e)return t;let l={...t};return["hover","focus"].forEach(t=>{delete l?.backgroundColorV2?.[t]}),l},h=({label:t,translateSetting:l,styles:r,pageContext:i,isUseTranslatedValue:a,builderProps:o,isLiquid:g=!1,isForceValue:p})=>{let c=!a||p?t:n({val:t,pageContext:i,settingId:s({id:l??d?.label?.id}),uid:o?.uidTranslate??o?.uid,isCapitalize:r?.typo?.attrs?.transform==="capitalize"});return g?c?.toString()??"":e(t)},f=(t,e)=>!!t&&e,m=(t,e)=>!!t||!e,b=({mode:t,options:e,isLiquid:l=!1})=>l?!e?.isCannotEditing:"edit"===t&&!e?.isCannotEditing,k=t=>!!t?.link?.startsWith("#")&&("_self"===t.target||"scroll-to"===t.type),C=e=>t(["pos","top","left","bottom","right","z"],e),I=t=>t?"loading":"idle",w=(t,e,l)=>t??(e||l)??"",y=({label:t,isLiquid:e=!1})=>e?t?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":t?.toString()??"",L=({setting:t,htmlType:e,defaultTag:n,enableBtnLink:s,isLiquid:c=!1,pageType:d})=>{let u=["product.url"],h=["#","mailto:","tel:"],f=t?.link??"",m="/"===f,b=t?.link!==void 0&&""!==t.link,k=new RegExp(/^https?:\/\//i),C=b&&k.test(f);b&&f.toLowerCase().startsWith("mailto:")&&f.includes("+")&&(f=l(f));let I=o(t?.type),w=!!s&&(C||r(b,f)||(()=>{if(u.find(t=>f.includes(t)))return!0;let e=h.find(t=>f.startsWith(t));return!(!e||i(t)||"STATIC"===d&&a(t))})()||m||I),y=f;c&&(r(b,f)||m)&&(y=t?.isTranslate?"$locationOrigin"+f:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+f);let L={href:y,target:t?.target,...t?.noFollow&&{rel:"nofollow"}},S=w?L:b?{...L,type:e}:{type:e};return I&&(S={href:p,target:"_self"}),{HTMLTag:w?c?"a":g:n,urlData:S,shouldRenderLink:w}},S=t=>{let{style:e,dataId:l,pageContext:r,styles:i={},setting:a={},builderProps:o,builderAttrs:n,isUseTranslatedValue:s=!0}=t,{label:g,iconSvg:p,btnLink:d,loading:L,options:S,disabled:v,iconVisible:E,shouldClearSpace:T}=a,[x,A]=C(e),D=u(i,v),j=c({styles:i,uid:o?.uid,builderAttrs:n,enableHoverEffect:a.enableHoverEffect??!0}),z=I(L),H=w(o?.uidInteraction,l,o?.uid),_=t=>{let{isLiquid:e,translateSetting:l,isForceValue:i,pageContext:a}=t??{};return h({pageContext:a??r??{},label:g,translateSetting:l,isForceValue:i,builderProps:o,styles:D,isLiquid:e,...e&&{isUseTranslatedValue:s}})},G=f(p,E),O=k(d);return{customCss:j,wrapStyle:x,restStyle:A,dataState:z,dataIdAttr:H,isShowIcon:G,isScrollToElement:O,getArialLabel:t=>{let{isLiquid:e}=t??{};return y({label:g,isLiquid:e})},getLabelToDisplay:_,checkIsShowLabel:t=>{let{isLiquid:e,translateSetting:l,isForceValue:i,pageContext:a}=t??{},o=_({isLiquid:e,translateSetting:l,isForceValue:i,pageContext:a??r??{}});return m(o,T)},checkIsEditableLabel:t=>{let{isLiquid:e,mode:l}=t??{};return b({options:S,isLiquid:e,...!e&&l&&{mode:l}})}}},v=`
2
2
  <svg
3
3
  class="gp-invisible gp-absolute gp-h-5 gp-w-5 group-data-[state=loading]:gp-animate-spin group-data-[state=loading]:gp-visible"
4
4
  xmlns="http://www.w3.org/2000/svg"
@@ -19,4 +19,4 @@ import{splitStyle as t,convertHTML as e}from"@gem-sdk/core";import{normalizeMail
19
19
  d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
20
20
  ></path>
21
21
  </svg>
22
- `;export{v as LOADING_INDICATOR,k as checkIsScrollToElement,f as checkIsShowIcon,u as getCleanedStyles,S as getData,C as getDataId,w as getDataState,L as getInsertLinkData,I as getSplitStyles,b as handleCheckIsEditableLabel,m as handleCheckIsShowLabel,y as handleGetArialLabel,h as handleGetLabelToDisplay};
22
+ `;export{v as LOADING_INDICATOR,k as checkIsScrollToElement,f as checkIsShowIcon,u as getCleanedStyles,S as getData,w as getDataId,I as getDataState,L as getInsertLinkData,C as getSplitStyles,b as handleCheckIsEditableLabel,m as handleCheckIsShowLabel,y as handleGetArialLabel,h as handleGetLabelToDisplay};
@@ -1,31 +1,31 @@
1
- import{dataStringify as s,isLocalEnv as t,baseAssetURL as i,template as e}from"@gem-sdk/core";import{createStyle as r,createClass as o,createAttr as l,createStateOrContext as a,Liquid as d,If as m}from"@gem-sdk/system";import{getButtonAttributes as n}from"../common/attrs.js";import{getButtonStyles as p,getTypoStyles as c,getButtonIconStyles as u,getButtonWrapperStyles as $}from"../common/styles.js";import{getButtonClasses as f,getButtonIconClasses as g,getButtonLabelClasses as b,getButtonWrapperClasses as L,getButtonContentWrapperClasses as y,getButtonContainerClasses as j}from"../common/classes.js";import{getSettingPreloadData as v}from"../../helpers.js";import q from"./ButtonIcon.liquid.js";import k from"./ButtonLabel.liquid.js";import S from"./ButtonLoadingIndicator.liquid.js";import{getData as h,getInsertLinkData as E}from"../common/helpers.js";let B=B=>{let{advanced:I,className:T,nodePrice:A,customAttrs:G,styles:H={},setting:M={},builderProps:_,wrapClassName:x="",translateSetting:C,isForceValue:N}=B,{iconSvg:O,btnLink:P,htmlType:R,disabled:V,enableBtnLink:w,shouldClearSpace:z,disabledLoading:D=!0}=M,{enableTextStyle:F=!0}=H,{customCss:J,wrapStyle:K,restStyle:Q,dataState:U,dataIdAttr:W,isShowIcon:X,isScrollToElement:Y,getArialLabel:Z,getLabelToDisplay:ss,checkIsShowLabel:st,checkIsEditableLabel:si}=h(B),{HTMLTag:se,urlData:sr,shouldRenderLink:so}=E({enableBtnLink:w,htmlType:R,setting:P,defaultTag:"button",isLiquid:!0}),sl=r({...p(H,M?.enableHoverEffect)}),sa=r({...c(H)}),sd=r({...c(H),...u(H,M)}),sm=r({...$(Q,H)}),sn=o({...f({styles:H,className:T,shouldRenderLink:so,uid:_?.uid,advanced:I})}),sp=o({...g(ss({isLiquid:!0,translateSetting:C,isForceValue:N}),z,F)}),sc=o({...b(H,si({isLiquid:!0}))}),su=o({...L(x,T,I?.cssClass)}),s$=o({...y(M)}),sf=o({...j()}),sg=l({...n({disabled:V,dataState:U,dataId:W,arialLabel:Z({isLiquid:!0})})}),sb=a({btnLink:M?.btnLink});return d(e`
1
+ import{dataStringify as s,isLocalEnv as t,baseAssetURL as e,template as i}from"@gem-sdk/core";import{createStyle as o,createClass as r,createAttr as a,createStateOrContext as l,Liquid as d,If as n}from"@gem-sdk/system";import{getButtonAttributes as m}from"../common/attrs.js";import{getButtonStyles as p,getTypoStyles as c,getButtonIconStyles as u,getButtonWrapperStyles as $}from"../common/styles.js";import{getButtonClasses as g,getButtonIconClasses as f,getButtonLabelClasses as b,getButtonWrapperClasses as L,getButtonContentWrapperClasses as y,getButtonContainerClasses as j}from"../common/classes.js";import{getSettingPreloadData as v}from"../../helpers.js";import q from"./ButtonIcon.liquid.js";import k from"./ButtonLabel.liquid.js";import S from"./ButtonLoadingIndicator.liquid.js";import{getData as h,getInsertLinkData as E}from"../common/helpers.js";let x=x=>{let{advanced:B,className:C,nodePrice:I,customAttrs:T,styles:A={},setting:G={},builderProps:H,wrapClassName:M="",translateSetting:_,isForceValue:N,pageContext:O}=x,{iconSvg:P,btnLink:R,htmlType:V,disabled:w,enableBtnLink:z,shouldClearSpace:D,disabledLoading:F=!0}=G,{enableTextStyle:J=!0}=A,{customCss:K,wrapStyle:Q,restStyle:U,dataState:W,dataIdAttr:X,isShowIcon:Y,isScrollToElement:Z,getArialLabel:ss,getLabelToDisplay:st,checkIsShowLabel:se,checkIsEditableLabel:si}=h(x),{HTMLTag:so,urlData:sr,shouldRenderLink:sa}=E({enableBtnLink:z,htmlType:V,setting:R,defaultTag:"button",isLiquid:!0}),sl=o({...p(A,G?.enableHoverEffect)}),sd=o({...c(A)}),sn=o({...c(A),...u(A,G)}),sm=o({...$(U,A)}),sp=r({...g({styles:A,className:C,shouldRenderLink:sa,uid:H?.uid,advanced:B})}),sc=r({...f(st({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),D,J)}),su=r({...b(A,si({isLiquid:!0}))}),s$=r({...L(M,C,B?.cssClass)}),sg=r({...y(G)}),sf=r({...j()}),sb=a({...m({disabled:w,dataState:W,dataId:X,arialLabel:ss({isLiquid:!0})})}),sL=l({btnLink:G?.btnLink});return d(i`
2
2
  <gp-button
3
- gp-data='${s(sb)}'
4
- style="${{...K}}"
3
+ gp-data='${s(sL)}'
4
+ style="${{...Q}}"
5
5
  class="${sf}"
6
6
  >
7
- <div style="${sm}" class="${su}">
8
- <style>${J}</style>
9
- ${m(Y,`<a
7
+ <div style="${sm}" class="${s$}">
8
+ <style>${K}</style>
9
+ ${n(Z,`<a
10
10
  class="gp-trigger-button-link gp-hidden"
11
11
  href=${sr.href}
12
12
  target=${sr.target}
13
13
  ></a>`)}
14
- <${se}
15
- ${{...sg}}
16
- ${{...G}}
14
+ <${so}
15
+ ${{...sb}}
16
+ ${{...T}}
17
17
  ${{...sr}}
18
18
  style="${sl}"
19
- class="${sn}"
19
+ class="${sp}"
20
20
  >
21
- ${m(!D,S(),"")}
22
- <div class="${s$}">
23
- ${m(X,q({iconSvg:O??"",styles:sd,classes:sp}))}
24
- ${m(F&&st({isLiquid:!0}),k({label:ss({isLiquid:!0,translateSetting:C,isForceValue:N}),styles:sa,classes:sc}))}
21
+ ${n(!F,S(),"")}
22
+ <div class="${sg}">
23
+ ${n(Y,q({iconSvg:P??"",styles:sn,classes:sc}))}
24
+ ${n(J&&se({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),k({label:st({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),styles:sd,classes:su}))}
25
25
  </div>
26
- ${m(!!A,A?.toString()??"","")}
27
- </${se}>
26
+ ${n(!!I,I?.toString()??"","")}
27
+ </${so}>
28
28
  </div>
29
- ${m(t,`<script ${v('class="gps-link" delay',"src")}="{{ 'gp-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${v('class="gps-link" delay',"src")}="${i}/assets-v2/gp-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
29
+ ${n(t,`<script ${v('class="gps-link" delay',"src")}="{{ 'gp-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${v('class="gps-link" delay',"src")}="${e}/assets-v2/gp-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
30
30
  </gp-button>
31
- `)};export{B as default};
31
+ `)};export{x as default};
@@ -1 +1 @@
1
- import{useState as e,useRef as t,useMemo as r,useCallback as n,useImperativeHandle as i,useEffect as a}from"react";import{useCurrentDevice as l,useEditorMode as s,useInteraction as o,getResponsiveValueByScreen as u,DEVICES as d}from"@gem-sdk/core";import m from"./useTrackPreviewPause.js";let p=(p,f,c,k)=>{let h;let{builderProps:b,moveToIdx:P,styles:g,setting:y,isHiddenArrowWhenDisabled:T=!0,elmRef:v,isEnableCheckHasScrollableContent:w,isDisableResetSlide:N,onClickArrow:x,onHandleChangeSlideByInteraction:S,onChangeActive:E}=p,[C,O]=e(!0),[L,M]=e(!0),[I,B]=e(!1),[z,V]=e(!0),[A,j]=e(!1),{loop:D,navigationEnable:F={desktop:!0},navigationStyle:H}=y??{},[R,$]=e(k),[q,U]=e(y?.defaultCurrentSlider??0),{isFirstPreviewClicked:W}=m(y?.runPreview),G=t(),J=t(P??0),K=l(),Q=s(),{onListener:X,saveToElementInteractionData:Y,getInteractionPreviousData:Z,trigger:_}=o(),ee=r(()=>u(D,K,!1),[D,K]),et=n(()=>{if(!y?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(y?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[y?.slidesToShow]),er=n(()=>{if(!y?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(y?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[y?.slidesToShow]),en=r(()=>{let e=er();if(e)return e;let t={};return d.forEach(e=>{let r=u(y?.sneakPeak,e),n=r?"center"===u(y?.sneakPeakType,e)?u(y?.sneakPeakOffsetCenter,e)??0:u(y?.sneakPeakOffsetForward,e)??0:0,i="center"===u(y?.sneakPeakType,e)?-2:-1,a=u(y?.itemNumber,e);t[e]="number"==typeof a?a+n/100*i:"auto"}),t},[er,y?.itemNumber,y?.sneakPeak,y?.sneakPeakOffsetCenter,y?.sneakPeakOffsetForward,y?.sneakPeakType]),ei=r(()=>{let e=u(en,K),t=u(D,K,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[en,K,D,k]),ea=r(()=>{let e=u(F,K),t=u(H,K);return c&&e&&"none"!==t&&C&&!ei},[F,K,H,c,C,ei]),el=r(()=>{let e=et();return e||y?.itemNumber},[et,y?.itemNumber]),es=n(e=>{let t="center"===u(y?.sneakPeakType,e)?2:1;return"number"==typeof u(el,e,4)?u(el,e,4)-t:void 0},[y?.sneakPeakType,el]),eo=()=>{let e="auto"===u(en,K,1)?1:u(en,K,1);return e??1},eu=n(()=>{let e=u(en,K,1),t=es(K)??1,r=u(y?.sneakPeak,K,!1);return Array.from({length:Math.max(ee?k:r?k-t+1:"auto"===e?0:Math.ceil(k/Number(e)),0)},(e,t)=>t)},[k,en,K,es,y?.sneakPeak,ee]),ed=e=>{let t=e*eo();return t>=R-eo()&&(t=R-eo()),t},em=e=>{let t="edit"===Q?{[e]:!1}:y?.enableDrag;return u(t,e)};i(f,()=>({nextSlideInteraction:ec,previousSlideInteraction:ek,moveToSlideInteraction:eh,getSwiper:()=>c}));let ep=e=>{c?.slideTo(e),S&&S(e)},ef=(e,t)=>{let{key:r,data:n,isRollback:i,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(i&&void 0===n)return;if(i){if("specific"===t){let{previousData:e}=Z(a,r);ep(Number(e))}else ep("next"===t?l-1:l+1);return}let s="specific"===t?Math.max(J.current,0):l;Y(a,r,s.toString());let o="specific"===t?Number(n):"next"===t?l+1:l-1;ep(o)},ec=e=>{ef(e,"next")},ek=e=>{ef(e,"previous")},eh=e=>{ef(e,"specific")},eb=eo(),eP=r(()=>!!R&&c&&u(y?.dot,K)&&!ei&&k>1,[R,c,y?.dot,K,ei,k]),eg=u(y?.vertical,K,!1)?"vertical":"horizontal",ey=r(()=>"center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))>1,[y?.sneakPeakType,y?.itemNumber,K]),eT=e=>{let{swiperWidth:t,slidesPerView:r,itemNumberByDevice:n,centeredSlides:i}=e;if(!i||!n)return 0;let a=t/r,l=(Number(n)-2)/2-1;return-(a/2+l*a)},ev=r(()=>{let e=u(D,K,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},n=Number(Object.entries(r).find(([,e])=>e===K)?.[0]??1025),i=Object.entries(r).reduce((e,[r,n])=>{if(!e)return;let i=Number(r),a=u(y?.sneakPeak,n,!1),l=a&&"center"===u(y?.sneakPeakType,n),s=u(y?.itemNumber,n),o=em(n),d=eT({swiperWidth:t,slidesPerView:eb,itemNumberByDevice:s,centeredSlides:l}),m=y?.initialSlide||P||0;return e[i]={allowTouchMove:o,slidesOffsetBefore:d,slidesOffsetAfter:d,initialSlide:m,centeredSlides:l},e},{}),a="center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))>1;return{speed:g?.playSpeed??500,dir:y?.rtl?"rtl":"ltr",spaceBetween:u(g?.spacing,K)||0,loop:e,slidesPerView:"auto"===u(en,K,1)?"auto":eb,direction:eg,breakpoints:i,isSneakPeekCenter:a,slidesOffsetBefore:i?.[n]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(y?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:y?.pauseOnHover,stopOnLastSlide:!e}}},[g?.playSpeed,y?.rtl,g?.spacing,K,D,eb,y?.sneakPeakType,y?.pauseOnHover,y?.autoplayTimeout,c?.width,R]),ew=u(y?.sneakPeak,K),eN=n(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let n="auto"===ev.slidesPerView?r:ev.slidesPerView;if(!ee||e<Number(n)||!C)return!1;let i=u(y?.sneakPeak,K,!1),a=i&&"center"===u(y?.sneakPeakType,K),l=Number.isNaN(Number(n))?1:Math.ceil(Number(n));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,ev.slidesPerView,ee,C,y?.sneakPeak,y?.sneakPeakType,K]);a(()=>{let e=`[data-id="${b?.uid}"]`;X({event:"gp:change-next-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};ec({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-previous-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};ek({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-image-step",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};eh({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:n,isRollback:i,uniqueStorageKey:a}=t||{};eh({element:r,data:n,isRollback:i,key:a})})},[]),a(()=>{$(k)},[k]);let ex=n(()=>{N||(U(0),M(!0),B(!1),V(!0),j(!1))},[N]);a(()=>{if("number"==typeof P){if(J.current=P,c?.params?.loop){c?.slideToLoop(P);return}c?.slideTo(P)}},[c,P,T]);let eS=()=>{let e=u(y?.loop,K,!1);if(!c||!ey||e)return;let t=eu().length;if(!t)return;let r=c.snapIndex>=t-1;c.isEnd=r,c.allowSlideNext=!r};return a(()=>{if(!c)return;let e=()=>{$(c.slides.length),eS(),V(c.isBeginning),j(c.isEnd)},t=()=>{E&&E(c.realIndex)},r=()=>{U(c.realIndex),M(c?.translate===0),B(c?.translate<=c?.maxTranslate())};return c.on("transitionEnd",r),c.on("slideChange",e),c.on("slideChangeTransitionStart",t),()=>{c?.off("slideChange",e),c?.off("slideChangeTransitionStart",t),c?.off("transitionEnd",r)}},[ev.loop,c]),a(()=>{c&&(V(c.isBeginning),j(c.isEnd))},[ei,c]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=y?.animationMode??"ease")},[c,y?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===Q?!!W&&y?.runPreview&&y?.autoplay:y?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,y?.autoplay,Q,W,y?.runPreview]),a(()=>{let e=e=>{if(b?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;c?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[c,b?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(y?.vertical,K)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update()},[K,y?.vertical,c,c?.params]),a(()=>{if(!c||!w)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(ev?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),n=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),i=c.params?.direction==="horizontal"?n>(c.width||0):r>(c.height||0);O(i)};return e(),c.on("resize",e),c.on("update",e),c.on("slidesLengthChange",e),c.on("orientationchange",e),()=>{c.off("resize",e),c.off("update",e),c.off("slidesLengthChange",e),c.off("orientationchange",e)}},[c]),{isInfinity:ee,sliderSettings:ev,totalSlideItem:R,currentSlide:q,localRef:G,isRenderDots:eP,showNavigation:ea,isScrollToStart:L,isScrollToEnd:I,handleDotClick:(e,t)=>{let r=y?.sneakPeak?.[K]?e:t?e:ed(e);if(t){if(k<eb){c?.slideTo(r);return}if(c?.realIndex===r)return;if(r===Number(c?.realIndex)+1||0===r&&c?.realIndex===k-1)return c?.slideNext();if(r===Number(c?.realIndex)-1||r===k-1&&c?.realIndex===0)return c?.slidePrev();let e="center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);J.current=r},getItemsPerPage:eo,handleNextAndPrevSlide:e=>{"next"===e?c?.slideNext():c?.slidePrev(),x&&(h&&clearTimeout(h),h=setTimeout(()=>x&&x(),500))},dispatchEventSelectSlide:e=>{_({event:"gp:rollback:select-slide",selector:`[data-id="${b?.uid}"]`,element:v?.current}),_({event:"gp:select-slide",selector:`[data-id="${b?.uid}"]`,data:e,element:v?.current})},getNumberOfFullWidthShow:es,shouldDuplicateSlides:eN,isHideNavigation:ei,sneakPeak:ew,swiperIsBeginning:z,swiperIsEnd:A,handleSwiperReset:ex}};export{p as useCarousel};
1
+ import{useState as e,useRef as t,useMemo as r,useCallback as n,useImperativeHandle as i,useEffect as a}from"react";import{useCurrentDevice as l,useEditorMode as s,useInteraction as o,getResponsiveValueByScreen as u,DEVICES as d}from"@gem-sdk/core";import m from"./useTrackPreviewPause.js";let p=(p,f,c,k)=>{let h;let{builderProps:b,moveToIdx:P,styles:g,setting:y,isHiddenArrowWhenDisabled:T=!0,elmRef:v,isEnableCheckHasScrollableContent:w,isDisableResetSlide:N,onClickArrow:x,onHandleChangeSlideByInteraction:S,onChangeActive:E}=p,[C,O]=e(!0),[L,M]=e(!0),[I,B]=e(!1),[z,V]=e(!0),[A,j]=e(!1),{loop:D,navigationEnable:F={desktop:!0},navigationStyle:H}=y??{},[R,$]=e(k),[q,U]=e(y?.defaultCurrentSlider??0),{isFirstPreviewClicked:W}=m(y?.runPreview),G=t(),J=t(P??0),K=l(),Q=s(),{onListener:X,saveToElementInteractionData:Y,getInteractionPreviousData:Z,trigger:_}=o(),ee=r(()=>u(D,K,!1),[D,K]),et=n(()=>{if(!y?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(y?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[y?.slidesToShow]),er=n(()=>{if(!y?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(y?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[y?.slidesToShow]),en=r(()=>{let e=er();if(e)return e;let t={};return d.forEach(e=>{let r=u(y?.sneakPeak,e),n=r?"center"===u(y?.sneakPeakType,e)?u(y?.sneakPeakOffsetCenter,e)??0:u(y?.sneakPeakOffsetForward,e)??0:0,i="center"===u(y?.sneakPeakType,e)?-2:-1,a=u(y?.itemNumber,e);t[e]="number"==typeof a?a+n/100*i:"auto"}),t},[er,y?.itemNumber,y?.sneakPeak,y?.sneakPeakOffsetCenter,y?.sneakPeakOffsetForward,y?.sneakPeakType]),ei=r(()=>{let e=u(en,K),t=u(D,K,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[en,K,D,k]),ea=r(()=>{let e=u(F,K),t=u(H,K);return c&&e&&"none"!==t&&C&&!ei},[F,K,H,c,C,ei]),el=r(()=>{let e=et();return e||y?.itemNumber},[et,y?.itemNumber]),es=n(e=>{let t="center"===u(y?.sneakPeakType,e)?2:1;return"number"==typeof u(el,e,4)?u(el,e,4)-t:void 0},[y?.sneakPeakType,el]),eo=()=>{let e="auto"===u(en,K,1)?1:u(en,K,1);return e??1},eu=n(()=>{let e=u(en,K,1),t=es(K)??1,r=u(y?.sneakPeak,K,!1);return Array.from({length:Math.max(ee?k:r?k-t+1:"auto"===e?0:Math.ceil(k/Number(e)),0)},(e,t)=>t)},[k,en,K,es,y?.sneakPeak,ee]),ed=e=>{let t=e*eo();return t>=R-eo()&&(t=R-eo()),t},em=e=>{let t="edit"===Q?{[e]:!1}:y?.enableDrag;return u(t,e)};i(f,()=>({nextSlideInteraction:ec,previousSlideInteraction:ek,moveToSlideInteraction:eh,getSwiper:()=>c}));let ep=e=>{c?.slideTo(e),S&&S(e)},ef=(e,t)=>{let{key:r,data:n,isRollback:i,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(i&&void 0===n)return;if(i){if("specific"===t){let{previousData:e}=Z(a,r);ep(Number(e))}else ep("next"===t?l-1:l+1);return}let s="specific"===t?Math.max(J.current,0):l;Y(a,r,s.toString());let o="specific"===t?Number(n):"next"===t?l+1:l-1;ep(o)},ec=e=>{ef(e,"next")},ek=e=>{ef(e,"previous")},eh=e=>{ef(e,"specific")},eb=eo(),eP=r(()=>!!R&&c&&u(y?.dot,K)&&!ei&&k>1,[R,c,y?.dot,K,ei,k]),eg=u(y?.vertical,K,!1)?"vertical":"horizontal",ey=r(()=>"center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))>1,[y?.sneakPeakType,y?.itemNumber,K]),eT=e=>{let{swiperWidth:t,slidesPerView:r,itemNumberByDevice:n,centeredSlides:i}=e;if(!i||!n)return 0;let a=t/r,l=(Number(n)-2)/2-1;return-(a/2+l*a)},ev=r(()=>{let e=u(D,K,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},n=Number(Object.entries(r).find(([,e])=>e===K)?.[0]??1025),i=Object.entries(r).reduce((e,[r,n])=>{if(!e)return;let i=Number(r),a=u(y?.sneakPeak,n,!1),l=a&&"center"===u(y?.sneakPeakType,n),s=u(y?.itemNumber,n),o=em(n),d=eT({swiperWidth:t,slidesPerView:eb,itemNumberByDevice:s,centeredSlides:l}),m=y?.initialSlide||P||0;return e[i]={allowTouchMove:o,slidesOffsetBefore:d,slidesOffsetAfter:d,initialSlide:m,centeredSlides:l},e},{}),a="center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))>1;return{speed:g?.playSpeed??500,dir:y?.rtl?"rtl":"ltr",spaceBetween:u(g?.spacing,K)||0,loop:e,slidesPerView:"auto"===u(en,K,1)?"auto":eb,direction:eg,breakpoints:i,isSneakPeekCenter:a,slidesOffsetBefore:i?.[n]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(y?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:y?.pauseOnHover,stopOnLastSlide:!e}}},[g?.playSpeed,y?.rtl,g?.spacing,K,D,eb,y?.sneakPeakType,y?.pauseOnHover,y?.autoplayTimeout,c?.width,R]),ew=u(y?.sneakPeak,K),eN=n(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let n="auto"===ev.slidesPerView?r:ev.slidesPerView;if(!ee||e<Number(n)||!C)return!1;let i=u(y?.sneakPeak,K,!1),a=i&&"center"===u(y?.sneakPeakType,K),l=Number.isNaN(Number(n))?1:Math.ceil(Number(n));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,ev.slidesPerView,ee,C,y?.sneakPeak,y?.sneakPeakType,K]);a(()=>{let e=`[data-id="${b?.uid}"]`;X({event:"gp:change-next-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};ec({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-previous-slide",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};ek({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-image-step",selector:e,elementRef:G},e=>{let{data:t,isRollback:r,uniqueStorageKey:n}=e||{};eh({element:G.current,data:t,isRollback:r,key:n})}),X({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:n,isRollback:i,uniqueStorageKey:a}=t||{};eh({element:r,data:n,isRollback:i,key:a})})},[]),a(()=>{$(k)},[k]);let ex=n(()=>{N||(U(0),M(!0),B(!1),V(!0),j(!1))},[N]);a(()=>{if("number"==typeof P){if(J.current=P,c?.params?.loop){c?.slideToLoop(P);return}c?.slideTo(P)}},[c,P,T]);let eS=()=>{let e=u(y?.loop,K,!1);if(!c||!ey||e)return;let t=eu().length;if(!t)return;let r=c.snapIndex>=t-1;c.isEnd=r,c.allowSlideNext=!r};return a(()=>{if(!c)return;let e=()=>{$(c.slides.length),eS(),V(c.isBeginning),j(c.isEnd)},t=()=>{E&&E(c.realIndex)},r=()=>{U(c.realIndex),M(c?.translate===0),B(c?.translate<=c?.maxTranslate())};return c.on("transitionEnd",r),c.on("slideChange",e),c.on("slideChangeTransitionStart",t),()=>{c?.off("slideChange",e),c?.off("slideChangeTransitionStart",t),c?.off("transitionEnd",r)}},[ev.loop,c]),a(()=>{c&&(eS(),V(c.isBeginning),j(c.isEnd))},[ei,c,en]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=y?.animationMode??"ease")},[c,y?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===Q?!!W&&y?.runPreview&&y?.autoplay:y?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,y?.autoplay,Q,W,y?.runPreview]),a(()=>{let e=e=>{if(b?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;c?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[c,b?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(y?.vertical,K)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update()},[K,y?.vertical,c,c?.params]),a(()=>{if(!c||!w)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(ev?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),n=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),i=c.params?.direction==="horizontal"?n>(c.width||0):r>(c.height||0);O(i)};return e(),c.on("resize",e),c.on("update",e),c.on("slidesLengthChange",e),c.on("orientationchange",e),()=>{c.off("resize",e),c.off("update",e),c.off("slidesLengthChange",e),c.off("orientationchange",e)}},[c]),{isInfinity:ee,sliderSettings:ev,totalSlideItem:R,currentSlide:q,localRef:G,isRenderDots:eP,showNavigation:ea,isScrollToStart:L,isScrollToEnd:I,handleDotClick:(e,t)=>{let r=y?.sneakPeak?.[K]?e:t?e:ed(e);if(t){if(k<eb){c?.slideTo(r);return}if(c?.realIndex===r)return;if(r===Number(c?.realIndex)+1||0===r&&c?.realIndex===k-1)return c?.slideNext();if(r===Number(c?.realIndex)-1||r===k-1&&c?.realIndex===0)return c?.slidePrev();let e="center"===u(y?.sneakPeakType,K)&&"number"==typeof u(y?.itemNumber,K)&&Number(u(y?.itemNumber,K))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);J.current=r},getItemsPerPage:eo,handleNextAndPrevSlide:e=>{"next"===e?c?.slideNext():c?.slidePrev(),x&&(h&&clearTimeout(h),h=setTimeout(()=>x&&x(),500))},dispatchEventSelectSlide:e=>{_({event:"gp:rollback:select-slide",selector:`[data-id="${b?.uid}"]`,element:v?.current}),_({event:"gp:select-slide",selector:`[data-id="${b?.uid}"]`,data:e,element:v?.current})},getNumberOfFullWidthShow:es,shouldDuplicateSlides:eN,isHideNavigation:ei,sneakPeak:ew,swiperIsBeginning:z,swiperIsEnd:A,handleSwiperReset:ex}};export{p as useCarousel};
@@ -424,6 +424,7 @@ type ArticleReadMoreTranslateKeys = Extract<keyof ArticleReadMoreSettingProps, '
424
424
  type ArticlePaginationTranslateKeys = 'previousText' | 'nextText';
425
425
  type ArticleReadMoreProps = BasePropsWrap<ArticleReadMoreSettingProps, ArticleReadMoreStyleProps> & {
426
426
  className?: string;
427
+ pageContext?: PageContext;
427
428
  };
428
429
 
429
430
  declare const ArticleList$1: React.FC<ArticleListProps>;
@@ -6717,7 +6718,7 @@ declare const ArticleCategory: ({ setting, styles, advanced, builderProps }: Art
6717
6718
 
6718
6719
  declare const ArticleDate: ({ setting, styles, advanced, builderProps }: ArticleDateProps) => string;
6719
6720
 
6720
- declare const ArticleReadMore$1: ({ setting, styles, builderAttrs, builderProps, advanced, style, }: ArticleReadMoreProps) => string;
6721
+ declare const ArticleReadMore$1: ({ setting, styles, builderAttrs, builderProps, advanced, style, pageContext, }: ArticleReadMoreProps) => string;
6721
6722
 
6722
6723
  declare const HeroBanner$1: (props: HeroBannerProps) => string;
6723
6724
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.103",
3
+ "version": "17.0.0-dev.106",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,7 +26,7 @@
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": "17.0.0-dev.100",
29
+ "@gem-sdk/core": "17.0.0-dev.106",
30
30
  "@gem-sdk/styles": "17.0.0-dev.93",
31
31
  "@gem-sdk/system": "17.0.0-dev.93",
32
32
  "@types/react-transition-group": "^4.4.12",