@gem-sdk/components 19.1.0-staging.0 → 19.1.0-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/product/components/product-description/common/styles.js +7 -2
- package/dist/cjs/product/components/product-list/ProductList.js +1 -1
- package/dist/cjs/product/components/product-list-v3/ProductList.js +1 -1
- package/dist/esm/product/components/product-description/common/styles.js +7 -2
- package/dist/esm/product/components/product-list/ProductList.js +1 -1
- package/dist/esm/product/components/product-list-v3/ProductList.js +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var e=require("@gem-sdk/core");const t=["desktop","mobile","tablet"],o=(e,o)=>{let l={};return t.forEach(t=>{l={...l,[`--d${"desktop"===t?"":`-${t}`}`]:`${e(t)?"none":o}`}}),l},l=t=>{let o={desktop:"none"};return["desktop","mobile","tablet"].forEach(l=>{let
|
|
1
|
+
"use strict";var e=require("@gem-sdk/core");const t=["desktop","mobile","tablet"],o=(e,o)=>{let l={};return t.forEach(t=>{l={...l,[`--d${"desktop"===t?"":`-${t}`}`]:`${e(t)?"none":o}`}}),l},l=t=>{let o={desktop:"none"};return["desktop","mobile","tablet"].forEach(l=>{let p=e.getResponsiveValueByScreen(t?.lineClamp,l),r=e.getResponsiveValueByScreen(t?.hasLineClamp,l);r&&p?o[l]=`calc(${p} * 1lh)`:o[l]="none"}),{...e.makeStyleResponsive("maxh",o)}};exports.getButtonStyle=({setting:t})=>{let l=e.composeTypographyStyle(t?.typo,t?.typography),p={...e.makeStyleResponsive("jc",t?.textAlign),...e.makeStyle({tt:t?.transform}),...l,...e.getGlobalColorStyle(t?.showMoreColor),...o(e=>!!t?.hasLineClamp&&void 0!==t.hasLineClamp[e]&&!t.hasLineClamp[e],"inline-flex")};return e.filterTruthyStyles(p)},exports.getMaxHeightStyleDefault=l,exports.getStaticCss=()=>{let e=`
|
|
2
2
|
.gp-p-description-text > :not(ol, ul, table, div, style, script) {
|
|
3
3
|
display: inline !important;
|
|
4
4
|
}
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
content: "";
|
|
8
8
|
display: block; /* đảm bảo xuống d\xf2ng tr\xean Safari/iOS */
|
|
9
9
|
}
|
|
10
|
+
|
|
11
|
+
.gp-p-description-text > :is(p, h1, h2, h3, h4, h5, h6, blockquote):not(:last-child)::after {
|
|
12
|
+
height: 1lh;
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
.gp-p-description-text > table {
|
|
11
16
|
box-shadow: none;
|
|
12
17
|
}
|
|
@@ -14,4 +19,4 @@
|
|
|
14
19
|
.p-description-wrapper.gp-p-description-text * {
|
|
15
20
|
color: inherit;
|
|
16
21
|
line-height: inherit !important;
|
|
17
|
-
}`;return{gpDescriptionCss:e,textDescriptionCss:t}},exports.getTextStyle=({setting:t,renderMaxHeight:o})=>{let
|
|
22
|
+
}`;return{gpDescriptionCss:e,textDescriptionCss:t}},exports.getTextStyle=({setting:t,renderMaxHeight:o})=>{let p=e.composeTypographyStyle(t?.typo,t?.typography),r={...e.getStyleShadow({value:t?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:t?.typo?.custom?.hasShadowText}),...e.makeStyleResponsive("ta",t?.textAlign),...e.getGlobalColorStyle(t?.color),...e.makeStyle({tt:t?.transform}),...p,...o&&l(t)};return e.filterTruthyStyles(r)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),a=require("../SalePageProductListWarning.js"),s=require("next/head"),l=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js");const h=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:P,styles:f,builderProps:p,setting:y,builderAttrs:v}=t,{isRelatedProduct:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),a=require("../SalePageProductListWarning.js"),s=require("next/head"),l=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js");const h=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:P,styles:f,builderProps:p,setting:y,builderAttrs:v}=t,{isRelatedProduct:T,productSetting:b}=g.getData(t),I=b.relatedTag&&b.relatedTag[0],{isEditMode:S,isPreviewSharePageMode:j}=d.useRenderMode(),x=d.useCurrentDevice(),k=d.usePageType(),C=d.usePageStore(e=>e.dynamicProduct),O=d.usePageStore(e=>e.dynamicCollection),[w,E]=o.useState(1),[q,M]=o.useState(!0),[N,L]=o.useState(),[W,F]=o.useState(!1),G="GP_FUNNEL_PAGE"===k;"GP_COLLECTION"==k&&(b.productSrc="DynamicCollection",b.collectionId=O?.collectionId??"latest");let D=b?.productSrc??"Collection",Q=C?.productId&&C?.productId!==b.relatedProductId?C?.productId:b.relatedProductId,A=d.useFetchHandle(),B=d.usePageStore(e=>e.publicStoreFrontData),_=o.useMemo(()=>d.hasPublicStoreFrontData(B)?d.createStoreFrontFetcher(B):A,[B]),{data:H}=d.useProductQuery(T&&Q?Q:void 0,{revalidateOnMount:S||j},_),R=b.relatedTag&&"tags"===b.relatedTag[0]&&(!H?.tags||H?.tags.length===0),z=b.relatedTag&&"collection"===b.relatedTag[0]&&(!H?.collections?.edges||H?.collections.edges.length===0),U=b.relatedTag&&"vendor"===b.relatedTag[0]&&!H?.vendor,$=d.useProductsQueryAll(N,{revalidateOnMount:S||j},_),V=S||j,K=d.useProductsQuery("PickProduct"===D?b?.productIds:void 0,{revalidateOnMount:V},{defaultSelectedProductCount:b?.numOfSelectedProducts,selectedStatus:V&&b?.productIds?.length?d.PICKED_PRODUCT_STATUSES:void 0}),J=o.useMemo(()=>({id:b?.collectionId??"latest",numberOfProducts:y?.numberOfProducts??4,orderBy:y?.orderBy}),[b?.collectionId,Number(y?.numberOfProducts),y?.orderBy]),X=d.useCollectionQuery("PickProduct"!==D?J:void 0,{revalidateOnMount:V});o.useEffect(()=>{if(T&&H&&b.relatedTag&&"recommended-product"!==b.relatedType){let e;switch(F(!1),b.hasRelatedExclude&&(e=b?.relatedExclude&&b.relatedExclude.split(",").map(e=>e.trim())),b.relatedTag[0]){case"vendor":L({first:y?.numberOfProducts,where:{vendor:b.relatedTag&&"vendor"===b.relatedTag[0]?H?.vendor:"",idNEQ:H.id}});break;case"collection":{let t=H?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,where:{idNEQ:H.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}}:{first:y?.numberOfProducts,where:{idNEQ:H.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]}});break}case"tags":if(!H.tags||0===H.tags.length){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,where:{idNEQ:H.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:H.tags},{nameNotIn:e}]}]}}:{first:y?.numberOfProducts,where:{idNEQ:H.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:H.tags}]}]}})}}},[H,b.relatedType,b.relatedTag,y?.numberOfProducts,b.relatedExclude,b.hasRelatedExclude,T]);let Y="PickProduct"===D?K.isValidating:X.isValidating,Z="PickProduct"===D?K.isLoading:X.isLoading,ee="PickProduct"===D?K.error:X.error,et=X.data?.collections?.edges?.[0]?.node,er="PickProduct"===D?d.flattenConnection(K.data?.products):d.flattenConnection(et?.products),eo=$?.data?.products?d.flattenConnection($?.data?.products):void 0,ed=T&&eo?eo:"PickProduct"===D&&b?.productIds?.length?b?.productIds?.map(e=>er?.find(t=>t?.baseID===e)).filter(Boolean)??er:"PickProduct"!==D?er:er.filter((e,t)=>t<(b?.numOfSelectedProducts??4)),ea=o.useMemo(()=>W&&T&&S||!ed.length&&!Z&&q&&S,[q,Z,W,T,S,ed.length]),es=o.useMemo(()=>!ed||W&&T,[W,T,ed]),el=o.useMemo(()=>{if(!y?.sameHeight)return[];let e=0,t=Math.ceil((ed?.length??0)/+(y?.slidesToShow?.[x]??1));return Array.from(Array(ed?.length??0)).map((r,o)=>(o>=+(y?.slidesToShow?.[x]??1)*(e+1)&&++e,{gridRow:`${1+w*e}/${w+1+w*e}`,marginBottom:e+1<t?m.getPropertyByDevice(f?.horizontalGutter,x):void 0}))},[y?.sameHeight,y?.slidesToShow,w,ed?.length,x,f?.horizontalGutter]),ei=o.useMemo(()=>Y||Z||ee||!ed||W&&T,[ee,Z,W,T,Y,ed]);o.useEffect(()=>{ei||setTimeout(()=>{let{builderData:e}=p??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&E(r.childElementCount||1)},S?0:500)},[p,ei,S]);let ec=o.useMemo(()=>({collection:et,products:ed,settings:{loop:y?.loop??{desktop:!1},scrollMode:y?.scrollMode??{desktop:"snap"},slidesToShow:y?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:f?.layout,dot:y?.dot,dotStyle:y?.dotStyle,arrow:y?.arrow,controlOverContent:y?.controlOverContent,sameHeight:y?.sameHeight},styles:{horizontalGutter:f?.horizontalGutter,verticalGutter:f?.verticalGutter,fullWidth:f?.fullWidth,spacing:f?.spacing,width:f?.width,height:f?.height}}),[et,ed,y,f]);if(p?.isPreview&&G)return e.jsx(e.Fragment,{});if(ea)return e.jsx(e.Fragment,{children:n.If(q,e.jsx(h,{builderAttrs:v,collectionHandle:et?.handle,productSrc:D,onClose:()=>M(!1),children:P,relatedTagString:I,assignProductNoTags:R||z||U,noAssignedProduct:!Q}))});let{productListWrapStyle:en,productListContentStyle:eu,productListWrapAlignStyle:eg}=c.getStyle(t),{productListWrapClass:em}=u.getClass(t);return e.jsxs("div",{...v,className:em,style:en,children:[!!f?.preloadBgImage&&e.jsxs(s,{children:[!!f.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage.desktop.image.src,as:"image"}),!!f.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.tablet?.image?.src,as:"image"}),!!f.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.mobile?.image?.src,as:"image"})]}),Y||Z?e.jsx(r.default,{}):ee?e.jsxs("div",{children:["Error: ",ee?.message]}):es?e.jsx("div",{children:"Products not found"}):e.jsx(d.ProductListProvider,{...ec,children:e.jsx("div",{className:"gp-flex gp-w-full",style:eg,children:e.jsxs("div",{style:eu,children:[G&&e.jsx(a.default,{}),e.jsx(e.Fragment,{children:n.If(f?.layout==="grid",e.jsx(l.default,{...t,productSortedById:ed,generateGridRowArray:el}),e.jsx(i.default,{...t,productSortedById:ed}))})]})})}),d.filterToolbarPreview(P,!0)]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),s=require("../SalePageProductListWarning.js"),a=require("next/head"),l=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js");const h=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:P,styles:f,builderProps:p,setting:y,builderAttrs:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("next/dynamic"),r=require("../../../common/components/Loading.js"),o=require("react"),d=require("@gem-sdk/core"),s=require("../SalePageProductListWarning.js"),a=require("next/head"),l=require("./ProductListGridLayout.js"),i=require("./ProductListCarouselLayout.js"),c=require("./common/styles.js"),n=require("@gem-sdk/system"),u=require("./common/classes.js"),g=require("./common/helpers.js"),m=require("../../../dialog/common/helpers.js");const h=t(()=>Promise.resolve().then(function(){return require("../ProductNotFound.js")}),{loading:r.default});exports.default=t=>{let{children:P,styles:f,builderProps:p,setting:y,builderAttrs:v}=t,{isRelatedProduct:S,productSetting:T}=g.getData(t),b=T.relatedTag&&T.relatedTag[0],{isEditMode:I,isPreviewSharePageMode:j}=d.useRenderMode(),x=d.useCurrentDevice(),k=d.usePageType(),C=d.usePageStore(e=>e.dynamicProduct),O=d.usePageStore(e=>e.dynamicCollection),[w,E]=o.useState(1),[M,q]=o.useState(!0),[N,L]=o.useState(),[W,F]=o.useState(!1),G="GP_FUNNEL_PAGE"===k;"GP_COLLECTION"==k&&(T.productSrc="DynamicCollection",T.collectionId=O?.collectionId??"latest");let A=T?.productSrc??"Collection",D=C?.productId&&C?.productId!==T.relatedProductId?C?.productId:T.relatedProductId,Q=d.useFetchHandle(),B=d.usePageStore(e=>e.publicStoreFrontData),_=o.useMemo(()=>d.hasPublicStoreFrontData(B)?d.createStoreFrontFetcher(B):Q,[B]),{data:H}=d.useProductQuery(S&&D?D:void 0,{revalidateOnMount:I||j},_),R=T.relatedTag&&"tags"===T.relatedTag[0]&&(!H?.tags||H?.tags.length===0),z=T.relatedTag&&"collection"===T.relatedTag[0]&&(!H?.collections?.edges||H?.collections.edges.length===0),U=T.relatedTag&&"vendor"===T.relatedTag[0]&&!H?.vendor,$=d.useProductsQueryAll(N,{revalidateOnMount:I||j},_),V=I||j,K=d.useProductsQuery("PickProduct"===A?T?.productIds:void 0,{revalidateOnMount:V},{defaultSelectedProductCount:T?.numOfSelectedProducts,selectedStatus:V&&T?.productIds?.length?d.PICKED_PRODUCT_STATUSES:void 0}),J=o.useMemo(()=>({id:T?.collectionId??"latest",numberOfProducts:y?.numberOfProducts??4,orderBy:y?.orderBy}),[T?.collectionId,Number(y?.numberOfProducts),y?.orderBy]),X=d.useCollectionQuery("PickProduct"!==A?J:void 0,{revalidateOnMount:V});o.useEffect(()=>{if(S&&H&&T.relatedTag&&"recommended-product"!==T.relatedType){let e;switch(F(!1),T.hasRelatedExclude&&(e=T?.relatedExclude&&T.relatedExclude.split(",").map(e=>e.trim())),T.relatedTag[0]){case"vendor":L({first:y?.numberOfProducts,where:{vendor:T.relatedTag&&"vendor"===T.relatedTag[0]?H?.vendor:"",idNEQ:H.id}});break;case"collection":{let t=H?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,where:{idNEQ:H.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}}:{first:y?.numberOfProducts,where:{idNEQ:H.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]}});break}case"tags":if(!H.tags||0===H.tags.length){F(!0);break}L(e&&e.length>0?{first:y?.numberOfProducts,where:{idNEQ:H.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:H.tags},{nameNotIn:e}]}]}}:{first:y?.numberOfProducts,where:{idNEQ:H.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:H.tags}]}]}})}}},[H,T.relatedType,T.relatedTag,y?.numberOfProducts,T.relatedExclude,T.hasRelatedExclude,S]);let Y="PickProduct"===A?K.isValidating:X.isValidating,Z="PickProduct"===A?K.isLoading:X.isLoading,ee="PickProduct"===A?K.error:X.error,et=X.data?.collections?.edges?.[0]?.node,er="PickProduct"===A?d.flattenConnection(K.data?.products):d.flattenConnection(et?.products),eo=d.usePageStore(e=>e.assignedProductIds),ed=d.usePageStore(e=>e.isApplyAllProducts),es=o.useMemo(()=>(eo??[]).length>0&&!ed||ed,[eo,ed]),ea=$?.data?.products&&es?d.flattenConnection($?.data?.products):[],el=S?ea:"PickProduct"===A&&T?.productIds?.length?T?.productIds?.map(e=>er?.find(t=>t?.baseID===e)).filter(Boolean)??er:"PickProduct"!==A?er:er.filter((e,t)=>t<(T?.numOfSelectedProducts??4)),ei=o.useMemo(()=>W&&S&&I||!el.length&&!Z&&M&&I,[M,Z,W,S,I,el.length]),ec=o.useMemo(()=>!el||W&&S,[W,S,el]),en=o.useMemo(()=>{if(!y?.sameHeight)return[];let e=0,t=Math.ceil((el?.length??0)/+(y?.slidesToShow?.[x]??1));return Array.from(Array(el?.length??0)).map((r,o)=>(o>=+(y?.slidesToShow?.[x]??1)*(e+1)&&++e,{gridRow:`${1+w*e}/${w+1+w*e}`,marginBottom:e+1<t?m.getPropertyByDevice(f?.horizontalGutter,x):void 0}))},[y?.sameHeight,y?.slidesToShow,w,el?.length,x,f?.horizontalGutter]),eu=o.useMemo(()=>Y||Z||ee||!el||W&&S,[ee,Z,W,S,Y,el]),eg=H?.collections?.edges.map(e=>e.node?.id)??[];o.useEffect(()=>{eu||setTimeout(()=>{let{builderData:e}=p??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&E(r.childElementCount||1)},I?0:500)},[p,eu,I,eg]);let em=o.useMemo(()=>({collection:et,products:el,settings:{loop:y?.loop??{desktop:!1},scrollMode:y?.scrollMode??{desktop:"snap"},slidesToShow:y?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:f?.layout,dot:y?.dot,dotStyle:y?.dotStyle,arrow:y?.arrow,controlOverContent:y?.controlOverContent,sameHeight:y?.sameHeight},styles:{horizontalGutter:f?.horizontalGutter,verticalGutter:f?.verticalGutter,fullWidth:f?.fullWidth,spacing:f?.spacing,width:f?.width,height:f?.height}}),[et,el,y,f]);if(p?.isPreview&&G)return e.jsx(e.Fragment,{});if(ei)return e.jsx(e.Fragment,{children:n.If(M,e.jsx(h,{builderAttrs:v,collectionHandle:et?.handle,productSrc:A,onClose:()=>q(!1),children:P,relatedTagString:b,assignProductNoTags:R||z||U,noAssignedProduct:!D}))});let{productListWrapStyle:eh,productListContentStyle:eP,productListWrapAlignStyle:ef}=c.getStyle(t),{productListWrapClass:ep}=u.getClass(t);return e.jsxs("div",{...v,className:ep,style:eh,children:[!!f?.preloadBgImage&&e.jsxs(a,{children:[!!f.backgroundImage?.desktop?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage.desktop.image.src,as:"image"}),!!f.backgroundImage?.tablet?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.tablet?.image?.src,as:"image"}),!!f.backgroundImage?.mobile?.image?.src&&e.jsx("link",{rel:"preload",href:f.backgroundImage?.mobile?.image?.src,as:"image"})]}),Y||Z?e.jsx(r.default,{}):ee?e.jsxs("div",{children:["Error: ",ee?.message]}):ec?e.jsx("div",{children:"Products not found"}):e.jsx(d.ProductListProvider,{...em,children:e.jsx("div",{className:"gp-flex gp-w-full",style:ef,children:e.jsxs("div",{style:eP,children:[G&&e.jsx(s.default,{}),e.jsx(e.Fragment,{children:n.If(f?.layout==="grid",e.jsx(l.default,{...t,productSortedById:el,generateGridRowArray:en}),e.jsx(i.default,{...t,productSortedById:el}))})]})})}),d.filterToolbarPreview(P,!0)]})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{composeTypographyStyle as t,makeStyle as e,getGlobalColorStyle as o,makeStyleResponsive as l,getStyleShadow as i,filterTruthyStyles as n,getResponsiveValueByScreen as
|
|
1
|
+
import{composeTypographyStyle as t,makeStyle as e,getGlobalColorStyle as o,makeStyleResponsive as l,getStyleShadow as i,filterTruthyStyles as n,getResponsiveValueByScreen as p}from"@gem-sdk/core";let a=["desktop","mobile","tablet"],r=(t,e)=>{let o={};return a.forEach(l=>{o={...o,[`--d${"desktop"===l?"":`-${l}`}`]:`${t(l)?"none":e}`}}),o},s=({setting:p,renderMaxHeight:a})=>{let r=t(p?.typo,p?.typography),s={...i({value:p?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:p?.typo?.custom?.hasShadowText}),...l("ta",p?.textAlign),...o(p?.color),...e({tt:p?.transform}),...r,...a&&c(p)};return n(s)},h=({setting:i})=>{let p=t(i?.typo,i?.typography),a={...l("jc",i?.textAlign),...e({tt:i?.transform}),...p,...o(i?.showMoreColor),...r(t=>!!i?.hasLineClamp&&void 0!==i.hasLineClamp[t]&&!i.hasLineClamp[t],"inline-flex")};return n(a)},d=()=>{let t=`
|
|
2
2
|
.gp-p-description-text > :not(ol, ul, table, div, style, script) {
|
|
3
3
|
display: inline !important;
|
|
4
4
|
}
|
|
@@ -7,6 +7,11 @@ import{composeTypographyStyle as t,makeStyle as e,getGlobalColorStyle as o,makeS
|
|
|
7
7
|
content: "";
|
|
8
8
|
display: block; /* đảm bảo xuống d\xf2ng tr\xean Safari/iOS */
|
|
9
9
|
}
|
|
10
|
+
|
|
11
|
+
.gp-p-description-text > :is(p, h1, h2, h3, h4, h5, h6, blockquote):not(:last-child)::after {
|
|
12
|
+
height: 1lh;
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
.gp-p-description-text > table {
|
|
11
16
|
box-shadow: none;
|
|
12
17
|
}
|
|
@@ -14,4 +19,4 @@ import{composeTypographyStyle as t,makeStyle as e,getGlobalColorStyle as o,makeS
|
|
|
14
19
|
.p-description-wrapper.gp-p-description-text * {
|
|
15
20
|
color: inherit;
|
|
16
21
|
line-height: inherit !important;
|
|
17
|
-
}`;return{gpDescriptionCss:t,textDescriptionCss:e}},c=t=>{let e={desktop:"none"};return["desktop","mobile","tablet"].forEach(o=>{let l=
|
|
22
|
+
}`;return{gpDescriptionCss:t,textDescriptionCss:e}},c=t=>{let e={desktop:"none"};return["desktop","mobile","tablet"].forEach(o=>{let l=p(t?.lineClamp,o),i=p(t?.hasLineClamp,o);i&&l?e[o]=`calc(${l} * 1lh)`:e[o]="none"}),{...l("maxh",e)}};export{h as getButtonStyle,c as getMaxHeightStyleDefault,d as getStaticCss,s as getTextStyle};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as a,useMemo as l,useEffect as i}from"react";import{useRenderMode as c,useCurrentDevice as s,usePageType as n,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as a,useMemo as l,useEffect as i}from"react";import{useRenderMode as c,useCurrentDevice as s,usePageType as n,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,PICKED_PRODUCT_STATUSES as b,useCollectionQuery as k,flattenConnection as I,ProductListProvider as T,filterToolbarPreview as v}from"@gem-sdk/core";import y from"../SalePageProductListWarning.js";import O from"next/head";import w from"./ProductListGridLayout.js";import S from"./ProductListCarouselLayout.js";import{getStyle as C}from"./common/styles.js";import{If as E}from"@gem-sdk/system";import{getClass as N}from"./common/classes.js";import{getData as L}from"./common/helpers.js";import{getPropertyByDevice as W}from"../../../dialog/common/helpers.js";let j=o(()=>import("../ProductNotFound.js"),{loading:d}),x=o=>{let{children:x,styles:G,builderProps:M,setting:B,builderAttrs:A}=o,{isRelatedProduct:H,productSetting:Q}=L(o),z=Q.relatedTag&&Q.relatedTag[0],{isEditMode:D,isPreviewSharePageMode:F}=c(),R=s(),$=n(),_=u(e=>e.dynamicProduct),V=u(e=>e.dynamicCollection),[q,U]=a(1),[J,K]=a(!0),[X,Y]=a(),[Z,ee]=a(!1),et="GP_FUNNEL_PAGE"===$;"GP_COLLECTION"==$&&(Q.productSrc="DynamicCollection",Q.collectionId=V?.collectionId??"latest");let er=Q?.productSrc??"Collection",eo=_?.productId&&_?.productId!==Q.relatedProductId?_?.productId:Q.relatedProductId,ed=m(),ea=u(e=>e.publicStoreFrontData),el=l(()=>g(ea)?h(ea):ed,[ea]),{data:ei}=p(H&&eo?eo:void 0,{revalidateOnMount:D||F},el),ec=Q.relatedTag&&"tags"===Q.relatedTag[0]&&(!ei?.tags||ei?.tags.length===0),es=Q.relatedTag&&"collection"===Q.relatedTag[0]&&(!ei?.collections?.edges||ei?.collections.edges.length===0),en=Q.relatedTag&&"vendor"===Q.relatedTag[0]&&!ei?.vendor,eu=f(X,{revalidateOnMount:D||F},el),em=D||F,eg=P("PickProduct"===er?Q?.productIds:void 0,{revalidateOnMount:em},{defaultSelectedProductCount:Q?.numOfSelectedProducts,selectedStatus:em&&Q?.productIds?.length?b:void 0}),eh=l(()=>({id:Q?.collectionId??"latest",numberOfProducts:B?.numberOfProducts??4,orderBy:B?.orderBy}),[Q?.collectionId,Number(B?.numberOfProducts),B?.orderBy]),ep=k("PickProduct"!==er?eh:void 0,{revalidateOnMount:em});i(()=>{if(H&&ei&&Q.relatedTag&&"recommended-product"!==Q.relatedType){let e;switch(ee(!1),Q.hasRelatedExclude&&(e=Q?.relatedExclude&&Q.relatedExclude.split(",").map(e=>e.trim())),Q.relatedTag[0]){case"vendor":Y({first:B?.numberOfProducts,where:{vendor:Q.relatedTag&&"vendor"===Q.relatedTag[0]?ei?.vendor:"",idNEQ:ei.id}});break;case"collection":{let t=ei?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){ee(!0);break}Y(e&&e.length>0?{first:B?.numberOfProducts,where:{idNEQ:ei.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}}:{first:B?.numberOfProducts,where:{idNEQ:ei.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]}});break}case"tags":if(!ei.tags||0===ei.tags.length){ee(!0);break}Y(e&&e.length>0?{first:B?.numberOfProducts,where:{idNEQ:ei.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ei.tags},{nameNotIn:e}]}]}}:{first:B?.numberOfProducts,where:{idNEQ:ei.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ei.tags}]}]}})}}},[ei,Q.relatedType,Q.relatedTag,B?.numberOfProducts,Q.relatedExclude,Q.hasRelatedExclude,H]);let ef="PickProduct"===er?eg.isValidating:ep.isValidating,eP="PickProduct"===er?eg.isLoading:ep.isLoading,eb="PickProduct"===er?eg.error:ep.error,ek=ep.data?.collections?.edges?.[0]?.node,eI="PickProduct"===er?I(eg.data?.products):I(ek?.products),eT=eu?.data?.products?I(eu?.data?.products):void 0,ev=H&&eT?eT:"PickProduct"===er&&Q?.productIds?.length?Q?.productIds?.map(e=>eI?.find(t=>t?.baseID===e)).filter(Boolean)??eI:"PickProduct"!==er?eI:eI.filter((e,t)=>t<(Q?.numOfSelectedProducts??4)),ey=l(()=>Z&&H&&D||!ev.length&&!eP&&J&&D,[J,eP,Z,H,D,ev.length]),eO=l(()=>!ev||Z&&H,[Z,H,ev]),ew=l(()=>{if(!B?.sameHeight)return[];let e=0,t=Math.ceil((ev?.length??0)/+(B?.slidesToShow?.[R]??1));return Array.from(Array(ev?.length??0)).map((r,o)=>(o>=+(B?.slidesToShow?.[R]??1)*(e+1)&&++e,{gridRow:`${1+q*e}/${q+1+q*e}`,marginBottom:e+1<t?W(G?.horizontalGutter,R):void 0}))},[B?.sameHeight,B?.slidesToShow,q,ev?.length,R,G?.horizontalGutter]),eS=l(()=>ef||eP||eb||!ev||Z&&H,[eb,eP,Z,H,ef,ev]);i(()=>{eS||setTimeout(()=>{let{builderData:e}=M??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&U(r.childElementCount||1)},D?0:500)},[M,eS,D]);let eC=l(()=>({collection:ek,products:ev,settings:{loop:B?.loop??{desktop:!1},scrollMode:B?.scrollMode??{desktop:"snap"},slidesToShow:B?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:G?.layout,dot:B?.dot,dotStyle:B?.dotStyle,arrow:B?.arrow,controlOverContent:B?.controlOverContent,sameHeight:B?.sameHeight},styles:{horizontalGutter:G?.horizontalGutter,verticalGutter:G?.verticalGutter,fullWidth:G?.fullWidth,spacing:G?.spacing,width:G?.width,height:G?.height}}),[ek,ev,B,G]);if(M?.isPreview&&et)return e(t,{});if(ey)return e(t,{children:E(J,e(j,{builderAttrs:A,collectionHandle:ek?.handle,productSrc:er,onClose:()=>K(!1),children:x,relatedTagString:z,assignProductNoTags:ec||es||en,noAssignedProduct:!eo}))});let{productListWrapStyle:eE,productListContentStyle:eN,productListWrapAlignStyle:eL}=C(o),{productListWrapClass:eW}=N(o);return r("div",{...A,className:eW,style:eE,children:[!!G?.preloadBgImage&&r(O,{children:[!!G.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage.desktop.image.src,as:"image"}),!!G.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.tablet?.image?.src,as:"image"}),!!G.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.mobile?.image?.src,as:"image"})]}),ef||eP?e(d,{}):eb?r("div",{children:["Error: ",eb?.message]}):eO?e("div",{children:"Products not found"}):e(T,{...eC,children:e("div",{className:"gp-flex gp-w-full",style:eL,children:r("div",{style:eN,children:[et&&e(y,{}),e(t,{children:E(G?.layout==="grid",e(w,{...o,productSortedById:ev,generateGridRowArray:ew}),e(S,{...o,productSortedById:ev}))})]})})}),v(x,!0)]})};export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as l,useMemo as a,useEffect as i}from"react";import{useRenderMode as s,useCurrentDevice as c,usePageType as n,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"next/dynamic";import d from"../../../common/components/Loading.js";import{useState as l,useMemo as a,useEffect as i}from"react";import{useRenderMode as s,useCurrentDevice as c,usePageType as n,usePageStore as u,useFetchHandle as m,hasPublicStoreFrontData as g,createStoreFrontFetcher as h,useProductQuery as p,useProductsQueryAll as f,useProductsQuery as P,PICKED_PRODUCT_STATUSES as b,useCollectionQuery as I,flattenConnection as k,ProductListProvider as T,filterToolbarPreview as v}from"@gem-sdk/core";import y from"../SalePageProductListWarning.js";import O from"next/head";import w from"./ProductListGridLayout.js";import S from"./ProductListCarouselLayout.js";import{getStyle as C}from"./common/styles.js";import{If as E}from"@gem-sdk/system";import{getClass as N}from"./common/classes.js";import{getData as L}from"./common/helpers.js";import{getPropertyByDevice as W}from"../../../dialog/common/helpers.js";let j=o(()=>import("../ProductNotFound.js"),{loading:d}),x=o=>{let{children:x,styles:G,builderProps:A,setting:M,builderAttrs:B}=o,{isRelatedProduct:H,productSetting:Q}=L(o),z=Q.relatedTag&&Q.relatedTag[0],{isEditMode:D,isPreviewSharePageMode:F}=s(),R=c(),$=n(),_=u(e=>e.dynamicProduct),V=u(e=>e.dynamicCollection),[q,U]=l(1),[J,K]=l(!0),[X,Y]=l(),[Z,ee]=l(!1),et="GP_FUNNEL_PAGE"===$;"GP_COLLECTION"==$&&(Q.productSrc="DynamicCollection",Q.collectionId=V?.collectionId??"latest");let er=Q?.productSrc??"Collection",eo=_?.productId&&_?.productId!==Q.relatedProductId?_?.productId:Q.relatedProductId,ed=m(),el=u(e=>e.publicStoreFrontData),ea=a(()=>g(el)?h(el):ed,[el]),{data:ei}=p(H&&eo?eo:void 0,{revalidateOnMount:D||F},ea),es=Q.relatedTag&&"tags"===Q.relatedTag[0]&&(!ei?.tags||ei?.tags.length===0),ec=Q.relatedTag&&"collection"===Q.relatedTag[0]&&(!ei?.collections?.edges||ei?.collections.edges.length===0),en=Q.relatedTag&&"vendor"===Q.relatedTag[0]&&!ei?.vendor,eu=f(X,{revalidateOnMount:D||F},ea),em=D||F,eg=P("PickProduct"===er?Q?.productIds:void 0,{revalidateOnMount:em},{defaultSelectedProductCount:Q?.numOfSelectedProducts,selectedStatus:em&&Q?.productIds?.length?b:void 0}),eh=a(()=>({id:Q?.collectionId??"latest",numberOfProducts:M?.numberOfProducts??4,orderBy:M?.orderBy}),[Q?.collectionId,Number(M?.numberOfProducts),M?.orderBy]),ep=I("PickProduct"!==er?eh:void 0,{revalidateOnMount:em});i(()=>{if(H&&ei&&Q.relatedTag&&"recommended-product"!==Q.relatedType){let e;switch(ee(!1),Q.hasRelatedExclude&&(e=Q?.relatedExclude&&Q.relatedExclude.split(",").map(e=>e.trim())),Q.relatedTag[0]){case"vendor":Y({first:M?.numberOfProducts,where:{vendor:Q.relatedTag&&"vendor"===Q.relatedTag[0]?ei?.vendor:"",idNEQ:ei.id}});break;case"collection":{let t=ei?.collections?.edges.map(e=>e.node?.id);if(!t||t?.length===0){ee(!0);break}Y(e&&e.length>0?{first:M?.numberOfProducts,where:{idNEQ:ei.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t},{titleNotIn:e}]}]}}:{first:M?.numberOfProducts,where:{idNEQ:ei.id,hasCollectionProductsWith:[{hasCollectionWith:[{idIn:t}]}]}});break}case"tags":if(!ei.tags||0===ei.tags.length){ee(!0);break}Y(e&&e.length>0?{first:M?.numberOfProducts,where:{idNEQ:ei.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ei.tags},{nameNotIn:e}]}]}}:{first:M?.numberOfProducts,where:{idNEQ:ei.id,hasProductTagsWith:[{hasTagsWith:[{nameIn:ei.tags}]}]}})}}},[ei,Q.relatedType,Q.relatedTag,M?.numberOfProducts,Q.relatedExclude,Q.hasRelatedExclude,H]);let ef="PickProduct"===er?eg.isValidating:ep.isValidating,eP="PickProduct"===er?eg.isLoading:ep.isLoading,eb="PickProduct"===er?eg.error:ep.error,eI=ep.data?.collections?.edges?.[0]?.node,ek="PickProduct"===er?k(eg.data?.products):k(eI?.products),eT=u(e=>e.assignedProductIds),ev=u(e=>e.isApplyAllProducts),ey=a(()=>(eT??[]).length>0&&!ev||ev,[eT,ev]),eO=eu?.data?.products&&ey?k(eu?.data?.products):[],ew=H?eO:"PickProduct"===er&&Q?.productIds?.length?Q?.productIds?.map(e=>ek?.find(t=>t?.baseID===e)).filter(Boolean)??ek:"PickProduct"!==er?ek:ek.filter((e,t)=>t<(Q?.numOfSelectedProducts??4)),eS=a(()=>Z&&H&&D||!ew.length&&!eP&&J&&D,[J,eP,Z,H,D,ew.length]),eC=a(()=>!ew||Z&&H,[Z,H,ew]),eE=a(()=>{if(!M?.sameHeight)return[];let e=0,t=Math.ceil((ew?.length??0)/+(M?.slidesToShow?.[R]??1));return Array.from(Array(ew?.length??0)).map((r,o)=>(o>=+(M?.slidesToShow?.[R]??1)*(e+1)&&++e,{gridRow:`${1+q*e}/${q+1+q*e}`,marginBottom:e+1<t?W(G?.horizontalGutter,R):void 0}))},[M?.sameHeight,M?.slidesToShow,q,ew?.length,R,G?.horizontalGutter]),eN=a(()=>ef||eP||eb||!ew||Z&&H,[eb,eP,Z,H,ef,ew]),eL=ei?.collections?.edges.map(e=>e.node?.id)??[];i(()=>{eN||setTimeout(()=>{let{builderData:e}=A??{},t=e?.childrens?.[0];if(!t)return;let r=document.querySelector(`[data-id=${t}] div`);r&&U(r.childElementCount||1)},D?0:500)},[A,eN,D,eL]);let eW=a(()=>({collection:eI,products:ew,settings:{loop:M?.loop??{desktop:!1},scrollMode:M?.scrollMode??{desktop:"snap"},slidesToShow:M?.slidesToShow??{desktop:4,tablet:3,mobile:1},layout:G?.layout,dot:M?.dot,dotStyle:M?.dotStyle,arrow:M?.arrow,controlOverContent:M?.controlOverContent,sameHeight:M?.sameHeight},styles:{horizontalGutter:G?.horizontalGutter,verticalGutter:G?.verticalGutter,fullWidth:G?.fullWidth,spacing:G?.spacing,width:G?.width,height:G?.height}}),[eI,ew,M,G]);if(A?.isPreview&&et)return e(t,{});if(eS)return e(t,{children:E(J,e(j,{builderAttrs:B,collectionHandle:eI?.handle,productSrc:er,onClose:()=>K(!1),children:x,relatedTagString:z,assignProductNoTags:es||ec||en,noAssignedProduct:!eo}))});let{productListWrapStyle:ej,productListContentStyle:ex,productListWrapAlignStyle:eG}=C(o),{productListWrapClass:eA}=N(o);return r("div",{...B,className:eA,style:ej,children:[!!G?.preloadBgImage&&r(O,{children:[!!G.backgroundImage?.desktop?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage.desktop.image.src,as:"image"}),!!G.backgroundImage?.tablet?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.tablet?.image?.src,as:"image"}),!!G.backgroundImage?.mobile?.image?.src&&e("link",{rel:"preload",href:G.backgroundImage?.mobile?.image?.src,as:"image"})]}),ef||eP?e(d,{}):eb?r("div",{children:["Error: ",eb?.message]}):eC?e("div",{children:"Products not found"}):e(T,{...eW,children:e("div",{className:"gp-flex gp-w-full",style:eG,children:r("div",{style:ex,children:[et&&e(y,{}),e(t,{children:E(G?.layout==="grid",e(w,{...o,productSortedById:ew,generateGridRowArray:eE}),e(S,{...o,productSortedById:ew}))})]})})}),v(x,!0)]})};export{x as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/components",
|
|
3
|
-
"version": "19.1.0-staging.
|
|
3
|
+
"version": "19.1.0-staging.2",
|
|
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": "19.1.0-staging.
|
|
29
|
+
"@gem-sdk/core": "19.1.0-staging.1",
|
|
30
30
|
"@gem-sdk/styles": "19.0.0",
|
|
31
31
|
"@gem-sdk/system": "19.0.0",
|
|
32
32
|
"@types/react-transition-group": "^4.4.12",
|