@gem-sdk/components 13.1.4 → 13.1.6

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,35 +1,35 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),helpers=require("../../../helpers.js"),generateLiquidContent=require("./utils/generateLiquidContent.js"),renderBadgeLiquid=require("./utils/renderBadgeLiquid.js"),system=require("@gem-sdk/system"),constants=require("./constants.js"),styles=require("./common/styles.js"),classes=require("./common/classes.js"),attrs=require("./common/attrs.js");const ProductBadge=e=>{let{styles:t,setting:s,builderProps:a,pageContext:r}=e,i=s?.shape!=="image",l=i&&s?.displayContent?.trim()==="",n=system.createClass({...classes.getContainerClasses({isInstant:!1,props:e})}),c=system.createStyle({...styles.getContainerStyle(e,constants.IS_LIQUID)}),d=system.createClass({...classes.getWrapperClasses(e)}),o=system.createClass({...classes.getSubWrapperClass(e)}),p=system.createStyle({...styles.getSubWrapperStyle({props:e})}),y=system.createAttr({...attrs.getSubWrapperAttrs(e)}),u=styles.getContentStyleInternal(e),g=system.createClass({...classes.getTextContainerClasses()}),m=system.createAttr({...attrs.getContainerAttrs(e)}),C=system.createClass({...classes.getTextWrapperClasses()}),v=system.createStyle({...styles.getTextBadgeWrapperStyles({setting:s,styles:t})}),$=system.createClass({...classes.getTextContentClasses(t)}),S=system.createStyle({...styles.getTextContentStyle({setting:s,styles:t})}),q=system.createAttr({...attrs.getTextContentAttrs()}),I=system.createClass({...classes.getImageContainerClasses()}),f=system.createStyle({...styles.getImageContainerStyles({setting:s,styles:t})}),j=system.createClass({...classes.getImageClasses()}),A=system.createAttr({...attrs.getImageAttr({setting:s})}),D=system.createStateOrContext({minPrice:"{{ minPriceValue | replace: '\"', '\\\"' | escape }}",variantIDs:'{{ product.variants | map: "id" | json | escape }}',variantInventoryQuantities:'{{ product.variants | map: "inventory_quantity" | json | escape }}',amountDiscount:"{{amountDiscountValue | replace: '\"', '\\\"' | escape }}",percentDiscount:"{{percentDiscountValue}}",price:"{{price}}",displayTrigger:JSON.parse(JSON.stringify(s?.displayTrigger).replaceAll("'","'")),uid:e.builderProps?.uid,productCreatedAt:'{{product.created_at | date: "%Y-%m-%d" }}',productTags:"{{ product.tags | join: \",\" | replace: '\"', '\\\"' | escape }}",isTextBadge:i}),{displayContent:P,translate:L}=s??{},T=helpers.getDynamicSourceLocales({val:P?.trim(),uid:a?.uid,settingId:"displayContent",isLiquid:!0,pageContext:r,translate:L});return core.template`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),helpers=require("../../../helpers.js"),generateLiquidContent=require("./utils/generateLiquidContent.js"),renderBadgeLiquid=require("./utils/renderBadgeLiquid.js"),system=require("@gem-sdk/system"),constants=require("./constants.js"),styles=require("./common/styles.js"),classes=require("./common/classes.js"),attrs=require("./common/attrs.js"),common=require("./utils/common.js");const ProductBadge=e=>{let{styles:t,setting:s,builderProps:a,pageContext:r}=e,i=s?.shape!=="image",n=i&&s?.displayContent?.trim()==="",c=common.checkDiscountContentProductBadge(s?.displayContent),l=system.createClass({...classes.getContainerClasses({isInstant:!1,props:e})}),o=system.createStyle({...styles.getContainerStyle(e,constants.IS_LIQUID)}),d=system.createClass({...classes.getWrapperClasses(e)}),p=system.createClass({...classes.getSubWrapperClass(e)}),u=system.createStyle({...styles.getSubWrapperStyle({props:e})}),y=system.createAttr({...attrs.getSubWrapperAttrs(e)}),g=styles.getContentStyleInternal(e),m=system.createClass({...classes.getTextContainerClasses()}),C=system.createAttr({...attrs.getContainerAttrs(e)}),v=system.createClass({...classes.getTextWrapperClasses()}),$=system.createStyle({...styles.getTextBadgeWrapperStyles({setting:s,styles:t})}),S=system.createClass({...classes.getTextContentClasses(t)}),q=system.createStyle({...styles.getTextContentStyle({setting:s,styles:t})}),I=system.createAttr({...attrs.getTextContentAttrs()}),j=system.createClass({...classes.getImageContainerClasses()}),D=system.createStyle({...styles.getImageContainerStyles({setting:s,styles:t})}),P=system.createClass({...classes.getImageClasses()}),f=system.createAttr({...attrs.getImageAttr({setting:s})}),A=system.createStateOrContext({minPrice:"{{ minPriceValue | replace: '\"', '\\\"' | escape }}",variantIDs:'{{ product.variants | map: "id" | json | escape }}',variantInventoryQuantities:'{{ product.variants | map: "inventory_quantity" | json | escape }}',amountDiscount:"{{amountDiscountValue | replace: '\"', '\\\"' | escape }}",percentDiscount:"{{percentDiscountValue}}",price:"{{price}}",displayTrigger:JSON.parse(JSON.stringify(s?.displayTrigger).replaceAll("'","'")),uid:e.builderProps?.uid,productCreatedAt:'{{product.created_at | date: "%Y-%m-%d" }}',productTags:"{{ product.tags | join: \",\" | replace: '\"', '\\\"' | escape }}",isTextBadge:i}),{displayContent:L,translate:T}=s??{},b=helpers.getDynamicSourceLocales({val:L?.trim(),uid:a?.uid,settingId:"displayContent",isLiquid:!0,pageContext:r,translate:T});return core.template`
2
2
  {% if product %}
3
- ${generateLiquidContent.generateBadgeContent(T,r?.isPreviewing)}
4
- ${renderBadgeLiquid.renderBadgeInFirstTime(s?.displayTrigger,!l)}
3
+ ${generateLiquidContent.generateBadgeContent(b,r?.isPreviewing)}
4
+ ${renderBadgeLiquid.renderBadgeInFirstTime(s?.displayTrigger,!n,c)}
5
5
  <gp-product-badge
6
- ${{...m}}
7
- gp-data='${core.dataStringify(D)}'
8
- class="${n}"
9
- style="${c}"
10
- data-display-content="${r?.isPreviewing?T:core.sanitizeLiquid(`{{${T}}}`)}"
6
+ ${{...C}}
7
+ gp-data='${core.dataStringify(A)}'
8
+ class="${l} {{ className }}"
9
+ style="${o}"
10
+ data-display-content="${r?.isPreviewing?b:core.sanitizeLiquid(`{{${b}}}`)}"
11
11
  >
12
12
  <div class="${d}">
13
13
  <div
14
14
  ${{...y}}
15
- class="${o}"
16
- style="${p}"
15
+ class="${p}"
16
+ style="${u}"
17
17
  >
18
- <style>${u}</style>
18
+ <style>${g}</style>
19
19
  ${core.RenderIf(i,core.template`
20
- <div class="${g}">
20
+ <div class="${m}">
21
21
  <div
22
- class="${C}"
23
- style="${v}"
22
+ class="${v}"
23
+ style="${$}"
24
24
  >
25
25
  <pre
26
- ${{...q}}
27
- class="${$}"
28
- style="${S}"
26
+ ${{...I}}
27
+ class="${S}"
28
+ style="${q}"
29
29
  >{{ content | replace: percentDiscountKey, percentDiscountValue | replace: amountDiscountKey, amountDiscountValue | replace: inventoryQuantityKey, inventoryQuantityValue | replace: minPriceKey, minPriceValue }}</pre>
30
30
  </div>
31
- </div>`,core.template`<div class="${I}" style="${f}">
32
- <img ${{...A}} class="${j}" alt="" />
31
+ </div>`,core.template`<div class="${j}" style="${D}">
32
+ <img ${{...f}} class="${P}" alt="" />
33
33
  </div>`)}
34
34
  </div>
35
35
  </div>
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),common=require("../utils/common.js"),getShapePosition=require("../utils/getShapePosition.js"),getRotateShape=require("../utils/getRotateShape.js"),getStyleAdvanced=require("../utils/getStyleAdvanced.js"),getWhiteSpace=require("../utils/getWhiteSpace.js"),stylesV2=require("../utils/stylesV2.js"),shape=require("../utils/shape.js"),renderBadgeILP=require("../utils/renderBadgeILP.js");const getSizeStyles=e=>{let{setting:t,styles:o}=e,r=shape.getShape(t?.shape),a=t?.contentType==="text",i=a?o?.textSizeV2:o?.imageSizeV2;return a?common.getSize(r,i):common.getSize(void 0,i)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:a,navigationPosition:i,imageData:s,dotData:n}=e,g=o?.positionWithImage==="outside",l=common.getWrapperStyle(t),p=getShapePosition.getShapePosition({positionType:r?.position,isLiquid:!1,navigationPosition:i,dataImage:{...s,...n}}),S=getSizeStyles(e),d=getStyleAdvanced.getStyleAdvanced(g?{}:{...p,...S},a);return{...!g&&{"--pos":"absolute"},...l,...d}},getTextContentStyle=({styles:e,setting:t})=>{let o=core.makeGlobalSize(e?.textSizeV2).padding,r=shape.getShape(t?.shape),a=t?.positionWithImage==="outside";return{...getWhiteSpace.getWhiteSpaceStyle(e?.textSizeV2),...common.convertToStyle(r?.textStyle),...getRotateShape.composeTextStyleByPosition(r,e?.position,a),...core.composeTypographyStyle(e?.typo),...core.getStyleShadow({value:e?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:e?.typo?.custom?.hasShadowText}),...stylesV2.getStyleBackground(!!r?.backgroundColorInText,e?.badgeColorV2),...o}},getBorderStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?stylesV2.getStyleBorder(e?.textBadgeBorder):stylesV2.getStyleBorder(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?stylesV2.getStyleCornerRadius(e?.textBadgeCorner,o?.shapeRadius):stylesV2.getStyleCornerRadius(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=getBorderStyles({setting:t,styles:e}),a=t?.positionWithImage==="outside",i=getCornerStyles({setting:t,styles:e}),s=common.getShapeWrapperPadding(o?.ratio);return{...r,...i,...getRotateShape.composeShapeStyleByPosition(o,e?.position,a),...stylesV2.getStyleBackground(!o?.backgroundColorInText,e?.badgeColorV2),...s,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:e,setting:t})=>{let o=getBorderStyles({setting:t,styles:e}),r=getCornerStyles({setting:t,styles:e}),a=core.makeGlobalSize(e?.imageSizeV2).padding;return{...o,...r,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:r})=>{let{"bundle-item":a,setting:i}=e;if(a)return 1;let s=i?.contentType==="text",n=s&&!i?.displayContent?.trim();if(n)return r?.2:0;let g=core.convertDecimalToNumber(t?.price)??0,l=core.convertDecimalToNumber(t?.salePrice)??0,p=l-g>0,S=renderBadgeILP.checkShowBadge(i?.displayTrigger,o,t);return p&&S?1:r?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:a}=e,i=a?.positionWithImage==="outside",s=getSizeStyles(e),n=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...i?{...s,"--mb":0}:{},opacity:n}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,a=o?.contentType==="text";return stylesV2.generateShadowCSS(`[id="${r?.uid}"] .product-badge-item`,a?t?.textBadgeShadow:t?.imageBadgeShadow)};exports.getContainerStyle=getContainerStyle,exports.getContentStyleInternal=getContentStyleInternal,exports.getImageContainerStyles=getImageContainerStyles,exports.getSubWrapperStyle=getSubWrapperStyle,exports.getTextBadgeWrapperStyles=getTextBadgeWrapperStyles,exports.getTextContentStyle=getTextContentStyle;
1
+ "use strict";var core=require("@gem-sdk/core"),common=require("../utils/common.js"),getShapePosition=require("../utils/getShapePosition.js"),getRotateShape=require("../utils/getRotateShape.js"),getStyleAdvanced=require("../utils/getStyleAdvanced.js"),getWhiteSpace=require("../utils/getWhiteSpace.js"),stylesV2=require("../utils/stylesV2.js"),shape=require("../utils/shape.js"),renderBadgeILP=require("../utils/renderBadgeILP.js");const getSizeStyles=e=>{let{setting:t,styles:o}=e,r=shape.getShape(t?.shape),a=t?.contentType==="text",i=a?o?.textSizeV2:o?.imageSizeV2;return a?common.getSize(r,i):common.getSize(void 0,i)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:a,navigationPosition:i,imageData:s,dotData:n}=e,g=o?.positionWithImage==="outside",l=common.getWrapperStyle(t),p=getShapePosition.getShapePosition({positionType:r?.position,isLiquid:!1,navigationPosition:i,dataImage:{...s,...n}}),S=getSizeStyles(e),d=getStyleAdvanced.getStyleAdvanced(g?{}:{...p,...S},a);return{...!g&&{"--pos":"absolute"},...l,...d}},getTextContentStyle=({styles:e,setting:t})=>{let o=core.makeGlobalSize(e?.textSizeV2).padding,r=shape.getShape(t?.shape),a=t?.positionWithImage==="outside";return{...getWhiteSpace.getWhiteSpaceStyle(e?.textSizeV2),...common.convertToStyle(r?.textStyle),...getRotateShape.composeTextStyleByPosition(r,e?.position,a),...core.composeTypographyStyle(e?.typo),...core.getStyleShadow({value:e?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:e?.typo?.custom?.hasShadowText}),...stylesV2.getStyleBackground(!!r?.backgroundColorInText,e?.badgeColorV2),...o}},getBorderStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?stylesV2.getStyleBorder(e?.textBadgeBorder):stylesV2.getStyleBorder(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?stylesV2.getStyleCornerRadius(e?.textBadgeCorner,o?.shapeRadius):stylesV2.getStyleCornerRadius(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=shape.getShape(t?.shape),r=getBorderStyles({setting:t,styles:e}),a=t?.positionWithImage==="outside",i=getCornerStyles({setting:t,styles:e}),s=common.getShapeWrapperPadding(o?.ratio);return{...r,...i,...getRotateShape.composeShapeStyleByPosition(o,e?.position,a),...stylesV2.getStyleBackground(!o?.backgroundColorInText,e?.badgeColorV2),...s,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:e,setting:t})=>{let o=getBorderStyles({setting:t,styles:e}),r=getCornerStyles({setting:t,styles:e}),a=core.makeGlobalSize(e?.imageSizeV2).padding;return{...o,...r,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:r})=>{let{"bundle-item":a,setting:i}=e;if(a)return 1;let s=i?.contentType==="text",n=s&&!i?.displayContent?.trim(),g=common.checkDiscountContentProductBadge(i?.displayContent);if(n)return r?.2:0;let l=core.convertDecimalToNumber(t?.price)??0,p=core.convertDecimalToNumber(t?.salePrice)??0,S=p-l>0,d=renderBadgeILP.checkShowBadge(i?.displayTrigger,o,t);return(S||!g)&&d?1:r?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:a}=e,i=a?.positionWithImage==="outside",s=getSizeStyles(e),n=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...i?{...s,"--mb":0}:{},opacity:n}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,a=o?.contentType==="text";return stylesV2.generateShadowCSS(`[id="${r?.uid}"] .product-badge-item`,a?t?.textBadgeShadow:t?.imageBadgeShadow)};exports.getContainerStyle=getContainerStyle,exports.getContentStyleInternal=getContentStyleInternal,exports.getImageContainerStyles=getImageContainerStyles,exports.getSubWrapperStyle=getSubWrapperStyle,exports.getTextBadgeWrapperStyles=getTextBadgeWrapperStyles,exports.getTextContentStyle=getTextContentStyle;
@@ -1,4 +1,4 @@
1
- "use strict";var types=require("../types.js");const getMinValueForInventory=e=>e===types.CompareType.ABOVE?0:e===types.CompareType.BELOW?2:1,renderBadgeInFirstTime=(e,i)=>`
1
+ "use strict";var types=require("../types.js");const getMinValueForInventory=e=>e===types.CompareType.ABOVE?0:e===types.CompareType.BELOW?2:1,renderBadgeInFirstTime=(e,i,n)=>`
2
2
  {% assign isShow = true %}
3
3
  {% assign conditionTriggers = "" %}
4
4
  {% assign isInventoryStatus = false %}
@@ -17,10 +17,15 @@
17
17
  {% assign salePrice = variant.compare_at_price | times: 1.0 %}
18
18
  {% assign priceSave = salePrice | minus: price %}
19
19
  {% assign isEmptyBadgeContent = ${!i} %}
20
- {% if priceSave <= 0 or isEmptyBadgeContent == true %}
21
- {% assign isShow = false %}
20
+ {% assign isNotDiscount = false %}
21
+ {% assign isBadgeContentHasDiscount = ${n} %}
22
+ {% if isEmptyBadgeContent == true %}
23
+ {% assign isNotDiscount = true %}
22
24
  {% endif %}
23
- {% if isShow %}
25
+ {% if isBadgeContentHasDiscount == true and priceSave <= 0 %}
26
+ {% assign isNotDiscount = true %}
27
+ {% endif %}
28
+ {% if isShow and isNotDiscount == false %}
24
29
  {% assign className = "" %}
25
30
  {% else %}
26
31
  {% assign className = "!gp-hidden" %}
@@ -14,6 +14,7 @@
14
14
  gp-label-unavailable="${n}"
15
15
  gp-data='${JSON.stringify(p).replaceAll("'","&#039;")}'
16
16
  data-variant-selection-required-message="${c}"
17
+ gp-enable-third-partycart="{{shop.metafields.GEMPAGES.enableThirdPartyCart}}"
17
18
  >
18
19
  ${g()}
19
20
  ${y()}
@@ -1,9 +1,11 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),helpers=require("../../helpers.js"),helpers$1=require("../common/helpers.js");const Trustoo=({setting:e,advanced:t})=>{let{widgetType:s,align:a,version:i,appBlockId:d}=e??{},r={"review-widget":`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),helpers=require("../../helpers.js"),helpers$1=require("../common/helpers.js");const Trustoo=({setting:e,advanced:t})=>{let{widgetType:s,align:a,version:d,appBlockId:i,productSetting:r}=e??{},l={"review-widget":`
2
2
  {% if request.page_type == "product" %}
3
3
  <div style="display:block" id="seal-review-widget"></div>
4
4
  {% else %}
5
- <div style="display:block" class="custom-vstar-review-widget" data-product-id="{{ product.id }}" data-product-title="{{ product.title }}" data-product-image="{{ product.images[0] }}"></div> {% endif %}
6
- `,"star-rating-widget":'<div class="custom-vstar-rating-widget" data-product-id="{{product.id}}"></div>',"text-carousel":'<div id="trustoo-text-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"barrage-carousel":'<div id="trustoo-barrage-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"card-carousel":'<div id="trustoo-card-carousel-widget" style="display:block;max-width:1200px;margin:0 auto"></div>',"photo-carousel":'<div id="trustoo-photo-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>'},l=()=>"v2"===i?helpers$1.getLiquidForAppBlock(d,a,t?.cssClass):core.template`
5
+ {% assign productSelected = product | default: all_products['${r?.productHandle}'] %}
6
+ <div style="display:block" class="custom-vstar-review-widget" data-product-id="{{ productSelected.id }}" data-product-title="{{ productSelected.title }}" data-product-image="{{ productSelected.images[0] }}"></div>
7
+ {% endif %}
8
+ `,"star-rating-widget":'<div class="custom-vstar-rating-widget" data-product-id="{{product.id}}"></div>',"text-carousel":'<div id="trustoo-text-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"barrage-carousel":'<div id="trustoo-barrage-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"card-carousel":'<div id="trustoo-card-carousel-widget" style="display:block;max-width:1200px;margin:0 auto"></div>',"photo-carousel":'<div id="trustoo-photo-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>'},c=()=>"v2"===d?helpers$1.getLiquidForAppBlock(i,a,t?.cssClass):core.template`
7
9
  <div>
8
10
  {% if '${s}' == 'starRatingInList' %}
9
11
  {% if request.page_type != 'product' %}
@@ -26,12 +28,12 @@
26
28
  {% endcase %}
27
29
  {% endif %}
28
30
  </div>
29
- `;return i?l():core.template`
31
+ `;return d?c():core.template`
30
32
  <div
31
33
  class="${t?.cssClass}"
32
34
  style="${{...core.makeStyleResponsive("ta",a)}}"
33
35
  >
34
- ${s&&r?.[s]}
36
+ ${s&&l?.[s]}
35
37
  <script ${helpers.getSettingPreloadData('class="gps-link" delay',"src")}="https://cdn.vstar.app/static/dist/js/swiper-reviews.min.js" defer="defer"></script>
36
38
  <link ${helpers.getSettingPreloadData('class="gps-link" delay',"href")}="https://cdn.vstar.app/static/css/swiper-reviews.min.css" rel="stylesheet" type="text/css" media="all">
37
39
  </div>
@@ -3,4 +3,4 @@
3
3
  <img class="w-24 border border-dark-200 rounded-medium" src="${Trustoo.default.logoUrl}?width=22&height=22">
4
4
  <span class="preset-item-title">${Trustoo.default.label}</span>
5
5
  </div>
6
- `},components:[{tag:Trustoo.default.tag,advanced:{editorData:{cssPlaceholder:".{{rootClassName}} {\n\n}\n\n.{{rootClassName}} #seal-star-rating-widget {\n margin-top: 0px;\n}"}}}]}],settings:[{id:"setting",controls:[{id:"appBlockId",type:"input",default:""},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:helpers.get3rdPartyInstallLink({handle:"trustoo-reviews"}),appName:Trustoo.default.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/sealapps-product-review",appName:Trustoo.default.label},{id:"widgetType",label:"Choose widget",type:"select",default:"star-rating-widget",disableDefault:!0,options:[{label:"Testimonials",value:"barrage-carousel"},{label:"Card Carousel",value:"card-carousel"},{label:"Photo Carousel",value:"photo-carousel"},{label:"Review Widget",value:"review-widget"},{label:"Star Rating Widget",value:"star-rating-widget"},{label:"Text Carousel",value:"text-carousel"}]},{id:"align",label:"Alignment",type:"segment",options:[{label:"Left",value:"left",type:"align"},{label:"Center",value:"center",type:"align"},{label:"Right",value:"right",type:"align"}],devices:{desktop:{default:"left"}}}]}],ui:uiV1.default,uiV2:uiV2.default};exports.default=config;
6
+ `},components:[{tag:Trustoo.default.tag,advanced:{editorData:{cssPlaceholder:".{{rootClassName}} {\n\n}\n\n.{{rootClassName}} #seal-star-rating-widget {\n margin-top: 0px;\n}"}}}]}],settings:[{id:"setting",controls:[{id:"productSetting",type:"product",label:"Product source",isMultiple:!1},{id:"appBlockId",type:"input",default:""},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:helpers.get3rdPartyInstallLink({handle:"trustoo-reviews"}),appName:Trustoo.default.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/sealapps-product-review",appName:Trustoo.default.label},{id:"widgetType",label:"Choose widget",type:"select",default:"star-rating-widget",disableDefault:!0,options:[{label:"Testimonials",value:"barrage-carousel"},{label:"Card Carousel",value:"card-carousel"},{label:"Photo Carousel",value:"photo-carousel"},{label:"Review Widget",value:"review-widget"},{label:"Star Rating Widget",value:"star-rating-widget"},{label:"Text Carousel",value:"text-carousel"}]},{id:"align",label:"Alignment",type:"segment",options:[{label:"Left",value:"left",type:"align"},{label:"Center",value:"center",type:"align"},{label:"Right",value:"right",type:"align"}],devices:{desktop:{default:"left"}}}]}],ui:uiV1.default,uiV2:uiV2.default};exports.default=config;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const SettingUIV2=[{controls:[{setting:{id:"install"},layout:"vertical"}]},{controls:[{label:{en:"Choose widget"},setting:{id:"widgetType"}}]},{controls:[{setting:{id:"openApp"},layout:"vertical"}]},{controls:[{label:{en:"Align"},setting:{id:"align"}}]}];exports.default=SettingUIV2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const SettingUIV2=[{controls:[{label:{en:"Product source"},controlConfig:{id:"gp-to-product",type:"product-source"},conditionDisplay:'pageType != "GP_PRODUCT" && widgetType === "review-widget"',layout:"vertical",options:{onlyShowInTags:["Product"],labelVariant:"primary"}}]},{controls:[{label:{en:"Product source"},setting:{id:"productSetting"},conditionDisplay:'pageType != "GP_PRODUCT" && widgetType === "review-widget"',layout:"vertical",options:{notShowInTags:["Product"]}}]},{controls:[{setting:{id:"install"},layout:"vertical"}]},{controls:[{label:{en:"Choose widget"},setting:{id:"widgetType"}}]},{controls:[{setting:{id:"openApp"},layout:"vertical"}]},{controls:[{label:{en:"Align"},setting:{id:"align"}}]}];exports.default=SettingUIV2;
@@ -1,39 +1,39 @@
1
- import{template as e,dataStringify as t,sanitizeLiquid as s,RenderIf as i,isLocalEnv as r,baseAssetURL as a}from"@gem-sdk/core";import{getDynamicSourceLocales as c,getSettingPreloadData as n}from"../../../helpers.js";import{generateBadgeContent as o}from"./utils/generateLiquidContent.js";import{renderBadgeInFirstTime as p}from"./utils/renderBadgeLiquid.js";import{createClass as d,createStyle as l,createAttr as u,createStateOrContext as m}from"@gem-sdk/system";import{IS_LIQUID as g}from"./constants.js";import{getContainerStyle as y,getSubWrapperStyle as $,getContentStyleInternal as v,getTextBadgeWrapperStyles as f,getTextContentStyle as j,getImageContainerStyles as P}from"./common/styles.js";import{getContainerClasses as D,getWrapperClasses as V,getSubWrapperClass as S,getTextContainerClasses as b,getTextWrapperClasses as I,getTextContentClasses as T,getImageContainerClasses as k,getImageClasses as q}from"./common/classes.js";import{getSubWrapperAttrs as A,getContainerAttrs as C,getTextContentAttrs as E,getImageAttr as K}from"./common/attrs.js";let ProductBadge=_=>{let{styles:h,setting:B,builderProps:L,pageContext:N}=_,O=B?.shape!=="image",Q=O&&B?.displayContent?.trim()==="",w=d({...D({isInstant:!1,props:_})}),G=l({...y(_,g)}),J=d({...V(_)}),x=d({...S(_)}),M=l({...$({props:_})}),R=u({...A(_)}),Y=v(_),z=d({...b()}),F=u({...C(_)}),H=d({...I()}),U=l({...f({setting:B,styles:h})}),W=d({...T(h)}),X=l({...j({setting:B,styles:h})}),Z=u({...E()}),ee=d({...k()}),et=l({...P({setting:B,styles:h})}),es=d({...q()}),ei=u({...K({setting:B})}),er=m({minPrice:"{{ minPriceValue | replace: '\"', '\\\"' | escape }}",variantIDs:'{{ product.variants | map: "id" | json | escape }}',variantInventoryQuantities:'{{ product.variants | map: "inventory_quantity" | json | escape }}',amountDiscount:"{{amountDiscountValue | replace: '\"', '\\\"' | escape }}",percentDiscount:"{{percentDiscountValue}}",price:"{{price}}",displayTrigger:JSON.parse(JSON.stringify(B?.displayTrigger).replaceAll("'","&#039;")),uid:_.builderProps?.uid,productCreatedAt:'{{product.created_at | date: "%Y-%m-%d" }}',productTags:"{{ product.tags | join: \",\" | replace: '\"', '\\\"' | escape }}",isTextBadge:O}),{displayContent:ea,translate:ec}=B??{},en=c({val:ea?.trim(),uid:L?.uid,settingId:"displayContent",isLiquid:!0,pageContext:N,translate:ec});return e`
1
+ import{template as e,dataStringify as t,sanitizeLiquid as s,RenderIf as i,isLocalEnv as r,baseAssetURL as a}from"@gem-sdk/core";import{getDynamicSourceLocales as c,getSettingPreloadData as o}from"../../../helpers.js";import{generateBadgeContent as n}from"./utils/generateLiquidContent.js";import{renderBadgeInFirstTime as p}from"./utils/renderBadgeLiquid.js";import{createClass as d,createStyle as l,createAttr as u,createStateOrContext as m}from"@gem-sdk/system";import{IS_LIQUID as g}from"./constants.js";import{getContainerStyle as y,getSubWrapperStyle as $,getContentStyleInternal as v,getTextBadgeWrapperStyles as f,getTextContentStyle as j,getImageContainerStyles as P}from"./common/styles.js";import{getContainerClasses as D,getWrapperClasses as V,getSubWrapperClass as S,getTextContainerClasses as b,getTextWrapperClasses as C,getTextContentClasses as I,getImageContainerClasses as T,getImageClasses as k}from"./common/classes.js";import{getSubWrapperAttrs as q,getContainerAttrs as A,getTextContentAttrs as E,getImageAttr as K}from"./common/attrs.js";import{checkDiscountContentProductBadge as N}from"./utils/common.js";let ProductBadge=_=>{let{styles:h,setting:B,builderProps:L,pageContext:O}=_,Q=B?.shape!=="image",w=Q&&B?.displayContent?.trim()==="",G=N(B?.displayContent),J=d({...D({isInstant:!1,props:_})}),x=l({...y(_,g)}),M=d({...V(_)}),R=d({...S(_)}),Y=l({...$({props:_})}),z=u({...q(_)}),F=v(_),H=d({...b()}),U=u({...A(_)}),W=d({...C()}),X=l({...f({setting:B,styles:h})}),Z=d({...I(h)}),ee=l({...j({setting:B,styles:h})}),et=u({...E()}),es=d({...T()}),ei=l({...P({setting:B,styles:h})}),er=d({...k()}),ea=u({...K({setting:B})}),ec=m({minPrice:"{{ minPriceValue | replace: '\"', '\\\"' | escape }}",variantIDs:'{{ product.variants | map: "id" | json | escape }}',variantInventoryQuantities:'{{ product.variants | map: "inventory_quantity" | json | escape }}',amountDiscount:"{{amountDiscountValue | replace: '\"', '\\\"' | escape }}",percentDiscount:"{{percentDiscountValue}}",price:"{{price}}",displayTrigger:JSON.parse(JSON.stringify(B?.displayTrigger).replaceAll("'","&#039;")),uid:_.builderProps?.uid,productCreatedAt:'{{product.created_at | date: "%Y-%m-%d" }}',productTags:"{{ product.tags | join: \",\" | replace: '\"', '\\\"' | escape }}",isTextBadge:Q}),{displayContent:eo,translate:en}=B??{},ep=c({val:eo?.trim(),uid:L?.uid,settingId:"displayContent",isLiquid:!0,pageContext:O,translate:en});return e`
2
2
  {% if product %}
3
- ${o(en,N?.isPreviewing)}
4
- ${p(B?.displayTrigger,!Q)}
3
+ ${n(ep,O?.isPreviewing)}
4
+ ${p(B?.displayTrigger,!w,G)}
5
5
  <gp-product-badge
6
- ${{...F}}
7
- gp-data='${t(er)}'
8
- class="${w}"
9
- style="${G}"
10
- data-display-content="${N?.isPreviewing?en:s(`{{${en}}}`)}"
6
+ ${{...U}}
7
+ gp-data='${t(ec)}'
8
+ class="${J} {{ className }}"
9
+ style="${x}"
10
+ data-display-content="${O?.isPreviewing?ep:s(`{{${ep}}}`)}"
11
11
  >
12
- <div class="${J}">
12
+ <div class="${M}">
13
13
  <div
14
- ${{...R}}
15
- class="${x}"
16
- style="${M}"
14
+ ${{...z}}
15
+ class="${R}"
16
+ style="${Y}"
17
17
  >
18
- <style>${Y}</style>
19
- ${i(O,e`
20
- <div class="${z}">
18
+ <style>${F}</style>
19
+ ${i(Q,e`
20
+ <div class="${H}">
21
21
  <div
22
- class="${H}"
23
- style="${U}"
22
+ class="${W}"
23
+ style="${X}"
24
24
  >
25
25
  <pre
26
- ${{...Z}}
27
- class="${W}"
28
- style="${X}"
26
+ ${{...et}}
27
+ class="${Z}"
28
+ style="${ee}"
29
29
  >{{ content | replace: percentDiscountKey, percentDiscountValue | replace: amountDiscountKey, amountDiscountValue | replace: inventoryQuantityKey, inventoryQuantityValue | replace: minPriceKey, minPriceValue }}</pre>
30
30
  </div>
31
- </div>`,e`<div class="${ee}" style="${et}">
32
- <img ${{...ei}} class="${es}" alt="" />
31
+ </div>`,e`<div class="${es}" style="${ei}">
32
+ <img ${{...ea}} class="${er}" alt="" />
33
33
  </div>`)}
34
34
  </div>
35
35
  </div>
36
36
  </gp-product-badge>
37
- ${i(r,`<script ${n('class="gps-link" delay',"src")}="{{ 'gp-product-badge-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${n('class="gps-link" delay',"src")}="${a}/assets-v2/gp-product-badge-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
37
+ ${i(r,`<script ${o('class="gps-link" delay',"src")}="{{ 'gp-product-badge-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${o('class="gps-link" delay',"src")}="${a}/assets-v2/gp-product-badge-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
38
38
  {% endif %}
39
39
  `};export{ProductBadge as default};
@@ -1 +1 @@
1
- import{makeGlobalSize as e,composeTypographyStyle as t,getStyleShadow as o,convertDecimalToNumber as r}from"@gem-sdk/core";import{convertToStyle as i,getSize as a,getWrapperStyle as n,getShapeWrapperPadding as s}from"../utils/common.js";import{getShapePosition as p}from"../utils/getShapePosition.js";import{composeTextStyleByPosition as g,composeShapeStyleByPosition as l}from"../utils/getRotateShape.js";import{getStyleAdvanced as d}from"../utils/getStyleAdvanced.js";import{getWhiteSpaceStyle as u}from"../utils/getWhiteSpace.js";import{getStyleBackground as S,generateShadowCSS as m,getStyleBorder as y,getStyleCornerRadius as h}from"../utils/stylesV2.js";import{getShape as x}from"../utils/shape.js";import{checkShowBadge as c}from"../utils/renderBadgeILP.js";let getSizeStyles=e=>{let{setting:t,styles:o}=e,r=x(t?.shape),i=t?.contentType==="text",n=i?o?.textSizeV2:o?.imageSizeV2;return i?a(r,n):a(void 0,n)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:i,navigationPosition:a,imageData:s,dotData:g}=e,l=o?.positionWithImage==="outside",u=n(t),S=p({positionType:r?.position,isLiquid:!1,navigationPosition:a,dataImage:{...s,...g}}),m=getSizeStyles(e),y=d(l?{}:{...S,...m},i);return{...!l&&{"--pos":"absolute"},...u,...y}},getTextContentStyle=({styles:r,setting:a})=>{let n=e(r?.textSizeV2).padding,s=x(a?.shape),p=a?.positionWithImage==="outside";return{...u(r?.textSizeV2),...i(s?.textStyle),...g(s,r?.position,p),...t(r?.typo),...o({value:r?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:r?.typo?.custom?.hasShadowText}),...S(!!s?.backgroundColorInText,r?.badgeColorV2),...n}},getBorderStyles=({styles:e,setting:t})=>{let o=x(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?y(e?.textBadgeBorder):y(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=x(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?h(e?.textBadgeCorner,o?.shapeRadius):h(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=x(t?.shape),r=getBorderStyles({setting:t,styles:e}),i=t?.positionWithImage==="outside",a=getCornerStyles({setting:t,styles:e}),n=s(o?.ratio);return{...r,...a,...l(o,e?.position,i),...S(!o?.backgroundColorInText,e?.badgeColorV2),...n,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:t,setting:o})=>{let r=getBorderStyles({setting:o,styles:t}),i=getCornerStyles({setting:o,styles:t}),a=e(t?.imageSizeV2).padding;return{...r,...i,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:i})=>{let{"bundle-item":a,setting:n}=e;if(a)return 1;let s=n?.contentType==="text",p=s&&!n?.displayContent?.trim();if(p)return i?.2:0;let g=r(t?.price)??0,l=r(t?.salePrice)??0,d=l-g>0,u=c(n?.displayTrigger,o,t);return d&&u?1:i?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:i}=e,a=i?.positionWithImage==="outside",n=getSizeStyles(e),s=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...a?{...n,"--mb":0}:{},opacity:s}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,i=o?.contentType==="text";return m(`[id="${r?.uid}"] .product-badge-item`,i?t?.textBadgeShadow:t?.imageBadgeShadow)};export{getContainerStyle,getContentStyleInternal,getImageContainerStyles,getSubWrapperStyle,getTextBadgeWrapperStyles,getTextContentStyle};
1
+ import{makeGlobalSize as e,composeTypographyStyle as t,getStyleShadow as o,convertDecimalToNumber as r}from"@gem-sdk/core";import{convertToStyle as i,getSize as a,getWrapperStyle as n,getShapeWrapperPadding as s,checkDiscountContentProductBadge as p}from"../utils/common.js";import{getShapePosition as g}from"../utils/getShapePosition.js";import{composeTextStyleByPosition as l,composeShapeStyleByPosition as d}from"../utils/getRotateShape.js";import{getStyleAdvanced as u}from"../utils/getStyleAdvanced.js";import{getWhiteSpaceStyle as S}from"../utils/getWhiteSpace.js";import{getStyleBackground as y,generateShadowCSS as m,getStyleBorder as h,getStyleCornerRadius as x}from"../utils/stylesV2.js";import{getShape as c}from"../utils/shape.js";import{checkShowBadge as C}from"../utils/renderBadgeILP.js";let getSizeStyles=e=>{let{setting:t,styles:o}=e,r=c(t?.shape),i=t?.contentType==="text",n=i?o?.textSizeV2:o?.imageSizeV2;return i?a(r,n):a(void 0,n)},getContainerStyle=(e,t=!1)=>{let{setting:o,styles:r,style:i,navigationPosition:a,imageData:s,dotData:p}=e,l=o?.positionWithImage==="outside",d=n(t),S=g({positionType:r?.position,isLiquid:!1,navigationPosition:a,dataImage:{...s,...p}}),y=getSizeStyles(e),m=u(l?{}:{...S,...y},i);return{...!l&&{"--pos":"absolute"},...d,...m}},getTextContentStyle=({styles:r,setting:a})=>{let n=e(r?.textSizeV2).padding,s=c(a?.shape),p=a?.positionWithImage==="outside";return{...S(r?.textSizeV2),...i(s?.textStyle),...l(s,r?.position,p),...t(r?.typo),...o({value:r?.typo?.custom?.textShadow,styleAppliedFor:"text-shadow",isEnableShadow:r?.typo?.custom?.hasShadowText}),...y(!!s?.backgroundColorInText,r?.badgeColorV2),...n}},getBorderStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportBorder?r?h(e?.textBadgeBorder):h(e?.imageBadgeBorder):{}},getCornerStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=t?.contentType==="text";return o?.supportCorner?r?x(e?.textBadgeCorner,o?.shapeRadius):x(e?.imageBadgeCorner,o?.shapeRadius):{}},getTextBadgeWrapperStyles=({styles:e,setting:t})=>{let o=c(t?.shape),r=getBorderStyles({setting:t,styles:e}),i=t?.positionWithImage==="outside",a=getCornerStyles({setting:t,styles:e}),n=s(o?.ratio);return{...r,...a,...d(o,e?.position,i),...y(!o?.backgroundColorInText,e?.badgeColorV2),...n,height:o?.ratio===1?"0px":"100%"}},getImageContainerStyles=({styles:t,setting:o})=>{let r=getBorderStyles({setting:o,styles:t}),i=getCornerStyles({setting:o,styles:t}),a=e(t?.imageSizeV2).padding;return{...r,...i,...a}},getOpacityProductBadge=({props:e,currentVariant:t,product:o,isEditMode:i})=>{let{"bundle-item":a,setting:n}=e;if(a)return 1;let s=n?.contentType==="text",g=s&&!n?.displayContent?.trim(),l=p(n?.displayContent);if(g)return i?.2:0;let d=r(t?.price)??0,u=r(t?.salePrice)??0,S=u-d>0,y=C(n?.displayTrigger,o,t);return(S||!l)&&y?1:i?.2:0},getSubWrapperStyle=({props:e,product:t,currentVariant:o,isEditMode:r})=>{let{setting:i}=e,a=i?.positionWithImage==="outside",n=getSizeStyles(e),s=r&&o?getOpacityProductBadge({props:e,currentVariant:o,product:t,isEditMode:r}):1;return{...a?{...n,"--mb":0}:{},opacity:s}},getContentStyleInternal=e=>{let{styles:t,setting:o,builderProps:r}=e,i=o?.contentType==="text";return m(`[id="${r?.uid}"] .product-badge-item`,i?t?.textBadgeShadow:t?.imageBadgeShadow)};export{getContainerStyle,getContentStyleInternal,getImageContainerStyles,getSubWrapperStyle,getTextBadgeWrapperStyles,getTextContentStyle};
@@ -1,4 +1,4 @@
1
- import{CompareType as e}from"../types.js";let getMinValueForInventory=i=>i===e.ABOVE?0:i===e.BELOW?2:1,renderBadgeInFirstTime=(e,i)=>`
1
+ import{CompareType as e}from"../types.js";let getMinValueForInventory=i=>i===e.ABOVE?0:i===e.BELOW?2:1,renderBadgeInFirstTime=(e,i,n)=>`
2
2
  {% assign isShow = true %}
3
3
  {% assign conditionTriggers = "" %}
4
4
  {% assign isInventoryStatus = false %}
@@ -17,10 +17,15 @@ import{CompareType as e}from"../types.js";let getMinValueForInventory=i=>i===e.A
17
17
  {% assign salePrice = variant.compare_at_price | times: 1.0 %}
18
18
  {% assign priceSave = salePrice | minus: price %}
19
19
  {% assign isEmptyBadgeContent = ${!i} %}
20
- {% if priceSave <= 0 or isEmptyBadgeContent == true %}
21
- {% assign isShow = false %}
20
+ {% assign isNotDiscount = false %}
21
+ {% assign isBadgeContentHasDiscount = ${n} %}
22
+ {% if isEmptyBadgeContent == true %}
23
+ {% assign isNotDiscount = true %}
22
24
  {% endif %}
23
- {% if isShow %}
25
+ {% if isBadgeContentHasDiscount == true and priceSave <= 0 %}
26
+ {% assign isNotDiscount = true %}
27
+ {% endif %}
28
+ {% if isShow and isNotDiscount == false %}
24
29
  {% assign className = "" %}
25
30
  {% else %}
26
31
  {% assign className = "!gp-hidden" %}
@@ -1,4 +1,4 @@
1
- import{getSplitStyle as t}from"./common/styles.js";import{getGPProductButtonState as o}from"./common/helpers.js";import{template as s,isLocalEnv as e,baseAssetURL as r}from"@gem-sdk/core";import{createStateOrContext as a,Liquid as i,LiquidFor as l,If as n}from"@gem-sdk/system";import{getInsertLinkData as p,getSettingPreloadData as u}from"../../../helpers.js";import{getButtonDynamicSourceLocales as c}from"./helpers/getButtonDynamicSourceLocales.js";import{SoldOutButton as m}from"./SoldOutButton.liquid.js";import{AddToCartButton as d}from"./AddToCartButton.liquid.js";let ProductButton=f=>{let{setting:g,builderProps:$,style:b,styles:v,pageContext:y}=f,{wrapStyle:_,restStyle:j}=t(b),{outOfStockButtonLabel:S,unavailableButtonLabel:h,variantSelectionRequiredMessage:k}=c({setting:g,pageContext:y,builderProps:$}),{urlData:q}=p("",g?.actionEffect==="open-cart-drawer"?{link:"/cart",target:"_self"}:g?.customURL),B=a(o(v,g)),E=()=>d({...f,style:j}),A=()=>m({...f,style:j,label:S}),w=()=>n(e,`<script ${u('class="gps-link" delay',"src")}="{{ 'gp-product-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${u('class="gps-link" delay',"src")}="${r}/assets-v2/gp-product-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`);return s`
1
+ import{getSplitStyle as t}from"./common/styles.js";import{getGPProductButtonState as e}from"./common/helpers.js";import{template as o,isLocalEnv as s,baseAssetURL as r}from"@gem-sdk/core";import{createStateOrContext as a,Liquid as i,LiquidFor as l,If as n}from"@gem-sdk/system";import{getInsertLinkData as p,getSettingPreloadData as c}from"../../../helpers.js";import{getButtonDynamicSourceLocales as u}from"./helpers/getButtonDynamicSourceLocales.js";import{SoldOutButton as d}from"./SoldOutButton.liquid.js";import{AddToCartButton as m}from"./AddToCartButton.liquid.js";let ProductButton=f=>{let{setting:g,builderProps:b,style:y,styles:$,pageContext:v}=f,{wrapStyle:_,restStyle:h}=t(y),{outOfStockButtonLabel:S,unavailableButtonLabel:j,variantSelectionRequiredMessage:k}=u({setting:g,pageContext:v,builderProps:b}),{urlData:E}=p("",g?.actionEffect==="open-cart-drawer"?{link:"/cart",target:"_self"}:g?.customURL),q=a(e($,g)),A=()=>m({...f,style:h}),B=()=>d({...f,style:h,label:S}),P=()=>n(s,`<script ${c('class="gps-link" delay',"src")}="{{ 'gp-product-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${c('class="gps-link" delay',"src")}="${r}/assets-v2/gp-product-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`);return o`
2
2
  ${i("{%- assign total_combinations = 1 -%}")}
3
3
  ${l("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
4
4
  {%- liquid
@@ -8,15 +8,16 @@ import{getSplitStyle as t}from"./common/styles.js";import{getGPProductButtonStat
8
8
  <gp-product-button
9
9
  style="${_}"
10
10
  gp-data-wrapper="true"
11
- gp-href="${q.href}"
11
+ gp-href="${E.href}"
12
12
  class="gp-product-button"
13
13
  gp-label-out-of-stock="${S}"
14
- gp-label-unavailable="${h}"
15
- gp-data='${JSON.stringify(B).replaceAll("'","&#039;")}'
14
+ gp-label-unavailable="${j}"
15
+ gp-data='${JSON.stringify(q).replaceAll("'","&#039;")}'
16
16
  data-variant-selection-required-message="${k}"
17
+ gp-enable-third-partycart="{{shop.metafields.GEMPAGES.enableThirdPartyCart}}"
17
18
  >
18
- ${E()}
19
19
  ${A()}
20
+ ${B()}
20
21
  </gp-product-button>
21
- ${w()}
22
+ ${P()}
22
23
  `};export{ProductButton as default};
@@ -1,9 +1,11 @@
1
- import{template as s,makeStyleResponsive as t}from"@gem-sdk/core";import{getSettingPreloadData as e}from"../../helpers.js";import{getLiquidForAppBlock as i}from"../common/helpers.js";let Trustoo=({setting:a,advanced:d})=>{let{widgetType:r,align:o,version:l,appBlockId:c}=a??{},p={"review-widget":`
1
+ import{template as s,makeStyleResponsive as t}from"@gem-sdk/core";import{getSettingPreloadData as e}from"../../helpers.js";import{getLiquidForAppBlock as d}from"../common/helpers.js";let Trustoo=({setting:a,advanced:i})=>{let{widgetType:r,align:l,version:c,appBlockId:o,productSetting:p}=a??{},n={"review-widget":`
2
2
  {% if request.page_type == "product" %}
3
3
  <div style="display:block" id="seal-review-widget"></div>
4
4
  {% else %}
5
- <div style="display:block" class="custom-vstar-review-widget" data-product-id="{{ product.id }}" data-product-title="{{ product.title }}" data-product-image="{{ product.images[0] }}"></div> {% endif %}
6
- `,"star-rating-widget":'<div class="custom-vstar-rating-widget" data-product-id="{{product.id}}"></div>',"text-carousel":'<div id="trustoo-text-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"barrage-carousel":'<div id="trustoo-barrage-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"card-carousel":'<div id="trustoo-card-carousel-widget" style="display:block;max-width:1200px;margin:0 auto"></div>',"photo-carousel":'<div id="trustoo-photo-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>'},n=()=>"v2"===l?i(c,o,d?.cssClass):s`
5
+ {% assign productSelected = product | default: all_products['${p?.productHandle}'] %}
6
+ <div style="display:block" class="custom-vstar-review-widget" data-product-id="{{ productSelected.id }}" data-product-title="{{ productSelected.title }}" data-product-image="{{ productSelected.images[0] }}"></div>
7
+ {% endif %}
8
+ `,"star-rating-widget":'<div class="custom-vstar-rating-widget" data-product-id="{{product.id}}"></div>',"text-carousel":'<div id="trustoo-text-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"barrage-carousel":'<div id="trustoo-barrage-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',"card-carousel":'<div id="trustoo-card-carousel-widget" style="display:block;max-width:1200px;margin:0 auto"></div>',"photo-carousel":'<div id="trustoo-photo-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>'},u=()=>"v2"===c?d(o,l,i?.cssClass):s`
7
9
  <div>
8
10
  {% if '${r}' == 'starRatingInList' %}
9
11
  {% if request.page_type != 'product' %}
@@ -26,12 +28,12 @@ import{template as s,makeStyleResponsive as t}from"@gem-sdk/core";import{getSett
26
28
  {% endcase %}
27
29
  {% endif %}
28
30
  </div>
29
- `;return l?n():s`
31
+ `;return c?u():s`
30
32
  <div
31
- class="${d?.cssClass}"
32
- style="${{...t("ta",o)}}"
33
+ class="${i?.cssClass}"
34
+ style="${{...t("ta",l)}}"
33
35
  >
34
- ${r&&p?.[r]}
36
+ ${r&&n?.[r]}
35
37
  <script ${e('class="gps-link" delay',"src")}="https://cdn.vstar.app/static/dist/js/swiper-reviews.min.js" defer="defer"></script>
36
38
  <link ${e('class="gps-link" delay',"href")}="https://cdn.vstar.app/static/css/swiper-reviews.min.css" rel="stylesheet" type="text/css" media="all">
37
39
  </div>
@@ -3,4 +3,4 @@ import e from"../../configs/Trustoo.js";import t from"./uiV1.js";import l from".
3
3
  <img class="w-24 border border-dark-200 rounded-medium" src="${e.logoUrl}?width=22&height=22">
4
4
  <span class="preset-item-title">${e.label}</span>
5
5
  </div>
6
- `},components:[{tag:e.tag,advanced:{editorData:{cssPlaceholder:".{{rootClassName}} {\n\n}\n\n.{{rootClassName}} #seal-star-rating-widget {\n margin-top: 0px;\n}"}}}]}],settings:[{id:"setting",controls:[{id:"appBlockId",type:"input",default:""},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:a({handle:"trustoo-reviews"}),appName:e.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/sealapps-product-review",appName:e.label},{id:"widgetType",label:"Choose widget",type:"select",default:"star-rating-widget",disableDefault:!0,options:[{label:"Testimonials",value:"barrage-carousel"},{label:"Card Carousel",value:"card-carousel"},{label:"Photo Carousel",value:"photo-carousel"},{label:"Review Widget",value:"review-widget"},{label:"Star Rating Widget",value:"star-rating-widget"},{label:"Text Carousel",value:"text-carousel"}]},{id:"align",label:"Alignment",type:"segment",options:[{label:"Left",value:"left",type:"align"},{label:"Center",value:"center",type:"align"},{label:"Right",value:"right",type:"align"}],devices:{desktop:{default:"left"}}}]}],ui:t,uiV2:l};export{config as default};
6
+ `},components:[{tag:e.tag,advanced:{editorData:{cssPlaceholder:".{{rootClassName}} {\n\n}\n\n.{{rootClassName}} #seal-star-rating-widget {\n margin-top: 0px;\n}"}}}]}],settings:[{id:"setting",controls:[{id:"productSetting",type:"product",label:"Product source",isMultiple:!1},{id:"appBlockId",type:"input",default:""},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:a({handle:"trustoo-reviews"}),appName:e.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/sealapps-product-review",appName:e.label},{id:"widgetType",label:"Choose widget",type:"select",default:"star-rating-widget",disableDefault:!0,options:[{label:"Testimonials",value:"barrage-carousel"},{label:"Card Carousel",value:"card-carousel"},{label:"Photo Carousel",value:"photo-carousel"},{label:"Review Widget",value:"review-widget"},{label:"Star Rating Widget",value:"star-rating-widget"},{label:"Text Carousel",value:"text-carousel"}]},{id:"align",label:"Alignment",type:"segment",options:[{label:"Left",value:"left",type:"align"},{label:"Center",value:"center",type:"align"},{label:"Right",value:"right",type:"align"}],devices:{desktop:{default:"left"}}}]}],ui:t,uiV2:l};export{config as default};
@@ -1 +1 @@
1
- let SettingUIV2=[{controls:[{setting:{id:"install"},layout:"vertical"}]},{controls:[{label:{en:"Choose widget"},setting:{id:"widgetType"}}]},{controls:[{setting:{id:"openApp"},layout:"vertical"}]},{controls:[{label:{en:"Align"},setting:{id:"align"}}]}];export{SettingUIV2 as default};
1
+ let SettingUIV2=[{controls:[{label:{en:"Product source"},controlConfig:{id:"gp-to-product",type:"product-source"},conditionDisplay:'pageType != "GP_PRODUCT" && widgetType === "review-widget"',layout:"vertical",options:{onlyShowInTags:["Product"],labelVariant:"primary"}}]},{controls:[{label:{en:"Product source"},setting:{id:"productSetting"},conditionDisplay:'pageType != "GP_PRODUCT" && widgetType === "review-widget"',layout:"vertical",options:{notShowInTags:["Product"]}}]},{controls:[{setting:{id:"install"},layout:"vertical"}]},{controls:[{label:{en:"Choose widget"},setting:{id:"widgetType"}}]},{controls:[{setting:{id:"openApp"},layout:"vertical"}]},{controls:[{label:{en:"Align"},setting:{id:"align"}}]}];export{SettingUIV2 as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "13.1.4",
3
+ "version": "13.1.6",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,7 +26,7 @@
26
26
  "scan-all-text": "rollup -c ./scripts/rollup.config.settings.mjs && node ./scripts/scan-all-text && node ./scripts/scan-all-text"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "13.1.3",
29
+ "@gem-sdk/core": "13.1.6",
30
30
  "@gem-sdk/styles": "13.1.0",
31
31
  "@gem-sdk/system": "13.1.0",
32
32
  "@types/react-transition-group": "^4.4.12",