@gem-sdk/components 17.0.0-dev.34 → 17.0.0-dev.38

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,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("../../../common/components/NoDataState.js"),r=require("./common/helpers.js"),a=require("@gem-sdk/system"),i=require("./common/classes.js"),l=require("./common/styles.js"),c=require("./hooks/useGpDescription.js");exports.default=n=>{let{setting:o,advanced:d,builderProps:m}=n,{htmlTag:p}=o??{},u=s.useProduct(),g=s.useCurrentDevice(),x=s.getResponsiveValueByScreen(o?.hasLineClamp,g),{ref:y,open:h,isShowViewMore:C,handleToggleShowMore:j,mode:S,redirectProductShopifyLink:v}=c.useGpDescription(o),{t:f}=s.useI18nStore(),k=a.createClass({"gp-product-description":!0,[d?.cssClass]:!0}),q=a.createClass(i.getClasses({setting:o,isLiquid:!1})),I=a.createClass(i.getButtonClasses({setting:o})),N=a.createClass({"gp-show-more-text":!0}),L=a.createClass({"gp-show-more-icon gp-ml-1":!0,...h?{"gp-rotate-180":!0}:{}}),_=a.createClass(i.getClassPreBuilt()),b=a.createStyle({...l.getTextStyle({setting:o}),...!h&&C?s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp)):{}}),w=a.createStyle(l.getButtonStyle({setting:o})),T=a.createAttr({"data-id":`${m?.uid}`}),H=a.createAttr({"data-gp-text":""}),{gpDescriptionCss:M,textDescriptionCss:A}=l.getStaticCss(),B=!u?.descriptionHtml;return B&&"edit"===S?e.jsx(t.default,{elementType:"secondary",description:f("Highlight key benefits with product description."),descriptionActions:[{text:f("Add description"),callback:v},{text:f("sync data"),callback:"syncProduct"}]}):e.jsx(e.Fragment,{children:a.If(B,"",e.jsxs("div",{...T,className:k,children:[e.jsx("style",{children:A}),e.jsx("style",{children:M}),e.jsx("div",{className:_}),e.jsx("html"===p?"div":"p",{ref:y,...H,className:q,style:b,dangerouslySetInnerHTML:{__html:u?.descriptionHtml||""}}),a.If(x&&C,e.jsxs("button",{className:I,style:w,onClick:j,children:[e.jsx("span",{className:N,children:a.If(h,o?.viewLessText||"",o?.viewMoreText)}),a.If(o?.enableViewMoreIcon,e.jsx("span",{className:L,dangerouslySetInnerHTML:{__html:r.ICON_SVG}}))]})," ")]}))})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("../../../common/components/NoDataState.js"),r=require("./common/helpers.js"),a=require("@gem-sdk/system"),i=require("./common/classes.js"),l=require("./common/styles.js"),c=require("./hooks/useGpDescription.js");exports.default=n=>{let{setting:o,advanced:d,builderProps:m}=n,{htmlTag:p}=o??{},u=s.useProduct(),g=s.useCurrentDevice(),x=s.getResponsiveValueByScreen(o?.hasLineClamp,g),{ref:y,open:h,isShowViewMore:C,isOverflowChecked:j,handleToggleShowMore:S,mode:v,redirectProductShopifyLink:f}=c.useGpDescription(o),{t:k}=s.useI18nStore(),q=a.createClass({"gp-product-description":!0,[d?.cssClass]:!0}),I=a.createClass(i.getClasses({setting:o,isLiquid:!1})),N=a.createClass(i.getButtonClasses({setting:o})),L=a.createClass({"gp-show-more-text":!0}),_=a.createClass({"gp-show-more-icon gp-ml-1":!0,...h?{"gp-rotate-180":!0}:{}}),b=a.createClass(i.getClassPreBuilt()),w=a.createStyle({...l.getTextStyle({setting:o}),...h||j&&!C?{}:s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp))}),T=a.createStyle(l.getButtonStyle({setting:o})),H=a.createAttr({"data-id":`${m?.uid}`}),M=a.createAttr({"data-gp-text":""}),{gpDescriptionCss:A,textDescriptionCss:B}=l.getStaticCss(),D=!u?.descriptionHtml;return D&&"edit"===v?e.jsx(t.default,{elementType:"secondary",description:k("Highlight key benefits with product description."),descriptionActions:[{text:k("Add description"),callback:f},{text:k("sync data"),callback:"syncProduct"}]}):e.jsx(e.Fragment,{children:a.If(D,"",e.jsxs("div",{...H,className:q,children:[e.jsx("style",{children:B}),e.jsx("style",{children:A}),e.jsx("div",{className:b}),e.jsx("html"===p?"div":"p",{ref:y,...M,className:I,style:w,dangerouslySetInnerHTML:{__html:u?.descriptionHtml||""}}),a.If(x&&C,e.jsxs("button",{className:N,style:T,onClick:S,children:[e.jsx("span",{className:L,children:a.If(h,o?.viewLessText||"",o?.viewMoreText)}),a.If(o?.enableViewMoreIcon,e.jsx("span",{className:_,dangerouslySetInnerHTML:{__html:r.ICON_SVG}}))]})," ")]}))})};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let s=e.useRef(null),[u,i]=e.useState(!1),[l,n]=e.useState(!1),a=t.useProduct(),c=t.useCurrentDevice(),o=t.getResponsiveValueByScreen(r?.hasLineClamp,c),p=t.getResponsiveValueByScreen(r?.lineClamp,c),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),m=t.useEditorMode(),d=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),h=e.useCallback(e=>o&&p&&e||"auto",[o,p]),y=e.useCallback(()=>{s.current&&(s.current.style.maxHeight=u?d():"none",i(e=>!e))},[u,d]);return e.useEffect(()=>{h(d())},[r?.typo?.custom,h,d]),e.useEffect(()=>{let e=s.current;if(i(!1),!e)return;let r=o&&a?.descriptionHtml;r?setTimeout(()=>{let r=e?.scrollHeight??0,s=e?.clientHeight??0,u=window.getComputedStyle(e).getPropertyValue("line-height"),i=parseInt(u,10)||1,l=p&&r>p*i,a=t.isSafari()?l:s<r;e.style.maxHeight=d(),p&&a?n(()=>!0):n(()=>!1)},100):e.style.maxHeight="none"},[o,p,a?.descriptionHtml,d]),{ref:s,open:u,isShowViewMore:l,handleToggleShowMore:y,mode:m,redirectProductShopifyLink:g}};
1
+ "use strict";var e=require("react"),t=require("@gem-sdk/core");exports.useGpDescription=r=>{let u=e.useRef(null),s=e.useRef(!1),[n,i]=e.useState(!1),[l,c]=e.useState(!1),[o,a]=e.useState(!1),m=t.useProduct(),d=t.useCurrentDevice(),f=t.getResponsiveValueByScreen(r?.hasLineClamp,d),p=t.getResponsiveValueByScreen(r?.lineClamp,d),{redirectProductShopifyLink:g}=t.useProductShopifyEditLink(),h=t.useEditorMode(),y=e.useCallback(()=>`calc(${p} * 1lh)`,[p]),H=e.useCallback(e=>f&&p&&e||"auto",[f,p]),v=e.useCallback(()=>{if(!u.current)return;let e=!n;s.current=e,u.current.style.maxHeight=e?"none":y(),i(e)},[n,y]);return e.useEffect(()=>{H(y())},[r?.typo?.custom,H,y]),e.useEffect(()=>{let e=u.current;if(s.current=!1,i(!1),a(!1),!e)return;if(!f||!m?.descriptionHtml||!p){e.style.maxHeight="none",c(!1),a(!0);return}let t=()=>{if(s.current){e.style.maxHeight="none";return}e.style.maxHeight=y();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),c(t),a(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[f,p,m?.descriptionHtml,y]),{ref:u,open:n,isShowViewMore:l,isOverflowChecked:o,handleToggleShowMore:v,mode:h,redirectProductShopifyLink:g}};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as i,getResponsiveValueByScreen as r,useI18nStore as m,makeStyleResponsive as c,makeLineClamp as n}from"@gem-sdk/core";import l from"../../../common/components/NoDataState.js";import{ICON_SVG as a}from"./common/helpers.js";import{createClass as p,createStyle as d,createAttr as h,If as u}from"@gem-sdk/system";import{getClasses as y,getButtonClasses as g,getClassPreBuilt as f}from"./common/classes.js";import{getTextStyle as x,getButtonStyle as k,getStaticCss as N}from"./common/styles.js";import{useGpDescription as j}from"./hooks/useGpDescription.js";let w=w=>{let{setting:L,advanced:b,builderProps:v}=w,{htmlTag:C}=L??{},H=o(),T=i(),M=r(L?.hasLineClamp,T),{ref:_,open:D,isShowViewMore:I,handleToggleShowMore:S,mode:A,redirectProductShopifyLink:P}=j(L),{t:q}=m(),G=p({"gp-product-description":!0,[b?.cssClass]:!0}),V=p(y({setting:L,isLiquid:!1})),$=p(g({setting:L})),z=p({"gp-show-more-text":!0}),B=p({"gp-show-more-icon gp-ml-1":!0,...D?{"gp-rotate-180":!0}:{}}),E=p(f()),F=d({...x({setting:L}),...!D&&I?c("line-clamp",n(L?.lineClamp,L?.hasLineClamp)):{}}),J=d(k({setting:L})),K=h({"data-id":`${v?.uid}`}),O=h({"data-gp-text":""}),{gpDescriptionCss:Q,textDescriptionCss:R}=N(),U=!H?.descriptionHtml;return U&&"edit"===A?e(l,{elementType:"secondary",description:q("Highlight key benefits with product description."),descriptionActions:[{text:q("Add description"),callback:P},{text:q("sync data"),callback:"syncProduct"}]}):e(t,{children:u(U,"",s("div",{...K,className:G,children:[e("style",{children:R}),e("style",{children:Q}),e("div",{className:E}),e("html"===C?"div":"p",{ref:_,...O,className:V,style:F,dangerouslySetInnerHTML:{__html:H?.descriptionHtml||""}}),u(M&&I,s("button",{className:$,style:J,onClick:S,children:[e("span",{className:z,children:u(D,L?.viewLessText||"",L?.viewMoreText)}),u(L?.enableViewMoreIcon,e("span",{className:B,dangerouslySetInnerHTML:{__html:a}}))]})," ")]}))})};export{w as default};
2
+ import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as i,getResponsiveValueByScreen as r,useI18nStore as m,makeStyleResponsive as c,makeLineClamp as n}from"@gem-sdk/core";import l from"../../../common/components/NoDataState.js";import{ICON_SVG as a}from"./common/helpers.js";import{createClass as p,createStyle as d,createAttr as h,If as u}from"@gem-sdk/system";import{getClasses as y,getButtonClasses as g,getClassPreBuilt as f}from"./common/classes.js";import{getTextStyle as x,getButtonStyle as k,getStaticCss as N}from"./common/styles.js";import{useGpDescription as j}from"./hooks/useGpDescription.js";let w=w=>{let{setting:L,advanced:b,builderProps:v}=w,{htmlTag:C}=L??{},H=o(),T=i(),M=r(L?.hasLineClamp,T),{ref:_,open:D,isShowViewMore:I,isOverflowChecked:S,handleToggleShowMore:A,mode:P,redirectProductShopifyLink:q}=j(L),{t:G}=m(),V=p({"gp-product-description":!0,[b?.cssClass]:!0}),$=p(y({setting:L,isLiquid:!1})),z=p(g({setting:L})),B=p({"gp-show-more-text":!0}),E=p({"gp-show-more-icon gp-ml-1":!0,...D?{"gp-rotate-180":!0}:{}}),F=p(f()),J=d({...x({setting:L}),...D||S&&!I?{}:c("line-clamp",n(L?.lineClamp,L?.hasLineClamp))}),K=d(k({setting:L})),O=h({"data-id":`${v?.uid}`}),Q=h({"data-gp-text":""}),{gpDescriptionCss:R,textDescriptionCss:U}=N(),W=!H?.descriptionHtml;return W&&"edit"===P?e(l,{elementType:"secondary",description:G("Highlight key benefits with product description."),descriptionActions:[{text:G("Add description"),callback:q},{text:G("sync data"),callback:"syncProduct"}]}):e(t,{children:u(W,"",s("div",{...O,className:V,children:[e("style",{children:U}),e("style",{children:R}),e("div",{className:F}),e("html"===C?"div":"p",{ref:_,...Q,className:$,style:J,dangerouslySetInnerHTML:{__html:H?.descriptionHtml||""}}),u(M&&I,s("button",{className:z,style:K,onClick:A,children:[e("span",{className:B,children:u(D,L?.viewLessText||"",L?.viewMoreText)}),u(L?.enableViewMoreIcon,e("span",{className:E,dangerouslySetInnerHTML:{__html:a}}))]})," ")]}))})};export{w as default};
@@ -1 +1 @@
1
- import{useRef as e,useState as t,useCallback as r,useEffect as l}from"react";import{useProduct as i,useCurrentDevice as n,getResponsiveValueByScreen as o,useProductShopifyEditLink as m,useEditorMode as c,isSafari as p}from"@gem-sdk/core";let s=s=>{let u=e(null),[a,g]=t(!1),[h,H]=t(!1),y=i(),d=n(),x=o(s?.hasLineClamp,d),f=o(s?.lineClamp,d),{redirectProductShopifyLink:C}=m(),w=c(),k=r(()=>`calc(${f} * 1lh)`,[f]),D=r(e=>x&&f&&e||"auto",[x,f]),G=r(()=>{u.current&&(u.current.style.maxHeight=a?k():"none",g(e=>!e))},[a,k]);return l(()=>{D(k())},[s?.typo?.custom,D,k]),l(()=>{let e=u.current;if(g(!1),!e)return;let t=x&&y?.descriptionHtml;t?setTimeout(()=>{let t=e?.scrollHeight??0,r=e?.clientHeight??0,l=window.getComputedStyle(e).getPropertyValue("line-height"),i=parseInt(l,10)||1,n=f&&t>f*i,o=p()?n:r<t;e.style.maxHeight=k(),f&&o?H(()=>!0):H(()=>!1)},100):e.style.maxHeight="none"},[x,f,y?.descriptionHtml,k]),{ref:u,open:a,isShowViewMore:h,handleToggleShowMore:G,mode:w,redirectProductShopifyLink:C}};export{s as useGpDescription};
1
+ import{useRef as e,useState as t,useCallback as r,useEffect as n}from"react";import{useProduct as i,useCurrentDevice as l,getResponsiveValueByScreen as o,useProductShopifyEditLink as c,useEditorMode as s}from"@gem-sdk/core";let u=u=>{let m=e(null),a=e(!1),[p,h]=t(!1),[H,g]=t(!1),[d,f]=t(!1),x=i(),y=l(),w=o(u?.hasLineClamp,y),b=o(u?.lineClamp,y),{redirectProductShopifyLink:v}=c(),C=s(),T=r(()=>`calc(${b} * 1lh)`,[b]),k=r(e=>w&&b&&e||"auto",[w,b]),z=r(()=>{if(!m.current)return;let e=!p;a.current=e,m.current.style.maxHeight=e?"none":T(),h(e)},[p,T]);return n(()=>{k(T())},[u?.typo?.custom,k,T]),n(()=>{let e=m.current;if(a.current=!1,h(!1),f(!1),!e)return;if(!w||!x?.descriptionHtml||!b){e.style.maxHeight="none",g(!1),f(!0);return}let t=()=>{if(a.current){e.style.maxHeight="none";return}e.style.maxHeight=T();let t=e.scrollHeight>e.clientHeight;t||(e.style.maxHeight="none"),g(t),f(!0)},r=window.setTimeout(t,100),n=new ResizeObserver(()=>{t()});return n.observe(e),()=>{window.clearTimeout(r),n.disconnect()}},[w,b,x?.descriptionHtml,T]),{ref:m,open:p,isShowViewMore:H,isOverflowChecked:d,handleToggleShowMore:z,mode:C,redirectProductShopifyLink:v}};export{u as useGpDescription};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.34",
3
+ "version": "17.0.0-dev.38",
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": "17.0.0-dev.12",
30
- "@gem-sdk/styles": "17.0.0-dev.30",
31
- "@gem-sdk/system": "17.0.0-dev.9",
29
+ "@gem-sdk/core": "17.0.0-dev.38",
30
+ "@gem-sdk/styles": "17.0.0-dev.38",
31
+ "@gem-sdk/system": "17.0.0-dev.38",
32
32
  "@types/react-transition-group": "^4.4.12",
33
33
  "postcss-import": "16.1.1",
34
34
  "@thedutchcoder/postcss-rem-to-px": "0.0.2",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@gem-sdk/keen-slider": "^6.8.8",
43
43
  "node-html-parser": "^6.1.13",
44
- "@gem-sdk/swiper": "0.0.22-dev.1",
44
+ "@gem-sdk/swiper": "0.0.24-dev.1",
45
45
  "react-transition-group": "^4.4.5",
46
46
  "react-youtube": "10.1.0"
47
47
  },